:root{--bg: #f6f3ec;--panel: #ffffff;--ink: #1c2230;--muted: #5b6475;--line: #d9d5ca;--accent: #b4235a;--accent-ink: #ffffff;--bad: #b91c1c;--disk: #fffdf8;--shade: #ece5d6;--edge: #6b5f4a;--mirror: #c9bfa9;--rim: #1f2a44;--mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #11141b;--panel: #1a1f29;--ink: #e6e8ee;--muted: #9aa3b5;--line: #2f3644;--accent: #f472b6;--accent-ink: #1a0b12;--bad: #f87171;--disk: #0b0e14;--shade: #1b2232;--edge: #8e9ab8;--mirror: #343d52;--rim: #c7cfe2;color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow-x:hidden}#app{max-width:1180px;margin:0 auto;padding:0 16px 40px}.site-header{padding:18px 0 10px}.site-header h1{margin:0;font-size:2rem;letter-spacing:-.01em}.tagline{margin:4px 0 0;color:var(--muted);max-width:72ch}.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}@media(max-width:860px){.layout{grid-template-columns:minmax(0,1fr)}}.stage-col{min-width:0}.stage{position:relative;width:100%;max-width:760px;margin:0 auto;aspect-ratio:1 / 1;outline:none;border-radius:50%}.stage:focus-visible{box-shadow:0 0 0 3px var(--accent)}.layer{position:absolute;inset:0;display:block}.overlay{touch-action:none;cursor:crosshair}.stage[data-tool=move] .overlay{cursor:grab}.stage[data-tool=move] .overlay:active{cursor:grabbing}.stage[data-tool=measure] .overlay{cursor:cell}.readout{text-align:center;color:var(--muted);font-size:.9rem;margin:8px 0 0;font-variant-numeric:tabular-nums}.status{text-align:center;margin:4px 0 0;font-size:.95rem;min-height:1.5em}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}.panel section{border-bottom:1px solid var(--line);padding-bottom:10px}.panel h2{font-size:1rem;margin:4px 0 8px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.panel details{padding:4px 0}.panel summary{cursor:pointer;font-weight:600}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.pq{display:inline-flex;align-items:center;gap:2px;font-family:var(--mono);font-size:1.1rem}.pq input{width:3.6em;text-align:center}.field{display:flex;flex-direction:column;gap:4px;margin-top:8px;font-size:.95rem}.field-label{font-weight:600}.field small{color:var(--muted);font-size:.82rem}.checks{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px}.check{display:inline-flex;gap:6px;align-items:center;font-size:.95rem}button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);border-radius:7px;padding:6px 12px;cursor:pointer}button.secondary{background:var(--panel);color:var(--ink);border-color:var(--line)}button.small{padding:2px 10px;font-size:.88rem}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,select{font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:4px 6px;max-width:100%}input[type=range]{width:100%;padding:0;accent-color:var(--accent)}input[type=checkbox]{width:17px;height:17px;accent-color:var(--accent)}input[type=color]{width:34px;height:30px;padding:1px}.seg{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.seg button{background:var(--panel);color:var(--ink);border-color:var(--line);padding:6px 4px;font-size:.9rem}.seg button[aria-checked=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.swatches{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;align-items:center}.swatch{width:28px;height:28px;border-radius:50%;padding:0;border:2px solid var(--line)}.swatch[aria-checked=true]{outline:3px solid var(--accent);outline-offset:1px}.button-row{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.measure-out p{margin:4px 0}.muted{color:var(--muted)}.error{color:var(--bad)}.facts{display:grid;grid-template-columns:max-content 1fr;gap:3px 10px;margin:6px 0;font-size:.9rem}.facts dt{font-weight:600}.facts dd{margin:0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.explain{max-width:78ch;margin:28px auto 0}.explain h2{font-size:1.25rem}.explain p{color:var(--ink)}@media(max-width:480px){.site-header h1{font-size:1.6rem}.facts{grid-template-columns:1fr}}
