:root { --st-halo: #fff; --st-ink: #0A2540; --st-mut: #425466; --st-road: #E6ECF4; --st-dash: #fff; --st-chev: #9AA9BC; --st-conn: #C5D0DE; }
@media (prefers-color-scheme: dark) { :root { --st-halo: #172131; --st-ink: #E6EDF6; --st-mut: #B4C1D3; --st-road: #2B3A50; --st-dash: #172131; --st-chev: #7F90A8; --st-conn: #44556E; } }
.st-wrap { width: 100%; max-width: 480px; margin: 0 auto; }
.st-svg { display: block; width: 100%; height: auto; overflow: visible; font-family: Pretendard, Inter, system-ui, sans-serif; font-variant-numeric: tabular-nums; }
.st-road { fill: none; stroke: var(--st-road); stroke-width: 16; stroke-linejoin: round; }
.st-road-dash { fill: none; stroke: var(--st-dash); stroke-width: 1.5; stroke-dasharray: 2 7; stroke-linecap: round; }
.st-chev { fill: none; stroke: var(--st-chev); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.st-tick { stroke: var(--st-mut); stroke-width: 2; stroke-linecap: round; }
.st-term { fill: var(--st-ink); }
.st-center { fill: var(--st-halo); stroke: #635BFF; stroke-width: 2.5; }
.st-name { font-size: 14px; font-weight: 700; fill: var(--st-ink); paint-order: stroke; stroke: var(--st-halo); stroke-width: 3px; stroke-linejoin: round; }
.st-small { font-size: 10.5px; font-weight: 500; fill: var(--st-mut); paint-order: stroke; stroke: var(--st-halo); stroke-width: 3px; stroke-linejoin: round; }
.st-sub { fill: #635BFF; font-weight: 600; }
.st-village { fill: var(--st-mut); font-size: 10px; }
.st-clock { font-size: 16px; font-weight: 600; fill: var(--st-ink); paint-order: stroke; stroke: var(--st-halo); stroke-width: 3px; stroke-linejoin: round; }
.st-hint { font-size: 11.5px; fill: var(--st-mut); paint-order: stroke; stroke: var(--st-halo); stroke-width: 3px; stroke-linejoin: round; }
.st-conn { stroke: var(--st-conn); stroke-width: 1; stroke-dasharray: 2 3; }
.st-l1 { font-size: 13px; font-weight: 700; fill: var(--st-ink); paint-order: stroke; stroke: var(--st-halo); stroke-width: 3px; stroke-linejoin: round; }
.st-route { font-size: 13px; font-weight: 800; }
.st-plate { font-size: 10.5px; font-weight: 500; fill: var(--st-mut); }
.st-l2 { font-size: 10px; font-weight: 500; fill: var(--st-mut); paint-order: stroke; stroke: var(--st-halo); stroke-width: 3px; stroke-linejoin: round; }
.st-body { filter: drop-shadow(0 2px 3px rgba(10, 37, 64, .25)); }
.st-win { fill: rgba(255, 255, 255, .85); }
@media (prefers-color-scheme: dark) { .st-sub { fill: #A9A4FF; } }
