@font-face{font-family:Schibsted Grotesk;src:url(/fonts/schibsted-grotesk-latin-wght-normal.woff2)format("woff2-variations");font-weight:400 900;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/ibm-plex-sans-latin-wght-normal.woff2)format("woff2-variations");font-weight:100 700;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-latin-wght-normal.woff2)format("woff2-variations");font-weight:100 800;font-style:normal;font-display:swap}:root{--ok:#12703f;--ok-soft:#e1f3e8;--warn:#8f5400;--warn-soft:#fcf0d9;--err:#b42318;--err-soft:#fde5e2;--syn-key:#1559a3;--syn-str:#1f7a35;--syn-num:#7a35d6;--syn-date:#b0306f;--syn-bool:#b4441b;--syn-head:var(--accent);--syn-com:#74867f;--syn-punct:#7d8c88;--font-display:"Schibsted Grotesk", "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--font-body:"IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--code-size:.8125rem;--code-lh:1.65;--radius:14px;--radius-sm:8px;--shadow-bench:0 1px 2px #0b17150d, 0 12px 32px -12px #0b171529, 0 40px 80px -48px #0b171540;--gutter:max(16px, env(safe-area-inset-left,0px));--gutter-r:max(16px, env(safe-area-inset-right,0px));--ease:cubic-bezier(.2, .7, .2, 1);color-scheme:light}:root[data-theme=dark]{--ok:#4ade80;--ok-soft:#0f2a1b;--warn:#f5b546;--warn-soft:#2d2310;--err:#fb8b7e;--err-soft:#35160f;--syn-key:#82c4f8;--syn-str:#93da8f;--syn-num:#c7a6ff;--syn-date:#f59ac8;--syn-bool:#ffab70;--syn-com:#66807a;--syn-punct:#6f8783;--shadow-bench:0 1px 0 #ffffff08 inset, 0 24px 60px -24px #000000b3;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:16px}body{background:var(--paper);min-height:100vh;color:var(--ink);font:400 1rem/1.65 var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;flex-direction:column;margin:0;display:flex}main{flex:1}a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--accent-hover);text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}::selection{background:var(--sel)}code,pre,kbd,textarea,select{font-family:var(--font-mono);font-variant-ligatures:none;font-feature-settings:"liga" 0, "calt" 0}code{background:var(--sunk);border:1px solid var(--line);border-radius:5px;padding:.05em .35em;font-size:.875em}.wrap{max-width:1240px;padding-left:var(--gutter);padding-right:var(--gutter-r);margin-inline:auto}.prose{max-width:740px;margin-inline:auto}.i{flex:none;width:16px;height:16px}[hidden]{display:none!important}.skip{z-index:10;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-ink);transition:top .15s var(--ease);padding:8px 14px;font-weight:600;text-decoration:none;position:absolute;top:-48px;left:12px}.skip:focus{color:var(--accent-ink);top:12px}.site-header{z-index:2;position:relative}.site-header .wrap{justify-content:space-between;align-items:center;gap:16px;min-height:64px;display:flex}.brand{color:var(--ink);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand:hover{color:var(--ink)}.logo{flex:none;width:40px;height:28px}.brand-word{font:700 1.02rem/1 var(--font-mono);letter-spacing:-.02em}.brand-tld{color:var(--ink-2);font-weight:500}.header-end{align-items:center;gap:8px;display:flex}.sister{height:36px;font:500 .9rem/1 var(--font-body);color:var(--ink);border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 70%, transparent);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 12px;text-decoration:none;transition:border-color .15s,background-color .15s;display:inline-flex}.sister:hover{color:var(--ink);border-color:var(--line-strong);background:var(--panel)}.sister .lbl-opt{margin-left:-2px}.sister .i{color:var(--accent);transition:transform .2s var(--ease)}.sister:hover .i{transform:translate(2px)}.theme-btn{border:1px solid var(--line);height:36px;color:var(--ink-2);cursor:pointer;font:500 .85rem/1 var(--font-body);background:0 0;border-radius:999px;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.theme-btn:hover{color:var(--ink);border-color:var(--line-strong)}.theme-btn .i{display:none}.theme-btn[data-mode=light] .i-sun,.theme-btn[data-mode=dark] .i-moon{display:block}.hero{isolation:isolate;padding-bottom:8px;position:relative}.hero:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(48% 70% at 50% 0%, var(--glow), transparent 72%), radial-gradient(circle at 1px 1px, color-mix(in srgb, var(--ink) 9%, transparent) 1px, transparent 0) 0 0 / 22px 22px;height:560px;position:absolute;inset:-64px 0 auto;-webkit-mask-image:linear-gradient(#000 30%,#0000);mask-image:linear-gradient(#000 30%,#0000)}.intro{text-align:center;padding-block:22px 26px}.intro h1{max-width:20ch;font:750 clamp(2rem, 1.25rem + 3vw, 3.15rem)/1.04 var(--font-display);letter-spacing:-.035em;text-wrap:balance;margin:0 auto 12px}.intro h1 .to{color:var(--accent)}.standfirst{max-width:62ch;color:var(--ink-2);text-wrap:pretty;margin:0 auto;font-size:1.08rem;line-height:1.55}.bench{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-bench);position:relative;overflow:hidden}.panes{grid-template-columns:1fr 1fr;display:grid;position:relative}.pane{flex-direction:column;min-width:0;display:flex}.pane+.pane,.flow+.pane{border-left:1px solid var(--line)}.flow{z-index:3;background:var(--accent);width:30px;height:30px;color:var(--accent-ink);box-shadow:0 0 0 4px var(--panel), 0 6px 16px -4px var(--glow);border-radius:50%;place-items:center;margin:-15px 0 0 -15px;display:grid;position:absolute;top:66px;left:50%}.flow .i{width:15px;height:15px}.pane-bar{background:var(--sunk);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;min-height:48px;padding:7px 10px 7px 0;display:flex}.tab{background:var(--panel);border-right:1px solid var(--line);box-shadow:inset 0 2px 0 var(--ink-3);font:500 .82rem/1 var(--font-mono);color:var(--ink);white-space:nowrap;flex:none;align-self:stretch;align-items:center;gap:8px;margin:-7px 0 -8px;padding:0 16px 0 14px;display:inline-flex}.pane.out .tab{box-shadow:inset 0 2px 0 var(--accent)}.tab .i{color:var(--ink-3);width:14px;height:14px}.pane.out .tab .i{color:var(--accent)}.tab-name{text-overflow:ellipsis;max-width:18ch;overflow:hidden}.tab .kind{background:var(--sunk);color:var(--ink-2);letter-spacing:.04em;border-radius:5px;padding:3px 6px;font-size:.68rem;font-weight:600}.pane.out .tab .kind{background:var(--accent-soft);color:var(--accent)}.actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:2px;display:flex}.btn{border-radius:var(--radius-sm);height:32px;color:var(--ink-2);font:500 .84rem/1 var(--font-body);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:0 10px;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s,transform .1s;display:inline-flex}.btn:hover{color:var(--ink);background:var(--panel);border-color:var(--line)}.btn:active{transform:translateY(1px)}.btn .i{opacity:.85}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 1px 0 #ffffff26 inset, 0 2px 6px -2px var(--glow);padding:0 13px;font-weight:600}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-ink)}.btn .i-check{display:none}.btn[data-done="1"]{background:var(--ok);border-color:var(--ok);color:#fff}.btn[data-done="1"] .i-copy{display:none}.btn[data-done="1"] .i-check{display:block}.editor{background:var(--panel);grid-template-columns:auto 1fr;height:clamp(280px,100vh - 400px,540px);display:grid;position:relative}.gutter{text-align:right;user-select:none;min-width:46px;color:var(--ink-3);background:var(--panel);font:400 var(--code-size)/var(--code-lh) var(--font-mono);font-variant-numeric:tabular-nums;padding:16px 10px 16px 14px;overflow:hidden}.gutter-inner{white-space:pre;will-change:transform}.stack{min-width:0;position:relative;overflow:hidden}.hl,.code{font:400 var(--code-size)/var(--code-lh) var(--font-mono);letter-spacing:0;tab-size:2;white-space:pre;word-wrap:normal;overflow-wrap:normal;border:0;margin:0;padding:16px 18px 16px 8px;position:absolute;inset:0}.hl{z-index:1;pointer-events:none;color:var(--ink);background:0 0;overflow:hidden}.hl code{font:inherit;will-change:transform;background:0 0;border:0;padding:0;display:block}.code{z-index:2;resize:none;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;color:#0000;width:100%;height:100%;caret-color:var(--ink);-webkit-text-fill-color:transparent;background:0 0;outline:none;overflow:auto}.code::selection{background:var(--sel);-webkit-text-fill-color:transparent}.code::placeholder{color:var(--ink-3);-webkit-text-fill-color:var(--ink-3)}.plain .code{color:var(--ink);-webkit-text-fill-color:var(--ink)}.plain .hl{display:none}.stack:focus-within{box-shadow:inset 0 0 0 2px var(--accent-soft)}.mark{z-index:0;height:calc(var(--code-size) * var(--code-lh));background:var(--err-soft);box-shadow:inset 3px 0 0 var(--err);pointer-events:none;position:absolute;top:0;left:0;right:0}.stale .stack{opacity:.45;filter:saturate(.4);transition:opacity .2s}.drop-hint{z-index:4;border:2px dashed var(--accent);background:color-mix(in srgb, var(--accent-soft) 92%, transparent);color:var(--ink);pointer-events:none;border-radius:12px;place-content:center;justify-items:center;gap:8px;font-weight:600;display:grid;position:absolute;inset:12px}.drop-hint .i{width:28px;height:28px;color:var(--accent)}.k{color:var(--syn-key)}.s{color:var(--syn-str)}.n{color:var(--syn-num)}.d{color:var(--syn-date)}.b{color:var(--syn-bool)}.h{color:var(--syn-head);font-weight:700}.c{color:var(--syn-com);font-style:italic}.p{color:var(--syn-punct)}.statusline{border-top:1px solid var(--line);background:var(--sunk);min-height:46px;color:var(--ink-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:7px 12px;font-size:.84rem;display:flex}.status{flex:320px;align-items:center;gap:10px;min-width:0;display:flex}.status-side{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.chip{font:600 .74rem/1.2 var(--font-mono);letter-spacing:.01em;border-radius:999px;flex:none;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.chip:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.chip.ok{color:var(--ok);background:var(--ok-soft)}.chip.warn{color:var(--warn);background:var(--warn-soft)}.chip.err{color:var(--err);background:var(--err-soft)}.chip.idle{color:var(--ink-2);background:var(--panel);border:1px solid var(--line)}.status-msg{color:var(--ink);overflow-wrap:anywhere;min-width:0}.linkish{color:var(--accent);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.meta{font:400 .78rem/1 var(--font-mono);white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink-2)}.opt{white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.opt select{border:1px solid var(--line);cursor:pointer;background:var(--panel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23889' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M4.5 6.5 8 10l3.5-3.5'/%3E%3C/svg%3E") no-repeat right 7px center / 14px;height:30px;color:var(--ink);font:500 .8rem/1 var(--font-mono);-webkit-appearance:none;appearance:none;border-radius:7px;padding:0 28px 0 9px}.opt select:hover{border-color:var(--line-strong)}.warnings{border-top:1px solid color-mix(in srgb, var(--warn) 25%, var(--line));background:var(--warn-soft);max-height:148px;color:var(--ink);font:400 .8rem/1.6 var(--font-mono);margin:0;padding:10px 14px 12px 34px;overflow:auto}.errblock{white-space:pre;border-top:1px solid color-mix(in srgb, var(--err) 25%, var(--line));background:var(--err-soft);max-height:160px;color:var(--ink);font:400 .8rem/1.55 var(--font-mono);font-variant-ligatures:none;margin:0;padding:10px 14px;overflow:auto}.warnings li::marker{color:var(--warn)}.warnings li+li{margin-top:3px}.hint{color:var(--ink-2);text-align:center;margin:12px 4px 0;font-size:.85rem}kbd{text-align:center;border:1px solid var(--line-strong);background:var(--panel);min-width:1.6em;color:var(--ink);border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-size:.74rem;line-height:1.5;display:inline-block}.features{grid-template-columns:repeat(4,1fr);gap:12px;margin:36px 0 0;padding:0;list-style:none;display:grid}.features li{border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 75%, transparent);border-radius:12px;align-items:flex-start;gap:12px;padding:16px;display:flex}.features .ico{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:9px;flex:none;place-items:center;display:grid}.features strong{font:650 .95rem/1.3 var(--font-display);color:var(--ink);display:block}.features span{color:var(--ink-2);margin-top:2px;font-size:.84rem;line-height:1.45;display:block}.content{padding-block:64px 88px}.content section+section{margin-top:64px}.content h2{font:720 clamp(1.45rem, 1.2rem + .9vw, 1.75rem)/1.2 var(--font-display);letter-spacing:-.025em;text-wrap:balance;margin:0 0 14px}.content h3{font:650 1.13rem/1.35 var(--font-display);letter-spacing:-.012em;text-wrap:balance;margin:32px 0 8px}.content p,.content ul{margin:0 0 14px}.content p{text-wrap:pretty}.content ul{padding-left:1.2em}.content li+li{margin-top:6px}.content li::marker{color:var(--accent)}figure.example{margin:0}.prose .wide{margin-inline:calc(50% + -1*min(520px,50vw - 16px))}.example-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.example-grid>div{border:1px solid var(--line);background:var(--panel);border-radius:12px;min-width:0;overflow:hidden}.example-label{border-bottom:1px solid var(--line);background:var(--sunk);font:600 .78rem/1 var(--font-mono);color:var(--ink-2);align-items:center;gap:8px;padding:9px 14px;display:flex}.example-label:before{content:"";background:var(--ink-3);border-radius:50%;width:7px;height:7px}.example-grid>div:last-child .example-label:before{background:var(--accent)}pre.block{font:400 .8rem/1.65 var(--font-mono);color:var(--ink);background:0 0;margin:0;padding:14px 16px;overflow-x:auto}pre.block code{font-size:inherit;background:0 0;border:0;padding:0}figcaption{color:var(--ink-2);margin-top:12px;font-size:.93rem}.table-wrap{border:1px solid var(--line);background:var(--panel);border-radius:12px;margin:6px 0 10px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.94rem}caption{caption-side:top;text-align:left;color:var(--ink-2);border-bottom:1px solid var(--line);padding:13px 16px 11px;font-size:.9rem}th,td{text-align:left;vertical-align:top;border-top:1px solid var(--line);padding:11px 16px}thead th{font:650 .72rem/1.3 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);background:var(--sunk);border-top:0}tbody tr:hover{background:color-mix(in srgb, var(--accent-soft) 35%, transparent)}td code{white-space:nowrap}td.note{color:var(--ink-2)}.changes{gap:10px;list-style:none;display:grid;padding:0!important}.changes li{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:13px 16px 13px 46px;position:relative;margin:0!important}.changes li:before{content:"";background:var(--accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23889' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 8h8'/%3E%3C/svg%3E") center / 11px no-repeat;width:18px;height:18px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 30%, transparent);border-radius:50%;position:absolute;top:17px;left:16px}.uses{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;list-style:none;display:grid;padding:0!important}.uses li{border:1px solid var(--line);background:var(--panel);transition:border-color .15s, transform .15s var(--ease);border-radius:12px;padding:14px 16px;margin:0!important}.uses li:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));transform:translateY(-1px)}.uses strong{font:650 .9rem/1.3 var(--font-mono);align-items:center;gap:8px;display:flex}.uses strong:before{content:"";background:var(--accent);border-radius:2px;width:8px;height:8px}.uses span{color:var(--ink-2);margin-top:4px;font-size:.88rem;display:block}.callout{border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));background:color-mix(in srgb, var(--accent-soft) 55%, var(--panel));border-radius:12px;gap:14px;margin:4px 0 16px;padding:18px 20px;display:flex}.callout .i{width:22px;height:22px;color:var(--accent);margin-top:3px}.callout p{margin:0}.site-footer{border-top:1px solid var(--line);background:var(--sunk);color:var(--ink-2);font-size:.9rem}.footer-grid{grid-template-columns:2fr 1fr 1fr;gap:28px;padding-block:40px 28px;display:grid}.footer-about p{max-width:40ch;margin:12px 0 0}.site-footer nav{flex-direction:column;gap:8px;display:flex}.site-footer h2{font:650 .72rem/1.3 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);margin:0 0 4px}.site-footer nav a{color:var(--ink-2);text-decoration:none}.site-footer nav a:hover{color:var(--accent);text-decoration:underline}.footer-base{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding-block:16px 24px;font-size:.82rem;display:flex}.page-title{font:750 clamp(1.9rem, 1.4rem + 2vw, 2.5rem)/1.1 var(--font-display);letter-spacing:-.03em;margin:8px 0 16px}.hl,.hl code,.code,.gutter,pre.block,pre.block code,.meta,.chip,.tab,kbd,code,select{font-variant-ligatures:none;font-feature-settings:"liga" 0, "calt" 0}@media (width<=1100px){.features{grid-template-columns:repeat(2,1fr)}}@media (width>=901px) and (width<=1180px){.tab .kind,.js-only.mid-hide,.btn .lbl-opt{display:none}}@media (width<=900px){.panes{grid-template-columns:1fr}.pane+.pane,.flow+.pane{border-left:0;border-top:1px solid var(--line)}.flow{display:none}.editor{height:40vh;min-height:220px}.example-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.footer-about{grid-column:1/-1}}@media (width<=560px){.intro{padding-block:10px 18px}.standfirst{font-size:1rem}.features{grid-template-columns:1fr}.btn .lbl-opt,.header-end .lbl-opt,.theme-lbl,.brand-tld{display:none}.sister,.theme-btn{padding:0 10px;font-size:.85rem}.intro h1{font-size:2rem}.btn{padding:0 8px}.pane-bar{flex-wrap:wrap;padding-left:0}.tab{margin-bottom:-7px}.status{flex-basis:100%}.bench{border-radius:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media print{.site-header,.bench,.hint,.features,.site-footer{display:none}}.site-footer nav{gap:2px}.site-footer nav a{align-items:center;min-height:28px;display:inline-flex}.footer-about a,.footer-base a{padding-block:3px;display:inline-block}.site-footer .brand{align-items:center;min-height:28px;display:inline-flex}.example-grid>div{flex-direction:column;display:flex}.example-grid pre.block{flex:1}pre.block.wrap{white-space:pre-wrap;overflow-wrap:anywhere}:root{--paper:#f5f8f7;--panel:#fff;--sunk:#edf3f1;--line:#d9e3e0;--line-strong:#bfcfcb;--ink:#0b1715;--ink-2:#445753;--ink-3:#74867f;--accent:#0a7c74;--accent-hover:#075f59;--accent-ink:#fff;--accent-soft:#dcf1ed;--accent-bright:#3fd2c3;--glow:#0a7c7424;--sel:#0a7c7438;--logo-bg:#0b1715;--logo-fg:#e7f5f2}:root[data-theme=dark]{--paper:#081110;--panel:#0d1918;--sunk:#0a1514;--line:#1c2d2a;--line-strong:#2a403c;--ink:#e3efec;--ink-2:#9db4ae;--ink-3:#5f7772;--accent:#38d1c1;--accent-hover:#6ae2d6;--accent-ink:#02221f;--accent-soft:#0f2f2b;--accent-bright:#0a7c74;--glow:#38d1c11f;--sel:#38d1c147;--logo-bg:#e3efec;--logo-fg:#081110}
