:root,[data-theme=light]{--bg: #f7f7f7;--surface: rgba(255, 255, 255, .9);--surface-2: rgba(255, 255, 255, .65);--surface-3: rgba(24, 24, 24, .06);--text: #181818;--text-muted: rgba(24, 24, 24, .68);--text-soft: rgba(24, 24, 24, .46);--border: rgba(24, 24, 24, .1);--border-strong: rgba(24, 24, 24, .18);--map-bg: #efefef;--line-blue: #0057A7;--line-green: #007A38;--line-purple: #7B2583;--line-yellow: #C47800;--line-red: #C8102E;--line-pink: #D4407A;--line-violet: #4B3F9E;--line-magenta: #A4178C;--line-aqua: #0080A0;--line-orange: #D85C00;--line-cyan: #007C89;--line-lime: #6A8F00;--line-brown: #8A5A32;--line-slate: #53606A;--line-airport: #D85C00;--accent: #673ab7;--danger: #ff5722;--warning: #f9a825;--success: #43a047;--scene-map-dither: rgba(24, 24, 24, .24);--scene-map-dither-opacity: .3;--picker-bg: #eeeeee;--picker-text: #888888;--picker-text-strong: #181818;--picker-text-soft: #aaaaaa;--picker-border: rgba(24, 24, 24, .1);--picker-border-strong: rgba(24, 24, 24, .16);--picker-card-open: #ffeb3b;--picker-card-open-shadow: rgba(24, 24, 24, .12);--picker-dot-border: rgba(0, 0, 0, .16);--game-shell-bg: #f7f7f7;--game-topbar-bg: #eeeeee;--game-accent: #ff5722;--game-accent-contrast: #181818;--game-grid-dot: rgba(24, 24, 24, .11);--game-stage-tint-1: rgba(200, 195, 190, .16);--game-stage-tint-2: rgba(247, 247, 247, .08);--game-text-strong: #181818;--game-text-mid: rgba(24, 24, 24, .8);--game-text-muted: rgba(24, 24, 24, .58);--game-text-soft: rgba(24, 24, 24, .66);--game-text-faint: rgba(24, 24, 24, .4);--game-divider: rgba(24, 24, 24, .14);--game-tile-bg: rgba(24, 24, 24, .08);--game-tile-border: rgba(24, 24, 24, .18);--game-tile-fg: #181818;--game-tile-strong-border: #181818;--game-panel-bg: rgba(247, 247, 247, .96);--game-footer-bg: rgba(24, 24, 24, .07);--game-footer-border: rgba(24, 24, 24, .1)}[data-theme=dark]{--bg: #181818;--surface: rgba(30, 30, 30, .92);--surface-2: rgba(255, 255, 255, .07);--surface-3: rgba(255, 255, 255, .1);--text: #f7f7f7;--text-muted: rgba(247, 247, 247, .72);--text-soft: rgba(247, 247, 247, .5);--border: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .2);--map-bg: #141414;--line-blue: #4A98F0;--line-green: #5CBF5E;--line-purple: #B068E0;--line-yellow: #FFD030;--line-red: #FF6B5A;--line-pink: #F080B0;--line-violet: #8878F8;--line-magenta: #E060C8;--line-aqua: #40D0F0;--line-orange: #FF8840;--line-cyan: #38C6D8;--line-lime: #B7D84A;--line-brown: #C68A5A;--line-slate: #9AA8B8;--line-airport: #FF8840;--accent: #ff5722;--danger: #ff5722;--warning: #ffeb3b;--success: #66bb6a;--scene-map-dither: rgba(247, 247, 247, .16);--scene-map-dither-opacity: .18;--picker-bg: #1e1e1e;--picker-text: rgba(247, 247, 247, .65);--picker-text-strong: #f7f7f7;--picker-text-soft: rgba(247, 247, 247, .48);--picker-border: rgba(255, 255, 255, .1);--picker-border-strong: rgba(255, 255, 255, .16);--picker-card-open: #ffeb3b;--picker-card-open-shadow: rgba(0, 0, 0, .28);--picker-dot-border: rgba(0, 0, 0, .28);--game-shell-bg: #181818;--game-topbar-bg: #202020;--game-accent: #ff5722;--game-accent-contrast: #181818;--game-grid-dot: rgba(255, 255, 255, .09);--game-stage-tint-1: rgba(30, 30, 30, .22);--game-stage-tint-2: rgba(24, 24, 24, .08);--game-text-strong: #f7f7f7;--game-text-mid: rgba(247, 247, 247, .8);--game-text-muted: rgba(247, 247, 247, .5);--game-text-soft: rgba(247, 247, 247, .55);--game-text-faint: rgba(247, 247, 247, .35);--game-divider: rgba(255, 255, 255, .16);--game-tile-bg: rgba(255, 255, 255, .08);--game-tile-border: rgba(255, 255, 255, .18);--game-tile-fg: #f7f7f7;--game-tile-strong-border: #000;--game-panel-bg: #202020;--game-footer-bg: rgba(0, 0, 0, .45);--game-footer-border: rgba(255, 255, 255, .1)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Geist,system-ui,sans-serif;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;overflow:hidden;overscroll-behavior:none}.upgrade-icon img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.cityselect-mode-toggle{order:4;margin-left:auto;min-width:136px;min-height:38px;padding:5px 8px 5px 14px;border:1px solid var(--game-divider);border-radius:0;background:var(--game-tile-bg);color:var(--game-text-strong);display:grid;grid-template-columns:1fr 42px;grid-template-rows:auto;column-gap:10px;align-items:center;justify-content:center;line-height:1;box-shadow:none;transition:transform .15s ease,background .15s ease,color .15s ease,box-shadow .15s ease}.cityselect-mode-toggle span:first-child{grid-column:1;font-family:var(--display-font);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.cityselect-mode-toggle span:last-child{grid-column:1;margin-top:0;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.cityselect-mode-toggle:after{content:"";grid-column:2;grid-row:1;width:38px;height:22px;border-radius:0;background:radial-gradient(circle at 11px 50%,#181818 0 7px,transparent 7.5px),#ffffffc2;border:1px solid color-mix(in srgb,currentColor 28%,transparent);transition:background .17s ease,transform .17s ease}.cityselect-mode-toggle:hover,.cityselect-mode-toggle:focus-visible{transform:translateY(-1px);border-color:var(--game-text-strong);background:color-mix(in srgb,var(--game-tile-bg) 78%,var(--game-text-strong) 8%);box-shadow:0 8px 20px #00000024}.cityselect-mode-toggle.is-sandbox{background:#ffeb3b;color:#181818;border-color:#181818}.cityselect-mode-toggle.is-sandbox:after{background:radial-gradient(circle at 27px 50%,#ffeb3b 0 7px,transparent 7.5px),#181818}.cityselect-mode-toggle.is-sandbox:hover,.cityselect-mode-toggle.is-sandbox:focus-visible{background:#181818;color:#ffeb3b}.metroline.is-express path:not([stroke=transparent]){filter:drop-shadow(0 0 4px color-mix(in srgb,currentColor 25%,transparent))}.end-toast{position:absolute;right:24px;bottom:24px;z-index:52;width:min(320px,calc(100vw - 40px));display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--game-divider);background:color-mix(in srgb,var(--game-panel-bg) 96%,transparent);color:var(--game-text-strong);box-shadow:0 18px 42px #00000052;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.end-toast-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.end-toast-copy{min-width:0}.end-toast-title{margin:0;font-family:var(--display-font);font-size:20px;line-height:1.02;font-weight:900;text-transform:uppercase;color:var(--game-text-strong)}.end-toast-title-emoji{font-size:.84em;vertical-align:.02em}.end-toast-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.end-toast-sub{color:var(--game-text-muted);font-size:12px;line-height:1.3}.end-toast-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.end-toast .gameover-stat{padding:8px 8px 7px;background:var(--game-tile-bg);border:1px solid var(--game-divider);border-radius:0}.end-toast .gameover-stat-value{font-size:15px;line-height:1.05;color:var(--game-text-strong)}.end-toast .gameover-stat-label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--game-text-muted)}.end-toast-button{display:inline-flex;align-items:center;justify-content:center;height:40px;border-radius:0!important;font-size:14px}.end-toast button,.end-toast .btn-ghost,.end-toast .btn-cta{border-radius:0!important}.metromap-play.is-locked{pointer-events:none}@media (max-width: 760px){.end-toast{right:12px;bottom:12px;width:min(320px,calc(100vw - 24px));padding:11px;gap:9px}.end-toast-title{font-size:18px}.end-toast-stats{gap:6px}.end-toast-actions{grid-template-columns:1fr}}:root{--display-font: "Rajdhani", "Outfit", "Inter", system-ui, sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}[data-theme=dark] .game-logo{--logo-tile-bg: #f7f7f7}[data-theme=light] .game-logo{--logo-tile-bg: #181818}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.game-shell{height:100%;display:grid;grid-template-rows:auto 1fr;background:var(--game-shell-bg, #181818);--accent: var(--game-accent, #ff5722)}.game-main{position:relative;overflow:hidden;background:var(--game-shell-bg, #181818);min-height:0}.game-main:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;pointer-events:none}.topbar{display:grid;grid-template-columns:1fr auto 1fr;grid-template-areas:"brand controls stats";align-items:center;gap:0;min-height:52px;padding:6px 14px 4px;background:var(--game-footer-bg, rgba(0, 0, 0, .4));border-bottom:1px solid var(--game-footer-border, rgba(255, 255, 255, .1))}.topbar-brand{grid-area:brand;display:flex;align-items:center;gap:8px;min-width:0}.topbar-brand-mark{width:34px;height:34px;display:grid;place-items:center;overflow:hidden}.topbar-brand-mark .game-logo,.entry-logo-core .game-logo{display:block;width:100%;height:100%}.topbar-city{display:flex;flex-direction:column;min-width:0;gap:2px}.topbar-city-name{font-family:var(--display-font);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--game-accent, #ff5722)}.topbar-city-mobile-name{display:none;font-family:var(--display-font);font-size:12px;font-weight:900;letter-spacing:0;line-height:1;text-transform:uppercase;color:var(--game-accent, #ff5722)}.topbar-city-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:var(--game-text-soft, rgba(255, 255, 255, .55))}.topbar-stats{grid-area:stats;display:flex;align-items:center;gap:16px;justify-content:flex-end}.topbar-stat{min-width:58px;text-align:right}.topbar-stat-label{display:block;margin-bottom:2px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--game-text-muted, rgba(255, 255, 255, .5))}.topbar-stat-value{display:inline-flex;align-items:center;gap:5px;font-family:var(--display-font);font-size:16px;font-weight:900;line-height:1;color:var(--game-text-strong, #fff)}.topbar-stat-emoji{flex:0 0 auto;font-family:"Apple Color Emoji","Segoe UI Emoji",system-ui,sans-serif;font-size:.9em;line-height:1}.topbar-stat-time{padding-left:12px;border-left:1px solid var(--game-divider, rgba(255, 255, 255, .18))}.topbar-time-row{display:flex;align-items:center;justify-content:flex-end;gap:6px}.topbar-clock{display:inline-flex;color:var(--game-accent, #ff5722)}.topbar-time-sub{display:block;margin-top:2px;font-size:12px;font-weight:800;color:var(--game-accent, #ff5722)}.topbar-controls{grid-area:controls;display:flex;align-items:center;justify-content:center;gap:6px;padding:0 12px}.topbar-icon-btn{padding:0;border:0;background:transparent;display:grid;place-items:center}.topbar-control-btn,.topbar-back-btn{border-radius:0;border:none;transition:background .14s ease,transform .14s ease}.topbar-control-btn{width:32px;height:32px}.topbar-help-link{height:32px;min-width:104px;padding:0 12px;border:1px solid var(--game-divider);border-radius:0;background:var(--game-tile-bg);color:var(--game-text-strong);display:inline-flex;align-items:center;justify-content:center;font-family:var(--display-font);font-size:11px;font-weight:900;letter-spacing:.04em;line-height:1;text-transform:uppercase;white-space:nowrap;transition:background .14s ease,color .14s ease,transform .14s ease}.topbar-help-link:hover,.topbar-help-link:focus-visible{background:color-mix(in srgb,var(--game-tile-bg) 72%,var(--game-text-strong) 18%);transform:translateY(-1px)}.topbar-control-btn.is-disabled{opacity:.34;cursor:default;pointer-events:none}.topbar-back-btn{width:34px;height:34px;flex-shrink:0}[data-theme=dark] .topbar-control-btn,[data-theme=dark] .topbar-back-btn{background:#ffffff17;color:#ffffffd1}[data-theme=dark] .topbar-control-btn:hover,[data-theme=dark] .topbar-back-btn:hover{background:#ffffff29;transform:translateY(-1px)}[data-theme=light] .topbar-control-btn,[data-theme=light] .topbar-back-btn{background:#18181814;color:#181818}[data-theme=light] .topbar-control-btn:hover,[data-theme=light] .topbar-back-btn:hover{background:#18181824;transform:translateY(-1px)}.topbar-back-btn svg,.topbar-control-btn svg{display:block}.upgrade-card,.city-level-card{transition:transform .14s ease,border-color .14s ease,background .14s ease,color .14s ease,box-shadow .14s ease,opacity .14s ease}.btn-cta,.btn-ghost,.btn-icon{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;font-family:Geist,system-ui,sans-serif;font-weight:900;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:transform .14s ease,background .14s ease,box-shadow .14s ease,opacity .14s ease}.btn-cta{border-radius:0;background:var(--accent, #ff5722);color:#181818;box-shadow:0 10px 24px color-mix(in srgb,var(--accent, #ff5722) 26%,transparent)}.btn-cta:hover{transform:translateY(-1px);box-shadow:0 14px 30px color-mix(in srgb,var(--accent, #ff5722) 34%,transparent)}.btn-ghost{border-radius:0;border:1px solid var(--border);background:transparent;color:var(--text-muted)}.btn-ghost:hover{border-color:var(--border-strong);background:color-mix(in srgb,var(--surface) 60%,transparent);transform:translateY(-1px)}.btn-icon{border-radius:0;border:1px solid var(--border);background:transparent;color:var(--text)}.btn-icon:hover{background:color-mix(in srgb,var(--surface) 60%,transparent)}.btn-lg{min-height:52px;padding:0 28px;font-size:15px}.btn-md{min-height:44px;padding:0 20px;font-size:13px}.btn-sm{min-height:34px;padding:0 14px;font-size:11px}.btn-icon.btn-md{width:44px;height:44px;padding:0}.btn-icon.btn-sm{width:34px;height:34px;padding:0}.metromap-wrap,.metromap{width:100%;height:100%}.metromap-wrap{position:relative;overflow:hidden;touch-action:none;container-type:size;container-name:metro-map}.metromap-wrap:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,var(--game-stage-tint-1, rgba(22, 23, 53, .22)),var(--game-stage-tint-2, rgba(13, 14, 36, .08)));pointer-events:none;z-index:0}.metromap-wrap:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(var(--scene-map-dither) .7px,transparent .75px);background-size:14px 14px;pointer-events:none;opacity:var(--scene-map-dither-opacity, .22);z-index:0}.metromap{display:block;touch-action:none;-webkit-user-select:none;user-select:none}.metromap-world{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;transform-origin:center center;will-change:transform}.metromap-bg,.metromap-play{position:absolute;top:0;right:0;bottom:0;left:0}.metromap-bg{pointer-events:none;z-index:0}.metromap-play{z-index:2}.map-zoom-controls{position:absolute;right:16px;bottom:74px;z-index:44;display:grid;justify-items:end;gap:6px;pointer-events:auto}.map-zoom-row{display:flex;justify-content:flex-end;gap:6px;align-items:center}.map-zoom-btn{width:36px;height:36px;border:2px solid var(--pixel-border, var(--border-strong));border-radius:0;background:var(--pixel-panel, var(--surface));color:var(--pixel-paper, var(--text));font-family:var(--display-font);font-size:20px;font-weight:900;line-height:1;display:grid;place-items:center;cursor:pointer;box-shadow:none}.map-zoom-reset{width:auto;min-width:54px;padding:0 9px;font-size:11px}.map-zoom-btn:hover:not(:disabled){border-color:var(--pixel-amber, var(--accent));color:var(--pixel-amber, var(--accent))}.map-zoom-btn:disabled{opacity:.38;cursor:default}.metroline-stroke{fill:none;stroke:var(--line-color, #888);stroke-width:1.05;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.metroline[data-color=blue]{--line-color: var(--line-blue)}.metroline[data-color=green]{--line-color: var(--line-green)}.metroline[data-color=purple]{--line-color: var(--line-purple)}.metroline[data-color=yellow]{--line-color: var(--line-yellow)}.metroline[data-color=red]{--line-color: var(--line-red)}.metroline[data-color=pink]{--line-color: var(--line-pink)}.metroline[data-color=violet]{--line-color: var(--line-violet)}.metroline[data-color=magenta]{--line-color: var(--line-magenta)}.metroline[data-color=aqua]{--line-color: var(--line-aqua)}.metroline[data-color=orange]{--line-color: var(--line-orange)}.metroline[data-color=cyan]{--line-color: var(--line-cyan)}.metroline[data-color=lime]{--line-color: var(--line-lime)}.metroline[data-color=brown]{--line-color: var(--line-brown)}.metroline[data-color=slate]{--line-color: var(--line-slate)}.metroline[data-color=airport]{--line-color: var(--line-airport)}.metroline.draft .draft-stroke{opacity:.66;stroke-width:1.35;stroke-dasharray:2.2 1.7}.line-endcap-hover{opacity:0;transition:opacity .12s ease}.line-endcap:hover .line-endcap-hover{opacity:.3}.line-endcap-hit{cursor:grab}.metroline-base,.line-endcap-stem-base{stroke:var(--track-outline)}.metroline-pixel-mark{stroke:var(--track-inner-mark)}.metroline-speed-streak{stroke:var(--track-streak)}.metroline-speed-ticks{stroke:var(--track-tick)}.metroline-core{stroke:var(--track-core)}.line-endcap-body{stroke:none}.line-endcap-dot{fill:var(--depot-dot)}.train{pointer-events:none;shape-rendering:crispEdges}.train-car-body{fill:var(--line-color);stroke:var(--train-outline);stroke-width:.28;stroke-linejoin:bevel;paint-order:stroke fill}.train-roof{fill:var(--train-panel)}.train-stripe{fill:var(--line-color)}.train-line-pixels rect{fill:var(--line-color);stroke:var(--train-outline);stroke-width:.08;paint-order:stroke fill}.train-window{fill:var(--train-window)}.train-door,.train-joint{fill:var(--train-door)}.train-headlight{fill:var(--train-light)}.train-speed-marks{opacity:.62}.metromap-play.is-boost-mode .lines-layer,.metromap-play.is-boost-mode .line-endpoints-layer,.metromap-play.is-add-line-mode .lines-layer,.metromap-play.is-add-line-mode .line-endpoints-layer{opacity:.22;transition:opacity .16s ease}.metromap-play.is-boost-mode .trains-layer,.metromap-play.is-add-line-mode .trains-layer,.metromap-play.is-express-mode .trains-layer,.metromap-play.is-fast-mode .trains-layer{opacity:.15;transition:opacity .16s ease}.metromap-play.is-add-train-mode .trains-layer,.metromap-play.is-add-coach-mode .trains-layer{opacity:.35;transition:opacity .16s ease}.metromap-play.is-add-train-mode .lines-layer,.metromap-play.is-add-train-mode .line-endpoints-layer,.metromap-play.is-add-coach-mode .lines-layer,.metromap-play.is-add-coach-mode .line-endpoints-layer{opacity:.46;transition:opacity .16s ease}.metromap-play.is-express-mode .stations-layer,.metromap-play.is-fast-mode .stations-layer{opacity:.52;transition:opacity .16s ease}.metromap-play.is-boost-mode .station,.metromap-play.is-add-line-mode .station,.metromap-play.is-add-train-mode .station,.metromap-play.is-add-coach-mode .station{transition:opacity .14s ease,transform .16s ease,filter .16s ease}.metromap-play.is-boost-mode .station.is-boost-focused,.metromap-play.is-add-line-mode .station.is-mode-focused,.metromap-play.is-add-train-mode .station.is-mode-focused,.metromap-play.is-add-coach-mode .station.is-mode-focused{filter:saturate(1.08) brightness(1.03)}.metromap-play.is-boost-mode .station.is-boost-focused .station-passengers,.metromap-play.is-boost-mode .station.is-boost-focused .station-overflow,.metromap-play.is-add-line-mode .station.is-mode-focused .station-passengers,.metromap-play.is-add-line-mode .station.is-mode-focused .station-overflow,.metromap-play.is-add-train-mode .station.is-mode-focused .station-passengers,.metromap-play.is-add-train-mode .station.is-mode-focused .station-overflow,.metromap-play.is-add-coach-mode .station.is-mode-focused .station-passengers,.metromap-play.is-add-coach-mode .station.is-mode-focused .station-overflow{opacity:1}.metromap-play.is-boost-mode .station:not(.is-boost-hovering) .station-icon-image,.metromap-play.is-add-line-mode .station:not(.is-mode-hovering) .station-icon-image,.metromap-play.is-add-train-mode .station:not(.is-mode-hovering) .station-icon-image,.metromap-play.is-add-coach-mode .station:not(.is-mode-hovering) .station-icon-image,.metromap-play.is-express-mode .station:not(.is-mode-hovering) .station-icon-image,.metromap-play.is-fast-mode .station:not(.is-mode-hovering) .station-icon-image{opacity:.92}.metromap-play.is-boost-mode .station.is-boost-hovering{filter:drop-shadow(0 0 7px rgba(94,211,106,.34))}.metromap-play.is-boost-mode .station.is-boost-hovering .station-icon-image{filter:saturate(1.12) brightness(1.05)}.metromap-play.is-boost-mode .station.is-boost-hovering .station-passengers{opacity:1;filter:saturate(1.08)}.metromap-play.is-add-line-mode .station.is-mode-hovering,.metromap-play.is-add-train-mode .station.is-mode-hovering,.metromap-play.is-add-coach-mode .station.is-mode-hovering,.metromap-play.is-express-mode .station.is-mode-hovering,.metromap-play.is-fast-mode .station.is-mode-hovering{filter:drop-shadow(0 0 7px rgba(255,184,92,.28))}.metromap-play.is-add-line-mode .station.is-mode-hovering .station-icon-image,.metromap-play.is-add-train-mode .station.is-mode-hovering .station-icon-image,.metromap-play.is-add-coach-mode .station.is-mode-hovering .station-icon-image,.metromap-play.is-express-mode .station.is-mode-hovering .station-icon-image,.metromap-play.is-fast-mode .station.is-mode-hovering .station-icon-image{filter:saturate(1.08) brightness(1.05)}.metroline.is-hover-target path:not([stroke=transparent]){filter:drop-shadow(0 0 5px color-mix(in srgb,var(--line-color) 44%,transparent))}.metromap-play.is-add-train-mode .metroline.is-hover-target path:not([stroke=transparent]),.metromap-play.is-add-coach-mode .metroline.is-hover-target path:not([stroke=transparent]){opacity:1}.metromap-play.is-express-mode .metroline.is-hover-target path:not([stroke=transparent]),.metromap-play.is-fast-mode .metroline.is-hover-target path:not([stroke=transparent]){opacity:1}.station{cursor:pointer}.station-hit{fill:transparent}.station-halo{fill:none;stroke:var(--game-accent, #ff5722);stroke-width:.75;opacity:.95;animation:pulse-ring 1.1s ease-in-out infinite}.station-crowdring{fill:none;stroke:var(--warning);stroke-width:.48;pointer-events:none}.station-new-ripple{fill:none;stroke:color-mix(in srgb,var(--game-text-strong) 42%,transparent);stroke-width:.34;pointer-events:none}[data-theme=dark] .station-new-ripple{stroke:color-mix(in srgb,var(--pixel-paper) 48%,transparent)}.station-alert-pulse{fill:none;stroke:var(--danger);stroke-width:.42;opacity:.72;pointer-events:none}.station-critical-pulse{fill:none;stroke:#ff3b30;stroke-width:.78;opacity:.42;pointer-events:none}.station.is-crowd-warning .station-icon-image{filter:drop-shadow(0 0 2px color-mix(in srgb,var(--warning) 66%,transparent))}.station.is-crowd-critical .station-icon-image{filter:drop-shadow(0 0 2px color-mix(in srgb,var(--danger) 72%,transparent))}.station-countdown-text{fill:var(--danger);font-family:var(--display-font);font-size:2.55px;font-weight:900;letter-spacing:0;pointer-events:none;text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:#fff;stroke-width:.52}.station-disconnected-badge{pointer-events:none;shape-rendering:crispEdges}.station-disconnected-bg{fill:var(--pixel-amber, #ffb000);stroke:var(--pixel-ink, #06101d);stroke-width:.18}.station-disconnected-mark{fill:var(--pixel-ink, #06101d)}[data-theme=dark] .station-disconnected-bg{fill:var(--pixel-amber, #ffb000);stroke:var(--pixel-paper, #f6f1dc)}.station.is-disconnected .station-icon-image{filter:drop-shadow(0 0 1.8px color-mix(in srgb,var(--pixel-amber, #ffb000) 58%,transparent))}@keyframes pulse-ring{0%,to{opacity:.9;transform:scale(1)}50%{opacity:.35;transform:scale(1.06)}}.tooltip-overlay{pointer-events:none}.tooltip-bg{fill:var(--game-text-strong)}.tooltip-accent{fill:var(--game-accent)}.station-label{fill:var(--game-shell-bg);font-family:var(--display-font);font-size:1.55px;font-weight:700;text-anchor:middle;letter-spacing:.04em}.station-label-sub{fill:#4fe66f;font-size:1.12px;font-weight:900;letter-spacing:.02em}.map-dot{fill:var(--game-grid-dot)}.map-texture-layer{pointer-events:none}.station-passengers .passenger{fill:#16120d;stroke:#fff9e9ad;stroke-width:.08;shape-rendering:crispEdges}.passenger-circle,.passenger-hexagon{fill:#111}.passenger-square{fill:#0086c8}.passenger-triangle{fill:#009b52}.passenger-diamond{fill:#ffb000}.passenger-star{fill:#8e35d1}.station-overflow{fill:var(--text-muted);font-size:1.2px}.train{pointer-events:none}.map-hint{position:absolute;left:50%;padding:10px 16px;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--surface) 92%,transparent);color:var(--text);font-size:13px;text-align:center;pointer-events:none;box-shadow:0 12px 40px #00000029;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:hint-away 5s ease forwards}.map-hint-bottom{bottom:72px;transform:translate(-50%)}@keyframes hint-away{0%,70%{opacity:1}to{opacity:0}}.line-menu{position:fixed;width:min(92vw,460px);max-width:min(92vw,460px);max-height:min(72dvh,430px);padding:12px 14px;border:1px solid var(--border);border-radius:0;background:var(--surface);box-shadow:0 16px 38px #00000029;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:64;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.line-menu[data-color=blue]{--line-color: var(--line-blue)}.line-menu[data-color=green]{--line-color: var(--line-green)}.line-menu[data-color=purple]{--line-color: var(--line-purple)}.line-menu[data-color=yellow]{--line-color: var(--line-yellow)}.line-menu[data-color=red]{--line-color: var(--line-red)}.line-menu[data-color=pink]{--line-color: var(--line-pink)}.line-menu[data-color=violet]{--line-color: var(--line-violet)}.line-menu[data-color=magenta]{--line-color: var(--line-magenta)}.line-menu[data-color=aqua]{--line-color: var(--line-aqua)}.line-menu[data-color=orange]{--line-color: var(--line-orange)}.line-menu[data-color=cyan]{--line-color: var(--line-cyan)}.line-menu[data-color=lime]{--line-color: var(--line-lime)}.line-menu[data-color=brown]{--line-color: var(--line-brown)}.line-menu[data-color=slate]{--line-color: var(--line-slate)}.line-menu[data-color=airport]{--line-color: var(--line-airport)}.line-menu-head{display:flex;align-items:center;gap:10px;margin-bottom:7px}.line-menu-head-main{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.line-menu-swatch{width:10px;height:10px;border-radius:50%;background:var(--line-color);flex-shrink:0}.line-menu-title{font-family:Outfit,Inter,system-ui,sans-serif;font-size:18px;font-weight:700;color:var(--text);line-height:1.08}.line-menu-close{width:30px;height:30px;border-radius:50%;border:none;background:var(--surface-3);color:var(--text-muted);display:grid;place-items:center;flex-shrink:0;cursor:pointer;transition:background .15s}.line-menu-close:hover{background:var(--border-strong)}.line-menu-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.line-menu-chip{display:flex;align-items:center;gap:4px;padding:3px 8px;border:1px solid var(--border);border-radius:999px;font-size:12px;color:var(--text-muted)}.line-menu-divider{height:1px;background:var(--border);margin:0 -14px}.line-menu-actions{display:flex;flex-direction:column}.upgrade-line-menu{min-width:248px}.line-menu-empty{padding:10px 2px 4px;color:var(--text-muted);font-size:13px;line-height:1.25}.line-menu-action{display:flex;align-items:center;gap:10px;width:100%;padding:8px 0;border:none;border-bottom:1px solid var(--border);background:none;text-align:left;cursor:pointer;transition:opacity .15s}.line-menu-action:last-child{border-bottom:none}.line-menu-action:disabled{cursor:not-allowed;opacity:.5}.line-menu-action-icon{width:36px;height:36px;border-radius:0;display:grid;place-items:center;flex-shrink:0}.line-menu-action-icon.train{background:var(--line-color);color:#fff}.line-menu-action-icon.coach{background:var(--surface-3);color:var(--text-muted)}.line-menu-action-icon.delete{background:#ff57221f;color:var(--danger)}.line-menu-action-copy{flex:1;min-width:0}.line-menu-action-title{font-size:15px;font-weight:650;color:var(--text)}.line-menu-action.danger .line-menu-action-title{color:var(--danger)}.line-menu-action-sub{font-size:12px;color:var(--text-muted);margin-top:1px}.line-menu-action-trailing{display:grid;place-items:center;color:var(--text-muted);flex-shrink:0}.line-menu-action:not(:disabled):not(.danger) .line-menu-action-trailing{color:var(--line-color)}.line-menu-action.danger:not(:disabled) .line-menu-action-trailing{color:var(--danger)}.line-menu-trains{margin-top:8px}.line-menu-trains-label{margin-bottom:6px;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-soft)}.line-menu-train-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}.line-menu-train-info{display:flex;align-items:center;gap:8px;flex-shrink:0;min-width:150px}.line-menu-train-accent{width:5px;height:28px;border-radius:2px;background:var(--line-color)}.line-menu-train-name{font-size:14px;font-weight:650}.line-menu-train-current{font-size:12px;color:var(--text-muted);margin-top:1px}.line-menu-train-targets{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-start;max-width:100%}.line-menu-target-swatch{display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:none;cursor:pointer;padding:3px 5px;border-radius:0;transition:background .15s}.line-menu-target-swatch:hover{background:var(--surface-3)}.line-menu-target-swatch:disabled{opacity:.45;cursor:not-allowed}.line-menu-target-swatch:disabled:hover{background:none}.express-targets .line-menu-target-dot{border-radius:3px;transform:skew(-14deg)}.line-menu-target-swatch[data-color=blue]{--swatch-color: var(--line-blue)}.line-menu-target-swatch[data-color=green]{--swatch-color: var(--line-green)}.line-menu-target-swatch[data-color=purple]{--swatch-color: var(--line-purple)}.line-menu-target-swatch[data-color=yellow]{--swatch-color: var(--line-yellow)}.line-menu-target-swatch[data-color=red]{--swatch-color: var(--line-red)}.line-menu-target-swatch[data-color=pink]{--swatch-color: var(--line-pink)}.line-menu-target-swatch[data-color=violet]{--swatch-color: var(--line-violet)}.line-menu-target-swatch[data-color=magenta]{--swatch-color: var(--line-magenta)}.line-menu-target-swatch[data-color=aqua]{--swatch-color: var(--line-aqua)}.line-menu-target-swatch[data-color=orange]{--swatch-color: var(--line-orange)}.line-menu-target-swatch[data-color=cyan]{--swatch-color: var(--line-cyan)}.line-menu-target-swatch[data-color=lime]{--swatch-color: var(--line-lime)}.line-menu-target-swatch[data-color=brown]{--swatch-color: var(--line-brown)}.line-menu-target-swatch[data-color=slate]{--swatch-color: var(--line-slate)}.line-menu-target-swatch[data-color=airport]{--swatch-color: var(--line-airport)}.line-menu-target-dot{width:14px;height:14px;border-radius:50%;background:var(--swatch-color, #888)}.line-menu-target-label{font-size:12px;color:var(--text-muted);white-space:nowrap}.upgrade-card:hover,.city-level-card:hover:not([aria-disabled=true]){transform:translateY(-2px);border-color:var(--border-strong)}.city-level-card[aria-disabled=true]{opacity:.55;cursor:not-allowed}.side-panel{position:absolute;top:16px;right:16px;bottom:16px;width:90px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:10px;z-index:20;pointer-events:none}.side-panel-tools,.play-left-rail,.play-right-rail,.routing-guide,.play-footer{position:absolute;z-index:40}.play-left-rail{left:24px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:16px}.play-rail-btn{width:48px;height:48px;border-radius:0;border:2px solid rgba(255,255,255,.2);background:#ffffff14;color:#fff;display:grid;place-items:center;box-shadow:inset 0 0 0 .5px #ffffff1f}.play-rail-btn:hover{background:#ffffff29;transform:translateY(-1px)}.play-rail-speed{font-size:16px;font-weight:800;letter-spacing:-.03em}.play-rail-separator{width:48px;height:1px;background:#ffffff1a}.play-right-rail{right:24px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:14px}.play-action-toast{position:absolute;right:112px;top:50%;transform:translateY(-50%);z-index:41;max-width:280px;padding:12px 14px;border:1px solid var(--border);border-radius:0;background:color-mix(in srgb,var(--surface) 94%,transparent);color:var(--text);box-shadow:0 14px 34px #00000029;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);pointer-events:none;animation:hint-away 5s ease forwards}.ftux-tip{position:absolute;z-index:44;--ftux-width: min(300px, calc(100vw - 48px) );--ftux-pointer-top: 50%;width:var(--ftux-width);padding:16px;border:2px solid var(--pixel-border);background:color-mix(in srgb,var(--pixel-board) 94%,transparent);color:var(--pixel-paper);box-shadow:0 18px 42px #0000002e}.ftux-tip--station{left:var(--ftux-left, 50vw);top:var(--ftux-top, 50vh);transform:none}.ftux-tip--lines{left:232px;top:118px;--ftux-pointer-top: 30px}.ftux-tip:before{content:"";position:absolute;width:16px;height:16px;background:color-mix(in srgb,var(--pixel-board) 94%,transparent);transform:rotate(45deg)}.ftux-tip--pointer-left:before{left:-10px;right:auto;top:calc(var(--ftux-pointer-top) - 8px);border-left:2px solid var(--pixel-border);border-bottom:2px solid var(--pixel-border)}.ftux-tip--pointer-right:before{left:auto;right:-10px;top:calc(var(--ftux-pointer-top) - 8px);border-right:2px solid var(--pixel-border);border-top:2px solid var(--pixel-border)}.ftux-tip-kicker{margin-bottom:6px;font-family:var(--display-font);font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--pixel-amber)}.ftux-tip h2{margin:0 0 8px;font-family:var(--display-font);font-size:20px;line-height:1;letter-spacing:0;color:var(--pixel-paper)}.ftux-tip p{margin:0;color:var(--pixel-muted)}.ftux-tip-actions{display:flex;gap:8px;margin-top:14px}.ftux-tip-primary,.ftux-tip-secondary{min-height:34px;padding:0 12px;border:1px solid var(--pixel-divider);border-radius:0;font-family:var(--display-font);font-size:11px;font-weight:900;letter-spacing:0;text-transform:uppercase}.ftux-tip-primary{background:var(--pixel-amber);color:var(--pixel-ink)}.ftux-tip-secondary{background:var(--pixel-control-bg);color:var(--pixel-paper)}.undo-toast{position:absolute;bottom:80px;left:50%;transform:translate(-50%);z-index:50;display:flex;align-items:center;gap:10px;padding:10px 12px 10px 14px;border-radius:0;border:1px solid rgba(255,255,255,.12);background:color-mix(in srgb,var(--game-panel-bg) 96%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 8px 24px #00000047;font-size:13px;color:var(--game-text-strong);overflow:hidden;pointer-events:all}.undo-toast-bar{position:absolute;inset:0 0 auto 0;height:2px;background:var(--game-accent);transform-origin:left}.undo-toast-line-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.undo-toast-text{opacity:.72}.undo-toast-btn{margin-left:4px;padding:4px 10px;border:1px solid rgba(255,255,255,.2);border-radius:0;background:#ffffff14;color:var(--game-text-strong);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.undo-toast-btn:hover{background:#ffffff24}.play-right-btn{position:relative;width:72px;height:72px;border-radius:0;border:1px solid rgba(255,255,255,.08);background:#08080aeb;color:#fff;display:grid;place-items:center;box-shadow:0 10px 24px #0000002e}.play-right-btn:hover:not(:disabled){transform:translateY(-1px);border-color:#ffffff29}.play-right-btn:disabled{opacity:.7}.play-right-btn.is-active{border-color:#ffffff38;background:#0e0e12f5}.play-right-count{position:static;min-width:26px;height:22px;padding:0 6px;border-radius:999px;color:#fff;display:inline-grid;place-items:center;font-size:12px;font-weight:900;letter-spacing:.02em;line-height:1}.play-right-btn.has-stock .play-right-count{background:#1f9d55}.play-right-btn.no-stock .play-right-count{background:#c53030}.play-right-tile{align-content:center;justify-items:center;gap:8px;padding-top:0}.play-right-tile-label{font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.routing-guide{left:24px;bottom:54px;width:204px;padding:12px 14px;border-radius:0;border:2px solid var(--game-accent, #ff5722);background:var(--game-panel-bg, #202020);box-shadow:0 18px 32px #00000047}.routing-guide h4{margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid color-mix(in srgb,var(--game-accent, #ff5722) 24%,transparent);font-size:12px;font-weight:900;letter-spacing:-.02em;text-transform:uppercase;color:var(--game-accent, #ff5722)}.routing-guide-item{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:12px;font-weight:800;color:var(--game-text-mid, rgba(255, 255, 255, .8))}.routing-guide-line{width:16px;height:5px;border-radius:999px}.route-purple{background:#a855f7}.route-cyan{background:#06b6d4}.routing-guide p{margin:10px 0 0;font-size:12px;line-height:1.25;color:var(--game-text-faint, rgba(255, 255, 255, .32))}.play-footer{position:absolute;left:0;right:0;bottom:0;min-height:40px;padding:0 24px;background:var(--game-footer-bg, rgba(0, 0, 0, .4));border-top:2px solid var(--game-footer-border, rgba(255, 255, 255, .1));display:flex;align-items:center;justify-content:center}.play-footer-badge{padding:3px 10px 4px;background:var(--game-accent, #ff5722);color:var(--game-accent-contrast, #181818);font-size:12px;font-style:normal;font-weight:900;letter-spacing:0;text-transform:uppercase}.play-footer-credit{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.05em;color:var(--game-text-muted, rgba(255, 255, 255, .52));white-space:nowrap}.play-footer-osm-short{display:none}.play-footer-credit a{color:inherit;text-decoration:none;border-bottom:1px solid color-mix(in srgb,currentColor 26%,transparent)}.play-footer-credit a:hover{color:var(--game-text-strong, #fff);border-bottom-color:currentColor}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 60%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:50}.pause-backdrop{place-items:start center;padding:max(60px,env(safe-area-inset-top,0px)) 24px 24px;background:color-mix(in srgb,var(--bg) 10%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.pause-toast{position:static;width:min(360px,calc(100vw - 40px))}.modal{position:relative;overflow:hidden;width:min(92vw,680px);padding:28px;border:1px solid var(--border);border-radius:0;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:0 26px 60px #0003}.modal:before{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border-radius:inherit;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 20%,transparent) 1px,transparent 1.3px),repeating-linear-gradient(135deg,transparent 0 16px,color-mix(in srgb,var(--text) 7%,transparent) 16px 17px,transparent 17px 32px);background-size:18px 18px,100% 100%;opacity:.28;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,#000,transparent 48%);mask-image:linear-gradient(180deg,#000,transparent 48%)}.modal>*{position:relative;z-index:1}.modal-eyebrow{margin-bottom:10px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.modal-title{margin:0 0 8px;font-family:var(--display-font);font-size:clamp(28px,4vw,38px);font-weight:700;letter-spacing:.01em}.modal-sub{margin:0;color:var(--text-muted);max-width:48ch}.help-backdrop{z-index:80}.help-modal{width:min(92vw,760px);padding:30px}.help-modal-close{position:absolute;z-index:2;top:14px;right:14px;width:34px;height:34px;border:1px solid var(--border);border-radius:0;background:var(--surface-2);color:var(--text);display:grid;place-items:center}.help-modal-close:hover,.help-modal-close:focus-visible{background:var(--surface-3)}.help-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px;margin-top:22px}.help-card{display:grid;grid-template-columns:116px minmax(0,1fr);gap:14px;min-height:104px;padding:0;border:0;background:transparent}.help-card-art{align-self:center;height:104px;border:0;background-image:url(/assets/tutorial/how-to-play-sprite.png);background-repeat:no-repeat;background-size:200% 200%;image-rendering:pixelated}.help-card-art--goal{background-position:0 0}.help-card-art--draw{background-position:100% 0}.help-card-art--edit{background-position:0 100%}.help-card-art--upgrade{background-position:100% 100%}.help-card-copy{align-self:center;min-width:0}.help-card-label{display:inline-flex;min-height:22px;margin-bottom:8px;padding:3px 7px;align-items:center;border:1px solid color-mix(in srgb,var(--accent) 42%,transparent);background:transparent;font-family:var(--display-font);font-size:10px;font-weight:900;letter-spacing:.08em;line-height:1;text-transform:uppercase;color:var(--accent)}.help-card h3{margin:0 0 6px;font-family:var(--display-font);font-size:17px;font-weight:800;letter-spacing:0;color:var(--text)}.help-card p{margin:0;font-size:13px;line-height:1.32;color:var(--text-muted)}.help-modal-note{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.help-strategy-chip{min-height:28px;padding:5px 9px;border:1px solid var(--border);background:var(--surface-3);display:inline-flex;align-items:center;font-family:var(--display-font);font-size:11px;font-weight:800;letter-spacing:0;color:var(--text)}.upgrade-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:22px}.upgrade-card{position:relative;overflow:hidden;text-align:left;border:1px solid var(--border);border-radius:0;padding:16px;background:color-mix(in srgb,var(--surface) 88%,transparent);color:inherit;display:flex;flex-direction:column;align-items:flex-start}.upgrade-card:after{content:"";position:absolute;inset:auto 14px 12px;height:8px;background:radial-gradient(circle,currentColor 1px,transparent 1.5px) 0 50% / 12px 8px repeat-x;color:color-mix(in srgb,var(--accent) 36%,transparent);opacity:.32;pointer-events:none}.upgrade-icon{width:54px;height:54px;margin-bottom:18px;display:grid;place-items:center;color:var(--accent)}.upgrade-icon svg{display:block;width:100%;height:100%}.upgrade-icon img{transform:scale(1.08)}.upgrade-card[data-upgrade=addTrain] .upgrade-icon{color:var(--line-blue)}.upgrade-card[data-upgrade=addLine] .upgrade-icon{color:var(--line-purple)}.upgrade-card[data-upgrade=addCoach] .upgrade-icon{color:var(--line-yellow)}.upgrade-card[data-upgrade=boostCapacity] .upgrade-icon{color:var(--line-green)}.upgrade-card[data-upgrade=boostCapacity] .upgrade-icon svg{width:42px;height:42px}.upgrade-card[data-upgrade=fasterTrains] .upgrade-icon{color:var(--game-accent, #ff5722)}.upgrade-card[data-upgrade=addInterchange] .upgrade-icon{color:var(--line-aqua)}.upgrade-title{margin-bottom:8px;font-family:var(--display-font);min-height:2.5em;font-size:21px;font-weight:700;line-height:1.25;display:flex;align-items:flex-start}.upgrade-desc{min-height:3.1em;color:var(--text-muted);line-height:1.4}.gameover-stat{padding:16px;border-radius:0;border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 88%,transparent)}.gameover-stat-value{font-family:var(--display-font);font-size:24px;font-weight:600}.gameover-stat-label{margin-top:6px;color:var(--text-muted)}.entry-shell{position:relative;height:100%;overflow:hidden}.entry-select{height:100%;min-height:100%;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-bottom:56px}.entry-ripple-field{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;--pulse-x: 50%;--pulse-y: calc(50% - 176px) }.entry-ripple-field:before,.entry-ripple-field:after{content:"";position:absolute;top:-12%;right:-12%;bottom:-12%;left:-12%;background-image:radial-gradient(currentColor 1.15px,transparent 1.15px);background-size:34px 34px;opacity:0;mix-blend-mode:normal;will-change:transform,opacity,mask-size;-webkit-mask-image:repeating-radial-gradient(circle at var(--pulse-x) var(--pulse-y),transparent 0 30px,rgba(0,0,0,.92) 30px 36px,transparent 36px 82px);mask-image:repeating-radial-gradient(circle at var(--pulse-x) var(--pulse-y),transparent 0 30px,rgba(0,0,0,.92) 30px 36px,transparent 36px 82px)}.entry-ripple-field:before{color:#ff88404d;animation:entry-dot-ripple 3.1s cubic-bezier(.22,.62,.2,1) infinite}.entry-ripple-field:after{color:#ffd68c2e;animation:entry-dot-ripple 3.1s cubic-bezier(.22,.62,.2,1) infinite .7s}.entry-credit{position:absolute;left:50%;bottom:22px;z-index:2;transform:translate(-50%);display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.04em;color:color-mix(in srgb,currentColor 72%,transparent);white-space:nowrap}.entry-credit a{color:inherit;text-decoration:none;border-bottom:1px solid color-mix(in srgb,currentColor 24%,transparent)}.entry-credit a:hover{color:currentColor;border-bottom-color:currentColor}.entry-shell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(currentColor 1px,transparent 1px);background-size:34px 34px;opacity:.16;pointer-events:none;animation:entry-drift-a 24s linear infinite}.entry-shell:after{content:"";position:absolute;top:-12%;right:-12%;bottom:-12%;left:-12%;background-image:radial-gradient(currentColor 1px,transparent 1px);background-size:46px 46px;opacity:.06;pointer-events:none;animation:entry-drift-b 32s linear infinite}.entry-home,.entry-select{background:var(--bg, #f7f7f7);color:var(--text, #181818)}[data-theme=dark] .entry-home,[data-theme=dark] .entry-select{background:var(--bg, #181818);color:var(--text, #f7f7f7)}[data-theme=dark] .entry-shell:before{opacity:.12}[data-theme=dark] .entry-shell:after{opacity:.08}[data-theme=dark] .entry-ripple-field:before{color:#ff955247}[data-theme=dark] .entry-ripple-field:after{color:#ffcd7e29}.entry-toolbar{position:absolute;top:24px;right:24px;z-index:3;display:flex;gap:10px}.entry-circle-btn{width:54px;height:54px;border-radius:0;border:1px solid currentColor;background:transparent;color:inherit;display:grid;place-items:center;opacity:.9}.entry-circle-btn:hover{background:color-mix(in srgb,currentColor 6%,transparent)}.entry-toolbar-icon{font-size:24px;line-height:1}.entry-toolbar-svg{width:22px;height:22px}.entry-hero{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px 88px;text-align:center}.entry-logo-wrap{position:relative;width:124px;height:124px;margin-bottom:22px;display:grid;place-items:center}.entry-logo-ring{position:absolute;top:18px;right:18px;bottom:18px;left:18px;border-radius:999px;border:8px solid rgba(255,87,34,.28);box-shadow:0 0 0 16px #ff572212;animation:entry-pulse 2.05s cubic-bezier(.18,.7,.18,1) infinite}.entry-logo-core{position:absolute;width:84px;height:84px;border-radius:0;background:#181818;display:grid;place-items:center;box-shadow:0 14px 28px #00000038}.entry-title{display:flex;align-items:baseline;gap:8px;margin:0;font-family:var(--display-font);font-size:clamp(34px,4.6vw,56px);line-height:.96;letter-spacing:-.05em;text-transform:uppercase;font-weight:900}.entry-title-accent{color:#ff5722}.entry-tagline{margin:18px 0 0;font-size:13px;letter-spacing:.2em;text-transform:uppercase;opacity:.45}.entry-cta{margin-top:50px;min-width:284px;min-height:60px;padding:0 28px;border:0;border-radius:0;background:#ff5722;color:#181818;display:inline-flex;align-items:center;justify-content:center;gap:16px;font-size:16px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;box-shadow:0 18px 34px #ff57223d}.entry-cta:hover{transform:translateY(-1px) scale(1.01)}.entry-score{margin-top:14px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;opacity:.45}@keyframes entry-pulse{0%{transform:scale(.88);opacity:.42}52%{transform:scale(2.18);opacity:.14}to{transform:scale(2.7);opacity:0}}@keyframes entry-dot-ripple{0%{opacity:0;transform:scale(.97);-webkit-mask-size:88% 88%;mask-size:88% 88%}16%{opacity:.48}58%{opacity:.2}to{opacity:0;transform:scale(1.05);-webkit-mask-size:126% 126%;mask-size:126% 126%}}@keyframes entry-drift-a{0%{transform:translateZ(0)}50%{transform:translate3d(10px,-8px,0)}to{transform:translateZ(0)}}@keyframes entry-drift-b{0%{transform:translateZ(0)}50%{transform:translate3d(-14px,12px,0)}to{transform:translateZ(0)}}.cityselect-topbar{position:relative;z-index:2}.cityselect-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;max-width:1220px;margin:0 auto;padding:32px 48px 48px}.city-level-card{position:relative;aspect-ratio:1;border:1px solid color-mix(in srgb,currentColor 10%,transparent);background:transparent;color:inherit;text-align:left;padding:20px 26px 24px;display:flex;flex-direction:column;transition:transform .18s ease,border-color .18s ease,background .18s ease,opacity .18s ease}.city-level-card:hover:not([aria-disabled=true]){transform:translateY(-4px)}.city-level-open{background:#ffeb3b;color:#181818;border:2px solid transparent;box-shadow:0 18px 28px #0000001f}.city-level-open:hover:not([aria-disabled=true]){border-color:#181818;background:#ffe600}.city-level-locked{background:#ffeb3b;color:#181818;border:2px solid transparent;box-shadow:none;opacity:.46;filter:grayscale(1)}.city-level-info{display:flex;flex-direction:column;height:100%}.city-level-zone{width:fit-content;padding:4px 9px 5px;border:1px solid currentColor;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.city-level-name{margin-top:18px;font-family:var(--display-font);font-size:36px;line-height:.95;font-weight:700;letter-spacing:-.03em;text-transform:uppercase}.city-level-local{margin-top:6px;font-size:20px;font-weight:600;line-height:1;opacity:.82}.city-level-lock-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none}.city-level-lock{position:relative;width:42px;height:50px}.city-level-lock-shackle{position:absolute;left:13px;top:0;width:16px;height:20px;border:3px solid currentColor;border-bottom:0;border-radius:24px 24px 0 0}.city-level-lock-body{position:absolute;left:8px;top:16px;width:26px;height:22px;border:3px solid currentColor}.city-level-footer{margin-top:auto}.city-level-footer-stack{display:grid;gap:6px}.city-level-status{font-family:var(--display-font);font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.city-unlock-req{font-size:12px;opacity:.7}@media (max-width: 1100px){.topbar{padding:8px 12px 6px}.topbar-stats{justify-content:space-between}.cityselect-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:24px 24px 40px;max-width:none}.city-level-card{aspect-ratio:auto;min-height:200px}.city-level-name{font-size:28px;margin-top:12px}.city-level-local{font-size:16px}.side-panel{width:82px;right:12px;top:12px;bottom:12px}}@media (max-width: 780px){.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:0;padding:calc(16px + env(safe-area-inset-top,0px)) 10px 12px;min-height:auto}.topbar-brand{flex:0 0 auto;order:1;gap:6px}.topbar-brand-mark{width:28px;height:28px}.topbar-city-name{font-size:12px}.topbar-city-meta{display:none}.topbar-stats{order:2;flex:1 1 0;min-width:0;gap:0;justify-content:flex-end;flex-wrap:nowrap;overflow:visible;padding:0;margin:0;border-top:none;width:auto}.topbar-stat{flex:0 0 auto;min-width:0;display:flex;flex-direction:row;align-items:baseline;gap:4px;padding:0 8px}.topbar-stat+.topbar-stat{border-left:none;padding-left:10px}.topbar-stat-label{display:block;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--game-text-muted, rgba(255, 255, 255, .5));margin-bottom:0}.topbar-stat-value{font-size:15px}.topbar-stat-time{display:none}.topbar-time-row{justify-content:center}.topbar-time-sub{font-size:12px;text-align:center}.topbar-controls{order:3;flex:0 0 100%;gap:6px;margin:8px 0 0;justify-content:stretch}.topbar-controls .topbar-icon-btn{flex:1;height:44px;width:auto;border-radius:0}.cityselect-topbar{flex-wrap:nowrap;padding:calc(14px + env(safe-area-inset-top,0px)) 12px 14px;align-items:center}.cityselect-topbar .topbar-brand{flex:1 1 0;min-width:0}.cityselect-topbar .topbar-controls{order:2;flex:0 0 auto;margin:0;padding:0}.cityselect-topbar .topbar-controls .topbar-icon-btn{flex:0 0 auto;width:36px;height:36px}.cityselect-topbar .cityselect-mode-toggle{order:3;flex:0 0 auto;min-width:0}.play-right-rail{left:0;right:0;bottom:52px;top:auto;transform:none;flex-direction:row;gap:0;height:68px;background:#08080af5;border-top:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.play-right-btn{flex:1;width:auto;height:100%;border-radius:0;border:none}.play-right-btn+.play-right-btn{border-left:none;outline:1px solid rgba(255,255,255,.07);outline-offset:-1px}.play-right-tile-label{font-size:12px}.play-right-count{width:24px;height:24px;font-size:12px}.play-action-toast{left:50%;right:auto;top:auto;bottom:136px;transform:translate(-50%);max-width:calc(100vw - 28px);text-align:center;font-size:12px}.play-footer{bottom:0;min-height:52px;height:52px;padding:5px 14px calc(5px + env(safe-area-inset-bottom,0px));align-items:center;justify-content:center}.play-footer-credit{position:static;transform:none;width:min(100%,420px);margin-top:0;display:flex;flex-wrap:wrap;justify-content:center;font-size:12px;line-height:1.15;row-gap:2px;white-space:normal;text-align:center}.play-footer-credit>*{flex:0 0 auto}.line-menu{left:50%!important;right:auto!important;top:auto!important;bottom:136px;transform:translate(-50%);width:min(92vw,380px);max-width:min(92vw,380px);max-height:calc(100dvh - 196px);padding:10px 12px}.map-hint-bottom{bottom:136px}.upgrade-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.entry-credit,.play-footer-credit{font-size:12px;gap:6px}}@media (max-width: 560px){.topbar{padding:calc(16px + env(safe-area-inset-top,0px)) 8px 12px}.topbar-city{max-width:80px}.topbar-stat{padding:0 4px}.topbar-stat-value{font-size:13px}.topbar-control-btn{width:28px;height:28px}.play-right-rail{bottom:48px;height:62px}.play-right-tile-label{font-size:12px;letter-spacing:.06em}.play-action-toast{bottom:126px;font-size:12px}.play-footer{height:48px;min-height:48px;padding-inline:10px}.play-footer-credit{max-width:320px;gap:5px;font-size:11px}.play-footer-inspired,.play-footer-map-label,.play-footer-map-separator,.play-footer-osm-full{display:none}.play-footer-osm-short{display:inline}.map-hint{max-width:calc(100vw - 24px);padding:9px 14px;font-size:12px}.map-hint-bottom{bottom:126px}.line-menu{bottom:126px;width:calc(100vw - 24px);max-width:calc(100vw - 24px);max-height:calc(100dvh - 174px);padding:10px;border-radius:0}.line-menu-title{font-size:16px}.line-menu-action{gap:8px;padding:7px 0}.line-menu-action-icon{width:32px;height:32px}.line-menu-action-title{font-size:14px}.line-menu-action-sub,.line-menu-target-label,.line-menu-train-current{font-size:12px}.line-menu-train-row{gap:8px}.line-menu-train-info{min-width:0}.line-menu-train-targets{gap:6px}.side-panel{width:74px}.upgrade-grid{grid-template-columns:1fr}.modal{padding:22px}.home-title{font-size:clamp(40px,16vw,62px)}.cityselect-grid{grid-template-columns:1fr;gap:10px;max-width:none;margin:0;padding:12px 10px 24px}.city-level-card{aspect-ratio:auto;min-height:100px;padding:14px 16px 16px}}.game-shell{position:relative;display:block;height:100%;overflow:hidden;background:#f2efe7;--pixel-ink: #18140f;--pixel-board: #241f17;--pixel-panel: rgba(33, 29, 21, .92);--pixel-paper: #fff4d2;--pixel-amber: #ffb000;--pixel-saffron: #ff6f1a;--pixel-red: #e33c24;--pixel-green: #8bd450;--pixel-border: #17130e}.game-main{position:absolute;top:0;right:0;bottom:0;left:0;height:100%;min-height:100%;background:#f2efe7}.game-main:before{background:linear-gradient(90deg,rgba(128,98,52,.055) 0 1px,transparent 1px 18px),linear-gradient(0deg,rgba(128,98,52,.05) 0 1px,transparent 1px 18px);image-rendering:pixelated}.metromap-wrap:before{background:linear-gradient(180deg,#ffb9410f,#fff0 42%),radial-gradient(circle at 78% 56%,rgba(89,150,172,.08),transparent 36%)}.metromap-wrap:after{background-image:radial-gradient(rgba(53,45,34,.16) .78px,transparent .86px),radial-gradient(rgba(255,159,28,.1) .65px,transparent .72px);background-position:0 0,7px 7px;background-size:14px 14px;opacity:.26}.game-shell .topbar{position:absolute;z-index:48;top:12px;left:12px;right:12px;display:grid;grid-template-columns:minmax(218px,.85fr) minmax(430px,1.7fr) auto;grid-template-areas:"brand stats controls";align-items:stretch;gap:8px;min-height:70px;padding:8px;border:0;border-bottom:2px solid var(--pixel-border);background:linear-gradient(180deg,rgba(255,176,0,.08),transparent 56%),var(--pixel-board);color:var(--pixel-paper);box-shadow:none}.game-shell .topbar:after{content:none}.game-shell .topbar-brand,.game-shell .topbar-stats,.game-shell .topbar-controls{position:relative;z-index:1}.game-shell .topbar-brand{gap:10px;padding:0 8px 0 0;border-right:2px solid rgba(255,176,0,.22)}.game-shell .topbar-brand-mark{width:38px;height:38px;background:var(--pixel-paper);border:2px solid var(--pixel-amber)}.game-shell .topbar-city-name,.game-shell .topbar-stat-value,.game-shell .topbar-speed-cycle,.play-menu-heading,.play-line-name,.play-upgrade-label,.event-tile-title{font-family:var(--display-font);letter-spacing:0}.game-shell .topbar-city-name{font-size:14px;color:var(--pixel-amber)}.game-shell .topbar-city-meta{max-width:100%;font-size:12px;color:#fff4d2b8}.game-shell .topbar-stats{display:grid;grid-template-columns:repeat(5,minmax(62px,1fr)) minmax(116px,1.15fr);align-items:stretch;gap:4px;justify-content:stretch}.game-shell .topbar-stat{min-width:0;padding:6px 8px;border:0;border-left:1px solid rgba(255,176,0,.28);background:transparent;text-align:left}.game-shell .topbar-stat-label{display:block;margin:0 0 4px;font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#fff4d28a}.game-shell .topbar-stat-value{display:inline-flex;align-items:center;gap:8px;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:17px;font-weight:900;line-height:1;color:var(--pixel-paper);white-space:nowrap}.game-shell .topbar-stat.is-good .topbar-stat-value{color:var(--pixel-green)}.game-shell .topbar-stat.is-warn .topbar-stat-value{color:var(--pixel-amber)}.game-shell .topbar-stat.is-bad .topbar-stat-value{color:#ff8066}.game-shell .topbar-stat-time{padding-left:8px}.game-shell .topbar-time-row{justify-content:flex-start}.game-shell .topbar-time-sub{display:block;margin-top:3px;font-size:11px;font-weight:900;color:var(--pixel-amber)}.game-shell .topbar-controls{gap:5px;padding:0}.game-shell .topbar-control-btn,.game-shell .topbar-back-btn,.game-shell .topbar-speed-cycle,.game-shell .topbar-help-link{border:1px solid rgba(255,176,0,.34);border-radius:0;background:#fff4d214;color:var(--pixel-paper);box-shadow:none;transition:background .12s ease,color .12s ease}.game-shell .topbar-control-btn:hover,.game-shell .topbar-back-btn:hover,.game-shell .topbar-speed-cycle:hover,.game-shell .topbar-help-link:hover,.game-shell .topbar-help-link:focus-visible{transform:none;background:#ffb0002e}.game-shell .topbar-control-btn.is-disabled,.game-shell .topbar-speed-cycle.is-disabled{opacity:.38;pointer-events:none}.play-left-menu{position:absolute;z-index:42;left:16px;top:116px;width:198px;display:grid;gap:10px;color:var(--pixel-paper);pointer-events:auto}.play-menu-section,.event-tile{border:0;border-left:2px solid var(--pixel-border);border-top:2px solid rgba(255,176,0,.22);background:var(--pixel-panel);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.play-menu-section{padding:8px}.play-menu-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px;color:var(--pixel-amber);font-size:13px;font-weight:900;text-transform:uppercase}.play-menu-heading em{min-width:22px;padding:1px 5px 2px;border:1px solid rgba(255,176,0,.32);background:#ffb0001f;color:var(--pixel-paper);font-style:normal;text-align:center}.play-menu-add,.play-line-row,.play-upgrade-action{border:0;border-top:1px solid rgba(255,244,210,.18);border-radius:0;background:transparent;color:var(--pixel-paper);box-shadow:none}.play-menu-add{width:26px;height:24px;padding:0;color:var(--pixel-amber);font-size:20px;font-weight:900;line-height:1}.play-menu-add:hover,.play-menu-add.is-active,.play-line-row:hover,.play-line-row.is-active,.play-upgrade-action:hover,.play-upgrade-action.is-active{background:#ffb0002e;border-color:var(--pixel-amber)}.play-menu-add:disabled,.play-upgrade-action:disabled{opacity:.38;cursor:not-allowed}.play-line-list{display:grid;gap:5px;max-height:184px;overflow:auto}.play-line-empty{padding:8px 7px;border:1px dashed rgba(255,244,210,.2);color:#fff4d2ad;font-size:12px;line-height:1.2}.play-line-row{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:7px;min-height:36px;padding:5px 6px;text-align:left}.play-line-chip{width:16px;height:10px;border:1px solid rgba(255,244,210,.34);background:var(--line-swatch, var(--pixel-amber));box-shadow:inset 0 -2px #00000038}.play-line-name{overflow:hidden;color:var(--pixel-paper);font-size:13px;font-weight:900;white-space:nowrap;text-overflow:ellipsis}.play-line-load{display:inline-grid;grid-template-columns:repeat(3,5px);gap:2px}.play-line-load i{width:5px;height:8px;background:#fff4d22e}.play-line-load.load-low i:first-child,.play-line-load.load-mid i:nth-child(-n+2),.play-line-load.load-high i{background:currentColor}.play-line-load.load-low{color:#9be576}.play-line-load.load-mid{color:var(--pixel-amber)}.play-line-load.load-high{color:#ff8066}.play-upgrade-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.play-upgrade-action{min-height:36px;padding:5px 6px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px}.play-upgrade-label{min-width:0;overflow:hidden;font-size:12px;font-weight:900;text-align:left;text-overflow:ellipsis}.play-upgrade-count{min-width:20px;padding:1px 4px 2px;border:1px solid rgba(255,176,0,.28);background:#ffb0001f;color:var(--pixel-amber);font-size:12px;font-weight:900;text-align:center}.event-tile{position:absolute;z-index:42;top:116px;right:16px;width:212px;padding:9px 10px;color:var(--pixel-paper)}.event-tile-header{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:8px}.event-tile-icon{display:block;width:42px;height:42px;object-fit:contain;image-rendering:pixelated}.event-tile-eyebrow{margin-bottom:3px;color:#fff4d294;font-size:9px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.event-tile-title{color:var(--pixel-amber);font-size:16px;font-weight:900;line-height:1}.event-tile p{margin:6px 0 8px;color:#fff4d2c7;font-size:12px;line-height:1.25}.event-tile-time{display:inline-block;padding:2px 6px;border:1px solid rgba(255,176,0,.3);color:var(--pixel-paper);font-size:11px;font-weight:900;animation:pixel-blink 1.15s steps(2,end) infinite}.event-tile-weather{border-color:#3a7890}.metroline-stroke{stroke-width:1.55;stroke-linecap:square;stroke-linejoin:bevel;filter:none}.metroline.draft .draft-stroke{stroke-width:1.55;stroke-dasharray:1.4 1.2;opacity:.72}.station-countdown-text{fill:var(--pixel-red);font-size:2.7px;stroke:#fff9e9;stroke-width:.48;animation:pixel-blink .7s steps(2,end) infinite}.line-menu,.modal,.upgrade-panel{border-radius:0}.play-action-toast{left:228px;right:auto;top:50%;max-width:250px;border:2px solid var(--pixel-border);background:var(--pixel-panel);color:var(--pixel-paper);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.map-hint-bottom{bottom:56px}.play-footer{min-height:34px;padding:0 16px;border-top:2px solid rgba(36,32,24,.18);background:#fff9e9bd;color:#242018b8}.play-footer-credit{max-width:calc(100vw - 28px);gap:6px;color:#242018b3;font-size:11px;letter-spacing:.02em}.play-footer-credit a:hover{color:var(--pixel-ink)}@keyframes pixel-blink{0%,48%{opacity:1}49%,to{opacity:.28}}@media (max-width: 1120px){.game-shell .topbar{grid-template-columns:minmax(190px,.75fr) minmax(360px,1.6fr) auto}.game-shell .topbar-stats{grid-template-columns:repeat(3,minmax(62px,1fr)) minmax(116px,1.1fr)}.game-shell .topbar-stat:nth-child(4),.game-shell .topbar-stat:nth-child(5){display:none}}@media (max-width: 780px){.game-shell .topbar{top:8px;left:8px;right:8px;display:grid;grid-template-columns:1fr;grid-template-areas:"brand" "stats" "controls";gap:6px;min-height:0;padding:calc(7px + env(safe-area-inset-top,0px)) 7px 7px}.game-shell .topbar-brand{border-right:0;border-bottom:1px solid rgba(255,176,0,.2);padding:0 0 6px}.game-shell .topbar-brand-mark{width:30px;height:30px}.game-shell .topbar-city-name{font-size:12px}.game-shell .topbar-city-meta{display:block;font-size:11px}.game-shell .topbar-stats{grid-template-columns:repeat(3,minmax(0,1fr));order:initial;width:100%;gap:3px}.game-shell .topbar-stat{display:block;padding:5px 6px}.game-shell .topbar-stat:nth-child(4),.game-shell .topbar-stat:nth-child(5){display:none}.game-shell .topbar-stat-label{font-size:8px}.game-shell .topbar-stat-value{font-size:14px}.game-shell .topbar-stat-time{display:block}.game-shell .topbar-controls{order:initial;flex:none;justify-content:stretch;gap:4px;margin:0}.game-shell .topbar-controls .topbar-icon-btn{flex:0 0 34px;width:34px;height:34px}.play-left-menu{left:8px;right:8px;top:auto;bottom:calc(42px + env(safe-area-inset-bottom,0px));width:auto;grid-template-columns:minmax(0,1.1fr) minmax(150px,.9fr);gap:6px}.play-menu-section{padding:7px}.play-line-list{max-height:92px}.play-upgrade-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.play-upgrade-action{min-height:32px;grid-template-columns:1fr;gap:2px}.play-upgrade-count{justify-self:start}.event-tile{top:150px;right:8px;width:min(190px,calc(100vw - 232px));padding:7px 8px}.event-tile p{display:none}.play-action-toast{left:50%;top:auto;bottom:calc(164px + env(safe-area-inset-bottom,0px));transform:translate(-50%);max-width:calc(100vw - 24px);font-size:12px;text-align:center}.map-hint-bottom{bottom:calc(166px + env(safe-area-inset-bottom,0px))}.play-footer{min-height:38px;padding:4px 10px calc(4px + env(safe-area-inset-bottom,0px))}.play-footer-credit{position:static;transform:none;width:100%;justify-content:center;flex-wrap:wrap;white-space:normal;row-gap:1px;text-align:center;line-height:1.1}}@media (max-width: 560px){.game-shell .topbar{gap:5px}.game-shell .topbar-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.game-shell .topbar-stat:nth-child(3),.game-shell .topbar-stat:nth-child(4),.game-shell .topbar-stat:nth-child(5){display:none}.game-shell .topbar-controls .topbar-icon-btn{flex-basis:32px;width:32px;height:32px}.play-left-menu{grid-template-columns:1fr;bottom:calc(42px + env(safe-area-inset-bottom,0px))}.play-menu-upgrades,.event-tile{display:none}.play-action-toast{bottom:calc(152px + env(safe-area-inset-bottom,0px))}.map-hint-bottom{bottom:calc(154px + env(safe-area-inset-bottom,0px))}.play-footer{min-height:36px}.play-footer-inspired,.play-footer-map-label,.play-footer-map-separator,.play-footer-osm-full{display:none}.play-footer-osm-short{display:inline}}.station-icon-image{image-rendering:pixelated;pointer-events:none}.station-icon-interchange-outline{color:#17130e;image-rendering:pixelated;pointer-events:none}[data-theme=dark] .station-icon-interchange-outline{color:#fff4d2}.station-capacity-dots{pointer-events:none;filter:drop-shadow(0 0 .35px rgba(79,230,111,.75))}.station-capacity-dot{fill:#4fe66f;stroke:#17130e;stroke-width:.12;pointer-events:none;shape-rendering:crispEdges;animation:station-capacity-dot .86s steps(2,end) infinite}.station-capacity-dot.is-second{animation-delay:.16s}[data-theme=dark] .station-capacity-dot{stroke:#fff4d2}@keyframes station-capacity-dot{0%,42%,to{opacity:.18}43%,78%{opacity:1}}.station-name-label{fill:#201b14;font-family:var(--display-font);font-size:1.05px;font-weight:900;letter-spacing:0;text-anchor:middle;paint-order:stroke;stroke:#fff9e9eb;stroke-width:.34;pointer-events:none}[data-theme=dark] .station-name-label{fill:#fff4d2;stroke:#121924eb}.station.is-crowd-warning .station-icon-image{filter:drop-shadow(0 0 2px var(--warning))}.station.is-crowd-critical .station-icon-image{filter:drop-shadow(0 0 2.5px var(--danger))}.event-chip,.event-mobile-backdrop{display:none}@media (max-width: 780px){.event-tile-desktop{display:none}.event-chip{position:absolute;z-index:43;top:154px;right:8px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 8px;min-width:138px;min-height:42px;padding:6px 8px;border:2px solid var(--pixel-border);border-radius:0;background:var(--pixel-panel);color:var(--pixel-paper);text-align:left;box-shadow:none}.event-chip img{grid-row:1 / 3;width:30px;height:30px;object-fit:contain;image-rendering:pixelated}.event-chip span{color:#fff4d294;font-size:8px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.event-chip strong{min-width:0;overflow:hidden;color:var(--pixel-amber);font-family:var(--display-font);font-size:13px;line-height:1;text-overflow:ellipsis;white-space:nowrap}.event-chip em{align-self:end;color:var(--pixel-paper);font-style:normal;font-size:11px;font-weight:900}.event-mobile-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;display:block;background:#0000006b}.event-mobile-sheet{position:absolute;left:0;right:0;bottom:0;min-height:28vh;padding:18px 16px calc(18px + env(safe-area-inset-bottom,0px));border-top:2px solid var(--pixel-border);background:var(--pixel-panel);color:var(--pixel-paper)}.event-mobile-sheet .event-tile-time{animation:pixel-blink 1.15s steps(2,end) infinite}.event-sheet-close{position:absolute;right:12px;top:12px;min-width:54px;height:30px;border:1px solid rgba(255,176,0,.36);border-radius:0;background:#fff4d214;color:var(--pixel-paper);font-size:11px;font-weight:900}.play-left-menu{left:0;right:0;bottom:calc(38px + env(safe-area-inset-bottom,0px));display:block;width:auto;pointer-events:none}.play-left-menu .play-menu-section{pointer-events:auto}.play-left-menu .play-menu-section:first-child{position:absolute;left:8px;bottom:70px;width:min(226px,calc(100vw - 16px))}.play-menu-upgrades{display:block;width:100%;padding:0;border-width:2px 0 0;border-left:0;background:#211d15f5}.play-menu-upgrades .play-menu-heading{display:none}.play-upgrade-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0}.play-upgrade-action{min-height:66px;padding:6px 4px;border-width:0 1px 0 0;grid-template-columns:1fr;justify-items:center;text-align:center}.play-upgrade-label{text-align:center;font-size:11px}.play-upgrade-count{justify-self:center}.play-action-toast{bottom:calc(178px + env(safe-area-inset-bottom,0px))}.map-hint-bottom{bottom:calc(180px + env(safe-area-inset-bottom,0px))}}@media (max-width: 560px){.event-chip{top:146px;min-width:118px;max-width:138px}.play-menu-upgrades{display:block}.play-left-menu .play-menu-section:first-child{bottom:66px}.play-upgrade-action{min-height:62px}.play-action-toast{bottom:calc(170px + env(safe-area-inset-bottom,0px))}.map-hint-bottom{bottom:calc(172px + env(safe-area-inset-bottom,0px))}}.game-shell,.entry-shell{--pixel-ink: #0b1b2f;--pixel-board: rgba(246, 250, 255, .96);--pixel-panel: rgba(248, 252, 255, .9);--pixel-paper: #102033;--pixel-muted: rgba(16, 32, 51, .62);--pixel-divider: rgba(27, 77, 125, .2);--pixel-control-bg: rgba(15, 61, 112, .055);--pixel-mark-bg: #fff8df;--pixel-amber: #ffb000;--pixel-saffron: #ff6f1a;--pixel-red: #e33c24;--pixel-green: #208a46;--pixel-border: #15365a;--pixel-entry-bg: #eef6ff;--pixel-map-base: #edf5ff;--track-outline: color-mix(in srgb, var(--line-color) 48%, #06101d 52%);--track-inner-mark: rgba(255, 255, 255, .34);--track-streak: rgba(255, 255, 255, .58);--track-core: rgba(255, 255, 255, .78);--track-tick: rgba(10, 24, 40, .72);--depot-dot: #06101d;--train-outline: #071422;--train-panel: rgba(255, 255, 255, .18);--train-window: #0c2338;--train-door: rgba(255, 255, 255, .72);--train-light: #fff2a8}[data-theme=dark] .game-shell,[data-theme=dark] .entry-shell{--pixel-ink: #06101d;--pixel-board: rgba(5, 13, 25, .96);--pixel-panel: rgba(5, 13, 25, .88);--pixel-paper: #f6f1dc;--pixel-muted: rgba(246, 241, 220, .62);--pixel-divider: rgba(96, 148, 190, .22);--pixel-control-bg: rgba(255, 244, 210, .07);--pixel-mark-bg: #fff8df;--pixel-amber: #ffb000;--pixel-saffron: #ff7a2a;--pixel-red: #ff6f58;--pixel-green: #8bd450;--pixel-border: #1b4164;--pixel-entry-bg: #081423;--pixel-map-base: #07111f;--track-outline: color-mix(in srgb, var(--line-color) 56%, #f6f1dc 44%);--track-inner-mark: rgba(7, 17, 31, .38);--track-streak: rgba(246, 241, 220, .62);--track-core: rgba(246, 241, 220, .82);--track-tick: rgba(246, 241, 220, .7);--depot-dot: #f6f1dc;--train-outline: #f6f1dc;--train-panel: rgba(7, 17, 31, .28);--train-window: #f6f1dc;--train-door: rgba(7, 17, 31, .76);--train-light: #ffcf4a}.game-main,[data-theme=dark] .game-main{background:var(--pixel-map-base)}.game-shell .topbar,.topbar.cityselect-topbar{border:0;border-bottom:2px solid var(--pixel-border);background:linear-gradient(180deg,rgba(255,176,0,.055),transparent 60%),var(--pixel-board);color:var(--pixel-paper);box-shadow:none}.game-shell .topbar-brand-mark,.topbar.cityselect-topbar .topbar-brand-mark{background:var(--logo-tile-bg, #181818);border:0}.game-shell .topbar-brand{border-right-color:var(--pixel-divider)}.game-shell .topbar-city-meta,.game-shell .topbar-stat-label,.event-tile-eyebrow,.event-tile p,.play-line-empty,.event-chip span{color:var(--pixel-muted)}.game-shell .topbar-stat,.game-shell .topbar-control-btn,.game-shell .topbar-back-btn,.game-shell .topbar-speed-cycle,.game-shell .topbar-help-link,.play-menu-heading em,.play-upgrade-count,.event-tile-time,.event-sheet-close,.topbar.cityselect-topbar .topbar-control-btn,.topbar.cityselect-topbar .topbar-back-btn,.topbar.cityselect-topbar .topbar-help-link,.cityselect-mode-toggle{border-color:var(--pixel-divider)}.game-shell .topbar-control-btn,.game-shell .topbar-back-btn,.game-shell .topbar-speed-cycle,.game-shell .topbar-help-link,.topbar.cityselect-topbar .topbar-control-btn,.topbar.cityselect-topbar .topbar-back-btn,.topbar.cityselect-topbar .topbar-help-link,.cityselect-mode-toggle{background:var(--pixel-control-bg);color:var(--pixel-paper)}.play-menu-section,.event-tile,.event-chip,.event-mobile-sheet,.play-action-toast{border-left-color:var(--pixel-border);border-top-color:var(--pixel-divider);background:var(--pixel-panel);color:var(--pixel-paper)}.play-menu-add,.play-line-row,.play-upgrade-action{border-top-color:var(--pixel-divider);color:var(--pixel-paper)}.play-line-load i{background:color-mix(in srgb,var(--pixel-paper) 14%,transparent)}.play-footer{border-top-color:var(--pixel-divider);background:color-mix(in srgb,var(--pixel-board) 82%,transparent);color:var(--pixel-muted)}.play-footer-credit,.play-footer-credit a{color:var(--pixel-muted)}.bitmap-map-bg{--map-atlas-image: url(/assets/maps/chennai-map-atlas.png);--map-frame-transform: translate(-50%, -25%);--map-art-overlay: linear-gradient(90deg, rgba(237, 245, 255, .56), rgba(237, 245, 255, .3) 28%, rgba(237, 245, 255, .18) 50%, rgba(237, 245, 255, .3) 72%, rgba(237, 245, 255, .56)), radial-gradient(circle at center, rgba(248, 252, 255, .5) 0 20%, rgba(248, 252, 255, .3) 40%, rgba(248, 252, 255, .12) 68%), linear-gradient(rgba(237, 245, 255, .24), rgba(237, 245, 255, .24));overflow:hidden;background:none}.bitmap-map-bg:before{content:"";position:absolute;left:50%;top:50%;width:max(100cqw,calc(100cqh * 4 / 3));height:max(150cqw,200cqh);background-image:var(--map-atlas-image);background-position:center;background-size:100% 100%;background-repeat:no-repeat;image-rendering:pixelated;transform:var(--map-frame-transform);transform-origin:center center;z-index:0}.bitmap-map-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:var(--map-art-overlay)}[data-theme=dark] .bitmap-map-bg{--map-frame-transform: translate(-50%, -75%);--map-art-overlay: linear-gradient(90deg, rgba(5, 13, 25, .7), rgba(5, 13, 25, .38) 28%, rgba(5, 13, 25, .18) 50%, rgba(5, 13, 25, .38) 72%, rgba(5, 13, 25, .7)), radial-gradient(circle at center, rgba(5, 13, 25, .56) 0 20%, rgba(5, 13, 25, .34) 40%, rgba(5, 13, 25, .14) 68%), linear-gradient(rgba(5, 13, 25, .28), rgba(5, 13, 25, .28))}.bitmap-map-bg.bitmap-map-bg-pune{--map-atlas-image: url(/assets/maps/pune-map-atlas.png)}.bitmap-map-bg.bitmap-map-bg-chennai{--map-atlas-image: url(/assets/maps/chennai-map-atlas.png)}.bitmap-map-bg.bitmap-map-bg-hyderabad{--map-atlas-image: url(/assets/maps/hyderabad-map-atlas.png)}.bitmap-map-bg.bitmap-map-bg-kolkata{--map-atlas-image: url(/assets/maps/kolkata-map-atlas.png)}.bitmap-map-bg.bitmap-map-bg-bengaluru{--map-atlas-image: url(/assets/maps/bengaluru-map-atlas.png)}.bitmap-map-bg.bitmap-map-bg-mumbai{--map-atlas-image: url(/assets/maps/mumbai-map-atlas.png)}.bitmap-map-bg.bitmap-map-bg-delhi{--map-atlas-image: url(/assets/maps/delhi-map-atlas.png)}.entry-home,.entry-select,[data-theme=dark] .entry-home,[data-theme=dark] .entry-select{background:var(--pixel-entry-bg);color:var(--pixel-paper)}.entry-shell:before{--entry-frame-transform: translate(-50%, -25%);background-image:url(/assets/entry/india-start-map-pixel2.png);inset:auto;position:fixed;left:50vw;top:50svh;width:max(100vw,calc(100svh * 4 / 3));height:max(150vw,200svh);background-position:center;background-size:100% 100%;image-rendering:pixelated;opacity:.9;animation:none;transform:var(--entry-frame-transform);transform-origin:center center}[data-theme=dark] .entry-shell:before{--entry-frame-transform: translate(-50%, -75%);opacity:.94}.entry-shell:after{top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#eef6ffbd,#eef6ff5c 28%,#eef6ff29,#eef6ff5c 72%,#eef6ffbd),radial-gradient(circle at center,#f8fcffe0 0,#f8fcffe0,#f8fcff85 36%,#f8fcff00 66%);opacity:1;animation:none}[data-theme=dark] .entry-shell:after{background:linear-gradient(90deg,#050d19bd,#050d1957 28%,#050d1914,#050d1957 72%,#050d19bd),radial-gradient(circle at center,#050d19db 0,#050d19db,#050d198f 36%,#050d1900 66%);opacity:1}.entry-toolbar{z-index:4}.entry-toolbar .topbar-control-btn,.entry-toolbar .topbar-help-link,.entry-circle-btn{border-radius:0;border:1px solid var(--pixel-divider);background:var(--pixel-board);color:var(--pixel-paper);box-shadow:none}.entry-logo-ring{border-radius:0;border-color:#ffb0006b;box-shadow:0 0 0 12px #ffb0001a}.entry-logo-core{background:var(--pixel-mark-bg);border:0;box-shadow:none}.entry-title{letter-spacing:0;text-shadow:0 2px 0 color-mix(in srgb,var(--pixel-entry-bg) 82%,transparent)}.entry-title-accent,.entry-tagline,.entry-score{color:var(--pixel-amber)}.entry-tagline,.entry-score{opacity:.78}.entry-cta{border-radius:0;border:2px solid var(--pixel-border);background:var(--pixel-amber);color:#101018;box-shadow:none}.entry-credit{z-index:4;color:var(--pixel-muted)}.topbar.cityselect-topbar{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:minmax(260px,1fr) auto auto;grid-template-areas:"brand controls mode";align-items:center;gap:8px;min-height:70px;padding:8px 12px}.topbar.cityselect-topbar .topbar-brand{grid-area:brand;gap:10px;min-width:0;padding-right:12px;border-right:2px solid var(--pixel-divider)}.topbar.cityselect-topbar .topbar-controls{grid-area:controls;display:flex;gap:6px}.topbar.cityselect-topbar .cityselect-mode-toggle{grid-area:mode;height:38px;min-width:92px;border-radius:0;color:var(--pixel-paper);box-shadow:none}.topbar.cityselect-topbar .topbar-city-name,.topbar.cityselect-topbar .cityselect-mode-toggle,.city-level-name,.city-level-zone,.city-level-status{font-family:var(--display-font);letter-spacing:0}.topbar.cityselect-topbar .topbar-city-name{color:var(--pixel-amber)}.topbar.cityselect-topbar .topbar-city-meta{color:var(--pixel-muted)}.cityselect-grid{padding-top:32px}.city-level-card{border:0;border-left:2px solid var(--pixel-border);border-top:2px solid var(--pixel-divider);border-radius:0;background:color-mix(in srgb,var(--pixel-panel) 94%,transparent);color:var(--pixel-paper);box-shadow:none}.city-level-open,.city-level-locked{background:color-mix(in srgb,var(--pixel-panel) 94%,transparent);color:var(--pixel-paper);border-left:2px solid var(--pixel-border);border-top:2px solid var(--pixel-divider);box-shadow:none}.city-level-open:hover:not([aria-disabled=true]){border-color:var(--pixel-amber);background:color-mix(in srgb,var(--pixel-panel) 84%,var(--pixel-amber) 16%)}.city-level-zone{border-radius:0;border-color:var(--pixel-divider)}.city-level-name{color:var(--pixel-amber)}@media (max-width: 780px){.topbar.cityselect-topbar{grid-template-columns:1fr auto;grid-template-areas:"brand controls" "mode mode";gap:6px;padding:calc(8px + env(safe-area-inset-top,0px)) 8px 8px}.topbar.cityselect-topbar .topbar-brand{border-right:0;padding-right:0}.topbar.cityselect-topbar .cityselect-mode-toggle{width:100%}.entry-cta{min-width:min(284px,calc(100vw - 44px))}.play-menu-upgrades{background:var(--pixel-panel)}}.game-shell .topbar{top:0;left:0;right:0;min-height:70px;grid-template-columns:minmax(218px,.85fr) minmax(430px,1.7fr) auto}.game-shell .topbar-brand{border-right:0;padding-right:8px}.game-shell .topbar-brand-mark,.topbar.cityselect-topbar .topbar-brand-mark{border:0}.game-shell .topbar-time-row{justify-content:flex-start;align-items:baseline;gap:8px;white-space:nowrap}.game-shell .topbar-time-sub{display:inline-block;margin:0;color:var(--pixel-amber);font-size:10px;line-height:1}.game-shell .topbar-speed-cycle{min-width:42px;height:32px;padding:0 10px;border:1px solid var(--pixel-divider);border-radius:0;background:var(--pixel-amber);color:var(--pixel-ink);font-family:var(--display-font);font-size:12px;font-weight:900;line-height:1;cursor:pointer}.game-shell .topbar-speed-cycle:hover{background:color-mix(in srgb,var(--pixel-amber) 82%,var(--pixel-paper) 18%)}.game-shell .topbar-speed-cycle.is-disabled{opacity:.38;pointer-events:none}.play-left-menu,.event-tile{top:88px}.topbar.cityselect-topbar .cityselect-mode-toggle.is-sandbox,.topbar.cityselect-topbar .cityselect-mode-toggle.is-sandbox:hover,.topbar.cityselect-topbar .cityselect-mode-toggle.is-sandbox:focus-visible{border-color:var(--pixel-border);background:var(--pixel-amber);color:var(--pixel-ink)}.city-level-card[aria-disabled=true],.city-level-locked{opacity:1;filter:none}.city-level-locked{background:#f6faff}[data-theme=dark] .city-level-locked{background:#07111f}.city-level-locked .city-level-name,.city-level-locked .city-level-local,.city-level-locked .city-level-zone,.city-level-locked .city-level-status,.city-level-locked .city-unlock-req{color:color-mix(in srgb,var(--pixel-paper) 58%,transparent)}.city-level-locked .city-level-lock{opacity:.72}.entry-tagline,.entry-score{color:color-mix(in srgb,var(--pixel-paper) 88%,var(--pixel-border) 12%);opacity:1;text-shadow:0 1px 0 color-mix(in srgb,var(--pixel-entry-bg) 76%,transparent)}.entry-title-accent{color:var(--pixel-amber)}.entry-credit{z-index:4;padding:7px 12px;border:1px solid var(--pixel-divider);background:color-mix(in srgb,var(--pixel-board) 88%,transparent);color:var(--pixel-paper)}.entry-credit a{color:var(--pixel-paper)}.play-upgrade-actions{grid-template-columns:1fr;gap:6px}.play-upgrade-action{min-height:44px;grid-template-columns:30px 1fr auto;justify-items:stretch;gap:8px;padding:6px 7px;text-align:left}.play-upgrade-icon{width:28px;height:28px;display:grid;place-items:center}.play-upgrade-icon img{display:block;width:26px;height:26px;object-fit:contain;image-rendering:pixelated}.play-upgrade-count{min-width:26px;height:24px;padding:2px 6px;display:inline-grid;place-items:center;border-color:var(--pixel-border);background:var(--pixel-amber);color:var(--pixel-ink)}.play-upgrade-action.has-stock:hover .play-upgrade-count,.play-upgrade-action.is-active .play-upgrade-count{background:var(--pixel-border);color:var(--pixel-mark-bg)}@media (max-width: 1120px){.game-shell .topbar{grid-template-columns:minmax(190px,.75fr) minmax(360px,1.6fr) auto}}@media (max-width: 780px){.game-shell .topbar{top:0;left:0;right:0}.play-left-menu{top:auto}.event-tile{top:138px}.play-upgrade-actions{grid-template-columns:repeat(5,minmax(0,1fr))}.play-upgrade-action{min-height:66px;grid-template-columns:1fr;justify-items:center;gap:3px;padding:6px 4px;text-align:center}.play-upgrade-label{text-align:center}.play-upgrade-count{justify-self:center}.map-zoom-controls{right:8px;bottom:calc(150px + env(safe-area-inset-bottom,0px))}.map-zoom-btn{width:34px;height:34px;font-size:18px}.map-zoom-reset{width:auto;min-width:52px;font-size:10px}.topbar.cityselect-topbar .topbar-brand{border-right:0}}@media (max-width: 560px){.game-shell .topbar-speed-cycle{min-width:38px;height:32px;padding:0 8px}}@media (max-width: 780px){.game-shell .topbar{top:0;left:0;right:0;display:grid;grid-template-columns:1fr auto;grid-template-areas:"brand controls" "stats stats";align-items:center;gap:6px 8px;min-height:0;padding:calc(7px + env(safe-area-inset-top,0px)) 8px 8px}.game-shell .topbar-brand{min-width:0;gap:8px;padding:0;border:0}.game-shell .topbar-back-btn,.game-shell .topbar-control-btn,.game-shell .topbar-speed-cycle,.game-shell .topbar-help-link{width:34px;height:34px;min-width:34px;padding:0}.game-shell .topbar-help-link,.topbar.cityselect-topbar .topbar-help-link{font-size:0}.game-shell .topbar-help-link:before,.topbar.cityselect-topbar .topbar-help-link:before{content:"?";font-size:14px;line-height:1}.game-shell .topbar-brand-mark{width:34px;height:34px}.game-shell .topbar-city{min-width:0}.game-shell .topbar-city-name{max-width:112px;overflow:hidden;font-size:13px;line-height:1.05;white-space:normal}.game-shell .topbar-city-meta{max-width:132px;font-size:11px}.game-shell .topbar-controls{justify-content:flex-end;gap:4px;min-width:0}.game-shell .topbar-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:0;padding-top:6px;border-top:1px solid var(--pixel-divider)}.game-shell .topbar-stat{min-height:42px;padding:4px 8px;border-left:1px solid var(--pixel-divider)}.game-shell .topbar-stat:nth-child(3),.game-shell .topbar-stat:nth-child(4),.game-shell .topbar-stat:nth-child(5){display:none}.game-shell .topbar-stat-label{margin-bottom:3px;font-size:8px}.game-shell .topbar-stat-value{font-size:15px}.game-shell .topbar-time-row{gap:6px}.game-shell .topbar-time-sub{font-size:9px}.play-left-menu{left:8px;right:8px;bottom:calc(36px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:6px;width:auto;pointer-events:none}.play-left-menu .play-menu-section{pointer-events:auto;padding:7px;background:color-mix(in srgb,var(--pixel-panel) 92%,transparent)}.play-left-menu .play-menu-section:first-child{position:static;width:auto}.play-menu-heading{margin-bottom:5px;font-size:11px}.play-line-list{max-height:92px;gap:3px}.play-line-empty{padding:6px;font-size:11px;line-height:1.15}.play-line-row{min-height:30px;grid-template-columns:16px minmax(0,1fr) auto;gap:6px;padding:4px 5px}.play-line-name,.play-upgrade-label{font-size:11px}.play-menu-upgrades{width:auto;min-width:74px;border-width:0;border-left:2px solid var(--pixel-border);border-top:2px solid var(--pixel-divider)}.play-menu-upgrades .play-menu-heading{display:flex}.play-menu-upgrades .play-menu-heading span{display:none}.play-upgrade-actions{display:grid;grid-template-columns:1fr;gap:4px}.play-upgrade-action{min-height:38px;grid-template-columns:26px auto;justify-items:center;gap:4px;padding:4px}.play-upgrade-icon{width:24px;height:24px}.play-upgrade-icon img{width:22px;height:22px}.play-upgrade-label{display:none}.play-upgrade-count{min-width:24px;height:22px;padding:1px 5px;font-size:12px}.play-footer{min-height:32px}.map-zoom-controls{right:8px;bottom:calc(126px + env(safe-area-inset-bottom,0px))}}@media (max-width: 520px){.game-shell .topbar-city-name{max-width:92px;font-size:12px}.game-shell .topbar-city-meta{max-width:104px}.game-shell .topbar-back-btn,.game-shell .topbar-control-btn,.game-shell .topbar-speed-cycle,.game-shell .topbar-help-link{width:32px;height:32px;min-width:32px}.game-shell .topbar-controls{gap:3px}}.metromap-wrap.is-zoomed,.metromap-wrap.is-zoomed .metromap-bg,.metromap-wrap.is-zoomed .metromap-play{cursor:grab}.metromap-wrap.is-panning,.metromap-wrap.is-panning *{cursor:grabbing!important}.metromap-wrap.is-panning .metromap-world{transition:none}@media (max-width: 860px){.game-shell .topbar-city-name,.game-shell .topbar-city-meta{display:none}.game-shell .topbar-city-mobile-name{display:block;max-width:112px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--pixel-amber)}.topbar.cityselect-topbar{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"brand mode controls";gap:6px;min-height:50px;padding:calc(6px + env(safe-area-inset-top,0px)) 8px 6px}.topbar.cityselect-topbar .topbar-brand{min-width:0;gap:6px;padding:0;border-right:0}.topbar.cityselect-topbar .topbar-back-btn,.topbar.cityselect-topbar .topbar-control-btn,.topbar.cityselect-topbar .topbar-help-link{width:34px;height:34px;min-width:34px;padding:0}.topbar.cityselect-topbar .topbar-brand-mark{width:34px;height:34px}.topbar.cityselect-topbar .topbar-city-name{max-width:112px;overflow:hidden;font-size:12px;line-height:1;text-overflow:ellipsis;white-space:nowrap}.topbar.cityselect-topbar .topbar-city-meta{display:none}.topbar.cityselect-topbar .topbar-controls{grid-area:controls;gap:4px}.topbar.cityselect-topbar .cityselect-mode-toggle{grid-area:mode;width:auto;min-width:72px;min-height:34px;height:34px;padding:0 7px;grid-template-columns:1fr 24px;column-gap:5px}.topbar.cityselect-topbar .cityselect-mode-toggle span:first-child,.topbar.cityselect-topbar .cityselect-mode-toggle span:last-child{font-size:10px;letter-spacing:.04em}.topbar.cityselect-topbar .cityselect-mode-toggle:after{width:22px;height:14px;background:radial-gradient(circle at 7px 50%,#181818 0 4px,transparent 4.5px),#ffffffc7}.topbar.cityselect-topbar .cityselect-mode-toggle.is-sandbox:after{background:radial-gradient(circle at 15px 50%,#181818 0 4px,transparent 4.5px),#ffffffc7}.entry-select{padding-bottom:42px}.cityselect-grid{grid-template-columns:1fr;gap:6px;max-width:none;margin:0;padding:8px 8px 52px}.city-level-card{aspect-ratio:auto;min-height:64px;padding:9px 10px}.city-level-info{height:auto}.city-level-title-block{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"zone name" "zone local";align-items:center;gap:2px 8px}.city-level-zone{grid-area:zone;max-width:112px;padding:3px 6px;font-size:9px;line-height:1;white-space:nowrap}.city-level-name{grid-area:name;margin:0;overflow:hidden;font-size:24px;line-height:1;text-overflow:ellipsis;white-space:nowrap}.city-level-local{grid-area:local;margin:0;overflow:hidden;font-size:13px;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.city-level-footer{margin-top:4px}.city-level-footer-stack{grid-template-columns:auto 1fr;align-items:center;gap:6px}.city-level-status,.city-unlock-req{font-size:10px;line-height:1.1}.city-level-lock{transform:scale(.7)}.entry-select .entry-credit{bottom:8px;max-width:calc(100vw - 18px);padding:5px 8px;font-size:11px;white-space:normal}.play-left-menu{left:8px;right:8px;bottom:calc(34px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:1fr;align-items:stretch;gap:4px;width:auto;pointer-events:none}.play-left-menu .play-menu-section{pointer-events:auto;padding:5px 6px;min-width:0;background:color-mix(in srgb,var(--pixel-panel) 92%,transparent)}.play-left-menu .play-menu-section:first-child{display:grid;grid-template-columns:minmax(0,1fr) 34px;grid-template-areas:"lines add";align-items:center;gap:5px;width:auto}.play-left-menu .play-menu-section:first-child .play-menu-heading{display:contents}.play-left-menu .play-menu-section:first-child .play-menu-heading span{display:none}.play-left-menu .play-menu-section:first-child .play-menu-add{grid-area:add;justify-self:end;width:34px;height:34px;border:1px solid var(--pixel-divider)}.play-left-menu .play-menu-section:first-child .play-line-list{grid-area:lines;display:flex;gap:5px;min-height:34px;max-height:none;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.play-left-menu .play-menu-section:first-child .play-line-list::-webkit-scrollbar,.play-upgrade-actions::-webkit-scrollbar{display:none}.play-line-empty{min-height:34px;display:flex;align-items:center;padding:0 8px;overflow:hidden;border:1px dashed rgba(255,244,210,.22);font-size:11px;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.play-line-row{flex:0 0 auto;min-width:74px;min-height:34px;height:34px;grid-template-columns:14px auto;gap:6px;padding:0 7px}.play-line-chip{width:14px;height:9px}.play-line-name{font-size:10px}.play-line-load{display:none}.play-menu-upgrades{width:auto;min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px;border-left:2px solid var(--pixel-border);border-top:1px solid var(--pixel-divider)}.play-menu-upgrades .play-menu-heading{display:flex;margin:0;min-width:0;font-size:10px}.play-menu-upgrades .play-menu-heading span{display:inline}.play-menu-upgrades .play-menu-heading em{min-width:20px;padding:1px 4px}.play-upgrade-actions{display:flex;justify-content:flex-end;gap:5px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.play-upgrade-action{flex:0 0 auto;min-width:58px;min-height:36px;height:36px;grid-template-columns:22px auto;gap:4px;padding:3px 5px}.play-upgrade-icon{width:22px;height:22px}.play-upgrade-icon img{width:21px;height:21px}.play-upgrade-label{display:none}.play-upgrade-count{min-width:23px;height:22px;padding:1px 5px;font-size:12px}.line-menu{left:8px!important;right:8px!important;top:auto!important;bottom:calc(38px + env(safe-area-inset-bottom,0px))!important;width:auto!important;max-width:none!important;max-height:min(58dvh,380px)!important;transform:none!important;z-index:72}.map-zoom-controls{bottom:calc(116px + env(safe-area-inset-bottom,0px))}}@media (max-width: 520px){.game-shell .topbar-city-mobile-name{max-width:76px;font-size:12px}.topbar.cityselect-topbar .topbar-city-name{max-width:88px}.topbar.cityselect-topbar .cityselect-mode-toggle{min-width:60px}.topbar.cityselect-topbar .cityselect-mode-toggle span:first-child,.topbar.cityselect-topbar .cityselect-mode-toggle span:last-child{font-size:9px}.city-level-zone{max-width:94px;font-size:8px}.city-level-name{font-size:21px}.city-level-local{font-size:12px}}@media (max-width: 860px){.entry-select{height:100%;padding-bottom:0}.cityselect-grid{gap:8px;padding:10px 8px}.city-level-card{min-height:126px;padding:14px 20px 16px}.city-level-title-block{display:block}.city-level-zone{display:inline-flex;max-width:100%;margin-bottom:13px;padding:5px 8px;font-size:10px;line-height:1}.city-level-name{display:block;margin:0;overflow:hidden;font-size:28px;line-height:1;text-overflow:ellipsis;white-space:nowrap}.city-level-local{display:block;margin-top:6px;overflow:hidden;font-size:15px;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.city-level-lock-overlay{place-items:center end;padding-right:24px}.city-level-footer{margin-top:10px}.city-level-footer-stack{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 8px}.entry-select .entry-credit{position:relative;left:auto;bottom:auto;transform:none;width:fit-content;max-width:calc(100vw - 20px);margin:8px auto calc(14px + env(safe-area-inset-bottom,0px));display:flex;flex-wrap:wrap;justify-content:center;gap:5px 7px;padding:6px 8px;font-size:11px;line-height:1.2;text-align:center;white-space:normal}}@media (max-width: 520px){.city-level-card{min-height:118px;padding:13px 14px 15px}.city-level-zone{margin-bottom:12px;font-size:9px}.city-level-name{font-size:24px}.city-level-local{font-size:14px}.city-level-lock-overlay{padding-right:18px}.entry-select .entry-credit{width:calc(100vw - 18px)}}@media (max-width: 860px){.game-shell{--mobile-game-footer-height: 42px;--mobile-game-tray-height: 96px}.game-shell .play-footer{height:calc(var(--mobile-game-footer-height) + env(safe-area-inset-bottom,0px));min-height:calc(var(--mobile-game-footer-height) + env(safe-area-inset-bottom,0px));padding:5px 10px calc(5px + env(safe-area-inset-bottom,0px));z-index:41}.game-shell .play-footer-credit{position:static;transform:none;width:100%;max-width:100%;display:flex;flex-wrap:wrap;justify-content:center;gap:3px 7px;font-size:11px;line-height:1.15;text-align:center;white-space:normal}.game-shell .play-left-menu{left:8px;right:8px;bottom:calc(var(--mobile-game-footer-height) + 8px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:1fr;gap:5px;width:auto;z-index:43}.game-shell .play-left-menu .play-menu-section{min-height:0;padding:5px 6px}.game-shell .play-left-menu .play-menu-section:first-child{min-height:44px;grid-template-columns:minmax(0,1fr) 38px;gap:5px}.game-shell .play-left-menu .play-menu-section:first-child .play-menu-add{width:34px;height:34px}.game-shell .play-line-list{min-height:34px;max-height:34px}.game-shell .play-line-empty{min-height:34px;height:34px;min-width:0;padding:0 9px;font-size:12px;line-height:1;white-space:nowrap}.game-shell .play-menu-upgrades{min-height:42px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px}.game-shell .play-menu-upgrades .play-menu-heading{margin:0;font-size:11px;line-height:1}.game-shell .play-upgrade-actions{min-height:32px;align-items:center}.game-shell .play-upgrade-action{height:34px;min-height:34px}.game-shell .map-zoom-controls{bottom:calc(var(--mobile-game-footer-height) + var(--mobile-game-tray-height) + 20px + env(safe-area-inset-bottom,0px));right:10px}.game-shell .line-menu{bottom:calc(var(--mobile-game-footer-height) + var(--mobile-game-tray-height) + 10px + env(safe-area-inset-bottom,0px))!important}}@media (max-width: 520px){.game-shell{--mobile-game-footer-height: 40px;--mobile-game-tray-height: 94px}.game-shell .play-line-empty{font-size:11px}}@media (max-width: 860px){.modal-backdrop{padding:14px;overflow:hidden;place-items:center}.upgrade-modal{width:min(360px,calc(100vw - 28px));max-height:min(70dvh,420px);padding:12px;overflow:auto;box-shadow:0 14px 34px #0000003d}.upgrade-modal:before{top:6px;right:6px;bottom:6px;left:6px;opacity:.12;-webkit-mask-image:linear-gradient(180deg,#000,transparent 32%);mask-image:linear-gradient(180deg,#000,transparent 32%)}.upgrade-modal .modal-eyebrow{margin-bottom:4px;font-size:9px;letter-spacing:.12em}.upgrade-modal .modal-title{margin-bottom:0;font-size:18px;line-height:1.05}.upgrade-modal .modal-sub{display:none}.upgrade-modal .upgrade-grid{grid-template-columns:1fr;gap:6px;margin-top:10px}.upgrade-modal .upgrade-card{min-height:54px;display:grid;grid-template-columns:36px minmax(0,1fr);grid-template-areas:"icon title" "icon desc";align-items:center;gap:2px 10px;padding:8px 10px}.upgrade-modal .upgrade-card:after{content:none}.upgrade-modal .upgrade-icon{grid-area:icon;width:34px;height:34px;margin:0}.upgrade-modal .upgrade-title{grid-area:title;min-height:0;margin:0;overflow:hidden;font-size:15px;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.upgrade-modal .upgrade-desc{grid-area:desc;min-height:0;overflow:hidden;font-size:11px;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}}@media (max-width: 520px){.upgrade-modal{width:min(332px,calc(100vw - 24px));padding:10px}.upgrade-modal .modal-title{font-size:17px}.upgrade-modal .upgrade-card{min-height:50px;grid-template-columns:32px minmax(0,1fr);padding:7px 8px}.upgrade-modal .upgrade-icon{width:31px;height:31px}.upgrade-modal .upgrade-title{font-size:14px}.upgrade-modal .upgrade-desc{font-size:10px}}:where(.btn-cta,.btn-ghost,.btn-icon,.entry-cta,.topbar-icon-btn,.topbar-control-btn,.topbar-back-btn,.topbar-speed-cycle,.topbar-help-link,.cityselect-mode-toggle,.end-toast-button,.line-menu-close,.line-menu-action,.line-menu-target-swatch,.event-chip,.event-sheet-close,.map-zoom-btn,.play-menu-add,.play-line-row,.play-upgrade-action,.upgrade-card,.city-level-card,.undo-toast-btn){border-radius:0!important;box-shadow:none}.cityselect-mode-toggle:after{border-radius:0!important;background:linear-gradient(90deg,var(--pixel-ink) 0 48%,transparent 48%),color-mix(in srgb,var(--pixel-paper) 84%,transparent)!important}.cityselect-mode-toggle.is-sandbox:after{background:linear-gradient(90deg,transparent 0 52%,var(--pixel-ink) 52% 100%),var(--pixel-amber)!important}.line-menu-chip{border-radius:0}.entry-logo-ring{top:0;right:0;bottom:0;left:0;border:0!important;border-radius:0;box-shadow:none!important;animation:none!important;pointer-events:none}.entry-logo-ring:before,.entry-logo-ring:after{content:"";position:absolute;top:22px;right:22px;bottom:22px;left:22px;border:3px solid var(--pixel-amber);opacity:0;transform:scale(.78);transform-origin:center;image-rendering:pixelated;will-change:transform,opacity;animation:entry-square-ripple 1.48s ease-in-out infinite}.entry-logo-ring:after{top:16px;right:16px;bottom:16px;left:16px;border-width:2px;animation-delay:.74s}@keyframes entry-square-ripple{0%,to{opacity:.48;transform:scale(.82)}50%{opacity:.1;transform:scale(1.52)}}.game-shell .topbar-brand,.topbar.cityselect-topbar .topbar-brand{gap:10px}.game-shell .topbar-back-btn,.topbar.cityselect-topbar .topbar-back-btn,.game-shell .topbar-brand-mark,.topbar.cityselect-topbar .topbar-brand-mark{width:34px;height:34px;min-width:34px;flex:0 0 34px}.game-shell .topbar-back-btn svg,.topbar.cityselect-topbar .topbar-back-btn svg{width:18px;height:18px}.game-shell .topbar-city-name,.topbar.cityselect-topbar .topbar-city-name{max-width:150px;overflow:hidden;font-size:14px;line-height:1.05;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap}.game-shell .topbar-city-meta,.topbar.cityselect-topbar .topbar-city-meta{max-width:170px;overflow:hidden;font-size:12px;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.cityselect-mode-toggle{grid-template-columns:minmax(0,1fr) 34px;column-gap:8px;padding-right:7px}[data-theme=light] .cityselect-mode-toggle{--pixel-toggle-knob: #ffffff}[data-theme=dark] .cityselect-mode-toggle{--pixel-toggle-knob: var(--pixel-ink)}.cityselect-mode-toggle:after{width:30px;height:18px;border:1px solid color-mix(in srgb,currentColor 34%,transparent);background:linear-gradient(var(--pixel-toggle-knob, var(--pixel-ink)) 0 0) left 4px center / 8px 8px no-repeat,color-mix(in srgb,var(--pixel-paper) 84%,transparent)!important}.cityselect-mode-toggle.is-sandbox:after{background:linear-gradient(var(--pixel-ink) 0 0) right 4px center / 8px 8px no-repeat,color-mix(in srgb,var(--pixel-amber) 86%,var(--pixel-paper) 14%)!important}@media (max-width: 780px){.game-shell .topbar-city-mobile-name,.topbar.cityselect-topbar .topbar-city-name{max-width:112px;overflow:hidden;font-size:12px;line-height:1.05;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap}.topbar.cityselect-topbar .cityselect-mode-toggle{grid-template-columns:minmax(0,1fr) 28px;padding-right:6px}.topbar.cityselect-topbar .cityselect-mode-toggle:after{width:24px;height:16px;background:linear-gradient(var(--pixel-toggle-knob, var(--pixel-ink)) 0 0) left 4px center / 6px 6px no-repeat,color-mix(in srgb,var(--pixel-paper) 84%,transparent)!important}.topbar.cityselect-topbar .cityselect-mode-toggle.is-sandbox:after{background:linear-gradient(var(--pixel-ink) 0 0) right 4px center / 6px 6px no-repeat,color-mix(in srgb,var(--pixel-amber) 86%,var(--pixel-paper) 14%)!important}}@media (max-width: 760px){.help-backdrop{align-items:end;padding:12px}.help-modal{width:100%;max-height:calc(100svh - 24px);overflow:auto;padding:24px 20px 22px}.help-card-grid{grid-template-columns:1fr;gap:8px}.help-card{grid-template-columns:86px minmax(0,1fr);min-height:86px}.help-card-art{height:82px}.help-modal .modal-title{padding-right:34px;font-size:28px}.ftux-tip{left:10px;right:10px;top:auto;bottom:calc(172px + env(safe-area-inset-bottom,0px));--ftux-width: auto;width:auto;transform:none}.ftux-tip:before{left:22px;right:auto;top:-10px;border:0;border-left:2px solid var(--pixel-border);border-top:2px solid var(--pixel-border)}.entry-toolbar{top:14px;right:12px;gap:6px}.entry-toolbar .topbar-help-link{min-width:92px;height:34px;padding:0 9px;font-size:10px}}.game-shell{--action-banner-bg: #071422;--action-banner-text: #fff8df;--action-banner-border: #ffb000;--action-banner-shadow: rgba(7, 20, 34, .26)}[data-theme=dark] .game-shell{--action-banner-bg: #ffb000;--action-banner-text: #06101d;--action-banner-border: #fff8df;--action-banner-shadow: rgba(255, 176, 0, .22)}.game-shell .play-action-toast{left:50%;right:auto;top:auto;bottom:calc(56px + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:47;width:fit-content;max-width:min(420px,calc(100vw - 32px));padding:12px 18px;border:2px solid var(--action-banner-border);background:var(--action-banner-bg);color:var(--action-banner-text);box-shadow:0 12px 0 var(--action-banner-shadow);-webkit-backdrop-filter:none;backdrop-filter:none;font-family:var(--display-font);font-size:14px;font-weight:900;line-height:1.2;text-align:center;text-transform:none;animation:none}@media (max-width: 860px){.game-shell .play-action-toast{bottom:calc(var(--mobile-game-footer-height, 42px) + var(--mobile-game-tray-height, 96px) + 18px + env(safe-area-inset-bottom,0px));max-width:calc(100vw - 24px);font-size:13px}}
