@font-face{font-family:Space;src:url('../generated/fonts/space-grotesk-latin-700-normal.woff2') format('woff2');font-weight:700;font-display:swap}@font-face{font-family:Geist;src:url('../generated/fonts/geist-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:JetBrains;src:url('../generated/fonts/jetbrains-mono-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
:root{--bg:#0a0a0c;--panel:#121216;--line:#26262c;--text:#f2efe8;--muted:#9a9aa3;--accent:#ff5a1f;--ok:#b8ff3c}*{box-sizing:border-box}html{scroll-behavior:smooth}body.pipeline{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 Geist,system-ui,sans-serif}button,input{font:inherit}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button,a{touch-action:manipulation}button{color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:5px}button:disabled{cursor:default}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Space,system-ui,sans-serif;line-height:1.03;letter-spacing:-.045em}h2{font-size:clamp(2.25rem,5vw,5rem);font-weight:700;max-width:15ch}p{color:var(--muted)}[hidden]{display:none!important}.skip{position:fixed;top:-100px;left:16px;z-index:100;background:var(--accent);color:var(--bg);padding:14px}.skip:focus{top:8px}.topbar{display:flex;justify-content:space-between;align-items:center;padding:26px 4.5%;border-bottom:1px solid var(--line);gap:20px}.topbar nav{display:flex;gap:24px;align-items:center;font:12px JetBrains,monospace}.wordmark{font-family:Space,sans-serif;font-weight:700;font-size:26px}.wordmark span{font:10px JetBrains,monospace;letter-spacing:.1em;margin-left:12px;color:var(--muted)}.locale{border:1px solid var(--line);padding:12px}.section{padding:100px 6%;border-bottom:1px solid var(--line)}.eyebrow{font:11px/1.7 JetBrains,monospace;letter-spacing:.1em;text-transform:uppercase}.hero{position:relative;overflow:hidden;padding-top:45px}.hero-meta{display:flex;justify-content:space-between;gap:30px;margin-bottom:68px}.hero-meta a{color:var(--accent)}.hero h1{font-size:clamp(3rem,7.8vw,8rem);max-width:17ch;margin-bottom:45px;position:relative;z-index:1}.hero h1::selection{background:var(--accent);color:var(--bg)}.hero-lower{display:grid;grid-template-columns:1fr 1fr;gap:10%}.hero-lower>p{font-size:20px;max-width:38ch}.hero-code{border-left:1px solid var(--accent);padding:0 0 0 30px;font:12px/1.7 JetBrains,monospace}.hero-code pre{white-space:pre-wrap}.terminal-status{color:var(--ok);font:10px JetBrains,monospace;letter-spacing:.08em}.pipeline-track{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:24px;margin-top:75px;font:10px JetBrains,monospace;gap:15px;flex-wrap:wrap}.pipeline-track span:first-child{color:var(--accent)}.section-heading{display:flex;gap:70px;align-items:baseline;justify-content:space-between}.section-heading h2{max-width:15ch}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:32px}.filters button{border:1px solid var(--line);background:transparent;padding:12px 18px;font:11px JetBrains,monospace}.filters button[aria-pressed=true]{background:var(--text);color:var(--bg)}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.project-card{background:var(--panel);border:1px solid var(--line);min-width:0;transition:border-color .2s}.project-card:hover{border-color:var(--accent)}.project-art{height:220px;background:radial-gradient(ellipse at 60% 40%,#25211e,transparent 75%);position:relative;padding:24px;overflow:hidden;border-bottom:1px solid var(--line)}.project-art>span:first-child{font:80px Space,sans-serif;color:#3a3531;position:absolute;right:22px;top:3px}.project-art pre{font:13px/1.55 JetBrains,monospace;color:#b5a69b;position:relative;margin-top:25px}.category{position:absolute;bottom:16px;right:20px;font:10px JetBrains,monospace;color:var(--accent)}.project-body{padding:24px}.project-body .eyebrow{font-size:9px;letter-spacing:0}.project-body h3{font-size:25px;overflow-wrap:anywhere}.project-body>p:not(.eyebrow){min-height:3.2em}.project-link{border-top:1px solid var(--line);padding-top:17px;display:flex;justify-content:space-between;font:12px JetBrains,monospace;margin-top:24px}.project-body small{font:10px JetBrains,monospace;color:var(--muted)}.archive{display:flex;justify-content:space-between;margin-top:40px;border-top:1px solid var(--line);padding-top:25px}.expertise-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:70px;margin-top:50px}.skill-list button{display:flex;text-align:left;align-items:center;width:100%;border:0;border-bottom:1px solid var(--line);background:none;padding:25px 0;font:24px/1.2 Space,sans-serif;letter-spacing:-.03em;color:var(--muted)}.skill-list button span{font:10px JetBrains,monospace;color:var(--accent);margin-right:25px}.skill-list button[aria-pressed=true]{color:var(--text)}.skill-number{font:150px/1 Space,sans-serif;color:var(--accent)}.skill-copy p{font-size:21px;max-width:30ch;margin-top:25px}.about{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center}.about p{max-width:45ch}.career-terminal{background:var(--panel);border:1px solid var(--line);font:12px/2 JetBrains,monospace;padding:25px}.terminal-bar{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:25px;color:var(--muted);font-size:10px}.career-terminal p span{color:var(--accent)}.email{font:clamp(1rem,3.5vw,3.5rem)/1.4 Space,sans-serif;letter-spacing:-.03em;overflow-wrap:anywhere;display:inline-block;border-bottom:1px solid var(--accent)}.socials{display:flex;gap:24px;flex-wrap:wrap;font:12px JetBrains,monospace;margin:32px 0}.socials a{padding:8px 0}.footer{padding:30px 4.5%;display:flex;gap:25px;justify-content:space-between;flex-wrap:wrap;font:9px JetBrains,monospace;color:var(--muted)}.button{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:16px 22px;border:1px solid var(--line);background:var(--panel);font:12px JetBrains,monospace;min-height:48px}.button.primary{background:var(--accent);color:#0a0a0c;border-color:var(--accent)}.button:hover{filter:brightness(1.1)}.text-link{font:12px JetBrains,monospace;display:inline-block;padding:15px 0}.card-page{background-image:radial-gradient(#26262c 1px,transparent 1px)!important;background-size:16px 16px!important}.card-shell{width:min(500px,calc(100% - 32px));margin:45px auto;text-align:center;perspective:1200px}.card-shell>.eyebrow{font-size:9px}.contact-card{text-align:left;background:var(--panel);padding:28px;border:1px solid #46464d;box-shadow:0 25px 100px #0008;position:relative;transform-style:preserve-3d;will-change:transform}.card-top{display:flex;justify-content:space-between;align-items:center}.chip{font:9px JetBrains,monospace;border:1px solid var(--line);padding:6px 10px}.signal{color:var(--ok);font-size:12px}.identity{margin-top:28px}.monogram{height:80px;width:80px;border:1px solid var(--accent);display:grid;place-items:center;color:var(--accent);font:38px Space,sans-serif;position:relative;margin-bottom:25px;overflow:hidden}.pixel{position:absolute;inset:0;width:100%;height:100%;background:var(--panel)}.identity .eyebrow{font-size:9px}.identity h1{font-size:38px;line-height:1.1;margin-bottom:8px}.card-role{font-size:16px;color:var(--text);margin-bottom:12px}.specialties{font:11px/1.8 JetBrains,monospace}.card-front>.eyebrow{font-size:9px;margin-top:30px}.card-projects{list-style:none;padding:0;margin:0}.card-projects li{border-top:1px solid var(--line)}.card-projects a{display:flex;justify-content:space-between;padding:13px 0;font:12px JetBrains,monospace;gap:10px;overflow-wrap:anywhere}.card-back{text-align:center;margin-top:30px}.card-back>a{font:11px JetBrains,monospace;overflow-wrap:anywhere;display:block}.qr{width:100%;max-width:220px;height:auto;background:#fff;padding:8px}.card-page .socials{justify-content:space-between;gap:12px;margin:22px 0}.card-controls{display:flex;justify-content:space-between;flex-wrap:wrap;margin-top:15px;gap:6px}.card-controls button{border:0;background:none;color:var(--muted);font:10px JetBrains,monospace;padding:12px 0}.feedback{font:11px JetBrains,monospace;margin:8px 0 0}.feedback:empty{display:none}.share-url{width:100%;padding:10px;background:var(--bg);border:1px solid var(--line);color:var(--text);font:11px JetBrains,monospace}.stage-view{text-align:center;padding:35px;min-height:100svh}.stage-view .button{margin:0 auto 25px;max-width:300px}.stage-view h2{margin:20px auto;font-size:35px;max-width:none}.stage-view img{width:min(65vh,85vw);height:auto;background:white;padding:10px}.stage-view p{font:clamp(14px,2.4vw,30px) JetBrains,monospace;overflow-wrap:anywhere}.is-stage .topbar,.is-stage .footer,.is-stage .card-shell{display:none}.case-study h1{font-size:clamp(2.5rem,7vw,7rem);overflow-wrap:anywhere;max-width:100%;margin-bottom:25px}.case-tags{margin-top:60px;color:var(--accent)}.case-lead{font-size:28px;max-width:35ch;color:var(--text)}.case-study>p{max-width:65ch}.case-study>.button{display:inline-flex;margin:25px 0 55px}.case-study h2{font-size:32px;margin-top:45px;max-width:none}.flow{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:12px}.flow li{border:1px solid var(--line);background:var(--panel);padding:22px;font:13px JetBrains,monospace;flex:1;min-width:120px}.flow li span{display:block;color:var(--accent);font-size:10px;margin-bottom:10px}.case-columns{display:grid;grid-template-columns:1fr 1fr;gap:50px}.lens{position:absolute;width:160px;height:160px;border:1px solid #ff5a1f66;border-radius:45% 55% 60% 40%;pointer-events:none;background:#ff5a1f09;z-index:0;inset:180px 10% auto auto}.reveal-char{display:inline-block}.iris{position:fixed;inset:0;z-index:90;background:var(--accent);pointer-events:none;clip-path:circle(0 at var(--x) var(--y))}.iris.open{clip-path:circle(150vmax at var(--x) var(--y));transition:clip-path .5s cubic-bezier(.7,0,.3,1)}
@media(min-width:1100px){.project-grid.is-pinned{display:flex;width:max-content}.project-grid.is-pinned .project-card{width:350px;flex:none}.projects-section{overflow:hidden}}
@media(max-width:900px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-lower,.about{gap:35px}.expertise-grid{gap:35px}.skill-list button{font-size:20px}.wordmark span{display:none}.topbar nav{gap:16px}.section-heading{display:block}.hero h1{font-size:clamp(3rem,9vw,6rem)}}
@media(max-width:600px){.section{padding:65px 6%}.topbar{padding:18px 5%}.topbar nav{font-size:10px}.hero{padding-top:30px}.hero-meta{font-size:9px;margin-bottom:45px}.hero h1{font-size:clamp(2.7rem,11.5vw,4.5rem)}.hero-lower,.expertise-grid,.about,.case-columns{grid-template-columns:1fr}.hero-lower>p{font-size:18px}.hero-code{margin-top:15px;font-size:11px}.pipeline-track{margin-top:35px;font-size:8px;gap:12px}.project-grid{grid-template-columns:1fr}.project-art{height:190px}.expertise-grid{gap:25px}.skill-number{font-size:80px}.skill-copy p{font-size:18px}.card-shell{margin:25px auto}.contact-card{padding:22px}.identity h1{font-size:33px}.card-page .topbar nav>a:not(.locale){display:none}.footer{font-size:8px}.case-study h1{font-size:42px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.contact-card{transform:none!important}.lens{display:none}.project-grid.is-pinned{display:grid;width:auto}.project-grid.is-pinned .project-card{width:auto}}
/* Progressive motion: the static layout remains the base. */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.hero-word{display:inline-block;white-space:nowrap}.hero h1{max-width:none;width:100%;position:relative;z-index:2}.hero-lower,.hero-meta,.pipeline-track{position:relative;z-index:2}.ascii-field{position:absolute;right:4%;top:200px;width:50%;height:360px;pointer-events:none;opacity:.45;z-index:0;overflow:hidden}.ascii-field canvas{width:100%;height:100%}.ascii-fallback{font:clamp(40px,7vw,110px) JetBrains,monospace;position:absolute;bottom:20px;right:0;color:#b8ff3c22}.ascii-field:has(canvas:not([hidden])) .ascii-fallback{visibility:hidden}.ascii-field::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(transparent 0 3px,#0a0a0c44 3px 4px);pointer-events:none}.motion-lens{inset:0 auto auto 0;width:160px;height:160px;overflow:hidden;z-index:3;mix-blend-mode:normal}.lens-copy{position:absolute;inset:0;overflow:hidden;border-radius:inherit;background:#0a0a0c66}.lens-text{font-family:Space,system-ui,sans-serif;font-weight:700;line-height:1.03;letter-spacing:-.045em;position:absolute;inset:0 auto auto 0;color:var(--text);transform-origin:0 0}.filter-defs{position:absolute;width:0;height:0;overflow:hidden}.gallery-tools{display:flex;justify-content:flex-end;margin:0 0 24px}.gallery-tools .button{padding:10px 15px;min-height:44px}.gallery-tools [aria-pressed=true]{border-color:var(--accent)}.project-caption{height:64px;position:relative;margin:20px 0 40px;font:clamp(30px,4vw,55px)/1 Space,sans-serif;letter-spacing:-.04em;overflow:hidden}.project-caption>span{position:absolute;inset:0}.project-caption i{position:absolute;left:0;right:0;top:var(--cut,100%);height:1px;background:var(--accent)}.project-art{transform-origin:50% 0;will-change:transform}.project-card{overflow:hidden}.skill-list button{transition:color .2s,transform .2s;transform-origin:left center}.skill-list button[aria-pressed=true]{transform:scale(1.04)}html[data-motion-quality=static] .motion-lens{display:none}html[data-motion-quality=static] .project-art{will-change:auto}
@media(max-width:600px){.ascii-field{top:220px;right:0;width:80%;height:240px;opacity:.2}.motion-lens{width:120px;height:120px}.project-caption{display:none}}
@media(prefers-reduced-motion:reduce){.ascii-field canvas,.motion-lens,.project-caption{display:none!important}.ascii-fallback{visibility:visible!important}.skill-list button[aria-pressed=true]{transform:none}.project-art{transform:none!important}}
.contact-card{isolation:isolate}.contact-card>*:not(.card-dither):not(.card-sheen){position:relative;z-index:1}.card-dither{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated;opacity:.065;pointer-events:none;z-index:-1}.card-sheen{position:absolute;inset:-30%;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 50% 25%,#ffffff0b,transparent 45%);will-change:transform}.identity h1 canvas{width:100%;height:auto;image-rendering:pixelated;display:block;min-height:25px}.identity h1.pixel-title-ready>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.identity h1.pixel-title-ready{margin:16px 0;line-height:1}.card-deck{transform-origin:center center;backface-visibility:hidden;perspective:800px}.card-front,.card-back{min-height:190px}.card-controls button{min-height:44px}.card-controls [aria-pressed=true]{color:var(--text)}.card-dither+.card-sheen~.identity .monogram .pixel{inset:25% 10%;width:80%;height:50%}.card-back .qr{max-width:190px}.stage-view{outline:none}
@media(prefers-reduced-motion:reduce){.card-sheen{display:none}.card-deck{transform:none!important}}
.contact-card{overflow:hidden}.card-sheen{inset:0}
.card-page main{overflow-x:clip}
.pixel{image-rendering:pixelated}.card-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.card-controls button{padding:10px;border:1px solid var(--line);font-size:11px;text-align:center}.card-controls button:hover{border-color:var(--accent)}
@media(max-width:600px){.card-page .topbar{padding:12px 5%}.card-shell{margin:16px auto}.contact-card{padding:20px}.identity{margin-top:16px}.monogram{width:48px;height:48px;margin-bottom:12px}.identity h1.pixel-title-ready{margin:12px 0}.card-role{font-size:14px;margin-bottom:6px}.specialties{font-size:10px;line-height:1.6}.card-front>.eyebrow{margin-top:20px}.card-front,.card-back{min-height:150px}.card-page .socials{margin:16px 0}.card-page .footer{display:none}}
/* Keep the caption and the horizontal track in the same pinned scene. */
.project-stage{display:flow-root}

.project-archive ul{list-style:none;padding:0}.project-archive li{display:grid;grid-template-columns:1fr 2fr;gap:24px;padding:20px 0;border-top:1px solid var(--line)}.project-archive li span{color:var(--muted)}.portrait-compare img{max-width:100%;height:auto;object-fit:cover}.email{position:relative;overflow:hidden}.contact-glass{position:absolute;inset:0 auto auto 0;width:80px;height:80px;border:1px solid #ff5a1f88;border-radius:48% 52% 40% 60%;pointer-events:none;background:#ffffff0a}.contact-glass[hidden]{display:none}.email:focus-visible{background:#ff5a1f15}@media(max-width:600px){.project-archive li{grid-template-columns:1fr;gap:8px}}@media(prefers-reduced-motion:reduce){.contact-glass{display:none}}

.card-portrait{width:64px;height:64px;object-fit:cover;float:right;border:1px solid var(--line)}.portrait-compare{margin:0;min-width:0}.portrait-compare img{display:block;aspect-ratio:1;object-fit:cover}.portrait-compare button{margin-top:12px}

.about:has(.portrait-compare) .career-terminal{grid-column:1/-1}

/* Architecture explorer: HTML carries meaning; SVG only draws connections. */
.architecture-section>h2{max-width:18ch}.architecture-intro{max-width:65ch;font-size:19px}.arch-picker{display:flex;gap:16px;align-items:center;margin:35px 0 24px;font:12px/1.6 JetBrains,monospace;flex-wrap:wrap}.arch-picker select{appearance:auto;max-width:100%;min-height:48px;padding:12px 36px 12px 14px;background:var(--panel);color:var(--text);border:1px solid var(--line);font:inherit}.arch-picker select:focus-visible,.arch-relations summary:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.architecture-map{padding:32px;border:1px solid var(--line);background:var(--panel);margin:28px 0;min-width:0}.arch-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.arch-heading .eyebrow{color:var(--accent);margin-bottom:12px}.arch-heading h3{font-size:clamp(24px,3vw,38px);overflow-wrap:anywhere;margin-bottom:18px;max-width:24ch}.arch-counter{font:14px JetBrains,monospace;white-space:nowrap;color:var(--muted)}.arch-description{max-width:75ch}.arch-controls{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:24px 0}.arch-controls button{background:transparent;min-height:44px;font:11px/1.5 JetBrains,monospace}.arch-controls [aria-pressed=true]{background:var(--accent);color:var(--bg);border-color:var(--accent)}.arch-reduced{color:var(--muted);font:11px/1.6 JetBrains,monospace}.arch-board{position:relative;margin:30px 0}.arch-wires{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.arch-nodes{position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:58px 44px}.arch-nodes>li{grid-column:var(--column);grid-row:var(--row);min-width:0}.arch-node{display:flex;flex-direction:column;justify-content:center;gap:12px;position:relative;padding:20px 30px 20px 20px;min-height:120px;height:100%;border:1px solid #45454f;background:var(--bg);color:var(--text)}.arch-node strong{font:700 18px/1.25 Space,system-ui,sans-serif;letter-spacing:-.02em;overflow-wrap:anywhere}.arch-node .eyebrow{color:var(--muted);margin:0;font-size:10px}.arch-node[aria-current=step]{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent);background:#1d1714}.arch-node[aria-current=step] .eyebrow{color:var(--text)}.arch-node:hover{color:var(--text);border-color:var(--accent)}.arch-port{position:absolute;right:12px;top:10px;font-size:12px;color:var(--muted)}.arch-edge{fill:none;stroke:#55555e;stroke-width:1.5}.arch-edge.is-active{stroke:var(--accent);stroke-width:2}.arch-packet{fill:var(--accent);opacity:0}.architecture-map.is-playing .arch-packet.is-active{opacity:1}.arch-explanations{border-top:1px solid var(--line);padding-top:24px;min-height:165px}.arch-explanations h4{font:700 23px/1.2 Space,sans-serif;letter-spacing:-.03em;margin:0 0 12px}.arch-explanations section>p:last-child{max-width:80ch}.arch-explanations .eyebrow{margin-bottom:10px}.arch-principle{border-left:2px solid var(--accent);padding-left:18px;margin:18px 0 28px;color:var(--text);max-width:75ch}.arch-relations{border-top:1px solid var(--line);padding-top:18px}.arch-relations summary{cursor:pointer;font:12px/1.6 JetBrains,monospace;min-height:36px}.arch-relations ul{padding-left:20px}.arch-relations li{padding:9px 0;font-size:13px}.arch-relations li span{display:block;color:var(--muted)}.arch-sources{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:22px}.arch-sources a{font:11px/1.6 JetBrains,monospace;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}.arch-note{font-size:12px;max-width:90ch;margin:20px 0 0}.case-study .architecture-map p{font-size:16px}.case-study .architecture-map .arch-note{font-size:12px}.case-study .architecture-map .eyebrow{font-size:11px}.case-study .architecture-map h3{max-width:100%}
@media(max-width:700px){.architecture-map{padding:20px 16px}.arch-heading{align-items:flex-start}.arch-counter{font-size:11px}.arch-picker{display:block}.arch-picker select{display:block;width:100%;margin-top:10px}.arch-nodes{grid-template-columns:1fr;gap:28px}.arch-nodes>li{grid-column:1;grid-row:auto}.arch-node{min-height:94px;padding:16px 30px 16px 18px;gap:8px}.arch-node strong{font-size:18px}.arch-explanations{min-height:200px}.arch-controls{gap:8px}.arch-controls .button{padding:10px}.arch-relations li{overflow-wrap:anywhere}.arch-sources{align-items:flex-start;flex-direction:column;gap:10px}.architecture-intro{font-size:17px}}
@media(prefers-reduced-motion:reduce){.arch-packet{display:none!important}}

@media(max-width:700px){.arch-board{padding:0 16px}}
