@font-face{font-family:Erode;src:url(/fonts/erode-400.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Erode;src:url(/fonts/erode-400i.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Erode;src:url(/fonts/erode-500.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Erode;src:url(/fonts/erode-600.woff2)format("woff2");font-weight:600;font-display:swap}@font-face{font-family:JetBrains Mono Fallback;src:local(Menlo),local(Consolas),local(Courier New),local(Liberation Mono);size-adjust:100%;ascent-override:102%;descent-override:30%;line-gap-override:0%}@font-face{font-family:Erode Fallback;src:local(Georgia),local(Times New Roman);size-adjust:94%;ascent-override:96%;descent-override:28%;line-gap-override:0%}:root{color-scheme:dark;--bg:#07090c;--surface:#0c0f14;--surface-2:#11151b;--line:#ffffff13;--line-strong:#ffffff26;--ink:#f5f7fa;--text:#e9edf2;--text-2:#aab3c0;--text-3:#808b9b;--accent:#39ff88;--accent-dim:#39ff8824;--link:#9fd2ff;--blue:#7dd3fc;--muted:var(--text-2);--radius:6px;--radius-lg:8px;--container:1120px;--gutter:clamp(1rem, 4vw, 2rem);--font-display:"Erode", "Erode Fallback", Georgia, serif;--font-sans:"Erode", "Erode Fallback", Georgia, serif;--font-mono:"JetBrains Mono Variable", "JetBrains Mono Fallback", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--ease:cubic-bezier(.23, 1, .32, 1);--ease-expo:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.76, 0, .24, 1);--ease-exit:cubic-bezier(.55, .055, .675, .19)}html{-webkit-text-size-adjust:100%;text-rendering:optimizelegibility}body{font-family:var(--font-sans);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code,kbd,pre,samp{font-family:var(--font-mono)}h1,h2,h3{font-family:var(--font-display);text-wrap:balance}html{scrollbar-color:#2b303a var(--bg)}input,textarea{caret-color:var(--accent)}::selection{color:var(--ink);background:#39ff8840}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.skip-link{z-index:9999;background:var(--text);color:var(--bg);border-radius:8px;padding:10px 16px;font-weight:600;position:fixed;top:8px;left:8px;transform:translateY(-200%)}.skip-link:focus{transform:none}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}.nav,.site-nav{view-transition-name:site-nav}::view-transition-old(root){transform-origin:0;animation:page-turn-out .26s var(--ease-exit) both}::view-transition-new(root){transform-origin:100%;animation:page-turn-in .42s var(--ease) 60ms both}html:active-view-transition-type(back)::view-transition-old(root){transform-origin:100%;animation-name:page-turn-back-out}html:active-view-transition-type(back)::view-transition-new(root){transform-origin:0;animation-name:page-turn-back-in}::view-transition-group(site-nav){animation-duration:.3s}::view-transition-group(.carried){animation-duration:.42s;animation-timing-function:var(--ease-in-out)}}@keyframes page-turn-out{to{opacity:0;transform:perspective(2000px)rotateY(-8deg)translate(-2%)}}@keyframes page-turn-in{0%{opacity:0;transform:perspective(2000px)rotateY(5deg)translate(2%)}}@keyframes page-turn-back-out{to{opacity:0;transform:perspective(2000px)rotateY(8deg)translate(2%)}}@keyframes page-turn-back-in{0%{opacity:0;transform:perspective(2000px)rotateY(-5deg)translate(-2%)}}code,kbd,pre,samp{font-variant-ligatures:none;font-feature-settings:"calt" 0, "liga" 0}kbd{border:1px solid var(--line-strong);min-width:1.35rem;height:1.35rem;font:.68rem var(--font-mono);color:inherit;border-bottom-width:2px;border-radius:5px;place-items:center;padding:0 .3rem;display:inline-grid}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}html{scrollbar-gutter:stable;scrollbar-color:#2a313b transparent}h1,h2,h3{text-wrap:balance}p,li,dd{text-wrap:pretty}.btn,.button,.text-link,.icon-link,.kbd-button,.search-button,.nav-github,.contact-actions a,.start-here a{transition-property:color,background-color,border-color,transform,opacity;transition-duration:.14s;transition-timing-function:var(--ease)}.btn:active,.button:active,.icon-link:active,.kbd-button:active,.search-button:active,.nav-github:active,.start-here a:active,.contact-actions a:active{transition-duration:.1s;transform:scale(.97)}@media (prefers-reduced-transparency:reduce){.site-nav.scrolled,.nav,.command-palette{-webkit-backdrop-filter:none;background:var(--bg)}}h1,h2,h3{overflow-wrap:break-word;min-width:0}.carried{view-transition-class:carried}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:4.5rem}body{background:var(--bg);color:var(--text);margin:0;font-size:16px;line-height:1.6;overflow-x:clip}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}h1,h2,h3,p,dl,dd,ol,ul,figure{margin:0}ol,ul{padding:0;list-style:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}[hidden]{display:none!important}.nowrap{white-space:nowrap}.container{width:100%;max-width:calc(var(--container) + 2 * var(--gutter));padding:0 var(--gutter);margin:0 auto}.js .reveal{opacity:0}.reveal.active,.motion-failed .reveal{opacity:1!important;transform:none!important}.js .hero .reveal,.hero .reveal{opacity:1;transform:none}@media (prefers-reduced-motion:no-preference){.hero-role,.hero-lede,.hero-stats,.hero-actions,.profile-card,.hero-lower .reveal{animation:rise .5s var(--ease) var(--d,0s) both}.hero-role{--d:.3s}.hero-lede{--d:.36s}.hero-stats{--d:.42s}.hero-actions{--d:.48s}.profile-card{--d:.7s}.hero-lower .reveal{--d:.62s}.hero-lower .reveal.delay-1{--d:.7s}.hero-portrait picture{clip-path:inset(0);animation:shutter 1s var(--ease-in-out) .15s both}.hero-portrait img{animation:settle 1.1s var(--ease-expo) .1s both}@keyframes shutter{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}@keyframes settle{0%{transform:scale(1.08)}to{transform:none}}}.hero-portrait picture{display:block;overflow:clip}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transition:none;transform:none}*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}.text-link{color:var(--link);text-underline-offset:.28em;align-items:center;gap:.35rem;font-size:1rem;font-weight:550;text-decoration:underline 1px #9fd2ff59;transition:color .2s,text-decoration-color .2s;display:inline-flex}@media (hover:hover) and (pointer:fine){.text-link:hover{color:var(--ink);text-decoration-color:currentColor}}.text-link.muted{color:var(--text-2);text-decoration-color:var(--line-strong)}.btn{border:1px solid var(--line-strong);height:2.6rem;color:var(--text);transition:border-color .2s ease, background .2s ease, color .2s ease, transform .12s var(--ease);border-radius:8px;justify-content:center;align-items:center;padding:0 1.1rem;font-size:1rem;font-weight:550;display:inline-flex}@media (hover:hover) and (pointer:fine){.btn:hover{background:#ffffff0a;border-color:#ffffff4d}}.btn:active{transform:scale(.97)}.btn-primary{background:var(--text);color:var(--bg);border-color:var(--text)}@media (hover:hover) and (pointer:fine){.btn-primary:hover{background:var(--ink);color:var(--bg)}}.btn-ghost{color:var(--text-2);border-color:#0000}@media (hover:hover) and (pointer:fine){.btn-ghost:hover{color:var(--text);border-color:var(--line);background:0 0}}.label,.list-label,.panel-label,.case-meta,.row-meta,.section-index{font-family:var(--font-sans);color:var(--text-3);font-size:.8125rem}.list-label{margin-bottom:.9rem}.stack-list{color:var(--text-3);flex-wrap:wrap;gap:.1rem .9rem;font-size:.8125rem;display:flex}.site-nav{z-index:50;border-bottom:1px solid #0000;transition:background .25s,border-color .25s;position:fixed;inset:0 0 auto}.site-nav.scrolled{backdrop-filter:blur(14px)saturate(140%);background:#090b0fd1}.nav-inner{max-width:calc(var(--container) + 2 * var(--gutter));height:3.6rem;padding:0 var(--gutter);align-items:center;gap:1.5rem;margin:0 auto;display:flex}.wordmark{letter-spacing:-.01em;align-items:center;gap:.6rem;font-size:1rem;font-weight:620;display:inline-flex}.wordmark img{border:1px solid var(--line);border-radius:7px;width:28px;height:28px}.nav-links{color:var(--text-2);gap:1.4rem;margin-left:auto;font-size:1rem;display:none}.nav-links a{padding:.3rem 0;transition:color .2s;position:relative}@media (hover:hover) and (pointer:fine){.nav-links a:hover,.nav-links a[aria-current=true]{color:var(--text)}}.nav-links a[aria-current=true]:after{content:"";background:var(--accent);height:1px;position:absolute;bottom:-2px;left:0;right:0}.nav-actions{align-items:center;gap:.6rem;margin-left:auto;display:flex}.kbd-button{color:var(--text-3);border-radius:6px;gap:.2rem;padding:.25rem;display:none}@media (hover:hover) and (pointer:fine){.kbd-button:hover{color:var(--text)}}.nav-github{border:1px solid var(--line-strong);height:2rem;color:var(--text-2);border-radius:7px;align-items:center;gap:.45rem;padding:0 .75rem;font-size:.8125rem;transition:color .2s,border-color .2s;display:none}@media (hover:hover) and (pointer:fine){.nav-github:hover{color:var(--text);border-color:#ffffff4d}}.menu-button{border:1px solid var(--line-strong);border-radius:8px;place-content:center;gap:5px;width:2.25rem;height:2.25rem;display:grid}.menu-button span{background:var(--text);width:14px;height:1.5px;transition:transform .2s;display:block}.menu-button[aria-expanded=true] span:first-child{transform:translateY(3.25px)rotate(45deg)}.menu-button[aria-expanded=true] span:last-child{transform:translateY(-3.25px)rotate(-45deg)}.mobile-menu{margin:0 var(--gutter) .75rem;border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:#0a0c10f7;padding:.4rem;display:none}.mobile-menu.open{display:grid}.mobile-menu a{color:var(--text-2);border-radius:8px;padding:.8rem .9rem;font-size:1rem}@media (hover:hover) and (pointer:fine){.mobile-menu a:hover{background:var(--surface-2);color:var(--text)}}.site-nav:has(.mobile-menu.open){border-bottom-color:var(--line);background:#090b0ff7}@media (width>=720px){.nav-github,.kbd-button{display:inline-flex}}@media (width>=1024px){.nav-links{display:flex}.nav-actions{margin-left:1rem}.menu-button{display:none}}.hero{isolation:isolate;padding:7.5rem 0 4.5rem;position:relative;overflow:hidden}.hero-backdrop{z-index:-1;opacity:.55;background-image:image-set("/img/earth-2200.avif" 1x type("image/avif"),"/img/earth-2200.webp" 1x type("image/webp"),"/img/earth-2200.jpg" 1x type("image/jpeg"));background-position:50% 30%;background-size:cover;position:absolute;inset:0}.hero-backdrop:after{content:"";background:linear-gradient(90deg, #090b0fc7 0%, #090b0f6b 36%, #090b0f00 66%, #090b0f4d 100%), linear-gradient(180deg, #090b0f80 0%, #090b0f00 26%, #090b0f1a 46%, #090b0fb8 62%, #090b0fe0 80%, var(--bg) 100%);position:absolute;inset:0}@media (width<=900px){.hero-backdrop{background-image:image-set("/img/earth-1100.avif" 1x type("image/avif"),"/img/earth-1100.webp" 1x type("image/webp"),"/img/earth-1100.jpg" 1x type("image/jpeg"))}.hero-backdrop:after{background:linear-gradient(180deg, #090b0f80 0%, #090b0fcc 55%, var(--bg) 100%)}}.hero-grid{align-items:center;gap:2.5rem;display:grid}@media (width>=900px){.hero-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:3.5rem}}.hero-title{letter-spacing:-.035em;color:var(--ink);font-size:clamp(3rem,7.2vw,5.6rem);font-weight:620;line-height:1}.hero-alias{color:var(--text-3);letter-spacing:-.02em;vertical-align:.12em;white-space:nowrap;font-size:.5em;font-weight:400}.hero-role{color:var(--text);letter-spacing:-.01em;margin-top:1.25rem;font-size:clamp(1.125rem,1.9vw,1.375rem);font-weight:500}.hero-role span{color:var(--text-3);margin:0 .2rem}.hero-lede{max-width:40rem;color:var(--text-2);margin-top:1rem;font-size:1rem;line-height:1.65}.hero-stats{flex-wrap:wrap;gap:.3rem 1.4rem;margin-top:1.5rem;font-size:1rem;display:flex}.hero-stats>div{flex-direction:row-reverse;align-items:baseline;gap:.35rem;display:flex}.hero-stats dt{color:var(--text-3)}.hero-stats dd{color:var(--text);font-weight:600}.hero-actions{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:1.8rem;display:flex}.hero-icons{gap:.25rem;margin-left:.3rem;display:inline-flex}.icon-link{width:2.4rem;height:2.4rem;color:var(--text-2);border-radius:8px;place-items:center;transition:color .2s,background .2s;display:grid;position:relative}@media (hover:hover) and (pointer:fine){.icon-link:hover{color:var(--ink);background:#ffffff0f}}.hero-portrait{justify-self:center;width:min(100%,25rem);position:relative}.hero-portrait picture img{aspect-ratio:4/5;object-fit:cover;object-position:center 20%;border-radius:var(--radius);width:100%}.profile-card{margin-top:1rem}.hero-cve{color:var(--link);text-underline-offset:.2em;white-space:nowrap;text-decoration:underline #9fd2ff66}.profile-summary{color:var(--text);margin-bottom:.7rem;font-size:1rem;line-height:1.5}.profile-card dl>div{grid-template-columns:3rem minmax(0,1fr);gap:.5rem;padding:.4rem 0;font-size:.8125rem;line-height:1.5;display:grid}.profile-card dt{color:var(--text-3)}.profile-card dd{color:var(--text-2)}@media (width<=899px){.hero{padding-top:5.5rem}.hero-portrait{order:-1;justify-self:start;width:min(42vw,11rem)}.profile-card{display:none}}.hero-lower{gap:1rem;margin-top:3.5rem;display:grid}@media (width>=900px){.hero-lower{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}}.terminal{border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:#0b0d11;position:relative;overflow:hidden}.terminal-bar{font:.8125rem var(--font-sans);color:var(--text-3);align-items:center;gap:.8rem;padding:.6rem .9rem;display:flex}.terminal-output{white-space:pre-wrap;min-height:15.5rem;font:.8125rem/1.75 var(--font-sans);color:var(--accent);margin:0;padding:1rem 1.1rem 1.2rem}.terminal-cursor{vertical-align:-.2em;background:var(--accent);opacity:.85;width:.55em;height:1.1em;margin-left:.15em;animation:1.1s step-end 8 blink;display:inline-block}@keyframes blink{50%{opacity:0}}.start-here{align-content:start;gap:.5rem;display:grid}.start-here a{gap:.05rem;padding:.8rem 0;display:grid}@media (hover:hover) and (pointer:fine){.start-here a:hover .start-title{color:var(--link)}}.start-kind{color:var(--text-3);font-size:.8125rem}.start-title{color:var(--ink);font-weight:600;transition:color .2s}.start-meta{color:var(--text-3);font-size:.8125rem}.section{padding:7.5rem 0 0}#contact{margin-top:7.5rem;padding:5rem 0}@media (width<=720px){.section{padding-top:5rem}#contact{margin-top:5rem;padding:3.5rem 0}}.section-head{margin-bottom:2.5rem}.section-title-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem 2rem;display:flex}.section h2,.system-band h2,.contact-panel h2{letter-spacing:-.03em;color:var(--ink);font-size:clamp(2.1rem,4vw,3.1rem);font-weight:600;line-height:1.06}.section-lede{max-width:40rem;color:var(--text-2);margin-top:.9rem;font-size:1rem;line-height:1.65}.case-grid{gap:1rem;display:grid}@media (width>=900px){.case-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.case-card,.project-card{flex-direction:column;padding-top:1.1rem;display:flex}.case-meta{justify-content:space-between;gap:1rem;display:flex}.project-kind{color:var(--text-3);margin-top:.3rem;font-size:.8125rem}.case-card h3,.project-card h3{letter-spacing:-.02em;color:var(--ink);font-size:1.375rem;font-weight:600}.case-context{font:.8125rem var(--font-sans);color:var(--text-2);margin-top:.3rem}.case-title{color:var(--text);margin-top:.8rem;font-weight:550}.case-body{color:var(--text-2);margin-top:.5rem;font-size:1rem;line-height:1.6}.case-evidence{font:.8125rem var(--font-sans);color:var(--text-2);margin:1.2rem 0 .9rem}.case-card .text-link{margin-top:auto}.disclosure{border-radius:var(--radius-lg);background:var(--surface);gap:.5rem 3rem;margin-bottom:3.5rem;padding:1.8rem;display:grid}@media (width>=800px){.disclosure{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);align-items:baseline}}.disclosure-id{font:600 clamp(1.15rem, 2.2vw, 1.5rem) var(--font-display);letter-spacing:-.02em;color:var(--accent);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.disclosure-product{color:var(--text-3);margin-top:.15rem;font-size:1rem}.disclosure-text{color:var(--text);font:500 clamp(1.25rem, 2.2vw, 1.6rem)/1.35 var(--font-display);letter-spacing:-.015em}.disclosure-status{color:var(--text-3);margin-top:.7rem;font-size:.8125rem}.project-feature{gap:1.5rem;margin-bottom:2.5rem;padding-top:1.1rem;display:grid}@media (width>=900px){.project-feature{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:2.5rem}}.project-feature h3{letter-spacing:-.03em;color:var(--ink);font-size:clamp(1.8rem,3vw,2.4rem);font-weight:600}@media (hover:hover) and (pointer:fine){.project-feature h3 a:hover,.project-card h3 a:hover{text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:.3rem}}.project-excerpt{color:var(--text-2);margin:.8rem 0 1.1rem;line-height:1.65}.project-links{flex-wrap:wrap;gap:1.3rem;margin-top:1.4rem;display:flex}.fact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem 2rem;display:grid}.fact-grid>div{padding-top:.6rem}.fact-grid dt{color:var(--text);margin-bottom:.25rem;font-size:.8125rem;font-weight:550}.fact-grid dd{color:var(--text-2);font-size:1rem;line-height:1.55}@media (width<=520px){.fact-grid{grid-template-columns:1fr}}.project-grid{gap:2.5rem;display:grid}@media (width>=900px){.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem}}.project-card .case-meta{margin-bottom:1rem}.project-card .project-excerpt{font-size:1rem}.fact-list{gap:.55rem;margin-bottom:1.1rem;display:grid}.fact-list>div{grid-template-columns:5.8rem minmax(0,1fr);gap:.7rem;padding-top:.55rem;font-size:.8125rem;line-height:1.5;display:grid}.fact-list dt{color:var(--text-3)}.fact-list dd{color:var(--text-2)}.project-card .stack-list{margin-bottom:1.2rem}.project-card .text-link{margin-top:auto}.writing-grid{gap:2.5rem;display:grid}@media (width>=900px){.writing-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:3.5rem}}.selected-list li:first-child a{padding-top:0}.selected-list a{gap:.3rem;padding:1.15rem 0;display:grid}.row-title{letter-spacing:-.015em;color:var(--ink);font-size:1.125rem;font-weight:600;line-height:1.35;transition:color .2s}@media (hover:hover) and (pointer:fine){.selected-list a:hover .row-title,.latest-list a:hover .row-title{color:var(--link)}}.row-excerpt{color:var(--text-2);font-size:1rem;line-height:1.6}.latest-list a{grid-template-columns:7.5rem minmax(0,1fr);align-items:baseline;gap:1rem;padding:.75rem 0;display:grid}.latest-list li:first-child a{padding-top:0}.latest-list .row-kind{font:.8125rem/1.9 var(--font-sans);color:var(--text-3)}.latest-list .row-title{font-size:1rem;font-weight:550}.month-index{font:.8125rem var(--font-sans);color:var(--text-3);flex-wrap:wrap;gap:.3rem .9rem;margin-top:1.5rem;padding-top:1.2rem;display:flex}@media (hover:hover) and (pointer:fine){.month-index a:hover{color:var(--text)}}.feed-links{gap:1.3rem;margin-top:1.2rem;display:flex}.edu-timeline{display:grid;position:relative}.edu-item{gap:.6rem 2rem;padding:1.6rem 0;display:grid}.edu-item:first-child{border-top:0;padding-top:0}@media (width>=800px){.edu-item{grid-template-columns:11rem minmax(0,1fr)}}.edu-when time{font:.8125rem/1.9 var(--font-sans);color:var(--text-3);font-variant-numeric:tabular-nums}.edu-item.current .edu-when time{color:var(--accent)}.edu-head{align-items:center;gap:.9rem;display:flex}.edu-logo{border-radius:var(--radius);background:#f2f3f5;flex-shrink:0;place-items:center;width:2.75rem;height:2.75rem;display:grid}.edu-logo img{object-fit:contain;width:1.9rem;height:1.9rem}.edu-head h3{letter-spacing:-.02em;color:var(--ink);font-size:1.375rem;font-weight:600;line-height:1.3}.edu-place{color:var(--text-3);font-size:.8125rem}.edu-program{color:var(--text);margin:.9rem 0 .7rem;font-weight:600}.edu-details{gap:.45rem;max-width:46rem;display:grid}.edu-details>div{color:var(--text-2);font-size:1rem;line-height:1.6}.edu-details dt{color:var(--text);font-weight:600;display:inline}.edu-details dt:after{content:": "}.edu-details dd{display:inline}.skill-table{border-bottom:1px solid var(--line)}.skill-row{border-top:1px solid var(--line);gap:.6rem 2rem;padding:1.2rem 0;display:grid}.skill-row:first-child{border-top:0}@media (width>=900px){.skill-row{grid-template-columns:15rem minmax(0,1fr) 15rem;align-items:start}}.skill-header{color:var(--text-3);padding-block:.6rem;font-size:.8125rem;display:none}@media (width>=900px){.skill-header{display:grid}}.skill-row h3{color:var(--ink);margin-bottom:.5rem;font-size:1rem;font-weight:600}.skill-row>p{color:var(--text-2);font-size:1rem;line-height:1.6}.evidence-list{flex-wrap:wrap;gap:.2rem .9rem;font-size:.8125rem;line-height:1.7;display:flex}.evidence-list a{color:var(--link)}@media (hover:hover) and (pointer:fine){.evidence-list a:hover{color:var(--ink)}}.principles{margin-top:2.5rem}.principle-grid{gap:1.5rem;display:grid}@media (width>=800px){.principle-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}}.principle-grid h3{color:var(--ink);margin-bottom:.35rem;font-size:1rem;font-weight:600}.principle-grid p{color:var(--text-2);font-size:1rem;line-height:1.6}.system-band{gap:2rem;display:grid}@media (width>=900px){.system-band{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center}}.system-band .text-link{margin-top:1.3rem}.about-grid{gap:2.5rem;display:grid}@media (width>=900px){.about-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:4rem}}.language-list>div,.interest-list>div{padding:.85rem 0}.language-list>div{justify-content:space-between;gap:1rem;display:flex}.language-list dt,.interest-list dt{color:var(--ink);font-weight:600}.language-list dd{font:.8125rem/1.9 var(--font-sans);color:var(--text-2)}.interest-list dd{color:var(--text-2);margin-top:.25rem;font-size:1rem;line-height:1.6}.contact-panel{align-items:center;gap:2rem;display:grid}@media (width>=900px){.contact-panel{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4rem}}.contact-meta{font:.8125rem var(--font-sans);color:var(--text-3);margin-top:1rem}.contact-actions{display:grid}.contact-actions a{grid-template-columns:5.5rem minmax(0,1fr);align-items:center;gap:1rem;padding:.95rem 0;display:grid}@media (hover:hover) and (pointer:fine){.contact-actions a:hover .contact-value{color:var(--link)}}.contact-label{font:.8125rem var(--font-sans);color:var(--text-3)}.contact-value{color:var(--ink);overflow-wrap:anywhere;font-weight:600;transition:color .2s}.contact-primary .contact-value{color:var(--accent)}.email-tooltip{border:1px solid var(--line-strong);color:var(--ink);font:.8125rem var(--font-sans);white-space:nowrap;pointer-events:none;opacity:0;background:#0b0e13;border-radius:6px;padding:.3rem .6rem;transition:opacity .2s;position:absolute;bottom:calc(100% + .4rem);left:50%;transform:translate(-50%)}.email-tooltip.visible{opacity:1}.split-line{margin-bottom:-.08em;padding-bottom:.08em}.hero-title .word{vertical-align:bottom;padding-bottom:.06em;display:inline-block;overflow:hidden}.hero-title .word>span{animation:word-up 1.1s var(--ease) both;display:inline-block}.hero-title .word:nth-child(2)>span{animation-delay:90ms}@keyframes word-up{0%{transform:translateY(105%)}to{transform:none}}.hero-gl{opacity:0;width:100%;height:100%;transition:opacity 1.2s;display:block;position:absolute;inset:0}.hero-backdrop.has-gl{opacity:1;background-image:none!important}.hero-backdrop.has-gl .hero-gl{opacity:1}.skyline{margin:3.5rem 0 0}.skyline-head{padding:0}.skyline-facts{font:.8125rem var(--font-sans);color:var(--text-3);flex-wrap:wrap;gap:.3rem 1.6rem;display:flex}.skyline-facts b{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.skyline-stage{height:clamp(13rem,34vw,26rem);position:relative;overflow:hidden}.skyline-stage canvas{cursor:grab;touch-action:pan-y;width:100%;height:100%;position:absolute;inset:0}.skyline-stage canvas:active{cursor:grabbing}.skyline-picture{width:100%;height:100%;transition:opacity .8s;position:absolute;inset:0}.skyline-floor{fill:#1a2420}.skyline-picture g{fill:#2a9a5e;--left:#1c6e43;--right:#134d2f}.skyline-picture g[data-level="2"]{fill:#30b56d;--left:#22824f;--right:#175a37}.skyline-picture g[data-level="3"]{fill:#35d97d;--left:#279b5a;--right:#1b6c3f}.skyline-picture g[data-level="4"]{fill:#39ff88;--left:#2bb863;--right:#1e8047}.skyline-picture .side-l{fill:var(--left)}.skyline-picture .side-r{fill:var(--right)}.skyline.has-webgl .skyline-picture{opacity:0;pointer-events:none}.skyline:not(.has-webgl) .no-flight{display:none}.skyline-ticks{pointer-events:none;position:absolute;inset:0}.skyline-ticks span{font:.8125rem var(--font-sans);color:var(--text-3);white-space:nowrap;will-change:transform;transition:opacity .3s;position:absolute;top:0;left:0}.skyline-tip{z-index:2;border:1px solid var(--line-strong);font:.8125rem var(--font-sans);color:var(--text);white-space:nowrap;pointer-events:none;background:#0b0e13;border-radius:6px;margin:0;padding:.3rem .55rem;position:absolute;top:0;left:0}.skyline figcaption{color:var(--text-3);padding:.4rem 0 0;font-size:.8125rem}.case-story{margin-top:3.5rem;position:relative}.case-steps-list{margin:0;padding:0;list-style:none}.case-step{padding:1.8rem 0}.case-step h3{letter-spacing:-.03em;color:var(--ink);font-size:clamp(1.7rem,3vw,2.3rem);font-weight:600}.case-step .case-title{margin-top:.6rem;font-size:1.125rem}.case-flow{gap:.7rem;margin:1.3rem 0 1rem;display:grid}.case-flow>div{grid-template-columns:5.5rem minmax(0,1fr);gap:1rem;display:grid}.case-flow dt{color:var(--text-2);font-size:.8125rem;line-height:1.9}.case-flow dd{color:var(--text-2);margin:0;font-size:1rem;line-height:1.65}@media (width<=640px){.case-flow>div{grid-template-columns:1fr;gap:.15rem}}.case-stage{display:none}.code-window{border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:#0b0e13;margin:1.4rem 0 0;overflow:hidden}.code-window figcaption{font:.8125rem var(--font-mono);color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.7rem;padding:.6rem .9rem;display:flex;overflow:hidden}.window-pr{color:var(--accent);font-family:var(--font-sans);margin-left:auto}.code-window pre{scrollbar-width:none;margin:0;padding:1rem 1.1rem;font-size:.8125rem;line-height:1.7;overflow-x:auto;background:0 0!important}.code-window pre::-webkit-scrollbar{display:none}.code-window .line{display:inline-block}@media (width>=1000px){.case-story{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:3rem;display:grid}.case-step{border-top:0;flex-direction:column;justify-content:center;min-height:78vh;padding:4rem 0;display:flex}.motion-ready .case-step{opacity:.85;transition:opacity .3s}.motion-ready .case-step.is-active{opacity:1}.motion-ready .case-step .inline-code{display:none}.motion-ready .case-stage{display:block}.case-stage-inner{height:72vh;position:sticky;top:14vh}.motion-ready .case-stage .code-window{opacity:0;filter:blur(2px);transition:opacity .45s var(--ease), transform .45s var(--ease), filter .45s var(--ease);position:absolute;inset:3rem 0 auto;transform:translateY(12px)scale(.98)}.motion-ready .case-stage .code-window.is-active{opacity:1;filter:none;transform:none}.case-progress{color:var(--text-3);gap:1.4rem;font-size:.8125rem;display:flex;position:absolute;top:0;left:0;right:0}.case-progress span{transition:color .4s}.case-progress span.is-active{color:var(--text)}}#projects.is-horizontal{align-items:center;min-height:100svh;display:flex;overflow:hidden}#projects.is-horizontal>.container{width:100%}#projects.is-horizontal .project-track{will-change:transform;gap:3rem;width:max-content;display:flex}#projects.is-horizontal .project-feature{flex-shrink:0;width:min(62vw,46rem);margin:0}#projects.is-horizontal .project-grid{gap:3rem;display:flex}#projects.is-horizontal .project-card{flex-shrink:0;width:min(28vw,21rem)}.project-rail{overflow-x:clip}.rail-foot{justify-content:space-between;align-items:baseline;gap:1rem;margin-top:1.6rem;display:flex}.rail-count{display:none}#projects.is-horizontal .rail-count{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:1rem;display:block}.stat-row dd{font-variant-numeric:tabular-nums}.roll-said{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.roll-digits{display:inline-flex}.roll-col{height:1lh;display:inline-block;overflow:clip}.roll-strip{transform:translateY(calc(var(--d) * -1lh));flex-direction:column;display:flex}.roll-strip>span{align-self:flex-start;height:1lh}.roll:not(.is-in) .roll-strip{transform:none}.roll.is-in .roll-strip{transition:transform 1.1s var(--ease-expo) calc(var(--i) * 70ms + var(--roll-delay,0s))}.hero-stats .roll{--roll-delay:.3s}.edu-wrap{position:relative}.edu-line{display:none}@media (width>=800px){.edu-wrap:before,.edu-line{content:"";width:1px;position:absolute;top:.5rem;bottom:.5rem;left:10rem}.edu-wrap:before{background:var(--line)}.edu-line{background:var(--text-3);transform-origin:top;display:block}.edu-item{position:relative}.edu-item:before{content:"";background:var(--bg);border:1px solid var(--line-strong);border-radius:50%;width:9px;height:9px;transition:background .4s,border-color .4s;position:absolute;top:2.25rem;left:calc(10rem - 4px)}.edu-item:first-child:before{top:.65rem}.edu-item.is-lit:before{background:var(--text-2);border-color:var(--text-2)}.edu-item.current:before{background:var(--accent);border-color:var(--accent)}}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){html:not(.js) .reveal{animation:linear both reveal-in view();animation-range:entry entry 55%}@keyframes reveal-in{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}}}@media (prefers-reduced-motion:reduce){.case-step{opacity:1!important}.hero-title .word>span{animation:none}}.terminal,.code-window{background:var(--surface);border-color:#0000}.merge-chart figcaption{text-wrap:pretty}.btn{min-height:44px}.nav-links a,.site-nav nav a{white-space:nowrap}@media (hover:none){.fine-only{display:none}}
