.parking-miniature{margin:0 0 32px;border:1px solid #bacabd;border-radius:22px;overflow:hidden;background:#f7f6ed;color:#173e34}
.parking-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;padding:35px 38px 0}
.parking-intro .eyebrow{font-size:10px;letter-spacing:.14em;color:#476459}
.parking-intro h3{font-size:clamp(36px,4vw,58px);letter-spacing:-.045em;line-height:1.03;margin:16px 0 0;font-weight:650}
.parking-intro h3 em{font-family:var(--serif);font-weight:400;color:#427966}
.parking-intro p{font-size:14px;line-height:1.65;max-width:300px;margin-bottom:5px;color:#476459}
.parking-world{position:relative;height:570px;background:radial-gradient(ellipse at 50% 48%,#faf8ea,#e5eadc 75%);isolation:isolate}
#parking-canvas{width:100%;height:100%}#parking-canvas canvas{display:block;width:100%;height:100%}
.parking-fallback{width:100%;height:100%;display:block;padding:25px 10px 65px}
.parking-world.is-ready .parking-fallback{display:none}
.parking-view-tools{position:absolute;right:22px;bottom:20px;display:flex;gap:5px;z-index:2}
.parking-view-tools button{border:1px solid #b8c8b9;color:#214e40;background:#fffff2e8;border-radius:99px;min-height:42px;min-width:44px;padding:8px 13px;font-size:12px}
.parking-view-tools button:first-child,.parking-view-tools button:last-child{font-size:22px;padding:4px 12px}
.parking-choices{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #c4d0bc;border-bottom:1px solid #c4d0bc}
.parking-choices button{display:flex;align-items:center;gap:14px;padding:22px 28px;background:transparent;color:#173e34;text-align:left;font-size:18px}
.parking-choices button+button{border-left:1px solid #c4d0bc}
.parking-choices button span:first-child{display:grid;place-items:center;width:30px;height:30px;border:1px solid currentColor;border-radius:50%;font-size:11px}
.parking-choices button span:last-child{margin-left:auto}
.parking-choices button[aria-pressed=true]{background:#164b3c;color:#f2f7e7}
.parking-miniature button:focus-visible{outline:3px solid #b17323;outline-offset:-5px}
.parking-description{padding:22px 28px 0;max-width:850px;font-size:15px;line-height:1.7;min-height:74px}
.parking-description strong{display:block}.parking-footnote{padding:10px 28px 24px;font-size:11px;color:#52695b}
.parking-miniature [hidden]{display:none!important}
html[data-theme=night] .parking-miniature{border-color:#466256}
@media(max-width:760px){.parking-intro{display:block;padding:26px 24px 0}.parking-intro p{margin-top:18px;font-size:13px}.parking-world{height:390px}.parking-view-tools{right:12px;bottom:15px}.parking-view-tools button{padding:7px 9px}.parking-choices button{font-size:15px;padding:16px 14px;gap:8px}.parking-description{padding:18px 20px 0;font-size:14px;min-height:113px}.parking-footnote{padding:10px 20px 22px}.parking-intro h3{font-size:40px}}
@media print{.parking-world{height:360px}.parking-fallback,.parking-world.is-ready .parking-fallback{display:block}#parking-canvas,.parking-view-tools,.parking-choices{display:none!important}}
@media(max-width:760px){.parking-choices button{white-space:nowrap}}
@media(max-width:380px){.parking-choices button{font-size:13px;gap:5px;padding:14px 10px}.parking-choices button span:first-child{width:24px;height:24px;flex-shrink:0}}
.parking-weather-bar{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:24px 38px 18px;font-size:11px;color:#426359}
.parking-weather-status{display:flex;align-items:center;gap:8px;line-height:1.5}.weather-dot{width:6px;height:6px;border-radius:50%;background:#a58b61;flex-shrink:0}.parking-weather-status[data-live=true] .weather-dot{background:#2a8660;box-shadow:0 0 0 4px #2a866015}
.parking-local-time{white-space:nowrap;font-variant-numeric:tabular-nums}.parking-world{height:600px;background:#c8d9d5}
.parking-world[data-sky=night]{background:#0b1a29}
.parking-atmosphere-controls{display:flex;align-items:center;gap:16px;padding:20px 28px 8px;flex-wrap:wrap}
.parking-atmosphere-controls label{font-size:12px;font-weight:600;margin-right:auto}
.parking-atmosphere-controls select,.parking-atmosphere-controls button{font:12px var(--sans);min-height:42px;background:#e8eee4;color:#173e34;border:1px solid #bacabd;border-radius:8px;padding:10px 14px}
.parking-atmosphere-controls select:focus-visible{outline:3px solid #b17323;outline-offset:2px}
.parking-weather-credit{font-size:10px;line-height:1.6;padding:8px 28px 18px;color:#52695b;max-width:760px}.parking-weather-credit a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){.parking-weather-bar{padding:20px 24px 15px;align-items:flex-start;flex-direction:column;gap:6px}.parking-world{height:400px}.parking-atmosphere-controls{padding:18px 20px 5px;gap:8px}.parking-atmosphere-controls label{width:100%}.parking-atmosphere-controls select{max-width:100%;flex:1;min-width:0;font-size:11px;padding:10px}.parking-atmosphere-controls button{font-size:11px;padding:10px}.parking-weather-credit{padding:8px 20px 18px}}
@media print{.parking-weather-bar,.parking-atmosphere-controls{display:none!important}}
#parking-canvas{position:relative}
.parking-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.parking-leaders{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.parking-leaders line{stroke:#365d50;stroke-width:.75;opacity:.45}.parking-leaders circle{fill:#244f3e;stroke:#fff4d6;stroke-width:1}
.parking-world[data-sky=night] .parking-leaders line{stroke:#d1e8d8;opacity:.5}
.parking-labels .parking-label{pointer-events:auto;cursor:pointer;transition:background-color .14s,box-shadow .14s}
.parking-world .parking-label.is-highlighted{background:#efffb5;color:#123c2d;border-color:#f8ffdb;box-shadow:0 0 5px #f5ffd5,0 0 14px #dcffa980;z-index:4}
.parking-world .parking-label:focus-visible{outline:2px solid #236c4e;outline-offset:2px}
.parking-leaders line,.parking-leaders circle{transition:stroke .14s,stroke-width .14s,opacity .14s,fill .14s}
.parking-world .parking-leaders .is-highlighted line{stroke:#edffc4;stroke-width:2.1;opacity:1;filter:drop-shadow(0 0 2px #285c48) drop-shadow(0 0 4px #dfff9b)}
.parking-world .parking-leaders .is-highlighted circle{fill:#fffbd5;stroke:#365b45;stroke-width:1.4;filter:drop-shadow(0 0 5px #eaffab)}
@media(prefers-reduced-motion:reduce){.parking-labels .parking-label,.parking-leaders line,.parking-leaders circle{transition:none}}
.parking-label{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;font:600 12px/1.2 var(--sans);letter-spacing:.01em;background:#f9fcf6;color:#172f2c;border:1px solid #4d635a;border-radius:3px;padding:5px 7px;box-shadow:0 2px 0 #13292240}
.parking-label--shop{font-size:15px;background:#153f31;color:white;border-color:#f1ead4;z-index:3}
.parking-label--entrance{font-size:11px;background:#fff2cc;color:#263e31;border-color:#8c784a;z-index:3}
.parking-label--parking{font-size:11px;background:#e9eacc;color:#1b3f30;border-color:#41694b;z-index:2}
.parking-label--parking[data-active=true]{background:#155e46;color:white;border-color:white}
.parking-view-tools button[aria-pressed=true]{background:#173e34;color:white}
.parking-world{height:650px}
.parking-footnote a{text-decoration:underline}
@media(max-width:760px){.parking-world{height:490px}.parking-label{font-size:9px;padding:3px 4px}.parking-label--shop{font-size:11px}.parking-label--parking{font-size:9px}.parking-view-tools{left:12px;right:12px;justify-content:center}}
.parking-view-tools button:disabled{opacity:.45;cursor:default}
.parking-debug{margin:12px;padding:14px;background:#f1e1bd;color:#292c31;border:1px solid #b7a27b;font:13px/1.5 system-ui,sans-serif}
.parking-debug p{margin:6px 0}.parking-debug pre{font:12px/1.5 monospace;white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0}
.parking-debug-links{display:flex;gap:8px;flex-wrap:wrap}.parking-debug-links a{display:inline-flex;align-items:center;min-height:44px;padding:7px 10px;border:1px solid #73654b;text-decoration:underline}.parking-debug-links a[aria-current=page]{font-weight:700;background:#dcc89f}
.parking-view-tools button[data-map-view=in],.parking-view-tools button[data-map-view=out]{font-size:20px}
@media(max-width:760px){.parking-view-tools{gap:4px;flex-wrap:wrap}.parking-view-tools button{padding:7px;min-width:38px;font-size:11px}.parking-view-tools button:first-child,.parking-view-tools button:last-child{padding:4px 8px}}
