/* Rumble station: shared production shell, with independent phone/tablet layouts. */
body.arcade.station{--nav:204px;--header:72px;--gap:28px;--ink:#f3f7ff;--muted:#b1cbe8;font-family:'Segoe UI',Arial,sans-serif;background:#142e51;color:#f3f7ff}
body.arcade.station [hidden]{display:none!important}
body.arcade.station :focus-visible{outline:3px solid #ffe45b;outline-offset:4px}
/* Buttons keep their own shape when focused, including transparent pull handles. */
body :is(button,[role=button]){ -webkit-tap-highlight-color:transparent }
body :is(button,[role=button]):focus{outline:none!important}
body :is(button,[role=button]):focus-visible{filter:brightness(1.16)}
body .sheet-dismiss:focus-visible span{background:#fff}
body.arcade.station .topbar{height:calc(72px + var(--safe-top));padding:10px 24px;padding-top:calc(10px + var(--safe-top));background:#162c4a;border-color:#345c87;gap:16px}
body.arcade.station .brand{font-size:18px;gap:10px}body.arcade.station .brand-icon{width:40px;height:40px}
body.arcade.station .header-caption{display:none}body.arcade.station .top-actions{gap:10px}
body.arcade.station .wallet{background:#112b4d;border-color:#416e9e;font-size:15px;padding:7px 12px;gap:6px}
body.arcade.station .wallet>span{display:inline-flex!important}body.arcade.station .wallet .game-icon{width:24px;height:24px}
body.arcade.station .icon-button{background:#203f69;border:1px solid #5079a3;box-shadow:0 3px #102545;width:40px;height:40px}
body.arcade.station[data-mode=menu] .mobile-toolbar{display:none!important}
body.arcade.station .arcade-nav{width:var(--nav);top:calc(72px + var(--safe-top));bottom:0;left:0;gap:9px;padding:28px 15px;background:#182f52;border-right:1px solid #38577d}
body.arcade.station .arcade-nav button{flex:0 0 62px;min-height:50px;max-height:none;flex-direction:row;justify-content:flex-start;gap:14px;padding:10px 15px;font-size:14px;color:#b9d0ec;border-radius:12px}
body.arcade.station .arcade-nav button .game-icon{width:31px;height:31px;filter:none;opacity:1}
body.arcade.station .arcade-nav button[aria-current=page]{background:linear-gradient(#326196,#244677);color:#ffdf4e;border:1px solid #6296c5;box-shadow:inset 0 1px #9ed2f833,0 3px #10264a}
body.arcade.station .arcade-nav button:after{display:none}
body.arcade.station .menu{inset:calc(72px + var(--safe-top)) 0 0 var(--nav);display:grid;grid-template-columns:minmax(0,1.65fr) minmax(310px,1fr);grid-template-rows:auto minmax(325px,1fr) auto auto auto;gap:22px;padding:28px 32px;align-content:start;background:radial-gradient(ellipse at 15% 0,#2b4e78,#163256 70%);overflow:auto}
.station-heading{grid-column:1/-1}.station-heading h1{font-size:30px;letter-spacing:-1px;margin:6px 0}.station-heading p{font-size:12px;color:#aac8e6}.station-heading .eyebrow{font-size:9px;color:#83cef6}
body.arcade.station .home-scene{grid-column:1;grid-row:2;min-height:340px;background:#244674;border:1px solid #6297bd;border-radius:18px;box-shadow:0 5px #0d2548;isolation:isolate}
body.arcade.station .home-scene:after{background:linear-gradient(90deg,#17365bef,#17365bab 40%,transparent 80%);z-index:1}
body.arcade.station #home-landscape{inset:0;opacity:.3}
.station-scene{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
body.arcade.station .home-train-select{position:absolute;inset:0;width:100%;height:100%;z-index:3;padding:0;border:0;border-radius:inherit;background:transparent}
body.arcade.station .home-train-select:focus-visible{outline-offset:-4px}
body.arcade.station .game-logo{display:none}
body.arcade.station #home-train{pointer-events:none;inset:auto 10px 8px auto;width:40%;height:65%;z-index:3;opacity:0}
.station-hero-copy{position:relative;z-index:2;padding:35px 30px;pointer-events:none}
.station-hero-copy .eyebrow{color:#b7e6ff;font-size:8px;letter-spacing:1.2px}
.station-hero-copy h2{font-size:clamp(32px,3.1vw,49px);line-height:1.06;letter-spacing:-1.5px;margin:23px 0;color:white;text-shadow:0 3px #102b4e}
.station-hero-copy em{font-style:normal;color:#ffe044}.station-hero-copy p{font-size:12px;line-height:1.7;color:#e1f3ff}
body.arcade.station .scene-label{left:25px;bottom:20px;z-index:2;font-size:9px;letter-spacing:1px;color:#d7efff;background:#193b60b0;border:1px solid #86bad455;padding:8px;border-radius:7px}
body.arcade.station .departure-card{grid-column:2;grid-row:2/4;justify-content:flex-start;padding:24px;gap:15px;border-radius:18px;background:linear-gradient(145deg,#284c7b,#1b3761);border:1px solid #619ed0;box-shadow:inset 0 1px #b7e8ff44,0 5px #0a2144}
body.arcade.station .departure-card h2{display:block;text-align:left;font-size:25px;margin:0;line-height:1.2;letter-spacing:-.6px}
.station-mode{display:flex;background:#10294d;border:1px solid #385f91;padding:4px;gap:4px;border-radius:10px}.station-mode button{flex:1;min-height:39px;background:transparent;color:#adcae9;border:1px solid transparent;border-radius:7px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:1px}.station-mode button[aria-pressed=true]{background:linear-gradient(#3673ac,#27548f);border-color:#74b4dd;color:#ffe04a;box-shadow:0 2px #0b2347}.station-mode-copy{font-size:11px;color:#b9d2ea;min-height:16px}
body.arcade.station .journey-options{display:grid;gap:10px}body.arcade.station .journey-choice{min-height:63px;background:#16345b;border:1px solid #466f9d;border-radius:11px;padding:5px 2px;gap:3px}
body.arcade.station .journey-choice>span{width:50px;height:40px}body.arcade.station .journey-choice>button{min-width:26px;font-size:28px;color:#9bd8f5}
body.arcade.station .journey-choice small{font-size:10px;color:#a9c8e4}body.arcade.station .journey-choice select{font-size:14px;min-height:26px;color:white}
.station-world-open{background:none;color:#a7dafa;text-align:right;padding:0;font-size:11px;min-height:24px}
.station-kit{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.station-kit>small{font-size:9px;letter-spacing:1px;color:#a4c6e6;flex:1}.station-kit>span{display:flex;align-items:center;gap:5px;border:1px solid #669fce;border-radius:9px;background:linear-gradient(#3289af,#265188);padding:6px;font-size:11px}.station-kit>span:nth-of-type(2){background:linear-gradient(#795daa,#503b84)}.station-kit>span:nth-of-type(3){background:linear-gradient(#71a94b,#348358)}.station-kit .game-icon{width:26px;height:26px}
body.arcade.station .best-stamp{border:0;border-top:1px solid #49698f;border-radius:0;padding:13px 0 0;background:none;font-size:12px;justify-content:flex-start;align-self:stretch}body.arcade.station .best-stamp strong{font-size:15px;color:#ffe151}
.station-departure-action{margin-top:auto}body.arcade.station .primary{color:#18345a;text-shadow:none;background:linear-gradient(#ffea73,#ffcf38);border:1px solid #fff2a4;box-shadow:inset 0 2px #fff9cb99,0 4px #a47b19;font-size:16px;border-radius:12px;min-height:46px}
body.arcade.station .primary.play-button,body.arcade.station .online-button{min-height:58px;font-size:26px;border-radius:12px;width:100%;margin:0}body.arcade.station .online-button{background:linear-gradient(#ffea73,#ffcf38);border:1px solid #fff2a4;color:#18345a;box-shadow:0 4px #a47b19}body.arcade.station .online-button small{font-size:10px;color:#314d6a}
body.arcade.station .world-description{font-size:11px;color:#b6d1e7;margin:0}body.arcade.station .ticket-foot{display:none}body.arcade.station .web-controls{display:none}
body.arcade.station .home-shortcuts{grid-column:1;grid-row:3;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
body.arcade.station .home-shortcuts .secondary{padding:16px 10px;min-height:100px;font-size:13px;flex-direction:column;gap:7px;align-items:flex-start;justify-content:center;border-radius:14px;background:linear-gradient(135deg,#28537e,#203c67);border:1px solid #507da9;box-shadow:0 3px #102547}
body.arcade.station .home-shortcuts .secondary:nth-child(2){background:linear-gradient(135deg,#474c8c,#2a376b);border-color:#807bc7}body.arcade.station .home-shortcuts .game-icon{width:32px;height:32px;margin:0}body.arcade.station .home-shortcuts small{font-size:10px;line-height:1.4;color:#b8cfe8}
body.arcade.station .home-links{grid-row:4;gap:18px;justify-content:flex-start}body.arcade.station .home-links .text-button{padding:0;font-size:11px}
.station-store-links{grid-column:1/-1;display:flex;gap:10px;align-items:center;border-top:1px solid #436184;padding-top:15px;font-size:10px;color:#aac4e2}.station-store-links>span{margin-right:auto}.station-store-links a{display:flex;flex-direction:column;gap:2px;text-decoration:none;padding:7px 14px;border:1px solid #5a7da3;border-radius:8px;background:#142c4c;color:#fff;min-height:40px}.station-store-links small{font-size:8px;color:#a6c4e2}.station-store-links strong{font-size:12px}
body.arcade.station .modal-backdrop{inset:calc(72px + var(--safe-top)) 0 0 var(--nav);padding:28px 32px;background:radial-gradient(ellipse at 15% 0,#2b4e78,#163256 70%)}
body.arcade.station .modal{background:linear-gradient(140deg,#254974,#19365d);border:1px solid #527da7;border-radius:18px;padding:24px;color:#f3f7ff;animation:station-enter .28s ease-out}
body.arcade.station .station-modal{min-height:100%;height:auto;max-height:none;overflow:visible;container-type:normal;display:block}
body.arcade.station .modal h2{font-size:30px;letter-spacing:-.7px;margin:6px 46px 20px 0}
body.arcade.station .panel-heading{margin-bottom:18px;gap:8px}body.arcade.station .panel-heading .eyebrow{font-size:10px}body.arcade.station .panel-heading .store-balance{font-size:12px}
body.arcade.station .board-tabs,body.arcade.station .station-section-tabs{display:flex;flex-wrap:wrap;width:100%;max-width:100%;position:static;overflow:visible;gap:5px;margin:15px 0;padding:5px;background:#142f54;border:1px solid #49719c;border-radius:11px}
body.arcade.station .board-tabs button,.station-section-tabs button{flex:1 1 auto;min-width:0;min-height:42px;padding:8px 12px;background:transparent;color:#b9d2eb;border-radius:7px;font-size:12px;white-space:normal}
body.arcade.station .board-tabs button.active,body.arcade.station .board-tabs button[aria-selected=true],.station-section-tabs button[aria-current=page]{background:#315c90;color:#ffe255;box-shadow:inset 0 1px #93c7ec55}
body.arcade.station .station-section-tabs{width:calc(100% - 58px);margin:0 0 24px}
body.arcade.station .shop-card,body.arcade.station .challenge-card,body.arcade.station .garage-detail,body.arcade.station .badge-detail{background:linear-gradient(130deg,#2a4e7c,#1b3963);border-color:#527daa}
body.arcade.station #store{display:block;height:auto;max-height:none;overflow:visible;container-type:normal}body.arcade.station #store-content{overflow:visible;display:grid;min-height:0}
body.arcade.station #store .garage-layout{height:auto;grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr);grid-template-rows:310px auto;gap:20px}
body.arcade.station #store .garage-stage{grid-column:1;grid-row:1;height:310px;background:radial-gradient(ellipse,#4b7ba8,#203f69 70%);border-color:#6d9ec8}body.arcade.station #store .garage-stage:before{background:#355c7c;border:2px solid #8ebed9;border-bottom:8px solid #112d51;box-shadow:0 15px 25px #091f40;bottom:14%;height:23%}
body.arcade.station #store .garage-detail{grid-column:2;grid-row:1;padding:22px;gap:14px;justify-content:center}body.arcade.station #store .garage-detail h3{font-size:24px}body.arcade.station #store .garage-detail p{font-size:13px;line-height:1.5}body.arcade.station #store .garage-detail .secondary{min-height:42px;font-size:13px;padding:10px}
body.arcade.station #store .train-colors legend{font-size:12px;margin-bottom:10px}body.arcade.station #store .train-colors small{font-size:10px;margin-top:8px}body.arcade.station #store .train-color{min-height:26px;max-width:34px}body.arcade.station #store .garage-detail .shop-price{font-size:13px}
body.arcade.station #store .garage-carousel{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:none;grid-auto-flow:row;grid-auto-columns:auto;overflow:visible;gap:14px;padding:0}
body.arcade.station #store .train-card{min-height:160px;grid-template-rows:100px auto auto;padding:10px;font-size:12px;gap:7px;background:linear-gradient(#2b527f,#1c3962);border-color:#527da8}body.arcade.station #store .train-card small{font-size:10px}body.arcade.station #store .train-card[aria-pressed=true]{border-color:#ffe052}body.arcade.station #store .train-card.locked .train-art{opacity:1}
body.arcade.station #store>.fine-print{font-size:11px;margin-top:20px}
body.arcade.station #daily-content{display:grid;gap:16px}body.arcade.station #rewards .arrival-preview{min-height:180px;margin:20px 0;display:flex;align-items:center;gap:20px}body.arcade.station #rewards .arrival-preview h3{font-size:24px}body.arcade.station #rewards .streak-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;padding:0}body.arcade.station #rewards .streak-day{max-height:none;min-height:170px;font-size:12px;padding:25px 8px 12px;gap:10px}body.arcade.station #rewards .streak-day .reward-art{height:80px}body.arcade.station #rewards .streak-day.current:before{font-size:9px}
body.arcade.station #badges .badge-layout{grid-template-columns:minmax(0,1.4fr) minmax(230px,1fr);grid-template-rows:auto;gap:22px}body.arcade.station #badges #badge-grid{grid-row:auto;grid-template-columns:repeat(3,1fr);gap:12px}body.arcade.station #badges .badge-detail{grid-row:auto;display:flex;min-height:350px;padding:25px;gap:12px}body.arcade.station #badges .badge-detail h3{font-size:25px}body.arcade.station #badges .badge-detail p{font-size:13px}body.arcade.station #badges .illustrated-emblem{width:100px;height:100px}body.arcade.station #badges .badge-detail .illustrated-emblem{width:150px;height:150px}
.station-sheet{width:min(880px,calc(100% - 32px));max-height:85dvh;overflow:auto;margin:auto;padding:28px;background:linear-gradient(#294e7d,#1b365f);color:#fff;border:1px solid #739cc6;border-radius:20px;box-shadow:0 30px 100px #05152d99}.station-sheet[open]{animation:station-sheet-in .55s cubic-bezier(.22,.61,.36,1)}.station-sheet::backdrop{background:#07172dbb;backdrop-filter:blur(5px)}.station-sheet h2{font-size:28px;margin:12px 45px 25px 0}.station-world-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.station-world-card{display:flex;flex-direction:column;gap:9px;text-align:left;background:#18365c;border:1px solid #5987b4;border-radius:13px;padding:10px;color:#fff}.station-world-card[aria-pressed=true]{border:2px solid #ffe24c}.station-world-card>.world-art,.station-world-card>svg{height:120px;width:100%;border-radius:9px}.station-world-card strong{font-size:14px}.station-world-card small{font-size:11px;line-height:1.5;color:#b4cde8}.station-friends-link{margin-top:20px}
@keyframes station-enter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes station-sheet-in{from{opacity:0;transform:translateY(100px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1199px){body.arcade.station{--nav:88px;--gap:20px}body.arcade.station .arcade-nav{padding:20px 8px}body.arcade.station .arcade-nav button{flex-direction:column;justify-content:center;gap:6px;font-size:10px;padding:10px 3px;flex-basis:74px}body.arcade.station .menu{padding:22px;gap:18px;grid-template-columns:minmax(0,1.3fr) minmax(290px,1fr)}body.arcade.station .departure-card{padding:20px}body.arcade.station .topbar .connection{display:none}.station-hero-copy{padding:30px 22px}.station-hero-copy h2{font-size:36px}body.arcade.station #store .garage-carousel{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){body.arcade.station{--nav:0px;--header:100px}body.arcade.station .topbar{height:calc(100px + var(--safe-top));padding:9px 14px;padding-top:calc(9px + var(--safe-top));align-items:flex-start;flex-wrap:wrap;gap:7px}body.arcade.station .brand{font-size:15px;gap:7px}body.arcade.station .brand-icon{width:28px;height:28px;border-radius:8px}body.arcade.station .top-actions{display:contents}body.arcade.station #sound{display:none}body.arcade.station #profile-open{position:absolute;right:52px;top:calc(8px + var(--safe-top));width:32px;height:32px}body.arcade.station #settings-open{position:absolute;right:12px;top:calc(8px + var(--safe-top));width:32px;height:32px}body.arcade.station .topbar .wallet{position:absolute;right:12px;top:calc(51px + var(--safe-top));height:34px;gap:5px;padding:5px 9px;font-size:12px}body.arcade.station .wallet>span:nth-last-child(2){margin-left:4px}body.arcade.station .wallet .game-icon{width:21px;height:21px}body.arcade.station .topbar .energy-meter{position:absolute;left:14px;top:calc(51px + var(--safe-top));width:110px;height:34px}body.arcade.station[data-mode=menu] .hud-view-button{display:none}
body.arcade.station .arcade-nav{top:auto;bottom:0;left:0;right:0;width:100%;height:calc(70px + var(--safe-bottom));padding:6px 8px calc(6px + var(--safe-bottom));flex-direction:row;gap:5px;border-top:1px solid #638db5;z-index:35}body.arcade.station .arcade-nav button{flex:1;min-height:50px;padding:3px;font-size:10px;gap:3px}body.arcade.station .arcade-nav button .game-icon{width:25px;height:25px}
body.arcade.station .menu{inset:calc(100px + var(--safe-top)) 0 calc(70px + var(--safe-bottom)) 0;display:flex;flex-direction:column;padding:22px 16px 100px;gap:18px}.station-heading h1{font-size:25px}.station-heading p{font-size:11px}.station-heading .eyebrow{font-size:8px}body.arcade.station .home-scene{min-height:265px;flex-shrink:0}.station-hero-copy{padding:25px 20px}.station-hero-copy h2{font-size:34px;margin:22px 0 15px}.station-hero-copy p{font-size:11px}body.arcade.station .scene-label{font-size:8px;left:18px;bottom:14px}
body.arcade.station .departure-card{padding:20px;gap:14px}body.arcade.station .departure-card h2{font-size:24px}.station-departure-action{position:fixed;z-index:26;bottom:calc(70px + var(--safe-bottom));left:0;right:0;padding:12px 16px 16px;background:#19365ff7;border-top:1px solid #5485b1}body.arcade.station:not([data-station-page=home]) .station-departure-action{display:none}body.arcade.station .primary.play-button,body.arcade.station .online-button{min-height:50px;font-size:24px}body.arcade.station .home-shortcuts{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}body.arcade.station .home-shortcuts .secondary{font-size:11px;padding:13px 9px;min-height:110px}body.arcade.station .home-shortcuts small{font-size:9px}body.arcade.station .home-links{flex-wrap:wrap;gap:15px;justify-content:center}.station-store-links{flex-wrap:wrap;justify-content:center}.station-store-links>span{width:100%;text-align:center;margin:0 0 5px}.station-store-links a{flex:1}
body.arcade.station .modal-backdrop{inset:calc(100px + var(--safe-top)) 0 calc(70px + var(--safe-bottom)) 0;padding:16px}body.arcade.station .modal{padding:18px;border-radius:15px}body.arcade.station .modal h2{font-size:26px}.station-section-tabs button{font-size:10px;padding:8px 4px}body.arcade.station .station-section-tabs{width:calc(100% - 40px);gap:2px;padding:3px}body.arcade.station .close{width:32px;height:32px;top:18px;right:15px;font-size:24px}
body.arcade.station #store .garage-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:230px auto auto;gap:15px}body.arcade.station #store .garage-stage{grid-column:1;grid-row:1;height:230px}body.arcade.station #store .garage-detail{grid-column:1;grid-row:2;padding:18px}body.arcade.station #store .garage-carousel{grid-column:1;grid-row:3;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}body.arcade.station #store .train-card{min-height:145px;grid-template-rows:80px auto auto;font-size:11px}body.arcade.station #store .train-card small{font-size:10px}body.arcade.station #store .garage-detail h3{font-size:22px}body.arcade.station .shop-grid{grid-template-columns:1fr}body.arcade.station .challenge-card{padding:16px;grid-template-columns:42px minmax(0,1fr) auto;gap:8px}body.arcade.station .challenge-card h3{font-size:17px}body.arcade.station .challenge-card p{font-size:11px}.station-world-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.station-world-card>.world-art,.station-world-card>svg{height:100px}.station-world-card strong{font-size:12px}.station-world-card small{font-size:10px}.station-sheet{width:100%;max-width:100%;margin:auto 0 0;max-height:88dvh;border-radius:22px 22px 0 0;padding:22px 16px calc(22px + var(--safe-bottom))}.station-sheet[open]{animation:station-sheet-in .55s cubic-bezier(.22,.61,.36,1)}body.arcade.station #rewards .streak-days{grid-template-columns:repeat(2,minmax(0,1fr))}body.arcade.station #rewards .streak-day.mega{grid-column:1/-1}body.arcade.station #rewards .arrival-preview{flex-wrap:wrap}body.arcade.station #badges .badge-layout{display:flex;flex-direction:column-reverse}body.arcade.station #badges .badge-detail{min-height:280px}body.arcade.station #badges #badge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* In short landscape windows the logo stays in the top bar; navigation owns the left rail. */
@media(min-width:761px) and (max-height:560px){body.arcade.station{--nav:78px}body.arcade.station .topbar{height:calc(56px + var(--safe-top));padding:8px 16px}body.arcade.station .brand{font-size:14px}.station-heading{display:none}body.arcade.station .brand-icon{width:30px;height:30px}body.arcade.station .arcade-nav{top:calc(56px + var(--safe-top));gap:3px;padding:10px 6px}body.arcade.station .arcade-nav button{flex:1;min-height:44px;font-size:9px;padding:4px;gap:2px}body.arcade.station .arcade-nav button .game-icon{width:25px;height:25px}body.arcade.station .menu{top:calc(56px + var(--safe-top));padding:16px;grid-template-rows:310px auto auto auto;gap:14px}body.arcade.station .home-scene{grid-row:1;min-height:310px}body.arcade.station .departure-card{grid-row:1/3;gap:10px;padding:18px}body.arcade.station .home-shortcuts{grid-row:2}body.arcade.station .home-links{grid-row:3}.station-hero-copy h2{font-size:32px}body.arcade.station .modal-backdrop{top:calc(56px + var(--safe-top));padding:16px}body.arcade.station .topbar .wallet{font-size:12px}body.arcade.station .topbar .icon-button{width:32px;height:32px}body.arcade.station #sound{display:none}}
@media(prefers-reduced-motion:reduce){body.arcade.station .modal,.station-sheet[open]{animation:none}}body.arcade.station.reduced-motion .modal,body.arcade.station.reduced-motion .station-sheet{animation:none}
body.arcade.station .train-sheet{width:min(700px,calc(100% - 24px))}.train-sheet .sheet-train-preview{height:245px;min-height:0;margin:28px 0 20px;background:radial-gradient(ellipse,#5683a8,#203f69);border-color:#6595bb}.train-sheet .garage-detail{padding:20px;gap:14px}.train-sheet .garage-detail h3{font-size:26px}.train-sheet .garage-detail p{font-size:14px;line-height:1.6}.train-sheet .train-color-choices{display:flex;gap:12px}.train-sheet .train-color{width:34px;height:34px}.train-sheet .train-colors legend{font-size:13px;margin-bottom:10px}.train-sheet .train-colors small{font-size:11px;margin-top:10px}.train-sheet .garage-actions{display:flex;gap:12px}.train-sheet .garage-actions>button{flex:1;min-height:45px}.train-sheet .shop-price{font-size:14px}
@media(max-width:760px){body.arcade.station .train-sheet{width:100%}.train-sheet .sheet-train-preview{height:195px}.train-sheet .garage-detail{padding:16px}.train-sheet .train-color-choices{gap:8px}.train-sheet .garage-actions{flex-wrap:wrap}}
body.arcade.station .home-scene>.game-world-3d{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
body.arcade.station .departure-card{align-self:start;gap:9px;padding:20px;min-height:0}body.arcade.station .station-mode button{min-height:32px}body.arcade.station .journey-choice{min-height:50px}body.arcade.station .journey-choice>span{height:34px}body.arcade.station .station-world-open{min-height:16px}body.arcade.station .station-kit>span{padding:4px}body.arcade.station .station-kit .game-icon{width:23px;height:23px}body.arcade.station .best-stamp{padding-top:9px}body.arcade.station .station-departure-action{margin-top:8px}body.arcade.station .departure-card>.world-description{display:none}body.arcade.station .primary.play-button,body.arcade.station .online-button{min-height:52px}
@media(max-width:760px){body.arcade.station .departure-card{min-height:0;flex-shrink:0;gap:14px}body.arcade.station .station-mode button{min-height:39px}body.arcade.station .journey-choice{min-height:62px}}
body.arcade.station .modal-backdrop{display:block;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}body.arcade.station .station-modal{height:auto;min-height:100%;max-height:none}body.arcade.station .modal.compact{margin:3vh auto;max-height:none}body.arcade.station .modal-backdrop:has(>.compact:not(.hidden)){background:#0b1f3cbb;backdrop-filter:blur(4px)}
@media(max-width:760px){body.arcade.station .modal.compact{animation:station-mobile-sheet .55s cubic-bezier(.22,.61,.36,1);border-radius:20px 20px 0 0;margin:auto 0 0;width:100%;max-width:none}body.arcade.station .modal-backdrop:has(>.compact:not(.hidden)){display:flex;align-items:flex-end;padding:0}.station-sheet[open]{animation-name:station-mobile-sheet}}
@keyframes station-mobile-sheet{from{transform:translateY(100%)}to{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){body.arcade.station .modal,body.arcade.station .modal.compact,.station-sheet[open]{animation:none}}
body.arcade.station[data-mode=menu] .topbar{display:flex}body.arcade.station[data-mode=menu] .topbar .brand{display:flex}body.arcade.station[data-mode=menu] .topbar .brand>span{display:inline}body.arcade.station .topbar .top-actions>*{grid-area:auto}
@media(orientation:landscape) and (max-height:560px){
 body.arcade.station{--nav:78px}body.arcade.station[data-mode=menu] .topbar{height:calc(56px + var(--safe-top));padding:8px 14px;align-items:center;flex-wrap:nowrap;gap:10px}body.arcade.station .topbar .brand{font-size:12px;gap:6px}body.arcade.station .brand-icon{width:30px;height:30px}body.arcade.station .top-actions{display:flex;margin-left:auto;gap:8px}body.arcade.station .topbar :is(#energy-open,#wallet-open,#profile-open,#settings-open){position:static;inset:auto;transform:none;height:32px}body.arcade.station .topbar #energy-open{width:100px}body.arcade.station .topbar #wallet-open{font-size:11px;padding:5px 8px;gap:4px}body.arcade.station .topbar .wallet .game-icon{width:20px;height:20px}
 body.arcade.station .arcade-nav{top:calc(56px + var(--safe-top));bottom:0;left:0;right:auto;width:78px;height:auto;flex-direction:column;gap:3px;padding:10px 6px;border-top:0}body.arcade.station .arcade-nav button{flex:1;min-height:44px;font-size:9px;padding:4px;gap:2px}
 body.arcade.station .menu{inset:calc(56px + var(--safe-top)) 0 0 78px;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,1fr);grid-template-rows:310px auto auto auto;padding:16px 16px 90px;gap:14px}.station-heading{display:none}body.arcade.station .home-scene{grid-column:1;grid-row:1;min-height:310px;max-height:none}body.arcade.station .departure-card{grid-column:2;grid-row:1/3;min-height:500px;padding:18px;gap:9px}body.arcade.station .departure-card h2{font-size:23px}body.arcade.station .station-mode button{min-height:32px}body.arcade.station .journey-choice{min-height:50px}body.arcade.station .home-shortcuts{grid-column:1;grid-row:2;grid-template-columns:1fr}body.arcade.station .home-shortcuts .secondary{flex-direction:row;align-items:center;min-height:60px}.station-hero-copy{padding:28px 20px}.station-hero-copy h2{font-size:30px}
 body.arcade.station .station-departure-action{position:fixed;left:auto;right:16px;bottom:0;width:calc((100vw - 124px) / 2.3);min-width:260px;padding:12px;background:#19365ff7;border:1px solid #5c85af;border-radius:14px 14px 0 0;z-index:26}body.arcade.station:not([data-station-page=home]) .station-departure-action{display:none}body.arcade.station .modal-backdrop{inset:calc(56px + var(--safe-top)) 0 0 78px;padding:16px}
}
@media(min-width:761px) and (min-height:561px){body.arcade.station .arcade-nav{flex-direction:column;height:auto;right:auto;border-top:0}body.arcade.station .topbar .brand{display:flex}}
@media(min-width:761px) and (max-width:1050px){body.arcade.station #rewards .streak-days{grid-template-columns:repeat(4,minmax(0,1fr))}body.arcade.station #rewards .streak-day.mega{grid-column:3/5}}
body.arcade.station:not([data-mode=playing]) .topbar{display:flex}body.arcade.station:not([data-mode=playing]) .topbar .brand{display:flex}body.arcade.station:not([data-mode=playing]) .topbar .brand>span{display:inline}
@media(max-width:760px) and (orientation:portrait){body.arcade.station .topbar .wallet{max-width:calc(100% - 144px)}body.arcade.station .wallet :is(#wallet,#diamonds,#rubies){display:block!important;min-width:0;overflow:hidden;text-overflow:ellipsis}body.arcade.station:not([data-mode=playing]) .hud-view-button{display:none}}
body.arcade.station .skin-toggle button[aria-pressed=true]{border-color:#ffdf54;box-shadow:inset 0 1px #fff3a333,0 3px #10264a}body.arcade.station .game-settings label{background:linear-gradient(135deg,#2b527e,#233d68);border-color:#537da6}
/* Keep the departure controls compact while the scene can use the available space. */
body.arcade.station .menu{grid-template-rows:auto auto auto auto}
.station-home-left{grid-column:1;grid-row:2;display:flex;flex-direction:column;gap:20px;min-width:0}.station-home-left>.home-scene{flex:1}.station-home-left>.home-shortcuts{flex:none}
body.arcade.station .departure-card{grid-row:2;min-height:0;height:auto}body.arcade.station .home-links{grid-row:3}.station-store-links{grid-row:4}
@media(max-width:760px) and (orientation:portrait){.station-home-left{display:contents}body.arcade.station .home-scene{order:1}.station-heading{order:0}body.arcade.station .departure-card{order:2;min-height:0}body.arcade.station .home-shortcuts{order:3}body.arcade.station .home-links{order:4}.station-store-links{order:5}}
@media(orientation:landscape) and (max-height:560px){body.arcade.station .menu{grid-template-rows:auto auto auto}.station-home-left{grid-row:1}body.arcade.station .departure-card{grid-row:1;min-height:0}body.arcade.station .home-links{grid-row:2}.station-store-links{grid-row:3}}
body.arcade.station .home-scene{max-height:none}
body.arcade.station.reduced-motion .modal,body.arcade.station.reduced-motion .modal.compact,body.arcade.station.reduced-motion .station-sheet[open]{animation:none}
body.arcade.station:not([data-mode=menu]) .station-friends-link{display:none}

/* A compact, legible ranking leaves the ride visible behind it. */
body.arcade.station .rivals-card{top:calc(12px + var(--safe-top));right:calc(12px + var(--safe-right));width:190px;padding:9px 10px 7px;background:#0006;border:1px solid #ffffff73;border-radius:11px;box-shadow:0 3px 12px #0005;text-shadow:0 1px 3px #000}
body.arcade.station .rivals-card ol{margin-top:6px}
body.arcade.station .rivals-card li{line-height:21px;font-size:11px;gap:6px}
body.arcade.station .rivals-card li.you{background:#ffffff29}
body.arcade.station .rivals-card .roster-button{margin-top:4px;padding-top:6px}
body.arcade.station.mobile-ui .rivals-card{width:158px;padding:7px 8px}
body.arcade.station.mobile-ui .rivals-card li{line-height:18px;font-size:9px;gap:4px}
@media(orientation:landscape) and (max-height:560px){body.arcade.station:not([data-mode=playing]) .topbar{padding-left:calc(14px + var(--safe-left));padding-right:calc(14px + var(--safe-right))}body.arcade.station .arcade-nav{left:var(--safe-left)}body.arcade.station .menu,body.arcade.station .modal-backdrop{left:calc(78px + var(--safe-left));right:var(--safe-right)}body.arcade.station .station-departure-action{right:calc(16px + var(--safe-right))}}

/* One settings entry point; gameplay has no header strip or extra HUD buttons. */
body.arcade.station:is([data-mode=playing],[data-mode=paused],.hud-arranging) :is(.topbar,.mobile-toolbar){background:none!important;border:0!important;box-shadow:none!important;pointer-events:none;height:0!important;padding:0!important;overflow:visible;visibility:hidden}
body.arcade.station:not(.mobile-ui):is([data-mode=playing],[data-mode=paused],.hud-arranging) .topbar{display:block!important}
body.arcade.station.mobile-ui:is([data-mode=playing],[data-mode=paused],.hud-arranging) .mobile-toolbar{display:block!important}
body.arcade.station:is([data-mode=playing],[data-mode=paused],.hud-arranging) :is(#settings-open,#menu-open){position:fixed!important;top:calc(6px + var(--safe-top))!important;left:calc(173px + var(--safe-left))!important;right:auto!important;bottom:auto!important;width:44px!important;height:44px!important;transform:none!important;display:grid!important;place-items:center;visibility:visible;pointer-events:auto;z-index:44}
body.arcade.station.mobile-ui:is([data-mode=playing],[data-mode=paused],.hud-arranging) :is(#settings-open,#menu-open){left:calc(110px + var(--safe-left))!important}
body.arcade.station:is([data-mode=playing],[data-mode=paused],.hud-arranging) :is(#wallet-open,#energy-open,#mobile-wallet-open,#mobile-energy-open){visibility:visible;pointer-events:auto;transform:none;max-width:none}
body.arcade.station.mobile-ui:is([data-mode=playing],[data-mode=paused],.hud-arranging) .topbar{display:none!important}
body.arcade.station:not(.mobile-ui):is([data-mode=playing],[data-mode=paused],.hud-arranging) .mobile-toolbar{display:none!important}
body.hud-hide-turbo #turbo{display:none!important}
/* All real panels remain present in the editor, including currently inactive ones. */
body.hud-arranging .hud{z-index:41;visibility:visible!important}
body.hud-arranging #hud{display:block!important}
body.hud-arranging :is(#effect,#mp-hud,#tip){display:block!important;opacity:1!important}
body.hud-arranging #mp-hud{display:flex!important}
body.hud-arranging #tip{max-width:220px}
body.hud-arranging [data-hud-edit]{visibility:visible!important;pointer-events:auto!important;cursor:grab;touch-action:none;user-select:none;outline:2px dashed #86e4ba;outline-offset:3px;z-index:42}
body.hud-arranging [data-hud-edit] *{pointer-events:none}
body.hud-arranging #fps-counter{left:calc(110px + var(--safe-left));bottom:calc(6px + var(--safe-bottom));min-width:80px;min-height:44px;padding:12px;border-radius:10px;background:#193b60;color:#fff;font-size:13px;cursor:pointer}
body.hud-arranging.mobile-ui #fps-counter{left:auto;right:calc(12px + var(--safe-right))}
body.hud-arranging [data-hud-edit].hud-item-disabled{filter:grayscale(1);opacity:.5!important;outline-color:#b2bdcb}
body.hud-arranging [data-hud-edit]:focus-visible{outline:3px solid #ffda52}
body.hud-arranging [data-hud-edit].dragging{cursor:grabbing;outline-style:solid}
body.hud-arranging :is(#settings-open,#menu-open){visibility:hidden!important;pointer-events:none!important}
#hud-settings-reserve{display:none;position:fixed;left:calc(171px + var(--safe-left));top:calc(6px + var(--safe-top));width:50px;height:50px;border:1px dashed #e2edfa80;border-radius:14px;background:#142e4b99;z-index:44;align-items:center;justify-content:center}
body.mobile-ui #hud-settings-reserve{left:calc(108px + var(--safe-left))}
#hud-settings-reserve .game-icon{width:28px;height:28px;opacity:.65}
body.hud-arranging #hud-settings-reserve{display:flex}
.hud-names-preview{display:none;border:0;border-radius:12px;padding:6px 13px;background:#29556aed;color:#fff;font-weight:800;font-size:11px}
.hud-names-preview small{display:block;font-size:9px;font-weight:normal;color:#d2e8f2;margin-top:4px}
body.hud-arranging .hud-names-preview{display:block;cursor:pointer}
body.hud-arranging .minimap-handle{z-index:42}
body.hud-arranging .hud-arrange{top:auto;bottom:calc(12px + var(--safe-bottom));transform:translateX(-50%);width:min(360px,calc(100vw - 180px));padding:10px 12px;border-color:#608cb1;box-shadow:0 8px 24px #07142e66}
.hud-arrange h2{font-size:14px}.hud-arrange p{font-size:10px;margin-bottom:7px}.hud-arrange button{min-height:36px;padding:6px;font-size:12px}
@media(orientation:portrait){body.hud-arranging .hud-arrange{width:calc(100vw - 24px);bottom:calc(88px + var(--safe-bottom))}body.hud-arranging #tip{max-width:180px}}
body:not(.mobile-ui) #game-menu .control-settings{grid-template-columns:1fr 1fr}
body.arcade.station.mobile-ui .score-card{width:136px}
body.arcade.station.mobile-ui .score-card .game-score-line{flex-direction:row;align-items:center;justify-content:space-between}
body.arcade.station.mobile-ui:not(.hud-hide-clock) .bottom-hud{display:flex;font-size:9px;gap:8px}
body.hud-arranging .bottom-hud{display:flex!important}
body.arcade.station.hud-arranging.mobile-ui .mobile-toolbar{z-index:43}
body.arcade.station.hud-arranging:not(.mobile-ui) .topbar{z-index:43}
body.hud-arranging :is(#toast,#mp-countdown,#race-checkpoint){display:none!important}
@media(orientation:portrait) and (max-height:720px){
  body.arcade.station.mobile-ui .score-card .carriage-tier{display:none!important}
  body.arcade.station.mobile-ui .daily-hud{padding:6px 8px;min-height:0;font-size:10px;line-height:1.2}
  body.arcade.station.mobile-ui .daily-hud>span{font-size:10px;line-height:1.2}
  body.arcade.station.mobile-ui .daily-hud small{font-size:9px;line-height:1.2;margin-top:4px}
  body.arcade.station.mobile-ui #tip{max-width:136px}
}
@media(orientation:portrait) and (max-height:620px){
  body.hud-arranging .hud-arrange h2{display:none}
  body.hud-arranging .hud-arrange p{font-size:9px}
}
@media(orientation:landscape){
  body.hud-arranging.mobile-ui .hud-arrange{left:calc(50% - 40px);width:min(360px,calc(100vw - 260px))}
}
@media(orientation:landscape) and (max-width:620px){
  body.arcade.station.mobile-ui .daily-hud{width:100px;padding:5px;font-size:9px;line-height:1.1}
  body.arcade.station.mobile-ui .daily-hud>span,body.arcade.station.mobile-ui .daily-hud small{font-size:9px;line-height:1.1}
  body.arcade.station.mobile-ui .mobile-toolbar .energy-meter{width:92px}
  body.arcade.station.mobile-ui .mobile-toolbar .wallet{width:120px;font-size:9px;gap:3px}
  body.arcade.station.mobile-ui .rivals-card li:nth-child(n+4):not(.you){display:none}
  body.hud-arranging.mobile-ui .hud-arrange h2{display:none}
  body.hud-arranging.mobile-ui .hud-arrange p{font-size:9px}
}
@media(orientation:landscape) and (max-width:620px){
  body.arcade.station.mobile-ui .score-card .carriage-tier{display:none!important}
  body.arcade.station.mobile-ui .score-card:has(.game-score-line){min-height:0}
  body.hud-arranging.mobile-ui .hud-arrange{width:calc(100vw - 288px)}
}

/* The station fills its entire content area, including tall desktop/tablet windows. */
body.arcade.station .menu{max-width:none;margin-inline:0}
/* Only the card preview animates in menus. Never expose either gameplay renderer. */
body[data-mode=menu]:not(.hud-preview)>:is(#world,.game-world-3d){display:none!important}

/* A compact invitation on Home; the calendar carries the full event details. */
.station-event-banner{display:flex;align-items:center;gap:13px;text-align:left;width:100%;min-height:76px;padding:10px 14px;background:#213f67;border:1px solid #597590;border-radius:17px;color:#fff4d0;box-shadow:0 4px 0 #132d4c;cursor:pointer}
.station-event-banner>.world-art{width:80px;height:57px;flex:none;border-radius:10px;overflow:hidden}
.station-event-banner>span{display:grid;gap:3px;min-width:0}.station-event-banner small{font-size:9px;letter-spacing:1px;color:#bfd5df}.station-event-banner strong{font-size:17px}.station-event-banner span span{font-size:12px;color:#ffdf72}.station-event-banner>b{margin-left:auto;font-size:23px}
.station-event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.station-event-card{overflow:hidden;border-radius:16px;background:#eff2e3;color:#19334e;border:1px solid #cfddd5}.station-event-card>.world-art{display:block;width:100%;height:140px;object-fit:cover}.station-event-card>div{padding:16px}.station-event-card small{font-size:9px;letter-spacing:.6px;color:#51686e}.station-event-card h3{margin:8px 0;font-size:20px}.station-event-card strong{color:#876228;font-size:13px}.station-event-card p{font-size:13px;line-height:1.5}.station-event-card button{padding:10px 14px;border:0;border-radius:10px;background:#21466b;color:#fff;font-weight:800}.event-sheet>p{margin:0 0 20px;color:#afc7dc}
@media(max-width:600px){.station-event-grid{grid-template-columns:1fr}.station-event-banner{min-height:66px;gap:10px}.station-event-banner>.world-art{width:64px;height:48px}.station-event-banner strong{font-size:15px}}
@media(orientation:landscape){
 .station-event-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
 .station-event-card>div{padding:12px}
 .station-event-card h3{font-size:17px;overflow-wrap:anywhere}
 .station-event-card>.world-art{height:110px}
}
@media(max-height:520px) and (orientation:landscape){.station-event-banner{min-height:55px;padding:6px 10px}.station-event-banner>.world-art{height:40px;width:56px}.station-event-banner small{font-size:8px}}

@media(max-width:760px) and (orientation:portrait){.station-event-banner{order:4}.station-store-links{order:6}}

@media(min-height:561px){.station-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);align-items:center;gap:22px}}
@media(max-width:760px) and (orientation:portrait){.station-heading{display:grid;grid-template-columns:1fr;gap:12px}.station-event-banner{order:0}}
@media(max-height:560px) and (orientation:landscape){.station-heading{display:contents}.station-heading-intro{display:none}.station-event-banner{grid-column:1/-1;grid-row:1}.station-home-left{grid-row:2}body.arcade.station .departure-card{grid-row:2}body.arcade.station .home-links{grid-row:3}.station-store-links{grid-row:4}}

/* The home scene is decorative, including its rendered YOU label. */
body.arcade.station .home-scene{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}

/* Let the dimming layer arrive with the sheet instead of flashing on at once. */
.station-sheet[open]::backdrop,body.arcade.station .modal-backdrop:has(>.compact:not(.hidden)){animation:station-backdrop-in .5s ease-out both}
@keyframes station-backdrop-in{from{opacity:0;backdrop-filter:blur(0)}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.station-sheet[open]::backdrop,body.arcade.station .modal-backdrop:has(>.compact:not(.hidden)){animation:none}}
body.arcade.station.reduced-motion .station-sheet[open]::backdrop,body.arcade.station.reduced-motion .modal-backdrop:has(>.compact:not(.hidden)){animation:none}

body.arcade.station #online-friends{gap:14px}
body.arcade.station #online-friends .fine-print{margin:0;font-size:12px}
body.arcade.station #online-friends .friend-code-card{margin:12px 0 0;border:1px solid #6897be;background:linear-gradient(120deg,#31557e,#203c60);border-radius:16px;padding:20px}
body.arcade.station #online-friends .friend-code-card strong{font-size:clamp(20px,4vw,30px);letter-spacing:2px;color:#ffe075;overflow-wrap:anywhere}
.social-invite-preference{margin:0;align-items:center}.social-invite-preference input{flex:none}
#social-message{margin:0}#social-message:empty{display:none}

/* Settings needs an opaque full-screen backdrop even when the gameplay header
   is transparent. Keep the station navigation outside the scrolling content. */
body.arcade.station:has(.modal-backdrop:not(.hidden) > #game-menu:not(.hidden))::before{
  content:'';position:fixed;inset:0;z-index:19;
  background:radial-gradient(ellipse at 15% 0,#2b4e78,#163256 70%);
}
body.arcade.station:has(.modal-backdrop:not(.hidden) > #game-menu:not(.hidden)) .mobile-toolbar{z-index:30}
body.arcade.station:has(.modal-backdrop:not(.hidden) > #game-menu:not(.hidden)) :is(#toast,#mp-countdown,#race-checkpoint){visibility:hidden}
body.arcade.station #game-menu{display:block;container-type:normal;height:auto;min-height:100%;max-height:none;overflow:visible}
body.arcade.station #game-menu .settings-layout{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;align-items:start;gap:24px}
body.arcade.station #game-menu .game-settings{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-auto-rows:auto;overflow:visible;gap:10px;padding:0}
body.arcade.station #game-menu .game-settings label{min-height:52px;font-size:14px;padding:10px;gap:10px}
body.arcade.station #game-menu .game-settings .game-icon{width:26px;height:26px}
body.arcade.station #game-menu .menu-music-choice select{height:34px;font-size:12px}
body.arcade.station #game-menu .control-settings{margin-top:6px;gap:8px}
body.arcade.station #game-menu .control-settings .secondary{min-height:44px;padding:8px;font-size:12px}
body.arcade.station #game-menu .settings-right{gap:14px}
body.arcade.station #game-menu .settings-right>h3{font-size:16px}
body.arcade.station #game-menu .skin-toggle{flex:none;height:auto;min-height:0;max-height:none;grid-template-rows:none}
body.arcade.station #game-menu .skin-toggle button{grid-template-rows:100px auto;font-size:12px;padding:7px}
body.arcade.station #game-menu .skin-preview{height:100px}
body.arcade.station #game-menu .menu-links{flex:none;grid-template-rows:none;grid-auto-rows:auto;gap:8px}
body.arcade.station #game-menu .menu-links .secondary{min-height:50px;font-size:12px;padding:10px 6px}
body.arcade.station #game-menu .settings-right>.primary{min-height:46px;font-size:16px;padding:12px}
@media(max-width:760px) and (orientation:portrait){
  body.arcade.station #game-menu .settings-layout{grid-template-columns:minmax(0,1fr);gap:24px}
}
@media(orientation:landscape) and (max-height:560px){
  body.arcade.station #game-menu .settings-layout{gap:18px}
}

/* Collection screens scroll with the station shell. Reset the legacy fitted
   panel heights and fractional rows, which collapse when cards wrap on phones. */
body.arcade.station :is(#rewards,#badges){display:block;container-type:normal;height:auto;min-height:100%;max-height:none;overflow:visible}
body.arcade.station :is(#rewards,#badges)>.panel-heading{padding-right:0}
body.arcade.station :is(#rewards,#badges)>.fine-print{margin:20px 0 0;font-size:12px;line-height:1.5}
body.arcade.station #rewards .streak-days{height:auto;grid-template-rows:none;grid-auto-rows:auto;align-items:stretch;align-content:start}
body.arcade.station #rewards .streak-day{height:auto;min-height:170px;grid-template-rows:auto 80px auto;align-content:start}
body.arcade.station #rewards .streak-day>strong{font-size:13px}
body.arcade.station #rewards .streak-day .reward-chip{font-size:12px}
body.arcade.station #rewards .streak-day .reward-chip .game-icon{width:16px;height:16px}
body.arcade.station #rewards .arrival-preview{display:grid;grid-template-columns:64px minmax(0,1fr) minmax(180px,.8fr);min-height:0;padding:20px;gap:18px}
body.arcade.station #rewards .arrival-preview>span>.game-icon{width:64px;height:64px;max-height:none}
body.arcade.station #rewards .arrival-preview h3{margin:0 0 8px;font-size:22px}
body.arcade.station #rewards .arrival-preview p{font-size:13px;line-height:1.5}
body.arcade.station #rewards .arrival-preview .primary{min-height:46px;width:100%;padding:12px;font-size:16px}
body.arcade.station #rewards .arrival-preview small{margin-top:10px;font-size:11px;line-height:1.5}
body.arcade.station #badges .badge-layout{align-items:start}
body.arcade.station #badges #badge-grid{width:100%;grid-template-rows:none;grid-auto-rows:auto;align-content:start}
body.arcade.station #badges .badge-card{min-width:0;min-height:164px;grid-template-rows:100px auto auto;padding:14px 8px;gap:7px;font-size:13px}
body.arcade.station #badges .badge-card .illustrated-emblem{width:100%;height:100px;max-width:100px;max-height:none}
body.arcade.station #badges .badge-card small{font-size:11px}
body.arcade.station #badges .badge-detail{width:100%;min-width:0;flex-direction:column;align-items:center;text-align:center}
body.arcade.station #badges .badge-detail .illustrated-emblem{flex:none;align-self:center}
body.arcade.station #badges .badge-progress{width:100%;height:22px;flex:none}
body.arcade.station #badges .badge-progress span{font-size:12px}
body.arcade.station #badges .badge-status{font-size:11px;line-height:1.4}
@media(max-width:760px),(orientation:landscape) and (max-height:560px){
  body.arcade.station :is(#rewards,#badges){padding:16px}
  body.arcade.station :is(#rewards,#badges)>.station-section-tabs{width:calc(100% - 44px);margin-bottom:22px}
  body.arcade.station :is(#rewards,#badges)>.close{top:19px;right:16px;width:32px;height:32px}
  body.arcade.station #rewards .arrival-preview{grid-template-columns:48px minmax(0,1fr);padding:16px;gap:12px}
  body.arcade.station #rewards .arrival-preview>span>.game-icon{width:48px;height:48px}
  body.arcade.station #rewards .arrival-preview>div:last-child{grid-column:1/-1}
  body.arcade.station #rewards .arrival-preview h3{font-size:20px}
  body.arcade.station #badges .badge-layout{display:flex;flex-direction:column-reverse;gap:16px}
  body.arcade.station #badges #badge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.arcade.station #badges .badge-detail{display:grid;grid-template-columns:80px minmax(0,1fr);grid-template-rows:auto auto auto auto;min-height:0;padding:16px;gap:8px 12px;align-items:center;text-align:left}
  body.arcade.station #badges .badge-detail .illustrated-emblem{grid-column:1;grid-row:1/5;width:80px;height:80px;margin:0}
  body.arcade.station #badges .badge-detail :is(h3,p,.badge-progress,.badge-status){grid-column:2;width:100%;margin:0}
  body.arcade.station #badges .badge-detail h3{font-size:20px}
  body.arcade.station #badges .badge-detail p{font-size:12px;line-height:1.5}
}
@media(orientation:landscape) and (max-height:560px){
  body.arcade.station #rewards .streak-days{grid-template-columns:repeat(4,minmax(0,1fr))}
  body.arcade.station #rewards .streak-day.mega{grid-column:3/5}
  body.arcade.station #badges #badge-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
body.arcade.station #leaderboard .friend-row{flex-wrap:wrap;gap:10px}body.arcade.station #leaderboard .friend-name{flex:1;min-width:120px}
body.arcade.station #leaderboard .friend-row button{min-height:40px;white-space:normal}

/* A roomy world preview is the only selection control on the home screen. */
body.arcade.station .departure-card{align-self:stretch;min-width:0;gap:18px}
body.arcade.station .station-world-selection{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;width:100%;min-width:0;padding:0 0 18px;overflow:hidden;border:1px solid #689cca;border-radius:14px;background:#142f51;color:#f3f7ff;text-align:start;cursor:pointer;box-shadow:0 4px #102547;transition:border-color .15s,background .15s}
body.arcade.station .station-world-selection:hover{border-color:#ffe044;background:#1e426b}
body.arcade.station .station-world-selection #world-thumbnail{display:block;grid-column:1/-1;width:100%;height:clamp(170px,19vw,290px);overflow:hidden;background:#244674}
body.arcade.station .station-world-selection #world-thumbnail>*{display:block;width:100%;height:100%;max-height:none;object-fit:cover}
.station-selected-world{padding-inline-start:18px;font-size:clamp(18px,1.6vw,25px);line-height:1.3;overflow-wrap:anywhere}
.station-world-arrow{margin-inline-end:18px;color:#ffe044;font-size:25px}
.night-world-preview{position:relative;display:block;overflow:hidden}
.night-world-preview>.world-art{display:block;width:100%;height:100%}
.night-world-preview>.night-world-moon{position:absolute;inset-block-start:8px;inset-inline-end:8px;width:32px;height:32px;filter:drop-shadow(0 2px 3px #07142780);pointer-events:none}
.station-event-banner .night-world-preview>.night-world-moon{width:22px;height:22px;inset-block-start:3px;inset-inline-end:3px}
@media(max-width:760px) and (orientation:portrait){
 body.arcade.station .departure-card{width:100%;align-self:stretch;padding:18px;gap:14px}
 body.arcade.station .departure-card h2{font-size:23px}
 body.arcade.station .station-world-selection #world-thumbnail{height:150px}
}
@media(orientation:landscape) and (max-height:560px){body.arcade.station .station-world-selection #world-thumbnail{height:150px}}
@media(prefers-reduced-motion:reduce){body.arcade.station .station-world-selection{transition:none}}

/* The single home action opens a railway departure board. */
body.arcade.station .primary.play-button{min-height:72px;font-size:30px;letter-spacing:2px;justify-content:center;gap:16px;box-shadow:inset 0 2px #fffbd1,0 7px #9b6b18,0 14px 25px #061c3955;transition:transform .16s,box-shadow .16s}
body.arcade.station .primary.play-button:hover{transform:translateY(-2px);box-shadow:inset 0 2px #fffbd1,0 9px #9b6b18,0 18px 28px #061c3966}
body.arcade.station .primary.play-button:active{transform:translateY(3px);box-shadow:inset 0 2px #fffbd1,0 3px #9b6b18}
.play-button-arrow{font-size:26px;line-height:1}
body.arcade.station .play-departures{width:min(980px,calc(100% - 28px));max-height:min(790px,92dvh);padding:0;overflow:auto;background:#12243a;border:5px solid #d7a643;border-radius:22px;box-shadow:0 0 0 6px #1d3550,0 26px 80px #061322dd;color:#fff4d3}
.play-departures::backdrop{background:#08182de0;backdrop-filter:blur(7px)}
.online-loading{width:min(320px,calc(100% - 40px));padding:32px 24px;text-align:center;color:#fff4d3;background:#12243a;border:2px solid #d7a643;border-radius:20px;box-shadow:0 18px 60px #06132299}
.online-loading::backdrop{background:#08182de0;backdrop-filter:blur(7px)}
.online-loading-spinner{display:block;width:44px;height:44px;margin:0 auto 20px;border:4px solid #7e9eac55;border-top-color:#ffe044;border-radius:50%;animation:online-loading-spin .8s linear infinite}
@keyframes online-loading-spin{to{transform:rotate(360deg)}}
body.reduced-motion .online-loading-spinner{animation:none}
@media(prefers-reduced-motion:reduce){.online-loading-spinner{animation:none}}
.play-departures .close{position:absolute;z-index:4;top:14px;right:16px;width:36px;height:36px;border-radius:50%;background:#ffe4a8;color:#312818;border:2px solid #fff3cf;font-size:25px;line-height:1}
.departure-board-heading{position:relative;padding:24px 30px 20px;text-align:center;background:repeating-linear-gradient(90deg,#ffffff06 0 2px,transparent 2px 11px),linear-gradient(#3b5266,#21364a);border-bottom:4px solid #d7a643;box-shadow:inset 0 4px #fff5d126}
.departure-board-heading:before,.departure-board-heading:after{content:'';position:absolute;top:17px;width:10px;height:10px;border-radius:50%;background:#a1712b;box-shadow:inset 0 2px #594124}.departure-board-heading:before{left:18px}.departure-board-heading:after{right:18px}
.departure-board-eyebrow{display:inline-block;padding:5px 11px;border:1px solid #ffdc7e91;border-radius:4px;background:#122a40;color:#ffe390;font-size:10px;font-weight:900;letter-spacing:2.5px}
body.arcade.station .play-departures h2{margin:10px 40px 4px;font-size:clamp(27px,3.5vw,42px);line-height:1.1;color:#fff2cc;text-shadow:0 3px #0d1d2e}
.departure-board-heading p{margin:0;color:#d2e4e9;font-size:13px}.departure-board-heading strong{color:#ffe18a;margin-inline-start:5px}
.departure-routes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:24px 24px 18px;background:radial-gradient(circle at 50% 0,#2d4560,#12243a 75%)}
body.arcade.station .departure-route{position:relative;display:flex;min-width:0;min-height:290px;flex-direction:column;align-items:stretch;padding:0;overflow:hidden;text-align:start;color:#fff7e4;background:#274560;border:2px solid #7e9eac;border-radius:16px;box-shadow:0 6px #071a2d,0 12px 16px #06162599;cursor:pointer;transition:transform .16s,border-color .16s,box-shadow .16s}
body.arcade.station .departure-route:hover{transform:translateY(-5px);border-color:#ffe294;box-shadow:0 11px #071a2d,0 18px 20px #06162599}body.arcade.station .departure-route:active{transform:translateY(2px);box-shadow:0 3px #071a2d}
.route-scene{position:relative;display:block;height:116px;flex:none;overflow:hidden;background:linear-gradient(#82c7e5,#d9ecda 65%,#6ca56c 66%)}.route-scene:after{content:'';position:absolute;bottom:0;left:0;right:0;height:13px;background:repeating-linear-gradient(90deg,#8d6140 0 8px,#5b3c2c 8px 14px);border-top:5px solid #263945}
.route-sun{position:absolute;top:15px;right:28px;width:42px;height:42px;border-radius:50%;background:#fff3a5;box-shadow:0 0 0 10px #fff3a530}.route-hills{position:absolute;bottom:10px;left:-10%;width:120%;height:48px;border-radius:55% 55% 0 0;background:#61a77b;box-shadow:80px 11px 0 12px #3b936e}
.route-train{position:absolute;z-index:2;bottom:18px;left:14px;display:flex;align-items:end;gap:6px;filter:drop-shadow(0 3px 0 #102943)}.route-train .game-icon{width:65px;height:65px}.route-train .game-icon+.game-icon{width:52px;height:52px}
.route-online .route-scene{background:linear-gradient(#7e9bd2,#d9c1bd 65%,#76a6b1 66%)}.route-online .route-hills{background:#6483a3;box-shadow:80px 11px 0 12px #546c99}.route-online .route-sun{background:#ffca84;box-shadow:0 0 0 10px #ffca8430}
.route-custom .route-scene{background:linear-gradient(#8775a9,#e3a89a 65%,#a482a4 66%)}.route-custom .route-hills{background:#866ba3;box-shadow:80px 11px 0 12px #6a6599}.route-custom .route-sun{background:#ffd1a3;box-shadow:0 0 0 10px #ffd1a330}
.route-copy{display:flex;flex:1;flex-direction:column;gap:7px;padding:15px 16px 18px}.route-number{color:#ffd77a;font-size:10px;font-weight:900;letter-spacing:1.7px}.route-copy strong{font-size:clamp(19px,2vw,25px);line-height:1.1;color:#fff7e7}.route-copy>span{font-size:12px;line-height:1.45;color:#d9e5ef}.route-energy{align-self:flex-start;margin-top:auto;padding:4px 9px;border:1px solid #ffe29d73;border-radius:20px;background:#1d3450;color:#ffe291;font-size:11px;font-weight:800}.route-go{position:absolute;right:13px;bottom:14px;color:#ffd77a;font-size:22px;font-weight:900}
.departure-rails{height:25px;margin:0 24px 13px;border-top:4px solid #bea36e;border-bottom:4px solid #bea36e;display:flex;justify-content:space-around;align-items:center}.departure-rails i{display:block;width:9px;height:29px;background:#917854;transform:rotate(-24deg)}
@media(max-width:760px){body.arcade.station .primary.play-button{min-height:60px;font-size:27px}body.arcade.station .play-departures{width:100%;max-width:100%;max-height:94dvh;margin:auto 0 0;border-radius:22px 22px 0 0;border-width:4px 0 0;box-shadow:0 -10px 40px #061322bb}.departure-board-heading{padding:19px 54px 16px}.departure-board-eyebrow{font-size:9px}.departure-board-heading p{font-size:12px}.departure-routes{grid-template-columns:1fr;gap:10px;padding:15px}.play-departures .close{right:12px;top:10px}body.arcade.station .departure-route{min-height:124px;flex-direction:row}.route-scene{width:35%;height:auto;min-height:124px}.route-sun{right:13px}.route-train{left:4px;bottom:19px}.route-train .game-icon{width:53px;height:53px}.route-train .game-icon+.game-icon{width:36px;height:36px}.route-copy{padding:12px 32px 12px 13px;gap:4px}.route-copy strong{font-size:20px}.route-copy>span{font-size:11px}.route-energy{padding:3px 8px;font-size:10px}.route-go{right:9px;bottom:8px}.departure-rails{margin:0 16px 12px}}
@media(max-width:430px){.route-scene{width:28%}.route-train .game-icon{width:43px;height:43px}.route-train .game-icon+.game-icon{width:29px;height:29px}body.arcade.station .departure-route{min-height:117px}.route-scene{min-height:117px}}
@media(orientation:landscape) and (max-height:560px){body.arcade.station .play-departures{width:min(800px,calc(100% - 24px));max-height:92dvh;margin:auto;border:4px solid #d7a643;border-radius:18px}.departure-board-heading{padding:12px 25px 10px}body.arcade.station .play-departures h2{font-size:25px;margin:5px 0}.departure-routes{grid-template-columns:repeat(3,minmax(0,1fr));padding:12px;gap:9px}body.arcade.station .departure-route{display:flex;min-height:173px;flex-direction:column}.route-scene{width:100%;height:63px;min-height:63px}.route-train{bottom:10px}.route-train .game-icon{width:38px;height:38px}.route-copy{padding:8px 10px;gap:3px}.route-copy strong{font-size:15px}.route-copy>span{font-size:9px}.route-energy{font-size:9px}.route-go{font-size:15px}.departure-rails{display:none}}
@media(prefers-reduced-motion:reduce){body.arcade.station .departure-route,body.arcade.station .primary.play-button{transition:none}}

/* Shared sheet controls: one sticky header, with a centered pull-down target. */
body.arcade.station :is(.close,.emote-shop-close){display:grid!important;place-items:center;box-sizing:border-box;width:36px!important;height:36px!important;min-width:36px;min-height:36px;padding:0!important;border:1px solid #8eb6d5!important;border-radius:50%!important;background:#203e60!important;color:#f3f7ff!important;font-size:0!important;line-height:1!important;text-shadow:none;box-shadow:none!important;flex:none}
body.arcade.station :is(.close,.emote-shop-close)::before,body.arcade.station :is(.close,.emote-shop-close)::after{content:'';position:absolute;inset:auto;width:15px;height:2px;border-radius:2px;background:currentColor;transform:rotate(45deg)}
body.arcade.station :is(.close,.emote-shop-close)::after{transform:rotate(-45deg)}
/* Paint through the sheet's top/side padding so scrolled content cannot peek
   around the sticky header. The shadow does not expand the scrollable area. */
.sheet-controls{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:flex-end;min-height:48px;margin:0 0 12px;background:#193553;isolation:isolate;border-radius:0;box-shadow:0 -64px 0 64px #193553}
body.arcade.station .sheet-controls :is(.close,.emote-shop-close){position:relative!important;inset:auto!important;margin:6px}
.sheet-dismiss{display:none;position:absolute;left:50%;top:0;transform:translateX(-50%);width:72px;height:48px;padding:0;background:transparent;color:#c8dff1;touch-action:none;user-select:none}
.sheet-dismiss span{display:block;width:36px;height:5px;border-radius:4px;background:currentColor;margin:0 auto}
.dismissible-sheet{translate:0 var(--sheet-drag,0px);overscroll-behavior:contain}
body.arcade.station .play-departures>.sheet-controls{margin:0;border-radius:0;padding:0 10px}
body.arcade.station :is(#paused,#confirm-exit,#mp-leave-confirm)>h2{margin-inline:0;text-align:center}
body.arcade.station :is(#paused,#confirm-exit,#mp-leave-confirm)>:is(.primary,.secondary){display:flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:48px;margin-inline:0;box-sizing:border-box}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) .modal-backdrop{inset:0!important;z-index:100;background:#061529c9;backdrop-filter:blur(4px)}
body.arcade.station:is([data-mode=playing],[data-mode=paused]):not(.hud-arranging) :is(#settings-open,#menu-open){display:none!important}
select.choice-source{display:none!important}
.choice-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;max-width:100%;min-width:0;min-height:42px;padding:9px 13px;border:1px solid #648aac;border-radius:11px;background:#23456b;color:#eff6ff;box-shadow:0 3px #102640;font:inherit;font-size:13px;text-align:start;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.choice-trigger[hidden]{display:none!important}
.choice-trigger .choice-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.choice-trigger .choice-open{flex:none;font-size:18px;color:#aecde6}
.choice-trigger:hover:not(:disabled){background:#2d527b;border-color:#90b6d8}
.choice-trigger:focus:not(:focus-visible){outline:none}
.choice-trigger:focus-visible{outline:2px solid #ffe078;outline-offset:3px}
.choice-trigger:disabled{opacity:.5;cursor:default}
body.arcade.station .train-sheet .reserved-ride-stage{height:clamp(175px,24dvh,245px);min-height:175px;max-height:none}
body.arcade.station .menu-music-choice .choice-trigger{flex:0 1 59%;width:59%;margin-inline-start:auto;min-height:34px;font-size:12px}
body.arcade.station .language-choice .choice-trigger{max-width:59%}
body.arcade.station .profile-form .choice-trigger{width:100%;margin:0}
body.arcade.station .team-options .choice-trigger,body.arcade.station .race-selectors .choice-trigger{width:100%;margin-top:6px}
body.arcade.station .room-world>.choice-trigger{margin-inline-start:8px}
@media(max-height:560px) and (orientation:landscape){body.arcade.station .menu-music-choice .choice-trigger{min-height:28px;padding-block:4px;font-size:11px}}
body.arcade.station .rivals-card{background:#081522d9;border-color:#91abc05c}
body.arcade.station .rivals-heading{position:relative;min-height:32px;padding-right:36px;display:flex;flex-wrap:nowrap;align-items:center;gap:4px}
#hud-pause{position:absolute;right:0;top:0;display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid #91abc070;border-radius:10px;background:#142a40;color:#e2edf5;line-height:1;pointer-events:auto}
#hud-pause svg{width:18px;height:18px}
body.arcade.station.mobile-ui #hud-pause{display:none}
@media(max-width:360px){body.arcade.station.mobile-ui .rivals-card:not(.hud-collapsed){width:136px}}
body.arcade.station.mobile-ui:not(.hud-arranging) :is(#tip,#race-health,#race-checkpoint,.bottom-hud,#mp-countdown){display:none!important}
body.arcade.station.mobile-ui .rivals-card .roster-button{display:none}
body.arcade.station.mobile-ui .perk-tray{gap:6px}
body.arcade.station.mobile-ui .perk-tray button{width:44px;min-height:44px;padding:4px}
body.arcade.station.mobile-ui .perk-tray button>span{font-size:20px}
body.arcade.station.mobile-ui .perk-tray b{font-size:8px}
@media(max-width:760px){
 .sheet-dismiss{display:block}
 body.arcade.station .sheet-controls :is(.close,.emote-shop-close){display:none!important}
 body.arcade.station .modal-backdrop:has(>.compact:not(.hidden)){position:fixed;inset:0;padding:0;display:flex;align-items:flex-end;overflow:hidden;z-index:100}
 body.arcade.station .modal.compact{max-height:92dvh;overflow-y:auto;overscroll-behavior:contain;min-height:0;margin:0;width:100%}
 body.arcade.station .station-sheet{max-height:92dvh;overflow-y:auto}
}
body.mobile-ui .sheet-dismiss{display:block}
body.arcade.station.mobile-ui .sheet-controls :is(.close,.emote-shop-close){display:none!important}
/* The select owns its arrow; remove the old music-label decoration. */
body.arcade.station #game-menu .menu-music-choice::after{display:none}
body.arcade.station.mobile-ui .modal-backdrop:has(>.compact:not(.hidden)){position:fixed;inset:0;padding:0;display:flex;align-items:flex-end;overflow:hidden;z-index:100}
body.arcade.station.mobile-ui .modal.compact{max-height:92dvh;overflow-y:auto;overscroll-behavior:contain;min-height:0;margin:0;width:100%}
/* Keep pause reachable when a player hides the ranking in their custom layout. */
body.arcade.station.hud-hide-rivals:not(.hud-arranging) .rivals-card{display:block!important;width:36px;padding:0;border:0;background:transparent;box-shadow:none}
body.arcade.station.hud-hide-rivals:not(.hud-arranging) .rivals-card>:not(.rivals-heading),body.arcade.station.hud-hide-rivals:not(.hud-arranging) .rivals-heading>:not(#hud-pause){display:none}
body.arcade.station.hud-hide-rivals:not(.hud-arranging) .rivals-heading{padding:0;min-height:32px}
/* Exit keeps the modal blocker alive until the sheet has cleared the viewport. */
.sheet-exiting{pointer-events:none}
body.arcade.station .station-sheet.sheet-exiting::backdrop{animation:station-backdrop-out 320ms cubic-bezier(.32,0,.67,0) forwards!important}
@keyframes station-backdrop-out{from{opacity:var(--sheet-backdrop-opacity,1)}to{opacity:0;backdrop-filter:blur(0px)}}

/* Every sheet is bottom anchored and horizontally centered in either orientation. */
body.arcade.station .station-sheet{position:fixed;inset:auto 0 0!important;margin:0 auto!important;width:min(900px,100%)!important;max-width:100%;max-height:92dvh!important;border-radius:20px 20px 0 0!important;overflow-y:auto;box-sizing:border-box}
body.arcade.station .station-sheet[open],body.arcade.station .modal.compact:not(.hidden),body.arcade.station .emote-shop-dialog:not(.hidden){animation:station-mobile-sheet .38s cubic-bezier(.22,.61,.36,1)}
body.arcade.station .modal-backdrop:has(>.compact:not(.hidden)){position:fixed;inset:0!important;display:flex;align-items:flex-end;justify-content:center;padding:0!important;overflow:hidden;z-index:100}
body.arcade.station .modal.compact{width:min(520px,100%)!important;min-height:0;max-height:92dvh!important;margin:0 auto!important;overflow-y:auto;border-radius:20px 20px 0 0!important}
body.arcade.station .emote-shop-dialog{inset:auto 0 0;transform:none;margin:0 auto;width:min(520px,100%);max-height:92dvh;border-radius:20px 20px 0 0}
body.arcade.station .sheet-dismiss{display:block}
body.arcade.station .sheet-controls :is(.close,.emote-shop-close){display:none!important}
body.arcade.station .select-sheet{width:min(520px,100%)!important;padding:16px 20px calc(20px + var(--safe-bottom));background:#1b3659;color:#f3f7ff}
.select-sheet h2{font-size:24px;margin:0 0 16px;line-height:1.2}
.select-sheet-search{width:100%;min-height:44px;margin-bottom:12px;padding:10px 12px;border:1px solid #6088af;border-radius:10px;background:#102940;color:white}
.select-sheet-options{display:grid;gap:8px}
.select-sheet-option{position:relative;min-height:46px;width:100%;padding:12px 42px 12px 14px;padding-inline:14px 42px;text-align:start;border:1px solid #50779b;border-radius:10px;background:#142e4d;color:#e6f1fb;font-size:14px}
.select-sheet-option[aria-selected=true]{background:#2b5070;border-color:#ffe075;color:#ffeb97}
.select-sheet-option[aria-selected=true]::after{content:'✓';position:absolute;inset-inline-end:14px;top:50%;transform:translateY(-50%);font-size:18px}
.select-sheet-option:disabled{opacity:.4}
body.arcade.station.mobile-ui .perk-tray{gap:8px}
body.arcade.station.mobile-ui .perk-tray button{width:48px;height:48px;min-height:48px;padding:6px;display:grid;grid-template-columns:1fr;place-items:center}
body.arcade.station.mobile-ui .perk-tray b{display:none}
body.arcade.station.mobile-ui .perk-tray button>span{grid-area:1/1;align-self:center;justify-self:center}
@media(orientation:landscape) and (max-height:560px){
 body.arcade.station :is(#paused,#confirm-exit,#mp-leave-confirm):not(.hidden){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;padding:10px 16px calc(14px + var(--safe-bottom));width:min(520px,100%)!important}
 body.arcade.station :is(#paused,#confirm-exit,#mp-leave-confirm)>:is(.sheet-controls,h2,p){grid-column:1/-1;margin:0}
 body.arcade.station :is(#paused,#confirm-exit,#mp-leave-confirm)>:is(.dialog-art,.eyebrow){display:none}
 body.arcade.station :is(#paused,#confirm-exit,#mp-leave-confirm)>.sheet-controls{min-height:32px}
 body.arcade.station :is(#paused,#confirm-exit,#mp-leave-confirm) .sheet-dismiss{height:32px}
 body.arcade.station :is(#paused,#confirm-exit,#mp-leave-confirm)>h2{font-size:24px;line-height:1.15}
 body.arcade.station :is(#paused,#confirm-exit,#mp-leave-confirm)>p{font-size:12px;line-height:1.4}
 body.arcade.station :is(#paused,#confirm-exit,#mp-leave-confirm)>:is(.primary,.secondary){width:100%;min-width:0;min-height:42px;margin:0;padding:9px 8px;font-size:13px;line-height:1.3;justify-content:center}
}
@media(prefers-reduced-motion:reduce){body.arcade.station :is(.station-sheet[open],.modal.compact,.emote-shop-dialog){animation:none!important}}
body.arcade.station.reduced-motion :is(.station-sheet[open],.modal.compact,.emote-shop-dialog){animation:none!important}

/* The handle is a header, never a cell beside the result summary. */
body.arcade.station #store{overflow-anchor:none}
body.arcade.station #gameover>.sheet-controls{grid-column:1/-1;margin:0}
body.arcade.station #share-run .name-label{text-align:start}
body.arcade.station #share-run :is(#player-name,#submit-score){display:block;width:100%;min-width:0;margin-inline:0;box-sizing:border-box}
body.arcade.station #share-run #submit-score{margin-top:12px;text-align:center}
/* Main station pages are navigated with the tabs, without a redundant exit. */
body.arcade.station[data-mode=menu] .station-modal>.close[data-close]{display:none!important}
body.arcade.station[data-mode=menu] .station-modal>.station-section-tabs{width:100%}
body.arcade.station[data-mode=menu] .station-modal>h2,body.arcade.station[data-mode=menu] .station-modal>.panel-heading h2{margin-inline-end:0}
@media(min-width:761px) and (min-height:561px){
 body.arcade.station .station-heading{grid-template-columns:subgrid;column-gap:inherit}
 body.arcade.station .station-event-banner{min-width:0}
}
/* Fit the landscape home to the viewport; keep portrait's stacked layout intact. */
@media(orientation:landscape) and (max-height:560px){
 body.arcade.station .menu{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto auto;align-content:stretch;gap:12px 16px;padding:14px 16px calc(10px + var(--safe-bottom));overflow:auto}
 body.arcade.station .station-home-left{grid-column:1;grid-row:1;min-height:0;gap:0}
 body.arcade.station .home-scene{min-height:0;height:100%;max-height:none;border-radius:14px}
 body.arcade.station .station-hero-copy{padding:16px}
 body.arcade.station .station-hero-copy .eyebrow{font-size:7px;letter-spacing:.8px}
 body.arcade.station .station-hero-copy h2{font-size:clamp(23px,3.5vw,32px);line-height:1.08;margin:10px 0;letter-spacing:-.8px}
 body.arcade.station .station-hero-copy p{display:none}
 body.arcade.station .scene-label{left:12px;bottom:10px;padding:5px;font-size:8px;max-width:calc(100% - 24px)}
 body.arcade.station .station-event-banner{grid-column:1;grid-row:2;min-width:0;min-height:82px;width:100%;padding:12px 14px;gap:12px;border-radius:14px;text-align:start}
 body.arcade.station .station-event-banner>.world-art{width:48px;height:48px}
 body.arcade.station .station-event-banner>span{gap:5px}
 body.arcade.station .station-event-banner small{font-size:8px;line-height:1.4;letter-spacing:.7px}
 body.arcade.station .station-event-banner strong{font-size:16px;line-height:1.2}
 body.arcade.station .station-event-banner span span{font-size:11px;line-height:1.3}
 body.arcade.station .station-event-banner>b{font-size:18px;margin-inline-start:auto}
 body.arcade.station .departure-card{grid-column:2;grid-row:1/3;min-height:0;height:100%;padding:12px;gap:10px;border-radius:14px}
 body.arcade.station .departure-card h2{font-size:21px;line-height:1.2;flex:none}
 body.arcade.station .station-world-selection{flex:1;min-height:0;grid-template-rows:minmax(0,1fr) auto;gap:7px;padding-bottom:8px;border-radius:10px}
 body.arcade.station .station-world-selection #world-thumbnail{height:100%;min-height:0}
 body.arcade.station .station-selected-world{font-size:16px;line-height:1.2;padding-inline-start:12px}
 body.arcade.station .station-world-arrow{font-size:20px;margin-inline-end:12px}
 body.arcade.station .station-departure-action{position:static;inset:auto;z-index:auto;flex:none;width:100%;min-width:0;margin:0;padding:0 0 4px;border:0;background:none}
 body.arcade.station .primary.play-button{min-height:46px;height:46px;font-size:24px;gap:10px}
 body.arcade.station .play-button-arrow{font-size:22px}
 body.arcade.station .home-links{grid-column:1/-1;grid-row:3;min-height:24px;gap:20px;justify-content:center;align-items:center;flex-wrap:wrap;margin:0}
 body.arcade.station .home-links .text-button{font-size:10px;min-height:24px;padding:4px 0}
 body.arcade.station .station-store-links{display:none}
}
@media(orientation:landscape) and (max-height:360px){
 body.arcade.station .menu{padding:10px 12px calc(8px + var(--safe-bottom));gap:8px 12px}
 body.arcade.station .station-hero-copy{padding:12px}
 body.arcade.station .station-hero-copy .eyebrow,body.arcade.station .scene-label{display:none}
 body.arcade.station .station-hero-copy h2{font-size:24px;margin:4px 0}
 body.arcade.station .station-event-banner{min-height:78px;padding:10px 12px;gap:8px}
 body.arcade.station .station-event-banner>.world-art{width:36px;height:40px}
 body.arcade.station .station-event-banner>b{display:none}
 body.arcade.station .station-event-banner strong{font-size:14px}
 body.arcade.station .station-event-banner span span{font-size:10px}
 body.arcade.station .departure-card{padding:10px;gap:8px}
 body.arcade.station .departure-card h2{font-size:18px}
 body.arcade.station .primary.play-button{min-height:42px;height:42px;font-size:22px}
}
@media(orientation:landscape) and (max-height:580px){
 body.arcade.station #gameover.result-modal{width:min(820px,100%)!important;max-width:820px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:10px 16px;padding:8px max(14px,var(--safe-right)) calc(12px + var(--safe-bottom)) max(14px,var(--safe-left));align-items:stretch}
 body.arcade.station #gameover>.sheet-controls{min-height:28px}
 body.arcade.station #gameover .sheet-dismiss{height:28px}
 body.arcade.station #gameover .result-celebration{min-width:0;padding:12px;justify-content:center}
 body.arcade.station #gameover h2{font-size:28px;line-height:1.15;margin:4px 0 8px}
 body.arcade.station #gameover .result-score strong{font-size:52px;line-height:1.05}
 body.arcade.station #gameover .result-score>.game-icon{display:none}
 body.arcade.station #gameover .result-meta{margin-top:12px;flex-wrap:wrap;justify-content:center;gap:6px 16px}
 body.arcade.station #gameover .result-actions{justify-content:center;gap:8px}
 body.arcade.station #gameover :is(.primary,.secondary){width:100%;min-width:0;min-height:38px;margin:0;padding:7px 10px;font-size:13px;line-height:1.25}
 body.arcade.station #gameover #death-reason{font-size:12px;line-height:1.35}
 body.arcade.station #gameover .result-extras{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 body.arcade.station #gameover .result-extras .secondary{min-height:36px;font-size:11px}
 body.arcade.station #gameover #result-save-status{font-size:10px;line-height:1.3}
}

/* Live gameplay gets a high-energy neon grade without tinting station menus. */
body.arcade.station:is([data-mode=playing],[data-mode=paused]) :is(#world,.game-world-3d){filter:saturate(1.06) contrast(1.04)}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) :is(.score-card,.rivals-card,.daily-hud,.effect){background:linear-gradient(145deg,#071643e8,#142b6ee0 58%,#471260d9);border-color:#42e8ff;box-shadow:inset 0 1px #d9ffff4d,0 0 18px #00c8ff4d,0 7px 22px #02051e80}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) .score-card strong{color:#fff45d;text-shadow:0 0 7px #fff04f,0 0 18px #ff9d00}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) .growth-track{background:#050b2c;border:1px solid #2867aa;box-shadow:inset 0 0 8px #000b}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) .growth-track i{background:linear-gradient(90deg,#00efff,#59ff87,#efff4f);box-shadow:0 0 10px #37ffd2}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) .rivals-card li.you{background:linear-gradient(90deg,#00d9ff42,#d835ff3d);box-shadow:inset 3px 0 #4ff7ff}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) .rivals-card li strong{color:#fff47a;text-shadow:0 0 8px #ffc82e}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) .daily-hud{color:#fff;border-color:#ff5bd8;background:linear-gradient(135deg,#31105fe8,#0a3a72e8);box-shadow:inset 0 1px #ffc8f94d,0 0 18px #ef2fff4d}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) .effect{border-color:#38fff2;background:linear-gradient(135deg,#0525558c,#12347e8c);box-shadow:0 0 18px #00f5e65c;text-shadow:0 1px 3px #020b24}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) .effect>div{background:#080d3180;border:1px solid #1b7d9c}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) .effect i{background:linear-gradient(90deg,#16d9ff,#54ff9a,#fff158);box-shadow:0 0 9px #35f5ff}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) #turbo{border-color:#c7ffff;background:linear-gradient(145deg,#24ecff78,#087cf078 52%,#8b22e778);box-shadow:0 5px 0 #29106d80,inset 0 2px #efffff99,0 0 22px #13dfff9c;color:#fff;text-shadow:0 1px 3px #05132c}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) #turbo.engaged{background:linear-gradient(145deg,#efff558c,#54ff728c,#04d8cd8c);box-shadow:0 2px 0 #08715c80,0 0 26px #8dff50}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) .perk-tray button{border-color:#79e9ff;background:linear-gradient(145deg,#315de078,#501ba278);box-shadow:0 4px 0 #17095180,inset 0 1px #d8ffff66,0 0 14px #2acbff45;text-shadow:0 1px 3px #05132c}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) .perk-tray #use-shield{background:linear-gradient(145deg,#18dffc78,#0758c978)}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) .perk-tray #use-magnet{background:linear-gradient(145deg,#ef4cff78,#6b20c778)}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) .perk-tray #use-speed{background:linear-gradient(145deg,#cfff3c78,#0bbf7378)}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) .perk-tray button.active{border-color:#fff86e;box-shadow:0 0 8px #fff23f,0 0 24px #32eeff,inset 0 0 12px #ffffff80}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) :is(.game-tip,.race-checkpoint){color:#fff;background:linear-gradient(90deg,#11215fed,#39207bed);border-color:#72efff;box-shadow:0 0 16px #23ccff52;text-shadow:0 1px 3px #02051f}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) :is(.mp-team,.mp-clock){background:linear-gradient(145deg,#0b245fea,#3e176bea);border-color:#61e9ff;box-shadow:0 0 15px #26bfff4d}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) .race-health{background:#080d2be8;border-color:#55edff;box-shadow:0 0 14px #19cfff52}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) .race-health i{background:linear-gradient(90deg,#00eaff,#64ff7c);box-shadow:0 0 9px #3bffda}
body.arcade.station:is([data-mode=playing],[data-mode=paused]) .bottom-hud{color:#efffff;text-shadow:0 0 7px #30d9ff,0 2px 3px #000}
@keyframes gameplay-neon-pulse{to{filter:brightness(1.18);box-shadow:0 0 10px #fff45c,0 0 28px #36f7ff,inset 0 0 12px #ffffff80}}
body.arcade.station:not(.reduced-motion):is([data-mode=playing],[data-mode=paused]) .perk-tray button.active{animation:gameplay-neon-pulse .7s ease-in-out infinite alternate}
@media(prefers-reduced-motion:reduce){body.arcade.station .perk-tray button.active{animation:none!important}}
/* Map ownership and time of day remain visible in the world picker. */
.world-time-badge,.world-price-badge{display:block;width:fit-content;margin:8px 12px 10px;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:700;background:#162e4b;color:#ffe6ac}
.world-price-badge{background:#542742;color:#ffe4ee}
.station-world-card.locked{border-color:#bb6b93}
.world-unlock-detail{grid-column:1/-1;max-width:430px;margin:auto;text-align:center;padding:16px}
.world-unlock-detail>.world-art{display:block;width:100%;height:220px;border-radius:18px;overflow:hidden}
.world-unlock-detail>button{margin:8px;padding:12px 18px}
.world-purchase-status{min-height:1em;color:#a43450}
@media(min-width:761px) and (min-height:561px){
 body.arcade.station .station-world-selection{flex:1;min-height:150px;grid-template-rows:minmax(0,1fr) auto;gap:9px;padding-bottom:12px}
 body.arcade.station .station-world-selection #world-thumbnail{height:100%;min-height:0}
}
