@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(/_astro/bricolage-grotesque.Cre6nC2_.woff2)format("woff2-variations")}@font-face{font-family:Figtree;font-style:normal;font-weight:300 900;font-display:swap;src:url(/_astro/figtree.D_ZTVpCC.woff2)format("woff2-variations")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/jetbrains-mono-400.V6pRDFza.woff2)format("woff2")}@font-face{font-family:DM Serif Display;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/dm-serif-display.C5_t9oOD.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_astro/jetbrains-mono-500.BWZEU5yA.woff2)format("woff2")}:root{--paper:#f3f6f2;--card:#fff;--ink:#13221d;--muted:#56675f;--line:#d6dfd9;--soft:#e8eee9;--mat:#1d5a4b;--mat-line:#ffffff1c;--mat-ink:#eaf4ef;--mat-muted:#a9c8bc;--signal:#ffd23f;--signal-hover:#ffdf6e;--signal-ink:#1d1a08;--good:#1d7a55;--danger:#c2352b;--display:"Bricolage Grotesque","Figtree",system-ui,sans-serif;--body:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"JetBrains Mono",ui-monospace,Menlo,monospace;--serif:"DM Serif Display",Georgia,serif;--r-md:14px;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0e1613;--card:#16211d;--ink:#e4ede8;--muted:#93a59c;--line:#26352f;--soft:#1c2924;--mat:#173f35;--mat-line:#ffffff14;--mat-ink:#e4f1ea;--mat-muted:#8db3a5;--good:#5fcb98;--danger:#f08a80;color-scheme:dark}}:root[data-theme=dark]{--paper:#0e1613;--card:#16211d;--ink:#e4ede8;--muted:#93a59c;--line:#26352f;--soft:#1c2924;--mat:#173f35;--mat-line:#ffffff14;--mat-ink:#e4f1ea;--mat-muted:#8db3a5;--good:#5fcb98;--danger:#f08a80;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:80px}body{background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:16.5px;line-height:1.6}a{color:inherit}h1,h2,h3{text-wrap:balance;margin:0;line-height:1.1}p{margin:0}[hidden]{display:none!important}.wrap{max-width:1180px;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px));margin:0 auto}.mono{font-family:var(--mono);letter-spacing:.03em;font-size:12px}.eyebrow{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:12px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{z-index:50;background:var(--signal);color:var(--signal-ink);border-radius:8px;padding:8px 14px;font-weight:600;text-decoration:none;position:absolute;top:-60px;left:12px}.skip:focus{top:12px}:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:6px}.btn{cursor:pointer;font:600 15px/1 var(--body);border:0;border-radius:999px;align-items:center;gap:8px;padding:13px 20px;text-decoration:none;transition:transform .15s,background .15s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-signal{background:var(--signal);color:var(--signal-ink)}.btn-signal:hover{background:var(--signal-hover)}.btn-ink{background:var(--ink);color:var(--paper)}.btn-ghost{color:inherit;background:0 0;box-shadow:inset 0 0 0 1.5px}.btn-lg{padding:16px 26px;font-size:17px}header.top{z-index:20;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0}.top .wrap{align-items:center;gap:28px;height:64px;display:flex}.logo{font:800 19px/1 var(--display);letter-spacing:-.01em;color:var(--ink);align-items:center;gap:10px;text-decoration:none;display:flex}.logo-mark{background:var(--mat);border-radius:6px;flex:none;width:26px;height:26px;position:relative;overflow:hidden}.logo-mark:before{content:"";background:repeating-linear-gradient(90deg,#0000 0 5px,#ffffff40 5px 6px),repeating-linear-gradient(#0000 0 5px,#ffffff40 5px 6px);position:absolute;inset:0}.logo-mark:after{content:"";background:var(--signal);border-radius:2px;width:11px;height:11px;position:absolute;bottom:3px;right:3px}nav.links{color:var(--muted);gap:24px;font-size:15px;display:flex}nav.links a{text-decoration:none}nav.links a:hover,nav.links a[aria-current]{color:var(--ink)}.search{border:1px solid var(--line);background:var(--card);border-radius:999px;flex:1;align-items:center;gap:8px;max-width:340px;margin:0;padding:0 14px;display:flex}.search input{font:15px var(--body);color:var(--ink);background:0 0;border:0;width:100%;min-width:0;padding:9px 0}.search input:focus{outline:none}.search:focus-within{border-color:var(--ink)}.search svg{color:var(--muted);flex:none}.top-actions{align-items:center;gap:14px;margin-left:auto;display:flex}.top-actions .login{color:var(--muted);font-size:15px;text-decoration:none}.top-actions .login:hover{color:var(--ink)}.top .btn{padding:10px 16px;font-size:14px}@media (width<=1000px){nav.links{display:none}}@media (width<=720px){.search{display:none}}@media (width<=600px){.top-actions .login{display:none}}footer.site{border-top:1px solid var(--line);color:var(--muted);padding-block:48px 32px;font-size:14px}.foot-grid{grid-template-columns:minmax(0,1.6fr) repeat(4,minmax(0,1fr));gap:32px;display:grid}.foot-brand{flex-direction:column;gap:12px;max-width:28ch;display:flex}footer.site nav{flex-direction:column;gap:8px;display:flex}footer.site h2{font:500 12px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin:0 0 4px}footer.site a{text-decoration:none}footer.site nav a:hover{color:var(--ink)}.foot-base{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:40px;padding-top:20px;display:flex}@media (width<=860px){.foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.foot-brand{grid-column:1/-1}}.mat{background-color:var(--mat);color:var(--mat-ink);background-image:linear-gradient(var(--mat-line) 1px,transparent 1px),linear-gradient(90deg,var(--mat-line) 1px,transparent 1px),linear-gradient(#ffffff0a 1px,transparent 1px),linear-gradient(90deg,#ffffff0a 1px,transparent 1px);background-size:120px 120px,120px 120px,24px 24px,24px 24px}.mat .eyebrow{color:var(--mat-muted)}.ruler{border-bottom:1px solid var(--mat-line);background-image:repeating-linear-gradient(90deg,var(--mat-muted) 0 1px,transparent 1px 120px),repeating-linear-gradient(90deg,#ffffff59 0 1px,transparent 1px 24px);opacity:.7;background-repeat:no-repeat;background-size:100% 22px,100% 9px;height:22px}.dim{font-family:var(--mono);color:var(--mat-muted);white-space:nowrap;font-size:11px;position:absolute}.dim:before{content:"";vertical-align:middle;background:currentColor;width:18px;height:1px;margin-right:6px;display:inline-block}.board{position:relative}.board .piece{filter:drop-shadow(0 22px 28px #00000059);position:absolute}.crumbs{color:var(--muted);padding-block:18px 0;font-size:14px}.crumbs ol{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.crumbs li+li:before{content:"/";opacity:.6;margin-right:6px}.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--ink);text-decoration:underline}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.soon-pill{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:8px 14px;font-size:12px}.soon-box{flex-wrap:wrap;align-items:center;gap:16px;margin-top:32px;display:flex}.soon-line{color:var(--mat-ink);align-items:center;gap:10px;font-weight:600;display:flex}.soon-line .dot{background:var(--signal);border-radius:50%;width:9px;height:9px;animation:2.4s ease-in-out infinite pulse}.btn.btn-soon{background:var(--soft);color:var(--muted);box-shadow:none;cursor:default}.soon-note{text-align:center;color:var(--muted);margin-top:24px;font-size:15px}.soon-note a{color:var(--ink)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.soon-line .dot{animation:none}}.foot-grid.three{grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr))}@media (width<=860px){.foot-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.top .wrap{gap:12px}.soon-pill{letter-spacing:.04em;padding:6px 10px;font-size:10px}}
