/* SAM Play is the shared shell; each game keeps its own visual identity. */
/* Select the game surface before any asynchronous assets/music can load. */
.tv-page[data-game="roadwave"] :is(#highway,#player-boards,#judgment){display:none!important}
.tv-page[data-game="pulse-arena"] #roadway{display:none!important}
.tv-page[data-phase="loading"] .stage-overlay{background:#102127}
.console-brand{display:flex;align-items:center;text-decoration:none;line-height:0;flex-shrink:0}.console-brand img{height:auto;max-width:100%}
body[data-selection="games"] .world,body[data-game="roadwave"] .world{background:radial-gradient(ellipse at 70% 18%,#343534 0,transparent 55%),linear-gradient(130deg,#171c21,#090f15);filter:none}
body[data-selection="games"] .screen-edge,body[data-game="roadwave"] .screen-edge{display:none}
body[data-selection="games"] .pairing-card{border-color:#586065;background:#1a222a}
body[data-selection="games"] .portal-ring{animation:none;border-color:#52646f;box-shadow:none}
.console-tv-heading h1{font-size:clamp(25px,3vw,42px)!important;letter-spacing:-.04em!important;margin:10px 0 8px!important}.console-tv-heading p{font-size:14px;color:#b7c3ca;margin:0 0 24px}
.game-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.game-card{padding:0;display:block;min-width:0;text-align:left;color:#edf1f1;border:1px solid #58626a;border-radius:14px;background:#17232c;overflow:hidden;transition:border-color .2s,transform .2s;box-shadow:0 12px 32px #0002}
button.game-card:hover{transform:translateY(-3px);border-color:#e6bf85}button.game-card:active{transform:translateY(0)}
.game-card-art{position:relative;aspect-ratio:1.8;overflow:hidden;background:#0d2125}.game-card-art>img:first-child{width:100%;height:100%;object-fit:cover;display:block}.game-pulse-arena .game-card-art>img:first-child{object-position:50% 48%}.game-roadwave .game-card-art>img:first-child{object-position:50% 63%}
.game-card-art:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 20%,#051018c9)}
.game-card-art .game-card-logo{position:absolute;width:74%;height:auto;left:13%;bottom:12%;z-index:1;filter:drop-shadow(0 2px 3px #000a)}
.game-card-copy{padding:22px}.game-card-copy>.eyebrow{font-size:9px;color:#c4a479}.game-card-copy h2{font-size:clamp(17px,1.5vw,22px);line-height:1.24;font-weight:600;letter-spacing:-.03em;margin:10px 0}.game-card-copy p{font-size:13px;color:#acbec8;line-height:1.6;margin:0;min-height:42px}
.game-card-footer{display:flex;justify-content:space-between;gap:10px;margin-top:20px;padding-top:14px;border-top:1px solid #3d4c56;color:#a9bbc5;font-size:11px}.game-card-footer span{color:#f1c38b}
.controller-page .game-grid{grid-template-columns:1fr}.controller-page .game-card-art{aspect-ratio:2.3}.controller-page .game-card-art .game-card-logo{width:59%;left:20%}.controller-page .game-card-copy{padding:20px}.controller-page .game-card-copy h2{font-size:23px}.controller-page .game-card-copy p{min-height:0;font-size:14px}.controller-page .game-card-footer{font-size:13px;margin-top:16px;padding-top:16px}
.controller-page[data-menu-screen="games"] .menu-heading h1{font-size:35px}.controller-page[data-menu-screen="games"] .phone-party{margin-top:32px}
.level-list{display:grid;gap:13px}.level-card{display:flex;align-items:center;gap:22px;padding:22px;color:#eff0e9;background:#18242d;border:1px solid #4b5c63;border-left:3px solid var(--level-color);border-radius:10px;text-align:left;min-width:0}.level-card:hover{background:#25323a}.level-card.is-selected{border-color:var(--level-color)}
.level-number{color:var(--level-color);font:300 36px/1 'Courier New',monospace}.level-copy{min-width:0;flex:1}.level-copy h2{font-size:20px;font-weight:600;letter-spacing:-.03em;margin:0 0 10px}.level-copy strong{display:block;font-size:15px;color:#f6e2c6}.level-copy p{font-size:12px;color:#adc1ca;margin:5px 0 12px}.level-meta{font-size:11px;color:var(--level-color)}.level-arrow{font-size:26px;color:#e5b57a}
.road-preview-heading{display:flex;align-items:center;gap:25px;margin-bottom:22px}.road-preview-heading img{width:220px;height:auto}.road-preview-heading p{color:#b7c7cd;font-size:14px;max-width:170px;line-height:1.5}
.tv-level-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.tv-level-list .level-card{display:block;padding:14px 12px;min-height:200px;background:linear-gradient(150deg,#31404a,#101d26);border-left:1px solid #4b5c63;border-top:3px solid var(--level-color)}.tv-level-list .level-number{display:block;font-size:32px;margin-bottom:22px}.tv-level-list .level-copy h2{font-size:16px;min-height:36px}.tv-level-list .level-copy strong{font-size:12px;min-height:31px}.tv-level-list .level-copy p{font-size:10px;line-height:1.4;min-height:28px}.tv-level-list .level-meta{font-size:10px}.tv-level-list .is-selected{background:#3d4035;box-shadow:0 0 0 1px var(--level-color)}
#tv-road-rule{font-size:13px;line-height:1.6;color:#cfc2a9;margin:18px 0}
.tv-page[data-game="roadwave"] .highway-wrap{overflow:hidden;border-radius:10px;background:#1a252a}.tv-page[data-game="roadwave"] #roadway{position:absolute;inset:0}.tv-page[data-game="roadwave"] .scoreboard #score{font-size:38px;color:#efc98c}.tv-page[data-game="roadwave"] .stage-header{min-height:96px}.tv-page[data-game="roadwave"] .stage-overlay{z-index:6}.tv-page[data-game="roadwave"][data-phase="countdown"] .stage-overlay{padding-top:60px}.tv-page[data-game="roadwave"] .stage-overlay h2{font-size:50px}
.controller-page[data-game="roadwave"] .pads{grid-template-columns:1fr 1fr;gap:10px}.controller-page[data-game="roadwave"] .pad{--lane:#9cbad2;background:linear-gradient(155deg,#324c5c,#152935);border-color:#6f8996;border-radius:14px;box-shadow:inset 0 0 0 3px #ffffff09,0 5px 0 #08111a}.controller-page[data-game="roadwave"] .pad:nth-child(2){background:linear-gradient(155deg,#4b4b42,#302b24);border-color:#a99776}.controller-page[data-game="roadwave"] .pad.pressed{background:#607e88;transform:translateY(3px)}.controller-page[data-game="roadwave"] .pad .gem{display:none}.controller-page[data-game="roadwave"] .pad-socket{background:none!important;border:0!important;box-shadow:none!important;overflow:visible}.controller-page[data-game="roadwave"] .pad-socket:after{content:'←';font:300 clamp(80px,17vh,135px)/1 Arial,sans-serif;color:#e5ece7;text-shadow:0 4px 0 #0b141d;position:static;display:block}.controller-page[data-game="roadwave"] .pad:nth-child(2) .pad-socket:after{content:'→'}.controller-page[data-game="roadwave"] .pad-caption{color:#c7d5d8;font-size:14px;letter-spacing:.24em}.controller-page[data-game="roadwave"] .pad-number{opacity:.5}
.controller-page[data-game="roadwave"] #track-art-mark{background:linear-gradient(#14202c99,#14202c99),url('/assets/roadwave/reference.png') 50% 70%/cover;color:#fff0d9}.controller-page[data-game="roadwave"] .phone-result #next-level{margin-top:16px}.controller-page[data-game="roadwave"] .phone-result #next-level:not([hidden])~.back-button{margin-top:16px}
@media(min-width:700px){.controller-page .game-grid{grid-template-columns:1fr 1fr}.controller-page .game-card-art{aspect-ratio:1.85}.controller-page .game-card-copy h2{font-size:21px}.controller-page .game-card-copy p{min-height:45px}.controller-page .level-list{grid-template-columns:1fr 1fr}}
@media(max-height:760px) and (min-width:901px){.console-tv-heading h1{font-size:28px!important}.console-tv-heading p{margin-bottom:14px}.game-card-art{aspect-ratio:2.15}.game-card-copy{padding:15px}.game-card-copy h2{font-size:17px}.game-card-copy p{font-size:11px;min-height:35px}.game-card-footer{margin-top:12px;padding-top:10px;font-size:10px}.tv-level-list .level-card{min-height:175px;padding:10px}.tv-level-list .level-number{font-size:25px;margin-bottom:14px}.road-preview-heading{margin-bottom:14px}.tv-level-list .level-copy h2{font-size:14px}.tv-level-list .level-copy strong{font-size:11px}.tv-page[data-game="roadwave"] .stage-header{min-height:85px}.tv-page[data-game="roadwave"] .stage-header h2{font-size:21px}}
@media(max-width:1050px){.tv-level-list{grid-template-columns:repeat(3,minmax(0,1fr))}.tv-level-list .level-card{min-height:0}.tv-level-list .level-number{margin-bottom:8px;font-size:24px}.tv-level-list .level-copy h2{min-height:0}.tv-level-list .level-copy strong{min-height:0}.tv-level-list .level-copy p{display:none}.tv-level-list .level-meta{display:block;margin-top:8px}}
@media(max-width:650px){.tv-page .game-grid{grid-template-columns:1fr}.game-card-copy h2{font-size:23px}.controller-page .console-brand img{width:137px}}
@media(prefers-reduced-motion:reduce){.game-card{transition:none}button.game-card:hover{transform:none}}
.controller-page[data-game="roadwave"] .pad-socket:before{display:none}.controller-page[data-game="roadwave"] .pad-socket:after{opacity:1;border:0;background:none;width:auto;height:auto;transform:none;inset:auto;box-shadow:none;border-radius:0}

.road-perk-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 24px}.road-perk-guide span{border-top:1px solid #536771;padding:12px 2px;font-size:11px;line-height:1.5;color:#aebec5}.road-perk-guide b{display:block;margin-bottom:6px;color:#dfc497;font-size:13px}.controller-page[data-game="roadwave"] .pad-number{display:none}

.road-control-choice{border:0;padding:0;margin:0 0 24px;min-width:0}.road-control-choice legend{font-size:14px;color:#d6e0e1;margin-bottom:12px}.road-control-choice>div{display:grid;grid-template-columns:1fr 1fr;gap:10px}.road-control-choice label{display:flex;align-items:center;gap:10px;background:#1e2d36;border:1px solid #5c707a;border-radius:9px;padding:16px 12px;cursor:pointer;min-height:74px}.road-control-choice label:has(input:checked){border-color:#ddbc82;background:#35413e;box-shadow:inset 0 0 0 1px #ddbc82}.road-control-choice input{accent-color:#dec18b;width:18px;height:18px;flex-shrink:0}.road-control-choice strong{display:block;color:#f5ead6;font-size:15px}.road-control-choice small{display:block;color:#b3c1c6;font-size:11px;margin-top:6px;line-height:1.5}.controller-page[data-road-control="swipe"][data-game="roadwave"] .pads{touch-action:none}.controller-page[data-road-control="swipe"][data-game="roadwave"] .pad-caption{letter-spacing:.12em}
/* Give the drive the height, keeping song and shared music signal easy to read. */
.tv-page[data-game="roadwave"]:is([data-phase="playing"],[data-phase="countdown"],[data-phase="paused"]) .topbar{height:52px;padding-block:9px}.tv-page[data-game="roadwave"]:is([data-phase="playing"],[data-phase="countdown"],[data-phase="paused"]) .topbar .console-brand img{width:126px}.tv-page[data-game="roadwave"]:is([data-phase="playing"],[data-phase="countdown"],[data-phase="paused"]) .bottom{min-height:48px;height:48px;padding:8px 0;margin-inline:4vw}.tv-page[data-game="roadwave"] .stage{height:calc(100dvh - 100px);min-height:0;padding:0 4vw 6px}.tv-page[data-game="roadwave"] .stage-header{min-height:66px;padding:3px 0 8px}.tv-page[data-game="roadwave"] .stage-header h2{font-size:21px}.tv-page[data-game="roadwave"] .stage-header .part-label{margin-top:5px;font-size:11px}.tv-page[data-game="roadwave"] .stage-header .eyebrow{font-size:9px;margin-bottom:4px}.tv-page[data-game="roadwave"] .highway-wrap{min-height:0;border-radius:5px}.tv-page[data-game="roadwave"] .scoreboard #score{font-size:28px}.tv-page[data-game="roadwave"] .scoreboard small{margin-top:4px;padding-top:4px}.tv-page[data-game="roadwave"] .stage-instruction{margin:0;font-size:11px}
.tv-page[data-game="roadwave"]:is([data-phase="playing"],[data-phase="countdown"],[data-phase="paused"]) .bottom :is(.primary,.diagnostics summary){min-height:30px;height:30px;padding:6px 12px;font-size:12px}.tv-page[data-game="roadwave"]:is([data-phase="playing"],[data-phase="countdown"],[data-phase="paused"]) .bottom .partner-sam{height:28px;width:auto}.tv-page[data-game="roadwave"]:is([data-phase="playing"],[data-phase="countdown"],[data-phase="paused"]) .bottom .partner-stingray img{height:23px;width:auto}.tv-page[data-game="roadwave"]:is([data-phase="playing"],[data-phase="countdown"],[data-phase="paused"]) .topbar button{min-height:36px;padding:8px 14px}
