@font-face{font-family:League Spartan;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/league-spartan-v15-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/jetbrains-mono-v24-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #efede6;--ink: #0d0d0c;--bg: var(--paper);--fg: var(--ink);--muted: color-mix(in oklab, var(--fg) 58%, var(--bg));--line: color-mix(in oklab, var(--fg) 16%, var(--bg));--surface: color-mix(in oklab, var(--fg) 5%, var(--bg));--accent: #e11d23;--on-accent: #fff;--cursor-blend: multiply;--font-display: "League Spartan", "Arial Narrow", system-ui, sans-serif;--font-body: "League Spartan", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "Cascadia Mono", monospace;--fs-mega: clamp(3.25rem, 13vw, 14rem);--fs-xxl: clamp(2.75rem, 8vw, 8rem);--fs-xl: clamp(2rem, 5vw, 4.5rem);--fs-lg: clamp(1.5rem, 3vw, 2.5rem);--fs-md: clamp(1.125rem, 1.4vw, 1.3rem);--fs-base: 1.0625rem;--fs-sm: .875rem;--fs-xs: .75rem;--edge: clamp(16px, 4vw, 56px);--page: 1680px;--gutter: max(var(--edge), (100vw - var(--page)) / 2);--header-h: 72px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.76, 0, .24, 1);--dur: .9s;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: var(--ink);--fg: var(--paper);--cursor-blend: screen;color-scheme:dark}}:root[data-theme=dark]{--bg: var(--ink);--fg: var(--paper);--cursor-blend: screen;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}html{scrollbar-gutter:stable}html.has-scrollbar{scrollbar-width:none}html.has-scrollbar::-webkit-scrollbar{display:none}::-webkit-scrollbar{width:8px;height:8px;background:transparent}::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent}::-webkit-scrollbar-thumb{background:var(--accent);border-radius:999px}::-webkit-scrollbar-button{display:none;width:0;height:0}@supports (-moz-appearance: none){html{scrollbar-color:var(--accent) transparent;scrollbar-width:thin}}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent]{overscroll-behavior:contain}body{margin:0;min-height:100vh;background:var(--bg) 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='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E");color:var(--fg);font-family:var(--font-body);font-size:var(--fs-base);line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:clip;transition:background-color .5s,color .5s}img,svg,canvas{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}h1,h2,h3,h4,p,figure,dl,dd,blockquote{margin:0}ul,ol{margin:0;padding:0;list-style:none}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.skip-link{position:fixed;top:.75rem;left:.75rem;z-index:200;padding:.75rem 1rem;background:var(--fg);color:var(--bg);transform:translateY(-200%)}.skip-link:focus{transform:none}.mono{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase}.muted{color:var(--muted)}.accent{color:var(--accent)}.u{background:linear-gradient(currentColor,currentColor) 0 100% / 0 1px no-repeat;transition:background-size .5s var(--ease-out)}@media(hover:hover){.u:hover{background-size:100% 1px}}.u:active{background-size:100% 1px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.is-theme-switching,.is-theme-switching *:not(.theme-toggle__icon),.is-theme-switching *:before,.is-theme-switching *:after{transition:none!important}.site-header{position:fixed;inset:0 0 auto;z-index:70;height:var(--header-h);padding-inline:var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:2rem;color:#fff;mix-blend-mode:difference;pointer-events:none}.site-header>*{pointer-events:auto}.brand{font-family:var(--font-display);font-weight:800;font-size:1.75rem;letter-spacing:-.04em;line-height:1}.brand[aria-current=page]{visibility:hidden}.nav__list{display:flex;gap:clamp(1rem,2.5vw,2.5rem)}.mono-link{position:relative;display:inline-flex;padding-block:.5rem;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase}.mono-link:after{content:"";position:absolute;left:0;right:0;bottom:.2rem;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease-out)}.mono-link[aria-current=page]:after,.mono-link:active:after{transform:scaleX(1);transform-origin:left}@media(hover:hover){.mono-link:hover:after{transform:scaleX(1);transform-origin:left}}.nav__link{align-items:baseline;gap:.5em}.nav__i{opacity:.6}.header__tools{display:flex;align-items:center;gap:1.25rem}.theme-toggle{width:32px;height:32px;display:grid;place-items:center}.theme-toggle__icon{width:18px;height:18px;border-radius:50%;border:1.5px solid currentColor;background:linear-gradient(90deg,currentColor 50%,transparent 50%);transition:transform .8s var(--ease-out)}.menu-toggle{display:none;padding-block:.5rem;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase}@media(max-width:860px){.nav{display:none}.menu-toggle{display:inline-flex}}.menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:65;display:flex;flex-direction:column;justify-content:space-between;padding:calc(var(--header-h) + 2rem) var(--gutter) 2rem;background:var(--bg);color:var(--fg);visibility:hidden;clip-path:inset(0 0 100% 0);transition:clip-path .8s var(--ease-in-out),visibility 0s linear .8s}.menu.is-open{visibility:visible;clip-path:inset(0);transition:clip-path .8s var(--ease-in-out)}.menu.is-instant,.menu.is-instant .menu__item{transition:none}.menu__item{opacity:0;transform:translateY(40px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}.menu.is-open .menu__item{opacity:1;transform:none;transition-delay:calc(var(--i) * 60ms + .3s)}.menu__link{display:flex;align-items:baseline;gap:1rem;padding-block:.35rem;font-family:var(--font-display);font-weight:800;font-size:clamp(2.75rem,12vw,5rem);line-height:1;letter-spacing:-.03em;text-transform:uppercase;transition:color .3s}.menu__link[aria-current=page],.menu__link:active{color:var(--accent)}@media(hover:hover){.menu__link:hover{color:var(--accent)}}.menu__link .nav__i{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:400;letter-spacing:.08em}.menu__foot{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.site-footer{position:relative;z-index:1;overflow:hidden;padding:clamp(3rem,6vw,5rem) var(--gutter) 1.5rem;border-top:1px solid var(--line)}.footer__grid{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"reach sign" "time sign";gap:2.5rem clamp(2.5rem,6vw,6rem)}.footer__reach{grid-area:reach}.footer__time{grid-area:time;align-self:end}.footer__email{display:flex;align-items:center}.footer__mail{font-weight:800;text-transform:none;overflow-wrap:anywhere}.footer__copy svg+svg{display:none}.footer__copy.is-copied{color:var(--accent)}.footer__copy.is-copied svg{display:none}.footer__copy.is-copied svg+svg{display:block}.footer__status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.footer__social{display:flex;gap:.5rem;margin-top:.5rem;margin-left:-10px}.icon-link{display:grid;place-items:center;width:44px;height:44px;transition:color .3s}.icon-link svg{width:22px;height:22px}@media(hover:hover){.icon-link:hover{color:var(--accent)}}.icon-link:active{color:var(--accent)}.footer__col h2{margin-bottom:.75rem;color:var(--muted);text-wrap:balance}.footer__base{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:4rem;color:var(--muted)}.dot-logo{grid-area:sign;place-self:end;width:min(100%,200px);height:auto}.dot-logo circle{fill:currentColor;transform-box:fill-box;transform-origin:center;transition:fill .35s ease var(--d),transform .7s var(--ease-out) var(--d)}@media(hover:hover){.dot-logo:hover circle{fill:var(--accent)}}.dot-logo:active circle{fill:var(--accent)}.is-live .dot-logo:not(.is-in) circle{transform:scale(0);transition:none}@media(max-width:600px){.footer__grid{grid-template-columns:fit-content(11rem) minmax(0,1fr);grid-template-areas:"reach reach" "time sign";column-gap:1.5rem}.dot-logo{width:min(100%,120px)}.footer__built{display:none}}main{position:relative;z-index:1}.section{padding:clamp(4rem,10vw,9rem) var(--gutter)}.section+.section,.page-hero+.section{padding-top:0}.page-hero{padding:calc(var(--header-h) + clamp(3rem,8vw,7rem)) var(--gutter) clamp(2.5rem,5vw,4rem)}.page-hero__eyebrow{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:var(--muted)}.page-hero__title{display:flex;align-items:flex-start;gap:.15em;margin-top:1rem;font-family:var(--font-display);font-weight:800;font-size:var(--fs-mega);line-height:.85;letter-spacing:-.045em;text-transform:uppercase}.page-hero__title sup{margin-top:.6em;color:var(--accent);font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:400;letter-spacing:.04em}.page-hero__lede{max-width:46ch;margin-top:2rem;font-size:var(--fs-md);color:var(--muted)}.board{position:fixed;top:0;left:0;z-index:0;width:100%;height:100%;height:100lvh;pointer-events:none}.cursor{position:fixed;top:0;left:0;z-index:100;width:96px;height:96px;transform:scale(0);display:grid;place-items:center;border-radius:50%;background:var(--accent);mix-blend-mode:var(--cursor-blend);pointer-events:none;opacity:0;transition:opacity .3s,background-color .3s;will-change:transform}.cursor.is-visible{opacity:1}.cursor.is-hidden{opacity:0}.cursor__label{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;color:var(--on-accent);opacity:0;transition:opacity .2s}.cursor.has-label{mix-blend-mode:normal}.cursor.has-label .cursor__label{opacity:1}.has-cursor,.has-cursor a,.has-cursor button{cursor:none}@media(hover:none){.cursor{display:none}}.wipe{position:fixed;top:0;left:0;z-index:80;width:100%;height:100%;height:100lvh;display:grid;place-items:center;color:var(--fg);pointer-events:none}.js .wipe{background:var(--accent);animation:wipe-failsafe .6s ease 4s forwards}.wipe.is-ready{background:none;animation:none}.wipe.is-idle{display:none}@keyframes wipe-failsafe{to{opacity:0;visibility:hidden}}.wipe__tiles{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.wipe__label,.wipe__meta{opacity:0}.wipe__label{position:relative;font-family:var(--font-display);font-weight:800;font-size:var(--fs-xxl);line-height:1;letter-spacing:-.04em;text-transform:uppercase;text-align:center;padding-inline:var(--gutter)}.wipe__label>span{display:inline-block}.wipe__meta{position:absolute;inset:auto var(--gutter) 1.5rem;display:flex;justify-content:space-between}.wipe__meta>*{opacity:.6}.link-arrow{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase}.link-arrow .arr{display:inline-block;transition:transform .5s var(--ease-out)}@media(hover:hover){.link-arrow:hover .arr{transform:translate(.35em)}}.link-arrow:active .arr{transform:translate(.35em)}.chips{display:flex;flex-wrap:wrap;gap:.5rem}.chips li{padding:.4em .8em;border:1px solid var(--line);border-radius:999px;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:clamp(2rem,4vw,3.5rem)}.section-head__title{display:flex;align-items:flex-start;gap:.3em;font-family:var(--font-display);font-weight:800;font-size:var(--fs-xl);line-height:.95;letter-spacing:-.03em;text-transform:uppercase}.section-head__title sup{margin-top:.4em;color:var(--accent);font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:400;letter-spacing:.06em}.section-head__sub{margin-top:.75rem;font-size:var(--fs-md);color:var(--muted)}.rows{border-bottom:1px solid var(--line)}.row{border-top:1px solid var(--line)}.row[hidden]{display:none}.row__link{display:grid;grid-template-columns:4rem minmax(0,1fr) auto 6rem;align-items:center;gap:1.5rem;padding-block:clamp(1.25rem,2.5vw,2rem);transition:opacity .4s var(--ease-out)}.row__num,.row__tags,.row__meta,.row__year,.tags{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.row__year{text-align:right}.row__num{transition:color .3s}.row__title{font-family:var(--font-display);font-weight:700;font-size:var(--fs-lg);line-height:1;letter-spacing:-.02em;text-transform:uppercase;transition:transform .6s var(--ease-out)}.row__main{display:grid;gap:.6rem}.row__tags{transition:transform .6s var(--ease-out) .05s}@media(hover:hover){.row__link:hover .row__num{color:var(--accent)}.row__link:hover .row__title,.row__link:hover .row__tags{transform:translate(clamp(.5rem,2vw,1.5rem))}.rows:hover .row__link{opacity:.3}.rows .row__link:hover{opacity:1}}.row__link.is-active .row__num{color:var(--accent)}.row__link.is-active .row__title,.row__link.is-active .row__tags{transform:translate(clamp(.5rem,2vw,1.5rem))}.rows.has-active .row__link{opacity:.35}.rows.has-active .row__link.is-active{opacity:1}@media(max-width:700px){.row__link{grid-template-columns:2.25rem minmax(0,1fr);row-gap:.4rem}.row__meta{grid-column:2}.row__year{display:none}.row--post .row__meta,.row--post .row__year{display:block;grid-area:2 / 2;justify-self:start}.row--post .row__year{justify-self:end}}.thumb{position:relative;overflow:hidden;display:grid;place-items:center;aspect-ratio:16 / 10;background-color:var(--fg);color:var(--bg)}.thumb:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--pattern);opacity:var(--pattern-opacity, .85)}.thumb[data-pattern=stripes]{--pattern: repeating-linear-gradient(45deg, var(--bg) 0 1.5px, transparent 1.5px 14px)}.thumb[data-pattern=dots]{--pattern: radial-gradient(circle, var(--bg) 1.4px, transparent 1.8px) 0 0 / 16px 16px}.thumb[data-pattern=grid]{--pattern: linear-gradient(var(--bg) 1px, transparent 1px) 0 0 / 28px 28px, linear-gradient(90deg, var(--bg) 1px, transparent 1px) 0 0 / 28px 28px;--pattern-opacity: .6}.thumb[data-pattern=rings]{--pattern: repeating-radial-gradient(circle at 30% 70%, var(--bg) 0 1px, transparent 1px 16px)}.thumb[data-pattern=checker]{--pattern: conic-gradient(var(--bg) 25%, transparent 0 50%, var(--bg) 0 75%, transparent 0) 0 0 / 48px 48px;--pattern-opacity: .2}.thumb[data-pattern=burst]{--pattern: repeating-conic-gradient(from 0deg at 50% 115%, var(--bg) 0 1.2deg, transparent 1.2deg 7deg);--pattern-opacity: .6}.thumb__label{position:relative;padding:.1em .3em 0;background:var(--accent);color:var(--on-accent);font-family:var(--font-display);font-weight:800;font-size:clamp(2rem,6vw,5rem);line-height:1;letter-spacing:-.04em;text-transform:uppercase}.preview{position:fixed;top:0;left:0;z-index:40;width:clamp(240px,24vw,380px);pointer-events:none;opacity:0;will-change:transform,opacity}.preview .thumb{aspect-ratio:4 / 3}.preview .thumb__label{font-size:clamp(1.5rem,3vw,2.5rem)}@media(hover:none){.preview{top:auto;left:auto;right:var(--gutter);bottom:var(--gutter);width:min(42vw,220px);transform:translateY(16px) scale(.94);transition:opacity .35s var(--ease-out),transform .5s var(--ease-out)}.preview.is-on{opacity:1;transform:none}}.marquee{overflow:hidden;padding-block:clamp(1rem,2vw,1.75rem);border-block:1px solid var(--line);-webkit-user-select:none;user-select:none}.marquee__track{display:flex;width:max-content;animation:marquee 40s linear infinite}.marquee.is-reverse .marquee__track{animation-direction:reverse}.marquee__group{display:flex;align-items:center;gap:clamp(1.5rem,3vw,3rem);padding-right:clamp(1.5rem,3vw,3rem)}.marquee__item{font-family:var(--font-display);font-weight:800;font-size:var(--fs-xl);line-height:1;letter-spacing:-.03em;text-transform:uppercase;white-space:nowrap}.marquee__item.is-outline{color:transparent;-webkit-text-stroke:1.5px var(--fg)}.marquee__sep{color:var(--accent);font-family:var(--font-display);font-weight:800;font-size:var(--fs-xl);line-height:.6}@keyframes marquee{to{transform:translate(-50%)}}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}.is-live [data-split] .w{white-space:nowrap;display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}.is-live [data-split] .w__i,.is-live [data-split] .c{display:inline-block;transform:translateY(110%);transition:transform var(--dur) var(--ease-out);transition-delay:var(--d, 0ms)}.is-live [data-split].is-in .w__i,.is-live [data-split].is-in .c{transform:none}.is-live [data-reveal]{opacity:0;transform:translateY(24px)}.is-live [data-reveal].is-in{opacity:1;transform:none;transition:opacity .9s var(--ease-out),transform .9s var(--ease-out);transition-delay:var(--d, 0ms)}.scrollbar{position:fixed;top:0;right:0;bottom:0;z-index:60;width:12px}.scrollbar[hidden]{display:none}.scrollbar__thumb{position:absolute;top:0;right:3px;width:5px;border-radius:999px;background:var(--accent);opacity:.85;transition:width .2s,right .2s,opacity .2s;will-change:transform}.scrollbar:hover .scrollbar__thumb,.scrollbar.is-dragging .scrollbar__thumb{right:2px;width:8px;opacity:1}.xp-list{border-bottom:1px solid var(--line)}.xp{display:grid;grid-template-columns:10rem minmax(0,1.1fr) minmax(0,1.4fr);gap:1.5rem 2.5rem;padding-block:clamp(1.5rem,3vw,2.5rem);border-top:1px solid var(--line)}.xp__years{padding-top:.4em;color:var(--muted)}.xp__role{font-family:var(--font-display);font-weight:700;font-size:var(--fs-lg);line-height:1;letter-spacing:-.02em;text-transform:uppercase}.xp__org{margin-top:.5rem;font-size:var(--fs-md);color:var(--muted)}.xp__desc{font-size:var(--fs-md);line-height:1.45}.xp__points{max-width:80ch;margin-top:1rem}.xp__points li{position:relative;padding-left:1.4em}.xp__points li+li{margin-top:.4rem}.xp__points li:before{content:"—";position:absolute;left:0;color:var(--muted)}.xp .chips{margin-top:1.25rem}.xp.is-current .xp__years{color:var(--accent)}.xp__projects{grid-column:2 / -1;border-top:1px dashed var(--line)}.xp-proj{padding-block:1.5rem;border-bottom:1px dashed var(--line)}.xp-proj:last-child{border-bottom:0}.xp-proj__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem}.xp-proj__title{font-family:var(--font-display);font-weight:700;font-size:1.4rem;line-height:1.1;text-transform:uppercase;letter-spacing:-.01em}.xp-proj__title a{transition:color .3s}@media(hover:hover){.xp-proj__title a:hover{color:var(--accent)}}.xp-proj__title a:active{color:var(--accent)}.xp-proj__meta{color:var(--muted)}@media(max-width:800px){.xp{grid-template-columns:1fr}.xp__projects{grid-column:auto}}.split-body{display:grid;grid-template-columns:minmax(0,14rem) minmax(0,1fr);gap:clamp(2.5rem,5vw,4rem) 4rem;padding:clamp(4rem,8vw,7rem) var(--gutter)}.split-body__label{position:sticky;top:calc(var(--header-h) + 1rem);align-self:start;color:var(--muted)}.split-body__part{grid-column:1 / -1;display:grid;grid-template-columns:subgrid}@media(max-width:860px){.split-body,.split-body__part{grid-template-columns:minmax(0,1fr);row-gap:1rem}.split-body>:not(.split-body__label):not(:last-child){margin-bottom:2rem}.split-body__label{position:static}}.prose{max-width:68ch;font-size:var(--fs-md);line-height:1.65}.prose>*+*{margin-top:1.1em}.prose h2{margin-top:2.2em;font-family:var(--font-display);font-weight:700;font-size:var(--fs-lg);line-height:1.05;letter-spacing:-.02em;text-transform:uppercase}.prose h3{margin-top:1.8em;font-family:var(--font-display);font-weight:700;font-size:1.4rem;line-height:1.15}.prose a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}.prose ul li{position:relative;padding-left:1.4em}.prose ul li+li{margin-top:.4em}.prose ul li:before{content:"—";position:absolute;left:0;color:var(--accent)}.prose ol{list-style:decimal;padding-left:1.4em}.prose strong{font-weight:700}.prose blockquote{margin-block:2em;padding-left:1.25em;border-left:2px solid var(--accent);font-family:var(--font-display);font-weight:600;font-size:var(--fs-lg);line-height:1.15}.prose code{padding:.15em .4em;font-family:var(--font-mono);font-size:.85em;background:var(--surface);border:1px solid var(--line)}.prose pre{overflow-x:auto;padding:1.25rem;font-family:var(--font-mono);font-size:.85rem;line-height:1.6;background:var(--surface);border:1px solid var(--line)}.prose pre code{padding:0;font-size:inherit;background:none;border:0}.hero{position:relative;min-height:100svh;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:1fr auto 1fr auto;gap:clamp(1rem,3vh,2rem);padding:calc(var(--header-h) + 1rem) var(--edge) clamp(1.5rem,5vh,3.5rem);--name: clamp(2.75rem, min((100vw - 2 * var(--edge)) / 6.1, 14svh, (100svh - 30rem) / 1.64), 18rem);--note: clamp(1rem, .75rem + 1.2vw, 1.25rem);--above: calc(6 * var(--note));--below: calc(7 * var(--note))}.hero__title{grid-area:2 / 1;margin-block:auto;font-size:var(--name);padding-block:var(--above) var(--below)}.hero__bottom{grid-row:4}.hero__name{--lean: 50deg;--turn: -12deg;--distance: calc(max(100lvh, 600px)*1.8) ;position:relative;font-family:var(--font-display);font-weight:800;font-size:1em;line-height:.82;letter-spacing:-.045em;text-align:center;text-transform:uppercase;transform:perspective(var(--distance)) rotateX(var(--lean)) rotate(var(--turn))}.hero__name .line{display:block;width:fit-content;margin-inline:auto;white-space:nowrap}.notes{grid-area:2 / 1;position:relative;font-size:var(--note);pointer-events:none}.note{position:absolute}.note--goal{left:0;top:0}.note--diff{right:0;bottom:0;display:flex;flex-direction:column;gap:.27em}.note__box{display:block;width:max-content;padding:.36em .5em .22em;border:max(1.5px,.065em) solid;font-family:var(--font-display);font-weight:700;line-height:1;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;text-decoration:none}.note--goal .note__box{color:var(--accent)}.note__br{font-family:var(--font-mono);font-weight:400}.note__sign{font-family:var(--font-mono);font-weight:500;margin-right:.4em}.note__was{color:var(--muted);border-color:color-mix(in oklab,var(--fg) 28%,var(--bg));text-decoration:line-through}.note__now{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.note__struck{position:relative}.note__strike{position:absolute;left:-.08em;right:-.08em;top:40%;height:.1em;background:var(--fg);transform-origin:0 50%}.note__was:has(.note__strike){text-decoration:none;transition:color .3s}.note__was .note__sign{transition:opacity .3s}.note--diff:not(.is-struck) .note__was:has(.note__strike){color:var(--fg)}.note--diff:not(.is-struck) .note__was:has(.note__strike) .note__sign{opacity:0}@media(min-aspect-ratio:4/3)and (min-width:900px),(min-aspect-ratio:16/10){.hero__name .line{position:relative;left:.18em}.hero{--name: clamp(2.75rem, min((100vw - 2 * var(--edge)) / 5.85, (100svh - 15.6rem) / 2.44), 24rem);--note: clamp(1rem, .5rem + .9vw, 1.375rem);--above: min(3.5 * var(--note), 8svh);--below: min(6 * var(--note), 13svh);--traces: wide;padding-top:calc(var(--header-h) + 1.5rem);row-gap:clamp(.5rem,1.5vh,1rem)}}.hero__traces{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none;font-size:var(--note)}.trace__run{fill:none;stroke:var(--accent);stroke-width:max(2px,.083em);stroke-linecap:round;stroke-linejoin:round}.trace--goal .trace__run{stroke-dasharray:max(7px,.33em) max(5px,.23em);stroke-linecap:butt}.trace__reveal{fill:none;stroke:#fff;stroke-width:1em;stroke-dasharray:1}.trace__pad,.trace__here{fill:var(--accent)}.trace__pad,.trace__here,.trace__ring{transform-box:fill-box;transform-origin:center}.trace__ring{fill:none;stroke:var(--accent);stroke-width:1.5px;vector-effect:non-scaling-stroke}.trace__here,.trace__ring{opacity:0}.trace.is-here .trace__here{opacity:1;animation:here-breathe 2.4s var(--ease-in-out) infinite}.trace.is-here .trace__ring{animation:here-ring 2.4s cubic-bezier(.2,.6,.4,1) infinite}@keyframes here-breathe{50%{transform:scale(1.18)}}@keyframes here-ring{0%{opacity:.75}to{opacity:0;transform:scale(3.4)}}.hero.is-waiting .note__box{clip-path:inset(0 100% 0 0)}.hero.is-waiting .trace__pad{transform:scale(0)}.hero.is-waiting .trace__reveal{stroke-dashoffset:1}.hero.is-waiting .note__strike{transform:scaleX(0)}.hero__bottom{display:flex;justify-content:space-between;align-items:end;gap:1rem 2rem}.hero__tagline{font-family:var(--font-display);font-weight:700;font-size:var(--fs-lg);line-height:1.05;letter-spacing:-.02em;text-transform:uppercase}.hero__word{display:inline-block;padding:.08em .2em 0;background:var(--accent);color:var(--on-accent)}.hero__aside{flex:none;display:flex;align-items:baseline;gap:clamp(1rem,2.5vw,2.5rem)}.hero__links{display:flex;gap:inherit}.hero__link svg{display:none}.hero__scroll .arr{display:inline-block;animation:bob 1.8s var(--ease-in-out) infinite}@keyframes bob{50%{transform:translateY(5px)}}@media(max-width:600px){.hero__bottom{column-gap:1rem}.hero__scroll-label{display:none}.hero__aside,.hero__links{flex-direction:column;align-items:center;gap:0}.hero__aside{margin-right:-11px}.hero__link{display:grid;place-items:center;width:44px;height:44px;padding:0}.hero__link svg{display:block;width:22px;height:22px}.hero__link span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.hero__link:after{display:none}.hero__link:active{color:var(--accent)}.hero__scroll{padding-block:.25rem}}.statement-wrap{display:grid;grid-template-columns:minmax(0,14rem) minmax(0,1fr);gap:2rem}.statement{max-width:22ch;font-family:var(--font-display);font-weight:700;font-size:var(--fs-xl);line-height:1.02;letter-spacing:-.03em}.statement .sw{opacity:.14;transition:opacity .3s}.statement .sw.is-lit{opacity:1}.statement-wrap .link-arrow{margin-top:2.5rem}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;max-width:44rem;margin-top:clamp(2.5rem,5vw,4rem)}.stats>div{padding-top:1rem;border-top:1px solid var(--line)}.stats dt{color:var(--muted)}.stats dd{margin-top:.5rem;font-family:var(--font-display);font-weight:800;font-size:var(--fs-xxl);line-height:.85;letter-spacing:-.04em}@media(max-width:860px){.statement-wrap{grid-template-columns:1fr}}.project-head{padding:calc(var(--header-h) + clamp(2rem,6vw,5rem)) var(--gutter) 2.5rem}.project-head__top{display:flex;justify-content:space-between;gap:1rem;color:var(--muted)}.project__title{margin-top:1.5rem;font-family:var(--font-display);font-weight:800;font-size:var(--fs-mega);line-height:.85;letter-spacing:-.045em;text-transform:uppercase}.meta-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;margin-top:clamp(2rem,5vw,4rem);padding-top:1.5rem;border-top:1px solid var(--line)}.meta-grid dt{color:var(--muted)}.meta-grid dd{margin-top:.4rem;font-size:var(--fs-md)}.meta-grid dd a+a{margin-left:1rem}@media(max-width:760px){.meta-grid{grid-template-columns:1fr 1fr}}.project-cover{margin-inline:var(--gutter);overflow:hidden}.project-cover .thumb{aspect-ratio:16 / 8;scale:1.15}.project-cover .thumb__label{font-size:var(--fs-xxl)}.next{display:block;padding:clamp(4rem,10vw,8rem) var(--gutter);border-top:1px solid var(--line);text-align:center}.next__title{display:block;margin-top:1rem;font-family:var(--font-display);font-weight:800;font-size:var(--fs-xxl);line-height:.9;letter-spacing:-.04em;text-transform:uppercase;transition:letter-spacing .6s var(--ease-out)}@media(hover:hover){.next:hover .next__title{letter-spacing:0}}.next:active .next__title{letter-spacing:0}.diagram__scroll{overflow-x:auto}.diagram svg{width:100%;min-width:680px;height:auto;overflow:visible}.diagram figcaption{max-width:70ch;margin-top:1rem;color:var(--muted);text-transform:none;letter-spacing:.02em}.diagram .d{fill:none;stroke:var(--fg);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.diagram .d--accent{stroke:var(--accent);stroke-width:2}.diagram .d--soft{stroke:var(--muted)}.diagram .dt{font-family:var(--font-mono);font-size:14px;letter-spacing:.06em;text-transform:uppercase;fill:var(--fg)}.diagram .dt--sub{font-size:12px;letter-spacing:.02em;text-transform:none;fill:var(--muted)}.diagram .dt--title,.diagram .dt--edge{fill:var(--accent)}.diagram .dt--edge{font-size:11px}.diagram .dt--msg{font-size:12px;letter-spacing:.02em;text-transform:none}.split-body__stack>*+*{margin-top:clamp(2rem,4vw,3rem)}.is-live .diagram .d{stroke-dasharray:1;stroke-dashoffset:1}.is-live .diagram.is-in .d{stroke-dashoffset:0;transition:stroke-dashoffset 1.1s var(--ease-out) calc(var(--i) * 45ms)}.is-live .diagram .dt{opacity:0}.is-live .diagram.is-in .dt{opacity:1;transition:opacity .6s ease calc(var(--i) * 45ms + .35s)}.skills{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));border-top:1px solid var(--line)}.skills__col{padding:1.5rem 1.5rem 2rem 0;border-bottom:1px solid var(--line)}.skills__col h3{margin-bottom:1rem;color:var(--muted)}.skills__col li{font-family:var(--font-display);font-weight:600;font-size:1.35rem;line-height:1.4}.about-intro{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);align-items:start}.portrait{container-type:inline-size}.ascii pre{margin:0;font-family:var(--font-mono);font-size:calc(100cqi / var(--cols) / .6);line-height:1;letter-spacing:0;white-space:pre;-webkit-user-select:none;user-select:none;font-variant-ligatures:none;font-feature-settings:"calt" 0,"liga" 0}.ascii__art--dark{display:none}.ascii__art--light{font-weight:800}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .ascii__art--light{display:none}:root:not([data-theme=light]) .ascii__art--dark{display:block}}:root[data-theme=dark] .ascii__art--light{display:none}:root[data-theme=dark] .ascii__art--dark{display:block}.portrait figcaption{margin-top:.75rem;color:var(--muted);text-align:center}.about-links{display:flex;justify-content:center;gap:.5rem;margin-top:1.25rem}.about-copy{font-size:var(--fs-md);line-height:1.55}.about-copy p+p{margin-top:1.25em}.about-copy .lead,.about-quote__punch{font-family:var(--font-display);font-weight:700;font-size:var(--fs-lg);line-height:1.1;letter-spacing:-.02em}.about-quote{margin-top:2.5em;padding-left:1.25em;border-left:2px solid var(--accent)}.about-quote blockquote p:first-child{color:var(--muted)}.about-copy .about-quote__punch{margin-top:.5em}.about-quote figcaption{margin-top:1.25rem;color:var(--muted)}@media(max-width:860px){.about-intro{grid-template-columns:1fr}}.toolbox{border-bottom:1px solid var(--line)}.toolbox__row{display:grid;grid-template-columns:minmax(0,16rem) minmax(0,1fr);align-items:baseline;gap:.75rem 2rem;padding-block:1.5rem;border-top:1px solid var(--line)}.toolbox__kind{font-family:var(--font-display);font-weight:700;font-size:1.4rem;line-height:1.1;letter-spacing:-.01em;text-transform:uppercase}.toolbox .tags{line-height:1.8}.toolbox .tags span{white-space:nowrap}@media(max-width:700px){.toolbox__row{grid-template-columns:minmax(0,1fr)}}.search{position:relative;display:grid;grid-template-columns:4rem minmax(0,1fr) auto 6rem;align-items:center;gap:1.5rem;padding-bottom:clamp(1rem,2vw,1.5rem)}html:not(.is-live) .search{display:none}.search__label{color:var(--muted);transition:color .3s}.search__input{width:100%;padding:0;font-family:var(--font-display);font-weight:700;font-size:var(--fs-lg);line-height:1.2;letter-spacing:-.02em;text-transform:uppercase;color:var(--fg);caret-color:var(--accent);background:none;border:0;border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.search__input::placeholder{color:var(--muted);opacity:.45}.search__input::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.search__input:focus{outline:none}.search:focus-within .search__label{color:var(--accent)}.search:after{content:"";position:absolute;inset:auto 0 -1px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease-out)}.search:focus-within:after{transform:none}.search__key,.search__clear{grid-area:1 / 3;justify-self:end;color:var(--muted)}.search__key{padding:.25em .6em;border:1px solid var(--line);transition:opacity .3s}.search:focus-within .search__key,.search.has-query .search__key{opacity:0}@media(hover:none){.search__key{display:none}}@media(hover:hover){.search__clear:hover{color:var(--fg)}}.search__count{grid-column:4;text-align:right;color:var(--muted)}.search__status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.row mark{color:var(--accent);background:none}.search__empty{padding:clamp(1.25rem,2.5vw,2rem) 0 0 5.5rem;font-size:var(--fs-md);color:var(--muted)}@media(max-width:700px){.search{grid-template-columns:minmax(0,1fr) auto;row-gap:.75rem}.search__label{grid-area:1 / 1}.search__count{grid-area:1 / 2}.search__input{grid-area:2 / 1}.search__key,.search__clear{grid-area:2 / 2}.search__empty{padding-left:3.75rem}}.post-head{padding:calc(var(--header-h) + clamp(3rem,7vw,6rem)) var(--gutter) 2rem}.post__title{max-width:16ch;margin-top:1.5rem;font-family:var(--font-display);font-weight:800;font-size:var(--fs-xxl);line-height:.9;letter-spacing:-.04em;text-transform:uppercase}.post-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--line);color:var(--muted)}.post-body{display:grid;grid-template-columns:minmax(0,max-content) 14rem;justify-content:center;column-gap:clamp(2rem,4vw,4rem);padding:2rem var(--gutter) clamp(4rem,8vw,7rem)}.prose h2[id]{scroll-margin-top:calc(var(--header-h) + 2rem)}@media(max-width:960px){.post-body{grid-template-columns:minmax(0,max-content)}.toc{display:none}}.toc{position:sticky;top:calc(var(--header-h) + 1rem);align-self:start}.toc__title{color:var(--muted)}.toc__list{margin-top:1rem;border-left:1px solid var(--line)}.toc__link{position:relative;display:grid;grid-template-columns:2rem minmax(0,1fr);align-items:baseline;padding:.45rem 0 .45rem 1rem;font-size:var(--fs-sm);line-height:1.35;color:var(--muted);transition:color .3s}.toc__num{transition:color .3s}.toc__link:before{content:"";position:absolute;inset:0 auto 0 -1px;width:2px;background:var(--accent);transform:scaleY(0);transition:transform .5s var(--ease-out)}.toc__link[aria-current]{color:var(--fg)}.toc__link[aria-current] .toc__num{color:var(--accent)}.toc__link[aria-current]:before{transform:none}@media(hover:hover){.toc__link:hover{color:var(--fg)}}.notfound{min-height:100svh;display:grid;place-content:center;justify-items:center;gap:1.5rem;padding:var(--gutter);text-align:center}.notfound__code span{color:var(--accent)}.notfound__code{font-family:var(--font-display);font-weight:800;font-size:clamp(8rem,30vw,22rem);line-height:.8;letter-spacing:-.06em}
