/* The map texture and walking atlas are advanced by the shared scene clock. */
.natural-water{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;mix-blend-mode:normal;opacity:1}.natural-water[hidden]{display:none!important}
#npcLayer{position:absolute;inset:0;pointer-events:none;z-index:2}
.map-npc{position:absolute;width:var(--sprite-size,24px);height:var(--sprite-size,24px);padding:0;min-width:0;min-height:0;display:block;visibility:hidden;pointer-events:auto;transform:translate(-50%,-84.4%);transform-origin:50% 84.4%;border:0;border-radius:3px;background:none;isolation:isolate}
.walk-art-ready .map-npc{visibility:visible}.map-npc[hidden]{display:none}.map-npc::after{content:"";position:absolute;inset:-4px;background:none}
.npc-figure{position:absolute;inset:0;display:block;pointer-events:none;background-image:url('/img/cheongrium/visitors-walk.png');background-repeat:no-repeat;background-size:var(--atlas-width,1300%) var(--atlas-height,1600%);background-position:var(--sprite-frame,100%) var(--sprite-row,0%);transform:scaleX(var(--face,1));transform-origin:50% 84.4%}
.npc-ground-shadow{position:absolute;left:50%;top:84.4%;width:26%;height:5%;border-radius:50%;background:#253922;opacity:.16;filter:blur(.6px);transform:translate(-50%,-50%);pointer-events:none}
.map-npc:focus-visible{outline:1px solid #fff7d7;outline-offset:3px;background:#ffecc024}
.npc-name{display:none;position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%);font-size:9px;line-height:1.7;white-space:nowrap;background:#fff6e6;padding:0 6px;border-radius:4px;color:#635035;pointer-events:none}.map-npc:hover .npc-name,.map-npc:focus-visible .npc-name{display:block}
.pin{z-index:4}.pin[aria-pressed=true]{z-index:5}.map-controls,.life-controls{z-index:8}.life-controls{position:absolute;right:14px;top:14px;display:flex;gap:5px;align-items:center}.life-controls .motion-control,.life-controls>button{position:static;background:#fff9edf0;color:#5c5749;border-radius:24px;font-size:10px;padding:6px 11px;border:1px solid #ffffff88;min-height:32px}.npc-bubble{position:absolute;z-index:7;width:211px;padding:12px 13px 10px;background:#fffaf0f5;border:1px solid #e9d4b0;box-shadow:0 5px 18px #23321c25;border-radius:12px 12px 12px 3px;color:#514735;cursor:default;pointer-events:auto}.npc-bubble-head{display:flex;align-items:center;gap:7px;min-height:21px;margin-bottom:6px}.npc-bubble-head strong{font-size:11px;color:#8f6c36}.npc-bubble-head>span{font-size:9px;color:#8e806b}.npc-bubble p{font-size:12px;line-height:1.7;margin:0 0 7px;word-break:keep-all}.npc-place-link{border-top:1px solid #e6d9c2;width:100%;padding:8px 0 0;text-align:left;font-size:10px;color:#8f6c36}.npc-place-link span{float:right}.npc-bubble-close{margin-left:auto;flex:none;width:24px;height:24px;position:relative;padding:0;border-radius:50%;background:#f3e9d7}.dialog-close,#clearCourse,.npc-bubble-close{display:grid;place-items:center;padding:0;line-height:1;font-size:0!important;color:#554735;flex:none;box-sizing:border-box}.dialog-close::before,.dialog-close::after,#clearCourse::before,#clearCourse::after,.npc-bubble-close::before,.npc-bubble-close::after{content:'';grid-area:1/1;width:15px;height:1.6px;background:currentColor;border-radius:2px;transform:rotate(45deg)}.dialog-close::after,#clearCourse::after,.npc-bubble-close::after{transform:rotate(-45deg)}.npc-bubble-close::before,.npc-bubble-close::after{width:10px;height:1.3px}#clearCourse{width:32px;height:32px;border-radius:50%;background:#efe3cd}.dialog-close{width:42px;height:42px;right:11px;top:11px;backdrop-filter:blur(5px);border:1px solid #dcc8a4;background:#fffaf1ed;box-shadow:0 3px 12px #34322514}
.npc-story-tray{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:20px 0 0}.story-tray-title{font-size:12px;color:#756144;margin-right:8px}.npc-story-tray button{font-size:11px;border:1px solid #e3d7c3;border-radius:20px;padding:7px 12px;background:#fff9ed}.story-tray-note{width:100%;font-size:10px;color:#847762;margin-top:1px}.detail-chapters{border-top:1px solid #e8ddca;padding-top:20px;margin-top:20px;margin-bottom:22px}.detail-chapters>h3{font:400 18px/1.65 'Batang',Georgia,serif;letter-spacing:-.4px;word-break:keep-all;margin-bottom:21px}.detail-chapters article{display:grid;grid-template-columns:24px 1fr;gap:7px;margin-bottom:19px}.chapter-number{font:11px/1.8 Georgia,serif;color:#a58450;padding-top:2px}.detail-chapters h4{font-size:12px;margin:0 0 6px;font-weight:600;color:#655135}.detail-chapters article p{font-size:12px;line-height:1.9;color:#746654;margin:0;word-break:keep-all}.detail-chapters figure{margin:22px 0}.detail-chapters figure img{width:100%;height:150px;object-fit:cover;border-radius:7px;display:block}.detail-chapters figcaption{font-size:9px;color:#877960;line-height:1.6;margin-top:6px}.walk-ideas{background:#f5f0e4;padding:16px;border-radius:7px;margin-bottom:15px}.editorial-label{display:block;font-size:9px;line-height:1.7;color:#8a7757}.walk-ideas ul{padding:0;margin:12px 0 0;list-style:none}.walk-ideas li{font-size:12px;line-height:1.8;color:#6c5a43;margin:8px 0;display:flex;gap:8px}.walk-ideas li:before{content:'·';color:#b59154}.visit-check{border:1px solid #e9dcc8;border-radius:7px;padding:11px 13px}.visit-check summary{font-size:11px;color:#705739;cursor:pointer}.visit-check p{font-size:11px;line-height:1.9;color:#7d6a51;margin:9px 0 0}.golf-vision{margin:28px 0 0;border:1px solid #e1d6c1;border-radius:11px;background:linear-gradient(110deg,#efe9dc,#f9f6ee);padding:26px 28px;display:flex;align-items:center;gap:25px}.golf-symbol{flex:none;width:96px;height:96px;display:grid;place-items:center;border:1px solid #dbceb6;border-radius:50%;background:#f9f6ee}.golf-symbol svg{width:66px;fill:none;stroke:#8b794e;stroke-width:1.3}.golf-symbol ellipse{fill:#dadfc4;stroke:none}.golf-vision h2{font-size:24px;margin-bottom:8px}.golf-vision p:not(.eyebrow){font-size:12px;color:#7a6c55;margin:0;line-height:1.9}.golf-vision>button{margin-left:auto;background:#716040;color:#fffaf0;padding:12px 17px;border-radius:6px;font-size:12px;white-space:nowrap}.golf-status{border-left:2px solid #a8844c;background:#f4eddc;padding:14px 16px;margin:20px 0}.golf-status strong,.golf-status span{display:block;font-size:12px}.golf-status span{margin-top:6px;color:#7a6b54}
.life-paused #routeLine,.life-paused .map-vignette:after,.life-paused .pin:before{animation-play-state:paused!important}
@media(min-width:861px){.place-panel{max-height:calc(100dvh - 35px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c5b291 transparent}.place-panel .detail-photo{flex:none}}
@media(max-width:540px){.life-controls{right:9px;top:9px;gap:4px}.life-controls .motion-control,.life-controls>button{font-size:9px;padding:5px 8px;min-height:29px}.map-caption{max-width:130px;flex-wrap:wrap;font-size:7px;line-height:1.5}.npc-bubble{width:190px;padding:10px 12px}.npc-bubble p{font-size:11px}.npc-story-tray{gap:7px;padding-top:18px}.story-tray-title{width:100%;margin-bottom:3px}.npc-story-tray button{font-size:10px;padding:7px 10px}.story-tray-note{font-size:9px}.detail-chapters article p,.walk-ideas li{font-size:13px}.detail-chapters h4{font-size:13px}.detail-chapters>h3{font-size:20px}.detail-chapters figure img{height:195px}.visit-check summary{font-size:12px}.visit-check p{font-size:12px}.golf-vision{padding:21px 18px;gap:14px;flex-wrap:wrap;align-items:flex-start}.golf-symbol{width:52px;height:52px}.golf-symbol svg{width:39px}.golf-vision>div:nth-child(2){width:calc(100% - 66px)}.golf-vision h2{font-size:21px}.golf-vision .eyebrow{font-size:8px;letter-spacing:1.1px}.golf-vision p:not(.eyebrow){font-size:11px}.golf-vision>button{margin-left:66px;font-size:11px;padding:10px 14px}}
#changeVisitors{color:#80683f;background:#f2e7d2;border-color:#d9c7a4}.npc-bubble-head>span{white-space:nowrap}
/* Centre the strokes geometrically, independent of the old × text grid item. */
#clearCourse{position:relative}.dialog-close::before,.dialog-close::after,#clearCourse::before,#clearCourse::after,.npc-bubble-close::before,.npc-bubble-close::after{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(45deg)}.dialog-close::after,#clearCourse::after,.npc-bubble-close::after{transform:translate(-50%,-50%) rotate(-45deg)}
/* Reduced motion pauses the shared clock; an explicit motion button can resume it. */
@media(pointer:coarse){.npc-story-tray button{min-height:44px;padding:10px 12px}}
