:root{--game-red:#b54440;--game-blue:#254bb1}
.game-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:20px;align-items:start}
.game-settings{display:flex;flex-direction:column;align-items:stretch;gap:14px;padding:20px;background:white;border:1px solid var(--line)}
.level-navigation{display:grid;gap:6px;color:var(--muted);font-size:12px}
.level-navigation select{width:100%;min-height:38px;padding:7px 9px;border:1px solid var(--line);background:white;color:var(--ink)}
.stage-mark{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:13px;border-bottom:1px solid var(--line);font:12px var(--mono)}
.stage-mark strong{color:var(--teal);font-size:13px}
.task-instruction{margin:0;padding:0;border:0;font-size:14px;line-height:1.5}
.game-settings .game-message{min-height:0;margin:0}
.progression-prompt{margin:0;padding:12px;background:var(--wash);border-left:3px solid var(--teal);font-size:15px;line-height:1.6}
.progression-copy{margin:0;font:italic 15px/1.6 Georgia,"Times New Roman",serif;white-space:pre-wrap}
.progression-copy cite{display:block;margin-top:8px;font-size:12px}
.secret-found{margin:8px 0 0;color:var(--teal);font-size:13px;font-weight:700}
.effect-italic{font-style:italic}
.effect-bold{font-weight:700}
.effect-underline{text-decoration:underline;text-underline-offset:4px}
.effect-red{color:var(--game-red)}
.effect-alternating .character-red{color:var(--game-red)}
.effect-alternating .character-blue{color:var(--game-blue)}
.attention-callout{display:block;margin:8px 0 0;color:var(--ink);font-weight:700}
.game-play{min-width:0}
.game-readouts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:12px;padding:13px 16px;border:1px solid var(--line);border-bottom:0;background:white}
.game-readouts>div{text-align:center}
.game-readouts span{display:block;color:var(--muted);font-size:12px}
.game-readouts strong{display:block;margin-top:5px;font:500 20px var(--mono);font-variant-numeric:tabular-nums}
.canvas-wrap{position:relative;min-width:0;border:1px solid #b7c9cc;background:#f8fbfa}
#precision-canvas{display:block;width:100%;aspect-ratio:3/2;touch-action:none;cursor:crosshair;background:#f8fbfa}
.game-result{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;overflow-y:auto;padding:24px;background:#f8fbfaf2;text-align:center}
.game-result[hidden]{display:none}
.game-result h2{margin:12px 0 4px;font-size:26px}
.game-result p{max-width:440px;margin:4px 0;color:var(--muted);font-size:14px}
.game-result .lockin-progress{margin:0}
.game-result .actions{justify-content:center;flex-wrap:wrap}
.data-section{margin-top:34px;padding-top:24px;border-top:2px solid var(--ink)}
.data-section[hidden],.equation-section[hidden],.app-footer[hidden]{display:none}
.data-section .section-heading{align-items:start}
.data-section .section-heading p{margin:0;color:var(--muted);font:13px var(--mono)}
.data-table-wrap{margin-bottom:26px}
.data-questions{display:grid;gap:28px}
.data-question{padding-top:20px;border-top:1px solid var(--line)}
.ranked-time-grid{display:grid;gap:10px}
.ranked-time-row{display:grid;grid-template-columns:minmax(115px,180px) minmax(110px,180px) auto minmax(0,1fr);align-items:center;gap:10px}
.ranked-time-row input,.equation-answer-row input{width:100%;min-width:0;padding:8px 10px;border:1px solid var(--line);background:white;color:var(--ink)}
.answer-feedback{min-height:20px;font-size:13px;font-weight:600}
.answer-feedback.correct{color:#246b42}
.answer-feedback.retry{color:#9c321e}
.graph-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.graph-choice{display:grid;grid-template-columns:1fr;justify-items:center;gap:10px;padding:14px;border:1px solid var(--line);border-radius:3px;background:white;color:var(--ink);text-align:left}
.graph-choice:hover,.graph-choice[aria-pressed=true]{border-color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal)}
.graph-title{justify-self:start;font-size:16px;font-weight:700}
.graph-choice svg{display:block;width:min(100%,420px);height:auto;overflow:visible}
.graph-caption{justify-self:start;color:var(--muted);font-size:12px}
.pie-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:5px 14px;margin:0;padding:0;list-style:none;color:var(--muted);font-size:12px}
.chart-grid{stroke:#d9e1e3;stroke-width:1}
.chart-axis{stroke:#52646a;stroke-width:1.5}
.chart-tick{fill:#64737a;font:11px var(--font)}
.chart-label{fill:#203036;font:12px var(--font)}
.scatter-point{fill:var(--teal);stroke:white;stroke-width:2}
.fit-line{stroke:var(--game-red);stroke-width:3;stroke-dasharray:8 5}
.equation-display{padding:12px 14px;background:var(--teal-wash);color:var(--ink);font:600 19px var(--mono);font-variant-numeric:tabular-nums}
.equation-question{margin-top:18px}
.equation-answer-row{display:grid;grid-template-columns:minmax(110px,180px) auto minmax(0,1fr);align-items:center;gap:10px;margin-top:8px}
#make-line{margin-top:12px}
@media(max-width:900px){.game-layout{grid-template-columns:1fr}.game-play{grid-row:1}.game-settings{flex-direction:row;flex-wrap:wrap;align-items:center}.stage-mark{flex:1 0 100%}.task-instruction{flex:1 1 240px}.game-settings .game-message{flex:1 1 220px}.progression-prompt{flex:1 1 100%}}
@media(max-width:760px){.game-readouts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.game-readouts strong{font-size:19px}.graph-choice-grid{grid-template-columns:1fr}.ranked-time-row{grid-template-columns:minmax(0,1fr) minmax(80px,.7fr) auto}.ranked-time-row .answer-feedback{grid-column:1/-1}.equation-answer-row{grid-template-columns:minmax(90px,1fr) auto}.equation-answer-row .answer-feedback{grid-column:1/-1}.data-section .section-heading{gap:12px}}
@media(max-width:420px){.game-settings{padding:15px}.game-result{justify-content:flex-start;padding:15px}.game-result h2{font-size:22px}.ranked-time-row{grid-template-columns:minmax(0,1fr) auto}.ranked-time-row label,.ranked-time-row input{grid-column:1}.ranked-time-row button{grid-column:2;grid-row:1 / span 2}.ranked-time-row .answer-feedback{grid-column:1/-1}.game-readouts strong{font-size:18px}}