:root{--paper: #eff2ee;--card: #ffffff;--sunk: #e5eae2;--ink: #12211c;--ink-2: #3b4b44;--ink-3: #6b7c74;--rule: #d2d9d0;--rule-soft: #e3e8e1;--brand: #0e4d3a;--brand-2: #177054;--brand-soft: #dcebe2;--on-brand: #f4f8f4;--foil: #9a7a26;--foil-2: #c9a94e;--foil-soft: #f1e9cf;--ok: #16694f;--ok-soft: #d9ebe0;--bad: #a3382a;--bad-soft: #f4dfda;--warn: #85610f;--warn-soft: #f3e9d1;--shadow: 0 1px 2px rgb(18 33 28 / .06), 0 6px 18px -10px rgb(18 33 28 / .22);--radius: 6px;--serif: "Frank Ruhl Libre", "Times New Roman", Georgia, serif;--sans: "Heebo", "Segoe UI", system-ui, -apple-system, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "Courier New", monospace;color-scheme:light}@media (prefers-color-scheme: dark){:root{--paper: #0e1613;--card: #17211d;--sunk: #202c27;--ink: #e6ede8;--ink-2: #b1c0b8;--ink-3: #7e8e86;--rule: #2a3733;--rule-soft: #212c28;--brand: #6fcba8;--brand-2: #8ed9bc;--brand-soft: #14302a;--on-brand: #08211a;--foil: #d6b45f;--foil-2: #eccf8a;--foil-soft: #2c2617;--ok: #6fcba8;--ok-soft: #133027;--bad: #e8897b;--bad-soft: #33201c;--warn: #d8b060;--warn-soft: #2e2718;--shadow: 0 1px 2px rgb(0 0 0 / .4), 0 8px 24px -12px rgb(0 0 0 / .7);color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}h1,h2,h3{font-family:var(--serif);margin:0;line-height:1.2;text-wrap:balance;font-weight:700}p{margin:0}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--brand-2);outline-offset:2px;border-radius:3px}.num{font-family:var(--mono);font-variant-numeric:tabular-nums lining-nums}.app{min-height:100dvh;display:flex;flex-direction:column}.page{width:100%;max-width:46rem;margin:0 auto;padding:1rem 1rem 4rem;display:flex;flex-direction:column;gap:1.25rem;flex:1}.topbar{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule-soft);padding:.55rem max(1rem,env(safe-area-inset-right)) .55rem max(1rem,env(safe-area-inset-left))}.topbar-inner{max-width:46rem;margin:0 auto;display:flex;align-items:center;gap:.75rem}.topbar h2{font-size:1.05rem;flex:1;min-width:0}.back{display:inline-flex;align-items:center;gap:.3rem;background:none;border:1px solid var(--rule);border-radius:999px;padding:.25rem .7rem .25rem .55rem;font-size:.85rem;color:var(--ink-2);transition:background .15s,border-color .15s}.back:hover{background:var(--sunk);border-color:var(--ink-3)}.freshness{display:flex;align-items:center;gap:.45rem;font-size:.78rem;color:var(--ink-3)}.freshness .dot{width:.45rem;height:.45rem;border-radius:999px;background:var(--ok);flex:none}.freshness.busy .dot{background:var(--foil);animation:pulse 1.1s ease-in-out infinite}.freshness.error .dot{background:var(--bad)}@keyframes pulse{50%{opacity:.25}}@media (prefers-reduced-motion: reduce){.freshness.busy .dot{animation:none}}.home{flex:1;display:flex;flex-direction:column;justify-content:center;gap:1.5rem;padding-block:2rem}.crest{position:relative;display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem 1rem 1.75rem;text-align:center;isolation:isolate}.crest canvas{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:min(21rem,90%);height:min(21rem,90vw);z-index:-1;opacity:.9;pointer-events:none}.crest .seal{width:3.25rem;height:3.25rem;display:grid;place-items:center;border-radius:999px;border:1.5px solid var(--foil);color:var(--foil);background:var(--card)}.crest .eyebrow{font-size:.72rem;letter-spacing:.22em;color:var(--foil);font-weight:600}.crest h1{font-size:clamp(2.1rem,9vw,3rem);font-weight:800;letter-spacing:-.015em}.crest .tag{color:var(--ink-3);font-size:.95rem;max-width:26ch}.crest .flourish{width:5rem;height:1px;background:linear-gradient(to left,transparent,var(--foil),transparent);margin-top:.35rem}.choices{display:grid;gap:.75rem}.choice{display:flex;align-items:center;gap:.9rem;width:100%;text-align:start;background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);padding:1rem 1.1rem;box-shadow:var(--shadow);transition:transform .15s,border-color .15s}.choice:hover{border-color:var(--brand);transform:translateY(-1px)}.choice:active{transform:translateY(0)}.choice .glyph{flex:none;width:2.6rem;height:2.6rem;display:grid;place-items:center;border-radius:var(--radius);background:var(--brand-soft);color:var(--brand)}.choice .txt{display:flex;flex-direction:column;min-width:0}.choice .txt b{font-family:var(--serif);font-size:1.12rem;font-weight:700}.choice .txt span{font-size:.85rem;color:var(--ink-3)}.choice .chev{margin-inline-start:auto;color:var(--ink-3);flex:none}.tabpick{display:flex;align-items:center;gap:.6rem;background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);padding:.55rem .85rem}.tabpick>span{font-size:.78rem;font-weight:700;letter-spacing:.08em;color:var(--ink-3);flex:none}.tabpick select{flex:1;min-width:0;font:inherit;font-family:var(--serif);font-weight:700;font-size:1rem;color:var(--ink);background:transparent;border:none;padding:0;cursor:pointer}.tabpick.compact{padding:.25rem .7rem;border-radius:999px;border-color:var(--rule-soft)}.tabpick.compact select{font-size:.88rem}.card{background:var(--card);border:1px solid var(--rule-soft);border-radius:var(--radius);padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.75rem}.section-title{font-size:.78rem;font-weight:700;letter-spacing:.1em;color:var(--ink-3)}.chips{display:flex;flex-wrap:wrap;gap:.4rem}.chip{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--rule);background:var(--card);color:var(--ink-2);border-radius:999px;padding:.32rem .75rem;font-size:.88rem;font-weight:500;transition:background .12s,border-color .12s,color .12s}.chip .count{font-family:var(--mono);font-size:.78rem;color:var(--ink-3)}.chip[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.chip[aria-pressed=true] .count{color:color-mix(in srgb,var(--on-brand) 70%,transparent)}.chip.pass[aria-pressed=true]{background:var(--ok);border-color:var(--ok)}.chip.fail[aria-pressed=true]{background:var(--bad);border-color:var(--bad);color:#fff}@media (prefers-color-scheme: dark){.chip.fail[aria-pressed=true]{color:#33201c}}.filter-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.linkish{background:none;border:none;padding:0;font-size:.8rem;color:var(--brand-2);text-decoration:underline;text-underline-offset:2px}.check{display:flex;align-items:flex-start;gap:.6rem;background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent);border-radius:var(--radius);padding:.7rem .8rem;cursor:pointer}.check input{accent-color:var(--brand);width:1.05rem;height:1.05rem;margin:.15rem 0 0;flex:none}.check .txt b{font-size:.92rem;display:block}.check .txt span{font-size:.8rem;color:var(--ink-3)}.primary{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;background:var(--brand);color:var(--on-brand);border:none;border-radius:var(--radius);padding:.85rem 1rem;font-size:1rem;font-weight:600;box-shadow:var(--shadow);transition:filter .15s}.primary:hover{filter:brightness(1.08)}.primary:disabled{opacity:.5;cursor:not-allowed;filter:none}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(6.5rem,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden}.stat{background:var(--card);padding:.7rem .85rem;display:flex;flex-direction:column;gap:.05rem}.stat .v{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:600;line-height:1.1;letter-spacing:-.03em}.stat .k{font-size:.78rem;color:var(--ink-3)}.stat.ok .v{color:var(--ok)}.stat.bad .v{color:var(--bad)}.list{display:flex;flex-direction:column;gap:.5rem}.group-head{display:flex;align-items:baseline;gap:.5rem;border-bottom:1px solid var(--rule);padding-bottom:.3rem;margin-top:.4rem}.group-head h3{font-size:1.02rem}.group-head .n{font-family:var(--mono);font-size:.78rem;color:var(--ink-3)}.srow{display:flex;align-items:center;gap:.7rem;width:100%;text-align:start;background:var(--card);border:1px solid var(--rule-soft);border-inline-start:3px solid var(--rule);border-radius:var(--radius);padding:.6rem .8rem;transition:border-color .12s,background .12s}.srow.pass{border-inline-start-color:var(--ok)}.srow.fail{border-inline-start-color:var(--bad)}.srow.missing{border-inline-start-color:var(--warn)}.srow.nodata{border-inline-start-color:var(--ink-3)}button.srow:hover{background:var(--sunk)}.srow .who{display:flex;flex-direction:column;min-width:0;flex:1}.srow .who b{font-family:var(--serif);font-size:1.02rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.srow .who span{font-size:.76rem;color:var(--ink-3)}.srow .score{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:600;flex:none}.srow .score.pass{color:var(--ok)}.srow .score.fail{color:var(--bad)}.srow .score small{font-size:.7rem;color:var(--ink-3);font-weight:400}.badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;font-weight:600;padding:.1rem .5rem;border-radius:999px;white-space:nowrap;line-height:1.6}.badge.pass{background:var(--ok-soft);color:var(--ok)}.badge.fail{background:var(--bad-soft);color:var(--bad)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.plain{background:var(--sunk);color:var(--ink-3)}.badge.foil{background:var(--foil-soft);color:var(--foil)}.grades{display:flex;flex-wrap:wrap;gap:.35rem}.gpill{display:flex;flex-direction:column;align-items:center;min-width:4.9rem;background:var(--sunk);border-radius:4px;padding:.3rem .5rem}.gpill em{font-style:normal;font-size:.66rem;color:var(--ink-3);white-space:nowrap}.gpill strong{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:600}.gpill.empty strong{color:var(--warn)}.need{background:var(--brand-soft);border-radius:var(--radius);padding:.6rem .75rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:.15rem .5rem}.need .lbl{font-size:.8rem;color:var(--ink-2);font-weight:600}.need .val{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:600;color:var(--brand-2);line-height:1}.need .of{font-size:.78rem;color:var(--ink-2)}.need.impossible{background:var(--bad-soft)}.need.impossible .val{color:var(--bad);font-size:1rem}.note{font-size:.8rem;color:var(--ink-3);line-height:1.5}.note b{color:var(--ink-2)}.searchbox{position:relative;display:flex;align-items:center}.searchbox svg{position:absolute;inset-inline-start:.7rem;color:var(--ink-3);pointer-events:none}.searchbox input{width:100%;font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--rule);border-radius:999px;padding:.65rem 2.5rem}.searchbox input::placeholder{color:var(--ink-3)}.searchbox .clear{position:absolute;inset-inline-end:.45rem;background:var(--sunk);border:none;border-radius:999px;width:1.5rem;height:1.5rem;display:grid;place-items:center;color:var(--ink-2);font-size:.9rem;line-height:1}mark{background:var(--foil-soft);color:inherit;border-radius:2px;padding:0 1px}.state{display:flex;flex-direction:column;align-items:center;gap:.6rem;text-align:center;padding:2.5rem 1rem;color:var(--ink-3)}.state.error{color:var(--bad)}.spinner{width:1.6rem;height:1.6rem;border:2px solid var(--rule);border-top-color:var(--brand);border-radius:999px;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2.5s}}.celebrate{position:relative;overflow:hidden;background:linear-gradient(160deg,var(--brand) 0%,color-mix(in srgb,var(--brand) 80%,var(--foil)) 100%);color:var(--on-brand);border-radius:var(--radius);padding:1.4rem 1.2rem;display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center}.celebrate .seal{width:3rem;height:3rem;display:grid;place-items:center;border-radius:999px;border:1.5px solid var(--foil-2);color:var(--foil-2);margin-bottom:.15rem}.celebrate h3{font-size:1.35rem;color:inherit}.celebrate p{font-size:.9rem;opacity:.85}.celebrate .mark{font-family:var(--mono);font-size:2.6rem;font-weight:600;line-height:1;color:var(--foil-2);margin-top:.3rem}.confetti-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:60}.detail-grid{display:flex;flex-direction:column;gap:.8rem}.kv{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;font-size:.85rem;color:var(--ink-3)}.kv b{color:var(--ink-2);font-weight:600}
