:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#17324d;background:#eef7fb;line-height:1.5;--navy:#0b3d66;--blue:#087fb5;--teal:#10a6a1;--border:#d7e6ef;--shadow:0 14px 36px rgba(27,74,105,.12)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(145deg,#edf8fb,#f9fbff 52%,#eef2ff)}button,input,textarea,select{font:inherit}button{cursor:pointer}.boot{display:grid;place-items:center;min-height:100vh;color:var(--blue);font-weight:800}.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px clamp(16px,4vw,48px);background:#fff;border-bottom:1px solid var(--border);box-shadow:0 4px 16px #11456314}.brand{display:flex;align-items:center;gap:12px;font-weight:900;color:var(--navy)}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,#0ca5a0,#1579c9);color:#fff;font-size:23px}.top-actions,.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.container{width:min(1180px,calc(100% - 28px));margin:28px auto}.card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:22px;box-shadow:var(--shadow)}.btn{border:0;border-radius:12px;padding:10px 16px;font-weight:800;background:#e8f2f7;color:#164a6b}.btn.primary{background:linear-gradient(135deg,#087fb5,#10a6a1);color:#fff}.btn.danger{background:#fff0f0;color:#b42318}.btn.ghost{background:#fff;border:1px solid var(--border)}.btn:disabled{opacity:.48;cursor:not-allowed}.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:99px;background:#e9f7fa;color:#056f79;font-size:12px;font-weight:800}.demo-banner{padding:8px 16px;background:#fff3cd;color:#704f00;text-align:center;font-weight:700}.login-shell{min-height:calc(100vh - 38px);display:grid;grid-template-columns:1.1fr .9fr}.login-art{padding:8vw;background:linear-gradient(145deg,#074b7f,#0789b9 55%,#13aaa2);color:#fff;display:flex;flex-direction:column;justify-content:center}.login-art h1{font-size:clamp(38px,5vw,68px);line-height:1.05;margin:14px 0}.login-panel{display:grid;place-items:center;padding:30px}.login-panel .card{width:min(480px,100%)}label{display:grid;gap:7px;font-weight:750;margin:14px 0}input,textarea,select{width:100%;border:1px solid #bdd2df;border-radius:11px;padding:11px 12px;background:#fbfdff;color:#17324d}textarea{min-height:100px;resize:vertical}.muted{color:#688096}.error{color:#b42318}.ok{color:#08735c}.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.section-title h2,.section-title h3{margin:0}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.station-hero{border-top:7px solid var(--station);background:linear-gradient(135deg,#fff,var(--station-soft,#eef8ff))}.station-images{display:grid;grid-template-columns:1fr 1fr;gap:15px}.station-images img{width:100%;border-radius:14px;border:1px solid var(--border);display:block}.timer{font-variant-numeric:tabular-nums;font-size:28px;font-weight:950;color:#08735c}.timer.warn{color:#a96c00}.timer.hot{color:#d14b00}.timer.danger{color:#c21b1b;animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.55}}.step{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;border:1px solid var(--border);border-radius:13px;padding:12px;margin:9px 0}.segmented{display:flex;background:#eff5f8;border-radius:10px;padding:3px}.segmented button{border:0;background:transparent;padding:7px 9px;border-radius:8px;font-size:12px}.segmented button.active{background:#fff;box-shadow:0 2px 8px #b7cbd6}.evidence-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.evidence{border:2px dashed #b9d5e3;border-radius:16px;padding:14px;min-height:230px}.evidence img{width:100%;max-height:210px;object-fit:cover;border-radius:11px}.question{padding:15px 0;border-bottom:1px solid #e6eef3}.choice{display:flex;gap:8px;flex-wrap:wrap}.choice label{display:flex;flex-direction:row;align-items:center;margin:0;padding:8px 11px;border:1px solid var(--border);border-radius:10px}.choice input{width:auto}.save-state{font-size:13px;color:#667d8e}.tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}.tabs button.active{background:var(--navy);color:#fff}.monitor-card{border-top:6px solid var(--station);padding:17px}.monitor-card h3{margin:0}.progress{height:9px;border-radius:99px;background:#e6edf2;overflow:hidden}.progress span{display:block;height:100%;background:var(--station);border-radius:inherit}.archive{display:grid;grid-template-columns:100px repeat(4,minmax(120px,1fr));gap:7px}.archive>div,.archive>button{min-height:72px;border:1px solid var(--border);border-radius:11px;padding:9px;background:#fff;text-align:left}.archive .head{min-height:auto;background:#eaf3f8;font-weight:850}.status-waiting{color:#975c00}.status-published{color:#08735c}.modal-back{position:fixed;inset:0;z-index:50;background:#062339ad;display:grid;place-items:center;padding:20px}.modal{width:min(1000px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:20px;padding:22px}.projection{position:fixed;inset:0;z-index:60;background:#f7fbfd;overflow:auto;padding:30px}.toast{position:fixed;right:20px;bottom:20px;z-index:100;background:#17324d;color:#fff;padding:12px 16px;border-radius:12px;box-shadow:var(--shadow)}.hidden{display:none!important}@media(max-width:850px){.login-shell{grid-template-columns:1fr}.login-art{padding:44px 24px}.grid-4,.grid-2,.station-images,.evidence-grid{grid-template-columns:1fr}.archive{grid-template-columns:70px repeat(4,minmax(100px,1fr));overflow:auto}.topbar{position:static}.container{width:min(100% - 18px,1180px);margin:12px auto}.card{padding:16px}.timer{font-size:23px}}.stage-tabs{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:0 0 15px}.stage-tabs button{border:1px solid var(--border);background:#fff;border-radius:14px;padding:10px 5px;color:#527087;font-weight:800}.stage-tabs span{display:grid;place-items:center;margin:0 auto 4px;width:25px;height:25px;border-radius:50%;background:#e8f2f7}.stage-tabs button.active{background:var(--navy);color:#fff;box-shadow:0 8px 18px #0b3d6630}.stage-tabs button.active span{background:#fff;color:var(--navy)}.stage-nav{position:sticky;bottom:10px;display:flex;justify-content:space-between;gap:12px;margin-top:16px;padding:12px;background:#ffffffdf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:16px;z-index:10}.image-button{border:0;background:#fff;padding:0;text-align:left;border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}.image-button span{display:block;padding:10px;font-weight:850}.material-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:11px}.material-card{display:flex;align-items:center;gap:10px;border:2px solid var(--border);background:#fff;border-radius:14px;padding:14px;text-align:left;font-weight:750}.material-card span{font-size:24px}.material-card.selected{border-color:#10a6a1;background:#ebfbf8;color:#08735c}.clickable-card{cursor:pointer;transition:.15s}.clickable-card:hover,.monitor-card:hover{transform:translateY(-2px);box-shadow:0 18px 38px #1b4a6933}.notice-message{margin:12px auto 0;width:min(1180px,calc(100% - 28px));padding:13px 16px;background:#fff6cf;border:1px solid #eed274;border-radius:14px}.review-status{padding:15px;border-radius:14px;background:#effaf7}.review-status.warn{background:#fff4e8;color:#8b4b05}.rotation-row{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.rotation-row span{padding:8px 11px;border-radius:99px;background:#e9f2f7;font-weight:700}.rotation-row .current{background:var(--navy);color:#fff}.monitor-card{width:100%;display:block;text-align:left;color:inherit;transition:.15s}.open-hint{color:#087fb5;font-weight:800}.detail-stats{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0}.detail-stats>*{background:#edf6fa;padding:8px 12px;border-radius:10px}.message-form{display:grid;grid-template-columns:1fr auto;gap:10px}.message-form input{margin:0}.timeline{border-left:3px solid #b9dce9;padding-left:15px}.timeline p{margin:8px 0}.rubric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.rubric-grid div{display:flex;justify-content:space-between;padding:15px;background:#eff7fa;border-radius:13px}.info-modal img{width:100%;max-height:60vh;object-fit:contain;border-radius:14px}@media(max-width:850px){.stage-tabs{grid-template-columns:repeat(3,1fr)}.rubric-grid,.message-form{grid-template-columns:1fr}.stage-nav{bottom:4px}}.asset-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.asset-slot{border:1px solid #d9e8f3;border-radius:18px;padding:18px;background:#fff}.asset-slot img{width:100%;height:240px;object-fit:contain;background:#f4f9fd;border-radius:12px;margin:12px 0}.asset-slot .btn{margin-right:8px}@media(max-width:760px){.asset-admin-grid{grid-template-columns:1fr}}.live-banner{position:relative;z-index:30;padding:8px 16px;text-align:center;background:linear-gradient(90deg,#073b65,#087fb5,#0aa69e);color:#fff;font-weight:850;letter-spacing:.08em;font-size:12px;box-shadow:0 4px 18px #04476c33}.live-dot{display:inline-block;width:9px;height:9px;margin-right:8px;border-radius:50%;background:#7dffbf;box-shadow:0 0 0 5px #7dffbf2b;animation:livePulse 1.8s ease-in-out infinite}@keyframes livePulse{50%{transform:scale(.72);box-shadow:0 0 0 9px #7dffbf00}}.science-bubbles{position:absolute;inset:0;pointer-events:none;overflow:hidden}.science-bubbles i{position:absolute;display:grid;place-items:center;width:76px;height:76px;border-radius:24px;background:#ffffff1a;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);font-style:normal;font-size:34px;animation:floatLab 7s ease-in-out infinite}.science-bubbles i:nth-child(1){right:8%;top:12%}.science-bubbles i:nth-child(2){right:22%;bottom:13%;animation-delay:-2.2s}.science-bubbles i:nth-child(3){left:7%;bottom:7%;animation-delay:-4.5s}@keyframes floatLab{50%{transform:translateY(-17px) rotate(5deg)}}.auth-card{position:relative;overflow:hidden}.auth-card:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-90px;top:-100px;background:radial-gradient(circle,#9ceee8 0,#9ceee800 70%)}.secure-note{margin:18px 0 0;padding:11px 13px;border-radius:12px;background:#e9fbf5;color:#08735c;font-size:13px;font-weight:750;text-align:center}.journey-shell:before{content:"";position:fixed;z-index:-1;inset:0;background-image:radial-gradient(circle at 10% 18%,rgba(20,169,166,.08) 0 3px,transparent 4px),radial-gradient(circle at 92% 78%,rgba(26,128,193,.08) 0 5px,transparent 6px);background-size:74px 74px,110px 110px}.journey-tabs button,.material-card,.tool-card,.monitor-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.journey-tabs button:hover,.material-card:hover,.tool-card:hover,.monitor-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #165d8529}.material-card.selected{background:linear-gradient(145deg,#eafff8,#eef8ff);border-color:#0aa69e;box-shadow:inset 0 0 0 2px #0aa69e1f}.camera-modal video,.camera-modal img{display:block;width:100%;max-height:62vh;object-fit:contain;border-radius:18px;background:linear-gradient(145deg,#08283c,#0f465c);box-shadow:0 16px 36px #001e3247;margin:14px 0}.camera-modal .row{justify-content:center}.btn.primary{position:relative;overflow:hidden}.btn.primary:after{content:"";position:absolute;inset:0;transform:translate(-120%);background:linear-gradient(110deg,transparent,rgba(255,255,255,.26),transparent);transition:transform .55s}.btn.primary:hover:after{transform:translate(120%)}.result-card{text-align:center;background:radial-gradient(circle at 50% 5%,#fffbdc,#fff 48%);overflow:hidden}.result-card .reveal-orbit{filter:drop-shadow(0 12px 14px rgba(231,166,0,.25));animation:trophyBounce 2.4s ease-in-out infinite}@keyframes trophyBounce{50%{transform:translateY(-9px) rotate(3deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:720px){.live-banner{font-size:10px}.science-bubbles i{width:52px;height:52px;font-size:25px}.science-bubbles i:nth-child(3){display:none}.camera-modal{padding:15px}.top-actions{justify-content:flex-end}.top-actions .save-state{width:100%;text-align:right}}.login-stations{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:24px 0}.login-stations span{padding:12px;border:1px solid #ffffff55;border-radius:14px;background:#ffffff15}.login-stats{display:flex;gap:35px;margin-top:22px}.login-stats b{font-size:30px}.login-stats small{font-size:12px;font-weight:600}.auth-card details{margin-top:20px}.journey-shell{max-width:1240px}.brand small{display:block;font-weight:600;color:#688096}.journey-tabs{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin-bottom:12px}.journey-tabs button{border:1px solid var(--border);background:#fff;border-radius:14px;padding:9px 4px;color:#628096;font-size:12px;font-weight:800}.journey-tabs button span{display:grid;place-items:center;margin:0 auto 4px;width:26px;height:26px;border-radius:50%;background:#e7f1f6}.journey-tabs button.active{background:var(--navy);color:#fff}.journey-tabs button.done{background:#e6faf4;color:#08735c}.journey-tabs button.active span{background:#fff;color:var(--navy)}.eyebrow{font-size:12px;letter-spacing:.13em;color:#078ca1;font-weight:950}.reveal-card{text-align:center;border-top:7px solid var(--station)}.reveal-orbit{display:grid;place-items:center;width:105px;height:105px;margin:0 auto 15px;border-radius:50%;font-size:54px;background:radial-gradient(circle,#fff 35%,#d6f7f3);box-shadow:0 0 0 12px #e8f8fa,0 18px 40px #127da22c}.reveal-card .station-images{text-align:left;margin:20px 0}.panel-heading{display:flex;align-items:center;justify-content:space-between}.panel-heading>b{font-size:25px;color:var(--station)}.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.shop-item{display:grid;gap:7px;justify-items:start;text-align:left;padding:16px;border:2px solid var(--border);border-radius:16px;background:#fff;color:#17324d}.shop-item:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.shop-item.selected{border-color:var(--station);background:#eefaf9}.shop-icon{font-size:34px}.shop-item small{color:#668096}.safety-check{padding:15px;border:1px solid #f0cf7e;background:#fff7dc;border-radius:14px}.safety-check input{width:auto}.plan-list{display:grid;gap:10px}.plan-step{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--border);border-radius:14px;background:#fff}.drag-handle{font-size:24px;color:#7b94a6;cursor:grab}.plan-step p{margin:0}.plan-step button{border:0;border-radius:8px;padding:6px 10px;margin:2px}.lab-bench{min-height:230px;display:flex;align-items:end;justify-content:center;gap:40px;margin:16px 0 24px;padding:35px;border-radius:20px;background:linear-gradient(#dff4fa 0 70%,#9b704f 70%);overflow:hidden}.vessel{position:relative;width:95px;height:155px;border:6px solid #b9d7e5;border-top:0;border-radius:0 0 24px 24px}.vessel i{position:absolute;top:-30px;left:18px}.liquid{position:absolute;bottom:0;left:0;right:0;height:22%;background:#49b8e5;border-radius:0 0 17px 17px;transition:.3s}.liquid.alt{background:#9d74df}.liquid.level-2{height:38%}.liquid.level-3,.liquid.level-4{height:52%}.reaction{font-size:22px;color:#fff;opacity:.35}.reaction.active{opacity:1;animation:pulse .8s infinite}.lab-step{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:11px;border-bottom:1px solid var(--border)}.lab-step p{margin:3px 0}.observation-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.observation-options button{display:grid;gap:8px;place-items:center;padding:18px;border:2px solid var(--border);border-radius:15px;background:#fff;font-size:28px}.observation-options b{font-size:14px}.observation-options .selected{border-color:var(--station);background:#eef9fb}.evidence-placeholder{min-height:130px;display:grid;place-items:center;font-size:38px;background:#eef5f8;border-radius:12px}.evidence-placeholder small{display:block;font-size:12px}.question-block{padding:16px;margin:12px 0;border:1px solid var(--border);border-radius:15px}.question-answers{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.answer{padding:11px;border:1px solid var(--border);border-radius:11px;background:#fff;text-align:left}.answer.chosen{border-color:#10a6a1;background:#e8faf6}.review-board{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.review-board div{display:grid;gap:4px;padding:16px;border-radius:14px;background:#eef7fa}.review-board strong{font-size:24px;color:var(--navy)}.missing-list{padding:15px 34px;border-radius:14px;background:#fff3e6;color:#8a4b08}.result-card{text-align:center}.stage-nav>span{align-self:center;font-weight:800;color:#688096}@media(max-width:850px){.journey-tabs{display:flex;overflow:auto}.journey-tabs button{min-width:92px}.shop-grid,.observation-options,.review-board{grid-template-columns:1fr 1fr}.question-answers{grid-template-columns:1fr}.lab-bench{gap:20px}.plan-step{grid-template-columns:auto auto 1fr}.plan-step>div{grid-column:3}.login-stats{gap:18px}}@media(max-width:520px){.shop-grid,.observation-options,.review-board{grid-template-columns:1fr}.stage-nav>span{display:none}.login-stations{grid-template-columns:1fr 1fr}.top-actions .save-state{display:none}}.teacher-detail-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:14px 0}.teacher-detail-head h2{flex:1;margin:0}.teacher-live-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;margin-top:18px}.chips{display:flex;gap:7px;flex-wrap:wrap}.chips span{padding:7px 10px;background:#eaf5f8;border-radius:99px;font-size:12px}.settings-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.tool-card{display:grid;gap:7px;text-align:left;padding:17px;border:1px solid var(--border);border-radius:16px;background:#fff;color:#17324d}.tool-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.tool-card span{font-size:32px}.tool-card small{color:#688096}@media(max-width:850px){.teacher-live-grid{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.settings-grid{grid-template-columns:1fr}}.lottery-stage{text-align:center;padding:34px}.mystery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:28px 0}.mystery-card{min-height:210px;border:2px solid #cce4f6;border-radius:22px;background:linear-gradient(160deg,#fff,#f2f9ff);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;box-shadow:0 12px 30px #1b70aa14}.mystery-card strong{font-size:72px;line-height:1;color:#1684cf}.mystery-card b{color:#123c63}.mystery-card span{color:#66829b}.lottery-button{display:block;margin:0 auto;background:linear-gradient(90deg,#1479df,#0aa7bd)}@media(max-width:800px){.mystery-grid{grid-template-columns:repeat(2,1fr)}.mystery-card{min-height:150px}.mystery-card strong{font-size:52px}}.journey-shell{max-width:1440px}.journey-main{position:relative;isolation:isolate}.journey-main:before,.journey-main:after{content:"";position:fixed;z-index:-1;width:320px;height:320px;border-radius:50%;filter:blur(4px);opacity:.28;pointer-events:none}.journey-main:before{left:-110px;top:140px;background:radial-gradient(circle,#68d9ee,transparent 68%)}.journey-main:after{right:-100px;bottom:20px;background:radial-gradient(circle,#a990f5,transparent 68%)}.stage-split{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:26px;align-items:start}.learning-reference{position:sticky;top:92px;padding:18px;border:1px solid #cfe8ef;border-radius:22px;background:linear-gradient(155deg,#f3fdff,#edf7ff);box-shadow:0 16px 38px #0f5b7d1a}.learning-reference p{margin:12px 4px 0;color:#55738b;font-size:13px;line-height:1.55}.station-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.learning-media-card{position:relative;overflow:hidden;border:1px solid #cfe1ea;border-radius:20px;background:#fff;box-shadow:0 14px 34px #1047681f;transition:transform .2s ease,box-shadow .2s ease}.learning-media-card:hover{transform:translateY(-3px);box-shadow:0 19px 42px #1047682e}.learning-media-frame{position:relative;display:grid;place-items:center;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(145deg,#f8fcff,#eaf7fa)}.learning-media-frame img{position:relative;z-index:2;width:100%;height:100%;object-fit:contain;background:#fff;cursor:zoom-in}.learning-media-card.is-missing .learning-media-frame img{display:none}.learning-media-fallback{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:7px;padding:20px;color:#55738b;text-align:center}.learning-media-fallback span{font-size:38px}.learning-media-label{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 14px;border-top:1px solid #e2edf2;color:#173c58;text-align:left}.learning-media-label small{color:#66849a;font-weight:600}.learning-reference .learning-media-card{margin-top:12px}.learning-reference .learning-media-frame{aspect-ratio:4/3}.basket-count{padding:9px 13px;border-radius:999px;background:#e8faf7;color:#08735c;font-size:14px;white-space:nowrap}.station-effects{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none}.station-effects i{position:absolute;width:16px;height:16px;border:3px solid color-mix(in srgb,var(--station) 62%,white);border-radius:50%;opacity:.4;animation:station-float 4.6s ease-in-out infinite}.station-effects i:nth-child(1){left:8%;top:70%}.station-effects i:nth-child(2){right:9%;top:25%;width:25px;height:25px;animation-delay:-1.4s}.station-effects i:nth-child(3){right:24%;bottom:10%;width:10px;height:10px;animation-delay:-2.7s}.station-2 .station-effects i{border-radius:4px;transform:rotate(45deg)}.station-3 .station-effects i{border-style:dotted}.station-4 .station-effects i{box-shadow:0 0 16px var(--station)}@keyframes station-float{0%,to{translate:0 0;scale:.9}50%{translate:0 -24px;scale:1.16}}.review-timeline{display:grid;grid-template-columns:repeat(7,minmax(72px,1fr));gap:8px;margin:22px 0;overflow-x:auto;padding-bottom:5px}.review-timeline-item{position:relative;display:grid;justify-items:center;gap:6px;min-width:76px;color:#668096;font-size:12px}.review-timeline-item span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e8f1f5;font-weight:900}.review-timeline-item.visited span{background:#daf7ee;color:#08735c}.review-timeline-item.current span{background:var(--navy);color:#fff;box-shadow:0 0 0 5px #d8edf6}.media-lightbox{position:fixed;inset:0;z-index:1000;display:grid;grid-template-rows:auto 1fr;background:#051b2ce6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff}.media-lightbox[hidden]{display:none}.media-lightbox-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;background:#051f32c7}.media-lightbox-toolbar>div{display:flex;gap:8px}.media-lightbox-toolbar button{min-width:42px;min-height:42px;border:1px solid #ffffff4d;border-radius:11px;background:#ffffff19;color:#fff;font-size:18px;cursor:pointer}.media-lightbox-stage{display:grid;place-items:center;overflow:auto;padding:28px}.media-lightbox-stage img{max-width:min(1100px,92vw);max-height:78vh;object-fit:contain;border-radius:13px;background:#fff;box-shadow:0 24px 70px #0009;transition:transform .18s ease}[data-connection-state=online],.save-state[data-save-state=saved]{color:#08735c}.save-state[data-save-state=saving]{color:#a15f00}.save-state[data-save-state=error]{color:#b42318}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid #ffbd2e;outline-offset:3px}@media(max-width:1000px){.stage-split{grid-template-columns:1fr}.learning-reference{position:static}.learning-reference .learning-media-frame{aspect-ratio:16/8}.station-images{grid-template-columns:1fr}}@media(max-width:720px){.journey-shell{padding-inline:10px}.journey-tabs{display:flex;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:5px}.journey-tabs button{min-width:96px;scroll-snap-align:start}.stage-split{gap:14px}.learning-reference,.card{border-radius:17px}.panel-heading{align-items:flex-start;gap:10px}.panel-heading>b{font-size:13px}.shop-grid{grid-template-columns:1fr 1fr}.station-images{gap:12px}.media-lightbox-stage{padding:12px}.media-lightbox-toolbar{padding:10px}.review-timeline{grid-template-columns:repeat(7,84px)}}@media(max-width:480px){.shop-grid{grid-template-columns:1fr}.learning-reference .learning-media-frame{aspect-ratio:4/3}.station-images{grid-template-columns:1fr}.media-lightbox-toolbar strong{max-width:45vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media(prefers-reduced-motion:reduce){.station-effects i,.reaction.active{animation:none}.learning-media-card,.media-lightbox-stage img{transition:none}}.journey-shell>.card{margin-top:18px;border-color:#8cbed8b3;box-shadow:0 18px 48px #19527521}.stage-main{min-width:0}.stage-main>h2,.card>h2{margin:6px 0 8px;color:#123b5d}.action-zone{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:24px;padding:18px;border-top:1px solid #dcebf2;border-radius:0 0 16px 16px;background:linear-gradient(135deg,#f4fbfd,#eef7fc)}.action-zone .btn{min-height:46px;padding-inline:20px}.action-zone .btn.primary{min-width:210px;box-shadow:0 9px 20px #087fb533}.action-zone-center{justify-content:center}.action-zone-compact{margin-top:16px;padding:14px 0 0;background:transparent;border-radius:0}.action-zone-compact .btn{flex:1 1 130px;text-align:center}.shop-grid,.plan-list,.evidence-grid,.observation-options,.review-board{margin-top:20px}.shop-item,.answer,.observation-options button,.lab-step{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}.shop-item:focus-visible,.answer:focus-visible,.observation-options button:focus-visible,.lab-step:focus-visible{outline:4px solid rgba(12,166,160,.22);outline-offset:2px}.lab-step{width:100%;margin-top:8px;border:1px solid var(--border);border-radius:13px;background:#fff;color:inherit;text-align:left}.lab-step:not(:disabled):hover{transform:translate(4px);border-color:var(--station);box-shadow:0 8px 20px #1b4a691a}.lab-log{min-height:76px;padding:12px 16px;border-radius:14px;background:#f5fafc;color:#49687e}.lab-log p{margin:6px 0}.stage-nav{bottom:max(10px,env(safe-area-inset-bottom));margin-top:28px;padding:14px 16px;border-color:#8dbad2b8;background:#fffffff0;box-shadow:0 14px 34px #1549692e}.stage-nav .btn{min-width:128px;min-height:44px}.teacher-surface{max-width:1440px;padding-bottom:40px}.teacher-surface>.tabs{gap:10px;padding:10px;margin-bottom:22px;border:1px solid var(--border);border-radius:18px;background:#fffc;box-shadow:0 8px 24px #1b4a6914}.teacher-surface>.tabs .btn{flex:1 1 160px;min-height:45px}.teacher-surface .monitor-card,.teacher-surface>.card{box-shadow:0 14px 34px #1b4a691c}.asset-slot{display:flex;flex-direction:column;gap:8px}.asset-slot .btn{margin:0;text-align:center}.modal .row,.projection>.row{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}@media(max-width:850px){.topbar{gap:10px}.top-actions{justify-content:flex-end}.teacher-surface>.tabs{overflow-x:auto;flex-wrap:nowrap}.teacher-surface>.tabs .btn{flex:0 0 auto}}@media(max-width:520px){.action-zone{flex-direction:column;align-items:stretch;padding:16px 0 0;background:transparent}.action-zone .btn,.action-zone .btn.primary,.action-zone label.btn{width:100%;min-width:0;text-align:center}.stage-nav{bottom:max(4px,env(safe-area-inset-bottom));padding:10px}.stage-nav .btn{min-width:0;flex:1 1 0}.topbar{align-items:flex-start}.top-actions .btn{padding:8px 10px}.timer{font-size:20px}.login-panel{padding:18px 12px 30px}.login-art h1{font-size:clamp(34px,12vw,48px)}}
