.io-svg{width:100%;height:100%;display:block;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;cursor:-webkit-grab;cursor:grab;font-family:var(--font-body,system-ui)}.io-svg.io-drag{cursor:-webkit-grabbing;cursor:grabbing}.io-grid{stroke:rgba(15,23,42,.06);stroke-width:1}.io-zone{transition:filter .2s}.io-win{fill:#bae6fd;fill-opacity:.75;stroke:#e0f2fe;stroke-width:2}.io-scr{fill:#38bdf8;animation:ioScr 3.4s ease-in-out infinite alternate}@keyframes ioScr{50%{fill:#818cf8}to{fill:#22d3ee}}.io-rack{fill:#22c55e;fill-opacity:.25;animation:ioRack 1.2s steps(2) infinite}@keyframes ioRack{50%{fill-opacity:.6}}.io-sign{fill:#fff;font-weight:800;font-size:17px}.io-sign,.io-sign2{text-anchor:middle;letter-spacing:.08em}.io-sign2{fill:#67e8f9;font-weight:700;font-size:8.5px}.io-vt-b{fill:#fff;font-weight:800;font-size:17px}.io-vt-b,.io-vt-s{text-anchor:middle}.io-vt-s{fill:rgba(255,255,255,.88);font-weight:600;font-size:7.5px}.io-s{opacity:0;animation:ioVt 16s infinite}.io-s1{animation-delay:0s}.io-s2{animation-delay:4s}.io-s3{animation-delay:8s}.io-s4{animation-delay:12s}@keyframes ioVt{0%{opacity:0}24%,3%{opacity:1}27%,to{opacity:0}}.io-bar{transform-box:fill-box;transform-origin:bottom;animation:ioBar 16s ease-out infinite}@keyframes ioBar{0%,50%{transform:scaleY(.1)}57%,74%{transform:scaleY(1)}78%,to{transform:scaleY(.1)}}.io-zl{font-weight:800;font-size:11px;letter-spacing:.01em;opacity:.9}.io-name{fill:#fff;font-weight:700}.io-btx,.io-name{font-size:8.5px;text-anchor:middle}.io-btx{fill:#0f172a;font-weight:600}.io-char{cursor:pointer;outline:none}.io-char:focus .io-tag rect,.io-char:hover .io-tag rect{fill:#2563eb}.io-dots circle{animation:ioDot 1.2s infinite}.io-dots circle:nth-child(3){animation-delay:.2s}.io-dots circle:nth-child(4){animation-delay:.4s}@keyframes ioDot{50%{opacity:.25}}.io-bub{animation:ioPop .25s ease}@keyframes ioPop{0%{opacity:0;transform:translateY(3px)}}:root[data-theme=dark] .io-zl{opacity:1}@media (prefers-reduced-motion:reduce){.io-bar,.io-dots circle,.io-rack,.io-s,.io-scr{animation:none}.io-s1{opacity:1}}.ic-svg{cursor:default;touch-action:auto}.ic-walk{fill:#e2e8f0}.ic-grass{fill:#86efac}.ic-road{fill:#334155}.ic-kerb{stroke:#f8fafc;stroke-width:2.2}.ic-tile{stroke:rgba(100,116,139,.18);stroke-width:1}.ic-win{fill:#93c5fd;fill-opacity:.55;stroke:rgba(255,255,255,.35);stroke-width:.6}.ic-win.ic-side{fill-opacity:.35}.ic-lit{fill:#fde68a;fill-opacity:.85;animation:icLit 7s ease-in-out infinite alternate}@keyframes icLit{60%{fill-opacity:.85}to{fill-opacity:.35}}.ic-shop{fill:#bae6fd;fill-opacity:.8}.ic-shop-t{font-size:9px;letter-spacing:.04em}.ic-shop-t,.ic-vt-b{fill:#fff;font-weight:800;text-anchor:middle}.ic-vt-b{font-size:26px}.ic-bus{fill:#fff;font-weight:800;font-size:9px}.ic-lamp{fill:#fef3c7}.ic-l{fill:#374151}.ic-svg[data-ph="0"] .ic-veh.ic-g{fill:#22c55e}.ic-svg[data-ph="1"] .ic-veh.ic-y{fill:#facc15}.ic-svg[data-ph="2"] .ic-veh.ic-r,.ic-svg[data-ph="3"] .ic-veh.ic-r,.ic-svg[data-ph="4"] .ic-veh.ic-r,.ic-svg[data-ph="5"] .ic-veh.ic-r{fill:#ef4444}@media (prefers-reduced-motion:reduce){.ic-lit{animation:none}}.imt-boot{position:fixed;inset:0;z-index:300;display:grid;place-items:center;background:var(--bg);color:var(--muted);font:600 14px/1.4 var(--font-body)}.imt-boot[hidden]{display:none}.imt-boot div{display:flex;flex-direction:column;align-items:center;gap:12px}.imt-boot i{width:28px;height:28px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--accent);animation:imtspin .8s linear infinite}@keyframes imtspin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.imt-boot i{animation:none}}