:root{--paper: #f2f5f1;--surface: #fbfcfa;--ink: #1d2a30;--muted: #5a686d;--grid: #d9e2dc;--grid-strong: #b7c6be;--pen: #1f55b5;--pen-soft: rgba(31, 85, 181, .14);--zone: rgba(31, 85, 181, .05);--rule: #c8d2cc;--c1: #1f55b5;--c2: #c98a1b;--c3: #2f8f7a;--c4: #8a4f9e;--font-display: "Besley", "Rockwell", "Georgia", serif;--font-body: "Instrument Sans", "Segoe UI", "Helvetica Neue", Arial, sans-serif}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--paper: #12181b;--surface: #182024;--ink: #e4eae6;--muted: #9aa9a6;--grid: #222e33;--grid-strong: #36484f;--pen: #8baff4;--pen-soft: rgba(139, 175, 244, .2);--zone: rgba(139, 175, 244, .06);--rule: #2d3b41;--c1: #8baff4;--c2: #e0b45c;--c3: #6cc5b0;--c4: #c79bd8}}:root[data-theme=dark]{color-scheme:dark;--paper: #12181b;--surface: #182024;--ink: #e4eae6;--muted: #9aa9a6;--grid: #222e33;--grid-strong: #36484f;--pen: #8baff4;--pen-soft: rgba(139, 175, 244, .2);--zone: rgba(139, 175, 244, .06);--rule: #2d3b41;--c1: #8baff4;--c2: #e0b45c;--c3: #6cc5b0;--c4: #c79bd8}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.5}.page{max-width:800px;margin:0 auto;padding:28px 20px 48px;display:flex;flex-direction:column;gap:22px}.masthead{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px;padding-bottom:14px;border-bottom:2px solid var(--ink)}.wordmark{font-family:var(--font-display);font-weight:700;font-size:26px;letter-spacing:-.01em;margin:0}.wordmark span{color:var(--pen)}.masthead p{margin:0;color:var(--muted);font-size:14px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.steps button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 12px;border:1px solid var(--rule);border-radius:4px;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:500;text-align:left;cursor:pointer}.steps button b{font-size:15px;font-weight:600;color:var(--ink)}.steps button[aria-current=step]{border-color:var(--ink);border-width:2px;padding:7px 11px;background:var(--surface)}.steps button .pts{font-variant-numeric:tabular-nums}.steps button.done .pts{color:var(--pen);font-weight:600}@media(max-width:520px){.steps{grid-template-columns:repeat(2,1fr)}}.task{display:flex;flex-direction:column;gap:6px}.task h1{font-family:var(--font-display);font-weight:500;font-size:clamp(24px,4.6vw,34px);line-height:1.15;margin:0;text-wrap:balance}.task p{margin:0;color:var(--muted);max-width:62ch}.sheet{background:var(--surface);border:1px solid var(--rule);border-radius:4px;padding:14px 10px 8px}.plot{position:relative;width:100%}.plot svg{display:block;width:100%;overflow:visible}.pad{position:absolute;touch-action:none;cursor:crosshair}.pad.locked{pointer-events:none}.g-minor{stroke:var(--grid);stroke-width:1}.g-major{stroke:var(--grid-strong);stroke-width:1}.g-zero{stroke:var(--muted);stroke-width:1.2}.axis-label{fill:var(--muted);font-family:var(--font-body);font-size:12px;font-variant-numeric:tabular-nums}.zone{fill:var(--zone)}.zone-edge{stroke:var(--pen);stroke-width:1;stroke-dasharray:4 4;opacity:.6}.hint{fill:var(--pen);font-family:var(--font-body);font-size:13px;font-weight:600}.known-line{fill:none;stroke:var(--ink);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.known-dot,.known-bar{fill:var(--ink)}.value-label{fill:var(--ink);font-family:var(--font-body);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round}.guess-line{fill:none;stroke:var(--pen);stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.guess-area{fill:var(--pen-soft)}.guess-bar{fill:var(--pen);opacity:.8}.guess-dot{fill:var(--pen);stroke:var(--surface);stroke-width:2}.guess-dot.empty{fill:var(--surface);stroke:var(--pen);stroke-width:1.5}.guess-dot:focus{outline:none}.guess-dot:focus-visible{stroke:var(--ink);stroke-width:3}.diff{fill:var(--pen-soft)}.truth-line{fill:none;stroke:var(--ink);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}.truth-line.shown{stroke-dashoffset:0;transition:stroke-dashoffset .9s ease-out}.truth-dot{fill:var(--ink);opacity:0}.truth-dot.shown{opacity:1;transition:opacity .3s ease-out .8s}.truth-bar{fill:none;stroke:var(--ink);stroke-width:2.5;opacity:0}.truth-bar.shown{opacity:1;transition:opacity .4s ease-out}.no-anim .truth-line.shown,.no-anim .truth-dot.shown,.no-anim .truth-bar.shown{transition:none}@media(prefers-reduced-motion:reduce){.truth-line.shown,.truth-dot.shown,.truth-bar.shown{transition:none}}.slice{stroke:var(--surface);stroke-width:2}.slice-0,.sw-0{fill:var(--c1);background:var(--c1)}.slice-1,.sw-1{fill:var(--c2);background:var(--c2)}.slice-2,.sw-2{fill:var(--c3);background:var(--c3)}.slice-3,.sw-3{fill:var(--c4);background:var(--c4)}.ring{stroke:var(--surface);stroke-width:1.5}.pie-tick{stroke:var(--ink);stroke-width:2.5;stroke-linecap:round}.slice-label{fill:var(--ink);font-family:var(--font-body);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round}.knob{position:absolute;width:36px;height:36px;margin:-18px 0 0 -18px;border-radius:50%;background:var(--surface);border:2.5px solid var(--ink);touch-action:none;cursor:grab;padding:0}.knob:after{content:"";position:absolute;inset:9px;border-radius:50%;background:var(--ink)}.knob:focus-visible{outline:3px solid var(--pen);outline-offset:2px}.knob[hidden]{display:none}.legend{display:flex;flex-wrap:wrap;gap:4px 18px;padding:6px 6px 4px;font-size:13px;color:var(--muted)}.legend span{display:inline-flex;align-items:center;gap:7px}.legend i{display:inline-block;width:22px;height:0;border-top:3px solid var(--ink)}.legend i.pen{border-top-color:var(--pen)}.legend i.sw{width:12px;height:12px;border:0;border-radius:2px}.legend b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px}.status{flex:1 1 260px;margin:0;font-size:15px}.buttons{display:flex;flex-wrap:wrap;gap:10px}.buttons button{font:inherit;font-weight:600;padding:10px 18px;border-radius:4px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer}.buttons button.primary{background:var(--ink);color:var(--surface)}.buttons button:disabled{opacity:.4;cursor:not-allowed}.buttons button[hidden]{display:none}button:focus-visible{outline:3px solid var(--pen);outline-offset:2px}.result{border-top:2px solid var(--ink);padding-top:18px;display:flex;flex-direction:column;gap:18px}.result[hidden],.summary[hidden]{display:none}.verdict{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px}.score{font-family:var(--font-display);font-weight:700;font-size:64px;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap}.score small{font-family:var(--font-body);font-size:16px;font-weight:500;color:var(--muted)}.verdict-text{flex:1 1 260px;display:flex;flex-direction:column;gap:4px}.verdict-text strong{font-family:var(--font-display);font-weight:500;font-size:22px;line-height:1.25}.verdict-text p{margin:0;color:var(--muted);max-width:56ch}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums;font-size:15px}th,td{padding:7px 10px;text-align:right;border-bottom:1px solid var(--rule);white-space:nowrap}th:first-child,td:first-child{text-align:left}thead th{font-weight:600;color:var(--muted);font-size:13px}td.yours{color:var(--pen);font-weight:600}.summary{background:var(--surface);border:2px solid var(--ink);border-radius:4px;padding:16px 18px;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 20px}.summary strong{font-family:var(--font-display);font-weight:700;font-size:28px;font-variant-numeric:tabular-nums}.summary span{color:var(--muted)}.fineprint{color:var(--muted);font-size:13px;display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--rule);padding-top:14px}.fineprint p{margin:0;max-width:70ch}
