/* State, rather than spectacle, guides exploration. */
.immersive-map #map-svg{touch-action:none}
.map-point .hit-area{fill:transparent;stroke:none;pointer-events:all}
.immersive-map .map-point .dot{fill:#233d32;stroke:#d6ddc6;stroke-width:1.8}
.immersive-map .map-point.visited .dot{fill:#c9d4b9;stroke:#c9d4b9}
.immersive-map .map-point .halo{fill:none;stroke:#c9d4b9;opacity:0;stroke-width:1.2}
.immersive-map .selection-open .map-point.selected .halo{opacity:1;stroke:#f2e7c9;stroke-width:2}
.immersive-map .selection-open .map-point.selected .dot{fill:#eee3bf;stroke:#eee3bf}
.immersive-map .map-point:focus-visible{outline:none}
.immersive-map .map-point:focus-visible .halo{opacity:1;stroke-width:2.5}
@media(hover:hover){.immersive-map .map-point:hover .halo{opacity:1}.immersive-map .map-point:hover .dot{stroke:#fff4d6;stroke-width:2.8}.immersive-map .map-point:hover text{visibility:visible!important}}
.immersive-map .map-point.label-hidden text{visibility:hidden}
.immersive-map .map-point:focus-visible text{visibility:visible!important}
.immersive-map .map-point .pulse{display:none}
.immersive-map .field-network .field-edge{animation:none;opacity:.55;stroke-dasharray:5 6}
.immersive-map .field-network .field-edge.local{stroke-dasharray:none}
.immersive-map .field-satellite{display:none}
.immersive-map .field-network .field-edge.local{display:none}
.immersive-map .detail-scale.selection-open .field-satellite,.immersive-map .detail-scale.selection-open .field-edge.local{display:initial}
.immersive-map .map-surface .field-panel{background:#f4f1e8;backdrop-filter:none;-webkit-backdrop-filter:none;animation:field-read .35s ease both;overflow-y:auto}
.immersive-map .focusing-place .field-panel{opacity:0;pointer-events:none;animation:none;transform:translateY(10px)}
.field-panel .field-objects{overflow:visible;flex:none}
.related-places{border-top:1px solid #c6c9ba;margin-top:18px;padding-top:16px}
.related-places h4{font-size:15px;font-weight:500;margin:0 0 8px}
.related-places p{font-size:12px;line-height:1.8;color:#566257}
.related-places button{display:block;width:100%;text-align:left;border-bottom:1px solid #d6d8cc;padding:12px 0;min-height:44px}
.related-places strong{display:block;font-size:15px;font-weight:500}
.related-places small{display:block;letter-spacing:0;font-size:12px;color:#566257;line-height:1.8;margin-top:5px}
.exploration-note{position:absolute;left:42px;top:32px;z-index:5;color:#dce2d0;pointer-events:none;display:flex;flex-direction:column;gap:8px}
.exploration-progress{font-size:14px;letter-spacing:.04em}.exploration-note small{font-size:11px;letter-spacing:.02em;color:#c2cebb}
.field-surface:not(.has-entered) .exploration-note,.entering-map .exploration-note{visibility:hidden}
.immersive-map .field-tools button,.immersive-map .map-controls button,.field-directory a,.field-panel button{min-height:44px}
.immersive-map .map-controls button{min-width:44px}
.immersive-map .field-regions .province-list button{min-height:44px}
.immersive-map .map-surface:before{display:none}
.immersive-map .map-surface:after{background:linear-gradient(0deg,#122b28b0,transparent 22%);pointer-events:none}
.field-veil{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
@keyframes field-read{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:800px){.exploration-note{left:24px;top:20px}.exploration-note small{font-size:10px}.immersive-map .map-surface .field-panel{top:42%;bottom:0;left:0;right:0;width:auto;max-height:58%;padding:20px 24px 80px;z-index:10}.immersive-map .field-tools{left:20px;gap:12px}.immersive-map .field-tools button{font-size:12px}.immersive-map .field-surface .map-bottom{right:20px;bottom:150px}.immersive-map .field-regions{bottom:40px}.immersive-map .field-whisper{display:none}.immersive-map .selection-open .field-tools,.immersive-map .selection-open .field-regions{visibility:hidden}.field-panel .field-description{-webkit-line-clamp:2}.immersive-map .field-satellite{display:none!important}}
@media(prefers-reduced-motion:reduce){.immersive-map .field-panel{animation:none!important;transition:none!important}.immersive-map .focusing-place .field-panel{opacity:1;transform:none}}
/* Field discovery: previews and a quiet, revisitable journal. */
.place-preview{position:absolute;z-index:15;width:280px;max-width:calc(100% - 24px);display:flex;background:#f4f1e8;color:#263f34;border:1px solid #c9c9b7;box-shadow:0 8px 28px #071e2033;pointer-events:none}
.place-preview[hidden]{display:none}.place-preview img{width:74px;object-fit:cover}.place-preview>div{padding:13px 16px}.place-preview strong{display:block;font:17px/1.6 AtlasSerif,'Songti SC',serif;margin:4px 0}.place-preview small,.place-preview span{display:block;font-size:12px;line-height:1.7;letter-spacing:0;color:#506252}
.discovery-receipt{position:absolute;left:42px;top:110px;z-index:12;max-width:min(400px,calc(100% - 48px));padding:12px 16px;background:#f0ecd9;color:#294438;border-left:2px solid #a88151;font-size:13px;line-height:1.8;opacity:0;transform:translateY(5px);transition:opacity .25s,transform .25s;pointer-events:none}.discovery-receipt.visible{opacity:1;transform:none}
.footprints-dialog{width:560px;max-width:calc(100vw - 32px);max-height:80dvh;box-sizing:border-box;padding:32px;background:#f4f1e8;color:#2a3e32;border:1px solid #b9c0ab;overflow:auto}.footprints-dialog::backdrop{background:#0c242ac9}.footprints-dialog h2{font-size:28px;margin:12px 0}.footprints-dialog h3{font-size:17px;margin:28px 0 12px}.footprints-dialog p{font-size:14px;line-height:1.8}.footprints-dialog .journal-local{color:#586653;font-size:12px}.journal-close{position:absolute;right:12px;top:12px;min-width:44px;min-height:44px;font-size:26px}.journal-row{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;text-align:left;min-height:52px;padding:12px 0;border-bottom:1px solid #c6c9ba;font-size:15px}.journal-row small{font-size:12px;letter-spacing:0;white-space:nowrap;color:#52634e}
.immersive-map .field-tools{gap:20px}.immersive-map .map-point:not(.selected) text{opacity:1}.immersive-map .selection-open .map-point:not(.selected):not(:focus-visible):not(:hover) .dot{opacity:.62}.immersive-map .field-panel button:focus-visible,.footprints-dialog button:focus-visible,.immersive-map .field-tools button:focus-visible{outline:2px solid #a86a37;outline-offset:4px}.immersive-map .field-panel h3:focus{outline:none}.immersive-map .field-dismiss{min-width:44px;min-height:44px}.immersive-map .map-point text{pointer-events:none}.immersive-map .map-point.dim{pointer-events:none}
@media(max-width:800px){.immersive-map .field-tools{left:20px;right:20px;gap:0;justify-content:space-between}.immersive-map .field-tools button{font-size:12px}.immersive-map .field-tools button span{margin-left:5px}.discovery-receipt{top:95px;left:24px;font-size:12px}.footprints-dialog{padding:26px 20px}.place-preview{display:none}.immersive-map .field-panel{padding-bottom:max(28px,env(safe-area-inset-bottom))!important}}
@media(prefers-reduced-motion:reduce){.discovery-receipt{transition:none;transform:none}.immersive-map .map-point text{transition:none}}
.immersive-map .field-surface:not(.selection-open) .field-network{visibility:hidden;pointer-events:none;opacity:0}
@media(max-width:800px){.immersive-map .field-surface .map-art-toggle{top:102px;bottom:auto;right:20px}.immersive-map .field-regions .province-list{gap:18px}}
@media(min-width:801px) and (max-height:500px){.immersive-map .map-surface .field-panel{top:20px;bottom:72px;width:290px;padding:20px}.immersive-map .selection-open .field-regions{left:26px;transform:none}.immersive-map .field-tools{left:24px;bottom:82px;gap:12px}.exploration-note{left:24px;top:18px}.exploration-note small{display:none}.discovery-receipt{top:48px;left:24px;max-width:380px}.immersive-map .map-bottom{bottom:20px}}
