@font-face{font-family:Manrope;src:url('/assets/manrope.woff2') format('woff2');font-style:normal;font-weight:200 800;font-display:swap}
:root{--ink:#101010;--paper:#f5f5f2;--blue:#008afc;--surface:#191d1e;--muted:#b4b7bd;--line:#767b80;--quiet-line:#383838;--small:.82rem;--body:1rem;--medium:1.15rem;--h2:clamp(1.8rem,3.2vw,3rem);--display:clamp(2.8rem,5.5vw,5.5rem);--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-5:3rem;--space-6:5rem;--space-7:7rem;--gutter:clamp(1.25rem,4vw,4rem);--measure:86rem;--target:2.75rem;--radius:.15rem;--font:Manrope,Arial,sans-serif;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}
*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--font);font-size:var(--body);line-height:1.6}a{color:inherit;text-underline-offset:.22em}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--blue);outline-offset:4px}.shell{max-width:var(--measure);margin-inline:auto;padding-inline:var(--gutter)}.skip{position:absolute;left:var(--space-2);top:-8rem;padding:var(--space-2);background:var(--paper);color:var(--ink);z-index:10}.skip:focus{top:var(--space-2)}.header{display:flex;align-items:center;gap:var(--space-4);min-height:6rem;border-bottom:1px solid var(--quiet-line)}.wordmark{font-size:2rem;line-height:1;letter-spacing:-.09em;font-weight:650;text-decoration:none}.wordmark span{color:var(--blue)}.tools-link{margin-left:auto;text-decoration:none;min-height:var(--target);display:flex;align-items:center;gap:var(--space-2);font-size:var(--small)}.languages{display:flex;border-left:1px solid var(--quiet-line);padding-left:var(--space-3)}.languages a{min-width:var(--target);min-height:var(--target);display:grid;place-items:center;text-decoration:none;font-family:var(--mono);font-size:var(--small)}.languages [aria-current]{border-bottom:2px solid var(--blue)}.intro{padding-top:var(--space-5);padding-bottom:var(--space-6)}.eyebrow{font-family:var(--mono);font-size:var(--small);letter-spacing:.08em;text-transform:uppercase}.intro-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:var(--space-6);align-items:start}.intro h1{font-size:var(--display);font-weight:500;letter-spacing:-.065em;line-height:1.04;margin:var(--space-3) 0 0}.intro-copy{padding-top:var(--space-3);max-width:31rem}.intro-copy>p:first-child{font-size:var(--medium)}.muted{color:var(--muted);font-size:var(--small)}.intro-copy p,.section-intro{margin-top:0;margin-bottom:var(--space-3)}h2{font-size:var(--h2);font-weight:500;letter-spacing:-.045em;line-height:1.13;margin:0 0 var(--space-3)}.review-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(19rem,.85fr);gap:var(--space-6);align-items:start;padding-bottom:var(--space-7)}.section-intro{max-width:46rem}.test-case{margin:var(--space-5) 0 0;padding:var(--space-3) 0 var(--space-4);border:0;border-top:1px solid var(--quiet-line);min-width:0}.test-case legend{display:flex;gap:var(--space-3);padding:0 var(--space-2) 0 0;font-size:var(--medium);font-weight:600;line-height:1.4;max-width:100%}.case-number{color:var(--blue);font-family:var(--mono);font-size:var(--small);padding-top:.3em}.case-title{min-width:0}.test-input,.expected{display:grid;grid-template-columns:8rem 1fr;gap:var(--space-2);margin:var(--space-3) 0}.small-label{font-family:var(--mono);font-size:var(--small);color:var(--muted)}.input-copy,.expected-copy{min-width:0}.result-options{display:flex;gap:var(--space-1);margin:var(--space-3) 0;flex-wrap:wrap}.result-option{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);min-height:var(--target);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;font-size:var(--small)}.result-option:has(input:checked){background:var(--paper);color:var(--ink);border-color:var(--paper)}.result-option:has(input:focus-visible){outline:2px solid var(--blue);outline-offset:3px}.result-option input{accent-color:var(--ink);margin:0;width:1rem;height:1rem}.note-label{display:block;font-size:var(--small);color:var(--muted);margin-bottom:var(--space-1)}.case-note{display:block;width:100%;min-height:4.5rem;resize:vertical;background:var(--surface);border:1px solid var(--line);border-radius:0;color:var(--paper);padding:var(--space-2);font-size:var(--body)}.summary-column{position:sticky;top:var(--space-4)}.summary-panel{background:var(--blue);color:var(--ink);padding:var(--space-4);border-radius:var(--radius)}.summary-panel h2{font-size:1.5rem;letter-spacing:-.025em}.counts{margin:var(--space-4) 0}.counts>div{display:flex;align-items:baseline;gap:var(--space-2);justify-content:space-between;border-bottom:1px solid currentColor;padding-block:var(--space-2)}.counts dt{font-size:var(--small);max-width:70%}.counts dd{font-size:2.8rem;line-height:1.1;letter-spacing:-.065em;margin:0;font-variant-numeric:tabular-nums}.summary-note{font-size:var(--small);margin-block:var(--space-4)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:var(--target);padding:var(--space-2) var(--space-3);border:1px solid transparent;border-radius:3rem;font-size:var(--small);text-decoration:none}.button-ink{background:var(--ink);color:var(--paper)}.summary-panel .button{width:100%}.summary-panel button:focus-visible{outline-color:var(--ink);outline-offset:4px}.clear-button{display:block;min-height:var(--target);margin-top:var(--space-1);padding:var(--space-1) 0;background:none;border:0;text-decoration:underline;text-underline-offset:.2em;color:var(--ink);font-size:var(--small)}.record-section{background:var(--paper);color:var(--ink);padding-block:var(--space-6)}.record-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:var(--space-6)}.record-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4)}.button-outline{background:none;color:var(--ink);border-color:var(--line)}.record-label{display:block;margin-bottom:var(--space-2)}.record-preview{width:100%;min-height:31rem;resize:vertical;font:var(--small)/1.6 var(--mono);border:1px solid var(--line);padding:var(--space-3);background:var(--paper);color:var(--ink);border-radius:0}.record-preview::placeholder{color:#595d62}.record-status{font-size:var(--small);margin-top:var(--space-3)}.next{padding-block:var(--space-7)}.next-links{list-style:none;margin:var(--space-5) 0 0;padding:0;max-width:52rem}.next-links a{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding-block:var(--space-3);min-height:var(--target);border-bottom:1px solid var(--quiet-line);text-decoration:none}.next-links a:hover,.tools-link:hover{color:var(--blue)}.footer{display:flex;gap:var(--space-4);align-items:baseline;padding-block:var(--space-4);border-top:1px solid var(--quiet-line);font-size:var(--small);color:var(--muted)}.footer p{max-width:50rem;margin:0 auto 0 0}.footer a,.footer span{white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.notice{border:1px solid var(--line);padding:var(--space-2)}.hub-main{padding-top:var(--space-6);padding-bottom:var(--space-7)}.hub-main h1{font-size:var(--display);font-weight:500;letter-spacing:-.065em;line-height:1.03;margin:var(--space-3) 0}.hub-intro{max-width:43rem;font-size:var(--medium)}.tool-list{list-style:none;margin:var(--space-6) 0;padding:0}.tool-list li{border-top:1px solid var(--quiet-line);padding-block:var(--space-5)}.tool-list a{display:grid;grid-template-columns:5rem minmax(0,1fr) auto;gap:var(--space-4);text-decoration:none;align-items:start}.tool-list h2{font-size:clamp(1.6rem,3.5vw,2.7rem)}.tool-list p{max-width:43rem;margin-bottom:0;color:var(--muted)}.tool-index{color:var(--blue);font-family:var(--mono)}.open-label{min-height:var(--target);border-bottom:1px solid var(--line);font-size:var(--small);white-space:nowrap}.downloads{max-width:52rem}.downloads h2{font-size:1.5rem}.downloads a{display:block;padding-block:var(--space-2);min-height:var(--target)}
/* Shared responsive boundary: stack the workspace at 900 CSS px; compact controls at 560. */
@media(max-width:900px){.intro-grid{grid-template-columns:1fr;gap:var(--space-3)}.intro-copy{max-width:43rem}.review-grid{grid-template-columns:1fr;gap:var(--space-5)}.summary-column{position:static}.summary-panel{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--space-4)}.summary-panel>.eyebrow,.summary-panel>h2,.counts,.summary-note{grid-column:1/-1}.counts{display:flex;gap:var(--space-3);margin-block:var(--space-3)}.counts>div{flex:1;display:flex;flex-direction:column-reverse;align-items:flex-start;gap:var(--space-1)}.counts dt{max-width:100%}.record-grid{grid-template-columns:1fr;gap:var(--space-5)}.record-preview{min-height:25rem}.footer{flex-wrap:wrap}.footer p{flex-basis:100%}.tool-list a{grid-template-columns:3rem minmax(0,1fr)}.open-label{grid-column:2;justify-self:start}}
@media(max-width:560px){.header{gap:var(--space-1);min-height:5rem}.tools-link{max-width:9rem;min-width:0;gap:var(--space-1);line-height:1.35}.languages{padding-left:var(--space-1)}.intro{padding-bottom:var(--space-5)}.intro h1 br{display:none}.test-input,.expected{grid-template-columns:1fr;gap:var(--space-1)}.result-options{gap:var(--space-1)}.result-option{padding-inline:var(--space-1);flex:1;line-height:1.25}.result-option span{min-width:0}.summary-panel{display:block;padding:var(--space-3)}.counts dd{font-size:2.4rem}.counts dt{font-size:.75rem}.clear-button{margin-bottom:0}.review-grid{padding-bottom:var(--space-6)}.next{padding-block:var(--space-6)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
