:root[data-mode=dev]{--bg:#070A0F;--text:#E6EDF3;--muted:#97A3B1;--lead:#C2CCD7;--line:rgba(255,255,255,.08);--card:#0E141B;--accent:#22D3EE;--accent2:#8B5CF6;--grad:linear-gradient(90deg,#22D3EE,#8B5CF6);--scrim:linear-gradient(100deg,rgba(7,10,15,.88) 0%,rgba(7,10,15,.5) 30%,rgba(7,10,15,0) 62%);--vignette:radial-gradient(120% 120% at 30% 40%,transparent 35%,rgba(0,0,0,.55) 100%)}:root[data-mode=human]{--bg:#F4EFE6;--text:#211C17;--muted:#6E655B;--lead:#3C352E;--line:rgba(20,16,12,.13);--card:#FCFAF5;--accent:#C65D3B;--accent2:#2BA39A;--grad:linear-gradient(90deg,#C65D3B,#2BA39A);--scrim:linear-gradient(100deg,rgba(244,239,230,.9) 0%,rgba(244,239,230,.5) 30%,rgba(244,239,230,0) 62%);--vignette:radial-gradient(120% 120% at 30% 40%,transparent 45%,rgba(120,95,60,.16) 100%)}:root{--bg:#070A0F;--text:#E6EDF3;--muted:#97A3B1;--lead:#C2CCD7;--line:rgba(255,255,255,.08);--card:#0E141B;--accent:#22D3EE;--accent2:#8B5CF6;--grad:linear-gradient(90deg,#22D3EE,#8B5CF6)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:Space Grotesk,system-ui,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.5;overflow-x:hidden;transition:background .5s ease,color .5s ease}:root[data-mode=dev] .only-human{display:none}:root[data-mode=human] .only-dev{display:none}.nav{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:16px 6vw;font-family:JetBrains Mono,monospace;font-size:13px;background:linear-gradient(to bottom,color-mix(in srgb,var(--bg) 85%,transparent),transparent);backdrop-filter:blur(8px)}.nav .brand{color:var(--text);text-decoration:none;font-weight:500}.nav .brand b{color:var(--accent);font-weight:500}.nav .links{display:flex;gap:22px;align-items:center}.nav .links a{color:var(--muted);text-decoration:none;transition:color .2s}.nav .links a:hover,.nav .links a[aria-current=page]{color:var(--accent)}.mode-toggle{display:flex;align-items:center;gap:7px;font:inherit;cursor:pointer;color:var(--text);background:color-mix(in srgb,var(--card) 70%,transparent);border:1px solid var(--line);border-radius:999px;padding:6px 12px;transition:border-color .2s}.mode-toggle:hover{border-color:var(--accent)}.mode-toggle .mt-icon{font-size:14px;line-height:1}.mode-toggle .mt-label{color:var(--muted)}@media (max-width:760px){.nav .links a:not(.keep){display:none}}.eyebrow{font-family:JetBrains Mono,monospace;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:18px}h1{font-size:clamp(3rem,9vw,7.2rem);font-weight:700;line-height:.93;letter-spacing:-.03em;color:var(--text);max-width:100%}h1 .dot{color:var(--accent)}.statement{margin-top:26px;font-size:clamp(1.3rem,2.6vw,1.9rem);font-weight:500;line-height:1.3;color:var(--text);max-width:26ch}.sub{margin-top:14px;font-size:1rem;color:var(--muted);max-width:52ch}.currently{margin-top:24px;font-family:JetBrains Mono,monospace;font-size:12px;color:var(--muted)}.currently .hl{color:var(--accent)}.cta{margin-top:30px;display:flex;gap:14px;flex-wrap:wrap}.btn{font-family:JetBrains Mono,monospace;font-size:13px;text-decoration:none;padding:12px 20px;border-radius:8px;transition:all .2s}.btn.primary{background:var(--accent);color:var(--bg);font-weight:500}.btn.primary:hover{filter:brightness(1.08);transform:translateY(-1px)}.btn.ghost{border:1px solid var(--line);color:var(--text)}.btn.ghost:hover{border-color:var(--accent);color:var(--accent)}.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:0 6vw;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;transition:background .5s ease;background:radial-gradient(90% 120% at 75% 22%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 55%),radial-gradient(85% 110% at 18% 85%,color-mix(in srgb,var(--accent2) 13%,transparent),transparent 55%),var(--bg)}.hero canvas{position:absolute!important;inset:0;z-index:0;display:block}.hero .scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:var(--scrim)}.hero .vignette{position:absolute;inset:0;z-index:1;pointer-events:none;background:var(--vignette)}.hero .grain{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.hero-inner{position:relative;z-index:2;max-width:900px}.hero-inner .sub{color:var(--muted)}.hero-inner .eyebrow,.hero-inner .statement,.hero-inner .sub,.hero-inner .currently{transition:opacity .28s ease,transform .28s ease}.hero-inner.swap .eyebrow,.hero-inner.swap .statement,.hero-inner.swap .sub,.hero-inner.swap .currently{opacity:0;transform:translateY(-8px)}.scroll-cue{position:absolute;bottom:26px;left:6vw;z-index:2;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--muted);letter-spacing:.1em}.section{position:relative;z-index:2;background:var(--bg);padding:104px 6vw;scroll-margin-top:66px;border-top:1px solid var(--line);transition:background .5s ease}.section .wrap{max-width:1000px;margin:0 auto}.sec-eyebrow{font-family:JetBrains Mono,monospace;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}.sec-title{font-size:clamp(1.7rem,4vw,2.5rem);font-weight:700;letter-spacing:-.02em;margin-bottom:12px}.lead{color:var(--lead);font-size:1.12rem;max-width:64ch;line-height:1.65}.lead+.lead{margin-top:14px}.sec-head-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}.viewall{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--accent);text-decoration:none}.viewall:hover{text-decoration:underline}.facts{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.fact{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:8px 14px}.fact b{color:var(--accent);font-weight:500}a.fact{text-decoration:none;cursor:pointer;transition:border-color .18s ease,transform .18s ease}a.fact:hover{border-color:var(--accent);transform:translateY(-1px)}.skills{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.skill{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:5px 9px}.group{margin-top:44px}.group-h{font-family:JetBrains Mono,monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--line)}.work-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.work{display:block;position:relative;overflow:hidden;text-decoration:none;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:24px;transition:border-color .2s,transform .2s}.work:hover{border-color:var(--accent);transform:translateY(-3px)}.work:after{content:"";position:absolute;inset:0;border-radius:inherit;opacity:0;pointer-events:none;transition:opacity .35s ease;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--accent) 9%,transparent),transparent 65%)}.work:hover:after{opacity:1}.work .meta{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--muted);letter-spacing:.05em}.work h3{font-size:1.18rem;font-weight:600;margin:8px 0 10px}.work p{color:var(--lead);font-size:.95rem;line-height:1.55}.work .result{margin-top:12px;color:var(--text);font-size:.94rem}.work .result b{color:var(--accent);font-weight:600}.work .stack{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.work .stack span{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:3px 7px}.work .card-hit{position:absolute;inset:0;z-index:1;border-radius:inherit}.work .cover{width:calc(100% + 48px);margin:-24px -24px 16px;display:block;aspect-ratio:16/9;object-fit:cover;border-bottom:1px solid var(--line)}.work .card-foot{display:flex;align-items:baseline;gap:16px;margin-top:14px}.work .arrow{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--muted);transition:transform .25s ease,color .2s ease}.work:hover .arrow{color:var(--accent);transform:translate(4px)}.work .ext{position:relative;z-index:2;font-family:JetBrains Mono,monospace;font-size:12px;color:var(--accent);text-decoration:none}.work .ext:hover{text-decoration:underline}.timeline{margin-top:34px;border-left:1px solid var(--line);padding-left:24px}.role{position:relative;padding:0 0 26px}.role:before{content:"";position:absolute;left:-29px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--accent)}.role .when{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--muted)}.role h4{font-size:1.05rem;font-weight:600;margin:4px 0}.role .org{color:var(--accent);font-weight:500}.role p{color:var(--lead);font-size:.94rem;margin-top:4px;max-width:62ch}.mail{display:inline-block;margin-top:20px;font-size:clamp(1.6rem,5.5vw,3.8rem);font-weight:700;letter-spacing:-.02em;line-height:1.15;color:var(--text);text-decoration:none;overflow-wrap:anywhere;background-image:linear-gradient(var(--accent),var(--accent));background-repeat:no-repeat;background-size:0% 3px;background-position:left calc(100% - 1px);transition:background-size .5s cubic-bezier(.16,1,.3,1),color .3s ease}.mail:hover{background-size:100% 3px;color:var(--accent)}.contact-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}.contact-cta a{font-family:JetBrains Mono,monospace;font-size:13px;text-decoration:none;padding:13px 22px;border-radius:9px;transition:all .2s}.contact-cta a.ghost{border:1px solid var(--line);color:var(--text)}.contact-cta a.ghost:hover{border-color:var(--accent);color:var(--accent)}.foot{position:relative;z-index:2;background:var(--bg);text-align:center;padding:30px;color:var(--muted);font-family:JetBrains Mono,monospace;font-size:11px;border-top:1px solid var(--line)}.case{max-width:820px;margin:0 auto;padding:128px 6vw 96px}.case .back{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--muted);text-decoration:none}.case .back:hover{color:var(--accent)}.case .c-meta{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--muted);margin:24px 0 10px}.case h1.c-title{font-size:clamp(2rem,5vw,3rem);color:var(--text);line-height:1.05}.case .c-summary{color:var(--lead);font-size:1.15rem;margin-top:14px;max-width:62ch}.case .c-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px}.case .c-tags span{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:3px 7px}.case .c-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.case .c-links a{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--accent);text-decoration:none;border:1px solid var(--line);border-radius:8px;padding:8px 14px}.case .c-links a:hover{border-color:var(--accent)}.case .c-cover{width:100%;display:block;border-radius:14px;border:1px solid var(--line);margin-top:28px}.case .nextproj{display:inline-block;margin-top:44px;font-family:JetBrains Mono,monospace;font-size:13px;color:var(--accent);text-decoration:none}.case .nextproj:hover{text-decoration:underline}.prose{margin-top:40px;border-top:1px solid var(--line);padding-top:32px}.prose h2{font-size:1.3rem;margin:28px 0 10px}.prose p{color:var(--lead);line-height:1.7;margin:10px 0;max-width:68ch}.prose strong{color:var(--text)}.prose em{color:var(--muted)}.prose a{color:var(--accent)}.prose img{width:100%;display:block;border:1px solid var(--line);border-radius:12px;margin:24px 0 8px}.prose img+em{font-size:.85rem}.prose video{width:100%;display:block;border:1px solid var(--line);border-radius:12px;margin:24px 0 8px}.prose video+em{font-size:.85rem}.prose .flow-strip{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:26px 0 10px}.prose .flow-strip span{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:8px 14px}.prose .flow-strip i{color:var(--muted);font-style:normal;font-size:13px}.prose .flow-label{font-family:JetBrains Mono,monospace;font-size:11.5px;color:var(--accent);margin:24px 0 0;max-width:none}.prose .flow-label+.flow-strip{margin-top:10px}.prose .fig-cap{font-size:.85rem;color:var(--muted);font-style:italic;margin:6px 0 4px}.prose .quad{margin:26px 0 10px}.prose .quad-axis{font-family:JetBrains Mono,monospace;font-size:11.5px;color:var(--muted);margin:0 0 8px;max-width:none}.prose .quad-axis.quad-x{text-align:right;margin:8px 0 0}.prose .quad-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.prose .quad-grid>div{background:var(--card);padding:16px 18px;min-height:96px}.prose .quad-grid b{display:block;font-size:.95rem;color:var(--text)}.prose .quad-grid span{display:block;font-family:JetBrains Mono,monospace;font-size:11.5px;color:var(--muted);line-height:1.5;margin-top:4px}.prose .quad-hi{box-shadow:inset 3px 0 0 var(--accent)}.prose .quad-band{grid-column:1/-1;min-height:0!important;padding:12px 18px!important}.prose .quad-band b{display:inline;font-size:.9rem}.prose .quad-band span{display:inline;margin-left:10px}@media (max-width:560px){.prose .quad-grid{grid-template-columns:1fr}.prose .quad-grid>div{min-height:0}}.prose .demo-launch{display:inline-flex;align-items:center;gap:10px;margin:26px 0 8px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:500;letter-spacing:.01em;text-decoration:none;color:var(--bg);background:var(--accent);border:1px solid var(--accent);border-radius:10px;padding:14px 22px;transition:filter .2s,transform .2s,box-shadow .2s}.prose .demo-launch:hover{filter:brightness(1.07);transform:translateY(-1px);box-shadow:0 8px 24px color-mix(in srgb,var(--accent) 28%,transparent)}.prose .demo-launch .arr{font-size:15px;line-height:1;transition:transform .2s}.prose .demo-launch:hover .arr{transform:translate(2px,-2px)}.prose .demo-cap{font-size:.85rem;color:var(--muted);margin:0 0 4px;max-width:60ch}.cursor-glow{position:fixed;top:0;left:0;z-index:9;width:24px;height:24px;border-radius:50%;background:var(--accent);filter:blur(7px);opacity:.3;pointer-events:none;will-change:transform}@media (pointer:coarse){.cursor-glow{display:none}}@media (max-width:760px){:root[data-mode=dev] .hero .scrim{background:linear-gradient(180deg,#070a0f80,#070a0fdb)}:root[data-mode=human] .hero .scrim{background:linear-gradient(180deg,#f4efe680,#f4efe6eb)}}
