/* Lunar RPG: a self-contained canvas scene; existing modes keep their layout. */
.rpg-launch{width:100%;display:flex;align-items:center;gap:14px;min-height:64px;padding:10px 18px;margin:0 0 12px;border:1px solid #6ee7b745;border-radius:16px;background:linear-gradient(110deg,#123b34,#102638 70%,#1c2542);color:#ecfdf5;box-shadow:0 8px 26px #0003,inset 0 1px #ffffff0a;transition:transform .2s,background .2s;text-align:left}
.rpg-launch:hover{transform:translateY(-2px);background:linear-gradient(110deg,#175245,#17304c)}
.rpg-launch-icon{display:grid;place-items:center;width:40px;height:40px;flex:0 0 40px;border-radius:12px;background:#6ee7b714;color:#9cfbd0}.rpg-launch-icon svg{display:block;width:24px;height:24px;flex-shrink:0}
.rpg-launch-copy{display:flex;align-items:baseline;gap:12px}.rpg-launch-copy strong{font-family:Orbitron,system-ui,sans-serif;font-size:19px;letter-spacing:2px}.rpg-launch-copy>span{font-size:13px;color:#a8c7c5}.rpg-launch-arrow{margin-left:auto;font-size:22px;color:#86efac}
#main-content:has(#screen-rpg.active){overflow:hidden}
#screen-rpg.rpg-screen{width:100%;height:100%;min-height:0;flex:1;flex-direction:column;color:#e7eef9;background:#071022;overflow:hidden;font-family:system-ui,sans-serif}
.rpg-toolbar{display:flex;align-items:center;gap:12px;flex-shrink:0;min-height:70px;padding:12px 24px;border-bottom:1px solid #d6e7ff16;background:#080f20;z-index:2}
.rpg-title{display:flex;flex-direction:column;gap:3px}.rpg-title>span{font-size:10px;color:#6ee7b7;letter-spacing:2.2px;font-weight:700}.rpg-title>strong{font-size:16px;letter-spacing:.2px}.rpg-stat{display:flex;align-items:center;gap:10px;margin-left:auto;margin-right:12px;font-size:12px;font-weight:700;color:#bbd6d5}.rpg-xp-track{height:5px;width:75px;background:#fff1;border-radius:9px;overflow:hidden}.rpg-xp-track i{display:block;height:100%;background:#6ee7b7;transition:width .3s}
.rpg-icon-button{width:40px;height:40px;display:grid;place-items:center;flex-shrink:0;border-radius:12px;background:#ffffff05;border:1px solid #ffffff14;color:#ccd7e7;font-size:21px;transition:background .2s}.rpg-icon-button:hover{background:#ffffff12}
.rpg-viewport{position:relative;flex:1;min-height:0;isolation:isolate;overflow:hidden;background:#090f23}
#rpg-world{display:block;width:100%;height:100%;touch-action:none;outline:none}
#rpg-world:focus-visible{outline:2px solid #86efac;outline-offset:-3px}
.rpg-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 130px #0206177a}
.rpg-quest{position:absolute;left:26px;top:24px;max-width:260px;padding:18px 20px;background:#0a1429d6;border:1px solid #ddeaff18;border-radius:18px;backdrop-filter:blur(12px);box-shadow:0 15px 30px #0002;pointer-events:none}
.rpg-eyebrow{display:block;color:#8eb2bc;font-size:10px;font-weight:700;letter-spacing:2px;margin-bottom:7px}.rpg-quest>strong{font-size:18px;display:block}.rpg-quest p{font-size:12px;color:#b6c7d7;line-height:1.6;margin:8px 0 12px}.rpg-quest #rpg-progress{font-size:11px;color:#88e5bd;display:flex;gap:16px;flex-wrap:wrap}
.rpg-health{position:absolute;top:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;background:#091324cc;border:1px solid #ffffff15;border-radius:20px;padding:8px 13px;font-size:11px}.rpg-health>span{color:#fb809b;font-size:17px}.rpg-health-track{width:86px;height:6px;overflow:hidden;background:#fff1;border-radius:8px}.rpg-health-track i{display:block;height:100%;background:linear-gradient(90deg,#fb7185,#fda4af);transition:width .4s}
.rpg-map{position:absolute;right:26px;top:24px;padding:9px 10px;border-radius:18px;background:#091324cd;border:1px solid #ddeaff18;pointer-events:none}.rpg-map canvas{display:block;width:130px;height:130px}.rpg-map span{display:block;font-size:9px;color:#92abbf;letter-spacing:2px;text-align:center;margin:1px 0 4px}
#rpg-toast{position:absolute;left:50%;top:90px;transform:translateX(-50%);max-width:calc(100% - 32px);width:max-content;padding:10px 18px;border:1px solid #88e5bd38;background:#082329e8;border-radius:12px;color:#d2f9e6;font-size:13px;opacity:0;transition:opacity .25s;pointer-events:none;text-align:center;z-index:2}
#rpg-toast.show{opacity:1}
.rpg-controls{position:absolute;inset:auto 26px 22px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;pointer-events:none}
#rpg-key-hint{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;max-width:calc(100% - 200px);font-size:11px;letter-spacing:.25px;color:#b6c7d7;background:#091324c7;border:1px solid #fff1;border-radius:12px;padding:10px 14px}.rpg-key-group{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.rpg-key-group+.rpg-key-group{border-left:1px solid #fff2;padding-left:16px}.rpg-key-group kbd{font-family:inherit;font-weight:700;font-size:10px;color:#d9f4e8;border:1px solid #ffffff18;border-radius:5px;background:#ffffff07;padding:3px 5px;line-height:1.3}
.rpg-action-button{pointer-events:auto;border-radius:14px;padding:13px 20px;background:#133b39de;color:#b9f8dc;border:1px solid #6ee7b74d;font-size:13px;font-weight:700;min-height:46px;box-shadow:0 6px 22px #0003}.rpg-action-button:disabled{opacity:.48}.rpg-action-button kbd{margin-left:12px;display:inline-block;padding:2px 5px;border-radius:4px;background:#ffffff10;font-size:10px}.rpg-dpad{display:none;pointer-events:auto;width:136px;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(2,44px);gap:2px;touch-action:none}.rpg-dpad button{color:#d5f7ec;border:1px solid #ffffff22;border-radius:12px;background:#0d1b30d9;font-size:22px;user-select:none;touch-action:none}.rpg-dpad button:active{background:#237261}.rpg-dpad [data-rpg-dir=up]{grid-column:2}.rpg-dpad [data-rpg-dir=left]{grid-column:1;grid-row:2}.rpg-dpad [data-rpg-dir=down]{grid-column:2;grid-row:2}.rpg-dpad [data-rpg-dir=right]{grid-column:3;grid-row:2}
.rpg-overlay{position:absolute;inset:0;background:#04091580;backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:5;overflow:auto}.rpg-overlay[hidden]{display:none!important}
.rpg-panel{width:100%;max-width:500px;border:1px solid #c7e4ff24;border-radius:26px;background:linear-gradient(160deg,#162337,#0b1427);box-shadow:0 24px 80px #0008;padding:28px;text-align:center;max-height:100%;overflow:auto;outline:none}.rpg-panel .rpg-eyebrow{color:#86efac;margin:0 0 12px}.rpg-panel h2{font-family:Orbitron,system-ui,sans-serif;font-size:clamp(21px,3vw,28px);font-weight:800;color:#f0f6ff;margin:0 0 12px;line-height:1.3}.rpg-panel p{color:#b7c9dc;font-size:14px;line-height:1.7;margin:10px 0}.rpg-panel .rpg-portrait{height:100px;display:flex;justify-content:center;margin:4px auto 10px}.rpg-panel .rpg-portrait svg{height:100px;width:100px}.rpg-panel .rpg-panel-primary,.rpg-panel .rpg-panel-secondary{min-height:46px;width:100%;border-radius:13px;font-size:14px;font-weight:700;padding:12px 16px;margin-top:10px}.rpg-panel-primary{background:linear-gradient(100deg,#6ee7b7,#37c79c);color:#072c26;box-shadow:0 6px 24px #36d3991a}.rpg-panel-primary:hover{filter:brightness(1.08)}.rpg-panel-secondary{border:1px solid #ffffff20;background:#ffffff05;color:#cbd5e1}.rpg-panel .rpg-tips{display:grid;grid-template-columns:1fr 1fr;gap:10px;text-align:left;margin:18px 0}.rpg-tips>div{border:1px solid #ffffff0e;border-radius:12px;padding:12px;background:#07122255;font-size:12px;color:#b7c9dc}.rpg-tips strong{display:block;color:#e2eee8;font-size:13px;margin-bottom:5px}
.rpg-battle-top{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:16px;text-align:left}.rpg-battle-top strong{font-size:15px}.rpg-battle-top span{color:#8fcbb8;font-size:12px;white-space:nowrap}.rpg-battle-portraits{display:flex;align-items:center;justify-content:space-around;gap:16px;margin:8px 0}.rpg-battle-portraits svg{width:80px;height:80px}.rpg-battle-portraits .rpg-vs{font-family:Orbitron,sans-serif;font-size:14px;color:#607a94}.rpg-enemy-life{height:6px;background:#ffffff12;border-radius:6px;margin:10px 0 18px;overflow:hidden}.rpg-enemy-life i{display:block;height:100%;background:linear-gradient(90deg,#a78bfa,#f472b6);transition:width .3s}.rpg-panel .rpg-question{font-family:Orbitron,system-ui,sans-serif;font-size:clamp(23px,4vw,36px);font-weight:700;line-height:1.3;margin:16px 0 20px;color:#fff;overflow-wrap:anywhere}.rpg-answers{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rpg-answers button{min-height:58px;border:1px solid #badbff24;border-radius:13px;background:#172d42;color:#ebf6ff;font-size:21px;font-weight:700;font-variant-numeric:tabular-nums;transition:background .2s,transform .2s}.rpg-answers button:hover{background:#245144;transform:translateY(-2px)}.rpg-answers button:disabled{opacity:.5;transform:none}.rpg-feedback{padding:12px;border-radius:12px;background:#79eeb110;border:1px solid #79eeb122;margin:12px 0;color:#b6f9d9;font-size:13px;text-align:left;line-height:1.65}.rpg-feedback.is-wrong{background:#fb718510;border-color:#fb718526;color:#ffc8d1}.rpg-feedback p{font-size:13px!important;color:inherit!important}.rpg-battle-caption{font-size:12px!important;color:#8da6bc!important}.rpg-panel .rpg-result-stats{display:flex;gap:10px;margin:18px 0}.rpg-result-stats>div{flex:1;background:#ffffff04;border:1px solid #ffffff12;border-radius:12px;padding:12px 6px;color:#aec5d5;font-size:11px}.rpg-result-stats strong{display:block;font-size:22px;color:#86efac;margin-bottom:4px}
button:focus-visible{outline:2px solid #a7f3d0;outline-offset:3px}
@media(pointer:coarse){.rpg-dpad{display:grid}#rpg-key-hint{display:none}}
@media(max-width:700px){.rpg-toolbar{padding:10px 12px;gap:8px;min-height:64px}.rpg-title>strong{font-size:12px}.rpg-title>span{font-size:9px}.rpg-stat{margin-right:0;gap:5px;font-size:10px}.rpg-xp-track{width:34px}.rpg-icon-button{width:34px;height:36px;border-radius:10px}.rpg-quest{left:12px;top:12px;padding:12px 14px;max-width:200px}.rpg-quest>strong{font-size:15px}.rpg-quest p{font-size:11px;margin:5px 0 8px}.rpg-quest .rpg-eyebrow{font-size:9px;margin-bottom:4px}.rpg-quest #rpg-progress{gap:10px;font-size:10px}.rpg-health{top:auto;bottom:128px;left:16px;transform:none;padding:6px 9px}.rpg-health-track{width:64px}.rpg-map{right:12px;top:12px;padding:6px;border-radius:14px}.rpg-map canvas{width:90px;height:90px}.rpg-map span{font-size:7px;letter-spacing:1px}.rpg-controls{left:12px;right:12px;bottom:20px}.rpg-dpad{display:grid}#rpg-key-hint{display:none}.rpg-action-button{padding:13px 16px}.rpg-action-button kbd{display:none}#rpg-toast{top:155px;font-size:12px}.rpg-panel{padding:20px;border-radius:22px}.rpg-panel p{font-size:13px}.rpg-panel .rpg-tips{margin:12px 0;gap:7px}.rpg-tips>div{padding:10px;font-size:11px}.rpg-overlay{padding:12px}.rpg-launch-copy>span{font-size:12px}}
@media(max-height:600px) and (min-width:701px){.rpg-toolbar{min-height:54px;padding:7px 18px}.rpg-quest{top:14px;left:18px;padding:12px 16px}.rpg-map{top:14px;right:18px}.rpg-map canvas{width:94px;height:94px}.rpg-health{top:14px}.rpg-controls{bottom:14px;left:18px;right:18px}.rpg-panel{padding:18px;max-width:460px}.rpg-panel .rpg-portrait{height:64px}.rpg-panel .rpg-portrait svg{height:64px;width:64px}.rpg-panel h2{font-size:22px;margin-bottom:8px}.rpg-panel p{font-size:12px;line-height:1.5}.rpg-panel .rpg-tips{margin:10px 0}.rpg-battle-portraits svg{width:54px;height:54px}.rpg-battle-top{margin-bottom:6px}.rpg-enemy-life{margin:6px 0 10px}.rpg-panel .rpg-question{font-size:27px;margin:10px 0}.rpg-answers button{min-height:46px}.rpg-feedback{padding:8px;margin:8px 0}.rpg-launch{min-height:50px;padding:7px 14px}.rpg-launch-icon{width:32px;height:32px;font-size:25px}}
@media(max-height:470px){.rpg-toolbar{min-height:46px;padding:5px 10px}.rpg-quest p{display:none}.rpg-quest{padding:8px 12px}.rpg-quest #rpg-progress{margin-top:6px}.rpg-map canvas{width:64px;height:64px}.rpg-health{bottom:115px}.rpg-panel{padding:16px}.rpg-panel .rpg-portrait,.rpg-battle-portraits{display:none}.rpg-panel .rpg-tips{display:none}.rpg-panel h2{font-size:19px}.rpg-panel .rpg-question{font-size:25px;margin:10px 0}.rpg-battle-top{margin-bottom:6px}.rpg-enemy-life{margin:6px 0 10px}.rpg-answers button{min-height:44px}.rpg-panel p{line-height:1.5}}
@media(prefers-reduced-motion:reduce){.rpg-launch,.rpg-answers button,#rpg-toast{transition:none}}
/* Prevent opposing vertical offsets from stretching the health HUD in landscape. */
@media(max-height:470px) and (min-width:701px){.rpg-health{top:12px;bottom:auto}}
.rpg-battle-portraits.is-hit svg:last-child{animation:rpg-hit .45s ease-out}
.rpg-battle-portraits.is-hurt svg:first-child{animation:rpg-hurt .45s ease-out}
@keyframes rpg-hit{30%{transform:translateX(13px) rotate(7deg);filter:brightness(1.5)}100%{transform:none}}
@keyframes rpg-hurt{25%{transform:translateX(-8px);filter:brightness(.6)}55%{transform:translateX(6px)}100%{transform:none}}
@media(prefers-reduced-motion:reduce){.rpg-battle-portraits svg{animation:none!important}}
.rpg-title{min-width:0;flex:1}.rpg-title>span{display:flex;align-items:center;gap:10px}.rpg-title>strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rpg-difficulty-badge{font-size:10px;font-weight:600;letter-spacing:0;color:#bfecd8;background:#6ee7b70c;border:1px solid #6ee7b723;padding:2px 7px;border-radius:6px;white-space:nowrap}
.rpg-turn-status{display:flex;justify-content:center;align-items:center;gap:8px;min-height:24px;margin:0 0 8px;color:#b7dfd3;font-size:11px}.rpg-turn-status.is-enemy{color:#fdbaaf}.rpg-turn-status.is-enemy::before{content:'';width:6px;height:6px;border-radius:50%;background:#fb9d82;box-shadow:0 0 10px #fb9d8266}.rpg-combat-details{display:flex;justify-content:center;gap:12px;margin:0 0 8px;font-size:10px;color:#a3b6ca}.rpg-counter-message{display:block;color:#ffcabf;margin-top:8px;padding-top:8px;border-top:1px solid #ffffff14}.rpg-counter-message strong{color:#fda4af}.rpg-feedback .rpg-shield-message{display:block;color:#a7f3d0;margin-top:4px;font-size:12px}
.rpg-panel-primary:disabled{opacity:.6;cursor:wait;filter:none}.rpg-battle-portraits.is-player-attack svg:first-child{animation:rpg-player-attack .4s ease-in-out}.rpg-battle-portraits.is-counterattack svg:last-child{animation:rpg-enemy-attack .45s ease-in-out}.rpg-battle-portraits.is-counterattack svg:first-child{animation:rpg-hurt .45s ease-out}
@keyframes rpg-player-attack{45%{transform:translateX(24px) rotate(6deg)}100%{transform:none}}
@keyframes rpg-enemy-attack{45%{transform:translateX(-24px) rotate(-6deg);filter:brightness(1.35)}100%{transform:none}}
@media(max-width:700px){.rpg-brand{display:none}.rpg-title>span{gap:0}.rpg-difficulty-badge{font-size:9px;padding:1px 5px}.rpg-turn-status{font-size:10px}.rpg-combat-details{font-size:9px;gap:9px}}
@media(max-height:600px) and (min-width:701px){.rpg-launch-icon{flex-basis:32px}.rpg-launch-icon svg{width:22px;height:22px}.rpg-turn-status{margin-bottom:3px}.rpg-combat-details{margin-bottom:4px}}
@media(max-height:470px){.rpg-turn-status{min-height:18px;margin-bottom:2px}.rpg-combat-details{margin-bottom:3px}.rpg-counter-message{margin-top:5px;padding-top:5px}}

/* Campaign: persistent route, station circuits and strategic combat. */
#screen-rpg[data-planet=mars] .rpg-toolbar{background:#1c1423}#screen-rpg[data-planet=mars] .rpg-viewport{background:#301c27}#screen-rpg[data-planet=mars] .rpg-quest{background:#291b2cdb}#screen-rpg[data-planet=mars] .rpg-eyebrow{color:#ffc18b}#screen-rpg[data-planet=mars] .rpg-map{background:#281b2ad9}#screen-rpg[data-planet=mars] .rpg-panel{background:linear-gradient(155deg,#382634,#171729)}
.rpg-battle-tools{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rpg-battle-tools button{font-size:12px!important;min-height:40px!important;padding:8px!important}.rpg-panel-secondary:disabled{opacity:.4}.rpg-battle-tools .is-selected{border-color:#86efac;background:#86efac20;color:#c6fada}
.rpg-circuits{display:flex;justify-content:center;gap:12px;margin:16px}.rpg-circuits i{width:54px;height:6px;border-radius:6px;background:#ffffff12}.rpg-circuits .is-on{background:#86efac;box-shadow:0 0 16px #86efac40}
.rpg-route{display:flex;justify-content:center;align-items:center;gap:16px;margin:20px 0}.rpg-route>span{flex:1;background:#ffffff04;padding:15px 8px;border:1px solid #ffffff14;border-radius:14px;color:#c5d6e6;font-weight:700}.rpg-route>span.is-current{border-color:#86efac55;background:#86efac0d}.rpg-route b{display:block;font-size:11px;font-weight:500;margin-top:6px;color:#a9c9b9}.rpg-route>i{color:#86efac;font-style:normal}
.rpg-journal{text-align:left;border-top:1px solid #ffffff14;padding-top:10px}.rpg-journal h3{font-weight:700;font-size:15px;color:#d7e5f7;margin-top:18px}.rpg-journal article{border:1px solid #ffffff14;border-radius:12px;padding:12px;margin:10px 0;background:#ffffff04}.rpg-journal article strong{font-size:12px;color:#a8e7c8}.rpg-journal article p{font-size:12px;margin:5px 0 0}
.rpg-orbit{display:flex;align-items:center;justify-content:center;gap:42px;padding:25px;margin:8px 0 20px;background:radial-gradient(ellipse,#6a3d5230,transparent 70%)}.rpg-orbit i{display:block;border-radius:50%;width:65px;height:65px;box-shadow:0 0 35px #ffffff0c,inset -15px -9px 18px #0006}.rpg-orbit-moon{background:radial-gradient(circle at 30% 30%,#d9e1ee,#6e7c96)}.rpg-orbit-mars{background:radial-gradient(circle at 30% 30%,#f9ba83,#b84e3f 65%,#682a35)}.rpg-orbit span{color:#dba789;font-size:30px;animation:rpg-route-pulse 2s ease-in-out infinite}
@keyframes rpg-route-pulse{50%{transform:translateX(7px);opacity:.5}}@media(prefers-reduced-motion:reduce){.rpg-orbit span{animation:none}}
@media(max-width:700px){.rpg-toolbar{gap:6px}.rpg-stat{display:none}.rpg-quest{max-width:195px}.rpg-quest #rpg-progress{gap:6px}.rpg-title>strong{font-size:11px}.rpg-orbit{gap:25px;padding:15px}.rpg-journal article{padding:10px}.rpg-icon-button{width:32px}}
