.bench[data-astro-cid-42onop5t]{flex-direction:column;gap:.75rem;margin:1.6rem 0 2.2rem;display:flex}.bench-row[data-astro-cid-42onop5t]{background:var(--panel);border:1px solid var(--border);border-radius:10px;grid-template-columns:34px minmax(160px,300px) 1fr 116px;align-items:center;gap:1.1rem;padding:.85rem 1.05rem;display:grid}.bench-row[data-astro-cid-42onop5t][data-us]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.bench-logo[data-astro-cid-42onop5t]{border:1px solid var(--border);letter-spacing:0;background:#0d0d14;border-radius:7px;place-items:center;width:30px;height:30px;font-size:12px;font-weight:700;display:grid}.bench-logo[data-astro-cid-42onop5t] svg[data-astro-cid-42onop5t]{width:20px;height:20px;display:block}.bench-name[data-astro-cid-42onop5t]{min-width:0}.bench-name[data-astro-cid-42onop5t] b[data-astro-cid-42onop5t]{margin-bottom:.15rem;font-size:.9rem;display:block}.bench-name[data-astro-cid-42onop5t] span[data-astro-cid-42onop5t]{color:var(--muted);font-size:.74rem}.bench-name[data-astro-cid-42onop5t] .chip[data-astro-cid-42onop5t]{border:1px solid var(--accent2);color:var(--accent2);vertical-align:1px;border-radius:999px;margin-left:.4em;padding:0 .45em;font-size:.68rem;display:inline-block}.bench-track[data-astro-cid-42onop5t]{border:1px solid var(--border);background:#0d0d14;border-radius:999px;height:18px;position:relative;overflow:hidden}.bench-bar[data-astro-cid-42onop5t]{background:linear-gradient(90deg, color-mix(in srgb, var(--bar,var(--accent)) 45%, transparent), var(--bar,var(--accent)));border-radius:999px;min-width:6px;position:absolute;inset:0 auto 0 0}.bench-nums[data-astro-cid-42onop5t]{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.8rem}.bench-nums[data-astro-cid-42onop5t] b[data-astro-cid-42onop5t]{font-size:.92rem;display:block}.bench-nums[data-astro-cid-42onop5t] span[data-astro-cid-42onop5t]{color:var(--muted);font-size:.72rem}@media (width<=640px){.bench-row[data-astro-cid-42onop5t]{grid-template-columns:34px 1fr auto;gap:.6rem}.bench-track[data-astro-cid-42onop5t]{display:none}.bench-name[data-astro-cid-42onop5t] b[data-astro-cid-42onop5t],.bench-name[data-astro-cid-42onop5t] span[data-astro-cid-42onop5t]{white-space:normal}.bench-name[data-astro-cid-42onop5t] .chip[data-astro-cid-42onop5t]{margin-left:.35em}}.runner[data-astro-cid-vh2h5rek]{border:1px solid var(--border);background:var(--panel);border-radius:10px;margin:1.2rem 0;padding:.9rem 1rem 1rem}.runner-bar[data-astro-cid-vh2h5rek]{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.runner[data-astro-cid-vh2h5rek] button[data-astro-cid-vh2h5rek]{font:inherit;color:var(--text);background:var(--code-bg);border:1px solid var(--accent);cursor:pointer;border-radius:6px;padding:.35rem .9rem}.runner[data-astro-cid-vh2h5rek] button[data-astro-cid-vh2h5rek]:hover:not(:disabled){color:var(--accent)}.runner[data-astro-cid-vh2h5rek] button[data-astro-cid-vh2h5rek]:disabled{border-color:var(--border);color:var(--muted);cursor:default}.runner-progress[data-astro-cid-vh2h5rek],.runner-hint[data-astro-cid-vh2h5rek]{color:var(--muted);font-size:.82rem}.runner-hint[data-astro-cid-vh2h5rek]{margin:.6rem 0 0}.runner-stage[data-astro-cid-vh2h5rek]{border:1px solid var(--border);background:#000;border-radius:8px;height:180px;margin-top:.9rem;overflow:hidden}.runner-stage[data-astro-cid-vh2h5rek] iframe[data-astro-cid-vh2h5rek]{transform-origin:0 0;border:0;width:1280px;height:720px;display:block;transform:scale(.28)}.runner[data-astro-cid-vh2h5rek] tbody[data-astro-cid-vh2h5rek] td[data-astro-cid-vh2h5rek][data-state=running]{color:var(--accent)}.runner[data-astro-cid-vh2h5rek] tbody[data-astro-cid-vh2h5rek] td[data-astro-cid-vh2h5rek][data-state=failed]{color:var(--muted)}:root{color-scheme:dark;--bg:#0b0b0f;--panel:#12121a;--border:#23232f;--text:#d6d6de;--muted:#8a8a99;--accent:#45e845;--accent2:#2fa869;--code-bg:#14141d;accent-color:var(--accent)}body{color:#d6d6de;box-sizing:border-box;background:#0b0b0f;flex-direction:column;align-items:center;gap:12px;min-height:100vh;margin:0;padding:20px;font:13.5px/1.5 Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;display:flex}h1{margin:0;font-size:1.3rem}#panel{flex-wrap:wrap;justify-content:center;gap:10px;width:100%;max-width:1080px;display:flex;overflow-x:clip}fieldset{background:#101018;border:1px solid #23232f;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px 14px;min-width:0;max-width:100%;margin:0;padding:8px 12px 10px;display:flex}legend{color:#45e845;letter-spacing:.06em;text-transform:uppercase;padding:0 6px;font-size:.78rem}label{white-space:nowrap;align-items:center;gap:6px;display:flex}.hint{text-underline-offset:3px;cursor:help;outline:none;text-decoration:underline dotted #565668;position:relative}.hint:after{content:attr(data-hint);white-space:normal;color:#d6d6de;text-align:left;opacity:0;pointer-events:none;z-index:30;background:#1b1c24;border:1px solid #2c2c3a;border-radius:8px;width:max-content;max-width:min(270px,100vw - 24px);padding:7px 10px;font-size:12px;line-height:1.45;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 9px);left:50%;transform:translate(-50%)translateY(3px);box-shadow:0 8px 24px #0000008c}.hint:before{content:"";opacity:0;z-index:30;border:5px solid #0000;border-top-color:#2c2c3a;transition:opacity .12s;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.hint:hover:after,.hint:focus-visible:after,.hint:hover:before,.hint:focus-visible:before{opacity:1;transform:translate(-50%)translateY(0)}.hint:before{transform:translate(-50%)}svg.lucide{vertical-align:-2px;flex:none;width:14px;height:14px}legend svg.lucide{vertical-align:-2.5px;margin-right:2px}select,input,button{max-width:100%;font:inherit;color:inherit;background:#17171f;border:1px solid #2c2c3a;border-radius:6px;padding:3px 7px}:where(a,button,select,summary,input,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=range]{width:90px;max-width:100%;padding:0}input[type=color]{width:34px;height:24px;padding:1px}input:disabled,select:disabled{opacity:.45}label:has(:disabled){color:#60606c}label[hidden],.warn[hidden]{display:none}.warn{color:#facc15;align-items:center;gap:5px;display:inline-flex}button{cursor:pointer;align-items:center;gap:6px;display:inline-flex}button:hover{border-color:#45e845}button.flash-ok{color:var(--accent);animation:.3s pop;border-color:var(--accent)!important}button.flash-err{color:#f87171;animation:.3s pop;border-color:#f87171!important}@keyframes pop{40%{transform:scale(1.07)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none;animation:none}}button.primary{color:#0b0b0f;background:#45e845;border-color:#45e845;font-weight:600}output{color:#8a8a99;text-align:right;min-width:2.4em}.file-input{opacity:0;width:1px;height:1px;position:fixed;top:0;left:-9999px}.hero-stage{width:min(1024px,100%);display:flex;position:relative}#out{aspect-ratio:16/9;touch-action:none;border:1px solid #1d1d28;border-radius:8px;width:100%}#stats{color:#8a8a99;text-align:center;max-width:1024px;min-height:1.4em}#stats .fps-good{color:var(--accent)}#stats .fps-ok{color:#facc15}#stats .fps-bad{color:#f87171}#stats .warn{color:#facc15}#explainer{color:#b9b9c6;width:min(780px,100%);margin:30px auto 24px;font-size:13.5px;line-height:1.65}#explainer h2:has(.hicon),#explainer h3:has(.hicon){align-items:center;gap:.55em;display:flex}#explainer h3 .hicon{font-size:.62em}#explainer h3 .hicon.hicon-emoji{font-size:1em}.hicon.hicon-emoji{opacity:1;font-size:.85em;line-height:1}.hicon{white-space:pre;letter-spacing:0;color:#45e845;opacity:.95;flex:none;font-size:.5em;line-height:1.2}#explainer h2{color:#45e845;letter-spacing:.05em;text-transform:uppercase;margin:2.2em 0 .6em;font-size:1rem}#explainer h2:first-child{margin-top:0}#explainer p{margin:.7em 0}#explainer strong{color:#d6d6de}#explainer ul,#explainer ol{margin:.7em 0;padding-left:1.4em}#explainer li{margin:.35em 0}.formula{overscroll-behavior-x:contain;color:#d6d6de;background:#101018;border:1px solid #23232f;border-radius:8px;margin:.7em 0;padding:12px 14px;overflow-x:auto}.formula .katex{font-size:1.02em}.formula .katex-display{text-align:left;margin:0}.formula .katex-display>.katex{text-align:left}.wnote.formula-note{max-width:none;margin-top:-.35em}#explainer h3{color:#d6d6de;margin:1.5rem 0 .5rem;font-size:1rem}#explainer .lead{color:var(--muted);max-width:46rem}#explainer table{border-collapse:collapse;width:100%;margin:1rem 0;font-size:.85rem}#explainer th,#explainer td{border:1px solid var(--border);text-align:left;padding:.4rem .7rem}#explainer td.num,#explainer th.num{text-align:right;font-variant-numeric:tabular-nums}#explainer th{color:var(--muted);font-weight:600}#explainer table.libs th{white-space:nowrap}#explainer table.libs td{vertical-align:middle}#explainer table.libs .approach{min-width:12rem}#explainer table.libs .swatch{background:var(--row);vertical-align:-1px;border-radius:2px;width:3px;height:.95em;margin-right:.6em;display:inline-block}#explainer table.libs .grid{color:var(--muted);white-space:nowrap}#explainer table.libs tr[data-us]{background:color-mix(in srgb, var(--accent) 8%, transparent)}#explainer table.libs tr[data-floor] td{color:var(--muted)}#explainer .tag{border:1px solid var(--border);color:var(--muted);white-space:nowrap;border-radius:999px;padding:.08em .55em;font-size:.75rem;display:inline-block}#explainer .tag[data-kind=exact]{color:var(--accent2);border-color:color-mix(in srgb, var(--accent2) 55%, transparent);background:color-mix(in srgb, var(--accent2) 10%, transparent)}#explainer .tag[data-kind=shape]{color:var(--accent2);border-color:color-mix(in srgb, var(--accent2) 35%, transparent)}#explainer .tag[data-kind=none]{opacity:.55}#explainer table.libs .cost{min-width:6rem;position:relative}#explainer table.libs .cost-bar{background:color-mix(in srgb, var(--row) 34%, transparent);border-left:2px solid color-mix(in srgb, var(--row) 85%, white);pointer-events:none;position:absolute;top:1px;bottom:1px;left:0}#explainer table.libs .cost-num{position:relative}#explainer table.libs tr[data-floor] .cost-num{opacity:.75;font-size:.78rem}@media (width<=640px){#explainer table.libs .grid,#explainer table.libs th:nth-child(3),#explainer table.libs .p95{display:none}#explainer table.libs .approach,#explainer .table-scroll table.libs{min-width:0}#explainer table.libs .tag{white-space:normal}#explainer table.libs .cost{min-width:4.5rem}#explainer table.libs th,#explainer table.libs td{padding:.35rem .45rem}}#explainer pre.astro-code{border:1px solid #23232f;border-radius:8px;margin:.8em 0;padding:12px 14px;font-size:12.5px;line-height:1.6;overflow-x:auto;background:#101018!important}#explainer .fine{color:#6b6b7d;max-width:46rem;margin:.6rem 0 0;font-size:.78rem;line-height:1.6}body>footer{color:#6b6b7d;border-top:1px solid #23232f;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.6rem 1.5rem;width:min(780px,100%);margin:3rem auto 2rem;padding-top:1.25rem;font-size:.8rem;line-height:1.7;display:flex}body>footer p{flex:26rem;margin:0}.ps-link{color:#8a8a99;white-space:nowrap;text-decoration:none;transition:color .15s}.ps-link:hover{color:#d6d6de}.ps-mark{vertical-align:baseline;opacity:.72;width:auto;height:1.32em;margin-right:.05em;transition:opacity .15s;display:inline-block}.ps-link:hover .ps-mark{opacity:1}#explainer .table-scroll{overscroll-behavior-x:contain;margin:1rem 0;overflow-x:auto}#explainer .table-scroll table{min-width:32rem;margin:0}#explainer pre{color:#c9c9d6;background:#101018;border:1px solid #23232f;border-radius:8px;margin:.8em 0;padding:10px 14px;font-size:12.5px;line-height:1.55;overflow-x:auto}#explainer code{background:#17171f;border-radius:4px;padding:1px 5px;font-size:.95em}#explainer pre code{background:0 0;border-radius:0;padding:0}.widget{background:#101018;border:1px solid #23232f;border-radius:8px;margin:.9em 0;padding:14px}.widget:empty:before{content:"loading…";color:#565668}.wrow{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.wrow>*{min-width:0;max-width:100%}.wcol{flex-direction:column;align-items:flex-start;gap:8px;min-width:0;max-width:100%;display:flex}.wtitle{color:#45e845;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;font-size:11px}.wnote{color:#8a8a99;max-width:min(230px,100%);font-size:12px}.wramp{color:#c9c9d6;letter-spacing:1px;white-space:pre;max-width:100%;font-size:14px;overflow-x:auto}.pxgrid{cursor:crosshair;touch-action:none;user-select:none;background:#23232f;border:1px solid #23232f;grid-template-columns:repeat(8,18px);grid-auto-rows:18px;gap:1px;display:grid}.pxgrid div{width:18px;height:18px}canvas.px,canvas.wglyph,canvas.watlas{image-rendering:pixelated;display:block}canvas.px{border:1px solid #23232f}canvas.watlas{cursor:crosshair;touch-action:none;border:1px solid #23232f;border-radius:4px}.wtools{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.wtools>*{min-width:0}.wtools button{padding:2px 8px;font-size:11.5px}.wpair{align-items:flex-start;gap:14px;display:flex}.cand{color:#8a8a99;white-space:pre;border:1px solid #0000;border-radius:4px;align-items:center;gap:10px;padding:1px 6px;font-size:12px;display:flex}.cand.win{color:var(--accent);background:#11181299;border-color:#274233}.wstages{gap:10px}.wstage{flex-direction:column;flex:160px;gap:6px;min-width:150px;display:flex}.wstagebox{aspect-ratio:2;border:1px solid #23232f;border-radius:4px;position:relative;overflow:hidden}.wstagebox canvas{width:100%;height:100%;image-rendering:pixelated;display:block}.wcellmark{pointer-events:none;border:1.5px solid #f4f0e6;border-radius:2px;position:absolute;box-shadow:0 0 0 1.5px #0b0b0f}.wdetail{flex-wrap:wrap;align-items:flex-start;gap:16px;margin-top:12px;display:flex}.wdetail>*{flex:none;max-width:100%}.wdetail .wnote{width:12rem;max-width:100%}.wdetail .wtitle{white-space:normal}.wdetail{min-height:132px}@media (width<=818px){.wdetail{min-height:268px}}@media (width<=560px){.wdetail{min-height:472px}}.wswatch{vertical-align:-2px;border:1px solid #2c2c3a;border-radius:3px;width:12px;height:12px;display:inline-block}canvas.wtemporal{width:min(560px,100%);image-rendering:pixelated;border:1px solid #23232f;border-radius:4px;margin-bottom:10px;display:block}.emoji-toggle{cursor:pointer;user-select:none;color:var(--muted);border:1px solid var(--border);background:#0e0e15;border-radius:999px;align-self:flex-start;align-items:center;gap:10px;padding:5px 13px 5px 6px;font-size:13px;transition:color .2s,border-color .2s;display:inline-flex}.emoji-toggle input{opacity:0;pointer-events:none;position:absolute}.emoji-toggle .track{border:1px solid var(--border);background:#1b1c24;border-radius:999px;flex:none;width:46px;height:26px;transition:background .3s,border-color .3s;position:relative}.emoji-toggle .knob{background:#565668;border-radius:50%;place-items:center;width:20px;height:20px;margin-top:-10px;transition:transform .34s cubic-bezier(.34,1.32,.64,1),background .3s;display:grid;position:absolute;top:50%;left:3px;overflow:visible}.emoji-toggle .knob:after{content:"";opacity:0;font-size:15px;line-height:1;transition:opacity .22s,transform .34s cubic-bezier(.34,1.5,.64,1);transform:scale(.4)rotate(-45deg)}.emoji-toggle:hover{color:var(--text);border-color:#33344a}.emoji-toggle input:focus-visible+.track{outline:2px solid var(--accent);outline-offset:3px}.emoji-toggle input:checked~.emoji-label{color:var(--text)}.emoji-toggle input:checked+.track{background:linear-gradient(90deg,#45e845,#ff4d9d 55%,#ff8a3d) border-box;border-color:#0000}.emoji-toggle input:checked+.track .knob{background:#fff;transform:translate(20px)}.emoji-toggle input:checked+.track .knob:after{content:"😄";opacity:1;transform:scale(1)rotate(0)}body:has(#emojiMode:checked) .emoji-toggle{background:linear-gradient(#0e0e15,#0e0e15) padding-box padding-box,linear-gradient(90deg,#45e845,#ff4d9d 55%,#ff8a3d) border-box;border:1px solid #0000}.emoji-toggle[data-busy]{cursor:progress}.emoji-toggle[data-busy] .knob{background:0 0;border:2px solid #ffffff47;border-top-color:#fff;animation:.7s linear infinite emojiSpin}.emoji-toggle[data-busy] .knob:after{opacity:0}@keyframes emojiSpin{to{transform:translateX(var(--knob-x,0)) rotate(360deg)}}.emoji-toggle[data-busy] input:checked+.track .knob{--knob-x:20px}#out{transition:opacity .22s}#out.swapping{opacity:.15}.hero-busy{opacity:0;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:12px;transition:opacity .2s;display:flex;position:absolute;inset:0}.hero-stage[data-busy] .hero-busy{opacity:1}.hero-busy:before{content:"";background:radial-gradient(closest-side,#0b0b0ff0,#0b0b0f00);border-radius:50%;width:260px;height:260px;position:absolute}.hero-busy-label{color:var(--text);font-size:12px;position:relative}.hero-ring{background:conic-gradient(#45e845,#ff4d9d 35%,#ff8a3d 65%,#ff8a3d00 78%);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite heroSpin;position:relative;mask:radial-gradient(farthest-side,#0000 calc(100% - 3px),#000 calc(100% - 2.5px))}@keyframes heroSpin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.emoji-toggle .track,.emoji-toggle .knob,.emoji-toggle .knob:after,.hero-busy,#out{transition:none}.emoji-toggle[data-busy] .knob,.hero-ring{animation-duration:1.6s}}#paletteBox{display:none}body:has(#emojiMode:checked) #paletteBox{display:block}.glyph-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:9px;display:flex}.glyph-actions button{padding:4px 9px;font-size:12px}.glyph-count{color:var(--muted);margin-left:auto;font-family:ui-monospace,Menlo,monospace;font-size:12px}.glyph-grid{touch-action:none;user-select:none;grid-template-columns:repeat(auto-fill,34px);justify-content:space-between;gap:4px;max-height:232px;display:grid;overflow-y:auto}.glyph-cell{aspect-ratio:1;border:1px solid var(--border);opacity:.26;filter:grayscale();background:#0e0e15;border-radius:5px;place-items:center;padding:0;transition:opacity .1s,filter .1s;display:grid}.glyph-cell.on{opacity:1;filter:none;border-color:color-mix(in srgb, var(--accent) 55%, var(--border))}.glyph-art{pointer-events:none;background-repeat:no-repeat;width:28px;height:28px}fieldset:has(>#exportComponent)>button{flex:1}.agent-row{border-top:1px solid #1d1d28;flex:1 0 100%;margin-top:2px;padding-top:9px;display:flex}.agent-row .agent-copy{justify-content:center;width:100%}.fx-note{color:var(--muted);flex:1 0 100%;margin:0;font-size:12px;line-height:1.5}.palette-note{color:var(--muted);max-width:60ch;margin:9px 0 0;font-size:12px;line-height:1.5}#emojiBench{display:none}body:has(#emojiMode:checked) #emojiBench{display:block}body:has(#emojiMode:checked) #asciiBench,.emoji-aside{display:none}body:has(#emojiMode:checked) .emoji-aside{display:block}body:has(#emojiMode:checked) #fontBox,body:has(#emojiMode:checked) #colorLab,body:has(#emojiMode:checked) #flatLab,body:has(#emojiMode:checked) #fgLab{display:none}
