:root{--bg:#fbfaf6;--fg:#1b1f1d;--muted:#4a5450;--accent:#0b5d4f;--accent-fg:#fff;--line:#d3d8d2;--card:#f1f3ee;--warn:#8a3b00;--warnbg:#fff1e0;--focus:#0a3dff;--maxw:44rem}
@media (prefers-color-scheme:dark){:root{--bg:#121614;--fg:#e8ece9;--muted:#b4beb9;--accent:#6fd3bd;--accent-fg:#0b1512;--line:#333c38;--card:#1a201d;--warn:#ffb77a;--warnbg:#2b1d10;--focus:#8fb0ff}}
*{box-sizing:border-box}
html{font-size:100%;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:1.0625rem/1.65 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
.skip{position:absolute;left:.5rem;top:-4rem;background:var(--accent);color:var(--accent-fg);padding:.5rem .75rem;z-index:10;border-radius:.25rem}
.skip:focus{top:.5rem}
a{color:var(--accent);text-decoration:underline;text-underline-offset:.15em}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:2px}
header.site,main,footer.site{max-width:var(--maxw);margin:0 auto;padding:0 1rem}
header.site{padding-top:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--line)}
.brand{font-weight:700;font-size:1.25rem;text-decoration:none;color:var(--fg);letter-spacing:.01em}
nav ul{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.25rem .9rem}
nav a{display:inline-block;padding:.35rem 0;color:var(--fg);text-decoration:none;border-bottom:2px solid transparent}
nav a:hover,nav a[aria-current=page]{border-bottom-color:var(--accent)}
main{padding-top:1.5rem;padding-bottom:3rem}
h1{font-size:1.9rem;line-height:1.2;margin:1rem 0 1rem}
h2{font-size:1.35rem;line-height:1.3;margin:2rem 0 .5rem}
h3{font-size:1.1rem;margin:1.25rem 0 .4rem}
h4{font-size:1rem;margin:.75rem 0 .25rem}
p,ul,ol{margin:.75rem 0}
li{margin:.3rem 0}
.status{background:var(--card);border-left:4px solid var(--accent);padding:.6rem .9rem;margin:0 0 1rem;font-size:.95rem}
.status p{margin:0}
blockquote{border-left:4px solid var(--line);margin:1rem 0;padding:.1rem 1rem;color:var(--muted)}
mark.ph{background:var(--warnbg);color:var(--warn);padding:0 .3em;border-radius:.2em;font-weight:600}
footer.site{border-top:1px solid var(--line);padding-top:1rem;padding-bottom:2rem;font-size:.9rem;color:var(--muted)}
footer.site p{margin:.3rem 0}
.btn{font:inherit;font-weight:600;background:var(--accent);color:var(--accent-fg);border:2px solid var(--accent);border-radius:.4rem;padding:.55rem 1rem;cursor:pointer;min-height:2.75rem}
.btn.ghost{background:transparent;color:var(--accent)}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.btn:hover:not([disabled]){filter:brightness(1.08)}
.controls{display:flex;flex-wrap:wrap;gap:.6rem;margin:.75rem 0}
fieldset.presets{border:1px solid var(--line);border-radius:.4rem;padding:.5rem .9rem .75rem;margin:1rem 0}
fieldset.presets legend{padding:0 .4rem;font-weight:600}
label.preset{display:block;padding:.35rem 0;cursor:pointer}
label.preset input{width:1.1rem;height:1.1rem;vertical-align:-.15rem;accent-color:var(--accent)}
.status-line{background:var(--card);padding:.6rem .9rem;border-radius:.3rem;min-height:3rem}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:.3rem;margin:1rem 0}
table{border-collapse:collapse;width:100%;font-size:.85rem;min-width:56rem}
th,td{padding:.35rem .5rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{background:var(--card);position:sticky;top:0}
td.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
tr.row-flag td{background:var(--warnbg);color:var(--fg)}
tr.row-flag td:first-child{box-shadow:inset 4px 0 0 var(--warn)}
.tl{width:100%;height:auto;display:block;background:var(--card);border-radius:.3rem}
.tl .axis{stroke:var(--muted);stroke-width:2}
.tl .cp{stroke:var(--muted);stroke-width:1.5;stroke-dasharray:4 4}
.tl .lbl{fill:var(--muted);font-size:11px;font-family:system-ui,sans-serif}
.tl .rolled{fill:var(--line);opacity:.7}
.tl .dot{fill:var(--accent);stroke:var(--fg);stroke-width:1}
.tl polygon.dot.flagged{fill:#c2410c;stroke:var(--fg)}
.tl .dot.quar{fill:var(--bg);stroke:#c2410c;stroke-width:2.5}
.tl .dot.gone{opacity:.4}
.legend,.caption{font-size:.9rem;color:var(--muted)}
.caption{font-weight:600}
.answers,.summary{margin:1rem 0}
.qa{border:1px solid var(--line);border-radius:.3rem;padding:.4rem .9rem .6rem;margin:.6rem 0}
.qa dt{font-weight:600;font-size:.9rem;color:var(--muted);margin-top:.4rem}
.qa dd{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem;overflow-wrap:anywhere}
#demo-fallback table{min-width:0}
.formula{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem;background:var(--card);padding:.6rem .9rem;border-radius:.3rem;overflow-wrap:anywhere}
@media (min-width:48rem){h1{font-size:2.3rem}body{font-size:1.125rem}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
