/* M1.5 — world navigation: one visible hamburger, no persistent header. */
.app-shell{position:relative;min-height:100dvh}
.main-shell{width:100%;min-width:0}
.app-shell .content{padding-top:clamp(22px,3vw,40px);max-width:1580px}
.quick-menu-trigger{position:fixed;z-index:180;top:max(10px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));
 display:grid;place-items:center;width:46px;height:44px;padding:7px;border-radius:11px;
 border:1px solid #78898f;background:#293940;color:#fff;cursor:pointer;
 box-shadow:0 5px 19px #1326318c;transition:background .15s ease,transform .15s ease}
.quick-menu-trigger:hover,.quick-menu-trigger:focus-visible{background:#48616d;transform:translateY(-1px)}
.quick-menu-trigger .hamburger-lines{display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center}
.quick-menu-trigger .hamburger-lines>span{width:21px;height:2.5px;border-radius:3px;background:#f5f8fa;display:block}
.quick-menu-scrim:not([hidden]){display:block;position:fixed;inset:0;z-index:169;background:rgba(12,20,26,.31);
 border:0;padding:0;cursor:default}
.quick-menu-panel:not([hidden]){display:flex;position:fixed;z-index:175;right:max(12px,env(safe-area-inset-right));
 top:calc(max(10px,env(safe-area-inset-top)) + 52px);width:min(270px,calc(100vw - 24px));
 flex-direction:column;gap:7px;padding:13px;background:#f4f7f8;
 border:1px solid #94a6ad;border-radius:13px;box-shadow:0 17px 40px #0e1d28a8;
 animation:quick-menu-open .18s ease-out both}
.quick-menu-brand{display:flex;align-items:center;gap:9px;padding:3px 2px 10px;
 border-bottom:1px solid #c5d0d4;color:#2d3a42}
.quick-menu-brand img{width:28px;height:28px}
.quick-menu-brand strong{font:750 15px Cinzel,Georgia,serif;letter-spacing:1.2px}
.quick-menu-item{width:100%;display:flex;align-items:center;min-height:44px;text-align:left;
 border:1px solid #b9c8ce;border-radius:8px;background:#fff;color:#2a3a43;
 font:750 13px Inter,system-ui,sans-serif;padding:10px 13px;cursor:pointer}
.quick-menu-item:hover:not(:disabled),.quick-menu-item:focus-visible{border-color:#6c8590;background:#e6eef0}
.quick-menu-item:disabled{opacity:.55;cursor:default}
.quick-menu-trigger:focus-visible,.quick-menu-item:focus-visible,.hero-return-button:focus-visible,
.gate-destination:focus-visible{outline:3px solid #d9a857;outline-offset:3px}
@keyframes quick-menu-open{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:translateY(0)}}
[hidden]{display:none!important}
.city-location .location-heading,.gate-location .location-heading,
.wilderness-location .location-heading{padding-right:58px}
.hero-return-button{display:inline-flex;align-items:center;justify-content:center;min-height:38px;
 border:1px solid #697d85;border-radius:9px;background:#344750;color:#f7fafb;
 font-size:12px;font-weight:750;padding:8px 12px;cursor:pointer;margin:0 0 13px;
 box-shadow:0 3px 9px #27374125}
.hero-return-button:hover{background:#536b76}
/* Paths are a proper destination now, not buttons underneath the city. */
.gate-location{min-width:0}
.gate-panorama{position:relative;isolation:isolate;overflow:hidden;height:clamp(385px,73dvh,760px);
 border:1px solid #748891;border-radius:15px;background:#778e94;
 box-shadow:0 18px 38px #25363c38}
.gate-scene-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
 filter:saturate(.8) contrast(1.1) brightness(.87)}
.gate-panorama::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;
 background:linear-gradient(180deg,#1d303b57,#0d1c2280 90%),radial-gradient(ellipse at center,#f4f4eb00,#1928325c)}
.gate-scene-haze{position:absolute;inset:40% -10% -16%;z-index:1;pointer-events:none;
 background:radial-gradient(ellipse,#eef3f35c,transparent 70%);animation:fog-glide 10s ease-in-out infinite alternate}
.gate-destination{position:absolute;z-index:3;display:flex;align-items:center;gap:10px;width:min(310px,28%);
 min-height:96px;padding:15px;border-radius:12px;border:1px solid #cbdde0bd;
 color:#f7f9f9;text-align:left;background:#22333ad9;backdrop-filter:blur(7px);
 box-shadow:0 10px 30px #0a171f9c;cursor:pointer;
 transition:background .2s ease,transform .2s ease,box-shadow .2s ease}
.gate-destination:hover{background:#435a63ee;transform:translateY(-4px);box-shadow:0 14px 37px #112735c9}
.gate-destination-1{left:5%;top:36%}
.gate-destination-2{left:36%;top:24%}
.gate-destination-3{right:5%;top:42%}
.gate-destination-symbol{display:grid;place-items:center;flex:0 0 40px;width:40px;height:42px;
 font-size:29px;color:#e4d8bb;border:1px solid #d6e4e485;border-radius:9px}
.gate-destination-copy{display:flex;flex-direction:column;min-width:0;gap:6px;flex:1}
.gate-destination-copy strong{font:700 clamp(12px,1.5vw,17px) Cinzel,Georgia,serif}
.gate-destination-copy small{font-size:10px;line-height:1.5;color:#cedcde}
.gate-destination-arrow{font-size:19px;color:#e6eced}
.gate-scene-label{position:absolute;left:20px;bottom:18px;z-index:3;color:#edf4f5;
 font-size:10px;font-weight:850;letter-spacing:1.8px;text-shadow:0 2px 7px #000e}
.gate-location .adventure-hud{margin-bottom:12px}
/* Keep all scene points clickable: the menu button never stretches across the viewport. */
.city-poi.poi-gate{background:#314951e9;border-color:#f2ddad}
@media(max-width:1000px){
 .gate-destination{width:30%;min-height:78px;padding:10px;gap:7px}
 .gate-destination-1{left:3%}.gate-destination-2{left:35%}.gate-destination-3{right:3%}
 .gate-destination-symbol{flex-basis:29px;width:29px;height:32px;font-size:22px}
 .gate-destination-copy strong{font-size:12px}
 .gate-destination-copy small{font-size:9px}
}
@media(max-width:700px){
 .app-shell .content{padding-top:12px}
 .quick-menu-trigger{top:max(5px,env(safe-area-inset-top));right:max(7px,env(safe-area-inset-right));
 width:37px;height:36px;padding:4px;border-radius:8px}
 .quick-menu-panel:not([hidden]){top:calc(max(5px,env(safe-area-inset-top)) + 43px);
 right:max(7px,env(safe-area-inset-right))}
 .quick-menu-trigger .hamburger-lines{gap:4px}
 .quick-menu-trigger .hamburger-lines>span{width:18px;height:2px}
 .city-location .location-heading,.gate-location .location-heading,.wilderness-location .location-heading{padding-right:44px}
 .gate-panorama{height:clamp(270px,66dvh,470px);border-radius:10px}
 .gate-destination{min-height:59px;padding:7px 6px;gap:5px;border-radius:8px}
 .gate-destination-symbol{flex:0 0 22px;width:22px;height:26px;font-size:17px;border:0}
 .gate-destination-copy strong{font-size:10px}
 .gate-destination-copy small{font-size:8px;line-height:1.3}
 .gate-destination-arrow{font-size:12px}
 .gate-scene-label{font-size:8px;left:9px;bottom:9px;letter-spacing:1px}
 .hero-return-button{margin-bottom:8px;min-height:32px;font-size:10px}
}
@media(max-width:440px){
 .gate-destination{width:32%}
 .gate-destination-1{left:1%}.gate-destination-2{left:34%}.gate-destination-3{right:1%}
 .gate-destination-copy small{display:none}
}
@media(prefers-reduced-motion:reduce){
 .gate-destination,.quick-menu-trigger{transition:none!important}
 .gate-scene-haze,.quick-menu-panel:not([hidden]){animation:none!important}
}
