:root,:root[data-theme=dark]{--bg:#07080d;--bg-2:#0b0e16;--card:linear-gradient(180deg, #ffffff09, #ffffff02);--card-solid:#0d1019;--surface:#ffffff09;--surface-hi:#ffffff12;--glass:#090b12a8;--text:#edf1f8;--text-soft:#b5bdcc;--text-mute:#7b8597;--text-faint:#828c9f;--on-accent:#07080d;--border:#ffffff17;--border-2:#ffffff29;--border-acc:#6e8eff73;--grid:#ffffff0a;--accent:#6e8eff;--accent-h:#88a2ff;--accent-press:#5170e6;--teal:#5eead4;--violet:#a78bfa;--link:#86b8ff;--accent-wash:#6e8eff1a;--ok:#34d399;--grad:linear-gradient(100deg, #6e8eff 0%, #86b8ff 45%, #5eead4 100%);--glow-blue:#6e8eff29;--glow-teal:#5eead412;--glow:0 0 46px -12px #6e8eff80;--shadow:0 1px 0 #ffffff08, 0 24px 50px -32px #000000c7;--shadow-lg:0 2px 0 #ffffff08, 0 54px 96px -42px #000000db;--display:"Space Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--r-sm:8px;--r:12px;--r-lg:18px;--t-fast:.16s;--t:.3s;--t-slow:.7s;--ease:cubic-bezier(.16, 1, .3, 1);--maxw:1180px;--gutter:30px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f5f7fc;--bg-2:#eef2f8;--card:#fff;--card-solid:#fff;--surface:#f1f4fa;--surface-hi:#e9eef7;--glass:#fffc;--text:#0d1220;--text-soft:#3a4458;--text-mute:#65708a;--text-faint:#687285;--on-accent:#fff;--border:#0d12201a;--border-2:#0d12202b;--border-acc:#3b5bdb66;--grid:#0d12200b;--accent:#3b5bdb;--accent-h:#2f49c0;--accent-press:#26409f;--teal:#0d9488;--violet:#7c5cf0;--link:#3b5bdb;--accent-wash:#3b5bdb12;--ok:#0f9d58;--grad:linear-gradient(100deg, #3b5bdb 0%, #4f73f0 45%, #0d9488 100%);--glow-blue:#3b5bdb12;--glow-teal:#0d94880d;--glow:0 0 42px -14px #3b5bdb52;--shadow:0 1px 2px #141e3c0f, 0 24px 50px -34px #141e3c4d;--shadow-lg:0 2px 10px #141e3c14, 0 54px 96px -44px #141e3c57;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{max-width:100%;margin:0;padding:0;overflow-x:hidden}html{scroll-behavior:smooth}body{background-color:var(--bg);color:var(--text);font-family:var(--sans);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;font-optical-sizing:auto;text-rendering:optimizelegibility;font-feature-settings:"kern", "liga", "calt";transition:background-color .45s var(--ease), color .45s var(--ease);font-size:16px;line-height:1.62}body:before{content:"";z-index:-2;background-image:radial-gradient(var(--grid) 1px, transparent 1px);pointer-events:none;background-size:30px 30px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(92% 60% at 50% 0,#000 32%,#0000 100%);mask-image:radial-gradient(92% 60% at 50% 0,#000 32%,#0000 100%)}body:after{content:"";z-index:-2;background:radial-gradient(680px 520px at 86% -6%, var(--glow-blue), transparent 70%), radial-gradient(560px 520px at 2% 8%, var(--glow-teal), transparent 72%);pointer-events:none;position:fixed;inset:0}a{color:var(--link);transition:color var(--t-fast) ease;text-decoration:none}a:hover{color:var(--accent-h)}img,svg{max-width:100%;display:block}strong{color:var(--text);font-weight:600}::selection{background:var(--accent);color:var(--on-accent)}.container{width:100%;max-width:var(--maxw);padding:0 var(--gutter);margin:0 auto}.hero>*,.stats>*,.about-grid>*,.projects-grid>*,.skills-grid>*,.contact-box>*,.hero-meta>*,.skill-card>.skill-chips>.skill-chip,.project>*{min-width:0}.reveal{opacity:0;transition:opacity var(--t-slow) var(--ease), transform var(--t-slow) var(--ease);will-change:opacity, transform;transform:translateY(20px)}.reveal.inView{opacity:1;transform:none}.stagger>*{opacity:0;transition:opacity var(--t-slow) var(--ease), transform var(--t-slow) var(--ease);transform:translateY(16px)}.stagger.inView>*{opacity:1;transform:none}.stagger.inView>:first-child{transition-delay:40ms}.stagger.inView>:nth-child(2){transition-delay:.11s}.stagger.inView>:nth-child(3){transition-delay:.18s}.stagger.inView>:nth-child(4){transition-delay:.25s}.stagger.inView>:nth-child(5){transition-delay:.32s}.stagger.inView>:nth-child(6){transition-delay:.39s}.stagger.inView>:nth-child(7){transition-delay:.45s}.stagger.inView>:nth-child(8){transition-delay:.51s}.word-reveal{display:inline}.word-reveal .wr-word{opacity:0;transition:opacity .6s var(--ease), transform .6s var(--ease);display:inline-block;transform:translateY(.3em)}.word-reveal.inView .wr-word{opacity:1;transform:none}.scroll-progress{background:var(--grad);z-index:100;transform-origin:0;pointer-events:none;height:2px;position:fixed;top:0;left:0;right:0;transform:scaleX(0)}.nav{z-index:50;transition:border-color var(--t) ease, background var(--t) ease, backdrop-filter var(--t) ease;background:0 0;border-bottom:1px solid #0000;position:sticky;top:0}.nav.scrolled{background:var(--glass);-webkit-backdrop-filter:blur(16px)saturate(1.4);border-bottom-color:var(--border)}.nav-inner{justify-content:space-between;align-items:center;gap:16px;height:70px;display:flex}.logo{color:var(--text);flex:none;align-items:center;gap:11px;font-weight:600;display:flex}.logo span{font-family:var(--mono);letter-spacing:1.5px;text-transform:uppercase;font-size:13px}.logo-photo{object-fit:cover;object-position:center top;border:1px solid var(--border-2);width:38px;height:38px;transition:border-color var(--t) ease, box-shadow var(--t) ease;border-radius:9px}.logo:hover .logo-photo{border-color:var(--accent);box-shadow:var(--glow)}.nav-links{align-items:center;gap:26px;display:flex}.nav-links a{color:var(--text-soft);font-family:var(--sans);letter-spacing:.1px;padding:6px 0;font-size:14px;font-weight:500;position:relative}.nav-links a:after{content:"";background:var(--grad);height:2px;transition:right var(--t) var(--ease);border-radius:2px;position:absolute;bottom:-2px;left:0;right:100%}.nav-links a:hover{color:var(--text)}.nav-links a:hover:after,.nav-links a.active:after{right:0}.nav-links a.active{color:var(--text)}.theme-toggle{background:var(--surface);border:1px solid var(--border);width:40px;height:40px;color:var(--text-soft);cursor:pointer;transition:color var(--t) ease, border-color var(--t) ease, background var(--t) ease, transform var(--t-fast) ease;border-radius:11px;flex:none;justify-content:center;align-items:center;display:inline-flex}.theme-toggle:hover{color:var(--text);border-color:var(--border-acc);background:var(--surface-hi)}.theme-toggle:active{transform:scale(.94)}.theme-toggle svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:19px;height:19px}.theme-toggle .icon-sun{display:none}.theme-toggle .icon-moon,:root[data-theme=light] .theme-toggle .icon-sun{display:block}:root[data-theme=light] .theme-toggle .icon-moon{display:none}.nav-cta{background:var(--accent);color:var(--on-accent);font-family:var(--sans);letter-spacing:.1px;transition:background var(--t) ease, transform var(--t) var(--ease), box-shadow var(--t) ease;border-radius:11px;flex:none;align-items:center;gap:7px;padding:10px 17px;font-size:13.5px;font-weight:600;display:inline-flex}.nav-cta:hover{background:var(--accent-h);color:var(--on-accent);box-shadow:0 12px 30px -12px var(--accent);transform:translateY(-1px)}.nav-cta .arrow{transition:transform var(--t) var(--ease)}.nav-cta:hover .arrow{transform:translate(3px)}.nav-burger{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;flex:none;width:42px;height:40px;padding:0;display:none;position:relative}.nav-burger span{background:var(--text);height:2px;transition:transform .3s var(--ease), opacity .2s ease, top .3s var(--ease);border-radius:2px;display:block;position:absolute;left:11px;right:11px}.nav-burger span:first-child{top:13px}.nav-burger span:nth-child(2){top:19px}.nav-burger span:nth-child(3){top:25px}.nav-burger.open span:first-child{top:19px;transform:rotate(45deg)}.nav-burger.open span:nth-child(2){opacity:0}.nav-burger.open span:nth-child(3){top:19px;transform:rotate(-45deg)}.hero{grid-template-columns:1.08fr .92fr;align-items:center;gap:64px;padding:108px 30px 84px;display:grid;position:relative}.hero-left{min-width:0}.hero-right{justify-content:center;min-width:0;display:flex}.eyebrow{font-family:var(--mono);letter-spacing:.6px;text-transform:uppercase;color:var(--text-soft);border:1px solid var(--border-2);background:var(--surface);border-radius:999px;align-items:center;gap:9px;margin-bottom:24px;padding:7px 14px;font-size:11.5px;display:inline-flex}.led{background:var(--ok);border-radius:50%;flex:none;width:8px;height:8px;animation:2.4s ease-out infinite pulse;box-shadow:0 0 #34d3998c}@keyframes pulse{0%{box-shadow:0 0 #34d39980}70%{box-shadow:0 0 0 7px #34d39900}to{box-shadow:0 0 #34d39900}}.view-toggle-wrap{flex-wrap:wrap;align-items:center;gap:13px;margin-bottom:26px;display:flex}.view-toggle-hint{font-family:var(--mono);letter-spacing:1.6px;text-transform:uppercase;color:var(--text-mute);font-size:10.5px}.view-toggle{border:1px solid var(--border-2);background:var(--surface);font-family:var(--sans);border-radius:999px;padding:4px;font-size:13px;display:inline-flex;position:relative}.vt-pill{z-index:1;cursor:pointer;color:var(--text-mute);font-family:inherit;font-size:inherit;letter-spacing:.2px;transition:color var(--t-fast) ease;background:0 0;border:none;border-radius:999px;padding:7px 16px;font-weight:600;position:relative}.vt-pill:hover{color:var(--text)}.vt-pill.active{color:var(--on-accent)}.vt-indicator{background:var(--grad);box-shadow:0 6px 18px -6px var(--accent);transition:left var(--t) var(--ease), width var(--t) var(--ease);z-index:0;border-radius:999px;position:absolute;top:4px;bottom:4px}.hero-title{font-family:var(--display);letter-spacing:-.035em;color:var(--text);overflow-wrap:anywhere;margin:0 0 26px;font-size:clamp(44px,6.7vw,84px);font-weight:600;line-height:1}.hero-title .line{max-width:100%;display:block;overflow:hidden}.hero-title .line span{max-width:100%;animation:titleRise 1s var(--ease) forwards;display:block;transform:translateY(110%)}.hero-title .line:first-child span{animation-delay:.12s}.hero-title .line:nth-child(2) span{animation-delay:.3s}@keyframes titleRise{to{transform:none}}.grad{background:var(--grad);color:#0000;filter:drop-shadow(0 3px 22px var(--glow-blue));-webkit-background-clip:text;background-clip:text;display:inline-block}.hero-sub{color:var(--text-soft);max-width:56ch;margin:0 0 30px;font-size:17.5px;line-height:1.6}.hero-sub strong{color:var(--text)}.hero-cta{flex-wrap:wrap;gap:12px;margin-bottom:36px;display:flex}.btn{font-family:var(--sans);letter-spacing:.1px;cursor:pointer;transition:transform var(--t) var(--ease), background var(--t) ease, border-color var(--t) ease, color var(--t) ease, box-shadow var(--t) ease;border:1px solid #0000;border-radius:11px;align-items:center;gap:8px;padding:13px 22px;font-size:14px;font-weight:600;display:inline-flex}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-h);color:var(--on-accent);box-shadow:0 14px 36px -12px var(--accent);transform:translateY(-2px)}.btn-ghost{background:var(--surface);color:var(--text);border-color:var(--border-2)}.btn-ghost:hover{background:var(--surface-hi);border-color:var(--border-acc);color:var(--text)}.btn-prominent{background:var(--grad);color:var(--on-accent);padding:15px 26px;font-size:14.5px}.btn-prominent:hover{color:var(--on-accent);box-shadow:0 16px 40px -12px var(--accent);transform:translateY(-2px)}.arrow{transition:transform var(--t) var(--ease)}.btn:hover .arrow{transform:translate(4px)}.hero-tracks{font-family:var(--mono);color:var(--text-soft);flex-direction:column;gap:4px;margin:0 0 18px;font-size:12.5px;display:flex}.hero-tracks a{color:var(--accent);text-decoration:none}.hero-tracks a:hover{text-decoration:underline}.hero-meta{font-family:var(--mono);background:var(--card);border:1px solid var(--border);border-radius:var(--r);grid-template-columns:repeat(3,1fr);gap:0;font-size:12.5px;display:grid;overflow:hidden}.hero-meta>div{border-left:1px solid var(--border);flex-direction:column;gap:4px;padding:15px 20px;display:flex}.hero-meta>div:first-child{border-left:0}.meta-k{color:var(--text-mute);text-transform:uppercase;letter-spacing:1px;font-size:10.5px}.meta-v{color:var(--text)}.view-fade{animation:viewFade .45s var(--ease)}@keyframes viewFade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.hero-photo{background:var(--card);border:1px solid var(--border-2);border-radius:var(--r);width:100%;max-width:360px;box-shadow:var(--shadow);margin:0;padding:12px 12px 0;position:relative}.hero-photo:before,.hero-photo:after{content:"";border:1.5px solid var(--accent);z-index:2;width:14px;height:14px;position:absolute;top:-1px}.hero-photo:before{border-bottom:0;border-right:0;left:-1px}.hero-photo:after{border-bottom:0;border-left:0;right:-1px}.hero-photo img{border-radius:9px;width:100%;height:auto;display:block}.hero-photo figcaption{font-family:var(--mono);letter-spacing:.5px;color:var(--text-mute);text-transform:uppercase;border-top:1px solid var(--border);align-items:center;gap:8px;margin-top:12px;padding:11px 2px 12px;font-size:10.5px;display:flex}.hero-photo .plate-no{color:var(--accent)}.react-badge{vertical-align:middle;font-family:var(--mono);letter-spacing:.5px;color:var(--link);border:1px solid var(--border-2);background:var(--surface);border-radius:999px;align-items:center;gap:6px;margin-left:10px;padding:3px 10px;font-size:10.5px;display:inline-flex}.stats{grid-template-columns:repeat(4,1fr);gap:16px;padding:8px 30px 92px;display:grid}.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--r);transition:transform var(--t) var(--ease), border-color var(--t) ease, box-shadow var(--t) ease;padding:22px 22px 20px;position:relative;overflow:hidden}.stat:before{content:"";background:var(--grad);transform-origin:0;height:2px;transition:transform .5s var(--ease);position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.stat:hover{border-color:var(--border-acc);box-shadow:var(--glow), var(--shadow);transform:translateY(-4px)}.stat:hover:before{transform:scaleX(1)}.stat-num{font-family:var(--display);letter-spacing:-.03em;color:var(--text);font-feature-settings:"tnum";margin-bottom:9px;font-size:40px;font-weight:700;line-height:1}.stat:hover .stat-num{color:var(--accent)}.stat-lbl{color:var(--text-soft);font-size:13px;line-height:1.45}.section{padding:104px 30px;scroll-margin-top:86px;position:relative}.section-head{max-width:760px;margin-bottom:54px}.section-tag{font-family:var(--mono);color:var(--accent);letter-spacing:1.8px;text-transform:uppercase;align-items:center;gap:9px;margin-bottom:16px;font-size:11.5px;display:inline-flex}.section-tag:before{content:"";background:var(--grad);border-radius:2px;width:24px;height:2px}.section h2{font-family:var(--display);letter-spacing:-.03em;color:var(--text);margin:0;font-size:clamp(31px,3.9vw,50px);font-weight:600;line-height:1.05}.about-grid{grid-template-columns:1.45fr .85fr;align-items:start;gap:44px;display:grid}.about-copy p{color:var(--text-soft);margin:0 0 16px;font-size:16.5px}.about-copy p:first-child:first-letter{font-family:var(--display);float:left;color:var(--accent);padding:10px 14px 0 0;font-size:3.1em;font-weight:600;line-height:.82}.about-copy em{color:var(--text);font-style:normal}.tag{font-family:var(--mono);background:var(--surface);border:1px solid var(--border-2);color:var(--text-soft);transition:border-color var(--t-fast) ease, color var(--t-fast) ease, transform var(--t-fast) ease;border-radius:999px;padding:5px 11px;font-size:11.5px;display:inline-block}.tag:hover{border-color:var(--border-acc);color:var(--accent);transform:translateY(-1px)}.aside-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);padding:24px 24px 20px;position:relative}.aside-card:after{content:"";border-top:1.5px solid var(--accent);border-right:1.5px solid var(--accent);width:14px;height:14px;position:absolute;top:14px;right:14px}.aside-card-head{font-family:var(--mono);color:var(--text-mute);text-transform:uppercase;letter-spacing:1.4px;border-bottom:1px solid var(--border);margin-bottom:16px;padding-bottom:14px;font-size:11px}.aside-card dl{grid-template-columns:96px 1fr;gap:12px 16px;margin:0;display:grid}.aside-card dt{font-family:var(--mono);color:var(--text-mute);padding-top:1px;font-size:11.5px}.aside-card dd{color:var(--text);margin:0;font-size:13.5px}.proof-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.proof-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);transition:transform var(--t) var(--ease), border-color var(--t) ease, box-shadow var(--t) ease;flex-direction:column;gap:10px;padding:22px 22px 20px;display:flex;position:relative;overflow:hidden}.proof-card:before{content:"";background:var(--grad);transform-origin:0;height:2px;transition:transform .5s var(--ease);position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.proof-card:hover{border-color:var(--border-acc);box-shadow:var(--glow), var(--shadow);transform:translateY(-4px)}.proof-card:hover:before{transform:scaleX(1)}.proof-card p{color:var(--text-soft);flex:1;margin:0;font-size:13.5px;line-height:1.55}.proof-card a{font-family:var(--mono);color:var(--accent);font-size:12px;text-decoration:none}.proof-card a:hover{text-decoration:underline}.proof-quotes{grid-template-columns:repeat(2,1fr);gap:16px;margin-top:26px;display:grid}.proof-quote{background:var(--card);border:1px solid var(--border);border-left:2px solid var(--accent);border-radius:var(--r);margin:0;padding:20px 22px}.proof-quote blockquote{color:var(--text);margin:0 0 12px;font-size:14.5px;line-height:1.6}.proof-quote figcaption{font-family:var(--mono);color:var(--text-mute);font-size:11.5px}.timeline{margin:0;padding:0 0 0 4px;list-style:none;position:relative}.timeline:before{content:"";background:linear-gradient(180deg, var(--border-acc), var(--border) 60%, transparent);width:1px;position:absolute;top:8px;bottom:8px;left:6px}.t-item{padding:0 0 30px 40px;position:relative}.t-marker{background:var(--card-solid);border:2px solid var(--accent);width:14px;height:14px;transition:box-shadow var(--t) ease, background var(--t) ease;border-radius:50%;position:absolute;top:23px;left:0}.t-marker:after{content:"";background:var(--accent);opacity:0;transition:opacity var(--t) ease;border-radius:50%;position:absolute;inset:3px}.t-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);transition:border-color var(--t) ease, transform var(--t) var(--ease), box-shadow var(--t) ease;padding:22px 24px}.t-card:hover{border-color:var(--border-acc);box-shadow:var(--glow), var(--shadow);transform:translate(3px)}.t-item:has(.t-card:hover) .t-marker{box-shadow:var(--glow)}.t-item:has(.t-card:hover) .t-marker:after{opacity:1}.t-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:5px;display:flex}.t-head h3{font-family:var(--display);letter-spacing:-.015em;color:var(--text);margin:0;font-size:20px;font-weight:600}.t-when{font-family:var(--mono);color:var(--text-mute);font-size:12px}.t-company{font-family:var(--mono);color:var(--accent);margin-bottom:13px;font-size:12.5px}.t-points{color:var(--text-soft);margin:0;padding-left:18px;font-size:14.5px}.t-points li{margin:5px 0}.t-points li::marker{color:var(--border-2)}.t-points em{color:var(--link);font-style:normal}.t-points strong{color:var(--text)}.projects-grid{grid-template-columns:1fr;align-items:start;gap:24px;display:grid}.projects-grid>.project-section-heading{grid-column:1/-1}@media (width>=760px){.projects-grid .project-desc{max-width:74ch}.projects-grid .project-bullets{columns:2;column-gap:44px}.projects-grid .project-bullets li{break-inside:avoid}}.project-section-heading{border-top:1px solid var(--border-2);margin-top:8px;padding-top:30px}.project-section-heading .section-tag{margin-bottom:12px}.project-section-heading h3{font-family:var(--display);letter-spacing:-.02em;color:var(--text);margin:0 0 8px;font-size:clamp(22px,2.7vw,30px);font-weight:600}.project-section-heading p{color:var(--text-soft);max-width:760px;margin:0;font-size:14.5px}.project{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);height:100%;transition:border-color var(--t) ease, transform var(--t) var(--ease), box-shadow var(--t) ease, background var(--t) ease;flex-direction:column;padding:28px;display:flex;position:relative;overflow:hidden}.project:before{content:"";background:var(--grad);transform-origin:0;height:2px;transition:transform .5s var(--ease);border-radius:2px;position:absolute;top:0;left:24px;right:24px;transform:scaleX(0)}.project:hover{border-color:var(--border-acc);box-shadow:var(--glow), var(--shadow);transform:translateY(-4px)}.project:hover:before{transform:scaleX(1)}.project.featured{background:linear-gradient(180deg, var(--accent-wash), transparent 70%), var(--card);border-color:var(--border-acc);grid-column:1/-1}.project.featured:before{transform:scaleX(1)}.project-meta{font-family:var(--mono);color:var(--text-mute);border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;margin-bottom:14px;padding-bottom:12px;font-size:11.5px;display:flex}.project-kind{color:var(--accent)}.project-title{font-family:var(--display);letter-spacing:-.02em;color:var(--text);margin:0 0 12px;font-size:23px;font-weight:600}.project.featured .project-title{font-size:clamp(26px,3vw,34px)}.project-desc{color:var(--text-soft);margin:0 0 16px;font-size:14.5px}.project-desc em{color:var(--text);font-style:normal}.project-bullets{flex-direction:column;gap:6px;margin:0 0 16px;padding:0;list-style:none;display:flex}.project-bullets li{font-family:var(--mono);color:var(--text-soft);padding-left:20px;font-size:12.5px;line-height:1.5;position:relative}.project-bullets li:before{content:"→";color:var(--accent);position:absolute;top:0;left:0}.project-bullets strong{color:var(--text)}.project-bullets code{font-family:var(--mono);background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:5px;padding:0 5px;font-size:.92em}.project-tags{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.project-tags .tag{border-color:var(--border);color:var(--text-mute);background:0 0;padding:3px 9px;font-size:10.5px}.project-tags .tag:hover{color:var(--text-soft);border-color:var(--border-2);transform:none}.project-cta{flex-wrap:wrap;align-items:center;gap:9px;margin-top:auto;padding-top:18px;display:flex}.cta-subtitle{font-family:var(--mono);color:var(--text-mute);flex-basis:100%;margin-top:6px;font-size:12px}.cta-tip{color:var(--text-soft);background:var(--accent-wash);border:1px solid var(--border-acc);border-radius:var(--r-sm);flex-basis:100%;margin-top:4px;padding:11px 14px;font-size:12.5px}.cta-tip strong{color:var(--text)}.cta-tip em{color:var(--accent);font-style:normal}.demos-sub{color:var(--text-soft);max-width:70ch;margin:14px 0 0;font-size:14.5px;line-height:1.6}.demos-sub a{color:var(--link);text-underline-offset:2px;text-decoration:underline}.demos-grid{grid-template-columns:repeat(3,1fr);align-items:stretch;gap:20px;display:grid}.demo-slide .project-desc{font-size:14px}@media (width<=1020px){.demos-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.demos-grid,.proof-grid{grid-template-columns:1fr}}.skills-grid{grid-template-columns:repeat(3,1fr);align-items:start;gap:18px;display:grid}.skill-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);opacity:0;transition:opacity var(--t-slow) var(--ease), transform var(--t-slow) var(--ease), border-color var(--t) ease, box-shadow var(--t) ease;padding:22px 22px 20px;transform:translateY(16px)}.skill-card.inView{opacity:1;transform:none}.skill-card:hover{border-color:var(--border-acc);box-shadow:var(--glow), var(--shadow)}.skill-card h3{font-family:var(--mono);text-transform:uppercase;letter-spacing:1.4px;color:var(--text-mute);border-bottom:1px solid var(--border);margin:0 0 16px;padding-bottom:12px;font-size:11.5px}.skill-chips{flex-wrap:wrap;gap:7px;display:flex}.skill-chip{font-family:var(--sans);color:var(--text-soft);background:var(--surface);border:1px solid var(--border);white-space:nowrap;transition:border-color var(--t-fast) ease, color var(--t-fast) ease, background var(--t-fast) ease;border-radius:999px;align-items:center;padding:6px 12px;font-size:12.5px;font-weight:500;display:inline-flex}.skill-chip:hover{border-color:var(--border-acc);color:var(--text);background:var(--surface-hi)}.faq-list{flex-direction:column;gap:12px;display:flex}.faq-item{border:1px solid var(--border);border-radius:var(--r);background:var(--card);transition:border-color var(--t) ease, background var(--t) ease;overflow:hidden}.faq-item:hover{border-color:var(--border-2)}.faq-item[open]{border-color:var(--border-acc)}.faq-item summary{cursor:pointer;font-family:var(--display);color:var(--text);justify-content:space-between;align-items:center;gap:14px;padding:18px 22px;font-size:17px;font-weight:600;list-style:none;display:flex}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";font-family:var(--mono);color:var(--accent);transition:transform var(--t) var(--ease);flex-shrink:0;font-size:20px}.faq-item[open] summary:after{transform:rotate(135deg)}.faq-answer{color:var(--text-soft);max-width:72ch;padding:0 22px 20px;font-size:14.5px;line-height:1.7}.faq-answer a{color:var(--link);text-underline-offset:2px;text-decoration:underline}.faq-answer a:hover{color:var(--accent-h)}.contact-box{background:linear-gradient(180deg, var(--accent-wash), transparent 60%), var(--card);border:1px solid var(--border-acc);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);grid-template-columns:1.15fr 1fr;align-items:center;gap:44px;padding:50px;display:grid;position:relative;overflow:hidden}.contact-box:before{content:"";background:radial-gradient(600px 300px at 100% 0%, var(--glow-blue), transparent 70%);pointer-events:none;position:absolute;inset:0}.contact-left{z-index:1;position:relative}.contact-left h2{font-family:var(--display);letter-spacing:-.025em;color:var(--text);margin:0 0 4px;font-size:clamp(26px,3.2vw,38px);font-weight:600}.contact-left p{color:var(--text-soft);max-width:46ch;margin:14px 0 24px}.contact-list{z-index:1;gap:8px;margin:0;padding:0;list-style:none;display:grid;position:relative}.contact-list li{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);transition:border-color var(--t) ease, transform var(--t) var(--ease), background var(--t) ease;grid-template-columns:96px 1fr;align-items:center;gap:16px;padding:13px 16px;display:grid}.contact-list li:hover{border-color:var(--border-acc);background:var(--surface-hi);transform:translate(4px)}.contact-k{font-family:var(--mono);color:var(--text-mute);text-transform:uppercase;letter-spacing:1.2px;font-size:10.5px}.contact-v{color:var(--text);font-size:14px}a.contact-v{color:var(--link)}a.contact-v:hover{color:var(--accent-h)}.footer{border-top:1px solid var(--border);margin-top:44px;padding:34px 0}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;display:flex}.footer-copy{font-family:var(--mono);color:var(--text-mute);font-size:12px}.react-badge{margin-left:8px}.footer-links{gap:20px;display:flex}.footer-links a{font-family:var(--mono);color:var(--text-soft);font-size:12px}.footer-links a:hover{color:var(--accent-h)}.back-to-top{bottom:calc(24px + env(safe-area-inset-bottom));right:calc(24px + env(safe-area-inset-right));z-index:60;border:1px solid var(--border-2);background:var(--glass);-webkit-backdrop-filter:blur(10px);width:46px;height:46px;color:var(--text-soft);cursor:pointer;opacity:0;pointer-events:none;box-shadow:var(--shadow);border-radius:13px;justify-content:center;align-items:center;transition:opacity .22s,transform .22s,background .15s,border-color .15s,color .15s;display:inline-flex;position:fixed;transform:translateY(8px)}.back-to-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.back-to-top:hover{border-color:var(--border-acc);color:var(--text);transform:translateY(-2px)}.back-to-top:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.back-to-top svg{stroke:currentColor;fill:none;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:19px;height:19px}@media print{.back-to-top{display:none!important}}.social-rail{z-index:55;flex-direction:column;align-items:center;gap:10px;display:flex;position:fixed;top:50%;left:18px;transform:translateY(-50%)}.social-rail .social-link{width:40px;height:40px;color:var(--text-mute);background:var(--glass);border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);transition:color var(--t) ease, border-color var(--t) ease, background var(--t) ease, transform var(--t-fast) var(--ease), box-shadow var(--t) ease;border-radius:11px;place-items:center;display:grid}.social-rail .social-link:hover{color:var(--text);border-color:var(--border-acc);background:var(--surface-hi);box-shadow:var(--glow);transform:translateY(-3px)}.social-rail .social-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.social-rail .social-link svg{fill:currentColor;width:18px;height:18px}.social-rail-line{background:linear-gradient(var(--border-2), transparent);width:1px;height:60px;margin-top:4px}@media (width<=1280px){.social-rail{display:none}}@media (width<=1020px){.hero{grid-template-columns:1fr;gap:40px;padding:64px 30px 44px}.hero-right{justify-content:flex-start}.hero-photo{max-width:280px}.stats{grid-template-columns:repeat(2,1fr);padding-bottom:60px}.stat{padding:20px 18px 18px}.proof-grid{grid-template-columns:repeat(2,1fr)}.proof-quotes{grid-template-columns:1fr}.about-grid{grid-template-columns:1fr;gap:32px}.projects-grid{grid-template-columns:1fr}.project.featured{grid-column:auto}.skills-grid{grid-template-columns:repeat(2,1fr)}.contact-box{grid-template-columns:1fr;padding:36px}}@media (width<=1000px){.nav-cta{display:none}}@media (width<=760px){:root{--gutter:20px}.container{padding:0 20px}.nav-inner{gap:10px;height:62px}.nav-cta{display:none}.nav-burger{display:inline-block}.nav-links{background:var(--glass);-webkit-backdrop-filter:blur(16px)saturate(1.4);border-bottom:1px solid var(--border);opacity:0;pointer-events:none;transition:transform var(--t) var(--ease), opacity var(--t) ease;flex-direction:column;align-items:stretch;gap:0;max-height:calc(100vh - 62px);padding:6px 0 12px;position:absolute;top:62px;left:0;right:0;overflow-y:auto;transform:translateY(-10px)}.nav-links.open{opacity:1;pointer-events:auto;transform:none}.nav-links a{border-bottom:1px solid var(--border);padding:14px 24px;font-size:14.5px}.nav-links a:after{display:none}.nav-links a:hover,.nav-links a.active{background:var(--surface);color:var(--accent)}.hero{gap:30px;padding:40px 20px 24px}.hero-photo{max-width:230px}.hero-sub{font-size:16px}.hero-meta{grid-template-columns:1fr}.hero-meta>div{border-left:0;border-top:1px solid var(--border);padding:13px 16px}.hero-meta>div:first-child{border-top:0}.stats{grid-template-columns:repeat(2,1fr);gap:12px;padding:14px 20px 56px}.stat{padding:16px 16px 14px}.stat-num{font-size:32px}.section{padding:64px 20px}.section-head{margin-bottom:30px}.timeline{padding-left:2px}.t-item{padding-left:30px}.t-card{padding:18px}.t-head h3{font-size:18px}.projects-grid{gap:16px}.project{padding:22px 20px}.skills-grid{grid-template-columns:1fr;gap:14px}.contact-box{gap:28px;padding:28px 22px}.contact-list li{grid-template-columns:80px 1fr;gap:12px}}@media (width<=380px){.hero-title{font-size:38px}.stats{grid-template-columns:1fr}.hero-cta{flex-direction:column;align-items:stretch}.btn{justify-content:center}.view-toggle{width:100%}.vt-pill{text-align:center;flex:1}}@media (hover:none) and (pointer:coarse){a,button,.btn,.vt-pill,.tag,.nav-links a,.footer-links a,.theme-toggle{min-height:44px}.vt-pill,.tag{align-items:center;display:inline-flex}}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--bg-2)}::-webkit-scrollbar-thumb{background:var(--border-2);border:3px solid var(--bg-2);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--text-mute)}a:focus-visible,button:focus-visible,.btn:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--r-sm)}.skip-link{z-index:200;position:absolute;top:0;left:-9999px}.skip-link:focus{background:var(--accent);color:var(--on-accent);border-radius:var(--r-sm);font-family:var(--mono);padding:10px 16px;font-size:13px;top:8px;left:8px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal,.stagger>*,.skill-card,.word-reveal .wr-word,.hero-title .line span{opacity:1!important;transform:none!important}body:after{animation:none}}#root{z-index:1;position:relative}.hero{background:0 0}@media (prefers-reduced-motion:no-preference){.hero-photo img{animation:6s ease-in-out infinite fx-float}}@keyframes fx-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}
