:root{
  --navy:#12385b;
  --navy-2:#0b2944;
  --teal:#137d84;
  --teal-2:#0f646a;
  --sky:#eaf6fb;
  --paper:#fbfdff;
  --ink:#172b3d;
  --muted:#5b7183;
  --line:#cbdce6;
  --green:#228a59;
  --green-soft:#e7f7ef;
  --red:#c94549;
  --red-soft:#fdeced;
  --gold:#d99c23;
  --gold-soft:#fff4d9;
  --blue:#2f72b8;
  --shadow:0 16px 50px rgba(16,49,77,.12);
  --shadow-sm:0 6px 18px rgba(16,49,77,.10);
  --radius:24px;
  --radius-sm:16px;
}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#dfeef5;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
button,input{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible{outline:5px solid rgba(217,156,35,.45);outline-offset:3px}
#lesson-frame{position:relative;width:100vw;height:100vh;overflow:hidden;background:linear-gradient(180deg,#f6fbfe 0%,#edf7fb 100%)}
#lesson-frame::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(18,56,91,.06)}
.topbar{height:8.2vh;min-height:64px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 2.6vw;border-bottom:1px solid rgba(18,56,91,.10);background:rgba(251,253,255,.96);z-index:20;position:relative}
.brandline{font-size:clamp(14px,1.05vw,22px);font-weight:800;letter-spacing:.015em;color:var(--navy)}
.top-center{display:flex;align-items:center;gap:.7vw;justify-content:center}
.day-pill,.cue-pill{border-radius:999px;padding:.52em .9em;font-size:clamp(12px,.82vw,18px);font-weight:850;letter-spacing:.04em;text-transform:uppercase}
.day-pill{background:#e4f1f7;color:var(--navy)}
.cue-pill{background:var(--gold-soft);color:#7a5410;border:1px solid #f0d694}
.top-actions{display:flex;justify-content:flex-end;gap:.55vw}
.icon-btn{width:clamp(44px,3.2vw,60px);height:clamp(44px,3.2vw,60px);border:none;border-radius:14px;background:#f0f6f9;color:var(--navy);font-size:clamp(19px,1.3vw,28px);font-weight:900;box-shadow:inset 0 0 0 1px rgba(18,56,91,.08)}
.icon-btn:hover{background:#e5f0f5}
.progress-rail{height:.55vh;min-height:5px;background:#dce9ef;position:relative;z-index:20}
.progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--teal),var(--gold));transition:width .35s ease}
.viewport{position:relative;height:83.1vh;min-height:0;overflow:hidden}
.slide{position:absolute;inset:0;display:none;overflow:hidden;padding:2.2vh 3.5vw 2vh;background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(242,249,252,.93))}
.slide.active{display:flex;flex-direction:column;animation:slideIn .28s ease both}
@keyframes slideIn{from{opacity:.3;transform:translateY(8px)}to{opacity:1;transform:none}}
.slide-title-row{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:2vw;margin-bottom:1.8vh}
.eyebrow{font-size:clamp(12px,.78vw,16px);font-weight:900;text-transform:uppercase;letter-spacing:.13em;color:var(--teal);margin-bottom:.45vh}
h1{margin:0;color:var(--navy-2);font-size:clamp(32px,2.7vw,58px);line-height:1.04;letter-spacing:-.03em}
h2{margin:0;color:var(--navy);font-size:clamp(24px,2vw,42px);line-height:1.08;letter-spacing:-.02em}
h3{margin:0;color:var(--navy);font-size:clamp(19px,1.35vw,30px);line-height:1.12}
p{margin:.35em 0;font-size:clamp(17px,1.18vw,27px);line-height:1.35}
.small{font-size:clamp(14px,.9vw,20px)}
.muted{color:var(--muted)}
.big-idea{font-size:clamp(24px,1.78vw,38px);line-height:1.28;font-weight:760;color:var(--ink)}
.math{font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:.01em}
.math-xl{font-size:clamp(34px,2.65vw,58px);font-weight:900;line-height:1.1;color:var(--navy-2)}
.math-lg{font-size:clamp(26px,2vw,44px);font-weight:900;color:var(--navy-2)}
.plus{color:var(--green)} .minus{color:var(--red)} .gold{color:var(--gold)} .teal{color:var(--teal)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:2.2vw;align-items:stretch}
.grid-2-45{display:grid;grid-template-columns:.9fr 1.1fr;gap:2.4vw;align-items:stretch}
.grid-2-55{display:grid;grid-template-columns:1.1fr .9fr;gap:2.4vw;align-items:stretch}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5vw}
.stack{display:flex;flex-direction:column;gap:1.2vh}
.card{background:rgba(255,255,255,.94);border:1px solid rgba(18,56,91,.12);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.55vw}
.card.soft{background:#f7fbfd;box-shadow:none}
.callout{border-radius:18px;padding:1.05vw 1.2vw;border-left:7px solid var(--teal);background:#eef8f8}
.callout.gold{border-left-color:var(--gold);background:var(--gold-soft)}
.callout.red{border-left-color:var(--red);background:var(--red-soft)}
.callout.green{border-left-color:var(--green);background:var(--green-soft)}
.cue-label{display:inline-flex;align-items:center;border-radius:999px;padding:.35em .7em;margin-bottom:.55em;background:var(--navy);color:white;font-size:clamp(11px,.72vw,15px);font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.cue-label.gold{background:#8f6417}.cue-label.red{background:#9e3338}.cue-label.green{background:#176d45}.cue-label.teal{background:var(--teal)}
.controls{display:flex;gap:.7vw;flex-wrap:wrap;align-items:center}
.btn{min-height:clamp(46px,3.25vw,64px);padding:.65em 1.05em;border:none;border-radius:14px;background:var(--navy);color:#fff;font-size:clamp(15px,1vw,22px);font-weight:850;letter-spacing:.01em;box-shadow:0 4px 0 rgba(7,36,61,.18);transition:.18s ease}
.btn:hover{transform:translateY(-1px);background:#17466f}.btn:active{transform:translateY(2px);box-shadow:none}
.btn.secondary{background:#e8f2f6;color:var(--navy);box-shadow:inset 0 0 0 2px rgba(18,56,91,.10)}
.btn.teal{background:var(--teal)} .btn.green{background:var(--green)} .btn.red{background:var(--red)} .btn.gold{background:#a36f10}
.btn[disabled]{opacity:.42;cursor:not-allowed;transform:none}
.choice-btn.selected{box-shadow:0 0 0 5px rgba(217,156,35,.35),0 4px 0 rgba(7,36,61,.18)}
.reveal{opacity:0;transform:translateY(9px);pointer-events:none;transition:.28s ease}
.reveal.visible{opacity:1;transform:none;pointer-events:auto}
.dim{opacity:.18;filter:saturate(.35);transition:.25s ease}
.highlight{box-shadow:0 0 0 6px rgba(217,156,35,.25),var(--shadow-sm)}
.focus-overlay{position:absolute;inset:0;background:rgba(4,25,43,.62);z-index:9;display:none;align-items:center;justify-content:center;padding:3.4vw;backdrop-filter:blur(2px)}
.focus-overlay.open{display:flex;animation:fade .2s ease}
@keyframes fade{from{opacity:0}to{opacity:1}}
.focus-panel{width:min(1500px,88vw);max-height:70vh;overflow:auto;background:white;border-radius:28px;padding:2.2vw;box-shadow:0 28px 90px rgba(0,0,0,.28);position:relative}
.close-focus{position:absolute;right:1.1vw;top:1.1vw;border:none;border-radius:12px;width:48px;height:48px;background:#edf4f7;color:var(--navy);font-size:26px;font-weight:900}
.footerbar{height:8.15vh;min-height:64px;background:rgba(251,253,255,.97);border-top:1px solid rgba(18,56,91,.10);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 2.2vw;position:relative;z-index:20}
.nav-left,.nav-right{display:flex;gap:.7vw;align-items:center}.nav-right{justify-content:flex-end}
.nav-btn{min-width:clamp(110px,8vw,160px);height:clamp(46px,3.2vw,62px);border:none;border-radius:15px;background:#e8f2f6;color:var(--navy);font-size:clamp(15px,1vw,21px);font-weight:850}
.nav-btn.next{background:var(--navy);color:white}
.slide-counter{font-size:clamp(14px,.95vw,20px);font-weight:850;color:var(--navy);letter-spacing:.03em}
.teacher-drawer{position:absolute;right:0;top:8.75vh;bottom:8.15vh;width:min(520px,31vw);background:#0d2d49;color:white;z-index:30;transform:translateX(103%);transition:.28s ease;box-shadow:-15px 0 50px rgba(0,0,0,.18);padding:1.8vw;overflow:auto}
.teacher-drawer.open{transform:translateX(0)}
.teacher-drawer h2{color:white}.teacher-drawer p,.teacher-drawer li{font-size:clamp(15px,1vw,21px);line-height:1.42}.teacher-drawer .note-section{padding:1vw 0;border-bottom:1px solid rgba(255,255,255,.14)}
.teacher-drawer .note-tag{display:inline-block;padding:.35em .65em;border-radius:999px;background:rgba(255,255,255,.12);font-size:clamp(11px,.72vw,15px);font-weight:900;letter-spacing:.09em;text-transform:uppercase;margin-bottom:.55em}
.teacher-drawer .close-note{float:right;border:none;background:rgba(255,255,255,.12);color:white;border-radius:10px;width:42px;height:42px;font-weight:900;font-size:20px}
.scene-card{height:100%;min-height:0;border-radius:28px;overflow:hidden;position:relative;background:linear-gradient(#dff3fb 0 42%,#d3eef7 42% 46%,#0f6587 46% 100%);border:1px solid rgba(18,56,91,.10);box-shadow:var(--shadow)}
.scene-card svg{width:100%;height:100%;display:block}
.legend-row{display:flex;gap:1vw;flex-wrap:wrap}.legend-chip{display:flex;align-items:center;gap:.45em;font-size:clamp(14px,.9vw,19px);font-weight:750}.dot{width:14px;height:14px;border-radius:50%;display:inline-block}.dot.pos{background:var(--green)}.dot.zero{background:var(--navy)}.dot.neg{background:var(--red)}
.criteria-list{display:grid;gap:1vh;margin-top:1.2vh}.criterion{display:flex;align-items:flex-start;gap:.9vw;padding:1.05vw;border-radius:16px;background:#f6fafc;border:1px solid #dce8ee;font-size:clamp(17px,1.08vw,24px);font-weight:700;transition:.2s}.criterion::before{content:"✓";display:grid;place-items:center;flex:0 0 auto;width:1.7em;height:1.7em;border-radius:50%;background:#e4f2f5;color:var(--teal);font-weight:950}.criterion.active{background:var(--gold-soft);border-color:#efd58d;transform:scale(1.01)}
.problem-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2vw}.problem-box{padding:1.2vw;border-radius:18px;background:white;border:1px solid #dce8ee;box-shadow:var(--shadow-sm);position:relative}.problem-num{position:absolute;top:.8vw;right:.9vw;width:2em;height:2em;border-radius:50%;background:#e9f3f7;color:var(--navy);display:grid;place-items:center;font-weight:900}.answer-strip{margin-top:.8vh;padding:.7vw .9vw;border-radius:12px;background:#eef8f8;color:#145e63;font-size:clamp(15px,1vw,21px);font-weight:800}
.elevation-simple{height:100%;display:grid;place-items:center}.elevation-axis{position:relative;width:12px;height:76%;border-radius:8px;background:linear-gradient(var(--green) 0 49.3%,var(--navy) 49.3% 50.7%,var(--red) 50.7% 100%)}.elevation-axis::before,.elevation-axis::after{position:absolute;left:28px;font-size:clamp(18px,1.25vw,26px);font-weight:900}.elevation-axis::before{content:"+";top:-5px;color:var(--green)}.elevation-axis::after{content:"−";bottom:-5px;color:var(--red)}.zero-label{position:absolute;left:28px;top:50%;transform:translateY(-50%);font-size:clamp(18px,1.25vw,26px);font-weight:900;color:var(--navy)}
.vertical-model{position:relative;height:55vh;min-height:380px;border-radius:26px;overflow:hidden;background:linear-gradient(#e3f7fe 0 47%,#c7ebf6 47% 50%,#166c8d 50% 100%);border:1px solid #cfe2eb;box-shadow:var(--shadow)}
.v-axis{position:absolute;left:46%;top:7%;bottom:7%;width:8px;background:rgba(255,255,255,.93);border-radius:8px;box-shadow:0 0 0 2px rgba(18,56,91,.12)}
.v-axis .tick{position:absolute;left:-13px;width:34px;height:2px;background:rgba(18,56,91,.35)}
.v-axis .tick span{position:absolute;left:-54px;top:-13px;width:40px;text-align:right;color:var(--navy);font-size:clamp(12px,.8vw,17px);font-weight:800}
.marker{position:absolute;left:46%;top:50%;width:30px;height:30px;margin-left:-11px;margin-top:-15px;border-radius:50%;background:var(--gold);border:5px solid white;box-shadow:0 5px 16px rgba(0,0,0,.22);transition:top .65s cubic-bezier(.2,.8,.2,1)}
.marker-label{position:absolute;left:calc(46% + 38px);top:50%;transform:translateY(-50%);padding:.45em .7em;background:white;border-radius:12px;box-shadow:var(--shadow-sm);font-size:clamp(15px,1vw,21px);font-weight:900;color:var(--navy);transition:top .65s cubic-bezier(.2,.8,.2,1)}
.sea-line{position:absolute;left:0;right:0;top:50%;height:3px;background:rgba(255,255,255,.85)}
.sea-tag{position:absolute;right:2%;top:50%;transform:translateY(-130%);padding:.35em .6em;background:rgba(255,255,255,.9);border-radius:10px;color:var(--navy);font-size:clamp(12px,.8vw,17px);font-weight:850}
.h-numberline{position:relative;height:220px;background:#f7fbfd;border-radius:20px;border:1px solid #d8e6ed;overflow:hidden}.h-line{position:absolute;left:8%;right:8%;top:55%;height:6px;border-radius:3px;background:var(--navy)}.h-zero{position:absolute;left:50%;top:calc(55% - 14px);width:4px;height:34px;background:var(--navy)}.h-zero-label{position:absolute;left:50%;top:calc(55% + 26px);transform:translateX(-50%);font-weight:850;color:var(--navy)}.h-point{position:absolute;top:calc(55% - 12px);width:26px;height:26px;border-radius:50%;border:4px solid white;box-shadow:0 3px 10px rgba(0,0,0,.15)}.h-arrow{position:absolute;height:6px;border-radius:4px;background:var(--gold);top:35%;transform-origin:left center}.h-arrow::after{content:"";position:absolute;right:-1px;top:50%;transform:translateY(-50%);border-left:17px solid var(--gold);border-top:11px solid transparent;border-bottom:11px solid transparent}
.flow{display:flex;flex-direction:column;align-items:center;gap:.8vh}.flow-node{min-width:42%;padding:.8vw 1.3vw;border-radius:16px;text-align:center;background:white;border:2px solid #d6e4ea;font-size:clamp(17px,1.1vw,24px);font-weight:850;transition:.2s}.flow-node.choice{background:#edf7f8;border-color:#b9dcdf}.flow-branch{display:grid;grid-template-columns:1fr 1fr;gap:2vw;width:86%}.flow-col{display:flex;flex-direction:column;align-items:center;gap:.7vh}.flow-arrow{font-size:clamp(22px,1.5vw,32px);color:var(--muted)}.flow-node.on{background:var(--gold-soft);border-color:#dcb34f;box-shadow:0 0 0 5px rgba(217,156,35,.18)}.flow-node.off{opacity:.25}
.toolbar-steps{display:flex;align-items:center;gap:.5vw;flex-wrap:wrap}.step-pill{padding:.55em .78em;border-radius:999px;background:#eef4f7;color:var(--navy);font-size:clamp(13px,.86vw,18px);font-weight:850}.step-pill.on{background:var(--gold-soft);color:#76500f;box-shadow:inset 0 0 0 2px #efd28b}
.transform-row{display:flex;align-items:center;justify-content:center;gap:1vw;min-height:11vh}.token{display:grid;place-items:center;min-width:2.8em;height:2.3em;padding:0 .25em;border-radius:16px;background:white;border:2px solid #d8e6ed;box-shadow:var(--shadow-sm);font-size:clamp(32px,2.4vw,54px);font-weight:900;color:var(--navy-2);transition:.28s}.token.keep{box-shadow:0 0 0 6px rgba(34,138,89,.18),var(--shadow-sm);border-color:#83c6a5}.token.change{box-shadow:0 0 0 6px rgba(217,156,35,.2),var(--shadow-sm);border-color:#e2bd67}.rewrite-line{font-size:clamp(26px,2vw,44px);font-weight:900;text-align:center;color:var(--navy-2);min-height:1.3em}
.tab-row{display:flex;gap:.7vw;margin-bottom:1.2vh}.tab{width:clamp(58px,4vw,78px);height:clamp(48px,3.4vw,66px);border:none;border-radius:14px;background:#e8f2f6;color:var(--navy);font-weight:900;font-size:clamp(18px,1.2vw,25px)}.tab.active{background:var(--navy);color:white}.practice-panel{display:none}.practice-panel.active{display:block}
.dash-progress{display:flex;gap:.55vw}.dash-dot{width:clamp(18px,1.3vw,26px);height:clamp(18px,1.3vw,26px);border-radius:50%;background:#d7e5eb}.dash-dot.done{background:var(--green)}.dash-dot.current{box-shadow:0 0 0 5px rgba(217,156,35,.2);background:var(--gold)}
.answer-input{width:180px;max-width:100%;height:64px;border:3px solid #cddde5;border-radius:14px;padding:0 .8em;font-size:clamp(24px,1.6vw,34px);font-weight:900;color:var(--navy);background:white}
.feedback{min-height:2.6em;padding:.65em .9em;border-radius:14px;font-size:clamp(16px,1.05vw,22px);font-weight:850;background:#eff5f8;color:var(--navy)}.feedback.good{background:var(--green-soft);color:#17633f}.feedback.bad{background:var(--red-soft);color:#8e2f34}
.dolphin-wrap{position:relative;height:37vh;min-height:300px;border-radius:24px;overflow:hidden;background:linear-gradient(#dff5fc 0 18%,#3aa3c4 18% 100%);border:1px solid #cde4ed}.dolphin{position:absolute;left:43%;top:58%;width:130px;height:62px;transition:.7s cubic-bezier(.2,.8,.2,1)}.dolphin.jump{animation:dolphinJump .95s ease both}@keyframes dolphinJump{0%{transform:translateY(0) rotate(0)}45%{transform:translateY(-115px) rotate(-16deg)}70%{transform:translateY(-70px) rotate(12deg)}100%{transform:translateY(0) rotate(0)}}
.force-wrap{height:52vh;min-height:370px;display:grid;place-items:center;background:radial-gradient(circle at 50% 25%,#173f67,#081a2b 68%);border-radius:26px;overflow:hidden;position:relative;color:white;box-shadow:var(--shadow)}
.rocket{position:absolute;width:120px;height:230px;left:50%;top:50%;transform:translate(-50%,-50%)}.force-arrow{position:absolute;left:50%;width:10px;border-radius:8px;transform:translateX(-50%);transition:.3s}.force-arrow.up{bottom:55%;height:0;background:var(--green)}.force-arrow.down{top:55%;height:0;background:var(--red)}.force-arrow.visible.up{height:23%}.force-arrow.visible.down{height:13%}.force-arrow.up::before{content:"";position:absolute;top:-20px;left:50%;transform:translateX(-50%);border-bottom:24px solid var(--green);border-left:15px solid transparent;border-right:15px solid transparent}.force-arrow.down::after{content:"";position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);border-top:24px solid var(--red);border-left:15px solid transparent;border-right:15px solid transparent}.force-label{position:absolute;left:56%;padding:.5em .7em;border-radius:12px;background:rgba(255,255,255,.12);font-weight:850;font-size:clamp(15px,1vw,21px);opacity:0;transition:.2s}.force-label.visible{opacity:1}.force-label.up{top:15%}.force-label.down{bottom:16%}
.sign-demo{display:grid;grid-template-columns:1fr 1fr;gap:1.8vw}.expression-card{padding:2vw;border-radius:24px;background:white;border:1px solid #d6e4eb;box-shadow:var(--shadow-sm);text-align:center}.operation-sign,.number-sign{display:inline-block;border-radius:8px;padding:.05em .16em;transition:.25s}.operation-sign.focus{background:var(--gold-soft);box-shadow:0 0 0 5px rgba(217,156,35,.16)}.number-sign.focus{background:var(--red-soft);box-shadow:0 0 0 5px rgba(201,69,73,.14)}.sign-dim{opacity:.18}
.distance-scene{position:relative;height:48vh;min-height:350px;border-radius:24px;overflow:hidden;background:linear-gradient(#dff5fc 0 16%,#177797 16% 100%);border:1px solid #c7e2eb}.distance-axis{position:absolute;left:48%;top:8%;bottom:8%;width:8px;background:white;border-radius:6px}.distance-zero{position:absolute;left:0;right:0;top:50%;height:3px;background:rgba(255,255,255,.7)}.object-marker{position:absolute;left:calc(48% - 15px);width:38px;height:38px;border-radius:50%;border:5px solid white;box-shadow:0 4px 14px rgba(0,0,0,.22);transition:top .5s}.object-marker.net{background:var(--green)}.object-marker.fish{background:var(--red)}.obj-label{position:absolute;left:54%;transform:translateY(-50%);background:white;border-radius:12px;padding:.45em .7em;font-size:clamp(14px,.9vw,19px);font-weight:850;color:var(--navy);transition:top .5s}.distance-segment{position:absolute;left:calc(48% - 3px);width:14px;border-radius:8px;background:var(--gold);transition:top .5s,height .5s;box-shadow:0 0 0 3px rgba(255,255,255,.65)}
.problem-type{display:flex;gap:.6vw;flex-wrap:wrap}.mini-stage{padding:1.1vw;border-radius:18px;background:#f6fafc;border:1px solid #d9e7ed;min-height:10vh}.mini-stage strong{color:var(--navy)}
.toolkit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2vw}.tool-card{position:relative;min-height:25vh;padding:1.25vw;border:none;border-radius:22px;background:white;box-shadow:var(--shadow-sm);text-align:left;color:var(--ink);transition:.25s}.tool-card:hover{transform:translateY(-4px)}.tool-card .tool-number{width:2.3em;height:2.3em;border-radius:50%;display:grid;place-items:center;background:#e9f3f7;color:var(--navy);font-weight:900;margin-bottom:1.2vh}.tool-card.enlarged{position:fixed;z-index:40;left:7vw;right:7vw;top:16vh;bottom:14vh;min-height:0;padding:3vw;box-shadow:0 30px 100px rgba(0,0,0,.28);transform:none}.tool-card.enlarged::after{content:"Tap again to close";position:absolute;right:2vw;top:2vw;font-size:clamp(13px,.9vw,19px);font-weight:800;color:var(--muted)}
.exit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3vw}.exit-card{background:white;border:1px solid #d8e6ed;border-radius:22px;padding:1.4vw;box-shadow:var(--shadow-sm);min-height:37vh}.exit-num{width:2.4em;height:2.4em;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:white;font-weight:900;margin-bottom:1.1vh}.write-lines{margin-top:2vh;display:grid;gap:1.8vh}.write-line{height:2px;background:#cfdde5}
.stop-banner{display:flex;align-items:center;gap:1vw;background:linear-gradient(90deg,#12385b,#137d84);color:white;border-radius:22px;padding:1vw 1.3vw;box-shadow:var(--shadow)}.stop-banner strong{font-size:clamp(18px,1.25vw,27px)}
.confetti{display:none!important}
@media(max-aspect-ratio:4/3){.slide{padding-left:2.2vw;padding-right:2.2vw}.toolkit-grid{grid-template-columns:1fr 1fr}.teacher-drawer{width:42vw}}
@media(max-height:750px){.slide{padding-top:1.2vh;padding-bottom:1vh}.card{padding:1.15vw}.vertical-model{height:50vh}.force-wrap{height:47vh}.distance-scene{height:44vh}.tool-card{min-height:21vh}}

.slide.active > .grid-2,.slide.active > .grid-2-45,.slide.active > .grid-2-55,.slide.active > .grid-3,.slide.active > .problem-grid,.slide.active > .toolkit-grid,.slide.active > .exit-grid{min-height:0;flex-shrink:1}


/* Revision: clearer touch-state feedback and Day 2 reconnect */
.btn.secondary.selected{background:var(--navy);color:white;box-shadow:0 0 0 5px rgba(217,156,35,.28),0 4px 0 rgba(7,36,61,.18)}
.btn.secondary.correct{background:var(--green);color:white;box-shadow:0 0 0 5px rgba(34,138,89,.18)}
.btn.secondary.wrong{background:var(--red-soft);color:#8e2f34;box-shadow:inset 0 0 0 3px rgba(201,69,73,.36)}
.btn.secondary.stage-ready{box-shadow:0 0 0 5px rgba(217,156,35,.18),inset 0 0 0 2px rgba(18,56,91,.10)}
.day2-carry-grid{display:grid;grid-template-columns:1fr 1fr;gap:1vw;margin-top:1.4vh}
.carry-card{display:flex;flex-direction:column;gap:.5vh;padding:1.2vw;border-radius:18px;background:white;border:1px solid #d9e7ed;box-shadow:var(--shadow-sm);font-size:clamp(16px,1vw,22px);line-height:1.3}
.carry-card strong{color:var(--navy);font-size:clamp(18px,1.18vw,25px)}
.dash-locked{opacity:.48}

.mixed-guided .stack{gap:.75vh}
.mixed-guided .card{padding:1.05vw}
.mixed-guided .mini-stage{min-height:6.8vh;padding:.75vw}
.mixed-guided .btn{min-height:clamp(42px,2.75vw,54px);padding:.48em .82em}
.mixed-guided p{font-size:clamp(15px,1vw,22px);line-height:1.25}
.mixed-guided h3{font-size:clamp(18px,1.15vw,26px)}
.mixed-guided .problem-type{gap:.45vw}

.criterion{text-align:left}
.position-toggle.selected{box-shadow:0 0 0 5px rgba(217,156,35,.25),0 4px 0 rgba(7,36,61,.18)}
#dashNext.ready{background:var(--navy);opacity:1;box-shadow:0 4px 0 rgba(7,36,61,.18)}
.dash-rule.correct:disabled,.dash-sign.correct:disabled{opacity:1}
