:root{--c-red: #E6324B;--c-cobalt: #2B3BD1;--c-cobalt-bright: #4A5BFF;--c-cobalt-soft: #7A86FF;--c-cream: #FAF7F0;--c-black: #17171A;--c-bone: #EFEBE2;--c-night: #121318;--c-night-deep: #0A0A0D;--c-grey: #8E8C86;--c-grey-night: #8A8A92;--c-static: #6E6C68;--accent: var(--c-red);--ink: var(--c-black);--paper: var(--c-cream);--grey: var(--c-grey);--rule: rgb(23 23 26 / .16);--block: var(--c-black);--on-block: var(--c-cream);--second: var(--c-cobalt);--on-second: var(--c-cream);--dither: var(--c-cobalt);--dither-alpha: .9;--duo1-lo: var(--c-red);--duo1-hi: var(--c-cream);--duo2-lo: var(--c-cobalt);--duo2-hi: var(--c-cream);--dot-screen: rgb(22 24 20 / .55);--paper-shadow: rgb(23 23 26 / .22);--grain: .12;--grain-blend: multiply;--serif: Times, "Times New Roman", Tinos, serif;--sans: Arial, Arimo, "Helvetica Neue", Helvetica, sans-serif;--mono: Inconsolata, "SF Mono", Menlo, monospace;--fs-hero: clamp(2.5rem, .9rem + 6.4vw, 7.25rem);--fs-page: clamp(2.5rem, 1.3rem + 4.2vw, 5.25rem);--fs-h2: clamp(2rem, 1.2rem + 3.2vw, 4rem);--fs-h3: clamp(1.5rem, 1.1rem + 1.2vw, 2.125rem);--fs-body: clamp(1.0625rem, 1rem + .3vw, 1.1875rem);--w-display: 700;--gutter: clamp(1rem, 4vw, 3rem);--max: 88rem;--nav-h: 3.75rem;--space-section-top: clamp(2rem, 6vh, 4rem);--space-section-bottom: clamp(4rem, 10vh, 7rem);--ease-pop: cubic-bezier(.2, .9, .3, 1.3);--ease-soft: cubic-bezier(.2, .7, .2, 1);color-scheme:light}:root[data-mode=dark]{--ink: var(--c-bone);--paper: var(--c-night);--grey: var(--c-grey-night);--rule: rgb(239 235 226 / .16);--second: var(--c-cobalt-bright);--dither: var(--c-cobalt-bright);--dither-alpha: .55;--block: var(--c-night-deep);--duo1-lo: var(--c-night);--duo1-hi: var(--c-red);--duo2-lo: var(--c-night);--duo2-hi: var(--c-cobalt-bright);--grain: .06;--grain-blend: screen;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:6.5rem}body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--fs-body)/1.5 var(--sans);-webkit-font-smoothing:antialiased}img{display:block;max-width:100%}a{color:inherit}h2{margin:0;font:400 var(--fs-h2)/1 var(--serif);letter-spacing:-.02em;text-wrap:balance}h3{margin:0;font:400 var(--fs-h3)/1.05 var(--serif);letter-spacing:-.01em;text-wrap:balance}p,li,blockquote,summary,dd,figcaption{text-wrap:pretty}body:before{content:"";position:fixed;inset:0;z-index:60;pointer-events:none;opacity:var(--grain);mix-blend-mode:var(--grain-blend);background-image:url(/textures/grain.svg)}:root[data-mode=dark] body:before{filter:invert(1)}.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}section[data-section]{border-top:1px solid var(--rule)}.sec-head{display:flex;justify-content:flex-end;align-items:baseline;gap:1rem;padding-block:1.25rem}.label{font:400 .75rem/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase}.muted{color:var(--grey)}.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.85rem 1.2rem;border:1.5px solid var(--ink);border-radius:999px;background:var(--ink);color:var(--paper);font:400 .8125rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;transition:background .2s,color .2s,transform .2s var(--ease-pop)}.btn:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.btn--ghost{background:transparent;color:var(--ink)}.btn .dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--accent)}.btn:hover .dot{background:var(--paper)}.runlist{list-style:none;margin:0;padding:0;font:400 .9375rem/1.3 var(--mono);border-top:1.5px solid var(--ink)}.runlist li{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px dashed var(--rule)}.runlist li span:last-child{color:var(--accent);text-align:right}@media(max-width:40rem){.runlist li{flex-direction:column;gap:.15rem}.runlist li span:last-child{text-align:left}}.roles{max-width:40rem;list-style:none;margin:1.5rem 0 0;padding:0;border-top:1.5px solid var(--ink);font:400 .875rem/1.4 var(--mono)}.roles li{display:grid;grid-template-columns:1.4rem 1fr;gap:.5rem;padding:.65rem 0;border-bottom:1px dashed var(--rule)}.roles li:before{content:"+";color:var(--accent)}.roles b{font-weight:400;text-transform:uppercase;letter-spacing:.06em}.specs{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1.5rem;margin-top:2rem;padding-top:1rem;border-top:1.5px solid var(--ink);font:400 .8125rem/1.4 var(--mono)}.specs dt{color:var(--grey);text-transform:uppercase;letter-spacing:.1em}.specs dd{margin:0}.duo-1{filter:url(#duo-1)}.duo-2{filter:url(#duo-2)}.dots:after{content:"";position:absolute;inset:0;pointer-events:none;mix-blend-mode:multiply;background:radial-gradient(circle at 50% 50%,var(--dot-screen) 0 38%,transparent 42%) 0 0 / 5px 5px}.shot{position:absolute;left:.75rem;bottom:.75rem;z-index:1;padding:.3rem .45rem;background:var(--paper);font:400 .6875rem/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase}.band-dither{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated;pointer-events:none}@keyframes reveal-in{0%{opacity:0;transform:translateY(2rem)}to{opacity:1;transform:none}}@keyframes slide-in-up{to{opacity:1;transform:none}}@keyframes blink{50%{opacity:0}}@keyframes slide{to{transform:translate(-50%)}}@supports (animation-timeline: view()){.reveal{animation:reveal-in linear both;animation-timeline:view();animation-range:entry 5% entry 50%}}@supports not (animation-timeline: view()){.js .reveal{opacity:0;transform:translateY(2rem);transition:opacity .7s,transform .7s}.js .reveal.in{opacity:1;transform:none}}@media(hover:hover)and (pointer:fine){html,body{cursor:url(/cursors/square-ink.svg) 7 7,auto}:root[data-mode=dark],:root[data-mode=dark] body{cursor:url(/cursors/square-bone.svg) 7 7,auto}a,button,summary,[role=tab],label,.svc,.proj,.value,.quote,.logos li{cursor:url(/cursors/square-cobalt.svg) 7 7,pointer!important}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.js .reveal{opacity:1!important;transform:none!important}}.nav{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:var(--nav-h)}.brand{display:flex;align-items:center;gap:.5rem;font:400 .875rem/1 var(--mono);letter-spacing:.06em;text-decoration:none}.brand i{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;background:var(--accent);transition:background .25s}.brand:hover i{background:var(--second)}.nav ol{display:flex;gap:1.5rem;list-style:none;margin:0;padding:0;counter-reset:n}.nav ol li{counter-increment:n}.nav ol a{font:400 .75rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;text-decoration:none}.nav ol a:before{content:"0" counter(n) " ";color:var(--grey)}.nav ol a:hover{color:var(--accent)}.nav .right{display:flex;align-items:center;gap:1rem}.mode{all:unset;cursor:pointer;width:2.25rem;height:2.25rem;display:grid;place-items:center;border:1.5px solid var(--ink);border-radius:50%;transition:transform .3s var(--ease-pop)}.mode:hover{transform:rotate(-20deg)}.mode:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mode svg{width:1rem;height:1rem;fill:var(--ink)}.mode .sun{display:none}[data-mode=dark] .mode .sun{display:block}[data-mode=dark] .mode .moon{display:none}@media(max-width:60rem){.nav .wrap{flex-wrap:wrap;height:auto;padding-block:.6rem;row-gap:.5rem}.nav ol{order:3;width:100%;justify-content:space-between;gap:.75rem;padding-top:.5rem;border-top:1px solid var(--rule)}}@media(max-width:30rem){.nav .right{gap:.5rem}.nav .btn{padding:.7rem .85rem;letter-spacing:.04em;gap:.45rem}.nav .mode{width:2rem;height:2rem}.brand{font-size:.8125rem}}@media(max-width:24rem){.nav ol a:before{content:none}}.nav[data-reveal-on-scroll]{position:fixed;inset:0 0 auto;transform:translateY(-100%);opacity:0;transition:transform .6s ease,opacity .6s ease}.nav[data-reveal-on-scroll].show{transform:none;opacity:1}.nav[data-reveal-on-scroll] ol a:before{content:none}footer{background:var(--block);color:var(--on-block);font:400 .8125rem/1.5 var(--mono);letter-spacing:.04em}footer .wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:1.5rem 2rem;padding-block:2.5rem}footer .label{display:block;margin-bottom:.5rem;opacity:.6}footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.25rem}footer a{color:inherit;text-decoration:none;border-bottom:1px solid transparent}footer a:hover{border-bottom-color:currentColor}footer .blink{animation:blink 1.2s steps(2,jump-none) infinite}
