.landing-view{height:100%;overflow:auto;padding:34px 28px 20px;display:flex;flex-direction:column}.landing-header h1{font-size:32px;line-height:1.5;margin:27px 0 12px;letter-spacing:-1.3px}.landing-header>p:last-child{font-size:12px;color:var(--muted);margin:0 0 26px}.destination-list{display:grid;gap:15px}.destination{display:flex;flex-direction:column;width:100%;border:1px solid #d8d9cf;border-radius:12px;padding:18px 20px 20px;background:#f0efe6;color:var(--forest);text-align:left;transition:background .15s,border-color .15s}.destination.namyang{background:#eee7db;color:#884631;border-color:#dac9b8}.destination:hover,.destination:focus-visible{background:#e4e8dd;border-color:#9baa96}.destination-index{display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:1.5px;font-weight:600;color:#778071;min-height:17px}.coming-tag{letter-spacing:0;font-size:10px;border:1px solid #c6cdbe;border-radius:20px;padding:3px 8px}.building-icon{width:180px;height:119px;align-self:center;margin:4px 0 10px;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.icon-tint{stroke:none;fill:currentColor;opacity:.09}.destination-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px}.destination-bottom strong{display:block;font-family:'Docent Serif',Batang,Georgia,serif;font-size:21px;font-weight:400;letter-spacing:-.7px}.destination-bottom small{display:block;color:#6e756a;font-size:10px;margin-top:8px}.destination-arrow{font-size:25px;font-weight:300}.landing-note{margin:auto 0 0;padding-top:22px;color:#7c8377;font-size:11px;line-height:1.8;text-align:center;min-height:52px}.map-header{padding:18px 24px 8px}.home-link{display:inline-flex;align-items:center;min-height:44px;margin-left:-5px;padding:0 5px;font-size:11px;color:#6f7e70}.map-header .eyebrow{font-size:8px;letter-spacing:2px;margin-top:3px}.map-header h1{font-size:28px;margin:10px 0 6px}.map-header>p:last-child{font-size:11px}.map-stage{margin:0 5px;overflow:visible}.map-canvas{mix-blend-mode:multiply}.map-colors,.map-leaders,.map-markers{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.map-colors{stroke:none}.target-shape{fill:var(--target-color);fill-opacity:.28;stroke:var(--target-color);stroke-width:2.4;stroke-opacity:.5;transition:fill-opacity .15s,stroke-width .15s}.target-shape.is-active{fill-opacity:.64;stroke-width:6;stroke-opacity:1}.map-leaders{overflow:visible;stroke:#697b66;stroke-width:.8;opacity:.55}.map-marker{pointer-events:auto;position:absolute;transform:translate(-50%,-50%);width:48px;height:48px;border:0;border-radius:50%;padding:0;background:transparent;display:grid;place-items:center;touch-action:manipulation}.marker-face{display:flex;align-items:center;justify-content:center;border-radius:50%;width:22px;height:22px;font-size:10px;font-weight:700;background:#fcfcf4;border:1px solid #6e856d;color:#345941;box-shadow:0 1px 3px #1e342519;pointer-events:none;transition:background .15s,box-shadow .15s}.has-guide .marker-face{width:29px;height:29px;flex-direction:column;gap:0;background:var(--brick);color:#fff;border:1px solid #8b412d;font-size:10px;line-height:11px}.marker-face svg{height:10px;width:10px;stroke-width:1;flex:none}.map-marker:hover .marker-face,.map-marker:focus-visible .marker-face,.map-marker.is-highlighted .marker-face,.map-marker.is-pending .marker-face{box-shadow:0 0 0 5px #a6533c28;background:#efcfaa;color:#5c3928;border-color:#a6533c}.map-marker:focus-visible{outline-offset:-2px}.map-tooltip{position:absolute;z-index:10;left:50%;bottom:8px;transform:translateX(-50%);max-width:90%;padding:9px 13px;border-radius:20px;white-space:nowrap;box-shadow:0 3px 18px #1d352322;background:#243c31;color:#fff;font-size:11px;pointer-events:none}.map-footer{padding:10px 24px 17px;border-top:1px solid #e6e6da;z-index:1}.map-legend{display:flex;gap:20px;font-size:10px;color:#52664f}.map-legend span{display:flex;align-items:center;gap:6px}.map-legend b{display:inline-grid;place-items:center;width:20px;height:20px;font-size:13px}.legend-guide{border-radius:50%;background:var(--brick);color:white}.legend-name{color:#658464}.map-footer p{font-size:10px;color:#7b8274;margin:10px 0 5px}.map-footer small{font-size:8px;color:#8c9386;line-height:1.5}.name-panel{position:absolute;bottom:0;left:0;right:0;z-index:15;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;border-radius:20px 20px 0 0;padding:22px 24px 28px;background:var(--paper);box-shadow:0 -8px 35px #243c3126;border-top:1px solid #d6dccf}.name-panel .eyebrow{font-size:9px}.name-panel h2{font-family:'Docent Serif',Batang,serif;font-weight:400;font-size:22px;margin:12px 0}.name-panel p:last-child{font-size:11px;color:#73806e;line-height:1.8;margin:0;word-break:keep-all}.name-panel .close-button{margin-top:-12px;font-size:28px}.other-guide-view{height:100%;display:flex;flex-direction:column;background:var(--paper);overflow:auto}.other-photo{position:relative;min-height:220px;flex:1;overflow:hidden;background:#283b2b}.other-photo img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.other-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(#18301c60,transparent 30%);pointer-events:none}.other-photo-caption{position:absolute;z-index:1;bottom:14px;right:18px;color:white;font-size:9px;text-shadow:0 1px 5px #000}.other-status{font-size:10px;background:#243c31a6;color:white;padding:9px 12px;border-radius:20px}.other-copy{padding:24px 25px 20px;flex:none}.other-copy .eyebrow{font-size:9px;color:var(--brick)}.other-copy h2{font-family:'Docent Serif',Batang,serif;font-size:29px;font-weight:400;margin:12px 0 7px;letter-spacing:-1px}.other-architect{font-size:10px;color:#87907f;margin:0 0 18px}.other-copy #other-text p{font-size:13px;line-height:1.85;color:#445741;word-break:keep-all;margin:0 0 12px}.other-copy .listen-button{margin-top:20px}.other-guide-view .detail-header{pointer-events:none}.other-guide-view .detail-header>*{pointer-events:auto}
@media(max-height:740px){.landing-view{padding:20px 25px 14px}.landing-header h1{font-size:27px;margin-top:18px;margin-bottom:10px}.landing-header>p:last-child{margin-bottom:18px;font-size:11px}.destination{padding:12px 17px 15px}.destination-list{gap:11px}.building-icon{width:148px;height:98px;margin:0 0 4px}.destination-bottom strong{font-size:19px}.destination-bottom small{font-size:9px;margin-top:6px}.landing-note{padding-top:14px;font-size:10px}.map-header{padding-top:8px}.home-link{min-height:38px}.map-header h1{font-size:25px;margin:6px 0}.map-footer{padding:7px 22px 12px}.map-footer p{margin:6px 0 3px}.other-photo{min-height:220px}.other-copy{padding:20px 23px 16px}.other-copy #other-text p{font-size:12px;line-height:1.75}.other-copy .listen-button{margin-top:14px}.other-copy h2{font-size:26px}}
@media(min-width:700px){.app{max-width:560px}.landing-view{padding-left:42px;padding-right:42px}.building-icon{width:194px;height:128px}.map-header{padding-left:32px}.map-footer{padding-left:32px}.other-copy{padding-left:32px;padding-right:32px}}
/* Guide buildings use a traced boundary and a square document badge.
   Name-only locations retain a plain round number, including in monochrome. */
.guide-edge{fill:none;stroke:#fffdf5;stroke-width:4.6;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.target-shape{stroke:none;fill-opacity:.23}
.target-shape.guide-shape{stroke:#9b4934;stroke-width:1.5;stroke-opacity:1;fill-opacity:.23;vector-effect:non-scaling-stroke}
.target-shape.is-active{stroke:#47684d;stroke-width:1.5;fill-opacity:.6;vector-effect:non-scaling-stroke}
.target-shape.guide-shape.is-active{stroke:#783520;stroke-width:2.3;fill-opacity:.48}
.has-guide .marker-face{width:33px;height:28px;flex-direction:row;gap:3px;border-radius:7px;font-size:11px;line-height:1;border:1px solid #823822;box-shadow:0 1px 3px #3b211d2a}
.marker-face svg{height:11px;width:11px;stroke-width:1.1}
.name-only .marker-face{width:21px;height:21px;border-color:#8b9b81;background:#fafaf1;font-size:9px;font-weight:600;color:#435b3e;box-shadow:none}
.legend-guide{border-radius:5px;border:1px solid #823822}.legend-name{font-size:9px!important;border:1px solid #8b9b81;border-radius:50%;width:17px!important;height:17px!important;background:#fafaf1}
.map-legend{gap:16px;font-size:10px}.other-notice{font-size:10px;line-height:1.7;color:#85654e;background:#ede9dd;border-left:2px solid #bfa58b;padding:7px 10px;margin:12px 0 0;word-break:keep-all}.other-photo-caption{padding:5px 8px;border-radius:4px;background:#18301cbb;max-width:85%;line-height:1.5}.other-copy h2{word-break:keep-all}
@media(max-height:740px){.other-copy .other-notice{font-size:9px;margin-top:8px;padding:5px 8px}.other-copy h2{font-size:24px}.other-copy .other-architect{margin-bottom:12px}.other-copy .audio-status{font-size:9px}}

/* v4: a fixed alignment system; the map keeps its native aspect ratio. */
.map-stage{display:block;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.map-canvas{margin:8px auto 16px}
.map-leaders{stroke:#617361;stroke-width:.85;opacity:.72;fill:none;stroke-linejoin:round;stroke-linecap:round}
.map-tooltip{position:sticky;bottom:8px;left:auto;width:max-content;max-width:95%;margin:0 auto 8px;transform:none;white-space:normal;text-align:center}
.guide-edge{stroke-width:3.3}
.target-shape.guide-shape{stroke-width:1.1;fill-opacity:.13}
.target-shape.guide-shape.is-active{stroke-width:1.7;fill-opacity:.3}
.gallery-viewport{touch-action:pan-y;isolation:isolate}
.gallery-arrow{position:absolute;z-index:3;top:50%;transform:translateY(-50%);width:44px;height:52px;border:1px solid #ffffff62;border-radius:24px;color:#fff;background:#1b3028a8;backdrop-filter:blur(8px);font-family:Georgia,serif;font-size:35px;line-height:1;padding:0 0 5px}
.gallery-prev{left:8px}.gallery-next{right:8px}
.gallery-arrow:disabled{opacity:.3;cursor:default}
.gallery-count{position:absolute;z-index:3;top:76px;right:20px;padding:6px 10px;border:1px solid #ffffff55;border-radius:20px;background:#1b3028a8;color:#fff;font-size:10px;font-variant-numeric:tabular-nums;letter-spacing:1px}
.cathedral-caption{position:absolute;z-index:2;top:109px;left:23px;right:23px;color:#fff;font-size:10px;text-shadow:0 1px 5px #000;pointer-events:none}
.other-photo{min-height:280px;background:#24332b}
.other-photo img{object-fit:contain}
.other-photo-caption{left:18px;right:auto;max-width:calc(100% - 36px)}
.detail-view[data-panel=open] .cathedral-caption{top:auto;bottom:10px;font-size:9px}
.detail-view[data-panel=open] .gallery-count{top:76px}
.gallery-viewport:focus-visible{outline-offset:-4px}
@media(max-height:740px){.other-photo{min-height:260px}.cathedral-caption{font-size:9px}.gallery-arrow{height:48px}}

.map-hintline{height:28px;display:flex;align-items:center;font-size:11px;color:var(--muted)}.map-hintline p{margin:0}.map-hintline .map-tooltip{position:static;transform:none;margin:0;padding:0;border-radius:0;box-shadow:none;background:none;color:#884631;max-width:100%;font-size:11px;font-weight:600;text-align:left}

/* v5: direct surfaces and compact nearby markers; no leader-line layer. */
.map-colors{overflow:visible}
.map-target{pointer-events:visiblePainted;cursor:pointer;touch-action:pan-y}
.map-marker{touch-action:pan-y}
.name-only{width:44px;height:44px}
.name-only .marker-face{width:17px;height:17px;font-size:8px;border-color:#7b8d73;background:#fffef6e8}
.has-guide .marker-face{width:28px;height:24px;border-radius:6px;font-size:10px;gap:2px}
.has-guide .marker-face svg{width:9px;height:9px}
.target-shape{fill-opacity:.19}
.target-shape[data-id="20"]{fill-opacity:.14}
.target-shape.guide-shape{fill-opacity:.12;stroke-width:.85}
.target-shape.is-active{fill-opacity:.44;stroke-width:1.3}
.target-shape.guide-shape.is-active{fill-opacity:.3;stroke-width:1.5}
.name-panel{padding:22px 24px calc(24px + env(safe-area-inset-bottom));max-height:52%;overflow:auto}
.name-panel .eyebrow{letter-spacing:.8px;color:#8b654d;font-size:10px}
.name-panel h2{margin:10px 0 12px;font-size:24px}
.name-panel p:last-child{font-size:13px;line-height:1.85;color:#4c5b4c;white-space:pre-line}
.name-panel .eyebrow:last-child{font-size:10px}
.audio-status:empty{display:none}
.map-footer p{margin:3px 0;font-size:10px}

.map-label-covers{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;filter:blur(.25px)}
.map-marker:focus-visible .marker-face{outline:2px solid #a6533c;outline-offset:2px}
.map-label-covers{stroke:none}

/* Same image coordinate space as the photograph, including cover cropping. */
.entrance-view{position:absolute;inset:0;z-index:40;background:#26382f;overflow:hidden;color:#fff}
.entrance-scene{position:absolute;inset:0;width:100%;height:100%;stroke:none}
#entrance-photo{filter:brightness(.72) saturate(.72)}
.entrance-shade{position:absolute;inset:0;background:linear-gradient(#0d211c20,transparent 50%,#0d211c75);pointer-events:none}
#entrance-title{position:absolute;left:28px;bottom:60px;font-family:'Docent Serif',Batang,serif;font-size:28px}
#entrance-skip{position:absolute;right:16px;top:calc(16px + env(safe-area-inset-top));min-width:88px;min-height:48px;border:1px solid #ffffff80;border-radius:25px;background:#183127a8;color:#fff}
.entrance-credit{position:absolute;left:28px;bottom:28px;font-size:10px;opacity:.85}
.walking-body{animation:walking-bob .32s ease-in-out infinite alternate}
.walking-leg{transform-origin:0 -18px;animation:walking-step .32s ease-in-out infinite alternate}
.right-leg{animation-direction:alternate-reverse}
@keyframes walking-bob{to{transform:translateY(-1.5px)}}
@keyframes walking-step{from{transform:rotate(-13deg)}to{transform:rotate(13deg)}}
.walk-routes{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;stroke:none}
.walk-route{opacity:0;transition:opacity 400ms ease;pointer-events:none}
.walk-route.is-visible{opacity:.85}
.walk-line{fill:none;stroke-width:1.35;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
.walk-toggles{display:flex;gap:8px;margin:0 0 8px}
.walk-toggles button{flex:1;min-height:48px;border:1px solid #bac3b4;border-radius:8px;background:transparent;color:#52664f;font-size:12px}
.walk-toggles button[aria-pressed=true]{background:#e2e7db;border-color:#65745c}
.walk-toggles #walk-down{color:#8a5a41;border-style:dashed}
.walk-toggles #walk-down[aria-pressed=true]{background:#f0e4d9;border-color:#9b6549}
.walk-toggles span{margin-right:4px}
@media(prefers-reduced-motion:reduce){.walk-route{transition:none}.walking-body,.walking-leg{animation:none}}

/* A quiet visual label inside a full 48px target. */
.detail-header .back-button{min-width:76px;min-height:48px;padding:0 12px 0 8px;gap:3px;border:0;border-radius:5px;background:#14261f70;font-size:13px;font-weight:400;letter-spacing:0;backdrop-filter:blur(6px)}
.detail-header .back-button svg{width:18px;height:18px;stroke-width:1.3}
.detail-header .back-button:hover{background:#14261fa0}
.detail-header .back-button:focus-visible{outline:2px solid #fff5d6;outline-offset:3px}
.has-guide .marker-face{width:20px;height:18px;border-radius:4px;gap:0;font-size:9px}
.has-guide .marker-face svg{display:none}
.detail-related-links{display:flex;gap:18px;margin-top:4px;font-size:11px}
.detail-related-links a{display:inline-flex;align-items:center;min-height:48px;color:#f3eddd;text-decoration:underline;text-underline-offset:4px}
.draft-tag{display:inline-block;margin:0 0 10px;padding:4px 6px;border:1px solid #d3c6b6;font-size:10px;color:#85654e}
.other-copy .other-look{font-size:12px;line-height:1.7;color:#8a5a41}
.other-expanded summary{min-height:48px;display:flex;align-items:center;font-size:12px;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.map-footer{flex-shrink:0}
.place-picker{margin-top:6px;border-top:1px solid #d6dccf}
.place-picker summary{min-height:48px;padding:12px 0;font-size:14px;line-height:24px;cursor:pointer}
.place-picker summary:focus-visible{outline:2px solid #a6533c;outline-offset:2px}
.place-list{display:grid;gap:6px;max-height:30vh;max-height:30dvh;overflow:auto;overscroll-behavior:contain;padding:3px 3px 8px}
.place-list button{width:100%;min-height:48px;border:1px solid #c7cfbf;border-radius:6px;background:#faf9f3;color:#243c31;padding:10px 12px;font-size:14px;line-height:24px;text-align:left}
.place-list button:focus-visible{outline:2px solid #a6533c;outline-offset:1px}
.other-expanded>p{font-size:13px;line-height:1.85;word-break:keep-all}
#other-sources{display:flex;flex-direction:column;gap:10px;font-size:11px;text-decoration:underline}

/* The original 900 x 725 model and this annotation share the photo canvas. */
.section-annotation{position:absolute;inset:0;pointer-events:none}
.section-annotation svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:none}
.section-annotation .section-label-leaders{fill:none;stroke:#565a50;stroke-width:1;vector-effect:non-scaling-stroke}
.section-level{position:absolute;transform:translate(-50%,-50%);padding:4px 7px;border:1px solid #787b6c80;border-radius:3px;background:#f7f5ecef;color:#343f32;font-size:12px;line-height:16px;font-weight:500;white-space:nowrap}
.section-level-upper{left:53.888889%;top:43.862069%}
.section-level-lower{left:66.444444%;top:92.965517%}
.detail-view[data-panel=open] .section-annotation{display:none}
.map-guide-names{position:absolute;inset:0;pointer-events:none}
.map-guide-name{position:absolute;transform:translateY(-50%);padding:3px 5px;border-radius:3px;background:#faf8f0e8;color:#74452f;font-size:11px;font-weight:500;line-height:15px;white-space:nowrap;pointer-events:none}
.map-guide-name[data-side=left]{transform:translate(-100%,-50%)}
.map-guide-name[data-side=below]{transform:translate(-50%,0)}
