:root{--scheme: light;color-scheme:light;--desk: oklch(.915 .008 210);--paper: oklch(.982 .004 165);--paper-2: oklch(.996 .002 165);--band: oklch(.945 .028 158);--ink: oklch(.25 .02 260);--ink-2: oklch(.47 .02 260);--perf: oklch(.74 .015 260);--rule: oklch(.6 .02 260);--accent: oklch(.49 .17 262);--on-accent: oklch(.99 .004 92);--accent-ink: oklch(.47 .16 262);--ok: oklch(.47 .12 152);--warn: oklch(.5 .11 65);--err: oklch(.51 .18 27);--cell: oklch(.47 .12 262 / .22);--hl-key: oklch(.47 .16 262);--hl-str: oklch(.45 .11 152);--hl-num: oklch(.5 .12 60);--hl-com: oklch(.47 .02 260);--ring: oklch(.49 .17 262);--shadow: 0 1px 1px oklch(.4 .02 220 / .08), 0 4px 10px oklch(.4 .02 220 / .08), 0 18px 40px oklch(.4 .02 220 / .08)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--scheme: dark;color-scheme:dark;--desk: oklch(.17 .034 166);--paper: oklch(.215 .042 166);--paper-2: oklch(.245 .044 166);--band: oklch(.262 .056 160);--ink: oklch(.94 .012 160);--ink-2: oklch(.8 .022 160);--perf: oklch(.44 .04 166);--rule: oklch(.62 .035 166);--accent: oklch(.76 .12 262);--on-accent: oklch(.2 .03 262);--accent-ink: oklch(.8 .1 262);--ok: oklch(.8 .13 152);--warn: oklch(.84 .12 85);--err: oklch(.76 .14 25);--cell: oklch(.8 .1 262 / .2);--hl-key: oklch(.8 .1 262);--hl-str: oklch(.8 .11 152);--hl-num: oklch(.84 .11 80);--hl-com: oklch(.76 .022 160);--ring: oklch(.8 .1 262);--shadow: 0 0 0 1px oklch(1 0 0 / .06)}}:root[data-theme=dark]{--scheme: dark;color-scheme:dark;--desk: oklch(.17 .034 166);--paper: oklch(.215 .042 166);--paper-2: oklch(.245 .044 166);--band: oklch(.262 .056 160);--ink: oklch(.94 .012 160);--ink-2: oklch(.8 .022 160);--perf: oklch(.44 .04 166);--rule: oklch(.62 .035 166);--accent: oklch(.76 .12 262);--on-accent: oklch(.2 .03 262);--accent-ink: oklch(.8 .1 262);--ok: oklch(.8 .13 152);--warn: oklch(.84 .12 85);--err: oklch(.76 .14 25);--cell: oklch(.8 .1 262 / .2);--hl-key: oklch(.8 .1 262);--hl-str: oklch(.8 .11 152);--hl-num: oklch(.84 .11 80);--hl-com: oklch(.76 .022 160);--ring: oklch(.8 .1 262);--shadow: 0 0 0 1px oklch(1 0 0 / .06)}:root{--font-sans: "Archivo", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;--font-mono: "Iosevka Charon Mono", "Noto Sans TC", ui-monospace, monospace;--font-display: "Iansui", "Archivo", "Noto Sans TC", sans-serif;--fs-sm: .875rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-h3: 1.25rem;--fs-h2: clamp(2rem, 1.6rem + 1.2vw, 2.5rem);--fs-h1: clamp(2.625rem, 1.3rem + 4.4vw, 5rem);--gut: clamp(20px, 4vw, 56px);--sec-y: clamp(4rem, 2.6rem + 4vw, 6.5rem);--r: 4px;--tool-h: 36px;--dur-press: .11s;--dur-hover: .15s;--dur-enter: .36s;--ease-out: cubic-bezier(.2, 0, 0, 1)}*,*:before,*:after{box-sizing:border-box}html{background:var(--desk);-webkit-text-size-adjust:100%;scroll-padding-top:76px}body{margin:0;background:var(--desk);color:var(--ink);font:400 var(--fs-md)/1.75 var(--font-sans);letter-spacing:.02em;-webkit-tap-highlight-color:transparent}:root:lang(zh-Hant){text-autospace:normal;line-break:strict;font-synthesis-style:none}h1,h2,h3{margin:0;line-height:1.25;letter-spacing:0;text-wrap:balance}:is(pre,code,kbd,samp,.mono):lang(zh-Hant),:is(pre,code,kbd,samp,.mono) :lang(zh-Hant){text-autospace:no-autospace}p{margin:0}a{color:var(--accent-ink);text-underline-offset:3px;text-decoration-thickness:1px}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}::selection{background:color-mix(in oklch,var(--accent) 28%,transparent)}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip{position:absolute;left:12px;top:-60px;z-index:50;background:var(--ink);color:var(--paper);padding:8px 14px;border-radius:var(--r)}.skip:focus{top:12px}.mono,code,kbd,samp,pre{font-family:var(--font-mono);font-variant-ligatures:none;font-variant-numeric:tabular-nums;text-spacing-trim:space-all;text-autospace:no-autospace;letter-spacing:0}code,samp{font-size:var(--fs-sm)}p code,li code,td code{background:color-mix(in oklch,var(--accent) 8%,transparent);padding:0 .3em;border-radius:2px}kbd{font-size:var(--fs-sm);border:1px solid var(--rule);border-bottom-width:2px;border-radius:2px;padding:0 .4em;background:var(--paper-2)}time,.num{font-variant-numeric:tabular-nums}.sheet{--hole: color-mix(in oklch, var(--desk) 60%, var(--paper));--hole-rim: color-mix(in oklch, var(--perf) 45%, var(--paper));max-width:1320px;margin:0 auto;min-height:100vh;background:radial-gradient(circle at 7px 24px,var(--hole) 0 2.5px,var(--hole-rim) 2.9px 3.4px,transparent 3.9px) left top / 14px 48px repeat-y,radial-gradient(circle at 7px 24px,var(--hole) 0 2.5px,var(--hole-rim) 2.9px 3.4px,transparent 3.9px) right top / 14px 48px repeat-y,var(--paper)}@media(min-width:1100px){.sheet{--strip: 44px;padding-inline:var(--strip);box-shadow:var(--shadow);background:repeating-linear-gradient(to bottom,var(--hole-rim) 0 5px,transparent 5px 10px) left var(--strip) top 0 / 1px 100% no-repeat,repeating-linear-gradient(to bottom,var(--hole-rim) 0 5px,transparent 5px 10px) right var(--strip) top 0 / 1px 100% no-repeat,radial-gradient(circle at 50% 24px,var(--hole) 0 4px,var(--hole-rim) 4.4px 5px,transparent 5.6px) left top / var(--strip) 48px repeat-y,radial-gradient(circle at 50% 24px,var(--hole) 0 4px,var(--hole-rim) 4.4px 5px,transparent 5.6px) right top / var(--strip) 48px repeat-y,var(--paper)}}.site-head{position:sticky;top:0;z-index:20;background:var(--paper);border-bottom:1px dashed var(--perf)}.head-in{display:flex;align-items:center;gap:clamp(8px,2.6vw - 2px,16px);padding:10px var(--gut);min-height:64px}.brand{display:inline-flex;white-space:nowrap;align-items:center;gap:8px;color:var(--ink);text-decoration:none;margin-right:auto}.brand-mark{width:28px;height:28px;fill:none;stroke:var(--ink);stroke-width:2}.brand-mark circle{fill:var(--accent);stroke:none}.brand-mark .ring{fill:none;stroke:var(--accent);stroke-width:2.6}.brand-zh{font-family:var(--font-display);font-weight:400;font-synthesis-weight:none;font-size:var(--fs-h3);letter-spacing:.04em}.brand-en{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--ink-2)}.nav ul{display:flex;gap:4px;list-style:none;margin:0;padding:0}.nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;color:var(--ink);text-decoration:none;border-radius:var(--r);transition:background-color var(--dur-hover) var(--ease-out)}.nav-toggle{display:none}@media(max-width:880px){.nav-toggle{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;white-space:nowrap;background:none;border:1px solid var(--rule);border-radius:var(--r);cursor:pointer;font-size:var(--fs-sm)}.nav ul{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;background:var(--paper);border-bottom:1px dashed var(--perf);padding:6px var(--gut) 14px}.nav ul.open{display:flex}}main>section{padding-inline:var(--gut)}.hero{--mfs: clamp(10.5px, calc((100vw - 2 * var(--gut)) / 26.5), 14px);--print-w: calc(var(--mfs) * 40);--term-mt: clamp(18px, .6rem + 1.4vw, 30px);--aside-gap: 40px;position:relative;isolation:isolate;overflow-x:clip;display:grid;grid-template-columns:minmax(0,1fr);align-items:start;padding-block:clamp(1.5rem,.9rem + 1.8vw,2.5rem) clamp(2.25rem,1.5rem + 2vw,3.25rem)}.hero>*{min-width:0}.kicker{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;color:var(--ink-2);font-size:var(--fs-md);margin-bottom:12px}.kicker .mono{font-size:var(--fs-sm);color:var(--ink);border:1px solid var(--rule);border-radius:2px;padding:0 6px;line-height:1.6}h1{font-family:var(--font-display);font-size:var(--fs-h1);font-weight:400;font-synthesis-weight:none;line-height:1.12}.nb{display:inline-block}.plain{margin-top:14px;font-size:var(--fs-md);line-height:1.7;max-width:52em;text-wrap:wrap}.lead{margin-top:18px;font-size:var(--fs-md);color:var(--ink-2);max-width:34em;text-wrap:wrap}@media(min-width:640px){.hero{--mfs: clamp(14px, calc((100vw - 2 * var(--gut)) / 41), 17px)}}@media(min-width:1000px){.hero{--mfs: 19px;--term-mt: clamp(24px, 6vh - 14px, 42px)}.plain{font-size:1.25rem;margin-top:16px;max-width:none}}@media(min-width:1240px){.hero{--mfs: 20px}}.hero-foot{display:grid;grid-template-columns:minmax(0,1fr);margin-top:22px}.install{display:grid;grid-template-columns:minmax(0,1fr)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--perf)}.tabs [role=tab]{appearance:none;background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;min-height:40px;padding:0 12px;cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-md);color:var(--ink-2);transition:color var(--dur-hover) var(--ease-out),border-color var(--dur-hover) var(--ease-out)}.tabs [role=tab][aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}.install-line{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch;margin-top:12px}.install-line code{flex:1 1 0;min-width:0;display:flex;align-items:center;min-height:48px;padding:0 14px;background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--r);font-size:var(--fs-md);white-space:nowrap;overflow-x:auto}.prompt{color:var(--accent-ink);white-space:pre}.install-meta{order:3;margin-top:8px;color:var(--ink-2)}.install-meta .mono{color:var(--ink)}.alt a{display:inline-flex;align-items:center;min-height:44px}.alt-try{margin-top:4px}.arrow:after{content:"\2192";margin-left:.35em}@media(min-width:1000px){.hero-foot{margin-top:clamp(24px,5vh - 10px,36px);grid-template-columns:minmax(0,35rem) minmax(0,1fr);column-gap:clamp(40px,5vw,80px)}.hero-foot .install{grid-column:1;grid-row:1;grid-template-columns:auto minmax(0,1fr)}.hero-foot .alt-try{grid-column:1;grid-row:2}.hero-foot .lead{grid-column:2;grid-row:1;align-self:end;margin-top:0}.hero-foot .alt-team{grid-column:2;grid-row:2;margin-top:4px}.install .install-line{grid-column:1 / -1}.install-meta{order:0;margin:0;align-self:end;text-align:right;line-height:40px;white-space:nowrap;border-bottom:1px solid var(--perf);padding-left:16px}}.install-line .btn{flex:none}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border-radius:var(--r);font-weight:700;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:background-color var(--dur-hover) var(--ease-out),translate var(--dur-press) var(--ease-out),color var(--dur-hover) var(--ease-out)}.btn:active{translate:0 1px}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-outline{background:transparent;color:var(--ink);border-color:var(--ink)}.btn-text{background:none;color:var(--accent-ink);padding-inline:8px;font-weight:400;text-decoration:underline;text-underline-offset:3px}.tool{appearance:none;background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--r);min-height:var(--tool-h);padding:0 10px;cursor:pointer;font-size:var(--fs-sm);color:var(--ink);transition:background-color var(--dur-hover) var(--ease-out)}.tool[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.term{margin:var(--term-mt) 0 0;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"cap tools" "paper paper";align-items:center;column-gap:12px}.term figcaption{grid-area:cap;display:flex;flex-direction:column;gap:0 12px;line-height:1.5}.term-desc{color:var(--ink-2)}.term-tools{grid-area:tools;display:flex;gap:6px}.term-paper{grid-area:paper;margin-top:10px;min-width:0}.ruler,.term-body .ln{font-family:var(--font-mono);font-size:var(--mfs);line-height:1.7;letter-spacing:0;font-variant-ligatures:none;white-space:pre}.ruler{overflow:hidden;color:var(--ink-2);border-bottom:1px dotted var(--perf)}.ruler .ln{display:block;width:max-content}.term-body .row{position:relative;margin:0}.term-body .row:nth-child(2n):before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:calc(var(--band-in, 0px) - var(--gut));right:calc(var(--band-in, 0px) - var(--gut));background:var(--band)}.term-body .ln{display:block}.term-body .cmd:before{content:"$ ";color:var(--accent-ink)}.term-body .ty{display:inline-block;vertical-align:top}.term-body .sum{color:var(--ink-2)}.gloss{display:block;padding:0 0 4px calc(var(--mfs) * 4.5);margin-top:-2px;font-size:max(13px,calc(var(--mfs) * .92));line-height:1.5;color:var(--ink-2)}.term.show-cells .ln{background-image:linear-gradient(to right,var(--cell) 1px,transparent 1px),linear-gradient(to bottom,var(--cell) 1px,transparent 1px);background-size:1ch 100%,100% 100%}.s-ok{color:var(--ok);font-weight:700}.s-warn{color:var(--warn);font-weight:700}.s-err{color:var(--err);font-weight:700}.term-note{margin-top:14px;color:var(--ink-2);max-width:44em}@media(max-width:1099px){.hero{--band-in: 14px}.term-body .row{padding-block:3px}}@media(min-width:1000px){.term figcaption{flex-direction:row;align-items:baseline}.term-paper{margin-top:8px}.term-body .row{display:flex;align-items:baseline}.term-body .ln{flex:none;width:55ch}.gloss{flex:1;padding:0;margin:0;font-size:min(1rem,calc(var(--mfs) * .85));line-height:1.7;white-space:nowrap}}@media(min-width:1200px){.hero{grid-template-columns:var(--print-w) minmax(0,1fr);column-gap:var(--aside-gap)}.hero>*{grid-column:1 / -1}.hero .term{grid-row:4;grid-template-columns:var(--print-w) minmax(0,1fr);grid-template-areas:"cap tools" "paper .";column-gap:var(--aside-gap);align-items:end}.term-tools{justify-self:start}.term-body .row:nth-child(2n):before{right:-100vw}.hero .term-note{grid-row:4;grid-column:2;align-self:start;margin:calc(var(--term-mt) + var(--tool-h) + 8px + var(--mfs) * 1.7 + 1px) 0 0;line-height:calc(var(--mfs) * 1.7);max-width:19em}}@media(prefers-reduced-motion:reduce){.term-toggle{display:none}}@keyframes print-l{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes gloss-in{0%{opacity:0}}@media(prefers-reduced-motion:no-preference){.hero h1{animation:print-l .24s linear backwards}.hero .plain{animation:print-l .34s .12s linear backwards}.term .ty{animation:print-l 1.04s .55s steps(40,end) backwards}.term .row .ln:not(.cmd),.term .gloss{animation:print-l .14s var(--at, 0s) linear backwards}.term .gloss{animation-name:gloss-in;animation-duration:.2s}.term .row:nth-child(2){--at: 1.85s}.term .row:nth-child(3){--at: 2.12s}.term .row:nth-child(4){--at: 2.39s}.term .row:nth-child(5){--at: 2.66s}.term .row:nth-child(6){--at: 2.93s}.term .gloss{animation-delay:calc(var(--at) + .12s)}.term.replay-reset *{animation:none!important}}@media(pointer:coarse){:root{--tool-h: 44px}.tabs [role=tab]{min-height:44px}}@media(hover:hover)and (pointer:fine){a:hover{text-decoration-thickness:2px}.nav a:hover{background:color-mix(in oklch,var(--ink) 7%,transparent)}.btn-primary:hover{background:oklch(from var(--accent) calc(l - .05) c h)}.btn-outline:hover{background:color-mix(in oklch,var(--ink) 7%,transparent)}.tool:hover{background:color-mix(in oklch,var(--ink) 7%,var(--paper-2))}.tool[aria-pressed=true]:hover{background:color-mix(in oklch,var(--ink) 86%,var(--paper-2))}.res:hover{background:color-mix(in oklch,var(--accent) 10%,transparent)}}.sec{padding-block:var(--sec-y);border-top:1px dashed var(--perf)}.sec-head{max-width:46rem;margin-bottom:36px}.cmdline{font-family:var(--font-mono);font-size:var(--fs-md);color:var(--ink-2);margin-bottom:10px;text-spacing-trim:space-all}h2{font-family:var(--font-display);font-size:var(--fs-h2);font-weight:400;font-synthesis-weight:none;line-height:1.2}h3{font-size:var(--fs-h3);font-weight:700}.sec-lead{margin-top:14px;font-size:var(--fs-lg);max-width:38em}.rules{width:100%;border-collapse:collapse}.rules thead th{text-align:left;font-size:var(--fs-sm);font-weight:700;color:var(--ink-2);padding:8px 12px;border-bottom:1px solid var(--rule)}.rules tbody th,.rules td{text-align:left;vertical-align:top;padding:14px 12px;font-weight:400}.rules tbody tr:nth-child(odd){background:var(--band)}.rules tbody th code{background:none;padding:0;font-size:var(--fs-md);font-weight:700;color:var(--ink);white-space:nowrap}.rules td:nth-child(3){max-width:30em}.rules td:last-child{white-space:nowrap}.rules samp{font-size:var(--fs-md)}.to{color:var(--ink-2);margin:0 .6em;font-family:var(--font-mono);font-size:var(--fs-md)}.manual{color:var(--warn)}.lv{font-family:var(--font-mono);font-size:var(--fs-sm);padding:0 6px;border:1px solid currentColor;border-radius:2px}.lv-err{color:var(--err)}.lv-warn{color:var(--warn)}@media(max-width:760px){.rules thead{display:none}.rules,.rules tbody,.rules tr,.rules th,.rules td{display:block}.rules tbody tr{padding:14px 12px;display:grid;grid-template-columns:1fr auto;gap:6px 12px}.rules tbody th,.rules td{padding:0}.rules td:nth-child(3),.rules td:last-child{grid-column:1 / -1}.rules td:last-child{white-space:normal}}.play{display:grid;gap:28px}@media(min-width:1000px){.play{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-areas:"ed rep" "cfg rep";gap:28px 40px;align-items:start}.editor{grid-area:ed}.report{grid-area:rep}.cfg{grid-area:cfg}}.editor{border:1px solid var(--rule);border-radius:var(--r);background:var(--paper-2);min-width:0}.ed-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px dotted var(--perf);font-size:var(--fs-sm)}.ed-bar label{font-size:var(--fs-sm)}.ed-count{color:var(--ink-2)}.ed-wrap{display:grid;grid-template-columns:auto minmax(0,1fr)}.ed-wrap{--ed-fs: 16px}.gutter,#src{font-family:var(--font-mono);font-size:var(--ed-fs);line-height:1.5;padding-block:12px}.gutter{margin:0;padding-inline:1.5ch 1ch;color:var(--ink-2);text-align:right;user-select:none;overflow:hidden;border-right:1px dotted var(--perf);height:100%;max-height:calc(16 * 1.5 * var(--ed-fs) + 24px)}#src{display:block;width:100%;min-height:calc(16 * 1.5 * var(--ed-fs) + 24px);height:calc(16 * 1.5 * var(--ed-fs) + 24px);padding-inline:1.5ch;border:0;background:transparent;resize:none;white-space:pre;overflow:auto;tab-size:2;font-variant-ligatures:none;text-spacing-trim:space-all;text-autospace:no-autospace;letter-spacing:0}#src:focus-visible{outline-offset:-2px}.ed-actions{display:flex;flex-wrap:wrap;gap:8px;padding:12px;border-top:1px dotted var(--perf)}.report{min-width:0}.report-h{font-size:var(--fs-h3)}.summary{margin-top:8px}.results{list-style:none;margin:14px 0 0;padding:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);overflow-x:auto}.results li:nth-child(2n){background:var(--band)}.res{position:relative;display:block;width:100%;min-width:max-content;text-align:left;background:none;border:0;margin:0;padding:8px 1ch;min-height:40px;cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-md);line-height:1.5;white-space:pre;letter-spacing:0;text-spacing-trim:space-all;text-autospace:no-autospace;transition:background-color var(--dur-hover) var(--ease-out)}.res:focus-visible,.term-body:focus-visible,.code-body pre:focus-visible,.results:focus-visible{outline-offset:-2px}.results .empty{padding:10px 1ch;font-family:var(--font-mono);font-size:var(--fs-md)}.legend{margin-top:10px;color:var(--ink-2)}.exit{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;margin-top:14px;padding:10px 1ch 10px calc(1ch + 2px);border-left:3px solid var(--rule);background:var(--paper-2)}.exit-code{font-family:var(--font-mono);font-weight:700;font-size:var(--fs-sm);letter-spacing:0;white-space:nowrap}.exit.is-fail{border-left-color:var(--err)}.exit.is-fail .exit-code{color:var(--err)}.exit.is-pass{border-left-color:var(--ok)}.exit.is-pass .exit-code{color:var(--ok)}.levels{margin-top:32px;padding-top:20px;border-top:1px dotted var(--perf)}.levels-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px}.levels-head .btn-text{min-height:44px;font-size:var(--fs-sm)}.lv-list{margin-top:12px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.lv-row{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:8px 1ch}@media(min-width:560px){.lv-list{display:grid;grid-template-columns:minmax(0,1fr) auto}.lv-row{grid-column:1 / -1;display:grid;grid-template-columns:subgrid;align-items:center;gap:12px}.lv-row .seg{justify-self:start}}.lv-row:nth-child(odd){background:var(--band)}.lv-name{color:var(--ink-2)}.lv-name code{background:none;padding:0;margin-right:4px;color:var(--ink);font-weight:700}.seg{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--rule);border-radius:var(--r);background:var(--paper-2)}.seg label{position:relative;display:inline-flex;cursor:pointer}.seg input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.seg input+span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:36px;padding:0 10px;border-radius:2px;color:var(--ink);transition:background-color var(--dur-press) var(--ease-out),color var(--dur-press) var(--ease-out)}.seg input:checked+span{background:var(--ink);color:var(--paper);font-weight:700}.seg input:focus-visible+span{outline:2px solid var(--ring);outline-offset:1px}.seg .mono{font-size:var(--fs-sm);color:inherit}@media(hover:hover)and (pointer:fine){.seg input:not(:checked):hover+span{background:color-mix(in oklch,var(--ink) 8%,transparent)}}.cfg{margin:0}.cfg .lang{font-size:var(--fs-sm)}.cfg-note{padding:10px 12px;border-top:1px dotted var(--perf);color:var(--ink-2)}@media(max-width:520px){.res,.results .empty{font-size:14px}}@media(max-width:520px){.res{min-width:0;white-space:pre-wrap;overflow-wrap:anywhere;padding-inline-start:4ch;text-indent:-3ch}}.ascii-wrap{container-type:inline-size;max-width:44rem;margin:0 0 40px;padding:20px 0;border-block:1px dotted var(--perf)}.ascii{margin:0;white-space:pre;line-height:1.5;color:var(--ink);font-size:min(17px,calc(100cqi / (var(--cols) * .5)))}.code-tabs{max-width:52rem}.code{margin:12px 0 0;border:1px solid var(--rule);border-radius:var(--r);background:var(--paper-2);min-width:0}.code[hidden]{display:none}.code .code-cap{display:flex;align-items:center;gap:12px;padding:6px 8px 6px 12px;border-bottom:1px dotted var(--perf);font-size:var(--fs-sm)}.code .code-cap .mono{font-size:var(--fs-sm)}.code .lang{margin-left:auto;color:var(--ink-2)}.code-body{display:grid;grid-template-columns:auto minmax(0,1fr)}.code-body pre{margin:0;padding:14px 2ch 16px;font-size:var(--fs-md);line-height:1.6;overflow-x:auto}.code-body code{font-size:inherit;background:none;padding:0}.ln-nums{color:var(--ink-2);text-align:right;user-select:none;padding-inline:1.5ch 1ch!important;border-right:1px dotted var(--perf)}::highlight(code-kw){color:var(--hl-key)}::highlight(code-str){color:var(--hl-str)}::highlight(code-num){color:var(--hl-num)}::highlight(code-com){color:var(--hl-com)}@media(max-width:520px){.code-body pre{font-size:13px;padding-inline:1ch}}.log{list-style:none;margin:0;padding:0;max-width:60rem;border-top:1px solid var(--rule)}.log li{display:grid;grid-template-columns:7rem 4.5rem 3rem minmax(0,1fr);gap:4px 16px;align-items:baseline;padding:14px 12px}.log li:nth-child(odd){background:var(--band)}.log .kind{font-weight:700}@media(max-width:640px){.log li{grid-template-columns:auto auto 1fr}.log li p{grid-column:1 / -1}}.plans{display:grid;gap:20px}@media(min-width:900px){.plans{grid-template-columns:repeat(3,minmax(0,1fr))}}.plan{display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:var(--r);padding:24px;background:var(--paper-2)}.price{margin:12px 0 16px;display:flex;flex-direction:column;font-variant-numeric:tabular-nums}.price .amt{font-size:2rem;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}.price .amt-zh,.plan h3{font-family:var(--font-display);font-weight:400;font-synthesis-weight:none}.plan h3{font-size:var(--fs-h3)}.price .per{color:var(--ink-2)}.plan ul{margin:0 0 24px;padding-left:1.2em;flex:1}.plan li+li{margin-top:6px}.plan .btn{align-self:flex-start}.form{display:grid;gap:20px 24px;max-width:52rem}@media(min-width:720px){.form{grid-template-columns:1fr 1fr}}.field{display:flex;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;border:0}.field-wide{grid-column:1 / -1}.field label,.field legend{font-weight:700}.field legend{padding:0;margin-bottom:6px}.req,.opt{font-weight:400;font-size:var(--fs-sm);color:var(--ink-2);margin-left:4px}input[type=text],input[type=email],select,.field textarea{min-height:48px;padding:10px 12px;border:1px solid var(--rule);border-radius:var(--r);background:var(--paper-2);font-size:var(--fs-md);width:100%}.field textarea{resize:vertical}input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--err);border-width:2px}.radios{display:flex;flex-wrap:wrap;gap:8px 20px}.radios label,.field .check,.check{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:400;cursor:pointer}input[type=radio],input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);margin:0}.fhint{font-size:var(--fs-sm);color:var(--ink-2)}.ferr{color:var(--err);font-weight:700}.privacy p{color:var(--ink-2);max-width:46em}.err-sum{grid-column:1 / -1;border:2px solid var(--err);border-radius:var(--r);padding:12px 16px}.err-sum p{font-weight:700;color:var(--err)}.err-sum ul{margin:6px 0 0;padding-left:1.2em}.sent{max-width:52rem}.sent-line{display:flex;flex-wrap:wrap;gap:0 1ch;padding:12px 1ch;background:var(--band);border-left:3px solid var(--ok);font-family:var(--font-mono);font-size:var(--fs-md);line-height:1.7;letter-spacing:0;font-variant-ligatures:none;text-spacing-trim:space-all;text-autospace:no-autospace}.sent-line .prompt{color:var(--accent-ink)}.sent-cmd{color:var(--ink-2)}.sent-out{flex-basis:100%;white-space:pre-wrap}.sent .btn-text{margin-top:8px}.site-foot{border-top:1px dashed var(--perf);padding:40px var(--gut) 48px}.foot-run{margin-bottom:36px}.foot-rule{font-size:var(--fs-h2);margin-bottom:12px}.foot-rule-note{max-width:38em;margin-bottom:14px}.foot-run .cmdline{margin-bottom:4px}.selfcheck{font-family:var(--font-mono);text-spacing-trim:space-all}.foot-grid{display:grid;gap:20px 32px}@media(min-width:760px){.foot-grid{grid-template-columns:1.2fr 1.2fr 1fr}}.foot-grid p+p{margin-top:4px}.foot-name{font-weight:700;font-size:var(--fs-md)}.foot-grid .check{min-height:44px}.foot-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 20px}.foot-links a{display:inline-flex;align-items:center;min-height:44px}.copy-line{margin-top:28px;color:var(--ink-2)}.scan{max-width:66rem;position:relative}.scan-stat{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 2ch;padding:8px 1ch;margin-bottom:8px;background:var(--paper);border-block:1px solid var(--rule);font-family:var(--font-mono);font-size:var(--fs-md);line-height:24px;letter-spacing:0;font-variant-ligatures:none;font-variant-numeric:tabular-nums;--sum: 16}.scan-file{color:var(--ink-2)}.scan-bar{display:inline-grid;white-space:pre}.scan-bar>span{grid-area:1 / 1}.bar-bg{color:var(--ink-2)}.bar-fg{color:var(--ok);font-weight:700;clip-path:inset(0 calc((17 - round(down,var(--sum),1))*1ch) 0 0)}.scan-cnt{counter-reset:fixed round(down,var(--sum),1)}.scan-cnt:before{content:"\5df2\4fee\6b63  " counter(fixed) "\ff0f 16"}.scan-head{display:none}.scan-doc{list-style:none;margin:0;padding:0;border-bottom:1px solid var(--rule)}.ll{display:grid;grid-template-columns:3ch minmax(0,1fr);gap:4px 1ch;padding:12px 1ch;font-family:var(--font-mono);font-size:16px;line-height:24px;letter-spacing:0;font-variant-ligatures:none;text-spacing-trim:space-all;text-autospace:no-autospace}.ll:nth-child(2n){background:var(--band)}.ll-n{color:var(--ink-2);text-align:right;user-select:none}.ll-t{display:grid;min-width:0;white-space:pre-wrap}.ll-t>span{grid-area:1 / 1}.ll .bf{display:none;user-select:none}.ll .hit{text-decoration:underline wavy var(--err) 1.5px;text-underline-offset:5px;text-decoration-skip-ink:none}.ll .fx{text-decoration:underline solid var(--ok) 2px;text-underline-offset:5px;text-decoration-skip-ink:none}.ll-a{grid-column:2;display:flex;font-size:14px;line-height:24px;overflow-x:auto}.ll-a ul{list-style:none;margin:0;padding:0}.ll-a li{white-space:pre}.mk{flex:none;width:2ch;overflow:clip;white-space:pre}.mk-in{display:flex;width:max-content}.mp,.mx{display:none}.mp{color:var(--ink-2)}.mx{color:var(--err);font-weight:700}.mo{color:var(--ok);font-weight:700}@media(min-width:900px){.ll{grid-template-columns:3ch 44ch minmax(0,1fr);gap:0 2ch}.ll-a{grid-column:3;font-size:var(--fs-md)}}@media(max-width:520px){.ll{font-size:15px;padding-inline:0}.ll-a{font-size:12px}.scan-file{display:none}}.sheet{position:relative}.rowrule,.printhead,.feed-stat{display:none}@media(min-width:1100px){.rowrule{display:block;position:absolute;z-index:1;top:0;bottom:0;left:var(--strip);width:calc(var(--gut) - 10px);pointer-events:none;background:repeating-linear-gradient(to bottom,var(--perf) 0 1px,transparent 1px 24px) left top / 5px 100% no-repeat,repeating-linear-gradient(to bottom,var(--rule) 0 1px,transparent 1px 120px) left top / 10px 100% no-repeat}.rowrule span{position:absolute;right:0;font:400 11px/24px var(--font-mono);letter-spacing:0;color:var(--ink-2);font-variant-numeric:tabular-nums}}@property --feed{syntax: "<number>"; inherits: false; initial-value: 0;}@keyframes feed-p{to{--feed: 1}}@property --f2{syntax: "<number>"; inherits: true; initial-value: 0;}@property --f3{syntax: "<number>"; inherits: true; initial-value: 0;}@property --f4{syntax: "<number>"; inherits: true; initial-value: 0;}@property --f5{syntax: "<number>"; inherits: true; initial-value: 0;}@property --f6{syntax: "<number>"; inherits: true; initial-value: 0;}@property --f7{syntax: "<number>"; inherits: true; initial-value: 0;}@property --f8{syntax: "<number>"; inherits: true; initial-value: 0;}@keyframes f2{to{--f2: 1}}@keyframes f3{to{--f3: 1}}@keyframes f4{to{--f4: 1}}@keyframes f5{to{--f5: 1}}@keyframes f6{to{--f6: 1}}@keyframes f7{to{--f7: 1}}@keyframes f8{to{--f8: 1}}@keyframes strike{0%{opacity:.2}}@keyframes feed{0%{clip-path:inset(0 0 55% 0);opacity:.2}}@keyframes bf-run{0%{text-decoration-color:transparent;clip-path:inset(0 0 0 0)}30%,81.82%{text-decoration-color:var(--err);clip-path:inset(0 0 0 0)}to{text-decoration-color:var(--err);clip-path:inset(0 0 0 100%)}}@keyframes wipe-in{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes mk-shift{0%{translate:0 0;animation-timing-function:steps(1,end)}15.625%{translate:calc(-100% / 3) 0;animation-timing-function:linear}93.75%{translate:calc(-100% / 3) 0;animation-timing-function:steps(1,start)}to{translate:calc(-200% / 3) 0}}@media(prefers-reduced-motion:no-preference){@supports (animation-timeline: view()) and (timeline-scope: --a){.feed-on .feed-stat{display:inline-block;min-width:9ch;text-align:right;color:var(--ink-2);font:400 var(--fs-sm)/1 var(--font-mono);letter-spacing:0;font-variant-numeric:tabular-nums;animation:feed-p linear both;animation-timeline:scroll(root);counter-reset:row round(down,calc(var(--feed) * var(--feed-rows, 0) + var(--feed-head, 1)),1)}.feed-stat:before{content:"\7b2c  " counter(row) " \5217"}@media(max-width:379px){.feed-on .feed-stat{display:none}}@media(min-width:1100px){.feed-on .printhead{display:block;position:fixed;z-index:15;top:50vh;left:max(0px,(100% - 1320px) / 2);width:calc(44px + var(--gut) - 6px);height:0;pointer-events:none}.printhead:before{content:"";position:absolute;left:31px;top:-7px;border:7px solid transparent;border-left:11px solid var(--accent);border-right:0}.printhead:after{content:"";position:absolute;left:44px;right:0;top:0;border-top:2px solid var(--accent)}}.scan{timeline-scope:--l1,--l2,--l3,--l4,--l5,--l6,--l7,--l8}.ll{view-timeline-name:var(--tl)}.ll .bf{display:block;animation:bf-run linear both;animation-timeline:var(--tl);animation-range:cover 20vh cover 53vh}.ll .hit{text-decoration-color:inherit}.ll:not(.ll-ok) .af{animation:wipe-in linear both;animation-timeline:var(--tl);animation-range:cover 47vh cover 53vh}.ll .mp,.ll .mx{display:block}.ll .mk-in{animation:mk-shift linear both;animation-timeline:var(--tl);animation-range:cover 20vh cover 52vh}.scan-stat{position:sticky;top:65px;z-index:3;will-change:transform;animation-range:cover 52vh cover 53vh;animation-fill-mode:both;animation-timing-function:linear;animation-duration:auto}.scan-stat{--sum: calc(2 * var(--f2) + 3 * var(--f3) + 2 * var(--f4) + 2 * var(--f5) + 2 * var(--f6) + 3 * var(--f7) + 2 * var(--f8));animation-name:f2,f3,f4,f5,f6,f7,f8;animation-timeline:--l2,--l3,--l4,--l5,--l6,--l7,--l8}@media(max-height:33.99em){.scan-stat{position:static}}.scan-head{display:block;position:sticky;top:50vh;z-index:2;height:0;pointer-events:none;will-change:transform}.scan-head:before{content:"";position:absolute;left:0;right:0;top:0;border-top:2px dashed var(--accent)}.scan-head:after{content:"";position:absolute;left:-12px;top:-6px;border:6px solid transparent;border-left:9px solid var(--accent);border-right:0}.rules tbody tr{animation:strike linear both;animation-timeline:view();animation-range:entry 0% cover 25%}.log li{animation:feed linear both;animation-timeline:view();animation-range:entry 0% cover 25%}.feed{animation:feed linear both;animation-timeline:view();animation-range:entry 0% entry 70%}}}@media(prefers-contrast:more){:root{--ink-2: var(--ink);--perf: var(--rule)}}@media(forced-colors:active){.btn,.tool{border:1px solid ButtonText}}
