:root{--bg:#05070b;--text:#edf1f3;--muted:#7c8894;--border:#ffffff14;--amber:#f0a94e;--cyan:#54e0d0;--purple:#b98cff;--accent:var(--cyan);--gutter:clamp(24px, 6vw, 96px)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;background:var(--bg)}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}ul,ol{list-style:none}::selection{background:var(--amber);color:#1a1206}a:focus-visible,button:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}.mono{font-family:JetBrains Mono,ui-monospace,monospace}.amber{color:var(--amber)}.cyan{color:var(--cyan)}.muted{color:var(--muted)}.scene{z-index:0;pointer-events:none;position:fixed;inset:0}.scene canvas{display:block}.node-label{letter-spacing:.04em;white-space:nowrap;color:var(--c,var(--text));border:1px solid color-mix(in srgb, var(--c,#fff) 35%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#05070b99;border-radius:3px;padding:3px 8px;font-family:JetBrains Mono,monospace;font-size:11px}.nav{z-index:50;padding:18px var(--gutter);pointer-events:none;background:linear-gradient(#05070bbf,#05070b00);justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.nav>*{pointer-events:auto}.brand{font-size:13px}.nav-links{color:var(--muted);gap:28px;font-size:12px;display:flex}.nav-links a{transition:color .2s;position:relative}.nav-links a:after{content:"";background:var(--cyan);transform-origin:0;height:1px;transition:transform .25s;position:absolute;bottom:-4px;left:0;right:0;transform:scaleX(0)}.nav-links a:hover{color:#fff}.nav-links a:hover:after{transform:scaleX(1)}.progress{pointer-events:none;background:#ffffff0f;height:1px;position:absolute;bottom:0;left:0;right:0}.progress-bar{background:linear-gradient(90deg, var(--amber), var(--cyan));transform-origin:0;height:100%;transform:scaleX(0)}@keyframes blink{0%,45%{opacity:1}50%,to{opacity:0}}.cursor{animation:1.1s step-end infinite blink}.page{z-index:1;position:relative}.section{padding-left:var(--gutter);padding-right:var(--gutter);position:relative}.eyebrow{letter-spacing:.04em;color:var(--cyan);margin-bottom:16px;font-size:12px}.display{letter-spacing:-.025em;font-family:Space Grotesk,sans-serif;font-size:clamp(2.5rem,6.4vw,5.6rem);font-weight:600;line-height:1.02}.display-md{letter-spacing:-.02em;margin-bottom:18px;font-family:Space Grotesk,sans-serif;font-size:clamp(1.9rem,4vw,3.2rem);font-weight:600;line-height:1.08}.display-sm{letter-spacing:-.01em;font-family:Space Grotesk,sans-serif;font-size:1.35rem;font-weight:600}.lede{color:#b7c0c7;max-width:34rem;font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.6}.hero{flex-direction:column;justify-content:center;min-height:100vh;padding-top:96px;padding-bottom:96px;display:flex}.hero-inner{max-width:44rem}.hero h1{margin-bottom:26px;font-size:clamp(2.4rem,5.4vw,4.7rem)}.hero .lede{margin-bottom:36px}.cta-row{flex-wrap:wrap;gap:14px;margin-bottom:56px;display:flex}.stats{grid-template-columns:repeat(4,auto);gap:28px 40px;width:fit-content;display:grid}.stat{flex-direction:column;gap:4px;display:flex}.stat-value{letter-spacing:-.02em;font-family:Space Grotesk,sans-serif;font-size:2rem;font-weight:600;line-height:1}.stat-suffix{color:var(--amber);margin-left:1px;font-size:1.2rem}.stat-label{color:var(--muted);font-size:11px}.scroll-cue{left:var(--gutter);color:var(--muted);align-items:center;gap:10px;font-size:11px;display:flex;position:absolute;bottom:32px}.scroll-cue svg{animation:1.6s ease-in-out infinite bob}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}.intro{opacity:0;animation:.9s cubic-bezier(.2,.7,.2,1) forwards intro;animation-delay:var(--d,0s);transform:translateY(18px)}@keyframes intro{to{opacity:1;transform:translateY(0)}}.btn{will-change:transform;border-radius:4px;align-items:center;gap:8px;padding:14px 24px;font-family:JetBrains Mono,monospace;font-size:12px;transition:transform .2s,box-shadow .25s,background .25s;display:inline-flex}.btn-primary{background:var(--amber);color:#1a1206;box-shadow:0 0 #f0a94e00}.btn-primary:hover{box-shadow:0 0 32px -4px #f0a94e99}.btn-ghost{border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff08}.btn-ghost:hover{background:#ffffff12;border-color:#54e0d080}.pipeline{align-items:flex-end;min-height:100vh;padding-top:120px;padding-bottom:56px;display:flex}.pipeline-copy{max-width:38rem}.pipeline-copy .muted{max-width:34rem;line-height:1.6}.stages{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.stage{border:1px solid var(--border);border-left:2px solid var(--c);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#080b108c;border-radius:4px;gap:2px;min-width:150px;padding:12px 14px;display:grid}.stage-idx{color:var(--c);font-size:10px}.stage-title{font-size:14px;font-weight:600}.stage-desc{color:var(--muted);font-size:10.5px}.split{grid-template-columns:minmax(0,40rem) 1fr;gap:48px;padding-top:140px;padding-bottom:140px;display:grid}.split-rev{grid-template-columns:1fr minmax(0,40rem)}.split-side{min-height:20vh}.card{--mx:50%;--my:50%;border:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transform-style:preserve-3d;will-change:transform;background:#090c119e;border-radius:8px;padding:28px;transition:transform .35s,border-color .3s,box-shadow .3s;position:relative;overflow:hidden}.card:hover{border-color:color-mix(in srgb, var(--accent) 45%, transparent);box-shadow:0 24px 60px -30px color-mix(in srgb, var(--accent) 50%, transparent)}.card-glare{pointer-events:none;opacity:0;background:radial-gradient(500px circle at var(--mx) var(--my), color-mix(in srgb, var(--accent) 14%, transparent), transparent 45%);transition:opacity .3s;position:absolute;inset:0}.card:hover .card-glare{opacity:1}.timeline{flex-direction:column;gap:22px;margin-top:44px;padding-left:28px;display:flex;position:relative}.timeline:before{content:"";background:linear-gradient(var(--amber), var(--purple), transparent);width:1px;position:absolute;top:12px;bottom:12px;left:6px}.job-dot{background:var(--bg);border:2px solid var(--accent);width:13px;height:13px;box-shadow:0 0 14px color-mix(in srgb, var(--accent) 60%, transparent);border-radius:50%;position:absolute;top:34px;left:-28px}.job{overflow:visible}.job-head{flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-bottom:6px;display:flex}.job-head .mono{font-size:12px}.job-role{margin-bottom:16px;font-size:14px}.points{flex-direction:column;gap:10px;display:flex}.points li{color:#c7ced4;padding-left:22px;font-size:14.5px;line-height:1.6;position:relative}.arrow{color:var(--accent);position:absolute;left:0}.layers{flex-direction:column;gap:14px;margin-top:40px;display:flex}.layer{cursor:default;padding:20px 22px}.layer-head{align-items:center;gap:12px;margin-bottom:14px;display:flex}.layer-idx{color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:3px;padding:2px 6px;font-size:10px}.layer-label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:11px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--border);background:#ffffff0a;border-radius:3px;padding:5px 10px;font-size:12px;transition:border-color .2s,background .2s,transform .2s}.card:hover .chip{border-color:color-mix(in srgb, var(--accent) 35%, transparent)}.chip:hover{background:color-mix(in srgb, var(--accent) 14%, transparent);transform:translateY(-1px)}.cross{grid-template-columns:1fr 1fr;gap:14px;margin-top:16px;display:grid}.edu{padding-top:20px;padding-bottom:120px}.edu-grid{grid-template-columns:1fr 1fr;gap:18px;max-width:64rem;display:grid}.edu-card h3{margin-bottom:8px}.edu-card .muted{margin-bottom:4px;font-size:14px;line-height:1.6}.edu-card .mono{margin-top:8px;font-size:12px}.contact{align-items:center;min-height:90vh;padding-top:80px;padding-bottom:100px;display:flex}.contact-inner{max-width:44rem}.contact .display{margin-bottom:20px;font-size:clamp(2rem,4.8vw,4rem)}.contact .lede{margin-bottom:40px}.contact-links{flex-direction:column;gap:14px;font-size:14px;display:flex}.contact-link{width:fit-content;color:var(--muted);align-items:center;gap:12px;transition:color .2s,transform .2s;display:inline-flex}.contact-link svg:first-child{color:var(--amber)}.contact-link .ext{opacity:0;transition:opacity .2s,transform .2s}.contact-link:not(.static):hover{color:#fff;transform:translate(4px)}.contact-link:hover .ext{opacity:1;transform:translate(2px,-2px)}.footer{padding:28px var(--gutter);border-top:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#05070bb3;flex-wrap:wrap;justify-content:space-between;gap:16px;font-size:11px;display:flex}.reveal{opacity:0;transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transform:translateY(24px)}.reveal.is-in{opacity:1;transform:none}@media (width<=900px){.split,.split-rev{grid-template-columns:1fr;gap:0;padding-top:100px;padding-bottom:100px}.split-side{min-height:0}.split-rev .split-side{order:-1;min-height:40vh}.cross,.edu-grid{grid-template-columns:1fr}}@media (width<=768px){.nav-links{display:none}.hero{justify-content:flex-end;min-height:0;padding-top:46vh;padding-bottom:96px}.display{font-size:clamp(2.1rem,9.5vw,2.8rem)}.stats{grid-template-columns:repeat(2,auto);gap:20px 32px}.stat-value{font-size:1.6rem}.pipeline{padding-top:64vh}#experience{padding-top:46vh}.stage{min-width:calc(50% - 5px)}.card{padding:22px}.timeline{padding-left:22px}.job-dot{left:-22px}.contact{min-height:0;padding-top:45vh}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.intro,.reveal{opacity:1;transition:none;animation:none;transform:none}.scroll-cue svg,.cursor{animation:none}}.mascot{z-index:60;flex-direction:column;align-items:flex-end;gap:4px;display:flex;position:fixed;bottom:clamp(6px,1.5vw,16px);right:clamp(10px,2vw,28px)}.mascot-btn{cursor:pointer;background:0 0;border:0;border-radius:18px;padding:4px;line-height:0;display:block}.mascot-btn:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}.mv{filter:drop-shadow(0 14px 22px #0000008c);width:180px;height:auto;display:block;overflow:visible}.mv-halo{opacity:0;transform-origin:100px 120px;transition:opacity .35s,transform .35s;transform:scale(.6)}.mv-arm-r{transform-origin:138px 148px}.mv-head{transform-origin:100px 132px}.mv-eye{transform-box:fill-box;transform-origin:50%}.mv-screen,.mv-code{transition:opacity .3s}.mascot.is-active .mv-halo{opacity:1;transform:scale(1)}.mascot.is-active .mv{animation:2.2s ease-in-out infinite mascot-float}.mascot.is-active .mv-arm-r{animation:.9s ease-in-out infinite mv-wave}.mascot.is-active .mv-head{animation:2.6s ease-in-out infinite mv-tilt}.mascot.is-active .mv-eye{animation:3.2s step-end infinite mv-blink}.mascot.is-active .mv-code{animation:1.2s steps(4,end) infinite mv-type}@keyframes mascot-float{0%,to{translate:0}50%{translate:0 -8px}}@keyframes mv-wave{0%,to{transform:rotate(-95deg)}50%{transform:rotate(-125deg)}}@keyframes mv-tilt{0%,to{transform:rotate(0)}30%{transform:rotate(-4deg)}70%{transform:rotate(3deg)}}@keyframes mv-blink{0%,92%,to{transform:scaleY(1)}94%,98%{transform:scaleY(.08)}}@keyframes mv-type{0%{opacity:.5}to{opacity:1}}.mascot-bubble{max-width:min(260px,70vw);min-height:34px;color:var(--text);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;transform-origin:100% 100%;pointer-events:none;white-space:pre-wrap;background:#090c11e0;border:1px solid #54e0d073;border-radius:8px 8px 2px;margin-right:10px;padding:9px 12px;font-size:12px;line-height:1.4;transition:opacity .25s,transform .25s;transform:translateY(8px)scale(.96);box-shadow:0 12px 30px -12px #54e0d080}.mascot-bubble.show{opacity:1;transform:none}.mascot-caret{color:var(--cyan);animation:1s step-end infinite blink}@media (width<=768px){.mv{width:120px}.mascot-bubble{font-size:11px}}@media (prefers-reduced-motion:reduce){.mascot.is-active .mv,.mascot.is-active .mv-arm-r,.mascot.is-active .mv-head,.mascot.is-active .mv-eye,.mascot.is-active .mv-code{animation:none}.mascot.is-active .mv-arm-r{transform:rotate(-110deg)}.mascot-caret{animation:none}}.mascot-img{--rx:0deg;--ry:0deg;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:230px;height:auto;transform:rotateX(var(--rx)) rotateY(var(--ry));transition:transform .25s,filter .35s;display:block;position:relative}.mascot-btn{perspective:700px}.mascot-glow{opacity:0;pointer-events:none;background:radial-gradient(circle,#54e0d066,#6fa8ff29 45%,#0000 70%);border-radius:50%;width:85%;height:85%;transition:opacity .35s,transform .35s;position:absolute;top:55%;left:50%;transform:translate(-50%,-50%)scale(.6)}.mascot-shadow{opacity:0;pointer-events:none;background:radial-gradient(#54e0d059,#0000 70%);border-radius:50%;width:70%;height:14px;transition:opacity .35s;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.mascot.is-active .mascot-glow{opacity:1;transform:translate(-50%,-50%)scale(1)}.mascot.is-active .mascot-shadow{opacity:1}.mascot.is-active .mascot-img{filter:drop-shadow(0 0 22px #54e0d059);animation:2.4s ease-in-out infinite mascot-float}@media (width<=768px){.mascot-img{width:108px}.mascot:not(.is-active) .mascot-img{opacity:.82}.mascot-bubble{max-width:60vw;font-size:10.5px}}@media (prefers-reduced-motion:reduce){.mascot.is-active .mascot-img{animation:none;transform:none}}.px{will-change:transform;transform-style:preserve-3d}@media (prefers-reduced-motion:reduce){.px{transform:none!important}}
