@font-face{font-family:GeistSans;src:url(/_next/static/media/b5bb120f6fcabcb4-s.p.woff2) format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:GeistSans Fallback;src:local("Arial");ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.00%;size-adjust:106.28%}.__className_64f856{font-family:GeistSans,GeistSans Fallback}.__variable_64f856{--font-geist-sans:"GeistSans","GeistSans Fallback"}@font-face{font-family:GeistMono;src:url(/_next/static/media/39a5c75b28bf49bc.p.woff2) format("woff2");font-display:swap;font-weight:100 900}.__className_161195{font-family:GeistMono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}.__variable_161195{--font-geist-mono:"GeistMono",ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/5ece437c7024c161-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/9cc5b37ab1350db7-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/35f3de0ebb1cfc70-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e6099e249fd938cc-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:"Instrument Serif Fallback";src:local("Times New Roman");ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.00%;size-adjust:83.94%}.__className_1f5468{font-family:"Instrument Serif","Instrument Serif Fallback";font-weight:400}.__variable_1f5468{--font-instrument-serif:"Instrument Serif","Instrument Serif Fallback"}:root{--bg-0:#0a0a0f;--bg-1:#14141c;--bg-2:#1a1a2e;--ink:#f5f5f7;--ink-dim:#9a9aa6;--ink-faint:#a5a5af;--rule:rgba(245,245,247,0.08);--rule-strong:rgba(245,245,247,0.18);--accent:#7c5cff;--accent-soft:rgba(124,92,255,0.18);--grain:0.06;--display:var(--font-instrument-serif),"Times New Roman",serif;--body:var(--font-geist-sans),-apple-system,BlinkMacSystemFont,"Helvetica Neue",system-ui,sans-serif;--mono:var(--font-geist-mono),"SFMono-Regular",ui-monospace,monospace;--easing:cubic-bezier(0.2,0.7,0.2,1)}*{box-sizing:border-box}html{background:var(--bg-0)}body,html{margin:0;padding:0;background:transparent;color:var(--ink);font-family:var(--body);font-weight:300;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overscroll-behavior:none}html{scroll-behavior:auto}body{cursor:none}@media (pointer:coarse){body{cursor:auto}#cursor{display:none}}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{background:var(--accent);color:#fff}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#bg{background:radial-gradient(120% 80% at 60% 10%,rgba(124,92,255,.1),transparent 60%),radial-gradient(100% 100% at 20% 80%,rgba(60,60,120,.1),transparent 70%),linear-gradient(180deg,var(--bg-0) 0,var(--bg-2) 100%);z-index:-3}#bg,#scene{position:fixed;inset:0;pointer-events:none}#scene{z-index:-2}#grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:var(--grain);mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 1.6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.9'/></svg>");animation:grainShift 7s steps(8) infinite}@keyframes grainShift{0%{transform:translate(0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-1%)}60%{transform:translate(-1%,3%)}80%{transform:translate(3%,1%)}to{transform:translate(0)}}#cursor{position:fixed;top:0;left:0;width:28px;height:28px;border-radius:50%;background:#f5f5f7;mix-blend-mode:difference;pointer-events:none;transform:translate(-50%,-50%);transition:width .25s var(--easing),height .25s var(--easing),border-radius .25s var(--easing),background .25s var(--easing);z-index:9999;will-change:transform}#cursor.hover{width:70px;height:70px;background:transparent;border:1px solid #f5f5f7}#cursor.click{width:18px;height:18px}#cursor-dot{width:5px;height:5px;z-index:10000;box-shadow:0 0 12px var(--accent)}#cursor-dot,.trail{position:fixed;top:0;left:0;border-radius:50%;background:var(--accent);pointer-events:none;transform:translate(-50%,-50%)}.trail{width:8px;height:8px;z-index:9998;mix-blend-mode:screen;will-change:transform,opacity;filter:blur(1px)}nav.top{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:50;display:flex;align-items:center;justify-content:space-between;padding:12px 16px 12px 22px;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);gap:32px;width:min(1100px,calc(100% - 32px));background:rgba(10,10,15,.55);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border:1px solid var(--rule);border-radius:999px;box-shadow:0 8px 32px -12px rgba(0,0,0,.5)}nav.top .brand{color:var(--ink);flex-shrink:0;font-weight:500}nav.top ul{list-style:none;margin:0;padding:0;display:flex;gap:22px}nav.top ul a{color:var(--ink-dim);transition:color .25s var(--easing);position:relative;padding:4px 0}nav.top ul a:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--easing)}nav.top ul a:hover{color:var(--ink)}nav.top ul a:hover:after{transform:scaleX(1)}nav.top .right{display:flex;align-items:center;gap:28px}nav.top .status{display:inline-flex;align-items:center;gap:8px;color:var(--ink);background:rgba(74,222,128,.08);border:1px solid rgba(74,222,128,.25);padding:6px 12px;border-radius:999px;font-size:10px}nav.top .burger{display:none;width:36px;height:36px;background:transparent;border:1px solid var(--rule-strong);border-radius:8px;cursor:none;align-items:center;justify-content:center;flex-direction:column;gap:5px;padding:0}nav.top .burger span{display:block;width:14px;height:1px;background:var(--ink);transition:transform .3s var(--easing),opacity .3s var(--easing)}nav.top .burger.on span:first-child{transform:translateY(3px) rotate(45deg)}nav.top .burger.on span:nth-child(2){opacity:0}nav.top .burger.on span:nth-child(3){transform:translateY(-3px) rotate(-45deg)}nav.top .status:before{content:"";width:6px;height:6px;border-radius:50%;background:#4ade80;box-shadow:0 0 12px #4ade80;animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}main{z-index:1}main,section{position:relative}section{min-height:100vh;padding:0 clamp(20px,5vw,80px);display:flex;flex-direction:column;justify-content:center}.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);display:inline-flex;align-items:center;gap:12px}.eyebrow:before{content:"";width:28px;height:1px;background:var(--ink-faint)}.display{font-family:var(--display);font-weight:400;letter-spacing:-.025em;line-height:.92;color:var(--ink)}.italic{font-style:italic;color:var(--accent)}#hero{min-height:100svh;align-items:center;justify-content:center;text-align:center}#hero .meta{position:absolute;left:clamp(20px,5vw,80px);right:clamp(20px,5vw,80px);display:flex;justify-content:space-between;top:110px;font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint)}#hero-title{margin:0;font-size:clamp(4rem,14vw,12rem);line-height:.88;letter-spacing:-.04em}#hero-title .word{display:inline-block;overflow:visible}#hero-title .ch{display:inline-block;opacity:0;filter:blur(20px);transform:translateY(.4em);will-change:filter,transform,opacity}#hero-title .ch.space{width:.28em}#hero .role{margin-top:28px;font-family:var(--body);font-size:clamp(13px,1.1vw,16px);color:var(--ink-dim);letter-spacing:.04em;opacity:0}#hero .role b{color:var(--ink);font-weight:500}#hero .hero-ctas{margin-top:38px;display:inline-flex;gap:14px;flex-wrap:wrap;justify-content:center;opacity:0}.btn-pill{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;padding:14px 26px;border-radius:999px;cursor:none;display:inline-flex;align-items:center;gap:10px;transition:background .35s var(--easing),color .35s var(--easing),transform .35s var(--easing),border-color .35s var(--easing);border:1px solid transparent}.btn-pill .arr{transition:transform .35s var(--easing)}.btn-pill:hover .arr{transform:translateX(4px)}.btn-pill.primary{background:var(--ink);color:var(--bg-0)}.btn-pill.primary:hover{background:var(--accent);color:#fff;transform:translateY(-2px)}.btn-pill.ghost{background:rgba(245,245,247,.04);color:var(--ink);border-color:var(--rule-strong)}.btn-pill.ghost:hover{background:rgba(245,245,247,.08);border-color:var(--ink);transform:translateY(-2px)}.scroll-cue{position:absolute;bottom:40px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:14px;font-family:var(--mono);font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--ink-faint);opacity:0}.scroll-cue .line{width:1px;height:56px;position:relative;overflow:hidden;background:rgba(245,245,247,.12)}.scroll-cue .line:after{content:"";position:absolute;top:-56px;left:0;right:0;height:56px;background:linear-gradient(180deg,transparent,var(--ink));animation:cueRun 2.2s var(--easing) infinite}@keyframes cueRun{0%{transform:translateY(0)}to{transform:translateY(112px)}}#about{padding-top:12vh;padding-bottom:12vh}#about .grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);grid-gap:clamp(40px,6vw,100px);gap:clamp(40px,6vw,100px);align-items:center}#about .copy h2{margin:22px 0 32px;font-size:clamp(2.5rem,5.4vw,5rem)}#about p.lead{font-size:clamp(16px,1.25vw,19px);line-height:1.55;color:var(--ink-dim);max-width:52ch;margin:0 0 22px;text-wrap:pretty}#about p.lead b{color:var(--ink);font-weight:400}#about .stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:24px;gap:24px;margin-top:56px;padding-top:32px;border-top:1px solid var(--rule);max-width:620px}#about .stat .n{font-family:var(--display);font-size:clamp(1.5rem,2.4vw,2.2rem);line-height:1;letter-spacing:-.02em}#about .stat .l{font-family:var(--mono);margin-top:8px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint)}#about .vis{aspect-ratio:1}#services{padding-top:18vh;padding-bottom:18vh}#services .head{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;flex-wrap:wrap;margin-bottom:72px}#services .head h2{margin:18px 0 0;font-size:clamp(3rem,7vw,7rem)}#services .head .note{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);max-width:30ch;text-align:right}#services .cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1px;gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:12px;overflow:hidden}.service{background:rgba(14,14,22,.55);padding:clamp(28px,3.5vw,44px);display:flex;flex-direction:column;gap:22px;position:relative;transition:background .5s var(--easing);min-height:380px}.service:hover{background:rgba(20,20,32,.85)}.service:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:0;transition:opacity .5s var(--easing)}.service:hover:before{opacity:1}.service .top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.service .num{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--ink-faint);text-transform:uppercase}.service .icon{width:48px;height:48px;border:1px solid var(--rule-strong);border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--ink);transition:border-color .4s var(--easing),color .4s var(--easing)}.service:hover .icon{border-color:var(--accent);color:var(--accent)}.service .icon svg{width:22px;height:22px}.service h3{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(1.8rem,2.6vw,2.4rem);line-height:1;letter-spacing:-.02em}.service h3 .it{font-style:italic;color:var(--ink-dim)}.service p{margin:0;color:var(--ink-dim);font-size:15px;line-height:1.6;text-wrap:pretty}.service ul{list-style:none;display:flex;flex-direction:column;gap:8px;margin:auto 0 0;padding:20px 0 0;border-top:1px solid var(--rule)}.service ul li{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--ink-dim);display:flex;align-items:center;gap:10px}.service ul li:before{content:"";width:4px;height:4px;background:var(--accent);border-radius:50%;flex-shrink:0}@media (max-width:900px){#services .cards{grid-template-columns:1fr}.service{min-height:auto}}#work{padding-top:18vh;padding-bottom:18vh}#work .head{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;flex-wrap:wrap;margin-bottom:80px}#work .head h2{margin:18px 0 0;font-size:clamp(3rem,7vw,7rem)}#work .head .note{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);max-width:28ch;text-align:right}#work .projects{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--rule)}.project{display:grid;grid-template-columns:70px minmax(0,1.1fr) 260px minmax(0,.85fr);grid-gap:clamp(20px,3vw,48px);gap:clamp(20px,3vw,48px);align-items:center;padding:clamp(28px,4vw,48px) 0;border-bottom:1px solid var(--rule);position:relative;transition:padding-left .5s var(--easing)}.project .body{display:flex;flex-direction:column;gap:14px;min-width:0}.project:hover{padding-left:16px}.project:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--accent-soft),transparent 50%);opacity:0;transition:opacity .5s var(--easing);pointer-events:none}.project:hover:before{opacity:1}.project .preview{aspect-ratio:3/2;width:100%;border-radius:8px;overflow:hidden;border:1px solid var(--rule);background:#07070d;position:relative;transition:transform .55s var(--easing),border-color .55s var(--easing);transform-origin:center}.project:hover .preview{transform:scale(1.05);border-color:var(--rule-strong)}.project .preview svg{display:block;width:100%;height:100%}.project .preview:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.45));pointer-events:none}.project .num{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--ink-faint)}.project h3{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(1.8rem,3.2vw,3rem);line-height:1;letter-spacing:-.02em}.project h3 .it{font-style:italic;color:var(--ink-dim)}.project .meta{color:var(--ink-dim);font-size:14px;line-height:1.5;text-wrap:pretty}.project .meta .outcome{display:block;color:var(--ink);font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-top:10px}.project .stack{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;max-width:240px}.project .stack span{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);padding:5px 10px;border:1px solid var(--rule);border-radius:999px;transition:border-color .3s var(--easing),color .3s var(--easing)}.project:hover .stack span{border-color:var(--rule-strong);color:var(--ink)}@media (max-width:1100px){.project{grid-template-columns:60px minmax(0,1fr) 200px}.project .stack{grid-column:1/4;justify-content:flex-start;max-width:none;margin-top:4px}}@media (max-width:720px){.project{grid-template-columns:50px 1fr}.project .preview{grid-column:2}.project .stack{grid-column:1/3;max-width:none}}#skills{padding-top:18vh;padding-bottom:18vh}#skills .head h2{margin:18px 0 0;font-size:clamp(3rem,7vw,7rem)}#skills .grid{margin-top:80px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:80px;gap:80px;align-items:center}#skills .copy p{color:var(--ink-dim);max-width:44ch;line-height:1.55;font-size:16px}#skills .cats{margin-top:40px;display:grid;grid-gap:14px;gap:14px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase}#skills .cats div{display:grid;grid-template-columns:110px 1fr;grid-gap:24px;gap:24px;padding:14px 0;border-top:1px solid var(--rule);align-items:baseline}#skills .cats div:last-child{border-bottom:1px solid var(--rule)}#skills .cats .k{color:var(--ink-faint)}#skills .cats .v{color:var(--ink);letter-spacing:0;text-transform:none;font-family:var(--body)}#skills .vis{aspect-ratio:1}.skillviz{position:relative;width:100%;aspect-ratio:1;overflow:visible;--sv-dim:var(--ink-faint);--sv-line:rgba(124,92,255,0)}.skillviz .sv-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.skillviz .sv-lines line{stroke:var(--accent);stroke-width:1;opacity:0;transition:opacity .4s var(--easing);vector-effect:non-scaling-stroke}.skillviz .sv-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:clamp(86px,18%,116px);height:clamp(86px,18%,116px);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:1px solid var(--rule-strong);background:radial-gradient(120% 120% at 50% 25%,var(--accent-soft),transparent 70%),rgba(10,10,15,.55);box-shadow:0 0 0 1px rgba(245,245,247,.02),0 18px 50px -20px rgba(0,0,0,.7);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:3;transition:border-color .4s var(--easing),box-shadow .4s var(--easing)}.skillviz .sv-core-cat{font-family:var(--mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint)}.skillviz .sv-core-mark{font-family:var(--display);font-style:italic;font-size:clamp(22px,4vw,30px);line-height:1;color:var(--ink)}.skillviz .sv-core-count{font-family:var(--mono);font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);transition:color .3s var(--easing)}.skillviz.is-active .sv-core{border-color:var(--accent);box-shadow:0 0 36px -8px var(--accent-soft)}.skillviz .sv-nodes{position:absolute;inset:0;z-index:4}.skillviz .sv-chip{position:absolute;top:0;left:0;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;border:1px solid var(--rule-strong);background:rgba(22,22,32,.88);box-shadow:0 6px 18px -10px rgba(0,0,0,.8);font-family:var(--mono);font-size:11px;letter-spacing:.01em;color:var(--ink-dim);white-space:nowrap;cursor:none;will-change:transform;transition:color .3s var(--easing),border-color .3s var(--easing),background .3s var(--easing),opacity .35s var(--easing)}.skillviz .sv-chip:before{content:"";width:4px;height:4px;border-radius:50%;background:var(--ink-faint);transition:background .3s var(--easing),box-shadow .3s var(--easing),transform .3s var(--easing)}.skillviz .sv-chip.is-active,.skillviz .sv-chip:hover{color:var(--ink);border-color:var(--accent);background:rgba(124,92,255,.14)}.skillviz .sv-chip.is-active:before,.skillviz .sv-chip:hover:before{background:var(--accent);box-shadow:0 0 10px var(--accent);transform:scale(1.4)}.skillviz.is-active .sv-chip{opacity:.32}.skillviz.is-active .sv-chip.is-active,.skillviz.is-active .sv-chip.is-kin{opacity:1}.skillviz.is-active .sv-chip.is-kin{border-color:var(--rule-strong);color:var(--ink-dim)}.skillviz .sv-chip.sv-hub{color:var(--ink);font-weight:500;letter-spacing:.14em;text-transform:uppercase;font-size:9.5px;padding:7px 13px;border-color:var(--rule-strong);background:rgba(124,92,255,.12);z-index:5}.skillviz .sv-chip.sv-hub:before{background:var(--accent);box-shadow:0 0 8px var(--accent)}.skillviz .sv-readout{position:absolute;left:50%;bottom:-2px;transform:translate(-50%,100%);font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);opacity:0;transition:opacity .3s var(--easing);text-align:center;white-space:nowrap;pointer-events:none}.skillviz .sv-readout b{color:var(--accent);font-weight:500}.skillviz.is-active .sv-readout{opacity:1}#skills .cats div{cursor:none;transition:border-color .3s var(--easing)}#skills .cats div.cat-hot .k{color:var(--accent)}@media (max-width:900px){#skills .grid{grid-template-columns:1fr;gap:40px}}#contact{padding-top:22vh;padding-bottom:14vh;text-align:center;overflow:hidden;position:relative;isolation:isolate}#contact:before{background:radial-gradient(60% 50% at 50% 20%,rgba(124,92,255,.1),transparent 70%),linear-gradient(180deg,rgba(20,20,32,.22),rgba(14,14,22,.32) 40%,rgba(20,20,32,.22));border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}#contact:after,#contact:before{content:"";position:absolute;inset:0;z-index:-1}#contact:after{background-image:linear-gradient(rgba(245,245,247,.025) 1px,transparent 0),linear-gradient(90deg,rgba(245,245,247,.025) 1px,transparent 0);background-size:64px 64px;mask-image:radial-gradient(ellipse at center,#000 30%,transparent 80%);-webkit-mask-image:radial-gradient(ellipse at center,#000 30%,transparent 80%);pointer-events:none}#contact .lets{font-family:var(--display);font-weight:400;font-size:clamp(4rem,14vw,14rem);line-height:.95;letter-spacing:-.04em;margin:0;text-wrap:balance;color:var(--ink);position:relative;z-index:2;text-shadow:0 2px 24px rgba(0,0,0,.5)}#contact .lets .talk{font-style:italic;color:var(--accent)}#contact .sub{margin:40px auto 0;max-width:48ch;color:rgba(245,245,247,.78);font-size:17px;line-height:1.6}.contact-form{max-width:680px;margin:64px auto 0;text-align:left;display:grid;grid-gap:28px;gap:28px;background:rgba(22,22,34,.85);backdrop-filter:blur(28px) saturate(160%);-webkit-backdrop-filter:blur(28px) saturate(160%);border:1px solid rgba(245,245,247,.1);border-radius:20px;padding:clamp(28px,4vw,44px);box-shadow:0 24px 64px -20px rgba(0,0,0,.6),inset 0 0 0 1px rgba(124,92,255,.06);position:relative}.contact-form:before{content:"";position:absolute;inset:0;border-radius:20px;background:radial-gradient(120% 80% at 0 0,rgba(124,92,255,.1),transparent 50%);pointer-events:none}.contact-form>*{position:relative}.contact-form .row{display:grid;grid-gap:28px;gap:28px;grid-template-columns:1fr 1fr}.field{display:flex;flex-direction:column;gap:10px;position:relative}.field label{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink);opacity:.85}.field input,.field textarea{background:rgba(10,10,15,.5);border:1px solid rgba(245,245,247,.1);border-radius:10px;color:var(--ink);font-family:var(--body);font-size:16px;font-weight:400;padding:14px 16px;outline:none;width:100%;transition:border-color .35s var(--easing),background .35s var(--easing);cursor:none}.field textarea{resize:vertical;min-height:110px;font-family:var(--body)}.field input:focus,.field textarea:focus{border-color:var(--accent);background:rgba(10,10,15,.7)}.field input::placeholder,.field textarea::placeholder{color:rgba(245,245,247,.45)}.dd{position:relative;width:100%}.field:has(.dd.on){z-index:40}.contact-form .row:has(.dd.on){position:relative;z-index:20}.dd-trigger{width:100%;background:rgba(10,10,15,.5);border:1px solid rgba(245,245,247,.1);border-radius:10px;color:var(--ink);font-family:var(--body);font-size:16px;font-weight:400;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;cursor:none;text-align:left;transition:border-color .35s var(--easing),background .35s var(--easing)}.dd.empty .dd-value{color:rgba(245,245,247,.45)}.dd-trigger:focus,.dd.on .dd-trigger{border-color:var(--accent);background:rgba(10,10,15,.7);outline:none}.dd-caret{color:rgba(245,245,247,.7);display:inline-flex;transition:transform .3s var(--easing),color .3s var(--easing)}.dd.on .dd-caret{transform:rotate(180deg);color:var(--accent)}.dd-menu{position:absolute;top:calc(100% + 8px);left:0;right:0;list-style:none;margin:0;padding:6px;background:#1a1a28;border:1px solid rgba(245,245,247,.18);border-radius:12px;box-shadow:0 24px 56px -8px rgba(0,0,0,.85),inset 0 0 0 1px rgba(124,92,255,.12);z-index:50;opacity:0;pointer-events:none;transform:translateY(-6px);transition:opacity .25s var(--easing),transform .25s var(--easing)}.dd.on .dd-menu{opacity:1;pointer-events:auto;transform:translateY(0)}.dd-menu li{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:8px;color:rgba(245,245,247,.85);font-size:15px;cursor:none;transition:background .2s var(--easing),color .2s var(--easing)}.dd-menu li.kbd-focus,.dd-menu li:hover{background:rgba(124,92,255,.18);color:var(--ink)}.dd-menu li.selected{color:var(--accent)}.dd-menu li.selected:after{content:"✓";margin-left:auto}.dd-icon,.dd-menu li.selected:after{font-family:var(--mono);font-size:12px}.dd-icon{color:rgba(245,245,247,.55);width:18px;text-align:center}.contact-form .submit-row{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:12px;flex-wrap:wrap}.send-btn{background:var(--ink);color:var(--bg-0);border:0;font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;padding:18px 32px;border-radius:999px;cursor:none;display:inline-flex;align-items:center;gap:12px;transition:background .35s var(--easing),color .35s var(--easing),transform .35s var(--easing)}.send-btn:hover{background:var(--accent);color:#fff;transform:translateY(-2px)}.send-btn .arr{transition:transform .35s var(--easing)}.send-btn:hover .arr{transform:translateX(4px)}.form-note{font-size:11px;letter-spacing:.18em;color:rgba(245,245,247,.6)}.form-note,.form-status{font-family:var(--mono);text-transform:uppercase}.form-status{grid-column:1/-1;font-size:12px;letter-spacing:.14em;color:var(--accent);min-height:16px;text-align:left}.form-status.err{color:#ff8b6b}.divider-or{margin:64px auto 32px;display:flex;align-items:center;justify-content:center;gap:18px;font-family:var(--mono);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-faint)}.divider-or:after,.divider-or:before{content:"";width:80px;height:1px;background:var(--rule)}#contact .cta{margin-top:8px;display:inline-flex;flex-direction:column;align-items:center;gap:32px}#contact .mail{font-family:var(--display);font-style:italic;font-size:clamp(1.8rem,3.6vw,3.2rem);color:var(--ink);border-bottom:1px solid var(--rule-strong);padding-bottom:4px;transition:color .4s var(--easing),border-color .4s var(--easing)}#contact .mail:hover{color:var(--accent);border-color:var(--accent)}#contact .socials{display:flex;gap:28px;font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim)}#contact .socials a{position:relative;padding-bottom:4px;white-space:nowrap}#contact .socials a:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--easing)}#contact .socials a:hover:after{transform:scaleX(1)}#contact .socials a:hover{color:var(--ink)}footer{padding:80px clamp(20px,5vw,80px) 36px;border-top:1px solid var(--rule);display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);position:relative;z-index:1}footer .big{font-family:var(--display);font-style:italic;font-size:clamp(1.2rem,2vw,1.8rem);color:var(--ink);letter-spacing:-.01em;text-transform:none}#tweaks{position:fixed;top:80px;right:24px;width:280px;z-index:100;background:rgba(14,14,22,.78);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);border:1px solid var(--rule);border-radius:14px;padding:18px;font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--ink);transform:translateX(120%);transition:transform .45s var(--easing);display:none}#tweaks.on{display:block;transform:translateX(0)}#tweaks h4{margin:0 0 14px;text-transform:uppercase;letter-spacing:.2em;font-size:10px;color:var(--ink-faint);display:flex;justify-content:space-between;align-items:center}#tweaks h4 .x{color:var(--ink-faint);cursor:none;padding:2px 6px}#tweaks .row{margin:10px 0}#tweaks label{display:block;margin-bottom:6px;color:var(--ink-dim);font-size:10px;text-transform:uppercase;letter-spacing:.14em}#tweaks .seg{display:flex;gap:4px}#tweaks .seg button{flex:1 1;background:rgba(245,245,247,.04);border:1px solid var(--rule);color:var(--ink-dim);padding:7px 8px;border-radius:8px;font:inherit;font-size:10px;text-transform:uppercase;letter-spacing:.1em;cursor:none;transition:all .25s var(--easing)}#tweaks .seg button.on{background:var(--accent);color:#fff;border-color:var(--accent)}#tweaks .seg button:hover:not(.on){color:var(--ink);border-color:var(--rule-strong)}#tweaks .swatches{display:flex;gap:8px}#tweaks .swatch{width:30px;height:30px;border-radius:50%;border:2px solid transparent;cursor:none;transition:transform .25s var(--easing),border-color .25s var(--easing)}#tweaks .swatch:hover{transform:scale(1.1)}#tweaks .swatch.on{border-color:var(--ink)}#tweaks input[type=range]{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:2px;background:var(--rule-strong);border-radius:2px}#tweaks input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent);cursor:none}#veil{position:fixed;inset:0;background:var(--bg-0);z-index:200;justify-content:center;transition:opacity .8s var(--easing),visibility .8s var(--easing)}#veil,#veil .v-inner{display:flex;align-items:center}#veil .v-inner{font-family:var(--mono);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-faint);flex-direction:column;gap:20px}#veil .bar{width:200px;height:1px;background:var(--rule);position:relative;overflow:hidden}#veil .bar:after{content:"";position:absolute;inset:0;background:var(--ink);transform-origin:left;transform:scaleX(0);animation:loadbar 1.6s var(--easing) forwards}@keyframes loadbar{to{transform:scaleX(1)}}#veil.gone{opacity:0;visibility:hidden}@keyframes toastIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes toastOut{0%{transform:translateY(0);opacity:1}to{transform:translateY(20px);opacity:0}}.toast{position:fixed;bottom:32px;right:32px;z-index:9000;display:flex;align-items:center;gap:14px;padding:16px 22px;background:rgba(14,14,22,.96);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border:1px solid rgba(245,245,247,.14);border-left:2px solid var(--accent);border-radius:12px;box-shadow:0 16px 48px -12px rgba(0,0,0,.8),inset 0 0 0 1px rgba(124,92,255,.08);font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--ink);cursor:pointer;max-width:340px;animation:toastIn .45s cubic-bezier(.2,.7,.2,1) forwards}.toast.hide{animation:toastOut .4s cubic-bezier(.2,.7,.2,1) forwards}.toast-icon{width:28px;height:28px;border-radius:50%;background:rgba(124,92,255,.18);border:1px solid rgba(124,92,255,.35);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--accent);font-size:14px}.toast-body{display:flex;flex-direction:column;gap:3px}.toast-title{color:var(--ink);font-size:12px;letter-spacing:.12em}.toast-sub,.toast-title{text-transform:uppercase}.toast-sub{color:var(--ink-dim);font-size:10px;letter-spacing:.14em}@media (max-width:860px){.toast{bottom:20px;right:16px;left:16px;max-width:none}nav.top{top:12px;padding:10px 12px 10px 18px;width:calc(100% - 24px);gap:12px;font-size:10px}nav.top .right{display:none}nav.top .burger{display:inline-flex}nav.top ul{position:fixed;top:72px;left:12px;right:12px;flex-direction:column;align-items:flex-start;gap:18px;padding:24px 24px 28px;background:rgba(10,10,15,.92);backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);border:1px solid var(--rule);border-radius:16px;box-shadow:0 18px 48px -16px rgba(0,0,0,.6);transform:translateY(-12px);opacity:0;pointer-events:none;transition:transform .35s var(--easing),opacity .35s var(--easing);font-size:13px;letter-spacing:.14em}nav.top ul.on{transform:translateY(0);opacity:1;pointer-events:auto}nav.top ul a{color:var(--ink)}section{padding:0 22px}#hero .meta{top:78px;font-size:9px;letter-spacing:.14em;gap:12px;flex-direction:column;align-items:center;text-align:center}#hero h1{font-size:clamp(3.2rem,18vw,6rem);line-height:.95}#hero .role{font-size:14px;padding:0 8px}.scroll-cue{bottom:28px}.scroll-cue .line{height:36px}#about .grid{grid-template-columns:1fr;gap:40px}#about .vis{display:none}#about .stats{grid-template-columns:1fr 1fr;gap:18px}#services .head,#skills .head,#work .head{margin-bottom:48px}#services .head .note,#work .head .note{text-align:left;max-width:none}#work .projects{border-top:0}.project{grid-template-columns:1fr;gap:16px;padding:28px 0}.project .num{font-size:11px}.project .preview{order:4}.project .stack{justify-content:flex-start;max-width:none}.project:hover{padding-left:0}#skills .grid{grid-template-columns:1fr;gap:32px}#skills .vis{display:none}#skills .cats div{grid-template-columns:1fr;gap:6px;padding:14px 0}#skills .cats .v{font-size:14px}#contact{padding-top:16vh}.contact-form .row{grid-template-columns:1fr;gap:24px}.contact-form{margin-top:48px}#contact .socials{flex-wrap:wrap;justify-content:center;gap:18px}.divider-or:after,.divider-or:before{width:40px}#tweaks{top:auto;bottom:16px;right:16px;left:16px;width:auto}footer{flex-direction:column;align-items:flex-start;gap:14px;padding:56px 22px 28px}}@media (max-width:480px){#hero h1{font-size:clamp(2.8rem,16vw,4.4rem);letter-spacing:-.03em}#about .stats{grid-template-columns:1fr}#contact .lets{font-size:clamp(3rem,16vw,6rem)}#contact .mail{font-size:clamp(1.2rem,5vw,2rem);word-break:break-all}}