/* A playful mission desk: tactile controls, clear numbers, one big launch moment. */
.resume-panel{padding-bottom:26px;margin-bottom:28px;border-bottom:1px solid var(--line)}
.class-screen .resume-panel h2{font-size:28px;line-height:1.2;letter-spacing:-.02em}
.resume-panel>p{font-size:16px;line-height:1.5;margin:12px 0 18px}
.resume-panel .primary{width:100%;white-space:normal}
.resume-panel .resume-note{font-size:14px;color:var(--muted);margin:13px 0 0}
.lesson-intro h3{font-size:20px;line-height:1.3;margin:0 0 8px}
.lesson-intro p{font-size:16px;line-height:1.55;margin:0}
.lesson-intro .text-button{color:var(--teal);min-height:44px;margin:4px 0 10px}
.group-instruction{font-size:16px;line-height:1.5;margin:0 0 12px}
.star-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(60px,1fr));gap:8px;margin-bottom:18px}
.star-group{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:6px;border:1px dashed #8caaa3;border-radius:9px;padding:9px 4px;background:#f1f6f2;color:#536b65;font-size:12px;font-weight:800}
.group-stars{display:grid;grid-template-columns:repeat(3,13px);gap:2px;align-self:center}
.group-stars svg{width:13px;height:13px;fill:#dbe7e0;stroke:#607a70;stroke-width:1.4}
.star-group.counted{background:#12655c;border-style:solid;border-color:#12655c;color:#fff9ed}
.star-group.counted svg{fill:#ffdc70;stroke:#ffdc70}
.save-status,.flight-screen p.save-status{font-size:13px;line-height:1.5;color:var(--muted);margin:20px 0 0}
:root{--orange:#b93924;--teal:#067173;--ease:cubic-bezier(.16,1,.3,1)}
body{background:#f6f3e9}
.topbar{padding-top:18px;padding-bottom:18px;gap:16px}
.brand strong{color:var(--orange)}
.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.header-note{display:none}
.setting-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 12px;border:1px solid #bdc9cc;border-radius:24px;color:var(--ink);background:#fffdf7;font-size:14px;font-weight:800;white-space:nowrap}
.setting-button:hover:enabled{background:#e5f1ec;border-color:#518b85}.setting-button[aria-pressed="false"]{background:#eceded;color:#4c626e}
.setting-button svg,.choice-arrow{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sound-off{display:none}[aria-pressed="false"] .sound-off{display:block}[aria-pressed="false"] .sound-waves{display:none}
.workspace{border-radius:24px;box-shadow:0 14px 38px #16354b12;min-height:690px}
.desk{background:#fffdf7}
.class-screen h2{font-size:clamp(38px,4vw,51px);line-height:1.1}.class-screen h2 span{color:var(--teal)}
.intro{font-size:18px;margin:20px 0 24px;max-width:30ch;color:#42576b}
.class-options{gap:14px}
.class-choice{--choice:#daeeef;border:0;background:var(--choice);padding:21px 18px 19px;border-radius:16px;box-shadow:0 4px 8px #203b4810;transition:transform .18s var(--ease),box-shadow .18s,background .18s}
.class-choice[data-grade="2"]{--choice:#ffe6b4}.class-choice[data-grade="3"]{--choice:#e6e0f7}.class-choice[data-grade="4"]{--choice:#ffdfd3}
.class-choice:hover{background:var(--choice);transform:translateY(-3px);box-shadow:0 8px 15px #203b4820}.class-choice:active{transform:translateY(1px)}
.class-choice>span:first-child{font-size:38px}.class-choice small{font-size:14px;color:#354d61}.class-choice .choice-arrow{top:18px;right:15px;color:var(--ink)}
.how-it-works{font-size:16px;color:#42576b;line-height:1.65}
.question-meta{margin-bottom:20px}.question-meta span:first-child{background:#e5f2ee;color:#14595b;border:0;border-radius:20px;padding:6px 12px;font-weight:800}
.question-meta span:last-child{font-weight:800;color:#536574}
.question-title{font-size:30px;margin-bottom:22px}
.equation{align-items:center;gap:12px}
.factor{background:#e5f3ee;padding:14px 12px 10px;border-radius:16px;min-width:88px}.factor-second{background:#fff0d0}
.factor strong{font-size:64px}.factor>span{font-size:14px;color:#365666;margin-top:5px;font-weight:800}
.equation>b{font-size:30px;line-height:1}.unknown{font-size:59px;min-width:0;letter-spacing:-.035em}
.count-instruction{color:#294759;font-size:21px;margin:22px 0}
input{border:2px solid #9badb5;border-radius:12px;min-height:58px;background:#fff;font-size:26px}input:focus{border-color:var(--teal)}
.primary{border-radius:12px;min-height:58px;padding:16px 20px;box-shadow:0 5px 12px #9837231c;transition:background .15s,transform .15s,box-shadow .15s}
.primary:hover{box-shadow:0 8px 17px #98372328;transform:translateY(-2px)}.primary:active{transform:translateY(1px)}
#launchButton{background:#ffce59;color:#26374a;font-size:21px;box-shadow:0 6px 16px #b6781926}#launchButton:hover{background:#ffdb7e}
.feedback.success{background:#e4f2e9;padding:14px 16px;border-radius:12px;color:#0b6258;font-weight:800}.feedback.error{padding:10px 0;color:#9d392a}
.count-chip.counted{animation:count-in .3s var(--ease)}
.space{--scene-line:#8ba8bd;--scene-muted:#d0e1eb;background:#112c47;padding-top:28px}
.space:before,.space:after{transition:opacity .9s ease}
.mission-top h1{font-size:48px;line-height:1.06}.space-caption{font-size:14px}.mission-stamp{font-size:12px;border-radius:20px;padding:7px 10px;background:#ffffff0a}
.theme-label{font-size:12px}.journey-label{font-size:16px;margin-top:9px}
.sky{height:420px;min-height:380px}
.scene-status{position:absolute;top:22px;left:0;right:0;z-index:4;text-align:center;font-size:14px;line-height:1.4;font-weight:800;color:var(--scene-muted);pointer-events:none}
.flight-effects{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}
.target{z-index:1}.flight-route{z-index:0}.rocket-wrap{z-index:3}
.stars{inset:-10px;animation:star-drift 16s ease-in-out infinite alternate;will-change:auto}
.stars:after{content:'';position:absolute;inset:0;background-image:radial-gradient(circle at 34% 29%,#fffbe3 1.4px,transparent 2px),radial-gradient(circle at 79% 68%,#a7e9e1 1.2px,transparent 2px);background-size:190px 160px;animation:star-glimmer 5s ease-in-out infinite alternate}
.sky.flying .stars{animation:star-flight 1.3s linear infinite}
.sky.flying .flight-route path{stroke:#ffcf65;stroke-width:2;stroke-dasharray:4 8;opacity:.8}
.space[data-theme="day"] .sky.flying .flight-route path{stroke:#865212}
.sky.igniting .rocket-built{animation:engine-ready .18s linear infinite}
.sky.ready .launchpad{border-color:#ffce59;background:#ffce5920;animation:pad-ready 1.5s ease-in-out infinite alternate}
.sky.ready .scene-status{color:var(--scene-text)}
.countdown{color:#ffdb78;font-size:94px;text-shadow:0 5px 20px #112c4730}.space[data-theme="day"] .countdown{color:#173552}
.sky.arrived .target img{animation:destination-arrival .6s var(--ease)}
.sky.mars-scene-ready{--mars-scene-scale:1.15}
.mars-arrival{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;opacity:0;pointer-events:none;transform:scale(var(--mars-scene-scale));transform-origin:50% 100%;z-index:4}
.sky.mars-scene-ready .mars-arrival{opacity:1}
.sky.mars-scene-ready #rocketBuilt{transform:scale(var(--mars-scene-scale));transform-origin:50% 100%;transition:transform .55s var(--ease)}
.sky.mars-scene-ready .hatch-door{transform:rotate(-68deg)}
.mars-arrival path{vector-effect:non-scaling-stroke}
.mars-ledge{fill:#d66c4c;stroke:#142b42;stroke-width:1.7;stroke-linejoin:round}
.mars-ladder path{fill:none;stroke:#f4d177;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.hatch-opening{fill:#142b42;stroke:#10243a;stroke-width:1.5}
.hatch-door{fill:#d9d0bb;stroke:#142b42;stroke-width:2;transform-box:fill-box;transform-origin:left center}
.child-pack{fill:#e8a441;stroke:#142b42;stroke-width:2;stroke-linejoin:round}
.child-torso{fill:#fff5df;stroke:#142b42;stroke-width:2.5;stroke-linejoin:round}
.child-suit-trim{fill:none;stroke:#d98243;stroke-width:1.5;stroke-linecap:round}
.child-badge{fill:#f1cb64;stroke:#142b42;stroke-width:1}
.child-legs-outline,.child-arm-outline,.wave-outline{fill:none;stroke:#142b42;stroke-width:8.5;stroke-linecap:round;stroke-linejoin:round}
.child-legs,.child-arm,.wave-arm{fill:none;stroke:#fff5df;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.child-boots,.child-gloves,.wave-glove{fill:#fff5df;stroke:#142b42;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.helmet-rim{fill:#142b42}.helmet-shell{fill:#fff5df;stroke:#142b42;stroke-width:2}
.child-face{fill:#eca467;stroke:#a84f38;stroke-width:1.2}.face-eye{fill:#142b42}.face-smile{fill:none;stroke:#873d32;stroke-width:1.2;stroke-linecap:round}
.helmet-glint{fill:none;stroke:#fff;stroke-width:1.5;stroke-linecap:round}
.sky.mars-arrival-live .mars-hatch{animation:mars-hatch-open .65s .45s var(--ease) both}
.sky.mars-arrival-live .hatch-door{animation:mars-door-open .55s .45s var(--ease) both}
.sky.mars-arrival-live .mars-ladder{animation:mars-ladder-lower .7s 1.1s var(--ease) both}
.sky.mars-arrival-live .mars-child{animation:mars-exit-wave 1.1s 1.6s var(--ease) both}
.sky.mars-arrival-live .child-wave{animation:mars-wave 1.2s 3.1s ease-in-out both;transform-box:view-box;transform-origin:97px 104px}
@keyframes mars-hatch-open{from{opacity:0}to{opacity:1}}
@keyframes mars-door-open{from{transform:rotate(0)}to{transform:rotate(-68deg)}}
@keyframes mars-ladder-lower{from{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}
@keyframes mars-exit-wave{0%{opacity:0;transform:translate(-15px,-24px)}40%{opacity:1;transform:translate(-12px,-4px)}100%{opacity:1;transform:translate(0)}}
@keyframes mars-wave{0%,100%{transform:rotate(0)}18%,54%,90%{transform:rotate(-24deg)}36%,72%{transform:rotate(18deg)}}
.calm-motion .mars-arrival-live *,.calm-motion .mars-arrival-live *:before,.calm-motion .mars-arrival-live *:after{animation:none!important}
@media(prefers-reduced-motion:reduce){.mars-arrival-live *{animation:none!important}}
@media(max-width:650px){.sky.mars-scene-ready{--mars-scene-scale:1.45}}
@media(max-width:360px){.sky.mars-scene-ready .scene-status{text-align:left;padding-left:8px}}
.build-status>span{font-size:16px;font-weight:800;margin:8px 0 12px}
.segments{gap:10px}.segments i{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;font-size:14px;font-weight:800;font-style:normal;background:#36536c;color:#dfebf3;transition:background .25s,color .25s}
.segments i.done{background:#ffcf65;color:#23364a}.space[data-theme="day"] .segments i{background:#d2e7ef;color:#214456}.space[data-theme="day"] .segments i.done{background:#087677;color:white}
.route-heading{font-size:13px;margin-top:22px}.route{padding-top:3px;gap:10px}.route li{font-size:13px;min-width:60px;flex-basis:60px;gap:5px;padding-bottom:8px}.route img{width:43px;height:43px;opacity:.75}.route .current{border-color:#ffcf65}.space[data-theme="day"] .route .current{border-color:#214456}
.flight-tally{font-size:14px;font-weight:800}.flight-screen h2{font-size:41px}.large-number{color:var(--teal);font-size:64px}.flight-screen p{font-size:19px}
@keyframes star-drift{from{transform:translate(-4px,-4px)}to{transform:translate(7px,5px)}}
@keyframes star-glimmer{from{opacity:.2}to{opacity:.9}}
@keyframes star-flight{from{transform:translateY(-12px)}to{transform:translateY(12px)}}
@keyframes engine-ready{0%,100%{transform:translateX(-.65px)}50%{transform:translateX(.65px)}}
@keyframes pad-ready{from{opacity:.55}to{opacity:1}}
@keyframes destination-arrival{from{transform:scale(.96)}to{transform:scale(1)}}
@keyframes count-in{from{opacity:.5;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
.effects-paused .stars,.effects-paused .stars:after,.effects-paused .rocket-built,.effects-paused .launchpad{animation-play-state:paused!important}
.calm-motion *,.calm-motion *:before,.calm-motion *:after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
.calm-motion .class-choice:hover,.calm-motion .primary:hover{transform:none}
@media(max-width:1050px) and (min-width:851px){.desk{padding:28px}.equation{gap:8px}.factor{min-width:70px;padding:12px 8px}.factor strong{font-size:54px}.unknown{font-size:49px}.equation>b{font-size:25px}.class-choice{padding:18px 13px}.class-choice small{font-size:13px}}
@media(max-width:850px){.workspace{min-height:0}.sky{height:380px;min-height:380px;flex:none}.topbar{flex-wrap:wrap}.class-screen h2{font-size:42px}.desk{padding:30px}.class-choice{padding:20px}.header-actions{gap:8px}.route li{flex:1 0 60px}}
@media(max-width:650px){
 .topbar{padding:14px 18px 12px;gap:12px}.brand{font-size:23px}.header-actions{gap:7px;justify-content:flex-start;width:100%}.setting-button{font-size:13px;padding:7px 10px;min-height:40px}.setting-button svg{width:18px;height:18px}.text-button{font-size:13px;margin-left:auto}
 .workspace{margin:0 12px;border-radius:20px}.space{padding:20px 20px 17px}.mission-top h1{font-size:34px}.mission-stamp{font-size:11px}.space-caption{font-size:13px}.journey-label{font-size:14px;margin-top:7px}
 .sky{height:280px;min-height:280px;margin-top:4px}.scene-status{top:13px;font-size:13px}.countdown{font-size:70px}.build-status>span{font-size:14px;margin:7px 0 10px}.segments i{width:29px;height:29px;font-size:13px}.segments{gap:9px}
 .route-heading{margin-top:18px;font-size:12px}.route li{flex:0 0 54px;min-width:54px;font-size:12px}.route img{width:37px;height:37px}.flight-tally{font-size:13px;margin-top:8px}
 .desk{padding:28px 22px}.class-screen h2{font-size:38px}.class-screen h2 br{display:block}.intro{font-size:17px;margin:16px 0 21px}.class-choice{padding:18px 14px}.class-choice>span:first-child{font-size:34px}.class-choice small{font-size:13px}.class-choice .choice-arrow{top:15px;right:12px;width:18px;height:18px}.how-it-works{font-size:15px}
 .question-title{font-size:27px}.equation{gap:clamp(6px,2vw,12px)}.factor{min-width:0;padding:12px 10px}.factor strong{font-size:clamp(34px,10vw,56px)}.factor>span{font-size:13px}.unknown{font-size:clamp(31px,9vw,48px);line-height:1.2}.equation>b{font-size:24px}.count-instruction{font-size:19px}
 .flight-screen h2{font-size:34px}.flight-screen p{font-size:18px}.large-number{font-size:54px}.primary{min-height:55px}#launchButton{font-size:19px}
}
@media(max-width:360px){.space{padding-left:17px;padding-right:17px}.desk{padding:25px 17px}.setting-button{font-size:12px;gap:5px;padding:7px 8px}.text-button{font-size:12px}.factor{padding:10px 7px}.equation{gap:6px}.class-choice small{font-size:12px}}
@media(prefers-reduced-motion:reduce){.stars,.stars:after,.rocket-built,.launchpad,.target img,.count-chip{animation:none!important}.class-choice:hover,.primary:hover{transform:none}}
