/* A quiet editorial frame for the architecture. Applied after the original UI. */
body:not(.reading){--island-ink:#183d42;--island-paper:#faf9f3;--island-gold:#c5ae70}
body:not(.reading) .site-header{min-height:86px;padding:9px 3.2vw;background:linear-gradient(#faf9f3 72%,#faf9f3ed 86%,#faf9f300);gap:22px}
body:not(.reading) .brand,body:not(.reading) .brand img{width:148px}
body:not(.reading) .header-edition{border:0;padding-left:0;font-size:11px}
.site-header .island-saved-slot:empty{display:none}
body:not(.reading) .world-caption{top:121px;max-width:240px;color:#fff;filter:drop-shadow(0 2px 7px #12343b55)}
body:not(.reading) .world-caption h2{font:500 clamp(24px,2.4vw,34px)/1.1 Geist,sans-serif;letter-spacing:-.045em}
body:not(.reading) .world-caption>p:last-child{font-size:12px;line-height:1.55;max-width:25ch;color:#fff;opacity:.88}
body:not(.reading) .world-caption .eyebrow{font-size:9px;letter-spacing:.08em;opacity:.72;margin-bottom:14px}
.world-vignette{background:linear-gradient(180deg,#faf9f300 70%,#faf9f300 85%,#143c4720)!important}
#world-labels .waypoint{width:132px;min-height:44px;height:44px;padding:0 13px 0 24px;display:flex;align-items:center;gap:0;background:#faf9f3f2;color:#163b42;border:1px solid #fff9;border-radius:4px;box-shadow:0 3px 14px #092f3920;white-space:normal;backdrop-filter:none;text-align:left}
#world-labels .waypoint::before{content:'';position:absolute;left:10px;top:19px;width:5px;height:5px;background:#a18548;border-radius:50%}
#world-labels .waypoint::after{display:none}
#world-labels .waypoint strong{color:inherit;font:500 12px/1.15 Geist,sans-serif;padding:0;letter-spacing:-.02em}
#world-labels .waypoint .number,#world-labels .waypoint .waypoint-enter{display:none}
#world-labels .waypoint small{position:absolute;display:none;top:100%;left:-1px;right:-1px;white-space:normal;background:#faf9f3;color:#38595b;padding:9px 12px;border-radius:0 0 4px 4px;box-shadow:0 7px 12px #092f3915;font:400 10px/1.4 Geist,sans-serif}
#world-labels .waypoint:hover small,#world-labels .waypoint:focus-visible small{display:block}
#world-labels .waypoint:hover,#world-labels .waypoint.is-active{background:#173e43;color:#fff;border-color:#628083}
#world-labels .waypoint:hover small{background:#173e43;color:#e1e9e4}
#world-labels .waypoint:focus-visible{outline:3px solid #cfb977;outline-offset:4px}
.waypoint-connectors{opacity:.45}
body:not(.reading) .world-footer{min-height:0;padding:0 3.2vw 12px;background:none;pointer-events:none;font-size:10px}
body:not(.reading) .world-footer .coordinates{width:auto;color:#fff;text-shadow:0 1px 7px #143e47}
body:not(.reading) .world-footer .world-status{color:#fff;width:auto;text-shadow:0 1px 7px #143e47}
.island-dock{bottom:42px;left:50%;translate:-50% 0;display:flex;align-items:center;gap:16px;padding:10px 12px;max-width:calc(100vw - 40px);width:max-content;border:1px solid #fff9;border-radius:14px;background:#faf9f3f5;color:#163b42;box-shadow:0 10px 38px #0c30372b;z-index:10;backdrop-filter:blur(12px)}
.island-dock-actions{display:flex;gap:5px;align-items:stretch}
.island-dock button,.island-dock summary{min-height:44px;touch-action:manipulation}
.island-dock :is(button,summary,input):focus-visible{outline:2px solid #315f63;outline-offset:3px}
.island-dock #walk-toggle{display:flex;gap:8px;align-items:center;padding:10px 13px;font-size:12px;white-space:nowrap;border:1px solid #bdc7bd;border-radius:6px;background:transparent;min-width:145px}
.island-dock #walk-toggle:disabled{opacity:.5}
.island-dock #walk-toggle .exploration-copy{display:block}
.island-dock #walk-toggle strong{font-size:12px;font-weight:500}
.island-dock #walk-toggle small{display:none}
.credo-start{display:flex;align-items:center;gap:9px;padding:9px 15px;background:#193e43;color:#fff;border:1px solid #193e43;border-radius:6px;font:500 12px/1.25 Geist,sans-serif}
.credo-start:hover{background:#28575a}
.credo-start-mark{width:29px;height:24px;display:block;color:#d7c28d;flex:none}
.credo-start-mark svg{width:100%;height:100%}
.island-dock .world-tools{position:static;inset:auto;display:flex;flex-direction:row;align-items:center;gap:2px;opacity:1;visibility:visible;transform:none;translate:none}
.island-dock .world-tools>button{background:transparent;border:0;border-radius:4px;width:38px;min-width:38px;height:44px;min-height:44px;font-size:20px;backdrop-filter:none}
.island-dock .world-tools>button:hover,.island-dock .world-tools>button[aria-pressed=true]{background:#e1e7de;color:#173e43}
.island-dock .world-zoom{display:grid;grid-template-columns:28px minmax(60px,96px) 28px;align-items:center;gap:2px;width:160px;padding:0;border:0;min-height:44px}
.island-dock .world-zoom label,.island-dock .world-zoom output{display:none}
.island-dock .world-zoom button{width:28px;min-width:28px;height:44px;background:transparent;font-size:22px;padding:0}
.island-dock .world-zoom input{width:100%;min-width:0;height:44px;margin:0;accent-color:#335c5c}
.island-more{position:relative}
.island-more summary{list-style:none;display:flex;align-items:center;justify-content:center;padding:8px;font-size:11px;cursor:pointer;border-radius:4px}
.island-more summary::-webkit-details-marker{display:none}
.island-more[open] summary,.island-more summary:hover{background:#e1e7de}
.island-more-menu{position:absolute;bottom:calc(100% + 20px);right:0;background:#faf9f3;border:1px solid #c2ccc1;border-radius:9px;padding:8px;box-shadow:0 14px 40px #0b303a35;width:230px;display:grid;gap:3px}
.island-more-menu>button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;font-size:13px;text-align:left;border:0;background:transparent;border-radius:4px;min-height:44px;gap:12px}
.island-more-menu>button:hover{background:#e6eadd}
.island-more-menu svg{display:none}.island-more-menu small{display:none}.island-more-menu strong{font-size:13px;font-weight:500}
body .island-first-hint{top:265px;bottom:auto;left:3.2vw;width:235px;max-width:235px;padding:14px 31px 14px 14px;background:#faf9f3ef;border:0;border-radius:6px;box-shadow:none;font:400 11px/1.55 Geist,sans-serif}
body .island-first-hint strong{font-weight:500;display:block;margin-bottom:4px}
body .island-first-hint #dismiss-help{right:2px;top:2px;min-width:32px;min-height:32px}
body .island-first-hint>button[data-open]{display:none}
body.has-detail .world-caption,body.has-detail .island-first-hint{display:none}
body.has-detail .island-dock{left:25%;bottom:29px;gap:7px;max-width:48vw}
body.has-detail .island-dock-actions,body.has-detail .island-dock .world-zoom{display:none}
body.has-detail .detail-panel{top:105px;bottom:30px;right:28px;border:1px solid #ffffff88;border-radius:10px;background:#faf9f3;box-shadow:0 20px 65px #0e293b26}
.detail-panel .panel-bar{background:#faf9f3;border-color:#d8ded3}
.detail-panel .detail-body{padding:26px 28px 36px}
.detail-panel .detail-body h2{font-family:Geist,sans-serif;font-size:clamp(32px,3.3vw,48px);letter-spacing:-.045em;font-weight:500}
.detail-panel .detail-body>.lead{font-size:16px;line-height:1.5;margin-bottom:24px}
.detail-panel.panel-expanded{max-width:880px;width:72vw}
body.character-talking .island-dock{display:none}
body.character-talking:not(.reading) .world-caption{display:none}
body.walk-mode .island-dock{bottom:20px;right:24px;left:auto;translate:none;width:auto}
body.walk-mode .island-dock-actions,body.walk-mode .island-dock .world-zoom{display:none}
/* Reset the earlier top anchor before docking the hint at the bottom.
   Fixed top + bottom + auto height otherwise stretches it over the world. */
body.walk-mode .walk-hint{top:auto;bottom:22px;height:max-content;align-content:start;pointer-events:none}
body.walk-mode .walk-hint #walk-exit{pointer-events:auto}
body.walk-mode .walk-hint>.walk-door-hint{grid-column:1/-1;grid-row:3;max-width:none}
@media(min-width:761px){body.has-touch-input.walk-mode .walk-stick{bottom:calc(148px + env(safe-area-inset-bottom,0px))}}
.credo-story{top:118px;left:3.2vw;width:320px;max-height:calc(100svh - 150px);overflow:auto;background:#faf9f3;border:1px solid #fff9;border-radius:10px;padding:21px 22px 17px;box-shadow:0 18px 60px #102f3e24;z-index:9;scrollbar-width:thin}
.credo-story-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px}
.credo-kicker{font-size:10px;letter-spacing:.04em;color:#6a644d;margin:0}
.credo-close{font-size:23px;min-width:36px;min-height:36px;margin:-10px -10px -10px 0}
.credo-story h2{font:500 30px/1.06 Geist,sans-serif;letter-spacing:-.045em;text-wrap:balance;margin:0 0 13px;color:#173e43}
.credo-story h2:focus{outline:none}
.credo-text{font:400 13px/1.65 Geist,sans-serif;color:#456165;margin-bottom:18px}
.credo-reference{margin:0 0 20px}.credo-reference img{width:100%;height:110px;object-fit:cover;border-radius:4px;background:#d9e2dc}.credo-reference figcaption{font-size:9px;color:#607578;margin-top:6px}.credo-story[data-stop="3"] .credo-reference img{object-position:50% 29%}
.credo-progress{display:flex;gap:5px;margin-bottom:12px}.credo-progress button{position:relative;flex:1;min-height:36px;font-size:10px;color:#576f70;border-top:2px solid #ccd4c8}.credo-progress button[aria-current=step]{border-color:#b59956;color:#153c42;font-weight:600}
.credo-actions{display:flex;gap:8px}.credo-actions button{min-height:44px;border:1px solid #cad3c6;border-radius:4px}.credo-back{width:44px;font-size:18px}.credo-back:disabled{opacity:.35}.credo-next{flex:1;padding:8px;background:#183f44;color:#fff;font-size:12px}.credo-detail{font-size:11px;min-height:44px;text-decoration:underline;text-underline-offset:4px;margin-top:3px}
.credo-story :is(button,a):focus-visible{outline:2px solid #8b763d;outline-offset:3px}
body.credo-active .world-caption,body.credo-active #explore-prompt,body.credo-active #world-labels{visibility:hidden;pointer-events:none}
body.credo-active .island-dock-actions{display:none}
body.credo-active .island-dock{left:auto;right:3.2vw;translate:none;bottom:28px}
body.cinema-view .film-dialog{width:min(1160px,94vw);max-width:1160px;background:#102a30;color:#faf9f3;border:1px solid #718485;border-radius:9px;box-shadow:0 30px 110px #00121dda}
body.cinema-view .film-dialog::backdrop{background:#04191bd9;backdrop-filter:blur(3px)}
body.cinema-view .film-dialog .dialog-heading{border-color:#536b70}
body.cinema-view #film-view video{max-height:73svh;background:#061517}
@media(max-width:1100px){.header-edition{display:none!important}.island-dock{gap:8px}.island-dock #walk-toggle{min-width:125px;padding:8px}.island-dock .world-zoom{width:126px;grid-template-columns:26px minmax(40px,70px) 26px}.credo-start{padding-inline:10px}.site-header nav{gap:4px!important}}
@media(max-width:760px){
 body:not(.reading) .site-header{min-height:88px;gap:10px;padding:9px 16px 16px;align-items:center;background:linear-gradient(#faf9f3 78%,#faf9f300)}
 body:not(.reading) .brand,body:not(.reading) .brand img{width:116px}
 .site-header .language-switch{margin-left:auto}.site-header .language-switch select{min-height:44px;max-width:80px;padding:6px;font-size:10px}.site-header .language-switch>span{display:none}
 .site-header nav{margin-left:0;gap:0!important}.site-header nav>button{display:none!important}.site-header .island-saved-slot{display:block}.site-header .island-saved-slot button{padding:5px!important;min-width:44px;font-size:10px!important;gap:5px!important}
 body:not(.reading) .world-caption{display:block;top:98px;left:18px;max-width:215px;pointer-events:none}
 body:not(.reading) .world-caption .eyebrow{display:none}body:not(.reading) .world-caption h2{font-size:22px;line-height:1.08;margin-bottom:7px}body:not(.reading) .world-caption>p:last-child{font-size:10px;max-width:24ch;line-height:1.45}
 body.has-detail .world-caption,body.walk-mode .world-caption{display:none}
 #world-labels .waypoint{width:114px;height:44px;min-height:44px;padding:0 8px 0 21px;border-radius:4px}#world-labels .waypoint strong{font-size:11px}#world-labels .waypoint small{display:none!important}#world-labels .waypoint::before{left:9px}
 .island-dock{display:grid;grid-template-columns:minmax(176px,1fr) 132px;gap:5px 2px;bottom:calc(12px + env(safe-area-inset-bottom,0px));width:calc(100% - 24px);max-width:430px;padding:8px;border-radius:12px}
 .island-dock-actions{grid-column:1/-1;display:grid;grid-template-columns:minmax(118px,.85fr) minmax(0,1.25fr);gap:6px}
 .island-dock #walk-toggle{min-width:0;justify-content:center;font-size:11px;padding:8px 6px;gap:6px}.island-dock #walk-toggle strong{font-size:11px}.island-dock #walk-toggle svg{width:18px}
 .credo-start{font-size:11px;padding:8px;justify-content:center;gap:6px}.credo-start-mark{width:25px}
 .island-dock .world-tools{display:flex;gap:0;justify-content:flex-start}.island-dock .world-tools>button{min-width:44px;width:44px;height:44px;font-size:19px}.island-more summary{padding-inline:5px;font-size:10px;min-width:44px}
 .island-dock .world-zoom{width:132px;padding:0;grid-template-columns:28px minmax(0,1fr) 28px;min-height:44px}.island-dock .world-zoom button{width:28px}
 .island-more-menu{right:-95px;bottom:calc(100% + 10px);width:230px}
 body:not(.reading) .world-footer{display:none}
 body .island-first-hint{top:180px;left:18px;width:202px;max-width:202px;font-size:10px;padding:11px 28px 11px 12px;line-height:1.5}.island-first-hint strong{font-size:10px}
 body.has-detail .detail-panel{top:auto;bottom:0;left:0;right:0;width:100%;min-width:0;max-width:none;height:64svh;max-height:none;border-radius:18px 18px 0 0;border-width:1px 0 0;z-index:14}
 body.has-detail .detail-panel .panel-bar{min-height:47px;padding-inline:20px}.detail-panel .detail-body{padding:21px 22px calc(24px + env(safe-area-inset-bottom,0px))}.detail-panel .detail-body h2{font-size:32px}.detail-panel .detail-body>.lead{font-size:14px}
 body.has-detail .island-dock{display:none}.detail-panel.panel-expanded{height:calc(100svh - 88px)!important;max-height:none;translate:none;transform:none}
 /* In walk mode the mobile toolbar sits above the world. Its menu opens below it. */
 body.walk-mode .island-dock {
   --walk-dock-top: 99px;
   display: flex;
   top: var(--walk-dock-top);
   right: max(14px, env(safe-area-inset-right, 0px));
   bottom: auto;
   left: auto;
   width: auto;
   max-width: calc(100vw - 28px);
   padding: 5px;
 }
 body.walk-mode .island-more-menu {
   top: calc(100% + 10px);
   right: 0;
   bottom: auto;
   width: min(260px, calc(100vw - 40px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)));
   max-height: min(540px, calc(100svh - var(--walk-dock-top) - 76px - env(safe-area-inset-bottom, 0px)));
   max-height: min(540px, calc(100dvh - var(--walk-dock-top) - 76px - env(safe-area-inset-bottom, 0px)));
   touch-action: pan-y;
 }
 body.walk-mode .walk-hint{position:fixed;inset:auto 14px calc(14px + env(safe-area-inset-bottom,0px)) 14px;width:auto;max-width:none;height:max-content;min-height:0;padding:10px 12px;grid-template-columns:minmax(0,1fr) 84px;gap:4px 12px;border-radius:10px}
 body.walk-mode .walk-hint>.walk-door-hint{font-size:10px!important;line-height:1.4}
 body.walk-mode .walk-stick{bottom:calc(132px + env(safe-area-inset-bottom,0px))}
 .credo-story{top:auto;bottom:calc(80px + env(safe-area-inset-bottom,0px));left:12px;right:12px;width:auto;max-height:47svh;padding:16px 18px 10px;border-radius:12px;z-index:11}.credo-story-top{margin-bottom:10px}.credo-story h2{font-size:25px;margin-bottom:10px;max-width:23ch}.credo-text{font-size:12px;line-height:1.6;margin-bottom:10px}.credo-reference{display:none}.credo-progress{margin-bottom:7px}.credo-progress button{min-height:30px}.credo-detail{margin-top:0;min-height:36px}.credo-kicker{font-size:10px}
 body.credo-active .island-dock{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));width:auto;max-width:none;display:grid;grid-template-columns:minmax(176px,1fr) 132px;translate:none}
 body.cinema-view .film-dialog{width:96vw;border-radius:8px}body.cinema-view #film-view video{max-height:68svh}
}
@media(max-height:500px){
 body.walk-mode .walk-hint>strong,body.walk-mode .walk-hint>.walk-door-hint{display:none}
 body.walk-mode .walk-hint>.mobile-walk-hint{grid-row:1}
 body.walk-mode .walk-hint #walk-exit{grid-row:1}
 body.has-touch-input.walk-mode .walk-stick{bottom:calc(94px + env(safe-area-inset-bottom,0px))}
}
@media(max-width:360px){.island-dock{grid-template-columns:minmax(176px,1fr) 90px}.island-dock .world-zoom{width:90px}.island-dock .world-tools>button{width:44px;min-width:44px}.island-more summary{min-width:44px;padding:3px}.credo-start{font-size:10px}.island-dock #walk-toggle strong{font-size:10px}.site-header .language-switch select{max-width:69px}.credo-story{max-height:49svh}}
@media(max-height:540px) and (min-width:761px){.credo-story{top:95px;max-height:calc(100svh - 118px);width:300px}.credo-reference{display:none}.island-dock{bottom:12px}body:not(.reading) .world-footer{display:none}}
@media(prefers-reduced-motion:reduce){.island-dock,.credo-story,.detail-panel{animation:none;transition:none}}

/* Reset the old compact caption's hidden children and tinted strip. */
body:not(.reading) .world-caption{background:none;border:0;padding:0;height:auto;box-shadow:none;width:auto}
body:not(.reading) .world-caption h2,body:not(.reading) .world-caption>p:last-child{display:block}
@media(max-width:760px){body .island-first-hint{display:none}body:not(.reading) .world-caption h2{display:block}body.has-detail .world-caption,body.walk-mode .world-caption{display:none}}

@media(max-width:760px){body:not(.reading) .world-caption{color:#173e43;filter:none}body:not(.reading) .world-caption>p:last-child{color:#214a50;opacity:1}}
@media(max-width:760px){
 body:not(.reading) .world-caption{background:linear-gradient(90deg,#173e48cf,#173e4822);border-radius:7px;padding:11px 13px;width:228px;max-width:calc(100vw - 110px)}
 body:not(.reading) .world-caption h2,body:not(.reading) .world-caption>p:last-child{color:#fff;text-shadow:0 1px 4px #0b303b44}
 .island-dock,body.credo-active .island-dock{grid-template-columns:minmax(176px,1fr) 136px}
 .island-dock .world-zoom{width:136px;grid-template-columns:44px minmax(0,1fr) 44px;gap:2px}
 .island-dock .world-zoom button{width:44px;min-width:44px}
}
@media(max-width:360px){
 .island-dock,body.credo-active .island-dock{grid-template-columns:minmax(176px,1fr) 90px}
 .island-dock .world-zoom{width:90px;grid-template-columns:44px 44px}
 .island-dock .world-zoom input{display:none}
}

/* A scenic destination is a view, not another modal or a flight-booking service. */
.airport-caption{display:none}
body.airport-view .world-caption,body.airport-view .island-first-hint{display:none}
body.airport-view .airport-caption{display:block;position:fixed;left:3.2vw;top:120px;width:238px;padding:20px;border-radius:10px;background:#153f48ec;color:#fff;box-shadow:0 8px 26px #092b3520;z-index:3}
.airport-caption h2{font:500 25px/1.17 Geist,sans-serif;letter-spacing:-.045em;white-space:pre-line;margin:12px 0}
.airport-caption p{font:400 12px/1.6 Geist,sans-serif;margin:0 0 15px;color:#e2e8df}
.airport-caption p:first-child{font-size:10px;color:#dac798}
.airport-caption a{display:inline-flex;align-items:center;min-height:44px;font:500 12px/1.4 Geist,sans-serif;color:#fff;text-underline-offset:5px}
@media(max-width:759px){body.airport-view .airport-caption{left:14px;right:14px;top:112px;width:auto;padding:12px 16px;pointer-events:none}.airport-caption h2{font-size:22px;margin:0}.airport-caption p,.airport-caption a{display:none}}
@media(prefers-reduced-motion:reduce){.airport-caption{transition:none}}

.island-more-menu {
  max-height: min(540px, calc(100svh - 230px));
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  padding-inline-end: 18px;
}
