#exploration[hidden]{display:none}.explore-stage{position:relative;width:100%;aspect-ratio:16/9;background:#08121e;overflow:hidden}.explore-stage>canvas{width:100%;height:100%;image-rendering:pixelated}.scene-hotspots{position:absolute;inset:0}.scene-hotspots button{position:absolute;padding:0;background:transparent!important;border:0!important;box-shadow:none!important;outline:none!important}.scene-hotspots button:focus-visible{backdrop-filter:brightness(1.35)}.buddy{position:absolute;bottom:4%;right:2%;width:44%;display:flex;gap:8px;align-items:center;background:#0a1926ed;border:2px solid #73846b;padding:8px;font:clamp(14px,1.6vw,22px) Tiny5,monospace;pointer-events:none}.buddy[hidden]{display:none}.buddy canvas,#clubGuide canvas{width:64px;height:64px;image-rendering:pixelated;flex-shrink:0}.buddy p{margin:0}.buddy button{pointer-events:auto;align-self:start;padding:0 5px}.scene-note{font-size:20px;color:#bac69b}#exploration iframe{width:100%;height:580px;border:2px solid #617568}#exploration iframe[hidden]{display:none}.rumble{animation:guardian-rumble .6s steps(6)}@keyframes guardian-rumble{20%,60%{transform:translate(-5px,3px)}40%,80%{transform:translate(5px,-2px)}}#mapStops button:disabled{opacity:.65;cursor:not-allowed}#mapStops button:disabled::after{content:'🚧';display:block}@media(prefers-reduced-motion:reduce){.rumble{animation:none}}@media(max-width:600px){.buddy{width:58%;font-size:14px}.buddy canvas{width:40px;height:40px}}
/* Travel destinations occupy the entire viewport, without a modal card frame. */
#travel.scene-travel{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:#08121e;overflow:hidden}
#travel.scene-travel::backdrop{background:#08121e}
#travel.scene-travel>.dialog-top,#travel.scene-travel>h2{position:absolute;z-index:5;top:12px;left:18px;margin:0;padding:8px 14px;background:#08121ecc;border:0}
#travel.scene-travel #closeTravel{position:fixed;right:18px;top:14px;z-index:8;background:#152b30}
#travel.scene-travel #exploration{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center}
#travel.scene-travel .explore-stage{width:100%;height:100%;aspect-ratio:auto}
#travel.scene-travel .explore-stage>canvas{object-fit:fill}
#travel.scene-travel .scene-note{position:absolute;bottom:8px;left:18px;max-width:48%;margin:0;background:#08121ed9;padding:8px 12px;pointer-events:none;font-size:clamp(14px,1.5vw,20px)}
#travel.scene-travel .buddy{bottom:5%;right:2%;max-width:460px}
#travel.scene-travel #exploration iframe:not([hidden]){position:absolute;inset:65px 3% 3%;width:94%;height:calc(97% - 65px);background:#07131a;z-index:6}
#travel.scene-travel>.button-row{display:none}
.scene-hotspots button.travel-map-object{background:#534834!important;padding:4px!important;box-shadow:4px 5px 0 #0c181bd9!important;transform:rotate(-3deg);overflow:visible}.travel-map-object img{width:100%;height:100%;object-fit:fill;image-rendering:pixelated}.travel-map-object span{position:absolute;bottom:-18%;left:0;width:100%;background:#1a2a2a;color:#e3d5a0;font:clamp(13px,1.6vw,24px) Tiny5,monospace;padding:3px}.scene-hotspots button.travel-map-object:hover,.scene-hotspots button.travel-map-object:focus-visible{filter:brightness(1.3);transform:rotate(-1deg)}#travel.scene-travel #closeTravel{font-size:clamp(14px,1.5vw,21px);padding:10px 15px;width:auto;white-space:nowrap}
.scene-illustration{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;image-rendering:pixelated;pointer-events:none}.explore-stage>canvas{position:relative;z-index:1;pointer-events:none}.scene-hotspots{z-index:2}.buddy{z-index:3}

/* Maps are fixed wall props, sharing the clubhouse map rather than UI labels. */
.scene-hotspots button.travel-map-object{transform:none; padding:3px!important; background:#51432b!important;box-shadow:2px 3px 0 #030c18!important;border-radius:0;filter:brightness(.84)}
.scene-hotspots button.travel-map-object img{display:block;pointer-events:none}
.scene-hotspots button.travel-map-object:hover,.scene-hotspots button.travel-map-object:focus-visible{transform:none;filter:brightness(1.15)}
body:has(#travel.scene-travel[open]){overflow:hidden}
.scene-npc-talk{position:absolute;left:8%;right:8%;top:10%;z-index:7;background:#071525f5;border:3px solid #88977b;padding:16px 45px 16px 20px;font:clamp(18px,2vw,28px)/1.3 Tiny5,monospace;color:#dfdfb2;box-shadow:3px 4px #03080e}
.scene-npc-talk strong{color:#b9d883}.scene-npc-talk p{margin:8px 0 0}.scene-npc-talk button{position:absolute;right:5px;top:5px;border:0;background:transparent;padding:4px;min-height:30px}
.mayor-npc-sprite{position:absolute;left:38%;top:15%;width:25%;height:auto;image-rendering:pixelated;pointer-events:none;z-index:1}
.mayor-desk-front{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;clip-path:inset(51.4% 0 0);image-rendering:pixelated;pointer-events:none;z-index:1}
.scene-npc-talk{font-size:clamp(18px,1.8vw,24px)}
.mayor-npc-sprite{height:44.4%;object-fit:fill}
.mayor-npc-sprite.hall-clerk-sprite{left:35.5%;top:37%;width:13%;height:23.1%}
.mayor-desk-front.hall-clerk-front{clip-path:inset(57.8% 0 0)}
.town-hall-scene>.shortcut-clerk-npc{position:absolute;left:40%;top:34%;width:18%;height:27%;image-rendering:pixelated;pointer-events:none;z-index:1;object-fit:fill}
.town-hall-scene>.shortcut-desk-front{position:absolute;inset:0;width:100%;height:100%;clip-path:inset(59.5% 0 0);image-rendering:pixelated;pointer-events:none;z-index:1}
#mintClerk{z-index:2}#clerkBubble{z-index:3}

/* Hover dialogue must not intercept the NPC underneath it. */
.scene-npc-talk{pointer-events:none}.scene-npc-talk button{display:none}

/* Consistent, visible exit sign; existing destinations and hidden states stay intact. */
#travel #closeTravel{background:#293e32!important;color:#fff0b4!important;border:2px solid #cbb76b!important;padding:8px 13px!important;font-family:Tiny5,monospace;font-size:18px;text-decoration:none;letter-spacing:.04em;animation:exit-sign-glow 4s ease-in-out infinite}
#travel #closeTravel::before{content:"← ";color:#ffe18a}
@keyframes exit-sign-glow{0%,100%{box-shadow:3px 3px 0 #050d12,0 0 4px #e8ca6530}50%{box-shadow:3px 3px 0 #050d12,0 0 11px #e8ca6560}}
#travel #closeTravel:hover, #travel #closeTravel:focus-visible{animation:none;background:#456044!important;color:#fff8d6!important}
@media(prefers-reduced-motion:reduce){#travel #closeTravel{animation:none}}


/* Map dismissal returns to the untouched scene underneath. */
#travel.map-open #closeTravel{font-size:26px!important;line-height:1;padding:4px 10px!important;min-width:36px}
#travel.map-open #closeTravel::before{content:none}
#mapStops button::after{content:attr(data-map-label);opacity:1;top:90%;font:clamp(10px,1.3vw,17px)/1 Tiny5,monospace;padding:2px 4px;background:#08161dd9;max-width:145%;white-space:normal;width:max-content;text-align:center;transition:background .15s,color .15s}
#mapStops button:hover,#mapStops button:focus-visible{background:#dbe9ac20!important;backdrop-filter:brightness(1.16);outline:0!important}
#mapStops button:hover::after,#mapStops button:focus-visible::after{background:#294a39;color:#f4f8d0}
#mapStops button:disabled::after{content:'Playground · Construction';font-size:clamp(9px,1.1vw,14px)}
@media(prefers-reduced-motion:reduce){#mapStops button::after{transition:none}}
