@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-mono-latin-wght-normal-XN7g48iV.woff2) format("woff2-variations");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+2190-2199,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #171615;--fg: #e9e5dc;--dim: #a39d92;--faint: #857f75;--hair: #4a4640;--rule: #2a2826;--accent: #d9774b;--font: "Geist Mono Variable", ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace;--fs: 13px;--lh: 1.65;--gutter: clamp(20px, 8vw, 115px);--col: 34rem;--ease: cubic-bezier(.23, 1, .32, 1);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-color:var(--faint) var(--bg)}body{margin:0;min-height:100dvh;color:var(--fg);font:400 var(--fs) / var(--lh) var(--font);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overflow-x:clip}::selection{background:var(--fg);color:var(--bg)}h1,h2,h3,p,ol,ul,dl,dd{margin:0;padding:0}ol,ul{list-style:none}h1,h2,h3{font-size:inherit;font-weight:600}p,dd{text-wrap:pretty}a{color:inherit;text-decoration:none;transition:color .16s var(--ease)}:focus-visible{outline:1px solid var(--fg);outline-offset:3px}.dim{color:var(--dim)}.ocean{position:fixed;inset:0 auto auto 0;z-index:0;display:block;pointer-events:none;opacity:0;transition:opacity .9s var(--ease)}.ocean[data-ready]{opacity:1}.page>:not(.ocean,.bar--top,.bar--fixed,.skip){position:relative;z-index:1}.skip{position:absolute;z-index:4;left:var(--gutter);top:12px;padding:6px 10px;background:var(--fg);color:var(--bg);transform:translateY(calc(-100% - 24px))}.skip:focus{transform:none}.bar{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding:0 var(--gutter)}.bar--top{position:sticky;top:0;z-index:3;padding-top:max(22px,env(safe-area-inset-top));padding-bottom:14px;background:var(--bg);box-shadow:0 18px 18px -4px var(--bg)}.mark{font-weight:600}.nav{display:flex;gap:22px}.nav a,.bar__aside{color:var(--dim)}.nav a[aria-current=true]{color:var(--fg)}.bar--foot{padding-top:48px;padding-bottom:max(40px,env(safe-area-inset-bottom))}.bar--fixed{position:fixed;inset:auto 0 0;z-index:2;padding-top:0}@media(hover:hover){.nav a:hover,.bar__aside:hover,.links a:hover,.row__meta a:hover{color:var(--fg)}}main{padding:0 var(--gutter)}.intro{max-width:var(--col);padding:clamp(64px,16vh,168px) 0 clamp(48px,10vh,96px)}.intro__name{font-size:13px}.intro__line{margin-top:10px;color:var(--dim);max-width:62ch}.facts{display:grid;gap:2px;margin-top:28px}.facts div,.stack div{display:grid;grid-template-columns:7ch 1fr;gap:2ch}.facts dt,.stack dt{color:var(--faint)}.facts dd{color:var(--fg)}.links{display:flex;flex-wrap:wrap;gap:0 22px;margin-top:28px}.links a{display:inline-block;padding:10px 0;color:var(--dim)}.links a:after{content:"↗";margin-left:.5ch;color:var(--hair)}.links a[href^=mailto]:after{content:"→"}.block{max-width:46rem;padding:56px 0;scroll-margin-top:48px}.block__head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--rule)}.block__head h2{font-weight:600}.rows+.block__head{margin-top:32px}.rows{counter-reset:row}.row{display:grid;grid-template-columns:6ch 1fr;gap:2ch;padding:22px 0;border-bottom:1px solid var(--rule)}.rows--tight .row{padding:16px 0}.row__year{color:var(--faint)}.row__title{font-weight:600}.row__title a{display:inline-flex;gap:1ch}.go{color:var(--hair);transition:transform .22s var(--ease),color .16s var(--ease)}@media(hover:hover){.row__title a:hover .go{color:var(--fg);transform:translate(2px,-2px)}.row__title a[href^="./"]:hover .go{transform:translate(3px)}}.at{margin-left:1ch;font-weight:400;color:var(--dim)}.row__desc{margin-top:6px;color:var(--dim);max-width:64ch}.row__meta{display:flex;flex-wrap:wrap;gap:2px 3ch;margin-top:8px;color:var(--faint)}.row__meta a{color:var(--dim);text-decoration:underline;text-decoration-color:var(--hair);text-underline-offset:3px}.award{color:var(--accent)}.about{display:grid;gap:32px;padding-top:22px}.prose{display:grid;gap:14px;max-width:64ch;color:var(--dim)}.stack{display:grid;gap:8px}.stack div{grid-template-columns:11ch 1fr}.stack dd{color:var(--dim)}.block--end{padding-bottom:24px}.contact__lead{margin-top:22px;color:var(--dim)}.contact__mail{display:inline-block;margin-top:6px;padding:6px 0;font-weight:600;text-decoration:underline;text-decoration-color:var(--hair);text-underline-offset:4px;transition:text-decoration-color .16s var(--ease)}@media(hover:hover){.contact__mail:hover{text-decoration-color:var(--fg)}}.block--end .links{margin-top:12px}.page--chooser{min-height:100dvh}@media(min-height:560px){.page--chooser{overflow:hidden}}@media(max-height:559px){.page--chooser .bar--fixed{position:static;padding-top:32px}.chooser{padding-top:40px}}.chooser{max-width:40rem;padding-top:clamp(80px,22vh,220px)}.chooser__title{font-weight:600}.chooser__sub{margin-top:6px;color:var(--dim)}.choices{margin-top:36px;border-top:1px solid var(--rule)}.choice{display:grid;grid-template-columns:4ch 14ch 1fr;align-items:baseline;gap:1ch;padding:16px 0;border-bottom:1px solid var(--rule)}.choice__key{font:inherit;color:var(--faint)}.choice__key:before{content:"["}.choice__key:after{content:"]"}.choice__name{font-weight:600}.choice__desc{color:var(--dim)}.choice:active .choice__name{color:var(--accent)}@media(hover:hover){.choice:hover .choice__key,.choice:focus-visible .choice__key{color:var(--accent)}.choice:hover .choice__desc{color:var(--fg)}}@media(max-width:720px){.bar--top{flex-wrap:wrap;row-gap:4px}.nav{order:3;width:100%;gap:0 18px}.nav a{padding:10px 0}.row{grid-template-columns:1fr;gap:2px}.choice{grid-template-columns:4ch 1fr;row-gap:2px}.choice__desc{grid-column:2}.facts div,.stack div{grid-template-columns:1fr;gap:0}.foot__hint{display:none}.bar--foot{flex-wrap:wrap}.kbd-hint{display:none}}@media(pointer:coarse){.kbd-hint{display:none}.mark,.bar__aside,.row__title a,.row__meta a,.contact__mail{display:inline-block;padding-block:12px;margin-block:-12px}.nav a,.links a{padding-block:12px}.skip{padding-block:14px}}@media(prefers-reduced-motion:reduce){*{transition-duration:0ms!important}}
