:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fafbfa;--bg-subtle:#f1f4f2;--bg-sunken:#eaefeb;--surface:#fff;--surface-2:#f6f8f7;--surface-hover:#fff;--inverse-bg:#0b100e;--inverse-text:#edf3ef;--text:#0c1512;--text-2:#46564f;--text-3:#5f6f68;--text-on-accent:#fff;--line:#e3e9e5;--line-2:#d2dbd6;--line-strong:#b9c6bf;--accent:#0e7a52;--accent-hover:#0a6242;--accent-text:#0b6244;--accent-soft:#e6f4ec;--accent-ring:#0e7a5247;--accent-glow:#17a06c29;--shadow-sm:0 1px 2px #0c15120d, 0 1px 1px #0c15120a;--shadow-md:0 4px 10px -2px #0c151212, 0 12px 28px -8px #0c151214;--shadow-lg:0 8px 20px -6px #0c15121a, 0 28px 60px -18px #0c151224;--glass:#fafbfac7;--grid-line:#0c15120b;--sheen:linear-gradient(180deg, #ffffffe6, #fff0)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#080b0a;--bg-subtle:#0c110f;--bg-sunken:#060908;--surface:#101614;--surface-2:#141b19;--surface-hover:#161e1b;--inverse-bg:#f3f7f5;--inverse-text:#0c1512;--text:#e9f0ec;--text-2:#a2b2ab;--text-3:#78887f;--text-on-accent:#04140d;--line:#1b2422;--line-2:#24302c;--line-strong:#33413c;--accent:#3edb95;--accent-hover:#63e7ab;--accent-text:#4fe0a0;--accent-soft:#3edb951a;--accent-ring:#3edb9557;--accent-glow:#3edb9521;--shadow-sm:0 1px 2px #00000080;--shadow-md:0 6px 16px -4px #0009;--shadow-lg:0 12px 32px -8px #000000a6, 0 40px 80px -30px #000c;--glass:#080b0abd;--grid-line:#e9f0ec0d;--sheen:linear-gradient(180deg, #ffffff0b, #fff0)}:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--r-xs:6px;--r-sm:10px;--r-md:14px;--r-lg:20px;--r-xl:28px;--r-pill:999px;--shell:1200px;--gutter:clamp(20px, 5vw, 48px);--section-y:clamp(80px, 10vw, 140px);--ease:cubic-bezier(.22, 1, .36, 1);--ease-out:cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:96px}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-feature-settings:"cv02", "cv03", "cv04", "ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .35s var(--ease), color .35s var(--ease);margin:0;font-size:16px;line-height:1.6;overflow-x:hidden}body.nav-open{overflow:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}h1,h2,h3,h4{letter-spacing:-.035em;text-wrap:balance;margin:0;font-weight:620;line-height:1.08}p{text-wrap:pretty}::selection{background:var(--accent);color:var(--text-on-accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--r-xs)}.skip-link{z-index:200;border-radius:var(--r-sm);background:var(--accent);color:var(--text-on-accent);transition:top .2s var(--ease);padding:12px 18px;font-size:13px;font-weight:650;position:absolute;top:-80px;left:16px}.skip-link:focus-visible{top:16px}.shell{width:100%;max-width:var(--shell);padding-inline:var(--gutter);margin-inline:auto}.eyebrow{color:var(--accent-text);font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:9px;margin:0;font-size:11px;font-weight:500;display:inline-flex}.eyebrow .dot{background:var(--accent);border-radius:50%;flex:none;width:7px;height:7px;position:relative}.eyebrow .dot:after{content:"";border:1px solid var(--accent);opacity:.5;animation:ping 2.6s var(--ease-out) infinite;border-radius:50%;position:absolute;inset:-4px}@keyframes ping{0%{opacity:.7;transform:scale(.7)}70%{opacity:0;transform:scale(1.9)}to{opacity:0;transform:scale(1.9)}}.section-head{grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr);align-items:end;gap:clamp(28px,6vw,96px);margin-bottom:clamp(40px,6vw,72px);display:grid}.section-head--solo{grid-template-columns:minmax(0,1fr)}.section-head h2{letter-spacing:-.045em;max-width:16ch;margin:16px 0 0;font-size:clamp(30px,4.4vw,54px)}.section-head--solo h2{max-width:22ch}.section-head .section-note{color:var(--text-2);max-width:46ch;margin:0;font-size:15px;line-height:1.72}.btn{--btn-bg:var(--text);--btn-fg:var(--bg);border-radius:var(--r-pill);background:var(--btn-bg);color:var(--btn-fg);letter-spacing:-.01em;white-space:nowrap;transition:transform .25s var(--ease), box-shadow .25s var(--ease), background-color .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease);align-items:center;gap:10px;padding:13px 20px;font-size:14px;font-weight:600;display:inline-flex;position:relative}.btn:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn .arrow{transition:transform .25s var(--ease)}.btn:hover .arrow{transform:translate(2px,-2px)}.btn:hover .arrow-down{transform:translateY(3px)}.btn--accent{--btn-bg:var(--accent);--btn-fg:var(--text-on-accent)}.btn--accent:hover{--btn-bg:var(--accent-hover)}.btn--ghost{--btn-bg:transparent;--btn-fg:var(--text);border:1px solid var(--line-2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn--ghost:hover{border-color:var(--line-strong);background:var(--surface)}.btn--sm{padding:9px 16px;font-size:13px}.link-underline{color:var(--text-2);transition:color .22s var(--ease);align-items:center;gap:6px;padding-bottom:3px;font-size:14px;font-weight:560;display:inline-flex;position:relative}.link-underline:after{content:"";opacity:.3;transform-origin:100%;width:100%;height:1px;transition:transform .4s var(--ease), opacity .22s var(--ease);background:currentColor;position:absolute;bottom:0;left:0;transform:scaleX(1)}.link-underline:hover{color:var(--text)}.link-underline:hover:after{opacity:.85;transform-origin:0}.chip{border:1px solid var(--line-2);border-radius:var(--r-pill);background:var(--surface-2);color:var(--text-2);font-family:var(--font-mono);letter-spacing:.02em;white-space:nowrap;align-items:center;padding:5px 11px;font-size:11px;font-weight:450;display:inline-flex}.reveal{opacity:0;transition:opacity .8s var(--ease-out), transform .8s var(--ease-out);transition-delay:var(--delay,0s);will-change:opacity, transform;transform:translateY(18px)}.reveal.is-visible{opacity:1;transform:none}.site-header{z-index:100;transition:background-color .3s var(--ease), border-color .3s var(--ease);border-bottom:1px solid #0000;position:sticky;top:0}.site-header.is-stuck{background:var(--glass);-webkit-backdrop-filter:blur(14px)saturate(180%);border-bottom-color:var(--line)}.site-header .shell{justify-content:space-between;align-items:center;gap:24px;height:72px;display:flex}.brand{letter-spacing:-.02em;align-items:center;gap:11px;font-size:15px;font-weight:640;display:inline-flex}.brand-mark{background:var(--text);width:32px;height:32px;color:var(--bg);font-family:var(--font-mono);letter-spacing:-.02em;transition:transform .3s var(--ease), background-color .3s var(--ease), color .3s var(--ease);border-radius:9px;place-items:center;font-size:12px;font-weight:700;display:grid}.brand:hover .brand-mark{background:var(--accent);color:var(--text-on-accent);transform:rotate(-6deg)scale(1.06)}.brand-meta{color:var(--text-3);font-family:var(--font-mono);font-size:11px;font-weight:450}.nav-desktop{align-items:center;gap:4px;display:flex}.nav-desktop a{border-radius:var(--r-pill);color:var(--text-2);transition:color .22s var(--ease), background-color .22s var(--ease);padding:8px 14px;font-size:14px;font-weight:520;position:relative}.nav-desktop a:hover{color:var(--text);background:var(--surface-2)}.header-actions{align-items:center;gap:10px;display:flex}.icon-btn{border-radius:var(--r-pill);border:1px solid var(--line-2);width:38px;height:38px;color:var(--text-2);transition:color .22s var(--ease), border-color .22s var(--ease), background-color .22s var(--ease), transform .22s var(--ease);place-items:center;display:grid}.icon-btn:hover{color:var(--text);border-color:var(--line-strong);background:var(--surface-2)}.icon-btn:active{transform:scale(.94)}.icon-btn svg{width:17px;height:17px}.theme-toggle .sun{display:none}:root[data-theme=dark] .theme-toggle .sun{display:block}:root[data-theme=dark] .theme-toggle .moon,.nav-trigger{display:none}.nav-trigger .bar{width:16px;height:1.6px;transition:transform .3s var(--ease), opacity .2s var(--ease);background:currentColor;border-radius:2px;display:block}.nav-trigger .bar+.bar{margin-top:4.5px}.nav-trigger[aria-expanded=true] .bar:first-child{transform:translateY(6.1px)rotate(45deg)}.nav-trigger[aria-expanded=true] .bar:nth-child(2){opacity:0}.nav-trigger[aria-expanded=true] .bar:nth-child(3){transform:translateY(-6.1px)rotate(-45deg)}.nav-sheet{z-index:99;padding:28px var(--gutter) 40px;background:var(--bg);border-top:1px solid var(--line);opacity:0;visibility:hidden;transition:opacity .3s var(--ease), transform .3s var(--ease), visibility .3s;flex-direction:column;gap:4px;display:flex;position:fixed;inset:72px 0 0;transform:translateY(-10px)}.nav-sheet.is-open{opacity:1;visibility:visible;transform:none}.nav-sheet a{border-bottom:1px solid var(--line);letter-spacing:-.035em;align-items:baseline;gap:14px;padding:18px 0;font-size:26px;font-weight:600;display:flex}.nav-sheet a .idx{color:var(--accent-text);font-family:var(--font-mono);font-size:11px;font-weight:450}.nav-sheet a.btn{letter-spacing:-.01em;border-bottom:0;justify-content:center;margin-top:28px;padding:15px 22px;font-size:14px}.hero{padding-block:clamp(56px,8vw,104px) clamp(48px,7vw,88px);position:relative;overflow:hidden}.hero:before{content:"";background:radial-gradient(52% 46% at 74% 26%, var(--accent-glow), transparent 68%), radial-gradient(40% 40% at 12% 8%, var(--accent-glow), transparent 70%);pointer-events:none;z-index:0;height:720px;position:absolute;inset:-20% -10% auto}.hero:after{content:"";background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);pointer-events:none;z-index:0;background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(78% 62% at 50% 34%,#000 20%,#0000 100%);mask-image:radial-gradient(78% 62% at 50% 34%,#000 20%,#0000 100%)}.hero>.shell{z-index:1;position:relative}.hero-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:clamp(40px,6vw,80px);display:grid}.hero h1{letter-spacing:-.055em;margin:24px 0 0;font-size:clamp(40px,6.4vw,82px);font-weight:640;line-height:1.02}.hero h1 .grad{background:linear-gradient(120deg, var(--text) 18%, var(--accent-text) 92%);color:#0000;-webkit-background-clip:text;background-clip:text}.hero .lede{max-width:52ch;color:var(--text-2);margin:24px 0 0;font-size:clamp(16px,1.5vw,18px);line-height:1.68}.hero-actions{flex-wrap:wrap;align-items:center;gap:12px 22px;margin-top:34px;display:flex}.arch-panel{border:1px solid var(--line-2);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-lg);position:relative;overflow:hidden}.arch-panel:before{content:"";background:var(--sheen);pointer-events:none;height:50%;position:absolute;inset:0 0 auto}.arch-bar{border-bottom:1px solid var(--line);background:var(--surface-2);font-family:var(--font-mono);color:var(--text-3);letter-spacing:.04em;justify-content:space-between;align-items:center;gap:12px;padding:13px 18px;font-size:11px;display:flex;position:relative}.arch-dots{gap:6px;display:flex}.arch-dots i{background:var(--line-strong);border-radius:50%;width:8px;height:8px}.arch-dots i:first-child{background:var(--accent)}.arch-live{color:var(--accent-text);align-items:center;gap:7px;display:inline-flex}.arch-live i{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}.arch-body{padding:clamp(20px,3vw,30px);position:relative}.arch-node{border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface-2);transition:border-color .3s var(--ease);padding:14px 16px;position:relative}.arch-node strong{font-family:var(--font-mono);letter-spacing:-.01em;font-size:12.5px;font-weight:600;display:block}.arch-node small{color:var(--text-3);margin-top:5px;font-size:11px;line-height:1.5;display:block}.arch-node--lead{border-color:var(--accent-ring);background:var(--accent-soft)}.arch-node--lead strong{color:var(--accent-text)}.arch-panel:hover .arch-node{border-color:var(--line-strong)}.arch-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.arch-row--3{grid-template-columns:repeat(3,1fr)}.arch-wire{background:var(--line-2);width:1px;height:26px;margin:0 auto;position:relative;overflow:hidden}.arch-wire:after{content:"";background:linear-gradient(180deg, transparent, var(--accent));width:100%;height:60%;animation:2.4s linear infinite flow;position:absolute;top:-60%;left:0}.arch-wire--b:after{animation-delay:.8s}@keyframes flow{to{top:110%}}.arch-mini{border:1px solid var(--line-2);border-radius:var(--r-xs);background:var(--surface);text-align:center;font-family:var(--font-mono);color:var(--text-2);padding:11px 8px;font-size:11px;font-weight:500}.arch-foot{border-top:1px solid var(--line);background:var(--surface-2);flex-wrap:wrap;gap:8px;padding:14px 18px;display:flex}.arch-foot span{font-family:var(--font-mono);color:var(--text-3);letter-spacing:.04em;text-transform:uppercase;font-size:10.5px}.arch-foot span+span:before{content:"·";color:var(--line-strong);margin-right:8px}.stat-band{border:1px solid var(--line);border-radius:var(--r-md);background:var(--line);grid-template-columns:repeat(4,1fr);gap:1px;margin-top:clamp(44px,6vw,76px);display:grid;overflow:hidden}.stat{background:var(--bg);transition:background-color .3s var(--ease);margin:0;padding:clamp(18px,2.6vw,26px) clamp(16px,2.4vw,26px)}.stat:hover{background:var(--surface)}.stat dt{color:var(--text-3);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:10.5px}.stat dd{letter-spacing:-.04em;margin:10px 0 0;font-size:clamp(24px,3vw,34px);font-weight:620;line-height:1}.stat dd em{color:var(--accent-text);font-style:normal}.section{padding-block:var(--section-y)}.section--sunken{background:var(--bg-subtle);border-block:1px solid var(--line)}.about-grid{grid-template-columns:minmax(0,300px) minmax(0,1fr);align-items:start;gap:clamp(32px,6vw,80px);display:grid}.portrait{border-radius:var(--r-lg);border:1px solid var(--line-2);box-shadow:var(--shadow-md);background:var(--surface-2);margin:0;position:relative;overflow:hidden}.portrait img{aspect-ratio:4/5;object-fit:cover;width:100%;transition:transform .8s var(--ease), filter .5s var(--ease);filter:saturate(.92)}.portrait:hover img{filter:saturate();transform:scale(1.035)}.portrait figcaption{border-radius:var(--r-sm);-webkit-backdrop-filter:blur(12px);color:#eaf2ed;font-family:var(--font-mono);letter-spacing:.02em;background:#0a100e9e;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;font-size:11px;display:flex;position:absolute;bottom:12px;left:12px;right:12px}.portrait figcaption b{font-weight:600}.portrait figcaption span{color:#7fe0ae}.about-copy h2{letter-spacing:-.04em;max-width:22ch;margin-top:16px;font-size:clamp(26px,3.5vw,42px);line-height:1.14}.about-body{grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,40px);margin-top:28px;display:grid}.about-body p{color:var(--text-2);margin:0;font-size:15.5px;line-height:1.75}.principles{grid-template-columns:repeat(3,1fr);gap:12px;margin:36px 0 0;padding:0;list-style:none;display:grid}.principles li{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);transition:border-color .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);padding:18px}.principles li:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm);transform:translateY(-3px)}.principles b{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-text);font-size:11px;font-weight:500;display:block}.principles p{color:var(--text-2);margin:9px 0 0;font-size:13.5px;line-height:1.6}.work-list{gap:14px;display:grid}.case{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);transition:border-color .3s var(--ease), box-shadow .35s var(--ease);overflow:hidden}.case:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md)}.case.is-open{border-color:var(--accent-ring);box-shadow:var(--shadow-md)}.case-heading{font:inherit;letter-spacing:inherit;margin:0}.case-head{text-align:left;grid-template-columns:44px minmax(0,250px) minmax(0,1fr) 40px;align-items:center;gap:clamp(14px,2.4vw,28px);width:100%;padding:clamp(20px,2.6vw,28px);display:grid}.case-no{font-family:var(--font-mono);color:var(--text-3);letter-spacing:.06em;font-size:11px}.case-name small{color:var(--accent-text);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px;font-size:10.5px;font-weight:500;display:block}.case-name strong{letter-spacing:-.035em;transition:color .25s var(--ease);font-size:clamp(20px,2.4vw,26px);font-weight:620}.case:hover .case-name strong{color:var(--accent-text)}.case-blurb{color:var(--text-2);margin:0;font-size:14px;line-height:1.6}.case-toggle{border:1px solid var(--line-2);width:36px;height:36px;color:var(--text-2);transition:transform .35s var(--ease), background-color .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);border-radius:50%;justify-self:end;place-items:center;display:grid;position:relative}.case:hover .case-toggle{border-color:var(--accent-ring);color:var(--accent-text)}.case.is-open .case-toggle{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent);transform:rotate(45deg)}.case-toggle svg{width:15px;height:15px}.case-panel{transition:grid-template-rows .45s var(--ease);grid-template-rows:0fr;display:grid}.case.is-open .case-panel{grid-template-rows:1fr}.case-panel>div{overflow:hidden}.case-inner{border-top:1px solid var(--line);grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,4vw,56px);padding:clamp(24px,3vw,30px) clamp(20px,2.6vw,28px) clamp(26px,3vw,34px);display:grid}.case-lead>p{color:var(--text-2);margin:0 0 20px;font-size:15px;line-height:1.75}.case-chips{flex-wrap:wrap;gap:6px;display:flex}.case-repo{margin-top:22px}.case-facts{grid-template-columns:1fr 1fr;gap:clamp(22px,3vw,32px);display:grid}.case-facts .wide{grid-column:1/-1}.case-facts h4{color:var(--accent-text);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;margin:0 0 10px;font-size:10.5px;font-weight:500}.case-facts p{color:var(--text-2);margin:0;font-size:14px;line-height:1.7}.case-facts ul{gap:9px;margin:0;padding:0;list-style:none;display:grid}.case-facts li{color:var(--text-2);padding-left:18px;font-size:14px;line-height:1.65;position:relative}.case-facts li:before{content:"";background:var(--accent);opacity:.55;border-radius:2px;width:6px;height:6px;position:absolute;top:.62em;left:0}.timeline{display:grid;position:relative}.timeline:before{content:"";background:linear-gradient(180deg, var(--accent), var(--line-2) 55%, transparent);width:1px;position:absolute;top:12px;bottom:12px;left:7px}.timeline article{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,190px) minmax(0,1fr);gap:clamp(16px,3vw,44px);padding:26px 0 26px 40px;display:grid;position:relative}.timeline article:last-child{border-bottom:0}.timeline article:before{content:"";background:var(--bg);border:1.5px solid var(--line-strong);width:9px;height:9px;transition:border-color .3s var(--ease), box-shadow .3s var(--ease), background-color .3s var(--ease);border-radius:50%;position:absolute;top:33px;left:3px}.timeline article:hover:before{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 5px var(--accent-soft)}.timeline time{color:var(--text-3);font-family:var(--font-mono);letter-spacing:.04em;padding-top:3px;font-size:11.5px;display:block}.timeline h3{letter-spacing:-.025em;font-size:18px;font-weight:620}.timeline .company{color:var(--accent-text);margin:6px 0 0;font-size:13.5px;font-weight:560}.timeline .role-copy{color:var(--text-2);max-width:62ch;margin:12px 0 0;font-size:14.5px;line-height:1.7}.education{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:clamp(36px,5vw,56px);display:grid}.education>div{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);transition:border-color .3s var(--ease), transform .3s var(--ease);padding:22px}.education>div:hover{border-color:var(--line-strong);transform:translateY(-3px)}.education strong{letter-spacing:-.02em;font-size:15.5px;font-weight:600;display:block}.education span{color:var(--text-3);font-family:var(--font-mono);margin-top:8px;font-size:12px;display:block}.tech-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;display:grid}.tech{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);min-height:112px;transition:transform .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:16px 10px;display:flex}.tech:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md);transform:translateY(-4px)}.tech-icon{object-fit:contain;width:28px;height:28px;transition:transform .3s var(--ease)}.tech:hover .tech-icon{transform:scale(1.12)}.tech-icon--dark,:root[data-theme=dark] .tech-icon--light{display:none}:root[data-theme=dark] .tech-icon--dark{display:block}.tech span{color:var(--text-2);text-align:center;letter-spacing:-.01em;font-size:12px;font-weight:540}.skill-bands{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:clamp(32px,4vw,48px);display:grid}.skill-bands>div{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);transition:border-color .3s var(--ease);padding:24px}.skill-bands>div:hover{border-color:var(--line-strong)}.skill-bands b{color:var(--accent-text);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:8px;font-size:11px;font-weight:500;display:inline-flex}.skill-bands p{color:var(--text-2);margin:14px 0 0;font-size:14px;line-height:1.7}.contact-panel{border:1px solid var(--line-2);border-radius:var(--r-xl);background:var(--surface);box-shadow:var(--shadow-lg);padding:clamp(36px,6vw,76px);position:relative;overflow:hidden}.contact-panel:before{content:"";background:radial-gradient(50% 50% at 50% 50%, var(--accent-glow), transparent 70%);pointer-events:none;height:420px;position:absolute;inset:auto -10% -60% 20%}.contact-panel>*{position:relative}.contact-panel h2{letter-spacing:-.05em;max-width:15ch;margin:18px 0 0;font-size:clamp(30px,5vw,58px)}.contact-panel .lede{max-width:50ch;color:var(--text-2);margin:20px 0 0;font-size:clamp(15px,1.5vw,17px);line-height:1.7}.contact-actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.contact-rows{border:1px solid var(--line);border-radius:var(--r-md);background:var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:clamp(34px,4vw,48px);display:grid;overflow:hidden}.contact-rows a{background:var(--surface);transition:background-color .25s var(--ease), color .25s var(--ease);justify-content:space-between;align-items:center;gap:14px;padding:18px 22px;display:flex}.contact-rows a:hover{background:var(--surface-2);color:var(--accent-text)}.contact-rows small{color:var(--text-3);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin-bottom:5px;font-size:10.5px;display:block}.contact-rows b{letter-spacing:-.015em;word-break:break-word;font-size:14.5px;font-weight:560}.contact-rows .arrow{color:var(--text-3);transition:transform .25s var(--ease), color .25s var(--ease);flex:none}.contact-rows a:hover .arrow{color:var(--accent-text);transform:translate(3px,-3px)}.site-footer{border-top:1px solid var(--line);background:var(--bg-subtle);padding-block:32px 40px}.site-footer .shell{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;display:flex}.site-footer p{color:var(--text-3);font-family:var(--font-mono);letter-spacing:.02em;margin:0;font-size:11.5px}.footer-links{flex-wrap:wrap;gap:20px;display:flex}.footer-links a{color:var(--text-3);transition:color .22s var(--ease);font-size:13px;font-weight:520}.footer-links a:hover{color:var(--accent-text)}@media (max-width:1080px){.tech-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.case-head{grid-template-columns:36px minmax(0,210px) minmax(0,1fr) 36px}}@media (max-width:940px){html{scroll-padding-top:84px}.nav-desktop{display:none}.nav-trigger{display:grid}.header-actions>.btn{display:none}.hero-grid{grid-template-columns:minmax(0,1fr);gap:44px}.arch-panel{max-width:560px}.stat-band{grid-template-columns:repeat(2,1fr)}.about-grid{grid-template-columns:minmax(0,1fr)}.portrait{max-width:300px}.about-body{grid-template-columns:1fr;gap:16px}.case-inner{grid-template-columns:minmax(0,1fr)}.tech-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.skill-bands{grid-template-columns:minmax(0,1fr)}.section-head{grid-template-columns:minmax(0,1fr);align-items:start;gap:20px}.section-head h2{max-width:20ch}}@media (max-width:720px){.brand-meta{display:none}.principles{grid-template-columns:minmax(0,1fr)}.case-head{grid-template-columns:minmax(0,1fr) 36px;grid-template-areas:"no toggle""name toggle""blurb blurb";align-items:start;gap:10px 14px}.case-no{grid-area:no}.case-name{grid-area:name}.case-blurb{grid-area:blurb}.case-toggle{grid-area:toggle;align-self:start}.case-facts{grid-template-columns:minmax(0,1fr)}.case-facts .wide{grid-column:auto}.timeline article{grid-template-columns:minmax(0,1fr);gap:10px;padding-left:32px}.timeline article:before{top:30px}.education,.contact-rows{grid-template-columns:minmax(0,1fr)}.site-footer .shell{flex-direction:column;align-items:flex-start;gap:16px}}@media (max-width:520px){.stat-band{grid-template-columns:minmax(0,1fr)}.tech-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.arch-row,.arch-row--3{grid-template-columns:minmax(0,1fr)}.hero-actions .btn,.contact-actions .btn{justify-content:center;width:100%}.nav-sheet a{font-size:22px}}@media (max-width:380px){.tech-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1!important;transform:none!important}}@media (forced-colors:active){.hero h1 .grad{color:canvastext;-webkit-text-fill-color:CanvasText;background:0 0}.case-toggle,.icon-btn,.chip,.arch-node,.tech{border-color:canvastext}.site-header.is-stuck{background:canvas}}@media print{.site-header,.nav-sheet,.case-toggle,.hero:before,.hero:after{display:none!important}.case-panel{grid-template-rows:1fr!important}body{color:#000;background:#fff}}
