:root{--bg: #060913;--ink: #e9eef7;--dim: #94a1b6;--cyan: #67e8f9;--violet: #a78bfa;--amber: #fbbf24;--r: 24px;--ease: cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px;overflow-x:clip}body{margin:0;color:var(--ink);background:var(--bg);overflow-x:clip;font:16px/1.65 Manrope,system-ui,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}::selection{background:#67e8f94d}:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:6px}.wrap{max-width:1160px;margin:0 auto;padding:0 24px}.mono{font-family:JetBrains Mono,monospace}.dim{color:var(--dim)}.small{font-size:.88rem}h1,h2,h3{font-family:Unbounded,sans-serif;margin:0;line-height:1.15;font-weight:500}h2{font-size:clamp(1.7rem,3.4vw,2.6rem);letter-spacing:-.02em;background:linear-gradient(180deg,#fff,#b9c6da);-webkit-background-clip:text;background-clip:text;color:transparent}h3{font-size:1.02rem;color:#f3f7fc;margin-bottom:12px}.bg{position:fixed;inset:-180px 0;z-index:-2;pointer-events:none;overflow:hidden;transform:translate3d(0,max(calc(var(--sy, 0) * -.03px),-150px),0)}.blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.55;will-change:transform}.b1{width:56vmax;height:56vmax;right:-14vmax;top:2vmax;background:radial-gradient(circle,#2563eb,transparent 65%);animation:drift1 26s ease-in-out infinite alternate}.b2{width:50vmax;height:50vmax;left:-16vmax;top:46vmax;background:radial-gradient(circle,#7c3aed,transparent 65%);animation:drift2 32s ease-in-out infinite alternate}.b3{width:38vmax;height:38vmax;left:32vmax;top:18vmax;background:radial-gradient(circle,#0891b2,transparent 65%);opacity:.35;animation:drift3 38s ease-in-out infinite alternate}.gridlines{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(ellipse at 50% 25%,#000,transparent 72%);mask-image:radial-gradient(ellipse at 50% 25%,#000,transparent 72%)}.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:60;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--cyan),var(--violet))}.glass{position:relative;overflow:hidden;border-radius:var(--r);background:linear-gradient(145deg,#ffffff1c,#ffffff09);-webkit-backdrop-filter:blur(22px) saturate(160%);backdrop-filter:blur(22px) saturate(160%);border:1px solid rgba(255,255,255,.13);box-shadow:inset 0 1px #ffffff38,0 28px 60px -24px #000000a6}.glass:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s;background:radial-gradient(440px circle at var(--mx, 50%) var(--my, 0%),rgba(103,232,249,.14),transparent 62%)}.glass:hover:before{opacity:1}.card{padding:28px}.card p{margin:0 0 14px;color:#b9c5d6}.skill-grid .card,.proj{transition:transform .4s var(--ease),border-color .3s}.skill-grid .card:hover,.proj:hover{transform:translateY(-6px);border-color:#67e8f959}.js .reveal{opacity:0}.js .reveal.in{opacity:1;animation:rise 1s var(--ease) var(--d, 0ms) backwards}.nav-wrap{position:fixed;top:14px;left:0;right:0;z-index:50;display:flex;justify-content:center;padding:0 14px;pointer-events:none}.nav{pointer-events:auto;display:flex;align-items:center;gap:26px;padding:8px 10px 8px 24px;border-radius:999px;max-width:100%}.mark{font:600 .98rem Unbounded,sans-serif;white-space:nowrap;background:linear-gradient(120deg,#fff,var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}.nav-links{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}.nav-links::-webkit-scrollbar{display:none}.nav-links a{padding:8px 14px;border-radius:999px;font-size:.9rem;color:var(--dim);transition:color .25s,background .25s;white-space:nowrap}.nav-links a:hover{color:#fff}.nav-links a.active{color:#fff;background:#ffffff1f}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 26px;border-radius:999px;border:1px solid transparent;cursor:pointer;font:700 .95rem Manrope,sans-serif;transition:transform .3s var(--ease),box-shadow .3s,background .3s}.btn:hover:not(:disabled){transform:translateY(-3px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-solid{background:linear-gradient(120deg,var(--cyan),var(--violet));color:#060913;box-shadow:0 12px 32px -10px #67e8f98c}.btn-solid:hover:not(:disabled){box-shadow:0 18px 40px -10px #a78bfab3}.btn-glass{background:#ffffff12;border-color:#ffffff2b;color:#fff;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.btn-glass:hover:not(:disabled){background:#ffffff21}.btn-sm{padding:9px 16px;font-size:.85rem}.hero{position:relative;isolation:isolate;display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:center;min-height:min(100svh,880px);padding-top:120px;padding-bottom:72px}.neural{position:absolute;z-index:-1;top:0;bottom:0;left:50%;width:min(100vw,1500px);height:100%;transform:translate(-50%);opacity:.6;pointer-events:none;-webkit-mask-image:radial-gradient(ellipse 62% 72% at 76% 50%,#000,transparent 100%);mask-image:radial-gradient(ellipse 62% 72% at 76% 50%,#000,transparent 100%)}.pill{display:inline-flex;align-items:center;gap:10px;padding:8px 18px;border-radius:999px;font-size:.85rem;color:#d8e3f2}.dot{width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 #67e8f999;animation:ping 2.4s ease-out infinite}.headline{font-size:clamp(2.2rem,4.7vw,4rem);letter-spacing:-.025em;line-height:1.12;margin:26px 0 24px;font-weight:600}.word{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em;margin-right:.26em}.word>span{display:inline-block;background:linear-gradient(100deg,#fff 8%,#a5f3fc 48%,#c4b5fd 92%);background-size:800% 100%;background-position:var(--p, 0%) 0;-webkit-background-clip:text;background-clip:text;color:transparent}.js .word>span{transform:translateY(115%);animation:wordUp 1.1s var(--ease) calc(var(--i) * 85ms + .15s) forwards}.lead{max-width:58ch;color:#bac6d8;font-size:1.06rem;margin:0}.hero-visual{position:relative;display:grid;place-items:center;padding:24px}.tilt{position:relative;width:min(100%,370px);transition:transform .3s ease-out}.portrait{padding:8px;border-radius:34px;aspect-ratio:4 / 5;box-shadow:inset 0 1px #ffffff4d,0 0 90px -10px #67e8f94d,0 40px 80px -30px #000c}.headshot{width:100%;height:100%;border-radius:27px;overflow:hidden;display:grid;place-items:center;background:#0b1220;font-size:4rem}.headshot img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;display:block}.orbit{position:absolute;inset:-9%;border-radius:50%;border:1px dashed rgba(255,255,255,.18);animation:spin 48s linear infinite}.orbit i{position:absolute;top:-5px;left:50%;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:var(--cyan);box-shadow:0 0 20px 2px var(--cyan)}.orbit.o2{inset:-22%;border-color:#ffffff17;animation-duration:80s;animation-direction:reverse}.orbit.o2 i{background:var(--violet);box-shadow:0 0 20px 2px var(--violet);top:auto;bottom:12%;left:4%}.hero-visual .float{position:absolute;padding:8px 16px;border-radius:999px;font-size:.8rem;color:#e8f6ff;white-space:nowrap;animation:floatY 7s ease-in-out infinite}.f1{top:6%;left:-17%}.f2{top:24%;right:-15%;animation-delay:-2s!important}.f3{bottom:28%;left:-21%;animation-delay:-4s!important}.f4{bottom:11%;right:-11%;animation-delay:-1s!important}.f5{bottom:-5%;left:8%;border-radius:14px!important;animation-delay:-3s!important;color:#cfe8f6!important}.f5 b{color:var(--amber);font-weight:600}.scroll-cue{position:absolute;bottom:14px;left:50%;width:26px;height:42px;margin-left:-13px;border:1.5px solid rgba(255,255,255,.3);border-radius:14px}.scroll-cue i{position:absolute;top:8px;left:50%;width:3px;height:8px;margin-left:-1.5px;border-radius:2px;background:#fff;animation:cue 1.9s ease-in-out infinite}.stats{display:grid;grid-template-columns:repeat(4,1fr);padding:30px 10px}.stat{display:flex;flex-direction:column;align-items:center;gap:4px;padding:0 18px;text-align:center}.stat+.stat{border-left:1px solid rgba(255,255,255,.1)}.stat strong{font-size:clamp(1.7rem,3vw,2.5rem);font-weight:600;background:linear-gradient(120deg,#fff,var(--cyan) 70%,var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}.stat span{color:var(--dim);font-size:.86rem;line-height:1.4;max-width:22ch}.sec{padding-top:92px;padding-bottom:6px}.sec-head{margin-bottom:34px}.eyebrow-text{display:flex;align-items:center;gap:10px;margin:0 0 14px;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--cyan)}.eyebrow-text i{width:34px;height:1px;background:linear-gradient(90deg,var(--cyan),transparent)}.sec-sub{margin:12px 0 0;color:var(--dim);max-width:60ch}.skill-grid,.proj-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.skill-grid{grid-template-columns:repeat(auto-fit,minmax(235px,1fr))}.tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}.tags li{font:12.5px JetBrains Mono,monospace;padding:5px 11px;border-radius:8px;background:#ffffff12;border:1px solid rgba(255,255,255,.09);color:#bdeefa}.proj .idx{position:absolute;top:14px;right:22px;font-size:2.6rem;font-weight:600;color:#ffffff12}.lab{display:grid;gap:20px;grid-template-columns:repeat(12,1fr)}.lab>:nth-child(1){grid-column:span 7}.lab>:nth-child(2){grid-column:span 5}.lab>:nth-child(3){grid-column:span 7}.lab>:nth-child(4){grid-column:span 5}.lab-card{display:flex;flex-direction:column}.lab-card .btn{align-self:flex-start;margin-top:auto}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.card-head h3{margin:0 0 8px}.badge{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;border-radius:999px;border:1px solid rgba(251,191,36,.35);color:var(--amber);background:#fbbf2414;white-space:nowrap}.chart{width:100%;height:auto;display:block;margin:14px 0 6px}.gridline{stroke:#ffffff12}.ln{fill:none;stroke-width:2}.c1.ln{stroke:var(--cyan)}.c2.ln{stroke:var(--amber)}.thr{stroke:#fff;stroke-width:1.5;stroke-dasharray:4 5}.thr-dot{fill:#fff;filter:drop-shadow(0 0 8px var(--cyan))}.chart-label{fill:var(--dim);font:11px JetBrains Mono,monospace}.legend{display:flex;gap:20px;color:var(--dim);margin-bottom:16px}.sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}span .sw.c1,.sw.c1{background:var(--cyan)}.sw.c2{background:var(--amber)}.slider-label{display:flex;justify-content:space-between;font-size:.88rem;color:var(--dim)}.slider-label b{color:#fff;font-weight:600}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:99px;margin:12px 0 20px;outline-offset:8px;cursor:pointer;background:linear-gradient(90deg,var(--cyan) var(--pct, 50%),rgba(255,255,255,.13) var(--pct, 50%))}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;border:0;box-shadow:0 0 0 6px #67e8f940,0 4px 14px #00000080}input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#fff;border:0;box-shadow:0 0 0 6px #67e8f940,0 4px 14px #00000080}.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.tiles.three{grid-template-columns:repeat(3,1fr);margin-bottom:16px}.tile{padding:12px 14px;border-radius:14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:2px}.tile span{font-size:.72rem;color:var(--dim);line-height:1.3}.tile b{font-size:1.3rem;font-weight:600;font-variant-numeric:tabular-nums}.hot{color:var(--amber)}.fit .pt{fill:#a5f3fc;opacity:0;transform-box:fill-box;transform-origin:center}.fit .pt.worst{fill:var(--amber);filter:drop-shadow(0 0 8px var(--amber))}.fit .resid{stroke:#ffffff40;stroke-dasharray:2 3;opacity:0}.fit .band{fill:#a78bfa1c;opacity:0}.fit .fitline{stroke:var(--violet);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:var(--len);stroke-dashoffset:var(--len)}.fit.play .pt{animation:pop .55s cubic-bezier(.2,.9,.3,1.5) both}.fit.play .resid{animation:fadeIn .7s ease 1.7s both}.fit.play .band{animation:fadeIn .9s ease 1.5s both}.fit.play .fitline{animation:draw 1.3s cubic-bezier(.6,0,.2,1) .9s forwards}.code-bar{display:flex;align-items:center;gap:7px;margin-bottom:18px}.code-bar i{width:11px;height:11px;border-radius:50%;background:#ff5f57}.code-bar i:nth-child(2){background:#febc2e}.code-bar i:nth-child(3){background:#28c840}.code-bar>span:first-of-type{margin-left:10px;font-size:.8rem;color:var(--dim)}.code-bar .badge{margin-left:auto}.code-card pre{margin:0;font-size:.86rem;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}.code-card code{font:inherit}.tok-c{color:#6b7a92;font-style:italic}.tok-s{color:#a7f3d0}.tok-k{color:var(--violet)}.tok-n{color:var(--amber)}.tok-f{color:var(--cyan)}.tok-v{color:#dbe6f5}.tok-p{color:#8ea0ba}.caret{display:inline-block;width:8px;height:1.1em;margin-left:2px;vertical-align:text-bottom;background:var(--cyan);animation:blink 1s steps(2) infinite}.flow ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px}.flow li{position:relative;display:grid;grid-template-columns:44px 1fr;gap:16px}.flow li>div{opacity:0}.flow strong{color:#fff}.flow p{margin:2px 0 0!important;font-size:.9rem}.node{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:.78rem;color:var(--cyan);background:#67e8f914;border:1px solid rgba(103,232,249,.4);opacity:.25}.flow li:not(:last-child):after{content:"";position:absolute;left:21px;top:46px;bottom:-16px;width:2px;border-radius:2px;background:linear-gradient(var(--cyan),var(--violet));transform:scaleY(0);transform-origin:top;opacity:.6}.flow .play .node{animation:lit .6s ease calc(var(--k) * .5s) forwards}.flow .play li>div{animation:fadeIn .7s ease calc(var(--k) * .5s + .15s) forwards}.flow .play li:not(:last-child):after{animation:grow .5s ease calc(var(--k) * .5s + .4s) forwards}.surf{padding-bottom:104px}.surf-grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.spot{display:flex;flex-direction:column;gap:2px}.big{font-size:2.8rem;font-weight:600;line-height:1.2;background:linear-gradient(120deg,#fff,var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}.big small{font-size:1rem;-webkit-text-fill-color:var(--dim)}.arrow{display:inline-block;vertical-align:-2px;margin-left:6px;color:var(--cyan)}.note{margin:16px 0 0!important}.waves{position:absolute;left:0;bottom:0;width:100%;height:92px;pointer-events:none}.wv{fill:#67e8f929}.w1{animation:waveA 7s linear infinite}.w2{fill:#a78bfa29;animation:waveB 11s linear infinite}.ask form{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.ask label{font-size:.9rem;color:var(--dim)}textarea{width:100%;background:#06091373;border:1px solid rgba(255,255,255,.15);border-radius:14px;color:var(--ink);padding:14px;font:inherit;resize:vertical;transition:border-color .25s,box-shadow .25s}textarea:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 4px #67e8f926}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.chip{background:#ffffff12;color:#d6ecf7;border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:7px 16px;cursor:pointer;font:inherit;font-size:.88rem;transition:border-color .25s,background .25s,transform .3s var(--ease)}.chip:hover:not(:disabled){border-color:var(--cyan);background:#67e8f91a;transform:translateY(-2px)}.chip:disabled{opacity:.5;cursor:wait}.thinking{display:flex;gap:6px;margin:18px 0 0!important}.thinking i{width:8px;height:8px;border-radius:50%;background:var(--cyan);animation:bounce 1s ease-in-out infinite}.thinking i:nth-child(2){animation-delay:.15s}.thinking i:nth-child(3){animation-delay:.3s}.ask .answer{margin:20px 0 0!important;padding:16px 18px;border-radius:14px;color:var(--ink);background:#ffffff0f;border-left:3px solid var(--cyan);white-space:pre-wrap;animation:fadeIn .5s ease}.ask .error{margin:18px 0 0!important;color:#ff9aa6}.ask .error a{text-decoration:underline}.cta{text-align:center;padding:72px 24px}.cta .eyebrow-text{justify-content:center}.cta .sec-sub{margin-left:auto;margin-right:auto}.cta .actions{justify-content:center}.foot{padding-top:64px;padding-bottom:48px;font-size:.85rem;text-align:center}@keyframes rise{0%{opacity:0;transform:translateY(44px) scale(.97)}}@keyframes wordUp{to{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes grow{to{transform:scaleY(1)}}@keyframes lit{to{opacity:1;box-shadow:0 0 24px #67e8f973;background:#67e8f92e}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}@keyframes ping{70%{box-shadow:0 0 0 10px #67e8f900}to{box-shadow:0 0 #67e8f900}}@keyframes cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}to{opacity:0;transform:translateY(14px)}}@keyframes blink{50%{opacity:0}}@keyframes bounce{0%,to{transform:translateY(0);opacity:.5}50%{transform:translateY(-6px);opacity:1}}@keyframes waveA{0%{transform:translate(0)}to{transform:translate(-300px)}}@keyframes waveB{0%{transform:translate(-450px,14px)}to{transform:translate(-150px,14px)}}@keyframes drift1{to{transform:translate3d(-8vmax,10vmax,0) scale(1.15)}}@keyframes drift2{to{transform:translate3d(12vmax,-8vmax,0) scale(1.1)}}@keyframes drift3{to{transform:translate3d(-10vmax,8vmax,0) scale(1.25)}}@media(max-width:980px){.hero{grid-template-columns:1fr;gap:36px;padding-top:112px;min-height:0}.hero-visual{padding:8px 0 24px}.tilt{width:min(70%,290px)}.f1{left:-12%}.f2{right:-10%}.f3{left:-14%}.f4{right:-8%}.scroll-cue{display:none}.lab>*{grid-column:1 / -1!important}.neural{-webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 30%,#000,transparent 100%);mask-image:radial-gradient(ellipse 80% 60% at 50% 30%,#000,transparent 100%)}}@media(max-width:720px){.stats{grid-template-columns:repeat(2,1fr);row-gap:24px}.stat:nth-child(3){border-left:0}.nav{gap:10px;padding-left:18px}.mark{font-size:.85rem}.card{padding:22px}.tiles{grid-template-columns:repeat(2,1fr)}.cta{padding:52px 20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.js .word>span{transform:none}}
