html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-property:overflow;transition-duration:1ms;transition-behavior:allow-discrete}:root{--black: #000000;--bg: #050508;--bg-2: #0a0a10;--panel: rgba(255, 255, 255, .04);--border: rgba(255, 255, 255, .08);--border-h:rgba(255, 255, 255, .18);--text: #a8b8d0;--text-2: #606880;--white: #f0f6ff;--teal: #00e5b0;--blue: #4d8fff;--purple: #7c6eff;--teal-glow: rgba(0, 229, 176, .15);--blue-glow: rgba(77, 143, 255, .12);--font: "Inter", system-ui, sans-serif;--display: "Space Grotesk", system-ui, sans-serif;--r-sm: 8px;--r-md: 16px;--r-lg: 24px;--r-xl: 32px;--ease: cubic-bezier(.4, 0, .2, 1);--spring: cubic-bezier(.34, 1.56, .64, 1);--dur: .3s}.preloader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .8s var(--ease),visibility .8s var(--ease)}.preloader.hidden{opacity:0;visibility:hidden;pointer-events:none}.preloader-spinner{width:48px;height:48px;border:2px solid rgba(0,229,176,.1);border-top-color:var(--teal);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:1rem;line-height:1.7;min-height:100vh;min-width:320px;overflow-x:hidden;-webkit-font-smoothing:antialiased;cursor:none}a{color:inherit;text-decoration:none}button{font:inherit;cursor:none;border:none;background:none}ul,ol{list-style:none}.cursor-dot{position:fixed;width:8px;height:8px;border-radius:50%;background:var(--teal);pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:transform 80ms var(--ease),opacity .2s var(--ease);mix-blend-mode:screen}.cursor-ring{position:fixed;width:36px;height:36px;border-radius:50%;border:1.5px solid rgba(0,229,176,.5);pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:transform .18s var(--ease),width .25s var(--spring),height .25s var(--spring),opacity .2s var(--ease),border-color .2s var(--ease)}.cursor-ring.hover{width:56px;height:56px;border-color:#00e5b0cc}body:has(a:hover) .cursor-ring,body:has(button:hover) .cursor-ring{width:56px;height:56px;border-color:#00e5b0cc}.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1.25rem 2.5rem;transition:background .4s var(--ease),backdrop-filter .4s var(--ease),border-bottom .4s var(--ease)}.nav.scrolled{background:#050508e0;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--border)}.nav-brand{display:flex;align-items:center;gap:.75rem;font-family:var(--display);font-weight:700;font-size:1rem;color:var(--white);letter-spacing:-.01em}.nav-mark{display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:var(--r-sm);background:linear-gradient(135deg,var(--teal),var(--blue));color:#020408;font-size:.85rem;font-weight:800;flex-shrink:0;box-shadow:0 0 20px #00e5b04d}.nav-links{display:flex;align-items:center;gap:.25rem}.nav-links a{padding:.5rem 1rem;border-radius:var(--r-xl);font-size:.88rem;font-weight:500;color:var(--text-2);transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}.nav-links a:hover,.nav-links a.active{color:var(--white);background:#ffffff0f}.nav-links a.active{color:var(--teal)}.nav-right{display:flex;align-items:center;gap:.75rem}.nav-cta{padding:.55rem 1.2rem;border-radius:var(--r-xl);border:1px solid var(--border);color:var(--white);font-size:.85rem;font-weight:600;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.nav-cta:hover{border-color:var(--teal);background:var(--teal-glow)}.theme-btn{display:grid;place-items:center;width:2rem;height:2rem;border-radius:var(--r-sm);border:1px solid var(--border);color:var(--text-2);transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.theme-btn:hover{color:var(--white);border-color:var(--border-h)}.theme-btn svg{width:.9rem;height:.9rem}.mobile-tab-bar{display:none;position:fixed;bottom:0;left:0;right:0;height:65px;background:#050508d9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border);z-index:900}.mobile-tab-bar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-2);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;transition:color .2s var(--ease),background .2s var(--ease)}.mobile-tab-bar a.active{color:var(--teal);background:#00e5b00f}.scroll-bar{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--teal),var(--blue));z-index:200;transform-origin:left;transform:scaleX(0)}.social-rail{position:fixed;left:1.5rem;top:50%;transform:translateY(-50%);z-index:50;display:flex;flex-direction:column;align-items:center;gap:1.25rem}.social-rail:before,.social-rail:after{content:"";width:1px;height:50px;background:linear-gradient(to bottom,transparent,var(--border),transparent)}.social-rail a{display:grid;place-items:center;width:1.8rem;height:1.8rem;color:var(--text-2);transition:color var(--dur) var(--ease),transform var(--dur) var(--spring)}.social-rail a:hover{color:var(--teal);transform:translate(3px)}.social-rail svg{width:1.1rem;height:1.1rem}.btt{position:fixed;bottom:2rem;right:2rem;z-index:50;display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;border:1px solid var(--border);color:var(--text-2);background:#050508cc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.btt.show{opacity:1;transform:translateY(0);pointer-events:auto}.btt:hover{border-color:var(--teal);color:var(--teal)}.btt svg{width:1rem;height:1rem}.page{overflow:hidden}.section{width:100%;max-width:1200px;margin:0 auto;padding:0 2rem}.reveal{opacity:0;transform:translateY(32px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal.in{opacity:1;transform:translateY(0)}.reveal.d1{transition-delay:.1s}.reveal.d2{transition-delay:.2s}.reveal.d3{transition-delay:.3s}.reveal.d4{transition-delay:.4s}.reveal.d5{transition-delay:.5s}.hero-wrap{position:relative;width:100%;min-height:100vh;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.hero-canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.hero-veil{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:linear-gradient(110deg,#050508,#050508f2 25%,#050508a6 55%,#05050800)}.hero-content{position:relative;z-index:2;padding:0 2.5rem 0 calc(2.5rem + 48px);max-width:780px;padding-top:9rem;padding-bottom:7rem}.hero-eyebrow{display:inline-flex;align-items:center;gap:.6rem;padding:.35rem .85rem;border-radius:var(--r-xl);border:1px solid rgba(0,229,176,.25);background:#00e5b012;color:var(--teal);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:1.5rem}.hero-eyebrow .pulse{width:6px;height:6px;border-radius:50%;background:var(--teal);animation:pulse 2.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.65)}}.hero-name{font-family:var(--display);font-size:clamp(3.8rem,8vw,7.5rem);font-weight:800;line-height:.92;letter-spacing:-.035em;color:var(--white);margin-bottom:.75rem}.hero-name .grad{background:linear-gradient(135deg,var(--teal) 0%,var(--blue) 60%,var(--purple) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-role{font-family:var(--display);font-size:clamp(1.4rem,3vw,2.2rem);font-weight:600;color:#f0f6ff8c;line-height:1.3;letter-spacing:-.02em;margin-bottom:1.5rem}.hero-desc{font-size:1.05rem;color:var(--text-2);line-height:1.85;max-width:46ch;margin-bottom:2.5rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-bottom:3rem}.btn{display:inline-flex;align-items:center;gap:.55rem;padding:.85rem 1.75rem;border-radius:var(--r-xl);font-size:.9rem;font-weight:700;letter-spacing:.01em;transition:transform .28s var(--spring),box-shadow .28s var(--ease),opacity .2s var(--ease)}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn svg{width:.9rem;height:.9rem}.btn-primary{background:linear-gradient(135deg,var(--teal),var(--blue));color:#020408;box-shadow:0 4px 24px #00e5b040}.btn-primary:hover{box-shadow:0 8px 32px #00e5b066}.btn-ghost{border:1px solid var(--border);color:var(--white);background:#ffffff08}.btn-ghost:hover{border-color:var(--border-h);background:#ffffff12}.hero-scroll{display:flex;align-items:center;gap:.75rem;color:var(--text-2);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.scroll-line{width:40px;height:1px;background:linear-gradient(90deg,var(--teal),transparent)}.sec{padding:7rem 0}.sec-inner{max-width:1200px;margin:0 auto;padding:0 2rem}.tag{display:inline-flex;align-items:center;gap:.5rem;padding:.32rem .75rem;border-radius:var(--r-xl);border:1px solid rgba(0,229,176,.2);background:#00e5b00f;color:var(--teal);font-size:.73rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;margin-bottom:1.25rem}.tag:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--teal)}.sec-title{font-family:var(--display);font-size:clamp(2.2rem,4.5vw,3.8rem);font-weight:800;color:var(--white);line-height:1.08;letter-spacing:-.03em;margin-bottom:1.1rem}.sec-sub{font-size:1.05rem;color:var(--text-2);line-height:1.8;max-width:52ch;margin-bottom:3rem}.divider{height:1px;background:linear-gradient(90deg,transparent,var(--border),transparent);max-width:1200px;margin:0 auto}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.about-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);padding:2rem;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--spring),background var(--dur) var(--ease);position:relative;overflow:hidden}.about-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--teal),transparent);opacity:0;transition:opacity var(--dur) var(--ease)}.about-card:hover{border-color:var(--border-h);transform:translateY(-4px);background:#ffffff0f}.about-card:hover:before{opacity:1}.about-card-icon{width:2.75rem;height:2.75rem;border-radius:var(--r-sm);background:#00e5b014;border:1px solid rgba(0,229,176,.15);display:grid;place-items:center;color:var(--teal);margin-bottom:1.1rem}.about-card-icon svg{width:1.2rem;height:1.2rem}.about-card h3{font-family:var(--display);font-size:1.1rem;font-weight:700;color:var(--white);margin-bottom:.65rem}.about-card p{font-size:.95rem;color:var(--text-2);line-height:1.75}.projects-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.proj-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-xl);padding:2rem;display:flex;flex-direction:column;position:relative;overflow:hidden;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--spring),background var(--dur) var(--ease)}.proj-card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--teal),var(--blue));transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}.proj-card:hover{border-color:#00e5b040;transform:translateY(-5px);background:#ffffff0d}.proj-card:hover:after{transform:scaleX(1)}.proj-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.proj-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.28rem .65rem;border-radius:var(--r-xl);border:1px solid rgba(0,229,176,.18);background:#00e5b012;color:var(--teal);font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.proj-badge:before{content:"";width:4px;height:4px;border-radius:50%;background:var(--teal)}.proj-type{font-size:.75rem;color:var(--text-2)}.proj-card h3{font-family:var(--display);font-size:1.4rem;font-weight:700;color:var(--white);letter-spacing:-.02em;line-height:1.2;margin-bottom:1.25rem}.proj-label{display:flex;align-items:center;gap:.5rem;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);margin-bottom:.5rem}.proj-label span{display:block;width:14px;height:1px;background:var(--border-h)}.proj-text{font-size:.92rem;color:var(--text-2);line-height:1.75;margin-bottom:1.1rem}.proj-chips{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1.1rem}.proj-chip{padding:.3rem .7rem;border-radius:var(--r-xl);border:1px solid rgba(77,143,255,.18);background:#4d8fff14;color:var(--blue);font-size:.78rem;font-weight:600}.proj-challenges{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.1rem}.proj-challenges li{display:flex;align-items:flex-start;gap:.55rem;font-size:.88rem;color:var(--text-2);line-height:1.6}.proj-challenges li:before{content:"";flex-shrink:0;width:5px;height:5px;border-radius:50%;background:var(--teal);margin-top:.45rem}.proj-impact{padding:.85rem 1rem;border-radius:var(--r-md);border:1px solid rgba(0,229,176,.12);background:#00e5b00d;font-size:.88rem;color:var(--text);line-height:1.7;margin-bottom:1.5rem}.proj-footer{margin-top:auto;padding-top:1.25rem;border-top:1px solid var(--border)}.proj-link{display:inline-flex;align-items:center;gap:.45rem;font-size:.85rem;font-weight:700;color:var(--teal);transition:gap .25s var(--spring),opacity .2s var(--ease)}.proj-link:hover{gap:.75rem}.proj-link svg{width:.85rem;height:.85rem}.systems-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.sys-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-xl);padding:2rem;position:relative;overflow:hidden;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--spring)}.sys-card:hover{border-color:var(--border-h);transform:translateY(-4px)}.sys-num{font-family:var(--display);font-size:3.5rem;font-weight:800;line-height:1;background:linear-gradient(135deg,var(--teal),var(--blue));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;opacity:.25;margin-bottom:.75rem}.sys-card h3{font-family:var(--display);font-size:1.1rem;font-weight:700;color:var(--white);margin-bottom:.75rem;letter-spacing:-.01em}.sys-card p{font-size:.93rem;color:var(--text-2);line-height:1.8}.sys-bar{position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--teal),var(--blue));transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}.sys-card:hover .sys-bar{transform:scaleX(1)}.skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.skill-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-xl);padding:2rem;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--spring),background var(--dur) var(--ease)}.skill-card:hover{border-color:var(--border-h);transform:translateY(-4px);background:#ffffff0d}.skill-head{display:flex;align-items:center;gap:.85rem;margin-bottom:.85rem}.skill-ico{width:2.5rem;height:2.5rem;border-radius:var(--r-sm);display:grid;place-items:center;flex-shrink:0}.skill-ico svg{width:1.15rem;height:1.15rem}.ico-teal{background:#00e5b014;border:1px solid rgba(0,229,176,.15);color:var(--teal)}.ico-blue{background:#4d8fff14;border:1px solid rgba(77,143,255,.15);color:var(--blue)}.ico-purple{background:#7c6eff14;border:1px solid rgba(124,110,255,.15);color:var(--purple)}.ico-orange{background:#fb923c14;border:1px solid rgba(251,146,60,.15);color:#f97316}.skill-card h3{font-family:var(--display);font-size:1.05rem;font-weight:700;color:var(--white)}.skill-desc{font-size:.93rem;color:var(--text-2);line-height:1.75;margin-bottom:1.1rem}.skill-tags{display:flex;flex-wrap:wrap;gap:.45rem}.skill-tag{padding:.3rem .72rem;border-radius:var(--r-xl);border:1px solid rgba(0,229,176,.12);background:#00e5b00d;color:var(--teal);font-size:.78rem;font-weight:600;transition:background .2s var(--ease),border-color .2s var(--ease),transform .15s var(--spring)}.skill-tag:hover{background:#00e5b01f;border-color:#00e5b040;transform:translateY(-1px)}.contact-wrap{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2.5rem;padding:4rem 0;position:relative}.contact-heading{font-family:var(--display);font-size:clamp(3rem,7vw,6rem);font-weight:800;color:var(--white);line-height:1.05;letter-spacing:-.04em;margin-bottom:.5rem}.contact-heading .grad{background:linear-gradient(135deg,var(--teal) 0%,var(--blue) 60%,var(--purple) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.contact-sub{font-size:1.15rem;color:var(--text-2);line-height:1.8;max-width:48ch;margin:0 auto}.contact-card{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem;margin-top:2rem}.contact-item{display:grid;place-items:center;width:3.8rem;height:3.8rem;border-radius:50%;border:1px solid var(--border);color:var(--text-2);background:var(--panel);transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease),transform var(--dur) var(--spring),box-shadow var(--dur) var(--ease)}.contact-item svg{width:1.6rem;height:1.6rem}.contact-item:hover{border-color:var(--teal);color:var(--teal);transform:translateY(-4px);box-shadow:0 8px 24px var(--teal-glow)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#050508d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:grid;place-items:center;padding:1.5rem;animation:fadeIn .3s var(--ease) forwards}.modal-content{position:relative;width:100%;max-width:440px;background:#0a0a10f2;border:1px solid var(--border-h);border-radius:var(--r-xl);padding:2.5rem;box-shadow:0 24px 64px #0006;animation:modalScaleUp .4s var(--spring) forwards}.modal-close{position:absolute;top:1.25rem;right:1.25rem;width:2rem;height:2rem;border-radius:50%;display:grid;place-items:center;color:var(--text-2);transition:color .2s var(--ease),background .2s var(--ease)}.modal-close:hover{color:var(--white);background:#ffffff14}.modal-close svg{width:1.1rem;height:1.1rem}.modal-header{text-align:center;margin-bottom:2rem}.modal-icon{width:3rem;height:3rem;margin:0 auto 1rem;background:var(--teal-glow);border:1px solid rgba(0,229,176,.3);color:var(--teal);border-radius:50%;display:grid;place-items:center}.modal-header h3{font-family:var(--display);font-size:1.6rem;color:var(--white);font-weight:700;margin-bottom:.35rem}.modal-header p{font-size:.9rem;color:var(--text-2)}.modal-form{display:flex;flex-direction:column;gap:1rem}.modal-form input,.modal-form textarea{width:100%;padding:.85rem 1rem;background:#ffffff0a;border:1px solid var(--border);border-radius:var(--r-sm);color:var(--white);font-family:inherit;font-size:.95rem;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.modal-form input:focus,.modal-form textarea:focus{outline:none;border-color:var(--teal);background:#00e5b00a}.modal-form textarea{resize:vertical;min-height:100px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalScaleUp{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.footer{border-top:1px solid var(--border);padding:2rem;text-align:center;font-size:.83rem;color:var(--text-2)}.footer em{color:var(--teal);font-style:normal}@media (max-width:1024px){.social-rail{display:none}.hero-content{padding-left:2.5rem}.about-grid,.projects-grid,.systems-grid,.skills-grid,.contact-wrap{grid-template-columns:1fr}}@media (max-width:768px){.nav{padding:1rem 1.25rem}.nav-links{display:none}.mobile-tab-bar{display:flex}.hero-name{font-size:clamp(3rem,12vw,5rem)}.hero-content{padding:8rem 1.5rem 5rem}.sec{padding:5rem 0}.sec-inner{padding:0 1.25rem}.btn{padding:.75rem 1.25rem;font-size:.85rem}.hero-actions{flex-direction:column}.btn{width:100%;justify-content:center}.btt{bottom:85px;right:1.25rem}.footer{padding-bottom:85px}}@media (max-width:480px){body{cursor:auto}.cursor-dot,.cursor-ring{display:none}}
