/* Existing fairground colors; the map is an optional navigation view. */
#park-map{display:none;position:fixed;inset:0;z-index:6;background:#f2e9d8;color:#2c3f34;overflow:auto;overscroll-behavior:contain;font-family:var(--ui)}
body.map-view #park-map{display:flex;flex-direction:column;opacity:1;pointer-events:auto}
body.map-view :is(#intro,#loading,#skip,#hud-left,#hud-right,#hint,#back,#dolly-map,#tip,#mapcard,#vignette,#grain){display:none!important}
.pm-header{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 4vw 8px;flex-shrink:0}
.pm-brand{font:11px Georgia,serif;letter-spacing:.3em}
.pm-header h1{font:500 clamp(23px,2.4vw,36px)/1.2 'Songti SC','SimSun',serif;margin:8px 0}
.pm-header h1 span{font:400 14px var(--ui);color:#617056}
.pm-header p{font-size:13px;margin:8px 0;color:#617056}
#map-3d{background:none;border:1px solid #8b987e;padding:12px 17px;color:#2c3f34;font:12px var(--ui);cursor:pointer;white-space:nowrap;min-height:44px}
#map-3d:hover{background:#d7dfba}
.pm-land{position:relative;flex:1;min-height:490px;width:min(100%,1450px);margin:auto}
.pm-terrain{position:absolute;width:100%;height:100%;inset:0;pointer-events:none}
.pm-building{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-68%);width:clamp(112px,12vw,175px);padding:0 0 5px;border:0;background:none;color:#2c3f34;cursor:pointer;line-height:1.2;text-align:center;touch-action:manipulation}
.pm-building svg{display:block;width:100%;height:clamp(102px,11vw,150px);overflow:visible;transition:transform .18s ease}
.pm-building:hover svg,.pm-building:focus-visible svg{transform:translateY(-6px)}
.pm-label{display:inline-block;padding:7px 10px;background:#fbf6ea;border:1px solid #9b9f76;font-size:14px;font-weight:600;white-space:nowrap}
.pm-label span{color:#b45248;font-weight:400}
.pm-building small{display:block;font-size:10px;letter-spacing:.12em;margin-top:5px;color:#475d42}
#park-map button:focus-visible{outline:3px solid #b45248;outline-offset:5px}
.pm-footer{display:flex;justify-content:space-between;gap:16px;padding:10px 4vw 18px;font-size:11px;color:#657057;flex-shrink:0}
#map-status{color:#8c4136}
#map-dolly{position:absolute;left:31%;top:83%;transform:translate(-50%,-55%);z-index:2}
#map-dolly-button{display:block;border:0;background:none;padding:0;color:#2c3f34;cursor:pointer}
#map-dolly-button svg{display:block;width:78px;height:117px;margin:auto}
#map-dolly-button span{background:#e6c876;display:block;padding:6px 10px;font:600 11px var(--ui);white-space:nowrap}
#map-dolly-bubble{position:absolute;width:245px;left:50%;bottom:calc(100% + 12px);transform:translateX(-50%);background:#fbf6ea;border:1px solid #a5a47b;padding:16px;box-shadow:0 5px 0 #2c3f3415;box-sizing:border-box}
#map-dolly-bubble::after{content:'';position:absolute;left:calc(50% - 6px);bottom:-7px;width:12px;height:12px;background:#fbf6ea;border-right:1px solid #a5a47b;border-bottom:1px solid #a5a47b;transform:rotate(45deg)}
#map-dolly-bubble strong{font-size:14px}#map-dolly-bubble p{font-size:12px;line-height:1.8;margin:8px 0 0}
@media(max-width:650px){
 .pm-header{align-items:flex-start;padding:18px 18px 4px;gap:8px}.pm-brand{font-size:9px}.pm-header h1 span{display:block;font-size:12px;margin-top:5px}.pm-header p{font-size:11px;line-height:1.6;max-width:220px}#map-3d{padding:8px;font-size:11px}
 .pm-land{min-height:610px}.pm-building{width:98px}.pm-building svg{height:100px}.pm-label{font-size:12px;padding:6px}.pm-building small{font-size:9px;letter-spacing:0}
 .pm-building[data-map-zone=garden]{left:19%;top:23%}.pm-building[data-map-zone=ferris]{left:50%;top:18%}.pm-building[data-map-zone=circus]{left:82%;top:27%}
 .pm-building[data-map-zone=gallery]{left:18%;top:51%}.pm-building[data-map-zone=signals]{left:50%;top:47%}.pm-building[data-map-zone=coaster]{left:83%;top:55%}
 .pm-building[data-map-zone=carousel]{left:77%;top:81%}.pm-building[data-map-zone=gate]{left:43%;top:84%}
 #map-dolly{left:14%;top:79%}#map-dolly-button svg{width:60px;height:90px}#map-dolly-button span{font-size:9px;padding:6px}#map-dolly-bubble{left:0;transform:none;width:220px}#map-dolly-bubble::after{left:27px}
 .pm-footer{padding:10px 18px 18px;flex-direction:column;gap:5px;font-size:10px}
}
@media(prefers-reduced-motion:reduce){.pm-building svg{transition:none}.pm-building:hover svg,.pm-building:focus-visible svg{transform:none}}
