/* Classroom pass: larger reading text, compact content, a stable bottom action. */
:root{--font-size-body:clamp(20px,1.45vw,27px);--font-size-title:clamp(28px,2.3vw,42px);--modal-max-width:960px;--control-width:300px;--guide-height:96px}
body{line-break:strict}h1,h2,h3{text-wrap:balance}button{word-break:keep-all;line-height:1.25}
.experiment-heading .quest-brief>.eyebrow{display:none}.experiment-heading h1{padding:4px 0}
.activity-progress li{font-size:clamp(16px,1.2vw,21px)}.activity-progress li.next{border-width:2px;background:#ffe6a0;font-weight:700}
.activity-scene,.lab-stage{background:#fff9e8df}.activity-tools,.control-panel{height:auto;align-self:center;max-height:100%;padding:16px 16px 21px;gap:12px!important;scroll-padding:12px}
.activity-tools h3,.control-panel h2{font-size:clamp(24px,1.7vw,30px)}
.activity-tools .btn,.activity-button,.control-panel .btn,.time-controls .btn{font-size:clamp(20px,1.45vw,26px);min-height:52px;padding:10px 12px}
.activity-tools>p,.control-panel>p,.activity-status,.challenge-status,.activity-range,.control-panel .range-label{font-size:20px!important;line-height:1.4}
.activity-tools details p,.control-panel details p{font-size:18px}.activity-tools summary,.control-panel summary{font-size:18px;min-height:48px;display:flex;align-items:center}
.activity-tools .extra-explanation{margin-top:0}.quest-prize{display:none}
.stage-forward{position:sticky;bottom:-16px;z-index:3;box-shadow:0 4px 0 #98702f,0 -8px 12px var(--color-panel);margin-top:4px}
.next-action,.current-action{outline:2px solid #b78b36;outline-offset:3px}.next-action::after{content:' →';white-space:pre}
.compact-guide{padding-left:122px;padding-top:10px;padding-bottom:10px;gap:12px}.compact-guide p{font-size:clamp(20px,1.5vw,27px);line-height:1.4;padding-top:18px}
.compact-guide .buddy-name{font-size:16px;left:124px;top:8px}.compact-guide .hint-button{font-size:20px;min-width:100px;min-height:52px;padding:10px}
.compact-guide .concept-revisit{flex-shrink:0;font-size:18px;min-height:52px;padding:8px 12px}
.coach-help{position:absolute;right:0;bottom:calc(100% + 12px);width:min(600px,calc(100vw - 48px));padding:20px 24px;background:#fffae9;border:3px solid #b99b55;border-radius:22px;box-shadow:0 12px 35px #234b4a55;z-index:12}
.coach-help-head,.coach-help-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.coach-help-head b{font-size:22px}.coach-help-head .icon-btn{min-width:48px;min-height:48px}.coach-help p{padding:8px 0 16px;font-size:24px;line-height:1.5}.coach-help-actions{justify-content:flex-end}.coach-help .btn{font-size:20px}
.coach-spotlight{outline:4px solid #d09a2b!important;outline-offset:3px}
.scene-6 .lens-window{display:flex;align-items:center;gap:12px;font-size:20px;min-height:84px;padding:8px 12px;margin-top:8px}.scene-6 .lens-window>b{flex:0 0 100px;font-size:18px}.scene-6 .lens-window p{flex:1;min-width:0;font-size:20px}.scene-6 .lens-window .beaker{height:76px;width:96px;flex:none}.scene-6 .lens-window .record-pair{flex:0 0 180px;width:180px}.scene-6 .phaser-stage{min-height:190px}
.activity-stage-caption,.lab-stage>.stage-tag{font-size:18px}.activity-record,.picture-record>span,.record-pair b,.inquiry-options .btn{font-size:18px}.activity-trial small,.activity-seal,.pins-log span{font-size:16px}
.activity-5 .activity-drawing-pair canvas{height:clamp(150px,22vh,240px)}.time-controls{column-gap:8px;row-gap:8px}.time-controls .time-mode{display:none}.time-controls #time-description{font-size:18px}
.fieldwork-activity .challenge-status{display:none}.fieldwork-activity .activity-science{font-size:16px}.fieldwork-activity .activity-tools .eyebrow{display:none}.fieldwork-activity .activity-tools h3{font-size:25px}.fieldwork-activity .challenge-goal{padding:4px 0;margin:0}
.expedition-choices label,.expedition-choices select{font-size:20px}.expedition-choices .btn{margin:4px 0}
dialog{position:fixed;inset:0;margin:auto;max-height:calc(100dvh - 48px);box-sizing:border-box;line-height:1.5}
dialog::backdrop{background:#153c3ab3;backdrop-filter:none}
.app-dialog{padding:0;width:min(var(--modal-max-width),calc(100vw - 48px));overflow:hidden}
.app-dialog[open]{display:flex;flex-direction:column}.dialog-head{flex:none;padding:20px 24px;margin:0;gap:16px;background:#f5ecd5}.dialog-head h2{font-size:clamp(28px,2vw,36px);line-height:1.2}.dialog-head .icon-btn{flex:none;width:52px;height:52px}
.dialog-body{overflow:auto;overscroll-behavior:contain;min-height:0;padding:24px;scrollbar-width:thin}.dialog-body p,.dialog-body li{font-size:22px;line-height:1.5}.dialog-body h3{font-size:28px}.dialog-body small{font-size:17px}.dialog-body .btn{font-size:22px;min-height:56px}.dialog-body .reward-proof{font-size:20px}
.reward-dialog{width:min(740px,calc(100vw - 48px))}.reward-modal{padding:0}.reward-modal p{margin:12px auto;max-width:30em}.reward-character{height:126px;margin:0 auto;display:flex;justify-content:center;align-items:center}.reward-character .buddy-pose{width:128px;height:128px}.reward-character .prop-art{width:106px;height:106px}.reward-modal h3{margin:8px 0;font-size:34px}
.story-dialog{width:min(1080px,calc(100vw - 48px))}.story-dialog>.dialog-head{display:none}.story-dialog>.dialog-body{padding:0}.story-overlay{position:static;display:block;padding:0;background:none;backdrop-filter:none}.story-overlay>.story-card{width:100%;max-height:none;border:0;border-radius:0;grid-template-columns:1fr 1fr;box-shadow:none;overflow:visible}.story-illustration{min-height:360px;border-radius:0}.story-copy{padding:28px;gap:16px}.story-copy h2{font-size:clamp(30px,2.5vw,40px)}.story-copy p{font-size:22px}.story-copy ol{display:none}.story-copy small{display:none}.story-actions{flex-direction:column;gap:12px;margin-top:8px}.story-actions .btn{flex:auto;min-height:56px}
.settings-dialog{width:min(960px,calc(100vw - 48px))}.settings-scroll{padding:20px 24px;gap:16px}.settings-scroll p,.settings-scroll li,.settings-scroll label{font-size:20px}.settings-body summary,.settings-section summary{font-size:22px}.settings-head h2{font-size:32px}
.ending-copy>p,.ending-statement .btn,.ending-copy .home-actions .btn{font-size:22px}.ending-copy h1{font-size:clamp(32px,2.8vw,46px)}.ending-main{padding:24px;gap:28px}.ending-statement{margin-top:12px}.ending-statement h3{margin:0;font-size:25px}.ending-stats small{font-size:18px}
.field-passport article{padding:12px 8px;gap:10px}.field-passport b{font-size:20px}.field-passport summary{font-size:18px;min-height:48px;cursor:pointer}.field-passport details p{font-size:18px}.notebook-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.notebook-record{min-width:0}.notebook-record p{margin:8px 0}.notebook-record:last-child{grid-column:1/-1}
#toast{font-size:22px;line-height:1.4}
/* Media is fetched only when opened. The native dialog traps focus and blocks play below. */
.concept-dialog{width:min(1040px,calc(100vw - 48px));padding:0;overflow:hidden}.concept-dialog[open]{display:flex;flex-direction:column}.concept-dialog .eyebrow{font-size:17px}.concept-body{min-height:0;overflow:auto;padding:16px 24px 8px}.concept-screen{position:relative;width:min(100%,calc((100dvh - 330px)*1.7778));aspect-ratio:16/9;margin:auto;overflow:hidden;border:2px solid #c8b47e;border-radius:20px;background:#e1eddf}.concept-screen video,.concept-end{display:block;width:100%;height:100%;object-fit:contain}.concept-end{position:absolute;inset:0}.concept-end[hidden],.concept-play[hidden]{display:none}.concept-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);min-width:160px;font-size:22px}.concept-caption{display:flex;align-items:center;gap:16px;max-width:880px;margin:8px auto 0;min-height:90px}.concept-caption .buddy-pose{width:90px;height:90px;flex:none}.concept-caption p{font-size:clamp(22px,1.8vw,32px);line-height:1.4;margin:0}.concept-beats{display:flex;gap:10px;justify-content:center}.concept-beats button{width:48px;height:48px;border-radius:50%;border:2px solid #bea563;background:#fff9e9;color:#27594f;font-size:20px;cursor:pointer}.concept-beats button[aria-pressed=true]{background:#27594f;color:#fff9e9}.concept-footer{padding:16px 24px 20px;display:flex;justify-content:space-between;gap:16px;flex:none;border-top:1px solid #caba8b}.concept-footer .btn{font-size:22px;min-height:56px}.concept-transcript{font-size:22px;line-height:1.5;padding-left:30px}.concept-transcript li{margin:10px 0}
.concept-play:hover:not(:disabled){transform:translate(-50%,-50%)}.concept-play:active:not(:disabled){transform:translate(-50%,calc(-50% + 3px))}
@media(min-width:701px) and (orientation:landscape){
 .experiment-shell,.experiment-main{overflow:clip}
 .concept-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.42fr);grid-template-rows:1fr auto;gap:16px 24px;padding:20px 24px}
 .concept-dialog .concept-screen{grid-column:1;grid-row:1/3;width:100%;align-self:center}
 .concept-caption{grid-column:2;grid-row:1;flex-direction:column;justify-content:center;align-items:flex-start;gap:12px;min-height:0;margin:0}
 .concept-caption .buddy-pose{width:100px;height:100px;align-self:center}.concept-caption p{font-size:clamp(22px,1.7vw,30px);line-height:1.5}
 .concept-beats{grid-column:2;grid-row:2;padding:8px 0;align-self:end}.concept-transcript{grid-column:1/-1;margin:0}
}
@media(min-width:1600px){:root{--control-width:370px;--guide-height:110px;--content-max-width:1880px}.activity-tools>p,.control-panel>p,.activity-status,.challenge-status,.activity-range,.control-panel .range-label{font-size:25px!important}.activity-stage-caption,.lab-stage>.stage-tag{font-size:23px}.activity-tools summary,.control-panel summary{font-size:22px}.activity-tools details p{font-size:22px}.compact-guide{padding-left:150px}.compact-guide .buddy-name{left:152px;font-size:18px}.compact-guide .hint-button{font-size:24px;min-width:130px}.concept-caption p{font-size:32px}.concept-dialog{width:min(1240px,calc(100vw - 80px))}.concept-screen{width:min(100%,calc((100dvh - 350px)*1.7778))}.dialog-body p,.dialog-body li{font-size:26px}.dialog-body .btn{font-size:26px}}
@media(max-width:1100px) and (orientation:landscape){:root{--control-width:274px;--guide-height:104px}.experiment-main{padding:8px 16px 12px}.activity-tools,.control-panel{padding:12px 12px 18px;gap:10px!important}.compact-guide{padding-left:108px;gap:8px}.compact-guide .buddy-pose{width:100px;height:108px}.compact-guide .buddy-name{left:110px}.compact-guide .concept-revisit{font-size:16px;max-width:140px}.activity-progress li{font-size:16px;padding-right:7px}.activity-progress{gap:4px}.experiment-heading h1{font-size:28px}.page-count{padding:4px 8px}.story-copy{padding:24px}.story-copy p{font-size:20px}}
@media(max-height:740px) and (orientation:landscape){.compact-guide p{font-size:20px}.activity-tools,.control-panel{gap:8px!important}.dialog-head{padding:14px 20px}.dialog-body{padding:20px}.concept-body{padding-top:12px}.concept-caption{min-height:80px}.concept-caption .buddy-pose{height:76px;width:76px}.concept-screen{width:min(100%,calc((100dvh - 310px)*1.7778))}.concept-footer{padding:12px 20px 18px}.scene-6 .lens-window{min-height:92px}}
@media(orientation:portrait),(max-width:700px){:root{--guide-height:auto}.activity-tools,.control-panel{max-height:none;width:100%;align-self:stretch}.compact-guide{min-height:120px;flex-wrap:wrap;padding-left:100px}.compact-guide p{flex-basis:100%;font-size:20px}.compact-guide .buddy-name{left:102px}.compact-guide .buddy-pose{width:92px;height:100px}.compact-guide .hint-button{min-width:100px}.compact-guide .concept-revisit{font-size:18px}.story-overlay>.story-card{grid-template-columns:1fr}.story-illustration{height:190px;min-height:0}.story-copy{padding:20px}.story-copy h2{font-size:30px}.story-copy p{font-size:20px}.app-dialog,.concept-dialog,.settings-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.dialog-head{padding:16px}.dialog-head h2{font-size:26px}.dialog-body{padding:16px}.dialog-body p,.dialog-body li{font-size:20px}.concept-screen{width:100%}.concept-body{padding:12px}.concept-caption{gap:8px}.concept-caption p{font-size:20px}.concept-caption .buddy-pose{width:60px;height:70px}.concept-footer{padding:12px;gap:8px}.concept-footer .btn{font-size:19px}.coach-help{width:calc(100vw - 32px);right:-2px;padding:16px}.coach-help p{font-size:22px}.coach-help-actions .btn{font-size:18px}.stage-forward{position:static}.ending-main{padding:20px}}
@media print{dialog.app-dialog>.dialog-body{display:block!important;padding:0;overflow:visible}.dialog-body>*{display:none!important}.dialog-body>#certificate-print{display:block!important}}
@media(max-height:740px) and (orientation:landscape){.control-panel{padding:12px 12px 18px;gap:6px!important}.scene-6 .lens-window{min-height:84px}}

/* Shared classroom frame: the scene reaches the edges; controls float above it. */
:root{
 --hud-inset:16px;
 --hud-size:48px;
 --hud-clearance:136px;
 --surface-border:#b7a16b;
 --focus-ring:#805316;
 --panel-highlight:inset 0 1px 0 #fffef4;
}
.topbar,.experiment-shell .topbar{
 position:absolute;inset:var(--hud-inset) var(--hud-inset) auto;
 width:auto;height:var(--hud-size);padding:0;border:0;
 background:none;box-shadow:none;pointer-events:none;z-index:8;
}
.topbar-left,.topbar-right{pointer-events:auto}
.topbar-right{margin-left:auto}
.page-nav .icon-btn:nth-child(2){display:inline-flex}
.topbar .icon-btn,.topbar .nav-btn{
 width:var(--hud-size);height:var(--hud-size);min-width:var(--hud-size);
 background:#fff9e9;border:2px solid #8e7545;
 box-shadow:0 4px 0 #7964404d,inset 0 1px 0 #fff;
}
.topbar .icon-btn:hover:not(:disabled){background:#fff0bd;border-color:#6e683e}
.topbar .icon-btn:active:not(:disabled){box-shadow:none}
button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{
 outline-color:var(--focus-ring);outline-offset:4px;
}
.experiment-shell{display:block;position:relative;min-height:100dvh}
.experiment-main{
 padding:12px var(--space-lg) 16px;
 grid-template-rows:auto minmax(0,1fr);gap:12px;
}
.experiment-heading{
 min-height:56px;margin:0 var(--hud-clearance);justify-content:center;
}
.experiment-heading .back-map,.experiment-heading .page-count{display:none}
.experiment-heading .quest-brief{justify-content:center;align-items:center;text-align:center}
.experiment-heading .quest-brief h1{width:auto}
.experiment-heading h1{
 padding:7px 18px;font-size:clamp(25px,2.3vw,38px);line-height:1.3;
 background:#fff9e9f2;border:1px solid #d1bf8a;border-radius:var(--radius-pill);
 text-shadow:none;box-shadow:0 3px 0 #665a3224;
}
.activity-progress{
 position:absolute;width:1px;height:1px;overflow:hidden;
 clip-path:inset(50%);white-space:nowrap;pointer-events:none;
}
.scene-workspace{position:relative;grid-template-rows:minmax(0,1fr);gap:0}
.activity-area{grid-row:1}
.activity-scene,.lab-stage{box-shadow:var(--panel-highlight),var(--shadow-card)}
.activity-tools,.control-panel{
 border-color:var(--surface-border);background:#fff9eaf5;
 box-shadow:var(--panel-highlight),0 5px 0 #5d54352b,0 12px 28px #3249301c;
 scroll-padding:16px 12px 24px;
}
.activity-tools h3,.control-panel h2{line-height:1.3;text-wrap:balance}
.activity-tools summary,.control-panel summary{
 border-radius:8px;line-height:1.4;min-height:48px;padding:8px 0;
}
.activity-tools details[open]>summary,.control-panel details[open]>summary{
 color:var(--color-primary);font-weight:700;
}
.activity-tools details[open]>:not(summary),.control-panel details[open]>:not(summary){margin-top:8px}
.activity-tools .tool-drawer,.control-panel .tool-drawer{
 border-top:1px solid #d3c69d;margin-top:4px;padding-top:4px;
}
.btn.selected,.activity-button.selected,.activity-button[aria-pressed='true']{
 background:#dfeddf;border-color:#28675b;color:#1f5146;
 box-shadow:inset 0 0 0 1px #28675b,0 3px 0 #315c492e;
}
.activity-tools .activity-status{background:#edf3e3;border-color:#a8be95;color:#234b4a}
.compact-guide{
 position:absolute;left:0;bottom:0;right:auto;z-index:7;
 width:auto;max-width:calc(100% - 16px);min-height:0;height:auto;
 display:flex;align-items:end;gap:8px;padding:0;margin:0;
 background:none;border:0;border-radius:0;box-shadow:none;pointer-events:none;
}
.compact-guide>p,.compact-guide>.buddy-name{
 position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);
 padding:0;margin:0;white-space:nowrap;
}
.compact-guide .coach-trigger{
 position:relative;display:flex;flex-direction:column;align-items:center;
 width:86px;min-width:86px;min-height:86px;padding:0;
 border:0;background:none;box-shadow:none;pointer-events:auto;
}
.compact-guide .coach-trigger .buddy-pose{
 position:static;width:74px;height:74px;margin:0;filter:drop-shadow(0 3px 3px #2f50412b);
}
.coach-trigger-label{
 padding:3px 8px;border:1px solid #b69c61;border-radius:999px;
 color:#285448;background:#fff9e9;font:16px/1.25 var(--font-display);white-space:nowrap;
}
.coach-trigger-badge{
 position:absolute;top:0;right:0;display:grid;place-items:center;
 min-width:30px;min-height:26px;padding:0 6px;border:2px solid #b49b60;
 border-radius:12px;background:#fff9e9;color:#285448;font:22px/1 var(--font-display);
}
.coach-trigger[aria-expanded='true'] .coach-trigger-badge{background:#f1cd76}
.coach-trigger-badge.has-news{background:#f1cd76;color:#63491f;border-color:#9a712f}
.coach-progress{margin:0 0 12px;border-top:1px solid #d1c299}
.coach-progress summary{min-height:48px;display:flex;align-items:center;font-size:18px;cursor:pointer}
.coach-progress ol{margin:0 0 12px;padding-left:24px;font-size:18px;line-height:1.6}
.workshop-layout .trial-meter{padding-left:96px;min-height:76px;align-content:center}
.compact-guide .concept-revisit{
 pointer-events:auto;max-width:180px;min-height:48px;margin-bottom:4px;
 background:var(--color-surface);font-size:18px;
}
.coach-help{
 left:0;right:auto;bottom:calc(100% + 10px);pointer-events:auto;
 max-height:calc(100dvh - 196px);overflow:auto;
 border-color:#a58a50;box-shadow:0 8px 0 #4c4a2724,0 16px 40px #234b4a38;
}
.coach-help p{font-size:22px;line-height:1.5;padding:12px 0 16px}
.coach-help-head b{font-family:var(--font-display);font-weight:400}
.journey-shell{position:relative;height:100dvh}
.journey-main{height:100dvh}
.journey-world{width:min(100%,calc(100dvh * 1.777))}
.journey-heading{top:16px;left:152px;right:152px;justify-content:center}
.journey-heading>div:first-child{padding:8px 20px;max-width:none;text-align:center}
.journey-heading .eyebrow,.journey-score{display:none}
.journey-heading h1{margin:0;font-size:28px}
.journey-node:disabled{opacity:1;filter:saturate(.6)}
.journey-node>small{color:#6f633d}
.journey-node .node-state{color:#3e584b;background:#fff9e7f5}
.journey-next{padding:12px 16px 16px}
.toolbelt>button{box-shadow:var(--panel-highlight),0 3px 0 #4e5d3724}
.journey-bottom{bottom:20px;pointer-events:none}
.journey-next{pointer-events:auto;max-width:370px;justify-self:end}
.journey-companion:has(.map-coach){align-items:end;position:relative;pointer-events:none}
.journey-companion>.map-coach{
 display:flex;flex-direction:column;align-items:center;position:relative;
 min-width:96px;min-height:104px;padding:0;border:0;background:none;
 box-shadow:none;pointer-events:auto;
}
.journey-companion>.map-coach .buddy-pose{width:90px;height:98px;margin:0}
.journey-companion:has(.map-coach)>div{
 position:absolute;left:100px;bottom:12px;width:min(440px,calc(100vw - 160px));
 max-width:none;padding:16px 20px;pointer-events:auto;
}
.journey-companion:has(.map-coach)>div[hidden]{display:none}
.story-copy .story-reward{
 border-left:3px solid #b78a34;padding:8px 0 8px 14px;
 color:#5d532c;font-size:18px;line-height:1.5;
}
.dialog-head,.settings-head{border-bottom:1px solid #c9b784;box-shadow:inset 0 1px #fffaf0}
.dialog-body,.settings-scroll,.concept-body{scrollbar-gutter:stable;scroll-padding:16px}
.dialog-body input:not([type='checkbox']):not([type='range']),.dialog-body select,
.settings-scroll select,.certificate-form input{
 min-height:52px;border:2px solid #ad9e70;border-radius:10px;
 padding:10px 12px;background:#fffef8;color:#234b4a;font-size:20px;
}
.notebook-record{border-color:#cbbc92;background:#fffdf5;padding:18px}
.notebook-record h3{line-height:1.3}
.field-passport summary{display:flex;align-items:center;justify-content:center;line-height:1.35}
.settings-concept-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.settings-concept-card{
 display:flex;align-items:center;gap:12px;min-width:0;min-height:96px;
 padding:12px;text-align:left;white-space:normal;
 border:2px solid #c3b080;border-radius:12px;background:#fffdf4;
 color:#234b4a;box-shadow:0 3px 0 #aa99613d;
}
.settings-concept-card img{width:112px;aspect-ratio:16/9;object-fit:cover;flex:none;border-radius:8px;border:1px solid #d0c7a9}
.settings-concept-card>span{display:grid;gap:6px;min-width:0}
.settings-concept-card strong{font:20px/1.3 var(--font-display);text-wrap:balance}
.settings-concept-card small{font:16px/1.4 var(--font-body);color:#526357}
.settings-concept-card:hover:not(:disabled){border-color:#39705c;background:#f3f6e9}
.settings-concept-card:disabled{opacity:1;color:#59685a;background:#eeeedf;box-shadow:none}
.settings-concept-card:disabled img{filter:blur(4px);opacity:.45}
.settings-records{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.settings-records .btn{min-width:0;min-height:56px;font-size:20px}
.settings-notice{padding:12px 16px;background:#edf3e3;border:1px solid #abc19d;border-left:4px solid #467b61;border-radius:12px;font-size:18px;line-height:1.5}
.settings-notice[hidden]{display:none}
.settings-confirm h2{font-size:28px;line-height:1.3}
.settings-confirm p{font-size:20px;line-height:1.5}
.settings-confirm-actions{display:flex;flex-wrap:wrap;gap:12px;padding-bottom:4px}
.settings-confirm-actions .btn{min-height:52px;font-size:20px}
.ending-shell{position:relative;min-height:100dvh}
.ending-main{min-height:100dvh;padding-top:88px;padding-bottom:32px}
.ending-copy>p{color:#3e6159;line-height:1.55}
.ending-stats{gap:20px}
.ending-stats>div{padding:8px 14px;background:#fff9e9de;border:1px solid #c8b684;border-radius:12px}
.ending-stats small{color:#496457}
.ending-statement{padding:16px;border:1px solid #ccb987;border-radius:20px;background:#fff9e9db}
.ending-statement h3{margin-bottom:4px}
.classroom-making summary{min-height:48px;display:flex;align-items:center;cursor:pointer;font-size:18px}

@media(min-width:1500px) and (min-height:850px){
 :root{--hud-size:60px;--hud-inset:20px;--hud-clearance:160px}
 .topbar .icon-btn svg{width:28px;height:28px}
 .experiment-heading{min-height:68px}
 .experiment-main{padding-top:16px}
 .journey-heading{top:20px;left:180px;right:180px}
 .coach-trigger-label{font-size:18px}
 .compact-guide .coach-trigger{width:100px;min-width:100px;min-height:100px}
 .compact-guide .coach-trigger .buddy-pose{width:86px;height:86px}
}
@media(max-width:1100px){
 :root{--hud-inset:12px;--hud-clearance:116px}
 .experiment-main{padding:8px 16px 12px;gap:10px}
 .experiment-heading{min-height:56px}
 .experiment-heading h1{font-size:25px;padding:7px 14px}
 .journey-heading{top:12px;left:136px;right:136px}
 .journey-heading h1{font-size:26px}
 .settings-concept-card{gap:10px;padding:10px}
 .settings-concept-card img{width:96px}
 .ending-main{padding-top:80px}
}
@media(max-height:620px) and (min-width:701px){
 .experiment-main{gap:8px;padding-bottom:12px}
 .experiment-heading h1{font-size:24px}
 .activity-tools,.control-panel{align-self:center;height:auto;max-height:100%}
 .coach-help{max-height:calc(100dvh - 166px);padding:16px 20px}
 .coach-help p{font-size:20px}
 .compact-guide .coach-trigger{width:74px;min-width:74px;min-height:76px}
 .compact-guide .coach-trigger .buddy-pose{width:64px;height:64px}
 .ending-main{height:100dvh;padding-top:76px}
 .ending-main{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:24px}
 .ending-illustration .ending-art-card>img{height:210px}
 .ending-copy h1{font-size:28px;line-height:1.2;margin:6px 0 8px}
 .ending-copy>p{font-size:20px;line-height:1.4}
 .ending-statement{padding:12px;gap:6px;margin-top:12px}
 .ending-statement h3{font-size:22px;margin:0}
 .ending-statement .btn{font-size:20px;min-height:48px;padding:8px 12px}
 .ending-copy .home-actions{gap:8px;margin-top:12px;flex-wrap:nowrap}
 .ending-copy .home-actions .btn{font-size:18px;min-height:48px;padding:8px 10px;white-space:nowrap}
 .classroom-making{margin-top:12px;padding:8px 12px}
 .classroom-making summary{font-size:18px;min-height:48px}
}
@media(max-width:800px){
 .experiment-shell,.journey-shell{height:auto;min-height:100dvh}
 .experiment-main{padding-top:76px}
 .experiment-heading{min-height:0;margin:0}
 .experiment-heading h1{font-size:25px;border-radius:16px;max-width:100%;overflow-wrap:break-word}
 .scene-workspace{display:flex;gap:16px}
 .compact-guide{position:relative;order:2;left:auto;bottom:auto;align-self:flex-start;max-width:100%;flex-wrap:nowrap}
 .workshop-layout .trial-meter{padding-left:0;min-height:0}
 .activity-area{order:1}
 .coach-help{position:fixed;left:16px;right:16px;bottom:16px;width:auto;max-height:calc(100dvh - 100px)}
 .journey-main{height:auto;min-height:100dvh;padding-top:76px}
 .journey-heading{position:static;margin:0 16px 16px;width:calc(100vw - 32px)}
 .journey-world{width:max(100%,760px)}
 .journey-next{max-width:none;justify-self:stretch}
 .journey-companion:has(.map-coach)>div{left:92px;width:calc(100vw - 140px);padding:12px}
 .journey-companion:has(.map-coach)>div p{font-size:18px}
 .ending-main{min-height:100dvh;padding-top:80px}
 .ending-stats{gap:8px;justify-content:center}
 .ending-stats>div{padding:8px 10px}
 .ending-stats small{font-size:16px}
 .notebook-list{grid-template-columns:1fr}
 .field-passport{padding:12px;gap:8px}
 .dialog-head h2{overflow-wrap:anywhere}
 .concept-footer{flex-wrap:wrap}
 .concept-footer .btn{flex:1}
 .settings-concept-list,.settings-records{grid-template-columns:1fr}
 .settings-concept-card img{width:104px}
 .settings-confirm-actions .btn{flex:1 1 100%}
}

/* Time is a direct manipulation control; playback remains an optional action. */
.time-controls:has(.time-scrubber){
 display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.8fr);
 align-items:center;gap:8px 16px;padding-top:8px;
}
.time-scrubber{
 display:grid;grid-template-rows:auto 52px auto;min-width:0;
 padding:8px 12px;border:2px solid #6f9b83;border-radius:14px;
 background:#f4f8e9;color:#234b4a;cursor:ew-resize;
}
.time-scrubber>span:first-child{
 display:flex;align-items:center;justify-content:space-between;
 flex-wrap:wrap;gap:4px 8px;font:20px/1.35 var(--font-display);
}
.time-scrubber output{
 min-width:56px;padding:3px 10px;border:1px solid #9eb695;border-radius:999px;
 background:#fffdf0;color:#285b4b;font:18px/1.3 var(--font-display);text-align:center;
}
.time-scrubber input[type='range']{
 appearance:none;-webkit-appearance:none;width:100%;height:52px;min-height:52px;
 margin:0;padding:0 2px;border:0;background:transparent;cursor:ew-resize;
 touch-action:pan-y;accent-color:#286d5c;
}
.time-scrubber input[type='range']::-webkit-slider-runnable-track{
 height:12px;border:1px solid #77a28c;border-radius:999px;background:#bed9c4;
}
.time-scrubber input[type='range']::-moz-range-track{
 height:10px;border:1px solid #77a28c;border-radius:999px;background:#bed9c4;
}
.time-scrubber input[type='range']::-webkit-slider-thumb{
 appearance:none;-webkit-appearance:none;width:36px;height:36px;margin-top:-13px;
 border:3px solid #285b4b;border-radius:50%;background:#f5d17b;
 box-shadow:0 3px 0 #345a492b,inset 0 1px 0 #fff8ce;
}
.time-scrubber input[type='range']::-moz-range-thumb{
 width:30px;height:30px;border:3px solid #285b4b;border-radius:50%;background:#f5d17b;
 box-shadow:0 3px 0 #345a492b,inset 0 1px 0 #fff8ce;
}
.time-scrubber input[type='range']:active::-webkit-slider-thumb{background:#ffe49b}
.time-scrubber input[type='range']:active::-moz-range-thumb{background:#ffe49b}
.time-stops{display:flex;justify-content:space-between;gap:8px;padding:0 2px;font:16px/1.25 var(--font-body);color:#456454}
.time-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:8px;min-width:0;padding-bottom:4px}
.time-controls .time-actions .btn{min-width:0;min-height:48px;padding:8px 10px;font-size:18px;line-height:1.3}
.time-actions>.btn:only-child{grid-column:1/-1}
.time-controls:has(.time-scrubber)>#time-description{
 grid-column:1/-1;justify-self:center;margin:0;padding:3px 12px;
 font-size:18px;line-height:1.35;text-align:center;color:#385d4c;
}
@media(min-width:1500px) and (min-height:850px){
 .time-scrubber{grid-template-rows:auto 60px auto;padding:12px 16px}
 .time-scrubber>span:first-child{font-size:24px}
 .time-scrubber output,.time-stops{font-size:20px}
 .time-scrubber input[type='range']{height:60px;min-height:60px}
 .time-controls .time-actions .btn{min-height:56px;font-size:22px}
 .time-controls:has(.time-scrubber)>#time-description{font-size:22px}
}
@media(max-height:620px) and (min-width:801px){
 .time-controls:has(.time-scrubber){gap:4px 8px;padding-top:4px;margin-top:4px}
 .time-scrubber{padding:4px 8px;grid-template-rows:auto 48px auto}
 .time-scrubber>span:first-child{font-size:18px}
 .time-scrubber input[type='range']{height:48px;min-height:48px}
 .time-controls .time-actions .btn{padding:6px 8px}
}
@media(max-width:800px){
 .time-controls:has(.time-scrubber){grid-template-columns:minmax(0,1fr);gap:12px}
 .time-scrubber{width:100%}
 .time-controls:has(.time-scrubber)>#time-description{grid-column:1}
}

/* Keep the final evidence controls clear of the floating hint character. */
.coach-help-actions{flex-wrap:wrap}
@media (min-width:701px) and (orientation:landscape){
 .final-layout .evidence-choice{padding-left:100px;min-height:76px;align-items:center;flex-wrap:wrap}
 .activity-scene>.time-controls:has(.time-scrubber),
 .activity-scene>.picture-records,.activity-scene>.freeze-snapshots,.activity-scene>.pipe-replay{margin-left:100px}
}
