/* Rocket Car presentation. Scoped above module CSS specificity. */
#rc-app{--rc-accent:#c1edeb;--rc-gold:#e6c58b;--rc-line:rgba(204,224,232,.22);font-family:Manrope,system-ui,sans-serif}
#rc-app button,#rc-app a{touch-action:manipulation}
#rc-app button:focus-visible,#rc-app a:focus-visible{outline:2px solid #c1edeb;outline-offset:4px}
#rc-app .rc-overlay{background:rgba(4,9,14,.72);overflow:auto;touch-action:pan-y}
#rc-app .rc-card{border-radius:4px;max-height:100%;overflow:auto;touch-action:pan-y;background:rgba(10,17,23,.94);border:1px solid var(--rc-line);box-shadow:0 24px 90px #0008}
#rc-app .rc-btn{min-width:0;min-height:48px;margin:0;border:1px solid var(--rc-line);border-radius:3px;padding:12px 20px;background:#c1edeb;color:#071416;box-shadow:none;font:700 14px Manrope,system-ui,sans-serif;cursor:pointer}
#rc-app .rc-btn.rc-ghost{color:#e3eaec;background:transparent}
#rc-app #rc-title{justify-content:flex-start;background:linear-gradient(90deg,rgba(4,9,14,.97),rgba(4,9,14,.72) 38%,rgba(4,9,14,.08) 76%);padding:100px 6vw 42px}
#rc-app .rc-menu-header{position:absolute;top:calc(25px + env(safe-area-inset-top));left:6vw;right:6vw;display:flex;justify-content:space-between;gap:20px;font:11px var(--rc-mono);letter-spacing:.13em;color:#9cabb6}
#rc-app .rc-menu-header a{color:#e5edef;text-decoration:none;padding:8px 0}
#rc-app .rc-menu-header a span{color:#8396a3}
#rc-app .rc-session{padding:8px 0}
#rc-app .rc-launch-card{max-width:410px;background:none;border:0;padding:0;text-align:left;backdrop-filter:none;box-shadow:none;overflow:visible}
#rc-app .rc-launch-card h1{font-size:clamp(64px,7.2vw,112px);line-height:.86;letter-spacing:-.065em;margin:25px 0}
#rc-app .rc-launch-card .rc-sub{font-size:18px;line-height:1.6;color:#a6b6c2}
#rc-app .rc-launch-card .rc-kicker{font-size:10px;letter-spacing:.12em;display:flex;align-items:center;gap:8px}
#rc-app .rc-status-dot{width:5px;height:5px;border-radius:50%;background:#c1edeb;box-shadow:0 0 8px #c1edeb}
#rc-app .rc-mission{border-top:1px solid var(--rc-line);border-bottom:1px solid var(--rc-line);display:flex;align-items:center;gap:17px;padding:17px 0}
#rc-app .rc-mission-number{font:24px var(--rc-mono);color:#728794}
#rc-app .rc-mission h2{margin:0;font-size:19px}
#rc-app .rc-mission p{margin:5px 0 0;font:10px var(--rc-mono);color:#a7b6c1}
#rc-app .rc-mission-tag{margin-left:auto;color:#c1edeb;font:9px var(--rc-mono);letter-spacing:.13em}
#rc-app .rc-mission-path{padding:0;margin:16px 0;list-style:none;display:flex;gap:12px;color:#9eafba;font:10px var(--rc-mono);text-transform:uppercase;letter-spacing:.1em}
#rc-app .rc-mission-path li{display:flex;align-items:center;gap:12px}
#rc-app .rc-mission-path li:not(:last-child)::after{content:'—';color:#516774}
#rc-app .rc-launch-card .rc-best{font:11px var(--rc-mono);margin-bottom:20px;color:#e6c58b}
#rc-app .rc-launch-card .rc-btn{width:100%;margin-bottom:9px;display:flex;justify-content:space-between;align-items:center}
#rc-app .rc-launch-card .rc-ghost{justify-content:center}
#rc-app .rc-fineprint{font:10px/1.7 var(--rc-mono);color:#8c9ca8;margin-top:18px}
#rc-app .rc-scene-caption{position:absolute;right:6vw;bottom:9vh;display:flex;flex-direction:column;text-align:right;text-shadow:0 2px 15px #000}
#rc-app .rc-scene-caption span,#rc-app .rc-scene-caption small{font:10px var(--rc-mono);letter-spacing:.22em;color:#b2c4ce}
#rc-app .rc-scene-caption strong{font-size:22px;margin:12px 0}
#rc-app .rc-run-toolbar{position:absolute;top:calc(12px + env(safe-area-inset-top));left:calc(18px + env(safe-area-inset-left));right:calc(18px + env(safe-area-inset-right));z-index:32;display:flex;align-items:center;justify-content:space-between;gap:12px}
#rc-app .rc-run-id{display:flex;gap:20px;align-items:center;font:11px var(--rc-mono);letter-spacing:.12em;text-shadow:0 2px 8px #000}
#rc-app .rc-run-id span{color:#c1edeb}
#rc-app .rc-run-actions{display:flex;gap:6px}
#rc-app .rc-run-actions button,#rc-app .rc-replay-actions button{min-height:44px;padding:8px 14px;border:1px solid var(--rc-line);border-radius:3px;background:rgba(6,13,19,.82);color:#dbe8ec;font:11px var(--rc-mono);cursor:pointer}
#rc-app .rc-hud{font-family:var(--rc-mono)}
#rc-app .rc-topbar{top:calc(76px + env(safe-area-inset-top));left:calc(18px + env(safe-area-inset-left));right:calc(18px + env(safe-area-inset-right));gap:10px}
#rc-app .rc-hudcard{border-radius:3px;border:1px solid var(--rc-line);border-top:2px solid #8eafbc;background:linear-gradient(135deg,rgba(8,17,25,.9),rgba(8,17,25,.57));max-width:190px;padding:10px 13px}
#rc-app .rc-hudcard-c{max-width:135px;margin-left:auto;margin-right:auto}
#rc-app .rc-label{font:9px var(--rc-mono);letter-spacing:.16em;color:#a4b8c5}
#rc-app .rc-speed{font:500 44px var(--rc-mono);letter-spacing:-.06em}
#rc-app .rc-speed small{letter-spacing:0;text-transform:uppercase}
#rc-app .rc-target{font-size:8px;color:#8d9eaa}
#rc-app .rc-z60,#rc-app .rc-score{font-size:11px}
#rc-app .rc-pressure-value{font:500 24px var(--rc-mono);color:#d8f3ee;margin-top:5px}
#rc-app .rc-pbar,#rc-app .rc-pfill{border-radius:0;height:5px}
#rc-app .rc-pfill{background:#b5dfdc}
#rc-app .rc-pfill.rc-low{background:#f6ad7b}
#rc-app .rc-sucbadge{border-radius:2px;font-size:9px;letter-spacing:.08em;text-transform:uppercase}
#rc-app .rc-sucbadge.rc-on{color:#c8eee2;background:#183d35}
#rc-app .rc-objective{top:calc(218px + env(safe-area-inset-top));font:11px/1.5 var(--rc-mono);color:#deebee;text-shadow:0 2px 6px #000}
#rc-app .rc-bottom{bottom:52px;gap:10px}
#rc-app .rc-pips{gap:3px}
#rc-app .rc-pip{width:21px;height:19px;border-radius:2px;font:8px/17px var(--rc-mono);text-align:center;color:#90a3b0;background:#09131bcc}
#rc-app .rc-pip.rc-hot{background:#b5e1e5;color:#10242b;border-color:#daf8ff;box-shadow:0 0 7px #b5e1e555}
#rc-app .rc-att{opacity:.85}
#rc-app .rc-controls .rc-btn{background:rgba(7,17,24,.72);color:#dbe9ed;font-size:12px;backdrop-filter:blur(4px);margin:0;touch-action:none}
#rc-app .rc-controls .rc-thr{border-color:#a4d5d1;background:rgba(80,130,128,.28)}
#rc-app .rc-controls .rc-active{background:#496f75bb;border-color:#d8fbff}
#rc-app .rc-controls .rc-suction.rc-on{background:#214e40cc;border-color:#9ed9bd}
/* D-pad (left): ↑ spans the top row, ◀ ▶ sit side by side below it */
#rc-app .rc-controls .rc-left{display:grid;grid-template-columns:repeat(2,88px);gap:10px;bottom:calc(18px + env(safe-area-inset-bottom))}
#rc-app .rc-controls .rc-left .rc-lift{grid-column:1/-1;min-height:64px;font-size:30px;border-radius:18px}
#rc-app .rc-controls .rc-left .rc-spin{min-width:88px;min-height:88px;border-radius:50%;font-size:28px;padding:0}
#rc-app .rc-controls .rc-left .rc-suction{grid-column:1/-1;font-size:11px;min-height:40px}
/* right stack: Thrust / Throttle / Brake, top to bottom */
#rc-app .rc-controls .rc-right{bottom:calc(18px + env(safe-area-inset-bottom));gap:12px;align-items:center}
#rc-app .rc-controls .rc-right .rc-thrust{min-width:96px;min-height:96px;border-radius:50%;font-size:15px}
#rc-app .rc-controls .rc-right .rc-thr,
#rc-app .rc-controls .rc-right .rc-brk{min-width:88px;min-height:64px;font-size:14px}
@media(max-width:560px){
  #rc-app .rc-controls .rc-left{grid-template-columns:repeat(2,76px);gap:8px}
  #rc-app .rc-controls .rc-left .rc-lift{min-height:56px;font-size:26px}
  #rc-app .rc-controls .rc-left .rc-spin{min-width:76px;min-height:76px;font-size:24px}
  #rc-app .rc-controls .rc-left .rc-suction{min-height:38px}
  #rc-app .rc-controls .rc-right{gap:10px}
  #rc-app .rc-controls .rc-right .rc-thrust{min-width:84px;min-height:84px;font-size:13px}
  #rc-app .rc-controls .rc-right .rc-thr,
  #rc-app .rc-controls .rc-right .rc-brk{min-width:76px;min-height:56px;font-size:12px}
}
#rc-app .rc-controls.rc-kbd .rc-cluster{display:none}
#rc-app .rc-kbdhint{font:10px var(--rc-mono);border-radius:2px;border-color:var(--rc-line)}
#rc-app .rc-replay-panel{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(20px + env(safe-area-inset-bottom));width:min(480px,calc(100% - 32px));z-index:33;padding:14px 18px;background:#08121ce8;border:1px solid var(--rc-line);border-radius:3px}
#rc-app .rc-replay-heading{display:flex;justify-content:space-between;gap:8px;font:10px var(--rc-mono);color:#9cb4c1}
#rc-app .rc-replay-heading b{color:#c1edeb;margin-left:8px}
#rc-app .rc-replay-panel progress{width:100%;height:4px;margin:14px 0;accent-color:#c1edeb}
#rc-app .rc-replay-actions{display:flex;justify-content:space-between;gap:10px}
#rc-app[data-state="replay"] .rc-bottom{display:none}
#rc-app[data-state="replay"] .rc-objective{display:none}
#rc-app .rc-results{z-index:45;background:#03090ed9;backdrop-filter:blur(8px)}
#rc-app .rc-rescard{width:min(460px,94vw);max-height:90dvh;border-radius:4px;border-color:var(--rc-line);padding:26px;background:#0b151e}
#rc-app .rc-rescard h2{font:800 25px Manrope,system-ui;margin-bottom:8px}
#rc-app .rc-rescard .rc-stars{color:#e6c58b;font-size:32px;letter-spacing:8px;margin-bottom:18px}
#rc-app .rc-rescard .rc-row{margin:0;padding:9px 0;flex-wrap:nowrap;font:11px/1.5 var(--rc-mono);text-align:left}
#rc-app .rc-rescard .rc-pts{color:#c1edeb;white-space:nowrap}
#rc-app .rc-total{font:700 22px Manrope,system-ui;padding:12px 0}
#rc-app .rc-rescard .rc-best{font:10px var(--rc-mono);color:#9aadb9}
#rc-app .rc-newbest{font:10px var(--rc-mono);letter-spacing:.12em;color:#c1edeb;margin:12px 0}
#rc-app .rc-resbtns{margin-top:20px;gap:10px}
#rc-app .rc-resbtns .rc-btn{font-size:12px;padding:12px}
#rc-app .rc-resbtns .rc-btn:last-child{background:transparent;color:#d6e7ee}
#rc-app #rc-tutorial .rc-btn{margin-top:8px}
#rc-app #rc-pause .rc-row{display:grid;grid-template-columns:1fr 1fr}
#rc-app #rc-btn-resume{grid-column:1/-1}
@media(max-width:600px){
 #rc-app #rc-title{padding:85px 24px 24px;align-items:flex-start;background:linear-gradient(90deg,#050c12ed,#050c12a6)}
 #rc-app .rc-menu-header{left:24px;right:24px;top:calc(16px + env(safe-area-inset-top))}
 #rc-app .rc-menu-header a span,#rc-app .rc-session,#rc-app .rc-scene-caption{display:none}
 #rc-app .rc-launch-card{width:100%;max-width:410px}
 #rc-app .rc-launch-card h1{font-size:76px;margin:22px 0}
 #rc-app .rc-launch-card .rc-sub{font-size:15px}
 #rc-app .rc-run-toolbar{left:10px;right:10px;gap:5px}
 #rc-app .rc-run-id{font-size:9px;gap:6px;flex-direction:column;align-items:flex-start}
 #rc-app .rc-run-actions{gap:4px}
 #rc-app .rc-run-actions button{padding:8px;font-size:9px}
 #rc-app .rc-topbar{left:10px;right:10px;gap:6px;top:calc(70px + env(safe-area-inset-top))}
 #rc-app .rc-hudcard{padding:6px 8px;max-width:118px}
 #rc-app .rc-hudcard-c{max-width:96px}
 #rc-app .rc-hudcard-c canvas{max-width:74px;height:auto!important}
 #rc-app .rc-speed{font-size:29px}
 #rc-app .rc-z60,#rc-app .rc-score,#rc-app .rc-drivemode{font-size:9px}
 #rc-app .rc-target{font-size:7px}
 #rc-app .rc-pressure-value{font-size:18px}
 #rc-app .rc-bottom{top:calc(218px + env(safe-area-inset-top));bottom:auto;flex-direction:row;justify-content:center;gap:12px}
 #rc-app .rc-att{width:48px!important;height:48px!important}
 #rc-app .rc-pip{width:19px;height:18px;font-size:7px}
 #rc-app .rc-objective{top:calc(280px + env(safe-area-inset-top));font-size:10px;padding:0 25px}
 #rc-app .rc-controls .rc-left{grid-template-columns:repeat(2,76px);left:8px;gap:8px}
 #rc-app .rc-controls .rc-left .rc-suction{grid-column:1/-1;white-space:nowrap}
 #rc-app .rc-controls .rc-right{right:8px}
 #rc-app .rc-kbdhint{max-width:94vw;white-space:normal;text-align:center;font-size:9px}
}
@media(max-height:500px) and (min-width:601px){
 #rc-app #rc-title{padding:62px 5vw 20px;align-items:flex-start}
 #rc-app .rc-menu-header{top:12px;left:5vw;right:5vw}
 #rc-app .rc-launch-card{max-width:380px;display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}
 #rc-app .rc-launch-card .rc-kicker{grid-column:1/-1;margin:0;font-size:8px}
 #rc-app .rc-launch-card h1{font-size:58px;grid-row:2/4;margin:8px 0}
 #rc-app .rc-launch-card .rc-sub{font-size:11px;margin:8px 0}
 #rc-app .rc-mission{grid-column:1/-1;padding:9px 0}
 #rc-app .rc-mission-path,#rc-app .rc-launch-card .rc-fineprint{display:none}
 #rc-app .rc-launch-card .rc-best{grid-column:1/-1;font-size:9px;margin:0}
 #rc-app .rc-launch-card .rc-btn{font-size:10px;padding:9px;margin:0}
 #rc-app .rc-scene-caption{bottom:28px;right:5vw;max-width:250px}
 #rc-app .rc-scene-caption strong{font-size:17px}
 #rc-app .rc-run-toolbar{top:calc(6px + env(safe-area-inset-top))}
 #rc-app .rc-topbar{top:calc(58px + env(safe-area-inset-top))}
 #rc-app .rc-hudcard{padding:6px 10px;max-width:168px}
 #rc-app .rc-hudcard-c{max-width:110px}
 #rc-app .rc-hudcard-c canvas{display:none}
 #rc-app .rc-speed{font-size:29px}
 #rc-app .rc-score,#rc-app .rc-target,#rc-app .rc-drivemode{display:none}
 #rc-app .rc-pressure-value{font-size:17px;margin-top:3px}
 #rc-app .rc-pstate{display:none}
 #rc-app .rc-objective{top:calc(135px + env(safe-area-inset-top));left:28%;right:28%;font-size:10px;padding:0}
 #rc-app .rc-bottom{bottom:25px}
 #rc-app .rc-att{width:62px!important;height:62px!important}
      #rc-app .rc-rescard{padding:15px 24px}
 #rc-app .rc-rescard .rc-stars{margin:0 0 8px;font-size:23px}
 #rc-app .rc-rescard .rc-row{padding:4px 0}
 #rc-app .rc-rescard h2{font-size:19px}
 #rc-app .rc-total{padding:6px 0}
 #rc-app .rc-resbtns{margin-top:10px}
}
@media(prefers-reduced-motion:reduce){#rc-app *,#rc-app *::before,#rc-app *::after{transition:none!important;animation-duration:.01ms!important}}
/* leaderboard */
#rc-leaderboard { margin-top: 14px; padding: 12px; border: 1px solid rgba(120,200,255,.25); border-radius: 8px; background: rgba(8,16,28,.85); }
#rc-leaderboard h3 { margin: 0 0 8px; font-size: 14px; letter-spacing: .1em; text-transform: uppercase; }
#rc-leaderboard-list { list-style: none; margin: 0 0 10px; padding: 0; font-size: 13px; }
#rc-leaderboard-list li { display: flex; gap: 8px; align-items: baseline; padding: 4px 0; border-bottom: 1px solid rgba(120,200,255,.12); }
.rc-lb-rank { color: #8fd8ff; min-width: 20px; }
.rc-lb-player { font-weight: 600; flex: 1; }
.rc-lb-score { font-variant-numeric: tabular-nums; }
.rc-lb-meta { opacity: .55; font-size: 11px; }
.rc-btn-ghost { background: transparent; border: 1px solid rgba(120,200,255,.4); margin-top: 8px; }
/* Mars NPC dialogue (Phase 2): scoped to the panel itself, no shared banner classes */
#rc-app div.mars-dialogue{position:absolute;inset:0;z-index:34;display:flex;align-items:flex-end;justify-content:center;padding:0 18px calc(150px + env(safe-area-inset-bottom));pointer-events:none}
#rc-app div.mars-dialogue[hidden]{display:none}
#rc-app div.mars-dialogue .mars-dialogue-card{pointer-events:auto;width:min(460px,100%);background:rgba(8,15,22,.94);border:1px solid var(--rc-line);border-left:3px solid #70ffe0;border-radius:6px;padding:14px 16px;box-shadow:0 12px 40px #000a}
#rc-app div.mars-dialogue .mars-dialogue-role{font:9px var(--rc-mono);letter-spacing:.18em;text-transform:uppercase;color:#9fb2cc;margin:0 0 4px}
#rc-app div.mars-dialogue .mars-dialogue-name{font:700 17px Manrope,system-ui,sans-serif;margin:0 0 8px;color:#eef4ff}
#rc-app div.mars-dialogue .mars-dialogue-line{font:13px/1.55 Manrope,system-ui,sans-serif;color:#c9d8e2;margin:0 0 12px}
#rc-app div.mars-dialogue .mars-dialogue-actions{display:flex;gap:10px;flex-wrap:wrap}
#rc-app div.mars-dialogue .mars-dialogue-actions button{min-height:44px;padding:10px 18px;border-radius:6px;border:1px solid var(--rc-line);background:transparent;color:#dbe9ed;font:700 13px Manrope,system-ui,sans-serif;cursor:pointer}
#rc-app div.mars-dialogue .mars-dialogue-actions button[data-start]{background:#70ffe0;border-color:#70ffe0;color:#06231c}
#rc-app button.mars-talkbtn{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(160px + env(safe-area-inset-bottom));z-index:33;min-height:48px;padding:12px 22px;border-radius:24px;border:1px solid #70ffe0;background:rgba(8,20,22,.9);color:#70ffe0;font:700 13px Manrope,system-ui,sans-serif;cursor:pointer;box-shadow:0 4px 18px #0009}
#rc-app button.mars-talkbtn[hidden]{display:none}
/* District arrival title card: cinematic, non-interactive, fades on its own. */
#rc-app div.mars-district-card{position:absolute;left:0;right:0;top:22%;z-index:34;pointer-events:none;text-align:center;opacity:0;padding:0 20px}
#rc-app div.mars-district-card .mdc-eyebrow{margin:0 0 8px;font:700 11px Manrope,system-ui,sans-serif;letter-spacing:.28em;color:var(--mdc-accent,#ffd280)}
#rc-app div.mars-district-card .mdc-name{margin:0;font:800 clamp(30px,7.5vw,46px)/1.05 Manrope,system-ui,sans-serif;color:#fff;text-shadow:0 2px 20px #000,0 0 2px #000}
#rc-app div.mars-district-card .mdc-tag{margin:10px 0 0;font:500 13px/1.5 Manrope,system-ui,sans-serif;color:#e8dcc8;text-shadow:0 1px 8px #000}
/* Mars world map: full-screen overlay so the 700px canvas is actually viewable
   on mobile. Pads render as amber diamonds; districts as colored dots. */
#rc-app div.mars-map{position:absolute;inset:0;z-index:36;background:rgba(4,8,13,.96);overflow:auto;touch-action:pan-y;padding:14px 14px calc(24px + env(safe-area-inset-bottom))}
#rc-app div.mars-map[hidden]{display:none}
#rc-app div.mars-map .mars-map-head{display:flex;align-items:center;justify-content:space-between;gap:10px;max-width:640px;margin:0 auto 6px}
#rc-app div.mars-map .mars-map-head b{font:700 13px Manrope,system-ui,sans-serif;letter-spacing:.14em;color:#e8eddb}
#rc-app div.mars-map canvas{display:block;width:100%;max-width:640px;height:auto;margin:0 auto;background:#211d20;border:1px solid var(--rc-line);border-radius:4px}
#rc-app div.mars-map .mars-destinations{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:640px;margin:10px auto}
#rc-app div.mars-map .mars-destinations button{min-height:44px;padding:10px 14px;border-radius:6px;border:1px solid var(--rc-line);background:transparent;color:#dbe9ed;font:700 13px Manrope,system-ui,sans-serif;cursor:pointer}
#rc-app div.mars-map .mars-records,#rc-app div.mars-map p{max-width:640px;margin:8px auto;color:#9fb2cc;font:12px/1.5 Manrope,system-ui,sans-serif;text-align:center}
#rc-app div.mars-map [data-close],#rc-app div.mars-map [data-cancel],#rc-app div.mars-map [data-travel]{min-height:44px;padding:10px 18px;border-radius:6px;border:1px solid var(--rc-line);background:transparent;color:#dbe9ed;font:700 13px Manrope,system-ui,sans-serif;cursor:pointer}
#rc-app div.mars-map [data-travel]{border-color:#d5a77a;color:#ffd280;margin-right:8px}
