:root{--bg:#060706;--bg-deep:#131615;--surface:#1e2423;--border:#343b3a;--border-lo:#262b2a;--fg:#e0eee6;--fg-2:#bac4be;--fg-3:#7d8a84;--accent:#afcfc7;--spark:#4962ff;--panel:#141414;--font-display:"Geist", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-body:"Geist", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-label:"Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif;--measure:68ch;--gutter:clamp(1.25rem, 4vw, 2.5rem);--ease:cubic-bezier(.22, .61, .36, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:4.5rem}body{background:var(--bg);min-height:100svh;color:var(--fg-2);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;isolation:isolate;margin:0;font-size:clamp(.9375rem,.9rem + .2vw,1rem);line-height:1.65;position:relative;overflow-x:hidden}body:before{--hair:1px;--mat-minor:#afcfc708;--mat-major:#afcfc716;content:"";z-index:-4;pointer-events:none;background-image:linear-gradient(to right, var(--mat-major) var(--hair), transparent var(--hair)), linear-gradient(to bottom, var(--mat-major) var(--hair), transparent var(--hair)), linear-gradient(to right, var(--mat-minor) var(--hair), transparent var(--hair)), linear-gradient(to bottom, var(--mat-minor) var(--hair), transparent var(--hair));background-position:calc(50% + 30px) 0,0 0,calc(50% + 6px) 0,0 0;background-size:60px 60px,60px 60px,12px 12px,12px 12px;position:absolute;inset:0}@media (resolution>=2x){body:before{--hair:.5px}}.js body:has(main.bare):before{display:none}html,body{scrollbar-width:none}html::-webkit-scrollbar,body::-webkit-scrollbar{display:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}h1,h2,h3{font-family:var(--font-display);color:var(--fg);letter-spacing:-.02em;text-wrap:balance;margin:0 0 .5rem;font-weight:400;line-height:1.08}h1{font-size:clamp(2.5rem,1.8rem + 3.4vw,4rem)}h2{font-size:clamp(1.6rem,1.35rem + 1.3vw,2.25rem)}h3{font-size:1.25rem}p{max-width:var(--measure);margin:0 0 1rem}.label{font-family:var(--font-label);letter-spacing:.22em;text-transform:uppercase;color:var(--fg-3);margin:0 0 .75rem;font-size:.625rem;font-weight:600;line-height:normal;display:block}.label:before{content:"";background:var(--accent);vertical-align:middle;opacity:.7;width:1.5rem;height:1px;margin-right:.6rem;display:inline-block}.lede{color:var(--fg-2);font-size:1.0625rem}.muted{color:var(--fg-3)}a{color:var(--accent);border-bottom:1px solid color-mix(in oklab, var(--accent) 28%, transparent);transition:color .18s var(--ease), border-color .18s var(--ease);text-decoration:none}a:hover{color:var(--fg);border-bottom-color:var(--fg)}a:focus-visible{outline:2px solid var(--spark);outline-offset:3px;border-radius:2px}hr{border:0;border-top:1px solid var(--border-lo);margin:3rem 0}.shell{width:100%;max-width:75rem;padding-inline:var(--gutter);margin-inline:auto}main{padding-block:clamp(3rem,8vw,6rem) 4rem}main.bare{padding:0}body:has(main.bare){height:100svh;overflow:hidden}.skip{position:absolute;left:-9999px}.skip:focus{left:var(--gutter);z-index:10;background:var(--surface);color:var(--fg);border:1px solid var(--border);border-radius:4px;padding:.5rem .85rem;top:.75rem}.site-header{position:static}.site-header .shell{justify-content:space-between;align-items:baseline;gap:1.5rem;padding-block:.9rem;display:flex}.wordmark{font-family:var(--font-mono);letter-spacing:.06em;color:var(--fg);border-bottom:0;font-size:.8125rem}.site-header nav{font-family:var(--font-body);letter-spacing:.06em;gap:1.25rem;font-size:.75rem;display:flex}.site-header nav a{color:var(--fg-3);border-bottom:0}.site-header nav a:hover,.site-header nav a[aria-current=page]{color:var(--fg)}.js .site-header--reveal{z-index:5;position:absolute;inset:0 0 auto}.hero{margin-bottom:4rem}.hero h1{margin-bottom:1.25rem;font-size:clamp(1.5rem,1.2rem + 1.2vw,2.25rem)}.hero-screen{height:100svh;font-family:var(--font-body);color:var(--fg-3);--hero-gutter:clamp(1.25rem, 3.5vw, 3rem);font-size:14px;position:relative;overflow:hidden}.hero-grid{z-index:-3;display:block;position:fixed;inset:0;transform:translateZ(0)}.hero-screen .ui{z-index:3;height:100%;padding:0 var(--hero-gutter);place-items:center;display:grid;position:relative}.hero-compose{width:min(76vw,125.289svh)}.hero-art{aspect-ratio:758/242}.hero-screen .copy{--hero-text:clamp(.8125rem, .45rem + .55vw, 1.25rem);grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:start;gap:clamp(1.5rem,4vw,5rem);margin-bottom:clamp(1.25rem,5svh,3.5rem);display:grid}.hero-screen .label{font-size:calc(var(--hero-text) * .8);margin-bottom:.9em}.hero-screen .sub{font-size:var(--hero-text);color:var(--fg-3);max-width:34ch;margin:0;line-height:1.6}.hero-screen .hi{font-size:var(--hero-text);color:var(--fg-2);max-width:60ch;line-height:1.6}.hero-screen .hi p{margin:0}.hero-screen .hi p+p{margin-top:.5rem}.hero-screen .meta{right:var(--hero-gutter);letter-spacing:.18em;text-transform:uppercase;opacity:.55;white-space:nowrap;font-size:.625rem;line-height:2;font-family:var(--font-body);margin:0;position:absolute;bottom:1.5rem}.hero-screen .copy,.hero-screen .meta{opacity:0;animation:.7s cubic-bezier(.16,1,.3,1) 1.3s forwards rise}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.hero-fallback{object-fit:contain;object-position:bottom;opacity:.75;width:100%;height:100%;display:block}@media (width<=640px){.hero-compose{width:min(100%,125.289svh)}.hero-screen .copy{grid-template-columns:1fr;gap:1.1rem}.hero-screen .meta{right:auto;left:var(--hero-gutter)}.hero-art{margin-inline:calc(-1 * var(--hero-gutter))}}@media (orientation:landscape) and (height<=520px){.hero-screen .ui{padding-top:3.25rem;padding-bottom:.75rem}.hero-compose{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);align-items:center;gap:clamp(1rem,3vw,2rem);width:100%;display:grid}.hero-screen .copy{--hero-text:.75rem;grid-template-columns:1fr;gap:.6rem;margin:0}.hero-screen .sub,.hero-screen .hi{line-height:1.45}}@media (hover:none) and (pointer:coarse){.hero-screen .meta{display:none}}@media (prefers-reduced-motion:reduce){.hero-screen .copy,.hero-screen .meta{opacity:1;animation:none}}#ascii-hero{margin-bottom:2rem;container-type:inline-size}#ascii-hero pre{font-family:var(--font-mono);font-size:calc(100cqw / (var(--cols) * .6));color:var(--fg-2);white-space:pre;margin:0;line-height:1.2}.art-narrow{--cols:100}.art-wide{--cols:220;display:none}@media (width>=40rem){.art-narrow{display:none}.art-wide{display:block}}.meta{font-family:var(--font-body);color:var(--fg-3);margin-top:1.75rem;font-size:.8125rem;line-height:1.9}.meta strong{color:var(--fg-2);font-weight:400}.linkrow{flex-wrap:wrap;gap:.5rem;margin-top:2rem;padding:0;list-style:none;display:flex}.linkrow:has(>li>a){column-gap:1.25rem}.linkrow a,.text-link{font-family:var(--font-body);letter-spacing:.06em;color:var(--fg-2);transition:color .18s var(--ease), background-size .28s var(--ease);background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;border-bottom:0;padding-block:.15rem;font-size:.75rem;display:inline-block}.linkrow a:hover,.linkrow a:focus-visible,.text-link:hover,.text-link:focus-visible{color:var(--fg);background-size:100% 1px}.linkrow .chip{font-family:var(--font-body);letter-spacing:.06em;border:1px solid var(--border);color:var(--fg-2);background:color-mix(in oklab, var(--surface) 55%, transparent);border-radius:4px;padding:.4rem .75rem;font-size:.75rem;display:inline-block}.entries{margin:0;padding:0;list-style:none}.entry{border-top:1px solid var(--border-lo);padding-block:1.5rem}.entry:first-child{border-top:0}.entry h3{font-family:var(--font-body);letter-spacing:0;text-transform:lowercase;margin-bottom:.35rem;font-size:1.0625rem;font-weight:500}.entry p{margin-bottom:.6rem}.entry-meta{font-family:var(--font-body);letter-spacing:.06em;color:var(--fg-3);flex-wrap:wrap;align-items:center;gap:.4rem .9rem;font-size:.6875rem;display:flex}.tag{border:1px solid var(--border-lo);border-radius:3px;padding:.1rem .4rem}.entry .blurb{color:var(--fg-2);font-weight:500}h2.label{text-transform:lowercase}.tool-group+.tool-group{margin-top:1.5rem}.tool-group .linkrow{margin-top:.5rem}.section{margin-top:3.5rem}details>summary{cursor:pointer;font-family:var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--fg-3);transition:color .18s var(--ease);align-items:center;gap:.5rem;padding:.35rem 0;font-size:.6875rem;list-style:none;display:inline-flex}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"+";color:var(--accent);font-size:.875rem;line-height:1}details[open]>summary:before{content:"−"}details>summary:hover{color:var(--fg)}details>summary:focus-visible{outline:2px solid var(--spark);outline-offset:3px;border-radius:2px}details>.entries{margin-top:.5rem}.site-footer{border-top:1px solid var(--border-lo);font-family:var(--font-body);letter-spacing:.06em;color:var(--fg-3);padding-block:2rem 3rem;font-size:.6875rem}.site-footer .shell{flex-wrap:wrap;justify-content:space-between;gap:.75rem 1.25rem;display:flex}.site-footer a{color:var(--fg-3);border-bottom:0}.site-footer a:hover{color:var(--fg)}
