:root{color-scheme:light;--bg:#f2eee4;--panel:#fffcf5;--ink:#24342f;--muted:#526159;--edge:#c7c8b9;--green:#11654c;--orange:#ae3b16;--tint:#e0eee6;--shadow:#24342f12}
:root[data-theme=dark]{color-scheme:dark;--bg:#15251f;--panel:#1c3028;--ink:#f4eedc;--muted:#c0cbbb;--edge:#5e7567;--green:#8ce1b9;--orange:#ffb38f;--tint:#29493b;--shadow:#0003}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#15251f;--panel:#1c3028;--ink:#f4eedc;--muted:#c0cbbb;--edge:#5e7567;--green:#8ce1b9;--orange:#ffb38f;--tint:#29493b;--shadow:#0003}}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:radial-gradient(ellipse at 15% 0%,var(--tint),transparent 65%),var(--bg);font-family:"Noto Serif CJK SC","Source Han Serif SC",Georgia,serif;line-height:1.75}main{max-width:1200px;margin:auto;padding:36px 26px}header{position:relative;padding:0 0 22px;border-bottom:2px solid var(--ink)}h1{font-size:clamp(2.5rem,7vw,4.5rem);line-height:1.1;letter-spacing:.06em;margin:18px 0}h2{font-size:1.4rem;margin:0 0 16px}h3{margin:0}.lead{max-width:680px;font-size:1.1rem}.eyebrow{font-size:.8rem;font-weight:bold;color:var(--green);letter-spacing:.12em}header button{float:right}button,input,select{font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--edge);border-radius:5px;padding:9px 11px;max-width:100%}button{cursor:pointer;border-color:var(--green);font-weight:bold}button:hover{background:var(--tint)}button:disabled{opacity:.55;cursor:default}:focus-visible{outline:3px solid var(--orange);outline-offset:3px}label{display:flex;flex-direction:column;gap:5px;font-size:.9rem;font-weight:bold;min-width:0}input,select{width:100%}.controls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;padding:26px 0 6px}.presets{grid-column:1/-1;display:flex;gap:9px;flex-wrap:wrap}.workspace{display:grid;grid-template-columns:1.15fr 1fr;gap:24px;margin:22px 0}.wheel-panel,.experiment,.notes{padding:24px;background:var(--panel);border:1px solid var(--edge);border-radius:12px;box-shadow:0 5px 24px var(--shadow);min-width:0}.experiment{align-self:start;border-top:5px solid var(--green)}#wheel{width:100%;height:auto;display:block}svg .rim{fill:none;stroke:var(--edge);stroke-width:1}svg .node{fill:var(--panel);stroke:var(--muted);stroke-width:1.5}svg .unit{fill:var(--green);stroke:var(--green)}svg .active{stroke:var(--orange);stroke-width:4}svg text{fill:var(--ink);font-family:Georgia,serif;font-size:14px;text-anchor:middle;dominant-baseline:middle}svg .center{font-size:28px}svg .trail{fill:none;stroke:var(--orange);stroke-width:1.8;opacity:.8}svg marker path{fill:var(--orange)}.legend{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;font-size:.8rem;color:var(--muted)}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--green)}.ordinary{background:var(--panel);border:1px solid var(--muted)}.line{width:18px;border-bottom:2px solid var(--orange)}.wrap{overflow-wrap:anywhere}#prediction-form{display:grid;gap:12px}#feedback,#error{color:var(--orange);font-weight:bold}#error:empty,#feedback:empty{display:none}#results{border-top:1px solid var(--edge);margin-top:20px;padding-top:20px}#power-result{font-size:1.15rem;color:var(--green);font-weight:bold}.step-buttons{display:flex;gap:12px;margin-top:12px}details{border-top:1px solid var(--edge);padding-top:12px}summary{cursor:pointer;font-weight:bold}.notes li{margin-bottom:14px}.notes ol{padding-left:24px}footer{margin-top:24px;font-size:.85rem;color:var(--muted)}[hidden]{display:none!important}@media(max-width:760px){main{padding:24px 14px}.controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.workspace{grid-template-columns:1fr}.wheel-panel,.experiment,.notes{padding:18px}.controls label:last-of-type{grid-column:1/-1}header button{font-size:.8rem;padding:6px}h1{clear:both;padding-top:14px}.notes{font-size:.95rem}}
@media(prefers-reduced-motion:no-preference){.workspace{animation:arrive .5s ease-out}@keyframes arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}}
