:root{color-scheme:dark;--bg:#09111d;--panel:#131f2e;--panel2:#0e1926;--line:#32445a;--line2:#536b84;--ink:#f7f9fc;--muted:#b7c6d8;--blue:#61d0ff;--teal:#8ee8dc;--orange:#ff9a72;--violet:#d9adff;--green:#9be4b3;--yellow:#ffd276;--red:#ff8578}
*{box-sizing:border-box}html,body{margin:0;width:100%;min-height:100%;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}html{font-size:18px}body{height:100dvh;overflow:hidden}button,input,select{font:inherit}button,select{border:1px solid var(--line2);background:#1a2a3d;color:var(--ink);border-radius:9px;padding:9px 12px;min-height:42px}button{cursor:pointer;font-weight:700}button:hover{background:#263c54}button[aria-pressed=true],button.active{background:#e2edf9;color:#101927;border-color:#e2edf9}button.primary{background:#e2edf9;color:#101927}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #fff;outline-offset:3px}
header{height:70px;padding:10px 18px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);background:#0c1624}.eyebrow{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}h1{margin:2px 0 0;font-size:clamp(24px,2.05vw,34px);line-height:1.05;letter-spacing:-.01em}.sub{font-size:15px;color:var(--muted);font-weight:400;margin-left:10px}.header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.header-actions a{border:1px solid var(--line2);background:#1a2a3d;color:var(--ink);border-radius:9px;padding:9px 12px;min-height:42px;text-decoration:none;font-weight:700;display:inline-flex;align-items:center}.header-actions a:hover{background:#263c54}.home-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 12px;border:1px solid var(--line2);background:#1a2a3d;color:var(--ink);border-radius:9px;text-decoration:none;font-weight:700}.home-link:hover{background:#263c54}
main{height:calc(100dvh - 70px);padding:10px 12px;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:12px;width:100%;min-height:0}.visual{height:100%;border:1px solid var(--line);border-radius:14px;background:linear-gradient(150deg,#142235,#0b1522);overflow:hidden;min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto}.stage-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-bottom:1px solid #29394d;min-height:46px}.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:13px}.legend span{display:flex;align-items:center;gap:6px}.key{width:11px;height:11px;border-radius:50%;display:inline-block}.stage-question{font-size:14px;color:var(--teal);font-weight:700;text-align:right}.scene-shell,.canvas-wrap,.svg-wrap{width:100%;height:100%;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(circle at 50% 42%,rgba(46,69,93,.18),transparent 63%)}.canvas-wrap canvas{display:block;width:100%;height:100%}.svg-wrap svg{display:block;width:100%;height:100%;max-width:100%;max-height:100%}.transport{padding:8px 10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;border-top:1px solid #29394d;background:#101b29}.transport label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:14px}.caption{padding:10px 14px;min-height:58px;background:#19283b;border-top:1px solid var(--line);font-size:clamp(16px,1.05vw,20px);line-height:1.3}.caption strong{color:var(--teal)}
.controls{height:100%;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:9px;padding-right:2px}.control{padding:12px 14px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.control h2{font-size:18px;margin:0 0 7px}.control p{margin:0;color:var(--muted);font-size:15px}.label{font-weight:700}.value-row{display:flex;align-items:baseline;gap:8px;margin:3px 0}.value-row output{font-size:31px;font-weight:700;font-variant-numeric:tabular-nums}.unit{font-size:15px;color:var(--muted)}input[type=range]{width:100%;accent-color:var(--blue);height:27px}.range-ends{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.numbers{margin-top:7px;border-top:1px solid var(--line)}.number-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:6px 0;border-bottom:1px solid #2a394b}.number-row span{color:var(--muted);font-size:13px}.number-row strong{font-size:16px;text-align:right}.status{margin-top:8px;padding:9px 10px;border:1px solid #445569;border-radius:10px;background:var(--panel2)}.status strong{display:block;margin-bottom:2px}.status p{font-size:14px}.status.good{border-color:#426b51}.status.good strong{color:var(--green)}.status.warn{border-color:#8c6a2e;background:#231b0f}.status.warn strong{color:var(--yellow)}.status.critical{border-color:#82413f;background:#251414}.status.critical strong{color:var(--red)}.tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.tabs.three{grid-template-columns:repeat(3,minmax(0,1fr))}.tabs.four{grid-template-columns:repeat(2,minmax(0,1fr))}.tabs button{padding:7px 6px;font-size:14px}.insight{padding:10px 11px;border-left:4px solid var(--teal);background:#0f1b29;border-radius:0 9px 9px 0}.insight .kicker{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);font-weight:700;margin-bottom:3px}.insight strong{font-size:17px;line-height:1.24;display:block}.hint{font-size:13px!important;margin-top:5px!important}.page-foot{display:none}.diagram-label{font-family:Arial,Helvetica,sans-serif;fill:#f6f8fc}.diagram-muted{fill:#b9c7da}.diagram-small{font-size:15px}.diagram-med{font-size:20px}.diagram-big{font-size:26px;font-weight:700}
@media(min-width:1700px){main{grid-template-columns:minmax(0,1fr) 390px;padding:12px 14px;gap:14px}.legend{font-size:15px}.caption{font-size:22px}.control{padding:14px 15px}.insight strong{font-size:19px}}
@media(max-width:1100px) and (min-width:821px){main{grid-template-columns:minmax(0,1fr) 300px;padding:8px;gap:8px}.sub{display:block;margin:3px 0 0}.stage-question{display:none}.control{padding:10px}.insight strong{font-size:16px}}
@media(max-width:820px){body{height:auto;overflow:auto}header{height:auto;min-height:64px;padding:10px 11px;align-items:flex-start}.eyebrow{display:none}h1{font-size:23px}.sub{display:block;font-size:14px;margin:3px 0 0}.header-actions button{font-size:14px;padding:7px 9px}main{height:auto;min-height:0;grid-template-columns:1fr;padding:8px;gap:9px}.visual{height:auto;display:grid;grid-template-rows:auto auto auto auto}.scene-shell,.canvas-wrap,.svg-wrap{height:auto;aspect-ratio:16/10}.stage-head{padding:8px 9px;min-height:0}.stage-question{display:none}.legend{font-size:13px;gap:7px 10px}.transport{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.transport button{min-width:0}.transport label{grid-column:1/-1}.caption{font-size:17px;min-height:0;padding:10px 12px}.controls{height:auto;overflow:visible;gap:8px}.control{padding:10px 11px}.tabs.three{grid-template-columns:repeat(3,minmax(0,1fr))}.number-row strong{max-width:55%}}
@media(max-width:440px){h1{font-size:21px}.tabs.three{grid-template-columns:1fr}.tabs.four{grid-template-columns:1fr 1fr}.transport{grid-template-columns:1fr 1fr}.legend{font-size:12px}.caption{font-size:16px}}

/* Fullscreen is intentionally animation-only. Controls, header, captions, and side panels stay out. */
.svg-wrap:fullscreen,.canvas-wrap:fullscreen,.scene-shell:fullscreen,
.svg-wrap:-webkit-full-screen,.canvas-wrap:-webkit-full-screen,.scene-shell:-webkit-full-screen{
  width:100vw!important;height:100vh!important;max-width:none!important;max-height:none!important;
  aspect-ratio:auto!important;background:#09111d!important;display:flex!important;align-items:center!important;justify-content:center!important;
}
.svg-wrap:fullscreen svg,.scene-shell:fullscreen svg,
.svg-wrap:-webkit-full-screen svg,.scene-shell:-webkit-full-screen svg{width:100vw!important;height:100vh!important;max-width:100vw!important;max-height:100vh!important;object-fit:contain}
.canvas-wrap:fullscreen canvas,.canvas-wrap:-webkit-full-screen canvas{width:100vw!important;height:100vh!important;display:block!important}

/* Minimal visual presentation: legends and the mechanism stay; overlay prompts are omitted. */
.stage-question{display:none!important}

.sub{display:none!important}

@media(max-width:620px){.header-actions{gap:5px}.header-actions a,.header-actions button{font-size:12px!important;padding:6px 8px!important;min-height:36px!important}}


/* 2026-09-26 responsive-only QA patch. Vertical page scroll prevents clipped instructions. */
html,body{max-width:100%;overflow-x:clip}
body{height:auto;min-height:100vh;min-height:100dvh;overflow-y:auto;overscroll-behavior-y:auto}
header{height:auto;min-height:68px;flex-wrap:wrap;align-items:center}
main{height:auto;min-height:calc(100dvh - 85px);align-items:start;grid-template-columns:minmax(0,1fr) minmax(300px,360px)}
.visual{position:sticky;top:8px;height:clamp(455px,calc(100dvh - 90px),940px);min-height:0;min-width:0}
.controls{height:auto;min-height:0;overflow:visible;overflow-wrap:anywhere;padding-bottom:16px}
.controls>*{max-width:100%;min-width:0}
.stage-head,.header-actions,.transport{flex-wrap:wrap}
.scene-shell,.canvas-wrap,.svg-wrap{min-height:0}
@media(min-width:1700px){main{grid-template-columns:minmax(0,1fr) minmax(360px,390px)}}
@media(max-width:1180px){
 body{height:auto;min-height:100dvh;overflow-y:auto}
 header{height:auto;min-height:62px}
 main{grid-template-columns:minmax(0,1fr);height:auto;min-height:0;padding:9px;gap:12px}
 .visual{position:relative;top:auto;height:auto;min-height:0;max-width:100%}
 .scene-shell,.canvas-wrap,.svg-wrap{height:auto;min-height:0;aspect-ratio:16/10}
 .controls{height:auto;min-height:0;overflow:visible}
}
@media(max-width:620px){
 header{padding:9px 10px;gap:8px}
 h1{font-size:clamp(20px,6vw,27px);overflow-wrap:anywhere}
 .header-actions{gap:6px;max-width:100%;justify-content:flex-start}
 .header-actions button,.header-actions a{min-width:0;white-space:normal;overflow-wrap:anywhere}
 main{padding:7px;gap:10px}
 .scene-shell,.canvas-wrap,.svg-wrap{aspect-ratio:4/3}
 .stage-head{gap:7px}
 .caption{min-height:0;overflow-wrap:anywhere}
 .transport{gap:6px}
 .transport>*{min-width:0;overflow-wrap:anywhere}
 .controls{padding-bottom:20px}
 .controls select{display:block;width:100%;max-width:100%;min-width:0}
}
@media(max-height:700px) and (min-width:1181px){
 .visual{height:clamp(400px,calc(100dvh - 80px),620px)}
 main{min-height:0}
}
/* Fullscreen animations are governed by their existing selectors; do not crop canvases. */

.site-copyright{color:var(--muted);font-size:12px;text-align:center;padding:12px 14px;margin:0;border-top:1px solid var(--line);line-height:1.35}
