@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(./assets/fonts/dm-sans-400.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(./assets/fonts/dm-sans-500.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(./assets/fonts/dm-sans-600.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(./assets/fonts/dm-sans-700.ttf) format('truetype');
}
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(./assets/fonts/outfit-400.ttf) format('truetype');
}
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(./assets/fonts/outfit-500.ttf) format('truetype');
}
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(./assets/fonts/outfit-600.ttf) format('truetype');
}
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(./assets/fonts/outfit-700.ttf) format('truetype');
}
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(./assets/fonts/outfit-800.ttf) format('truetype');
}

:root{--paper:#f6f3ec;--ink:#263f47;--muted:#84908d;--orange:#ef8357;--green:#8bbbab;--navy:#152c3a;--line:#e4e4da;--font:'Outfit','Avenir Next','Trebuchet MS',sans-serif}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{font-family:var(--font);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;touch-action:manipulation}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;touch-action:manipulation;user-select:none}button:focus-visible,a:focus-visible{outline:3px solid #397b8b;outline-offset:4px}button:disabled{cursor:default}svg{display:inline-block}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.app-shell{height:100svh;max-width:1600px;margin:auto;padding:18px 40px 10px;display:flex;flex-direction:column;gap:15px}.topbar{height:65px;flex:none;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink);font-weight:750;font-size:30px;letter-spacing:-1.25px}.brand-dot{color:var(--orange);margin-left:-9px}.brand-planet{position:relative;display:inline-block;width:30px;height:30px;margin-right:4px;background:var(--orange);border-radius:50%;transform:rotate(-30deg)}.brand-planet:before{content:'';position:absolute;border:2px solid var(--ink);width:43px;height:12px;border-radius:50%;top:7px;left:-8px}.brand-planet:after{content:'';position:absolute;inset:2px 5px 12px;background:var(--orange);border-radius:50%}.mission-heading{display:flex;flex-direction:column;gap:5px;margin-left:10px}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:600}.mission-heading .eyebrow{color:#91998f;font-size:8px;letter-spacing:1.8px}.mission-name{font-size:16px;font-weight:500;letter-spacing:-.1px}.mission-name span{color:var(--orange);margin-left:4px}.top-actions{display:flex;align-items:center;gap:12px}.top-actions button{border:1px solid #dce0d5;border-radius:12px;color:var(--ink);background:transparent;height:43px}.top-actions svg{width:19px;height:19px}.map-button{display:flex;gap:9px;align-items:center;padding:0 15px;font-size:12px;font-weight:500}.icon-button{width:43px;display:grid;place-items:center;position:relative}.icon-button #sound-slash{position:absolute;width:23px;height:2px;background:var(--ink);transform:rotate(-45deg);border:1px solid var(--paper)}.icon-button[aria-pressed=true] #sound-slash{display:none}.game-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(330px,1fr);gap:26px;flex:1;min-height:0}.space-panel{position:relative;isolation:isolate;border-radius:23px;background:radial-gradient(ellipse at 30% 70%,#28484c 0,transparent 50%),radial-gradient(ellipse at 90% 30%,#283743 0,transparent 45%),#162c3a;overflow:hidden;min-width:0;min-height:0;color:#f9f5e9}.scene-top{position:absolute;top:25px;left:27px;right:27px;display:flex;justify-content:space-between;align-items:center;z-index:3;gap:10px}.live-badge{font-size:8px;letter-spacing:1.7px;color:#b9cbc4;white-space:nowrap;display:flex;align-items:center;gap:7px}.live-badge i{width:5px;height:5px;background:#91c3aa;border-radius:50%;box-shadow:0 0 10px #8bbbab88}.coordinate{font-size:7px;letter-spacing:1.2px;color:#7d9598}.scene-title{position:absolute;top:64px;left:34px;z-index:2;pointer-events:none}.scene-title p{color:#b1c0b4;font-size:8px;font-weight:400;letter-spacing:2px;margin:0 0 11px}.scene-title h1{font-size:clamp(27px,3.3vw,50px);font-weight:500;letter-spacing:-1.4px;line-height:1.1;margin:0}.scene-title h1 span{color:#f0a071}.space-art{position:absolute;width:100%;height:calc(100% - 30px);top:12px;left:0;overflow:visible;z-index:1;pointer-events:none}.planet-name{font:500 11px var(--font);letter-spacing:2px;fill:#e7eddf}.planet-note{font:400 9px var(--font);fill:#91a7a7;letter-spacing:.2px}.destination{fill:#e8cc9b;font-size:10px}.space-stars{position:absolute;inset:0;pointer-events:none}.space-stars i{position:absolute;border-radius:50%;background:#e0e6c6;opacity:.4;animation:twinkle 5s ease-in-out infinite}.space-stars .cross{background:none;opacity:.55}.space-stars .cross:before,.space-stars .cross:after{content:'';position:absolute;background:#bfd3bd;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:2px;width:100%;height:1px}.space-stars .cross:after{transform:translate(-50%,-50%) rotate(90deg)}.buddy-message{position:absolute;bottom:98px;right:28px;display:flex;align-items:center;gap:11px;z-index:3}.buddy-message p{font-size:11px;line-height:1.55;color:#becfc4;margin:0;max-width:190px}.buddy-face{height:35px;width:39px;flex-shrink:0;display:flex;justify-content:center;gap:9px;align-items:center;background:#a6c8b2;border-radius:15px 15px 13px 13px;position:relative;transform:rotate(-7deg);box-shadow:0 4px 0 #304f52}.buddy-face:before{content:'';position:absolute;top:-5px;left:17px;width:4px;height:7px;border-radius:3px;background:#a6c8b2}.buddy-face i{width:4px;height:6px;background:#274b50;border-radius:3px}.buddy-face:after{content:'';position:absolute;bottom:6px;width:6px;height:3px;border-bottom:1.5px solid #274b50;border-radius:50%}.journey-footer{position:absolute;bottom:0;left:0;right:0;padding:18px 27px;display:flex;gap:20px;align-items:center;background:#132c36cc;border-top:1px solid #9bbda914;z-index:3}.journey-footer .eyebrow{font-size:7px;color:#a8c1b5;letter-spacing:1.5px}.journey-footer p{margin:4px 0 0;white-space:nowrap;font-size:11px;color:#9aafa8}.journey-footer p strong{font-size:18px;font-weight:500;color:#f2f3df}.journey-meter{height:5px;border-radius:5px;background:#748e7f33;flex:1;overflow:hidden}.journey-meter>div{height:100%;background:#c0d1a8;border-radius:5px;min-width:0;transition:width .8s ease}.journey-percent{font-size:11px;color:#b8c7ad}.math-panel{border:1px solid #e4e4d9;border-radius:23px;padding:24px 30px 13px;background:#fffef9;display:flex;flex-direction:column;gap:8px;min-height:0;box-shadow:0 5px 20px #3b4f371b}.level-heading{display:flex;align-items:center;gap:9px;height:20px;flex:none;letter-spacing:1px;font-size:8px;font-weight:600}.level-label{background:#edf1e5;color:#597865;padding:5px 8px;border-radius:5px;white-space:nowrap}.level-stop{color:#969c8e;font-size:7px;flex:1;letter-spacing:1px}.mini-star{display:flex;align-items:center;gap:4px;color:#a08c5e;font-size:11px;letter-spacing:0}.mini-star svg{width:14px;height:14px;color:#e8b756}.mini-star b{font-weight:500}.question-heading{padding:6px 0 1px;flex:none}.question-heading h2{font-size:30px;font-weight:600;letter-spacing:-1px;margin:0 0 3px;line-height:1.1}.question-heading p{font-family:'DM Sans',sans-serif;font-size:10px;color:#8b9386;margin:0}.fuel-row{display:flex;align-items:center;gap:14px;flex:none;height:20px}.fuel-dots{display:flex;gap:5px;flex:1}.fuel-dots span{height:5px;flex:1;background:#e9ecdf;border-radius:5px}.fuel-dots span.filled{background:#8ebba2}.fuel-dots span.current{background:#eab38c}.fuel-row>span{font-size:9px;color:#949b8e}.equation-area{position:relative;display:flex;align-items:center;justify-content:center;flex:1;min-height:105px;max-height:300px}.vertical-equation{width:132px;font-weight:500;font-size:clamp(33px,4.7vh,58px);line-height:1.06;font-variant-numeric:tabular-nums;letter-spacing:3px;position:relative}.operand{text-align:right;padding-right:8px}.operand.second{display:flex;align-items:center;justify-content:space-between}.operand.second>span:first-child{font-size:.8em;font-weight:400;margin-left:4px;color:#80987f}.equation-line{height:2px;background:#b6c4ad;border-radius:2px;margin:5px 0 7px}.answer-display{text-align:right;height:1.1em;min-height:35px;letter-spacing:3px;padding-right:8px;background:#f1f3e9;border-radius:8px;color:#41665c;box-shadow:inset 0 0 0 1px #e0e7d5;font-size:.9em;line-height:1.14}.answer-placeholder{color:#b3c1a6;font-weight:400}.feedback-line{text-align:center;height:22px;flex:none;font-size:10px;font-family:'DM Sans',sans-serif;color:#939a8d;display:flex;align-items:center;justify-content:center;line-height:1.3}.feedback-line.correct{color:#50856b;font-weight:600}.feedback-line.incorrect{color:#bc7856}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;flex:none}.keypad button{height:clamp(44px,5.4vh,57px);border:1px solid #e3e7d9;border-bottom:3px solid #dce2d3;background:#f5f6ee;border-radius:10px;font-size:21px;font-weight:500;color:#3d554e;transition:background .12s,transform .1s;display:flex;align-items:center;justify-content:center}.keypad button:hover{background:#e8efdf}.keypad button:active{transform:translateY(2px);border-bottom-width:1px}.keypad button:disabled{opacity:.6}.keypad .hint-key{gap:5px;background:#fbf6e9;color:#9c936b;border-color:#ece5d4}.hint-key span{font-size:21px}.hint-key small{font-size:9px;font-weight:500}.backspace svg{width:21px;height:21px;color:#87967e}.launch-button{display:flex;align-items:center;justify-content:center;gap:14px;background:var(--orange);border:1px solid #e17b50;border-bottom:3px solid #d77550;border-radius:10px;height:48px;flex:none;color:#fff9ed;font-size:15px;font-weight:500;letter-spacing:.1px;transition:transform .1s,background .2s}.launch-button svg{height:19px;width:19px}.launch-button:hover{background:#e7784b}.launch-button:active{transform:translateY(2px);border-bottom-width:1px}.launch-button:disabled{background:#edbb9c;border-color:#e6b596;color:#fff9ec}.encouragement{flex:none;text-align:center;font-size:8px;color:#a1a38c;height:17px;padding-top:2px;letter-spacing:.2px}.encouragement>span{color:#b7b598;margin-right:4px}.page-footer{flex:none;display:flex;align-items:center;justify-content:space-between;height:22px;font-size:8px;color:#969e8f;gap:15px;letter-spacing:.2px}.save-indicator{display:flex;gap:6px;align-items:center}.save-indicator i{height:4px;width:4px;background:#94b59b;border-radius:50%}.keyboard-note{font-size:6px;letter-spacing:1px;display:flex;align-items:center;gap:4px}kbd{font:7px var(--font);border:1px solid #d9ddcf;border-radius:3px;padding:2px 4px;letter-spacing:0}.hint-visual{position:absolute;left:0;right:0;bottom:0;background:#f4f5e9;border:1px solid #dfe5d1;border-radius:8px;padding:10px;font-size:11px;text-align:center;line-height:1.5;color:#64806b;z-index:3;box-shadow:0 -3px 16px #fffef9}.hint-visual[hidden]{display:none}.hint-dots{display:flex;gap:3px;flex-wrap:wrap;justify-content:center;margin-top:7px}.hint-dots i{height:8px;width:8px;border-radius:50%;background:#92b3a0}.hint-dots i.added{background:#e6a078}.hint-dots i.removed{background:transparent;border:1px solid #cda995;opacity:.5}.route-marker circle{fill:#203f48;stroke:#698f87;stroke-width:1.2}.route-marker text{fill:#a4b9ac;font:500 8px var(--font);text-anchor:middle;dominant-baseline:central}.route-marker.current circle{fill:#ef9b6a;stroke:#f9d5ab}.route-marker.current text{fill:#243e41}.route-marker.complete circle{fill:#9ac4a8;stroke:#bdd6b3}.route-marker.complete text{fill:#23483e}#rocket-position{transition:transform 1s cubic-bezier(.3,.05,.2,1)}.rocket-bob{animation:bob 3s ease-in-out infinite}.map-rocket{filter:drop-shadow(0 4px 7px #0b1b2a66);transform:rotate(30deg)}.space-panel.warping .space-stars i{animation:warp 1s ease-in infinite}.space-panel.warping #rocket-position{transition:transform 1.8s cubic-bezier(.7,0,.2,1)}.space-panel.warping .map-rocket{filter:drop-shadow(-15px 25px 10px #ffbe6266)}dialog{position:fixed;inset:0;border:1px solid #e3e4d6;border-radius:24px;background:#fbfaf3;color:var(--ink);width:min(740px,92vw);max-height:92svh;padding:28px 32px;box-shadow:0 20px 90px #0b26364a;overflow:hidden}dialog::backdrop{background:#102b3aba;backdrop-filter:blur(7px)}.dialog-top{display:flex;justify-content:space-between;align-items:center}.dialog-top .eyebrow{font-size:8px;color:#8d9e88}.close-button{border:1px solid #dce0d2;background:transparent;border-radius:50%;width:32px;height:32px;color:#768b75;font-size:22px;line-height:1}.dialog-top~h2{margin:15px 0 8px;letter-spacing:-1px;font-size:30px;font-weight:500}.dialog-intro{margin:0 0 24px;color:#8b9785;font-size:12px}.level-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.level-card{border:1px solid #e1e6d7;border-radius:10px;display:flex;padding:11px;gap:10px;align-items:center;min-height:65px;background:#f4f5ec}.level-card.current{border-color:#e9bb96;background:#fff1e3}.level-card.completed{background:#ecf2e7;border-color:#ccddc6}.level-card.locked{opacity:.57}.level-card-number{height:27px;width:27px;display:grid;place-items:center;background:#e3e8d9;border-radius:50%;font-size:11px;color:#839377;flex:none}.current .level-card-number{background:#efaf80;color:#fff}.completed .level-card-number{background:#96b89b;color:#fff}.level-card h3{font-size:12px;margin:0 0 4px;font-weight:500}.level-card p{font-size:9px;margin:0;color:#8a957d}.map-footer{display:flex;align-items:center;justify-content:space-between;margin-top:24px;gap:20px;font-size:8px;color:#99a08d}.text-button{background:none;border:none;color:#a67d5c;text-decoration:underline;text-underline-offset:4px;font-size:10px}.celebration-dialog{text-align:center;width:min(480px,90vw);padding:30px 35px;background:#173440;color:#f8f4e5;border-color:#739281;isolation:isolate}.celebration-rocket{height:130px;position:relative;margin:0 auto 15px}.celebration-rocket svg{height:130px;width:104px;filter:drop-shadow(0 12px 24px #edac5b44);animation:bob 2s ease-in-out infinite;transform:rotate(20deg)}.celebration-dialog>.eyebrow{font-size:8px;color:#b1c6ad}.celebration-dialog h2{font-size:42px;line-height:1.1;letter-spacing:-1px;font-weight:500;margin:13px 0}.celebration-dialog>p{font-size:12px;color:#b9c9bb;line-height:1.6;margin:0 auto;max-width:300px}.earned-stars{color:#eabc6b;letter-spacing:10px;font-size:30px;margin:20px 0}.next-mission{border-top:1px solid #6a908044;padding:15px 0 21px;line-height:1.6;font-size:11px;color:#aec7b1}.next-mission strong{display:block;color:#f1f0d9;font-size:15px;font-weight:500}.celebration-dialog .launch-button{width:100%}.warp-stars{position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 20% 20%,#d9dea080 1px,transparent 2px),radial-gradient(circle at 75% 30%,#d9dea080 1px,transparent 2px),radial-gradient(circle at 90% 80%,#d9dea080 1px,transparent 2px);background-size:115px 173px,151px 137px,177px 137px}#particles{position:fixed;inset:0;pointer-events:none;z-index:100;overflow:hidden}.particle{position:absolute;animation:confetti 1.3s ease-out forwards;opacity:0}.shake{animation:shake .35s ease-in-out}.answer-pop{animation:answerPop .3s ease}.success-glow{animation:glow .65s ease}.mini-star.spark svg{animation:answerPop .5s ease}@keyframes bob{0%,100%{translate:0 0}50%{translate:0 -7px}}@keyframes twinkle{0%,100%{opacity:.25}50%{opacity:.65}}@keyframes shake{0%,100%{translate:0}25%{translate:-7px}75%{translate:7px}}@keyframes answerPop{0%,100%{scale:1}50%{scale:1.13}}@keyframes glow{50%{box-shadow:0 0 0 9px #a8c88d30;color:#7e9e68}}@keyframes warp{0%{transform:translate(0) scale(1);opacity:.2}100%{transform:translate(-60px,100px) scale(1,6);opacity:.7}}@keyframes confetti{0%{opacity:1;translate:0 0;rotate:0}100%{opacity:0;translate:var(--dx) var(--dy);rotate:var(--rotation)}}
@media(min-width:1400px){.app-shell{padding:24px 55px 14px;gap:20px}.topbar{height:75px}.math-panel{padding:29px 40px 20px;gap:12px}.scene-title{top:75px;left:40px}.scene-top{left:35px;right:35px}.question-heading{padding:8px 0}.question-heading h2{font-size:36px}.question-heading p{font-size:12px}.level-heading{font-size:9px}.level-stop{font-size:8px}.keypad{gap:9px}.keypad button{height:clamp(40px,5.8vh,66px)}.launch-button{height:54px}.feedback-line{font-size:12px}.encouragement{font-size:9px}.buddy-message{bottom:115px;right:35px}.buddy-message p{font-size:13px}.page-footer{font-size:9px}.scene-title h1{font-size:49px}}
@media(max-width:1100px){.app-shell{padding:12px 23px 8px;gap:12px}.game-layout{grid-template-columns:minmax(0,1.3fr) minmax(310px,1fr);gap:18px}.math-panel{padding:20px 23px 12px;gap:7px}.topbar{height:60px}.brand{font-size:27px}.scene-top{left:22px;right:22px;top:24px}.coordinate{display:none}.scene-title{top:61px;left:25px}.scene-title h1{font-size:36px}.scene-title p{font-size:7px;letter-spacing:1.4px}.buddy-message{right:22px;bottom:105px}.buddy-message p{font-size:10px;max-width:135px}.buddy-face{scale:.85;margin-right:-3px}.keyboard-note{display:none}.page-footer{height:20px}.mission-heading .eyebrow{font-size:7px;letter-spacing:1px}.mission-name{font-size:14px}.top-actions{gap:8px}.top-actions button{height:40px}.icon-button{width:40px}.map-button{padding:0 12px}.journey-footer{padding:17px 22px;gap:14px}}
@media(orientation:portrait) and (min-width:650px){.app-shell{padding:18px 26px 12px;gap:16px}.topbar{height:67px}.game-layout{grid-template-columns:minmax(0,.95fr) minmax(0,1fr);gap:17px}.math-panel{padding:24px 19px 14px;gap:12px}.space-art{top:50px;height:calc(100% - 75px);width:100%;left:0}.scene-title{left:24px;top:70px}.scene-title h1{font-size:34px;letter-spacing:-1px}.scene-title p{font-size:6px}.question-heading h2{font-size:30px}.vertical-equation{font-size:55px}.keypad button{height:62px}.buddy-message{bottom:110px;left:24px;right:auto}.buddy-message p{font-size:10px;max-width:180px}.journey-footer{padding:20px;gap:10px}.journey-footer .eyebrow{font-size:6px}.page-footer{font-size:7px}.mission-heading{display:none}.level-stop{font-size:6px;letter-spacing:.6px}.level-heading{gap:6px}.launch-button{height:55px}.fuel-dots{gap:3px}.encouragement{font-size:7px}.feedback-line{font-size:10px;height:27px}.live-badge{font-size:7px;letter-spacing:1.1px}}
@media(max-height:720px) and (orientation:landscape){.app-shell{padding-top:8px;gap:8px}.topbar{height:48px}.math-panel{padding:16px 23px 9px;gap:5px}.question-heading{padding:3px 0 0}.question-heading h2{font-size:25px}.question-heading p{font-size:9px}.keypad button{height:34px;font-size:18px}.keypad{gap:5px}.launch-button{height:40px;font-size:13px}.feedback-line{height:19px;font-size:9px}.encouragement{height:13px;font-size:7px}.vertical-equation{font-size:32px;width:110px}.equation-area{min-height:105px}.scene-title{top:53px}.scene-title h1{font-size:31px}.scene-top{top:20px}.scene-title p{margin-bottom:8px}.journey-footer{padding-top:12px;padding-bottom:12px}.buddy-message{bottom:80px}.page-footer{height:18px}.level-heading{height:18px}.fuel-row{height:17px}}
@media(max-width:649px){.app-shell{padding:7px 12px 6px;gap:8px}.topbar{height:45px;gap:10px}.brand{font-size:23px;gap:6px}.brand-planet{width:23px;height:23px;margin-right:4px}.brand-planet:before{width:34px;height:10px;left:-7px;top:5px}.brand-dot{margin-left:-6px}.mission-heading{display:none}.top-actions{gap:6px}.top-actions button{height:35px;border-radius:10px}.map-button{padding:0 9px;font-size:10px;gap:6px}.top-actions svg{height:16px;width:16px}.icon-button{width:35px}.game-layout{display:grid;grid-template-columns:1fr;grid-template-rows:minmax(135px,27%) minmax(0,1fr);gap:9px}.space-panel{border-radius:16px}.scene-title{top:35px;left:18px}.scene-title p{display:none}.scene-title h1{font-size:24px;letter-spacing:-.5px}.scene-top{top:13px;left:18px;right:18px}.live-badge{font-size:6px;letter-spacing:1px}.space-art{width:70%;height:210%;left:38%;top:-65%;}.planet-name,.planet-note{display:none}.buddy-message{display:none}.journey-footer{padding:9px 18px;gap:12px;background:#112d38bb;height:41px}.journey-footer>div:first-child{display:flex;gap:10px;align-items:center}.journey-footer .eyebrow{font-size:6px}.journey-footer p{margin:0;font-size:8px}.journey-footer p strong{font-size:12px}.journey-percent{font-size:8px}.journey-meter{height:3px}.math-panel{padding:13px 20px 8px;gap:5px;border-radius:16px;display:grid;grid-template-columns:1fr 1.15fr;grid-template-rows:18px 48px 14px minmax(70px,1fr) 22px 40px 13px;column-gap:18px}.level-heading{grid-column:1/-1;height:18px}.question-heading{grid-column:1/-1;grid-row:2;padding:4px 0 0}.question-heading h2{font-size:26px;margin:0 0 4px}.question-heading p{font-size:9px}.level-label{font-size:7px}.level-stop{font-size:6px}.fuel-row{grid-column:1/-1;grid-row:3;height:14px}.fuel-dots{gap:4px}.fuel-dots span{height:4px}.fuel-row>span{font-size:8px}.equation-area{grid-column:1;grid-row:4/6;min-height:0;max-height:none}.vertical-equation{font-size:38px;width:100px}.keypad{grid-column:2;grid-row:4/6;gap:5px;align-self:stretch}.keypad button{height:auto;min-height:28px;font-size:18px;border-radius:7px}.keypad .hint-key{gap:1px}.hint-key span{font-size:16px}.hint-key small{font-size:7px}.backspace svg{width:18px}.feedback-line{grid-column:1;grid-row:6;align-self:center;height:auto;font-size:9px}.launch-button{grid-column:2;grid-row:6;height:40px;border-radius:8px;font-size:13px}.encouragement{grid-column:1/-1;grid-row:7;height:13px;font-size:7px}.page-footer{height:15px;font-size:6px;gap:6px}.page-footer>span:first-child{display:none}.save-indicator{margin:auto}.hint-visual{font-size:9px;padding:7px;bottom:0}.hint-dots i{height:6px;width:6px}.dialog-top~h2{font-size:24px}.dialog-intro{font-size:10px;margin-bottom:15px}dialog{padding:20px}.level-grid{gap:6px}.level-card{padding:8px;gap:7px;min-height:55px}.level-card-number{height:22px;width:22px;font-size:9px}.level-card h3{font-size:10px}.level-card p{font-size:8px}.map-footer{margin-top:16px;gap:10px;flex-direction:column;font-size:7px}.celebration-dialog{padding:24px}.celebration-dialog h2{font-size:34px}.celebration-rocket,.celebration-rocket svg{height:95px}.earned-stars{margin:15px 0;font-size:25px}.celebration-dialog .launch-button{display:flex;height:48px}.celebration-dialog>p{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* A bigger, living solar expedition. Each planet keeps its shape in every viewport. */
.space-panel{background:radial-gradient(ellipse at 15% 78%,#315c5b66 0,transparent 48%),radial-gradient(ellipse at 88% 9%,#77533535 0,transparent 38%),#142c3b}
.space-panel .scene-title{top:54px;left:27px;right:24px}
.space-panel .scene-title p{font-size:7px;margin:0 0 5px;letter-spacing:1.5px}
.space-panel .scene-title h1{font-size:21px;letter-spacing:-.5px;line-height:1.1;font-weight:500}
.orbit-map{position:absolute;inset:98px 10px 105px;container-type:size;z-index:2}
.orbit-map .space-art{inset:0;position:absolute;top:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.planet-stop{position:absolute;left:var(--x);top:var(--y);width:var(--orb-size);height:var(--orb-size);transform:translate(-50%,-50%);pointer-events:none}
.planet-stop .planet-orb{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 8px 10px #071b3038);animation:planetFloat 7s ease-in-out infinite}
.planet-stop .planet-name{position:absolute;top:91%;left:-35%;width:170%;display:block;text-align:center;color:#e6ecda;font-family:var(--font);font-size:12px;font-weight:500;letter-spacing:1.1px;text-transform:uppercase;text-shadow:0 2px 5px #0c273c,0 0 8px #132c3a;line-height:1.1;white-space:nowrap}
.planet-earth{--orb-size:clamp(105px,26cqw,185px)}
.planet-moon{--orb-size:clamp(50px,12cqw,90px)}
.planet-mars{--orb-size:clamp(62px,15cqw,110px)}
.planet-jupiter{--orb-size:clamp(90px,23cqw,165px)}
.planet-saturn{--orb-size:clamp(105px,27cqw,195px)}
.planet-neptune{--orb-size:clamp(62px,15cqw,110px)}
.planet-comet{--orb-size:clamp(80px,19cqw,135px)}
.planet-venus{--orb-size:clamp(55px,13cqw,95px)}
.planet-mercury{--orb-size:clamp(43px,10cqw,70px)}
.planet-sun{--orb-size:clamp(118px,32cqw,220px)}
.planet-sun .planet-name{color:#f6d69c;top:96%}
.planet-saturn .planet-name{top:84%}
.planet-comet .planet-name{top:75%;left:0;width:150%}
.planet-moon .planet-orb{animation-delay:-2s}.planet-mars .planet-orb{animation-delay:-4s}.planet-jupiter .planet-orb{animation-duration:9s;animation-delay:-3s}.planet-saturn .planet-orb{animation-duration:8s;animation-delay:-5s}.planet-neptune .planet-orb{animation-delay:-1s}.planet-comet .planet-orb{animation-duration:6s;animation-delay:-3s}.planet-venus .planet-orb{animation-delay:-6s}.planet-mercury .planet-orb{animation-duration:6s;animation-delay:-2s}.planet-sun .planet-orb{animation:sunBreathe 5s ease-in-out infinite;filter:drop-shadow(0 0 18px #ffcb5844)}
.planet-clouds{animation:cloudDrift 9s ease-in-out infinite}.sun-ray-ring{transform-origin:100px 100px;animation:orbitSpin 70s linear infinite}.sun-aura{transform-origin:100px 100px;animation:auraPulse 4s ease-in-out infinite}.saturn-ring-tilt{transform-origin:100px 100px;animation:ringRock 12s ease-in-out infinite}.comet-tail{transform-origin:143px 104px;animation:tailFlicker 1.5s ease-in-out infinite}.rocket-flame{transform-origin:40px 77px;animation:flameDance .28s ease-in-out infinite alternate}.rocket-flame-inner{transform-origin:40px 78px;animation:flameDance .2s ease-in-out infinite alternate-reverse}
.rocket-marker{position:absolute;left:21.3235%;top:78.4615%;width:62px;height:78px;margin:-39px 0 0 -31px;transition:left 1s cubic-bezier(.3,.05,.2,1),top 1s cubic-bezier(.3,.05,.2,1);z-index:4;pointer-events:none}
.rocket-marker .map-rocket{width:62px;height:78px;overflow:visible;transform:rotate(35deg);filter:drop-shadow(-6px 8px 6px #041b2b66)}
.rocket-marker .rocket-bob{animation:rocketHover 2.5s ease-in-out infinite}
.space-panel.warping .rocket-marker{transition:left 1.8s cubic-bezier(.7,0,.2,1),top 1.8s cubic-bezier(.7,0,.2,1)}
.meteor-trails{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}.meteor-trails i{position:absolute;width:90px;height:2px;background:linear-gradient(90deg,transparent,#d6ecd8);top:14%;left:-120px;rotate:-25deg;opacity:0;animation:shootingStar 9s linear infinite}.meteor-trails i:after{content:'';position:absolute;right:-1px;top:-1px;width:4px;height:4px;background:#eef7d9;border-radius:50%;box-shadow:0 0 8px #daf5cf}.meteor-trails i:nth-child(2){top:48%;animation-delay:3.5s;animation-duration:12s;width:65px}.meteor-trails i:nth-child(3){top:76%;animation-delay:7s;animation-duration:14s}
.space-panel .buddy-message{right:24px;left:auto;bottom:88px;gap:8px}.space-panel .buddy-message p{font-size:9px;max-width:220px;line-height:1.4}.space-panel .buddy-face{width:29px;height:26px;scale:.85}.space-panel .journey-footer{padding:15px 24px;min-height:65px}.route-marker text{font-size:10px}.route-marker circle{stroke-width:1.5}
@keyframes planetFloat{0%,100%{translate:0 0;rotate:-1deg}50%{translate:0 -6px;rotate:1deg}}
@keyframes cloudDrift{0%,100%{translate:-4px 0}50%{translate:4px 0}}
@keyframes orbitSpin{to{rotate:360deg}}
@keyframes ringRock{0%,100%{rotate:-3deg}50%{rotate:3deg}}
@keyframes sunBreathe{0%,100%{scale:1}50%{scale:1.035}}
@keyframes auraPulse{0%,100%{scale:.96;opacity:.1}50%{scale:1.05;opacity:.2}}
@keyframes tailFlicker{0%,100%{scale:1 .9;opacity:.15}50%{scale:1.1 1.1;opacity:.3}}
@keyframes flameDance{from{scale:.9 .8}to{scale:1.08 1.2}}
@keyframes rocketHover{0%,100%{translate:0 1px;rotate:-3deg}50%{translate:3px -6px;rotate:3deg}}
@keyframes shootingStar{0%,72%{translate:0 0;opacity:0}73%{opacity:.8}86%{translate:850px -180px;opacity:0}100%{translate:850px -180px;opacity:0}}
@media(min-width:1400px){.space-panel .scene-title{left:34px;top:58px}.space-panel .scene-title h1{font-size:25px}.orbit-map{inset:106px 16px 115px}.planet-stop .planet-name{font-size:14px}.space-panel .buddy-message p{font-size:11px}.space-panel .buddy-message{bottom:91px;right:30px}}
@media(orientation:portrait) and (min-width:650px){.space-panel .scene-title{top:54px;left:22px;right:20px}.space-panel .scene-title h1{font-size:20px}.space-panel .scene-title p{font-size:6px;letter-spacing:1px}.orbit-map{inset:115px 0 125px}.planet-stop .planet-name{font-size:10px;letter-spacing:.8px}.space-panel .buddy-message{left:22px;right:15px;bottom:90px}.space-panel .buddy-message p{font-size:9px;max-width:210px}.space-panel .journey-footer{padding:18px 20px}.rocket-marker,.rocket-marker .map-rocket{width:48px;height:60px}.rocket-marker{margin:-30px 0 0 -24px}}
@media(max-height:720px) and (orientation:landscape){.space-panel .scene-title{top:45px;left:22px}.space-panel .scene-title h1{font-size:18px}.space-panel .scene-title p{font-size:6px;margin-bottom:3px}.orbit-map{inset:88px 10px 91px}.planet-stop{scale:.85}.planet-stop .planet-name{font-size:12px}.space-panel .buddy-message{bottom:70px}.space-panel .buddy-message p{font-size:8px}.space-panel .journey-footer{min-height:55px;padding:10px 20px}.rocket-marker,.rocket-marker .map-rocket{width:48px;height:60px}.rocket-marker{margin:-30px 0 0 -24px}}
@media(max-width:649px){.space-panel .scene-title{top:31px;left:17px;right:16px}.space-panel .scene-title h1{font-size:15px}.space-panel .scene-title p{display:none}.orbit-map{inset:56px 13px 48px}.planet-earth{--orb-size:38px}.planet-moon{--orb-size:25px}.planet-mars{--orb-size:32px}.planet-jupiter{--orb-size:43px}.planet-saturn{--orb-size:51px}.planet-neptune{--orb-size:29px}.planet-comet{--orb-size:35px}.planet-venus{--orb-size:28px}.planet-mercury{--orb-size:23px}.planet-sun{--orb-size:48px}.planet-stop .planet-name{font-size:6px;letter-spacing:.2px;top:91%;text-shadow:0 1px 3px #122c38}.planet-saturn .planet-name{top:81%}.planet-comet .planet-name{top:77%}.planet-sun .planet-name{top:100%}.rocket-marker,.rocket-marker .map-rocket{width:25px;height:32px}.rocket-marker{margin:-16px 0 0 -12px}.space-panel .buddy-message{display:none}.space-panel .journey-footer{min-height:36px;height:36px;padding:7px 17px}.meteor-trails i{width:35px}.route-marker text{font-size:12px}.route-marker circle{r:9px}.space-panel .scene-top{top:12px}.space-panel .live-badge{font-size:6px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.planet-stop.active-stop .planet-name{color:#ffdc9e}.planet-stop.visited-stop .planet-name{color:#b8d8b8}

/* Keep the planet route above the persistent fact dock. */
.space-panel.has-discovery .orbit-map{inset:82px 10px 247px}
.space-panel.has-discovery .buddy-message{display:none}
.math-panel.level-ready .vertical-equation,.math-panel.level-ready #hint-visual{display:none!important}
.level-reward{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:100%;height:100%;min-height:100px;text-align:center;padding:5px 0}
.level-reward[hidden]{display:none}.level-reward-rocket{height:63px;width:51px;overflow:visible;rotate:18deg;animation:rocketHover 2.5s ease-in-out infinite}.level-reward-sun{display:none;height:70px;width:70px;overflow:visible;animation:sunBreathe 5s ease-in-out infinite}.level-reward strong{font-size:21px;font-weight:500;line-height:1.15;letter-spacing:-.5px;color:#426b5c}.level-reward>span{font-size:10px;line-height:1.4;color:#8b9680;max-width:230px}.math-panel.mission-finished .level-reward-rocket{display:none}.math-panel.mission-finished .level-reward-sun{display:block}
@media(min-width:1400px){.space-panel.has-discovery .orbit-map{inset:94px 16px 267px}.level-reward-rocket{height:76px;width:61px}.level-reward strong{font-size:24px}.level-reward>span{font-size:11px}}
@media(orientation:portrait) and (min-width:650px){.space-panel.has-discovery .orbit-map{inset:108px 0 299px}.level-reward{gap:10px}.level-reward-rocket{height:90px;width:72px}.level-reward-sun{height:100px;width:100px}.level-reward strong{font-size:24px}.level-reward>span{font-size:11px;max-width:220px}}
@media(max-height:720px) and (orientation:landscape){.space-panel.has-discovery .orbit-map{inset:75px 10px 207px}.space-panel.has-discovery .planet-stop{scale:.75}.level-reward{gap:3px;min-height:95px;padding:0}.level-reward-rocket{height:50px;width:40px}.level-reward-sun{height:57px;width:57px}.level-reward strong{font-size:18px}.level-reward>span{font-size:9px}}
@media(max-width:649px){.space-panel.has-discovery .orbit-map,.space-panel.has-discovery .scene-title{visibility:hidden}.space-panel.has-discovery .scene-top{z-index:5}.level-reward{gap:8px;min-height:0;padding:0 2px}.level-reward-rocket{height:70px;width:56px}.level-reward-sun{height:77px;width:77px}.level-reward strong{font-size:21px;max-width:140px}.level-reward>span{font-size:10px;max-width:140px}}
@media(prefers-reduced-motion:reduce){.level-reward,.level-reward *{animation:none!important;transition:none!important}}
@media(min-width:650px) and (orientation:landscape){.space-panel.has-discovery .planet-saturn .planet-name{top:-1%}.space-panel.has-discovery .planet-venus .planet-name{top:-18%;left:-55%}}
