@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/space-grotesk-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:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/manrope-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:100 800;font-display:swap;src:url(/fonts/jetbrains-mono-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{color-scheme:dark;--bg: #07110e;--panel: #0e1a16;--panel-2: #122019;--rule: #1b2c25;--rule-strong: #274035;--text: #dce8e2;--muted: #8ca39a;--dim: #6b8178;--accent: #5ee6a0;--accent-ink: #07110e;--attention: #f0b429;--danger: #e2554f;--sea-alpha: 1;--lantern-working: #3b78ff;--lantern-launching: var(--lantern-working);--lantern-idle: #8a8a8a;--lantern-attention: #e74856;--lantern-exited: #444444;--lantern-body: #101a2b;--lantern-outline: #4a5f80;--font-display: "Space Grotesk", ui-sans-serif, system-ui, "Segoe UI", sans-serif;--font-body: "Manrope", ui-sans-serif, system-ui, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--radius: 4px;--radius-sm: 2px;--shell: 1140px;--gutter: 24px}:root.light{color-scheme:light;--bg: #eef4f1;--panel: #ffffff;--panel-2: #f6faf8;--rule: #d6e2db;--rule-strong: #b9ccc2;--text: #0f1a16;--muted: #56695f;--dim: #6b7c73;--accent: #1f8f5f;--accent-ink: #ffffff;--attention: #b7801a;--danger: #b3332e;--sea-alpha: 1;--lantern-working: #2f6fe4;--lantern-idle: #6b7280;--lantern-attention: #d13438;--lantern-exited: #b0b0b0;--lantern-body: #223047;--lantern-outline: #0b1424}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;overflow-y:scroll;scrollbar-gutter:stable}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;line-height:1.14;letter-spacing:.01em;margin:0 0 .5em}h1{font-size:clamp(2.1rem,4.6vw,3.3rem)}h2{font-size:clamp(1.45rem,2.4vw,1.85rem)}h3{font-size:1.16rem}h4{font-size:1rem}p{margin:0 0 1em;max-width:74ch}a{color:var(--text);text-decoration:underline;text-decoration-color:color-mix(in oklab,var(--accent) 55%,transparent);text-underline-offset:3px;transition:color .12s ease}a:hover{color:var(--accent)}code,kbd,.mono{font-family:var(--font-mono)}.mono{overflow-wrap:anywhere}code,kbd{font-size:.86em}kbd{background:var(--panel-2);border:1px solid var(--rule);border-radius:var(--radius-sm);padding:1px 6px;color:var(--text);white-space:nowrap}hr{border:0;border-top:1px solid var(--rule);margin:40px 0}img,video{max-width:100%;height:auto;display:block}.shell{width:100%;max-width:var(--shell);margin:0 auto;padding:0 var(--gutter)}.narrow{max-width:calc(820px + var(--gutter) * 2);margin-left:max(0px,calc((100% - var(--shell)) / 2));margin-right:auto}.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;z-index:50;background:var(--accent);color:var(--accent-ink);padding:8px 14px;border-radius:var(--radius-sm);text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.site-header{position:sticky;top:0;z-index:20;background:color-mix(in oklab,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule)}.site-header .shell{display:flex;align-items:center;gap:22px;min-height:60px}.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:1.06rem;color:var(--text);text-decoration:none;letter-spacing:.01em}.brand img{width:26px;height:26px}.site-nav{display:flex;align-items:center;gap:20px;margin-left:auto;flex-wrap:wrap;font-size:.95rem}.site-nav a{color:var(--muted);text-decoration:none;padding:4px 0}.site-nav a:hover{color:var(--text)}.site-nav a[aria-current=page]{color:var(--text);box-shadow:inset 0 -1px 0 var(--accent)}.theme-toggle{font:inherit;font-family:var(--font-mono);font-size:.78rem;color:var(--muted);background:transparent;border:1px solid var(--rule);border-radius:var(--radius-sm);padding:4px 10px;cursor:pointer;transition:color .12s ease,border-color .12s ease}.theme-toggle:hover{color:var(--text);border-color:var(--rule-strong)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-size:.95rem;font-weight:500;padding:10px 18px;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:background .12s ease,border-color .12s ease,color .12s ease}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:color-mix(in oklab,var(--accent) 86%,var(--text));color:var(--accent-ink)}.btn-ghost{border-color:var(--rule-strong);color:var(--text);background:transparent}.btn-ghost:hover{border-color:var(--accent);color:var(--text)}.btn-danger{border-color:var(--danger);color:var(--danger);background:transparent}.btn-danger:hover{background:color-mix(in oklab,var(--danger) 14%,transparent)}.btn[disabled],.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.sea{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none;user-select:none;opacity:var(--sea-alpha)}.sea-band{position:relative;height:110px;overflow:hidden;border-bottom:1px solid var(--rule)}.sea-band:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,transparent,var(--bg) 88%);pointer-events:none}.page-hero{position:relative;overflow:hidden;border-bottom:1px solid var(--rule);isolation:isolate;background:var(--bg)}.page-hero-bed{position:absolute;inset:0;z-index:-2}.page-hero-strip{height:84px}.page-hero-short{height:168px}.page-hero-tall:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(to right,color-mix(in oklab,var(--bg) 74%,transparent),color-mix(in oklab,var(--bg) 42%,transparent) 50%,transparent 76%)}.page-hero-body{position:relative;padding-top:72px;padding-bottom:44px}.page-hero-body h1{max-width:24ch;margin-bottom:.35em}.page-hero-body p.lede{margin-bottom:0}.lantern-rule{display:flex;align-items:flex-start;gap:18px;margin:40px 0}.lantern-rule:before,.lantern-rule:after{content:"";flex:1;height:1px;background:var(--rule-strong)}.lantern{display:inline-block;width:14px;height:22px;line-height:0;margin-top:-1px}.lantern-glyph{display:block;overflow:visible}.lantern-glyph .lg-hanger,.lantern-glyph .lg-bars{fill:none;stroke:var(--lantern-outline);stroke-width:1}.lantern-glyph .lg-cap,.lantern-glyph .lg-base{fill:var(--lantern-body);stroke:var(--lantern-outline);stroke-width:1;stroke-linejoin:round}.lantern-glyph .lg-glass{fill:var(--lantern-idle);fill-opacity:.25;stroke:var(--lantern-outline);stroke-width:1}.lantern.working .lg-glass,.lantern.launching .lg-glass{fill:var(--lantern-working);fill-opacity:1;filter:drop-shadow(0 0 3px var(--lantern-working))}.lantern.attention .lg-glass{fill:var(--lantern-attention);fill-opacity:1;filter:drop-shadow(0 0 3px var(--lantern-attention))}.lantern.exited .lg-glass{fill:var(--lantern-body);fill-opacity:1}.lantern.exited .lg-hanger,.lantern.exited .lg-bars,.lantern.exited .lg-cap,.lantern.exited .lg-base,.lantern.exited .lg-glass{stroke-opacity:.55}:root.light .lantern.working .lg-glass,:root.light .lantern.launching .lg-glass,:root.light .lantern.attention .lg-glass{filter:none}.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--rule);isolation:isolate}.hero-bed{position:absolute;inset:0;z-index:-2;background:var(--bg)}.hero-bed video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .9s ease}@media(min-width:900px){.hero-bed video{object-position:right center}}.hero-bed video.playing{opacity:.9}:root.light .hero-bed video.playing{opacity:.68}:root.light .hero-scrim{background:linear-gradient(to right,color-mix(in oklab,var(--bg) 78%,transparent),color-mix(in oklab,var(--bg) 40%,transparent) 55%,transparent),linear-gradient(to bottom,color-mix(in oklab,var(--bg) 30%,transparent),transparent 30%,var(--bg))}.hero-scrim{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(to right,color-mix(in oklab,var(--bg) 92%,transparent),color-mix(in oklab,var(--bg) 62%,transparent) 58%,transparent),linear-gradient(to bottom,color-mix(in oklab,var(--bg) 55%,transparent),transparent 30%,var(--bg))}.hero-body{padding-top:104px;padding-bottom:88px}.hero h1{max-width:22ch;font-size:clamp(2.3rem,5.4vw,3.6rem);line-height:1.06}.hero p.lede{font-size:1.1rem;color:var(--muted);max-width:54ch}.hero .fine{font-family:var(--font-mono);font-size:.78rem;color:var(--muted);margin:18px 0 0;max-width:60ch}@media(min-width:900px){.hero-body .copy{max-width:56%}}section.band{padding:64px 0;border-top:1px solid var(--rule)}section.band.plain{border-top:0}.section-head{max-width:70ch;margin-bottom:32px}.section-head p{color:var(--muted)}p.lede{font-size:1.1rem;color:var(--muted);max-width:60ch}.eyebrow{font-family:var(--font-mono);font-size:.8rem;color:var(--muted);margin:0 0 14px;font-weight:400;letter-spacing:0;text-transform:none}.grid{display:grid;gap:22px}.grid.two{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid.three{grid-template-columns:repeat(auto-fit,minmax(258px,1fr))}.grid.pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}@media(max-width:560px){.grid.pair{grid-template-columns:1fr}}.card{background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius);padding:22px}.card h3{margin-top:0;color:var(--text)}.card p{color:var(--muted)}.card p:last-child{margin-bottom:0}.card .tag,.tag{font-family:var(--font-mono);font-size:.76rem;letter-spacing:0;text-transform:none;color:var(--muted);font-weight:400;display:block;margin-bottom:8px}.problem{border-left:1px solid var(--accent);padding:2px 0 2px 22px}.problem p:last-child{margin-bottom:0}.rows{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none}.rows>li{border-bottom:1px solid var(--rule);padding:20px 0;display:grid;gap:6px 34px}@media(min-width:820px){.rows>li{grid-template-columns:minmax(0,20ch) minmax(0,1fr);align-items:baseline}}.rows h3{margin:0;font-size:1.05rem;color:var(--text)}.rows p{margin:0;color:var(--muted)}.rows .tag{margin:0 0 2px}ul.ticks{list-style:none;padding:0;margin:0 0 1em}ul.ticks li{padding-left:22px;position:relative;margin-bottom:10px;color:var(--muted);max-width:74ch}ul.ticks li:before{content:"";position:absolute;left:2px;top:.62em;width:6px;height:6px;background:var(--accent)}figure.shot{margin:0;border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;background:var(--panel)}figure.shot .frame{aspect-ratio:16 / 10;display:grid;place-items:center;background:var(--panel-2);color:var(--muted);font-family:var(--font-mono);font-size:.8rem;text-align:center;padding:18px}figure.shot img{aspect-ratio:16 / 10;object-fit:cover;width:100%}figure.shot figcaption{padding:11px 14px;font-size:.86rem;color:var(--muted);border-top:1px solid var(--rule)}figure.shot.wide img{aspect-ratio:16 / 10}.chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:.74rem;font-weight:400;padding:2px 8px;border-radius:var(--radius-sm);border:1px solid var(--rule-strong);color:var(--muted);white-space:nowrap}.chip.current,.chip.ok{border-color:var(--accent);color:var(--accent)}.chip.warn{border-color:var(--attention);color:var(--attention)}.chip.bad{border-color:var(--danger);color:var(--danger)}.gauge{height:3px;background:var(--rule);overflow:hidden;margin:10px 0 4px}.gauge span{display:block;height:100%}.gauge span.ok{background:var(--accent)}.gauge span.warn{background:var(--attention)}.gauge span.bad{background:var(--danger)}table.plain{width:100%;border-collapse:collapse;font-size:.95rem}table.plain th,table.plain td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--rule);vertical-align:top}table.plain th{color:var(--text);font-weight:600;white-space:nowrap}table.plain td{color:var(--muted)}.form{background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius);padding:26px;max-width:460px}.form.wide{max-width:620px}.field{margin-bottom:16px}.field label{display:block;font-size:.86rem;color:var(--muted);margin-bottom:6px}.field input,.field textarea{width:100%;font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--rule);border-radius:var(--radius-sm);padding:10px 12px}.field textarea{min-height:140px;resize:vertical}.field input:focus,.field textarea:focus{border-color:var(--accent);outline:none}.field .hint{font-size:.82rem;color:var(--dim);margin:6px 0 0}.field input.code{font-family:var(--font-mono);font-size:1.4rem;letter-spacing:.16em;text-align:center;text-transform:uppercase}.honeypot{position:absolute;left:-9999px}.notice{border-radius:var(--radius-sm);padding:11px 14px;font-size:.92rem;margin:0 0 16px;border:1px solid var(--rule-strong);color:var(--muted);max-width:74ch}.notice.ok{border-color:var(--accent);color:var(--text)}.notice.bad{border-color:var(--danger);color:var(--danger)}.notice[hidden]{display:none}.release{border-top:1px solid var(--rule);padding:26px 0}.release:first-of-type{border-top:0}.release header{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}.release h2{margin:0;font-size:1.3rem}.release time{color:var(--dim);font-size:.9rem;font-family:var(--font-mono)}.change{display:grid;grid-template-columns:92px 1fr;gap:12px;padding:6px 0;align-items:baseline}.change .kind{font-family:var(--font-mono);font-size:.76rem;letter-spacing:0;text-transform:none;font-weight:400;color:var(--accent)}.change .kind.fixed{color:var(--attention)}.change .kind.data{color:var(--muted)}.change p{margin:0;color:var(--muted)}dl.shortcuts{display:grid;grid-template-columns:minmax(160px,max-content) 1fr;gap:10px 20px;margin:0 0 24px}dl.shortcuts dt{margin:0}dl.shortcuts dd{margin:0;color:var(--muted)}.toc{display:flex;flex-wrap:wrap;gap:8px 26px;margin:0 0 30px;padding:0;list-style:none;font-family:var(--font-mono);font-size:.82rem}.toc a{color:var(--muted);text-decoration:none}.toc a:hover{color:var(--accent)}.site-footer{border-top:1px solid var(--rule);margin-top:80px;padding:40px 0 56px;font-size:.92rem;color:var(--muted)}.site-footer .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:24px;margin-bottom:30px}.site-footer h4{font-family:var(--font-mono);font-size:.8rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--text);margin:0 0 10px}.site-footer ul{list-style:none;margin:0;padding:0}.site-footer li{margin-bottom:7px}.site-footer a{color:var(--muted);text-decoration:none}.site-footer a:hover{color:var(--accent)}.site-footer .legal{border-top:1px solid var(--rule);padding-top:20px;display:grid;gap:8px}.site-footer .disclaimer{color:var(--dim)}.muted{color:var(--muted)}.dim{color:var(--dim)}.stack-lg>*+*{margin-top:40px}.big-code{font-family:var(--font-mono);font-size:2rem;letter-spacing:.2em;color:var(--accent)}.cta-band{padding:64px 0 24px;border-top:1px solid var(--rule)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.hero-bed video{transition:none}}@media(max-width:640px){body{font-size:16px}table.plain{display:block;overflow-x:auto}table.plain th{white-space:normal}.hero-body{padding-top:64px;padding-bottom:52px}.page-hero-body{padding-top:44px;padding-bottom:32px}.page-hero-short{height:120px}.page-hero-strip{height:64px}.site-header .shell{flex-wrap:wrap;gap:12px 16px;padding-top:10px;padding-bottom:10px}.site-nav{margin-left:0;width:100%;gap:14px}.change{grid-template-columns:1fr;gap:2px}dl.shortcuts{grid-template-columns:1fr;gap:4px 0}dl.shortcuts dd{margin-bottom:12px}}.kind-toggle{display:flex;gap:8px}.kind-toggle .btn{flex:1;padding:9px 12px}.kind-toggle .btn[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}
