/* The destination colours every layer; text and answer-state meanings stay stable. */
body{--world-bg:#231d46;--world-mist:#735bb8;--world-accent:#c9b5ff;--world-secondary:#ffa875;--world-ground:#a6dcea;--world-panel:color-mix(in srgb,var(--world-bg) 86%,#ffffff);--world-deep:color-mix(in srgb,var(--world-bg) 68%,#070c16);--world-line:color-mix(in srgb,var(--world-accent) 32%,var(--world-bg));--world-muted:color-mix(in srgb,var(--world-accent) 35%,#d5dce9);background:radial-gradient(ellipse at 92% 8%,color-mix(in srgb,var(--world-mist) 65%,transparent),transparent 48%),radial-gradient(ellipse at 4% 40%,color-mix(in srgb,var(--world-secondary) 13%,transparent),transparent 42%),var(--world-bg);color:#f3f5ff;min-height:100vh;background-attachment:fixed}
body[data-world]{--accent:var(--world-accent);--soft:var(--world-panel);--ink:#f3f5ff}.topbar{border-bottom-color:var(--world-line)}.nav-button,.account-controls,.account-controls .text-button{color:var(--world-muted)}.nav-button.active{background:var(--world-panel);color:var(--world-accent)}.nav-button span{background:var(--world-accent);color:var(--world-bg)}.brand small,footer,footer a{color:var(--world-muted)}footer{border-top-color:var(--world-line)}
.solar-eyebrow,.world-kicker,.hero-footnote,.mission-number,.mission-state,.commander-id strong,.planet-stop.selected,.console-label,.scan-dot,.battle-transmission strong,.combat-hud span{color:var(--world-accent)}.status-dot,.scan-dot{background:var(--world-accent);box-shadow:0 0 14px color-mix(in srgb,var(--world-accent) 45%,transparent)}.solar-hero em,.solar-results em{color:var(--world-accent)}.solar-primary{background:var(--world-accent);color:var(--world-bg);border-color:color-mix(in srgb,var(--world-accent) 75%,white);box-shadow:0 6px 24px #0002}.solar-primary:hover{background:color-mix(in srgb,var(--world-accent) 80%,white)}.solar-secondary{background:var(--world-panel);border-color:var(--world-line);color:#f4f5ff}.solar-secondary:hover:not(:disabled){background:color-mix(in srgb,var(--world-panel) 80%,var(--world-accent));border-color:var(--world-accent)}.solar-text,.solar-section-heading>span,.mission-card p,.mission-number small,.planet-stop small,.route-status,.arsenal-note,.weapon-card p,.solar-source,.solar-source a{color:var(--world-muted)}.solar-text:hover{color:var(--world-accent)}
.orbit-hero{border-color:var(--world-line);background:radial-gradient(ellipse at 50% 65%,color-mix(in srgb,var(--world-mist) 65%,var(--world-deep)),var(--world-deep) 75%)}.orbit-heading{background:var(--world-panel);border-color:var(--world-line)}.orbit-controls button{background:var(--world-deep);border-color:var(--world-line);color:var(--world-muted)}.orbit-controls button[aria-pressed=true],.orbit-labels button.chosen{color:var(--world-accent);background:var(--world-panel);border-color:var(--world-accent)}.orbit-note span,.orbit-note small,.orbit-note strong,.planet-caption>span,.planet-caption>small,.scene-hint{color:var(--world-muted)}.planet-caption strong{color:#fff}.planet-route{background:var(--world-deep);border-color:var(--world-line);gap:4px;padding:13px 10px}.planet-stop{color:var(--world-muted)}.planet-stop.selected{background:var(--world-panel);border-color:var(--world-accent)}.selected .route-status{color:var(--world-accent)}.planet-stop:hover{background:var(--world-panel)}
.world-intro{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:28px;margin:28px 0 24px;padding:25px 30px;border:1px solid var(--world-line);border-radius:18px;background:radial-gradient(ellipse at 12% 45%,color-mix(in srgb,var(--world-mist) 65%,transparent),transparent 60%),var(--world-deep);overflow:hidden}.world-kicker{font-size:9px;letter-spacing:2px;font-weight:700}.world-intro h2{font-size:clamp(20px,2.5vw,32px);letter-spacing:-.7px;margin:9px 0}.world-intro p{font-size:12px;line-height:1.8;color:var(--world-muted);margin:8px 0}.world-intro small{font-size:10px;color:var(--world-muted)}.world-restoration{height:4px;max-width:420px;background:var(--world-line);border-radius:4px;margin:14px 0 8px;overflow:hidden}.world-restoration>span{display:block;height:100%;background:var(--world-secondary)}.world-emblem{height:135px;position:relative}.world-emblem>span{position:absolute;left:26px;top:17px;width:96px;height:96px;border-radius:50%;background:radial-gradient(circle at 28% 25%,var(--world-accent),var(--world-ground) 32%,var(--world-mist) 63%,var(--world-bg) 86%);box-shadow:inset -15px -8px 25px #0005,0 0 35px color-mix(in srgb,var(--world-accent) 15%,transparent)}.world-emblem:before,.world-emblem:after{content:'✦';position:absolute;color:var(--world-secondary);font-size:14px;top:14px;right:0}.world-emblem:after{font-size:8px;left:8px;top:104px}.world-emblem>i{position:absolute;inset:35px 0;border:1px solid var(--world-accent);border-radius:50%;transform:rotate(-28deg);opacity:.65}body[data-world=saturn] .world-emblem>i{border-width:7px;opacity:.8}body[data-world=uranus] .world-emblem>i{transform:rotate(65deg)}body[data-world=sun] .world-emblem>span{box-shadow:0 0 35px #ffa82a66}
.mission-card{border-color:var(--world-line);background:linear-gradient(135deg,var(--world-panel),var(--world-deep));min-height:205px}.mission-card:before{width:150px;height:150px;right:-30px;top:-30px;background:radial-gradient(circle at 30% 30%,color-mix(in srgb,var(--world-secondary) 18%,transparent),transparent 66%);border:1px solid color-mix(in srgb,var(--world-accent) 15%,transparent);border-radius:50%}.mission-card:after{content:'';position:absolute;width:120px;height:20px;right:-5px;top:52px;border:1px solid color-mix(in srgb,var(--world-accent) 15%,transparent);border-radius:50%;transform:rotate(-35deg);pointer-events:none}.mission-card h3{color:#f6f4ff}.mission-icon{color:var(--world-secondary)}.mission-card:hover:not(:disabled){border-color:var(--world-accent)}.mission-card.cleared{border-color:#7ebfa0;background:linear-gradient(135deg,color-mix(in srgb,var(--world-panel) 82%,#52836c),var(--world-deep))}.commander-panel,.route-lock-note,.boss-card,.solar-progress,.sound-panel{background:var(--world-deep);border-color:var(--world-line)}.commander-panel p,.mission-note,.rescue-badges small,.route-lock-note{color:var(--world-muted)}.rescue-badges{color:var(--world-accent);border-color:var(--world-line)}.boss-card h3{color:var(--world-secondary)}.weapon-card{background:linear-gradient(135deg,var(--world-panel),var(--world-deep));border-color:var(--world-line)}.sound-settings summary,.sound-panel button{background:var(--world-deep);color:var(--world-muted);border-color:var(--world-line)}.sound-panel label{color:#e6eafa}.sound-panel input{accent-color:var(--world-accent)}
.world-mission-strip{display:flex;align-items:center;flex-wrap:wrap;gap:10px 20px;margin:0 0 14px;font-size:10px}.world-mission-strip>span{font-size:8px;letter-spacing:1.6px;color:var(--world-accent)}.world-mission-strip>strong{color:#fff;font-size:12px}.world-mission-strip>small{margin-left:auto;color:var(--world-muted);font-size:8px}.mission-trail{display:flex;gap:8px;margin:0 0 20px;max-width:710px}.mission-trail>span{flex:1;display:flex;align-items:center;gap:7px;font-size:9px;color:var(--world-muted);position:relative}.mission-trail i{font-style:normal;display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:var(--world-panel);border:1px solid var(--world-line);flex-shrink:0}.mission-trail .current i{background:var(--world-accent);border-color:var(--world-accent);color:var(--world-bg);box-shadow:0 0 15px color-mix(in srgb,var(--world-accent) 25%,transparent)}.mission-trail .travelled i{color:#b9f0d0;border-color:#7ebfa0}.boss-integrity{display:flex;align-items:center;gap:12px;max-width:710px;margin:0 0 18px;font-size:9px;color:var(--world-muted)}.boss-integrity>span{font-size:8px;letter-spacing:1px}.boss-integrity>div{flex:1;display:flex;gap:4px}.boss-integrity i{height:9px;flex:1;background:var(--world-secondary);border-radius:2px;transition:background .4s,opacity .4s}.boss-integrity i.broken{background:var(--world-line);opacity:.6}.boss-integrity small{font-size:9px}
.battle-top,.battle-heading>span{color:var(--world-muted)}.battle-meter{background:var(--world-line)}.battle-meter>span{background:var(--world-accent)}.battle-visual{border-color:var(--world-line);background:radial-gradient(ellipse at 70% 20%,color-mix(in srgb,var(--world-mist) 75%,var(--world-deep)),var(--world-deep));height:590px}.battle-console{border-color:var(--world-line);background:linear-gradient(150deg,var(--world-panel),var(--world-deep));min-height:590px}.battle-option{background:var(--world-deep);border-color:var(--world-line);color:#f0effa}.battle-option>span{background:var(--world-panel);color:var(--world-accent)}.battle-option>i{color:var(--world-muted)}.battle-option:hover:not(:disabled){background:color-mix(in srgb,var(--world-panel) 85%,var(--world-mist));border-color:var(--world-accent)}.battle-option.keyboard-selected,.option.keyboard-selected{background:color-mix(in srgb,var(--world-panel) 75%,var(--world-mist));outline-color:var(--world-accent);border-color:var(--world-accent);box-shadow:0 0 20px color-mix(in srgb,var(--world-accent) 12%,transparent)}.battle-option.keyboard-selected>span{background:var(--world-accent);color:var(--world-bg)}.answer-keys,.battle-prompt,.scan-pos,.scan-tip,.battle-help .solar-text{color:var(--world-muted)}.answer-keys kbd{color:var(--world-accent);background:var(--world-deep);border-color:var(--world-line)}.console-label{border-color:var(--world-line)}.scan-story{background:var(--world-deep);border-left-color:var(--world-secondary);color:#e1e5f0}.scan-meaning{color:#f2f3fb}.battle-transmission{background:color-mix(in srgb,var(--world-deep) 94%,transparent);border-color:var(--world-line);align-items:center;padding:13px 15px}.battle-transmission p{color:var(--world-muted)}.combat-hud span{background:var(--world-deep);border-color:var(--world-line)}.combat-hud #boss-phase{color:var(--world-secondary)}.enemy-caption>span{color:var(--world-secondary)}.enemy-caption h2{text-shadow:0 2px 8px #0009}.shield-readout{color:var(--world-accent)}.shield-readout>i{background:var(--world-accent)}.battle-feedback h2{color:#fff}.battle-feedback small{color:var(--world-muted)}.feedback-answer{border-color:var(--world-line);color:#bcf2d2}.repair .feedback-answer{color:#ffe0a7}
.world-buddy{display:inline-block;position:relative;width:47px;height:48px;flex:0 0 47px;color:var(--world-accent)}.buddy-face{position:absolute;top:13px;left:4px;width:39px;height:27px;border:2px solid var(--world-accent);border-radius:11px;background:var(--world-panel);box-shadow:inset 0 -5px 0 color-mix(in srgb,var(--world-mist) 55%,transparent);display:flex;align-items:center;justify-content:center;gap:8px}.buddy-face i{height:6px;width:5px;border-radius:50%;background:var(--world-secondary);animation:buddy-blink 7s infinite}.buddy-antenna{position:absolute;left:23px;top:3px;height:11px;width:2px;background:var(--world-accent)}.buddy-antenna:after{content:'';position:absolute;width:6px;height:6px;top:-2px;left:-2px;border-radius:50%;background:var(--world-secondary)}.buddy-feet{position:absolute;left:12px;top:40px;width:23px;height:4px;border-left:7px solid var(--world-accent);border-right:7px solid var(--world-accent)}.buddy-ocean .buddy-face{border-radius:50%;width:43px;left:2px}.buddy-ocean .buddy-feet{width:46px;left:0;top:29px;border-left-width:5px;border-right-width:5px}.buddy-desert .buddy-feet,.buddy-crater .buddy-feet,.buddy-haze .buddy-feet,.buddy-dock .buddy-feet{height:8px;border-radius:3px;left:8px;width:31px;top:37px}.buddy-corona .buddy-antenna{transform:scale(1.4)}.buddy-message,.rescue-message{display:flex;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--world-line);margin:18px 0 9px;color:var(--world-muted);font-size:11px;line-height:1.7}.buddy-message strong{color:var(--world-accent);font-size:9px;margin-right:5px}.rescue-message{max-width:420px}.rescue-message strong{font-size:9px;letter-spacing:1px;color:var(--world-accent)}.rescue-message p{font-size:12px;line-height:1.7;margin:6px 0}.commander-id{gap:12px}.commander-id small{color:var(--world-muted);font-size:8px}
.solar-results{background:radial-gradient(ellipse at 75% 40%,var(--world-mist),var(--world-deep) 74%);border-color:var(--world-line);min-height:680px}.result-overlay>p{color:var(--world-muted)}.solar-result-stats span{color:var(--world-muted)}.postcard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.world-postcard{text-align:left;border:1px solid var(--postcard-light);background:linear-gradient(135deg,var(--postcard),#151b2c);padding:22px;position:relative;overflow:hidden;border-radius:12px;color:white;min-height:170px}.world-postcard>small,.world-postcard>strong,.world-postcard>span:not(.postcard-orbit){display:block;position:relative}.world-postcard small{font-size:8px;letter-spacing:1.5px;color:var(--postcard-light)}.world-postcard strong{font-size:23px;margin:35px 0 10px}.world-postcard>span:not(.postcard-orbit){font-size:11px;line-height:1.6}.postcard-orbit{position:absolute;right:18px;top:16px;font-size:40px;color:var(--postcard-light);opacity:.7}.world-postcard:hover{transform:translateY(-3px)}.review-story{color:var(--world-muted);font-size:12px;line-height:1.7;margin:0 0 20px}.quiz-box,.panel,.word-card{border-color:var(--world-line)}
@keyframes buddy-blink{0%,94%,98%,100%{transform:scaleY(1)}96%{transform:scaleY(.15)}}
@media(max-width:760px){.world-intro{grid-template-columns:70px 1fr;padding:18px 15px;gap:15px}.world-emblem{height:90px;transform:scale(.6);transform-origin:left center;width:135px}.world-intro h2{font-size:19px}.world-intro p{font-size:10px}.world-intro small{font-size:9px}.world-kicker{font-size:8px;letter-spacing:1px}.world-mission-strip{gap:8px;margin-bottom:12px}.world-mission-strip>span{font-size:7px}.world-mission-strip>small{font-size:7px;margin-left:0}.world-mission-strip>strong{font-size:11px}.mission-trail{gap:4px;margin-bottom:15px}.mission-trail>span{flex-direction:column;font-size:8px;gap:5px}.mission-trail i{width:20px;height:20px}.battle-visual{height:340px}.battle-console{min-height:0}.battle-transmission{bottom:12px;left:11px;right:11px;padding:9px;gap:8px}.battle-transmission p{font-size:9px;line-height:1.5;margin-top:4px}.battle-transmission strong{font-size:7px}.battle-transmission .world-buddy{transform:scale(.8);transform-origin:center}.combat-hud{bottom:98px}.enemy-caption h2{font-size:13px;letter-spacing:1px;max-width:215px}.boss-integrity{gap:7px}.boss-integrity>span{font-size:7px}.boss-integrity small{font-size:8px}.boss-integrity>div{gap:3px}.solar-results{display:flex;flex-direction:column;min-height:0}.solar-results>.solar-scene{position:relative;order:2;top:auto;height:330px;min-height:330px}.solar-results>.result-overlay{order:1;width:100%;padding:28px 22px 10px;max-width:none}.solar-results h1{font-size:34px}.rescue-message{margin:16px 0 8px}.postcard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.world-postcard{padding:14px;min-height:160px}.world-postcard strong{font-size:20px}.world-postcard>span:not(.postcard-orbit){font-size:10px}.world-postcard small{font-size:6px}.postcard-orbit{font-size:27px}.mission-card{min-height:195px}}
@media(prefers-reduced-motion:reduce){.buddy-face i{animation:none}.boss-integrity i,.world-postcard{transition:none}}
.auth-panel,.panel,.quiz-box,.theme-tile,.stat,.toolbar input,.toolbar select{background:var(--world-panel);border-color:var(--world-line);color:#f0f2fa}.auth-tabs,.auth-panel input,.option{background:var(--world-deep);border-color:var(--world-line);color:#f0f2fa}.auth-tabs .selected{background:var(--world-accent);color:var(--world-bg)}.auth-welcome p,.auth-panel .auth-footnote,.source-note,.solar-source small,.quiz-pos,.quiz-meta,.quiz-footer{color:var(--world-muted)}.option .letter{background:var(--world-panel);color:var(--world-accent)}.option.right{border-color:#82caa1;background:#1c4a39;color:#ecfff4}.word-card.locked{background:var(--world-deep);border-color:var(--world-line);color:var(--world-muted)}.word-card .card-sub{color:#c0cbda}.speak{background:var(--world-panel);border-color:var(--world-line);color:var(--world-accent)}.speak:hover{border-color:var(--world-accent)}
/* Full-page environmental art stays behind the reading surfaces. */
body{isolation:isolate}
.world-atmosphere{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;contain:strict}
body[data-world="earth"]{--world-bg:#092c43;--world-mist:#176c86;--world-accent:#a8eaf1}
.mission-medal{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid currentColor;border-radius:20px;font-size:11px;line-height:1.4;font-weight:800;color:#c6d1de;background:#111b2ccc}
.mission-medal.bronze{color:#efba91}.mission-medal.silver{color:#d7e8fa}.mission-medal.gold{color:#ffe297}
.mission-card .mission-medal{margin:4px 0 10px}.boss-card .mission-medal{margin-bottom:12px}
.medal-result{padding:18px;border:1px solid var(--world-line);border-radius:14px;background:var(--world-deep);margin:18px 0}.medal-result h2{font-size:18px;margin:12px 0 5px}.medal-result p{font-size:13px!important;margin:8px 0!important;line-height:1.65!important}.medal-rules{margin:18px 0;color:var(--world-muted);font-size:12px;line-height:1.8;padding:16px 20px;border:1px solid var(--world-line);border-radius:12px;background:var(--world-deep)}.medal-rules summary{cursor:pointer;font-weight:800;color:var(--world-accent)}
.mastery-explainer{margin:0 0 24px;padding:18px;border:1px solid var(--world-line);border-radius:12px;background:var(--world-deep);font-size:13px;line-height:1.8;color:var(--world-muted)}.mastery-explainer strong{color:var(--world-accent)}
.fleet-status{font-variant-numeric:tabular-nums}.battle-visual .enemy-caption{pointer-events:none}
/* Orbital scenes have real depth against dark space, irrespective of page palette. */
.battle-visual{background:radial-gradient(ellipse at 80% 32%,color-mix(in srgb,var(--world-mist) 24%,#070d1b),#060b17 78%)}
.battle-visual .enemy-caption{background:linear-gradient(90deg,#060b17bb,transparent);padding:8px 12px;border-radius:8px;max-width:85%}
.battle-visual .enemy-caption h2{font-size:clamp(14px,1.7vw,22px)}
@media(max-width:650px){.battle-visual .enemy-caption{padding:5px 7px}.battle-visual .enemy-caption h2{font-size:12px}}
/* Keep celebration artwork beside the readable result, rather than behind its text. */
@media(min-width:651px){.solar-results{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);min-height:0;background:var(--world-deep)}.solar-results>.result-overlay{order:1;width:auto;max-width:none;padding:38px 30px}.solar-results>.solar-scene{order:2;position:relative;inset:auto;height:680px;min-height:680px;align-self:start;margin-top:30px;background:radial-gradient(ellipse at 65% 35%,color-mix(in srgb,var(--world-mist) 22%,#070d1b),#060b17 78%);border-radius:16px 0 0 16px}.solar-results h1{font-size:clamp(32px,3.6vw,48px)}}
.planet-exam-entry{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px;margin:18px 0 25px;border:1px solid var(--world-accent);border-radius:16px;background:var(--world-deep)}.planet-exam-entry h3{margin:10px 0;font-size:21px}.planet-exam-entry p{font-size:13px;line-height:1.8;max-width:680px;color:var(--world-muted)}.planet-exam-entry button{flex:none}.question-stem{margin:16px 0;padding:18px;border-left:3px solid var(--world-accent);background:var(--world-deep);font-size:17px;line-height:1.8;color:#edf3ff}.exam-shell{max-width:950px;margin:auto}.exam-heading{margin:30px 0}.exam-heading h1{font-size:40px;letter-spacing:-1.5px;margin:15px 0}.exam-heading p{font-size:13px;color:var(--world-muted);line-height:1.8}.exam-console{background:var(--world-panel);border:1px solid var(--world-line);border-radius:18px;padding:30px}.exam-console h2{font-size:34px;margin:24px 0 12px}.exam-console .options{display:grid;gap:12px}.exam-console .option{background:var(--world-deep);border-color:var(--world-line);color:#eef4ff;min-height:64px}.exam-console .option:hover{border-color:var(--world-accent)}.exam-saved{padding:28px 0}.exam-repair{margin:30px 0}.exam-repair details{background:var(--world-deep);border:1px solid var(--world-line);padding:20px;border-radius:12px;margin:12px 0}.exam-repair summary{cursor:pointer;font-size:20px;font-weight:700}.word-explanations{margin:12px 0;color:var(--world-muted);font-size:13px;line-height:1.8}.word-explanations summary{cursor:pointer}.mastery-line{color:var(--world-accent);font-size:12px;line-height:1.8}@media(max-width:650px){.planet-exam-entry{flex-direction:column;align-items:stretch;padding:20px}.exam-heading h1{font-size:30px}.exam-console{padding:20px}.exam-console h2{font-size:27px}.exam-shell .battle-top{flex-wrap:wrap;gap:10px}.question-stem{font-size:15px}}
.spelling-mask{font-family:ui-monospace,monospace;letter-spacing:.12em;overflow-wrap:anywhere;font-size:clamp(20px,3vw,32px)!important}#spelling-form{display:flex;flex-direction:column;gap:14px;margin:24px 0;text-align:left}#spelling-form label{font-size:13px;color:var(--world-muted)}#spelling-answer{background:var(--world-deep);border:1px solid var(--world-line);border-radius:10px;color:#eef4ff;padding:16px;font-size:22px;width:100%;box-sizing:border-box}#spelling-form button{align-self:flex-end}

.recall-form{display:grid;gap:14px;margin:18px 0}.recall-form label{display:grid;gap:8px}.recall-form input{width:100%;max-width:100%;box-sizing:border-box;padding:15px;color:var(--text,#f5faff);background:rgba(2,8,20,.6);border:1px solid #8ec4dd80;border-radius:12px;font-size:22px}.repair-recall,.repair-lesson,.recall-success{padding:20px 4px}.spelling-mask{overflow-wrap:anywhere;letter-spacing:.15em;font-size:28px}.repair-error{color:#ffd08b}.repair-recall .small{margin-top:18px}
