:root{color-scheme:light;--bg:#fbfaf7;--surface:#f1efe9;--border:#d5d2c9;--text:#1f2328;--muted:#5f666e;--accent:#0b6b6b;--brand:#c96d93;--on-accent:#fff;--error:#c01818;--error-extra:#7f1010;--highlight:#efece4;--best:#c5f29b;--on-best:#1b2a10}[data-theme=dark]{color-scheme:dark;--bg:#16181c;--surface:#20232a;--border:#3a3f48;--text:#e9e7e3;--muted:#a0a6ae;--accent:#4fd1c5;--brand:#e8a9c0;--on-accent:#0c1f1d;--error:#ff7f7f;--error-extra:#e8605a;--highlight:#23262d;--best:#a9dc7e;--on-best:#1b2a10}[data-theme=delft]{color-scheme:dark;--bg:#0f2a5c;--surface:#17366f;--border:#3b5a96;--text:#f4f7ff;--muted:#b4c5e8;--accent:#ffd166;--brand:#f0b6cb;--on-accent:#1a2438;--error:#ffa8a8;--error-extra:#ff8f8f;--highlight:#18376f;--best:#b2e38a;--on-best:#1b2a10}[data-theme=tulp]{color-scheme:light;--bg:#fff1e8;--surface:#ffe4d6;--border:#eebfae;--text:#3a1320;--muted:#7d4552;--accent:#b5154f;--brand:#c0628a;--on-accent:#fff;--error:#c20f0f;--error-extra:#7d0606;--highlight:#ffe6da;--best:#c5f29b;--on-best:#1b2a10}@media (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--bg:#16181c;--surface:#20232a;--border:#3a3f48;--text:#e9e7e3;--muted:#a0a6ae;--accent:#4fd1c5;--brand:#e8a9c0;--on-accent:#0c1f1d;--error:#ff7f7f;--error-extra:#e8605a;--highlight:#23262d;--best:#a9dc7e;--on-best:#1b2a10}}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-latin.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Righteous;src:url(/fonts/righteous-latin.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2000-206F,U+20AC,U+2122}:root{--font-brand:"Righteous", "Trebuchet MS", system-ui, sans-serif;--font-ui:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"JetBrains Mono", "Courier New", monospace;--test-font-size:1.5rem;--radius:8px;--page-width:60rem;--text-width:42rem}[data-font-size=s]{--test-font-size:1.2rem}[data-font-size=l]{--test-font-size:1.875rem}[data-font-size=xl]{--test-font-size:2.25rem}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-ui);flex-direction:column;margin:0;line-height:1.6;display:flex}main{width:100%;max-width:var(--page-width);flex:1;margin:0 auto;padding:1rem 1.25rem 3rem}a{color:var(--accent);text-underline-offset:.15em}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}h1,h2,h3{font-weight:650;line-height:1.25}h1{margin:1.5rem 0 .75rem;font-size:clamp(1.6rem,4vw,2.1rem)}h2{margin:2.25rem 0 .6rem;font-size:1.35rem}h3{margin:1.5rem 0 .4rem;font-size:1.1rem}p{margin:0 0 1rem}kbd{font-family:var(--font-mono);border:1px solid var(--border);background:var(--surface);color:var(--text);border-bottom-width:2px;border-radius:4px;padding:.1em .45em;font-size:.8em}button,select,input{font:inherit;color:inherit}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{z-index:20;background:var(--accent);color:var(--on-accent);border-radius:var(--radius);padding:.5rem .9rem;position:absolute;top:-4rem;left:.75rem}.skip-link:focus{top:.75rem}.btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-height:2.75rem;color:var(--text);cursor:pointer;justify-content:center;align-items:center;gap:.4em;padding:.45rem 1.1rem;font-weight:550;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--accent);text-decoration:none}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.site-header{width:100%;max-width:var(--page-width);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem 1.25rem;margin:0 auto;padding:.9rem 1.25rem;display:flex}.logo{font-family:var(--font-brand);letter-spacing:.01em;color:var(--brand);padding:.2rem 0;font-size:1.6rem;font-weight:400;line-height:1.2;text-decoration:none}.logo:hover{text-underline-offset:.18em;text-decoration:underline 2px}.site-nav ul{flex-wrap:wrap;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.site-nav a,.site-nav button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:.45rem .65rem;font-size:.95rem;text-decoration:none;display:inline-block}.site-nav a:hover,.site-nav button:hover{color:var(--text);background:var(--surface)}.site-nav a[aria-current=page]{color:var(--text)}.site-footer{border-top:1px solid var(--border);color:var(--muted);font-size:.9rem}.footer-inner{max-width:var(--page-width);grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:1.25rem;margin:0 auto;padding:1.75rem 1.25rem .5rem;display:grid}.footer-heading{color:var(--text);margin:0 0 .4rem;font-weight:600}.site-footer ul{margin:0;padding:0;list-style:none}.site-footer li a{color:var(--muted);padding:.3rem 0;display:inline-block}.site-footer li a:hover{color:var(--text)}.footer-copy{max-width:var(--page-width);margin:0 auto;padding:.75rem 1.25rem 1.5rem}.site-header,.site-footer{transition:opacity .2s}[data-test-running] .site-header,[data-test-running] .site-footer,[data-test-running] .below-test{opacity:.25}[data-test-running] .ad-slot{visibility:hidden}.ad-slot{min-height:280px;max-width:var(--text-width);margin:2rem auto}dialog{border:1px solid var(--border);background:var(--bg);width:min(34rem,100vw - 2rem);max-height:calc(100dvh - 2rem);color:var(--text);border-radius:12px;padding:1.25rem 1.5rem 1.5rem}dialog::backdrop{background:#00000080}.dialog-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.dialog-head h2{margin:0}.dialog-close{width:2.5rem;height:2.5rem;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;margin:-.25rem -.55rem -.25rem 0;padding:0;display:inline-flex}.dialog-close:hover{background:var(--surface);color:var(--text)}.settings-group{border:0;margin:1.1rem 0 0;padding:0}.settings-group legend{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.35rem;padding:0;font-size:.85rem;font-weight:600}.setting-row{justify-content:space-between;align-items:center;gap:1rem;min-height:2.5rem;padding:.15rem 0;display:flex}.setting-row select{border:1px solid var(--border);background:var(--surface);border-radius:6px;max-width:60%;min-height:2.25rem;padding:.2rem .5rem}.setting-row input[type=checkbox]{width:1.25rem;height:1.25rem;accent-color:var(--accent);flex:none}.prose{max-width:var(--text-width);margin:0 auto}.prose ul,.prose ol{margin:0 0 1rem;padding-left:1.4rem}.prose li{margin-bottom:.3rem}.table-wrap{margin:0 0 1.25rem;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.95rem}th,td{border-bottom:1px solid var(--border);text-align:left;padding:.5rem .75rem .5rem 0}th{font-weight:600}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}mark.best{background:var(--best);color:var(--on-best);border-radius:5px;margin-right:-.5rem;padding:0 .5rem;font-weight:650;display:inline-block}.term{border:0;border-bottom:1px dotted var(--muted);font:inherit;color:inherit;cursor:help;background:0 0;padding:0}.term-tip{z-index:30;border:1px solid var(--border);background:var(--surface);max-width:min(20rem,100vw - 1rem);color:var(--text);pointer-events:none;border-radius:6px;padding:.5rem .7rem;font-size:.85rem;line-height:1.45;position:fixed}.breadcrumbs{color:var(--muted);margin:.5rem 0 0;font-size:.875rem}.breadcrumbs ol{flex-wrap:wrap;align-items:baseline;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.breadcrumbs li{align-items:baseline;gap:.25rem;display:flex}.breadcrumbs li:not(:last-child):after{content:"/"}.breadcrumbs a{color:var(--muted);padding:.2rem 0;display:inline-block}.cta-box{border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.25rem;margin:1.25rem 0 1.75rem;padding:1rem 1.25rem;display:flex}.cta-box p{flex:14rem;margin:0}.card-list{gap:1rem;margin:1.5rem 0;padding:0;list-style:none;display:grid}.card-list li{border-radius:var(--radius);background:var(--surface);padding:1rem 1.25rem}.card-list h2{margin:0 0 .25rem;font-size:1.15rem}.card-list p{margin:0}.page-updated{color:var(--muted);font-size:.9rem}.tt{position:relative}.tt-top{align-items:end;margin:.5rem 0 1rem;display:grid}.tt-top>*{grid-area:1/1}.tt-bar{border-radius:var(--radius);background:var(--surface);color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:.15rem .9rem;padding:.3rem .5rem;font-size:.875rem;display:flex}.tt-group{flex-wrap:wrap;justify-content:center;gap:.05rem;display:flex}.tt-bar button{min-height:2rem;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:.15rem .5rem}.tt-bar button:hover{color:var(--text)}.tt-bar button[aria-pressed=true]{color:var(--accent);font-weight:600}.tt-bar select{background:var(--surface);max-width:100%;min-height:2rem;color:var(--muted);cursor:pointer;border:0;border-radius:5px;padding:.1rem .25rem}.tt-clock{visibility:hidden;font-family:var(--font-mono);color:var(--accent);font-variant-numeric:tabular-nums;font-size:1.6rem;line-height:1.3}.tt[data-state=running] .tt-clock{visibility:visible}.tt[data-state=running] .tt-bar{visibility:hidden}.tt-area{cursor:text;border-radius:var(--radius);position:relative}.tt-window{--line:calc(var(--test-font-size) * 1.75);height:calc(var(--line) * 3);font-family:var(--font-mono);font-size:var(--test-font-size);line-height:var(--line);transition:filter .15s,opacity .15s;overflow:hidden}.tt-words{color:var(--muted);overflow-wrap:anywhere;flex-wrap:wrap;column-gap:1ch;display:flex;position:relative}.w{border-radius:3px}.w.current{background:var(--highlight);box-shadow:0 0 0 .12em var(--highlight)}.w.err{text-decoration:underline;text-decoration-color:var(--error);text-underline-offset:.2em}.l.ok{color:var(--text)}.l.bad{color:var(--error);text-underline-offset:.2em;text-decoration:underline}.l.extra{color:var(--error-extra)}.tt-caret{z-index:1;width:2px;height:var(--line);background:var(--accent);pointer-events:none;border-radius:1px;transition:transform 80ms linear;position:absolute;top:0;left:0}[data-caret=block] .tt-caret{--caret-opacity:.4;width:1ch;opacity:var(--caret-opacity)}[data-caret=underline] .tt-caret{width:1ch;height:2px;margin-top:calc(var(--line) - .2em)}.tt[data-state=idle] .tt-caret{animation:1.1s steps(2,jump-none) infinite caret-blink}@keyframes caret-blink{0%{opacity:var(--caret-opacity,1)}to{opacity:0}}.tt-input{z-index:2;opacity:0;color:#0000;caret-color:#0000;cursor:text;background:0 0;border:0;outline:0;width:100%;height:100%;margin:0;padding:0;font-size:16px;position:absolute;inset:0}.tt-prompt{z-index:1;text-align:center;pointer-events:none;justify-content:center;align-items:center;padding:0 1rem;font-weight:550;display:none;position:absolute;inset:0}.tt-area.unfocused .tt-window{filter:blur(4px);opacity:.45}.tt-area.unfocused .tt-caret{visibility:hidden}.tt-area.unfocused .tt-prompt{display:flex}.tt-prompt-touch{display:none}@media (pointer:coarse){.tt-prompt-mouse{display:none}.tt-prompt-touch{display:inline}.tt-hints{display:none}}.tt-actions{flex-direction:column;align-items:center;gap:.6rem;margin-top:1.25rem;display:flex}.tt-hints{color:var(--muted);text-align:center;margin:0;font-size:.85rem}[data-state=results] .tt-run{display:none}.below-test{margin-top:3.5rem}.tt-noscript{border-radius:var(--radius);background:var(--surface);padding:1rem}.results:focus{outline:none}.results h2{color:var(--muted);margin:.5rem 0 .75rem;font-size:1rem;font-weight:600}.results-main{flex-wrap:wrap;align-items:flex-end;gap:.5rem 2.5rem;display:flex}.big-stat{flex-direction:column;display:flex}.big-stat .value{font-family:var(--font-mono);color:var(--accent);font-size:clamp(3rem,12vw,4.75rem);line-height:1.05}.big-stat .label{color:var(--muted);font-size:.95rem}.level-badge{padding-bottom:.2rem}.level-badge .value{font-size:1.5rem;font-weight:650;line-height:1.3;display:block}.level-badge .label{color:var(--muted);font-size:.95rem}.stat-list{grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.75rem 1.25rem;margin:1.25rem 0;display:grid}.stat-list div{min-width:0}.stat-list dt{color:var(--muted);font-size:.875rem}.stat-list dd{font-family:var(--font-mono);overflow-wrap:anywhere;margin:0;font-size:1.15rem}.stat-list small{font-family:var(--font-ui);color:var(--muted);font-size:.8rem;display:block}.results-actions{flex-wrap:wrap;gap:.6rem;margin:1.25rem 0 0;display:flex}.chart{margin:1.25rem 0 0;position:relative}.chart svg{touch-action:pan-y;width:100%;display:block}.chart-grid{stroke:var(--border);stroke-width:1px;opacity:.6}.chart-axis{fill:var(--muted);font-size:12px;font-family:var(--font-ui)}.chart-line{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart-line-1{stroke:var(--accent)}.chart-line-2{stroke:var(--muted);stroke-dasharray:2 4}.chart-dot-1{fill:var(--accent);stroke:var(--bg);stroke-width:2px}.chart-dot-2{fill:var(--muted);stroke:var(--bg);stroke-width:2px}.chart-cross{stroke:var(--muted);stroke-width:1px}.chart-legend{color:var(--muted);flex-wrap:wrap;gap:.25rem 1rem;margin:0 0 .25rem;padding:0;font-size:.85rem;list-style:none;display:flex}.chart-legend li{align-items:center;gap:.4rem;display:flex}.chart-swatch{border-top:2px solid var(--accent);width:1.25rem;height:0}.chart-swatch-2{border-top:2px dotted var(--muted)}.chart-tip{z-index:3;border:1px solid var(--border);background:var(--surface);white-space:nowrap;pointer-events:none;border-radius:6px;padding:.3rem .55rem;font-size:.8rem;line-height:1.4;position:absolute;top:0;left:0}.chart-tip strong{font-weight:600;display:block}.share-preview{border:1px solid var(--border);border-radius:6px;width:100%;height:auto;display:block}.share-text{margin:.9rem 0 0;font-size:.95rem}.share-actions{flex-wrap:wrap;gap:.6rem;margin-top:1rem;display:flex}.share-status{min-height:1.5em;color:var(--muted);margin:.6rem 0 0;font-size:.9rem}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
