html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}body{background:var(--bg)}.scene-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.scene{width:100%;height:100%}.vignette{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:radial-gradient(120% 90% at 50% 40%,transparent 40%,#07090fcc 100%)}.glow{position:fixed;top:0;left:0;width:400px;height:400px;z-index:1;pointer-events:none;border-radius:50%;background:radial-gradient(circle,#7c9cff22,transparent 65%);will-change:transform;transition:transform .12s linear}.progress{position:fixed;inset:0 0 auto 0;height:3px;z-index:40;transform-origin:0 50%;background:linear-gradient(90deg,var(--a),var(--b),var(--c))}main,.foot{position:relative;z-index:2}.nav{position:fixed;inset:0 0 auto 0;z-index:30;display:flex;justify-content:space-between;align-items:center;padding:16px clamp(16px,4vw,48px);background:linear-gradient(#07090fd0,#07090f00)}.logo{font:700 18px Space Grotesk;border:1px solid var(--line);border-radius:10px;padding:4px 10px;background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.nav nav{display:flex;gap:clamp(10px,2vw,26px);align-items:center;font-size:14px;color:var(--mute)}.nav nav a{position:relative;transition:color .2s}.nav nav a:hover,.nav nav a.on{color:var(--text)}.nav nav a.on:not(.lock):after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--a),var(--c))}.lock{border:1px solid var(--line);padding:6px 16px;border-radius:99px;color:var(--text)!important;background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.hero{min-height:100svh;display:grid;align-items:center;padding:0 clamp(16px,6vw,96px);position:relative}.hero-copy{max-width:680px}.hero h1{font-size:clamp(52px,10vw,132px);letter-spacing:-.04em;line-height:.95}.ch{display:inline-block;opacity:0;transform:translateY(60%) rotateX(-70deg);animation:ch .9s cubic-bezier(.2,.7,.2,1) forwards}@keyframes ch{to{opacity:1;transform:none}}.grad .ch{background:linear-gradient(100deg,var(--a),var(--b) 55%,var(--c));-webkit-background-clip:text;background-clip:text;color:transparent}.eyebrow{color:var(--c);font-size:13px;letter-spacing:.2em;text-transform:uppercase;margin:0 0 18px}.lede{font-size:clamp(18px,2.2vw,26px);color:#b7c0d4;margin:24px 0 34px;max-width:560px}.lede b{color:var(--text);font-weight:600}.cta{display:flex;gap:12px;flex-wrap:wrap}.btn{padding:13px 24px;border-radius:99px;border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-weight:500;transition:transform .25s,border-color .25s,box-shadow .25s}.btn:hover{transform:translateY(-3px);border-color:#ffffff50}.btn.primary{background:linear-gradient(100deg,var(--a),var(--b));border:0;color:#fff;box-shadow:0 14px 40px -14px var(--b)}.scroll{position:absolute;bottom:30px;left:50%;translate:-50% 0;width:24px;height:40px;border:1.5px solid #ffffff55;border-radius:14px}.scroll i{position:absolute;left:50%;top:7px;width:3px;height:8px;margin-left:-1.5px;border-radius:2px;background:var(--text);animation:wheel 1.8s ease-in-out infinite}@keyframes wheel{0%{opacity:0;transform:translateY(0)}30%{opacity:1}to{opacity:0;transform:translateY(14px)}}.marquee{overflow:hidden;border-block:1px solid var(--line);background:#07090f99;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:16px 0;white-space:nowrap}.track{display:inline-flex;gap:0;animation:mq 38s linear infinite}.track span{font:600 clamp(18px,2.4vw,28px) "Space Grotesk";color:#c9d2e6;padding:0 22px;display:inline-flex;align-items:center;gap:44px}.track em{color:var(--b);font-style:normal;font-size:16px}@keyframes mq{to{transform:translate(-33.333%)}}.sec{max-width:1080px;margin:0 auto;padding:clamp(90px,14vw,170px) clamp(16px,4vw,32px) 0}.kicker{color:var(--c);font-size:13px;letter-spacing:.2em;text-transform:uppercase;margin:0 0 18px}.sec h2{font-size:clamp(36px,6vw,72px);margin-bottom:40px;letter-spacing:-.03em}.mega{font-size:clamp(56px,12vw,150px)!important}.big{font-size:clamp(20px,2.6vw,32px);line-height:1.5;max-width:900px;color:#d6dcec}.stats,.skills,.grid2{display:grid;gap:18px;margin-top:44px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.skills,.grid2{margin-top:0}.glass{background:#0d1222d9;-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3)}.tilt{transform-style:preserve-3d;transition:transform .25s ease-out;will-change:transform;position:relative;border-radius:18px}.tilt:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:18px;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),#7c9cff26,transparent 70%)}.tilt:hover:after{opacity:1}.tilt:hover .glass{border-color:#7c9cff55}.stat{padding:26px;display:flex;flex-direction:column;gap:6px;height:100%}.stat strong{font:700 clamp(28px,3.4vw,40px) "Space Grotesk"}.stat span{color:var(--mute);font-size:14px}.card{padding:28px;height:100%}.card h3{font-size:clamp(20px,2.4vw,26px)}.row{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.mute{color:var(--mute)}.small{font-size:12px;letter-spacing:.1em;text-transform:uppercase}.card ul{margin:14px 0 0;padding-left:20px;color:#d0d7e8}.card li{margin:7px 0}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.pill.hot{color:#d8e0f5;background:#7c9cff12;border-color:#7c9cff33}.project h3{font-size:clamp(28px,3.4vw,40px);margin:8px 0 10px}.timeline{position:relative;padding-left:34px;display:grid;gap:22px}.rail{position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:linear-gradient(var(--a),var(--b),var(--c));transform-origin:50% 0;border-radius:2px}.timeline:before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:var(--line);border-radius:2px}.rail{z-index:1}.tl-item{position:relative}.dot{position:absolute;left:-34px;top:30px;width:16px;height:16px;border-radius:50%;background:var(--bg);border:2px solid var(--c);box-shadow:0 0 0 5px #3de0c11f,0 0 24px var(--c);z-index:2}.contact{text-align:center;padding-bottom:60px}.contact .big{margin:0 auto 34px}.contact .cta{justify-content:center}.foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;max-width:1080px;margin:0 auto;color:var(--mute);font-size:13px;padding:90px clamp(16px,4vw,32px) 36px}.foot a:hover{color:var(--text)}@media (max-width:820px){.hero{align-items:end;padding-bottom:16vh}.hero-copy{max-width:none}.nav nav a:not(.lock){display:none}.glow{display:none}}@media (prefers-reduced-motion:reduce){.ch{opacity:1;transform:none}.track{animation:none}}.nlabel{font:600 13px Inter;letter-spacing:.04em;color:var(--c);border:1px solid color-mix(in srgb,var(--c) 45%,transparent);background:#07090fb0;padding:4px 12px;border-radius:99px;white-space:nowrap;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ask-fab{position:fixed;right:clamp(14px,3vw,32px);bottom:clamp(14px,3vw,28px);z-index:50;padding:12px 20px;border-radius:99px;border:0;cursor:pointer;color:#fff;font:600 14px Inter;background:linear-gradient(100deg,var(--a),var(--b));box-shadow:0 14px 40px -12px var(--b);display:flex;gap:8px;align-items:center;transition:transform .2s}.ask-fab:hover{transform:translateY(-2px)}.spark{animation:tw 2.4s ease-in-out infinite}@keyframes tw{50%{transform:rotate(20deg) scale(1.25)}}.ask{position:fixed;right:clamp(14px,3vw,32px);bottom:calc(clamp(14px,3vw,28px) + 56px);z-index:50;width:min(400px,calc(100vw - 28px));max-height:min(560px,72vh);display:flex;flex-direction:column;overflow:hidden;background:#0b1020f2}.ask header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}.ask header button{background:none;border:0;color:var(--mute);font-size:22px;cursor:pointer}.ask-log{flex:1;overflow:auto;padding:14px 16px;display:grid;gap:10px;align-content:start}.ask-log p{margin:0;padding:10px 13px;border-radius:14px;font-size:14px;line-height:1.5;max-width:92%}.ask-log .ai{background:#ffffff0d;border:1px solid var(--line)}.ask-log .me{background:linear-gradient(100deg,#7c9cff55,#b46cff55);justify-self:end}.chips{display:flex;flex-wrap:wrap;gap:6px}.chips button{background:none;border:1px solid var(--line);color:#cfd6e6;border-radius:99px;padding:6px 12px;font:12px Inter;cursor:pointer}.chips button:hover{border-color:#7c9cff88}.ask form{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line)}.ask input{flex:1;background:#00000040;border:1px solid var(--line);border-radius:12px;padding:10px 12px;color:var(--text);font:14px Inter;outline:0}.ask input:focus{border-color:#7c9cff88}.ask form button{border:0;border-radius:12px;padding:0 16px;background:linear-gradient(100deg,var(--a),var(--b));color:#fff;font:600 13px Inter;cursor:pointer}.ask form button:disabled{opacity:.4;cursor:default}.ask small{color:var(--mute);font-size:11px;padding:0 14px 10px}.replay{position:relative;height:430vh;margin-top:clamp(60px,10vw,120px)}.replay-stick{position:sticky;top:0;min-height:100svh;display:grid;align-items:center;padding:70px clamp(16px,4vw,48px) 30px;pointer-events:none}.replay-card{pointer-events:auto;width:min(560px,100%);padding:clamp(18px,2.4vw,28px);border-radius:18px;border:1px solid var(--line)}.replay h2{font-size:clamp(28px,4vw,44px)}.steps{display:grid;gap:8px}.rstep{border:1px solid var(--line);border-radius:12px;padding:10px 12px;opacity:.28;transition:opacity .35s,border-color .35s,background .35s}.rstep.past{opacity:.55}.rstep.on{opacity:1;border-color:color-mix(in srgb,var(--c) 60%,transparent);background:color-mix(in srgb,var(--c) 7%,transparent)}.rhead{display:flex;align-items:center;gap:8px;font-size:14px}.rhead em{margin-left:auto;font-style:normal;font-size:11px;color:var(--c);letter-spacing:.04em}.rdot{width:8px;height:8px;border-radius:50%;background:var(--c);box-shadow:0 0 12px var(--c)}.rstep pre{margin:8px 0 0;font:12px/1.55 JetBrains Mono,ui-monospace,monospace;color:#c9d2e6;white-space:pre-wrap;word-break:break-word;display:none}.rstep.on pre{display:block}.rbar{height:3px;border-radius:3px;background:#ffffff14;margin-top:14px;overflow:hidden}.rbar i{display:block;height:100%;transition:width .4s,background .4s}@media (max-width:820px){.replay{height:380vh}.replay-stick{align-items:end;padding-bottom:16px}}@media (prefers-reduced-motion:reduce){.replay{height:auto}.replay-stick{position:static;min-height:0;padding:0 clamp(16px,4vw,32px)}.rstep{opacity:1}.rstep pre{display:block}}.sc{display:inline-block;will-change:transform,opacity}.more{display:inline-block;margin-top:16px;color:var(--c);font-weight:500}.more:hover{text-decoration:underline}button.btn{cursor:pointer;color:inherit;font:inherit;font-weight:500}.atabs{display:flex;gap:4px}.atabs button{border:0;background:none;color:var(--mute);font:600 14px Inter;padding:4px 10px;border-radius:99px;cursor:pointer}.atabs button[aria-selected=true]{color:var(--text);background:#ffffff14}.ask-log .msg{display:grid;gap:6px;justify-items:start}.ask-log .msg.me{justify-items:end}.srcs{font-size:12px;color:var(--mute);max-width:92%}.srcs summary{cursor:pointer;padding-left:4px}.srcs ul{margin:6px 0 0;padding-left:18px;display:grid;gap:4px}.match{padding:14px 16px;overflow:auto;display:grid;gap:12px}.match label{font-size:13px;color:var(--mute)}.match textarea{width:100%;margin-top:6px;background:#00000040;border:1px solid var(--line);border-radius:12px;padding:10px 12px;color:var(--text);font:13px/1.5 Inter;resize:vertical;outline:0}.match textarea:focus{border-color:#7c9cff88}.mrow{display:flex;justify-content:space-between;align-items:center;margin-top:8px;color:var(--mute)}.mrow button{border:0;border-radius:12px;padding:8px 16px;background:linear-gradient(100deg,var(--a),var(--b));color:#fff;font:600 13px Inter;cursor:pointer}.mrow button:disabled{opacity:.4;cursor:default}.merr{margin:0;color:var(--bad);font-size:13px}.mres{display:grid;gap:8px;font-size:13.5px}.mres p{margin:0}.fit{display:inline-block;padding:3px 12px;border-radius:99px;font-weight:600;border:1px solid}.fit.ok{color:var(--ok);border-color:#46d39a66;background:#46d39a14}.fit.mid{color:var(--warn);border-color:#ffb45466;background:#ffb45414}.fit.low{color:var(--mute);border-color:var(--line)}.mi{display:grid;gap:2px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#ffffff08}.mi span{color:var(--mute)}.mi.gap b{color:var(--warn)}.pitch{font-style:italic;color:#d0d7e8}.btn.sm{padding:8px 16px;font-size:13px;justify-self:start}.cform{display:flex;flex-direction:column;gap:18px;max-width:560px;margin-top:28px;padding:26px;border-radius:20px;position:relative;overflow:hidden}.cform:before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,var(--a),var(--b),var(--c));opacity:.85}.field{position:relative}.field input,.field textarea{width:100%;font:inherit;color:var(--text);background:#ffffff08;border:1px solid var(--line);border-radius:14px;padding:22px 15px 9px;transition:border-color .25s,box-shadow .25s,background .25s;resize:vertical}.field textarea{min-height:124px;line-height:1.5}.field label{position:absolute;left:15px;top:16px;color:var(--mute);font-size:15px;pointer-events:none;transition:transform .2s ease,color .2s;transform-origin:left top}.field input:focus,.field textarea:focus{outline:none;border-color:transparent;background:#ffffff0d;box-shadow:0 0 0 1.5px var(--a),0 0 26px -8px var(--a)}.field input:focus+label,.field textarea:focus+label,.field input:not(:placeholder-shown)+label,.field textarea:not(:placeholder-shown)+label{transform:translateY(-9px) scale(.76);color:var(--a)}.field .opt{color:var(--mute);font-size:.85em}.field .count{position:absolute;right:12px;bottom:9px;font-size:11px;color:var(--mute);background:var(--bg);padding:0 5px;border-radius:6px}.cform .hp{position:absolute;left:-10000px;width:1px;height:1px;opacity:0}.cform-foot{display:flex;flex-direction:column;gap:12px}.cbtn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:14px 22px;border-radius:14px;border:0;font:600 15px Inter,sans-serif;color:#061018;background:linear-gradient(100deg,var(--a),var(--c));cursor:pointer;transition:transform .2s,box-shadow .2s,filter .2s;box-shadow:0 10px 30px -12px var(--a)}.cbtn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.07);box-shadow:0 16px 42px -14px var(--a)}.cbtn:active:not(:disabled){transform:translateY(0)}.cbtn:disabled{opacity:.72;cursor:wait}.cbtn.ghost{background:transparent;border:1px solid var(--line);color:var(--text);box-shadow:none}.cbtn.ghost:hover{background:var(--panel);transform:none;filter:none}.spin{width:15px;height:15px;border:2px solid rgba(6,16,24,.35);border-top-color:#061018;border-radius:50%;animation:cspin .7s linear infinite}@keyframes cspin{to{transform:rotate(360deg)}}.cnote{margin:0;font-size:14px}.cnote.error{color:var(--bad)}.sent-card{align-items:center;text-align:center;gap:10px;padding:42px 26px}.sent-card h3{font-size:20px}.sent-check{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#46d39a1f;border:1px solid rgba(70,211,154,.4);margin-bottom:4px}.sent-check svg{width:26px;height:26px;fill:none;stroke:var(--ok);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:30;animation:cdraw .55s ease .05s forwards;stroke-dashoffset:30}@keyframes cdraw{to{stroke-dashoffset:0}}
