/* A clue is one screen: the graph, one decision, and a clear next step. */
html,body{height:100%;font-size:16px}body{overflow:hidden}#app{height:100dvh;display:flex;flex-direction:column}button{touch-action:manipulation}.primary,.secondary,.text-button{font-size:16px;min-height:44px}.eyebrow{font-size:12px;letter-spacing:1.3px;margin-bottom:5px}.play-topbar{height:66px;flex-shrink:0;padding:8px 3%;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);background:var(--surface)}.brand{font-size:18px}.brand img{height:40px;width:40px}.game-wordmark{font-size:20px}.top-actions{gap:12px}.game-shell{width:100%;max-width:1600px;margin:0 auto;flex:1;min-height:0;padding:20px 3% 8px;display:grid;grid-template-rows:auto 48px minmax(0,1fr) 42px;gap:14px}.mission{display:flex;justify-content:space-between;align-items:center;gap:22px}.mission h1{font-size:32px;line-height:1.15;letter-spacing:-1px}.mission p{font-size:17px;line-height:1.4;margin-top:8px;max-width:950px}.evidence-trigger{flex-shrink:0}.clue-path{display:flex;gap:8px;align-items:center}.clue-path button{border:1px solid var(--line);border-radius:30px;background:transparent;padding:6px 15px 6px 8px;display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;min-height:42px;color:var(--muted)}.clue-path button>span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#e3e7dc;font-size:13px}.clue-path button>span .icon{width:16px}.clue-path button.active{background:var(--dark);border-color:var(--dark);color:white}.clue-path button.active>span{background:#ffffff25;color:white}.clue-path button.done:not(.active){color:var(--dark);border-color:#a9c4b4;background:var(--mint)}.play-workspace{min-height:0;outline:none}.play-layout{height:100%;display:grid;grid-template-columns:minmax(0,1.8fr) minmax(310px,.9fr);gap:20px}.graph-card,.move-card{min-width:0;border-radius:20px;min-height:0}.graph-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);padding:24px;display:flex;flex-direction:column}.graph-head{display:flex;align-items:start;justify-content:space-between;gap:10px}.graph-head h2{font-size:25px;line-height:1.25;letter-spacing:-.6px}.graph-instruction{font-size:17px;line-height:1.45;margin-top:9px;color:#51655d}.graph-card .legend{font-size:15px;margin-top:15px;gap:22px}.legend i{height:11px;width:11px}.graph-card .chart-area{flex:1;min-height:0;padding:0;display:flex;align-items:center;justify-content:center}.graph-card .plot{height:100%;width:100%;min-height:0;max-height:460px;margin:0;overflow:visible}.tick,.axis-label{font-size:16px}.median-label{font-size:16px}.group-label{font-size:22px}.readout{display:flex;justify-content:space-evenly;gap:12px;border-top:1px solid var(--line);padding-top:13px;flex-shrink:0}.readout>span{font-size:14px;color:var(--muted);text-align:center}.readout b{display:block;font-size:25px;font-family:Manrope,system-ui,sans-serif;color:var(--dark);margin-top:4px}.readout>span:nth-child(2) b{color:var(--orange)}.graph-card .graph-control{margin:8px 0;font-size:16px;padding:8px 12px;gap:10px;flex-shrink:0}.graph-card .axis-control label{flex-basis:auto}.graph-card .graph-control select{font-size:16px;min-height:44px}.graph-card input[type=range]{min-height:32px}.move-card{background:#e7eee3;border:1px solid #d0ddcb;padding:24px;display:flex;flex-direction:column}.move-label{display:flex;align-items:center;gap:11px;font-size:15px;color:var(--teal);font-weight:600}.step-orb{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--dark);color:white;font-size:20px}.move-card h2{font-size:27px;line-height:1.2;margin-top:20px;letter-spacing:-.6px}.choice-prompt{font-size:17px;color:#51655d;line-height:1.45;margin-top:12px}.observation-choices{display:grid;gap:12px;margin-top:20px}.observation{display:flex;align-items:center;gap:12px;width:100%;min-height:68px;border:2px solid #d1dccb;border-radius:13px;background:var(--surface);padding:14px 16px;text-align:left;font-size:18px;line-height:1.35;color:var(--ink);transition:background .16s,border-color .16s,transform .16s}.observation:hover{border-color:#7a9d89;background:#f2f7ee}.observation.selected{border-color:var(--teal);background:#d8ede1}.choice-dot{width:26px;height:26px;display:grid;place-items:center;border:2px solid #afc2a9;border-radius:50%;flex-shrink:0;color:var(--teal);font-size:17px}.observation.selected .choice-dot{background:var(--teal);border-color:var(--teal);color:white}.choice-status{font-size:14px;color:#52664b;line-height:1.4;margin-top:12px;min-height:20px}.flow-next{width:100%;margin-top:auto;min-height:52px;font-size:18px}.hint-trigger{display:flex;align-items:center;gap:9px;margin-top:10px;font-size:15px;justify-content:center;white-space:normal}.hint-trigger .tess-shape{height:32px;width:32px;margin:0}.play-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:13px}.play-footer>div{display:flex;align-items:center;gap:20px}.play-footer .text-button{font-size:14px;min-height:36px}.play-footer .icon-button{min-height:36px;padding:6px}.decision-card{height:100%;max-width:950px;margin:auto;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:26px 38px;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:15px}.decision-card>h2{font-size:32px;line-height:1.2}.decision-card>p{font-size:18px;line-height:1.45;color:var(--muted)}.evidence-strip{display:flex;gap:10px;flex-wrap:wrap}.evidence-strip span{background:var(--mint);padding:10px 13px;border-radius:8px;font-size:14px}.verdict-choices{display:grid;gap:10px}.decision-card>.text-button{align-self:center;font-size:16px}.review-medal{height:50px;width:50px;background:var(--mint);color:var(--teal);border-radius:50%;font-size:32px;display:grid;place-items:center}.review-message{padding:20px;background:var(--mint);border-radius:13px}.review-message>span{font-size:13px;letter-spacing:1px;color:var(--teal)}.review-message>p{font-size:19px;line-height:1.5;margin-top:8px}.feedback-pages,.review-card .review-actions{display:flex;gap:12px;justify-content:center;margin:0}.review-card .review-actions button{font-size:17px}.record-picker{display:grid;gap:12px}.record-picker small{display:block;color:var(--muted);font-size:14px;margin-top:6px}.record-picker b{font-size:18px}.record-picker .observation>.icon{margin-left:auto}dialog{max-height:calc(100dvh - 24px);max-width:740px}.dialog-head{padding:16px 24px}.dialog-body{padding:20px 24px}.dialog-body p{font-size:17px;line-height:1.5;margin-bottom:14px}.dialog-body .large{font-size:20px;line-height:1.5}.dialog-body h3{font-size:18px}.dialog-body .small{font-size:14px!important}.dialog-foot{padding:14px 24px}.source-line,.source-details dt{font-size:14px}.source-details dd{font-size:16px}.source-details{padding:10px;gap:20px}.data-table{font-size:16px;margin:14px 0}.data-table th,.data-table td{padding:5px 12px}.data-table caption{font-size:16px}.case-option h3{font-size:20px}.case-option p,.case-level{font-size:15px}.case-option{padding:15px}.brief-banner{font-size:16px}.dialog-body .muted.small{display:none}.graph-card{animation:scene-in .2s ease-out}.move-card{animation:scene-in .25s ease-out}@keyframes scene-in{from{opacity:.6;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}.reduce-motion *{animation:none!important;transition:none!important}
@media(max-height:780px) and (min-width:761px){.game-shell{padding-top:12px;gap:10px}.mission h1{font-size:28px}.mission p{font-size:16px;margin-top:5px}.graph-card,.move-card{padding:18px}.move-card h2{margin-top:12px;font-size:24px}.observation-choices{margin-top:12px;gap:10px}.observation{font-size:17px;min-height:62px;padding:12px}.choice-prompt{font-size:16px;margin-top:8px}.graph-head h2{font-size:23px}.graph-instruction{font-size:16px;margin-top:5px}.graph-card .legend{margin-top:8px}.readout{padding-top:8px}.readout b{font-size:22px}.decision-card{padding:20px 30px;gap:11px}.decision-card>h2{font-size:28px}.review-message{padding:14px}}
@media(max-width:760px){.play-topbar{height:52px;padding:5px 14px;gap:8px}.brand span{display:none}.brand img{height:34px;width:34px}.game-wordmark{font-size:17px;gap:6px}.game-wordmark .icon{width:20px}.top-actions{gap:2px}.top-actions .secondary{padding:7px 12px;font-size:15px;min-height:38px}.top-actions .icon-button{padding:7px;min-height:38px}.game-shell{padding:10px 12px 3px;gap:8px;grid-template-rows:auto 38px minmax(0,1fr) 32px}.mission{gap:8px;align-items:start}.mission h1{font-size:24px;letter-spacing:-.6px}.mission p{font-size:15px;margin-top:5px;line-height:1.35}.mission .eyebrow{font-size:10px}.evidence-trigger{font-size:14px;min-height:38px;padding:7px}.evidence-trigger .icon{display:none}.clue-path{gap:5px}.clue-path button{flex:1;justify-content:center;gap:4px;font-size:12px;padding:6px 4px;min-height:34px;border-radius:8px;line-height:1.15;white-space:normal}.clue-path button>span{width:20px;height:20px;flex-shrink:0;font-size:11px}.clue-path button>span .icon{width:13px}.play-layout{grid-template-columns:1fr;grid-template-rows:minmax(0,1.05fr) minmax(0,1fr);gap:8px}.graph-card{padding:12px;border-radius:13px}.graph-head h2{font-size:19px;line-height:1.2}.graph-head .eyebrow{display:none}.graph-head .icon-button{min-height:30px;padding:3px}.graph-instruction{font-size:14px;line-height:1.35;margin-top:3px}.graph-card .legend{margin-top:5px;font-size:13px;gap:15px}.graph-card .legend i{width:8px;height:8px}.graph-card .chart-area{min-height:80px}.graph-card .plot{max-height:none}.readout{padding-top:5px;gap:6px}.readout>span{font-size:11px}.readout b{font-size:18px;margin-top:1px}.tick,.axis-label,.median-label{font-size:22px}.group-label{font-size:27px}.tile-value{font-size:22px}.tile-status{font-size:21px}.bar-value{font-size:24px}.graph-card .graph-control{padding:5px 8px;margin:3px 0;font-size:14px;gap:5px;flex-wrap:nowrap}.graph-card .graph-control select{font-size:14px;min-height:32px}.graph-card .graph-control .secondary{font-size:13px;padding:5px 8px;min-height:32px}.graph-card .axis-control label{font-size:12px;flex-shrink:0}.graph-card .axis-control input{min-width:40px}.move-card{padding:12px;border-radius:13px;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto minmax(0,1fr) 20px 42px;column-gap:8px;row-gap:5px}.move-label{font-size:12px;grid-column:1;grid-row:1}.step-orb{width:23px;height:23px;font-size:13px;border-radius:7px}.move-card h2{font-size:20px;margin:0;grid-column:1 / -1;grid-row:2}.choice-prompt{display:none}.observation-choices{grid-column:1 / -1;grid-row:3;margin:0;gap:6px;min-height:0}.observation{font-size:16px;padding:8px 10px;min-height:48px;border-radius:9px;gap:8px}.choice-dot{width:22px;height:22px;font-size:14px}.choice-status{grid-row:4;grid-column:1 / -1;font-size:11px;min-height:0;margin:0}.flow-next{grid-row:5;grid-column:1 / -1;min-height:42px;margin:0;font-size:16px}.hint-trigger{grid-column:2;grid-row:1;margin:0;min-height:24px;font-size:12px}.hint-trigger .tess-shape{width:22px;height:22px}.play-footer{font-size:10px}.play-footer>div{gap:8px}.play-footer .text-button{font-size:12px;min-height:30px}.play-footer .icon-button{display:none}.decision-card{padding:18px;gap:12px;border-radius:13px}.decision-card>h2{font-size:25px}.decision-card>p{font-size:16px}.decision-card .eyebrow{font-size:11px}.evidence-strip{gap:6px}.evidence-strip span{font-size:12px;padding:7px 9px}.decision-card .observation{font-size:17px;padding:12px;min-height:54px}.review-message>p{font-size:17px}.review-message{padding:14px}.review-medal{width:40px;height:40px;font-size:25px}.review-card .review-actions{gap:8px}.review-card .review-actions button{font-size:15px;padding:8px 12px;white-space:normal}.dialog-head{padding:14px 18px}.dialog-head h2{font-size:23px}.dialog-body{padding:16px 18px}.dialog-body p{font-size:16px}.dialog-body .large{font-size:18px}.dialog-foot{padding:12px 18px}.record-picker{gap:8px}.record-picker b{font-size:17px}.record-picker small{font-size:13px}.source-line{font-size:12px}.source-details{gap:10px}.source-details dt{font-size:12px}.source-details dd{font-size:14px}.data-table{font-size:15px}.data-table th,.data-table td{padding:4px 8px}.hint-layout{gap:12px}.hint-layout .tess-shape{width:44px;height:44px}}
@media(max-width:760px){.tick,.axis-label{font-size:30px}.median-label{font-size:28px}.group-label{font-size:34px}.tile-value{font-size:29px}.tile-status{font-size:26px}.bar-value{font-size:30px}}
/* Allow natural reflow at large zoom or unusually short viewports. */
@media(max-height:580px){body{overflow:auto}#app{height:auto;min-height:100dvh}.game-shell{min-height:660px}.play-layout{min-height:420px}}

@media(min-width:761px){.tick,.axis-label{font-size:24px}.median-label{font-size:23px}.group-label{font-size:28px}.tile-value{font-size:25px}.tile-status{font-size:23px}.bar-value{font-size:25px}}

.graph-card .plot .tick,.graph-card .plot .axis-label{font-size:20px;fill:#43594f}.graph-card .plot .median-label{font-size:18px;fill:#43594f}.graph-card .plot .group-label{font-size:26px}.graph-card .plot .tile-value{font-size:20px}.graph-card .plot .tile-status{font-size:18px}
@media(max-width:760px){.graph-card .plot .tick{font-size:32px}.graph-card .plot .axis-label,.graph-card .plot .median-label{font-size:30px}.graph-card .plot .group-label{font-size:38px}.graph-card .plot .tile-value{font-size:29px}.graph-card .plot .tile-status{font-size:27px}}

@media(max-width:760px){.graph-card.case-advert .legend{display:none}.readout b{display:inline;font-size:16px;margin-left:5px}.graph-card .chart-area{min-height:0}.graph-instruction{font-size:14px}.graph-card.case-advert .graph-instruction{margin-bottom:4px}}
