@import url('https://fonts.googleapis.com/css2?family=Gowun+Dodum&family=Noto+Sans+KR:wght@400;500;600;700;800&display=swap');
:root{--paper:#f8f7f0;--ink:#394d3c;--green:#50745b;--muted:#8b9183;--border:#e3e5d8;--coral:#cb7b65;--soft:#eef1e6}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px 'Noto Sans KR',sans-serif}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{color:inherit;cursor:pointer}button{border:0;background:none}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid #bb8551;outline-offset:3px}a{color:inherit;text-decoration:none}.header{height:82px;padding:0 4.5%;display:flex;align-items:center;gap:45px;border-bottom:1px solid var(--border);background:#fcfbf5}.brand{display:flex;align-items:center;gap:10px;white-space:nowrap}.brand-house{width:33px;height:33px;image-rendering:pixelated}.brand>span{font-family:'Gowun Dodum',sans-serif;font-weight:bold;font-size:29px;letter-spacing:-2px}.brand small{border-left:1px solid #d4d9ca;padding-left:15px;margin-left:8px;color:#8a9283;font-size:12px;letter-spacing:.5px}.header nav{display:flex;gap:27px;margin-left:auto;height:100%;align-items:stretch}.nav{font-size:13px;position:relative;padding:0 5px;color:#8c9384}.nav.active{font-weight:700;color:var(--green)}.nav.active:after{position:absolute;content:'';height:3px;background:var(--green);bottom:0;left:0;right:0}.nav span{background:#e8eddf;font-size:10px;border-radius:7px;padding:1px 5px;margin-left:4px}.help-btn{display:flex;align-items:center;gap:7px;font-size:12px;color:#7e8777}.help-btn>span{border:1px solid #aeb7a4;border-radius:50%;width:17px;height:17px;line-height:15px;font-size:11px}main{max-width:1560px;margin:auto;padding:0 4.5%}.intro{display:flex;align-items:center;justify-content:space-between;padding:35px 0 29px;gap:20px}.eyebrow{font-size:11px;color:#7b8973;letter-spacing:1.1px;margin-bottom:10px}.tiny-spark{color:#c69a58;font-size:15px;margin-right:6px}h1{font-family:'Gowun Dodum',sans-serif;font-size:31px;letter-spacing:-1.2px;font-weight:400;margin:0 0 9px}h1 span{font-weight:bold}h1 i{font-style:normal;font-size:28px;color:#d2a779;display:inline-block;margin-left:13px;transform:rotate(15deg)}.intro p{margin:0;color:#93988a;font-size:12px}.chapter{display:flex;flex-direction:column;text-align:right;padding-right:2px;gap:6px}.chapter>span{font-size:10px;letter-spacing:1.5px;color:#b18d55}.chapter b{font-size:13px;font-weight:500}.chapter small{font-size:10px;color:#999e91}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:stretch}.map-column{min-width:0}.toolbar{display:flex;justify-content:space-between;align-items:center;background:#fffef8;border:1px solid var(--border);border-radius:12px 12px 0 0;padding:14px 18px;height:70px}.location{display:flex;align-items:center;gap:10px}.loc-icon{font-size:27px;color:#77906d}.location b{font-size:13px;font-weight:600}.location small{display:block;font-size:10px;color:#999f8f;margin-top:4px}.date-tools{display:flex;align-items:center;gap:10px}.date-shortcut{font-size:10px;background:var(--soft);padding:5px 8px;border-radius:5px}.date-picker{display:flex;align-items:center;gap:9px;border-left:1px solid var(--border);padding-left:12px}.date-picker span{font-size:10px;color:#919a87}.date-picker input{font-size:11px;border:0;background:none;color:#54614c;min-width:115px;padding:5px 0}.icon-btn{border-left:1px solid var(--border);font-size:22px;padding:0 0 0 12px;color:#b69351}.map-frame{height:clamp(475px,57vh,680px);min-height:475px;background:#bed49b;position:relative;isolation:isolate;overflow:hidden;border:1px solid #b4c69c;border-top:0;border-radius:0 0 12px 12px}#map{width:100%;height:100%;display:block;image-rendering:pixelated;cursor:crosshair;touch-action:none}#map-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.place-marker{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;display:flex;align-items:center;gap:5px;background:#fffef3f2;border:1px solid #d5d6b8;box-shadow:0 3px 0 #667d4a25;border-radius:6px;padding:6px 9px;white-space:nowrap;font-size:10px;font-weight:600;transition:background .2s}.place-marker:after{content:'';position:absolute;bottom:-5px;left:50%;width:7px;height:7px;background:#fffdf2;transform:translateX(-50%) rotate(45deg);border-right:1px solid #d5d6b8;border-bottom:1px solid #d5d6b8}.place-marker:hover,.place-marker.selected{background:#f6e5b7;border-color:#b49a57;z-index:3}.place-marker.visited .marker-dot{background:#7b9460}.marker-dot{width:6px;height:6px;display:inline-block;border-radius:50%;background:#b5b99e}.event-marker{color:#bd7259;border-color:#d6b29a;background:#fff4e9;font-size:9px;padding:5px 8px;z-index:4}.event-marker:after{background:#fff4e9}.map-top{position:absolute;inset:17px 18px auto;pointer-events:none;display:flex;justify-content:space-between;align-items:flex-start}.world-badge{font-size:9px;letter-spacing:1.8px;color:#527247;background:#fcfff2bd;padding:8px 10px;border-radius:4px}.world-badge i{display:inline-block;width:5px;height:5px;background:#7c945d;margin-right:7px;border-radius:50%}.compass{display:flex;flex-direction:column;align-items:center;color:#566c45;background:#fffff2bb;border-radius:7px;width:29px;padding:5px 0}.compass b{font-size:9px}.compass span{font-size:19px;line-height:19px}.map-bottom{position:absolute;inset:auto 16px 16px;display:flex;justify-content:space-between;align-items:flex-end;pointer-events:none}.map-hint{background:#fffff1e8;box-shadow:0 2px 5px #53624110;border-radius:7px;padding:10px 13px;font-size:10px;color:#6f7b61}.click-icon{font-size:16px;margin-right:6px}.map-controls{display:flex;background:#fffff1ee;border:1px solid #d0d9ba;border-radius:7px;pointer-events:auto;overflow:hidden}.map-controls button{font-size:20px;width:34px;height:34px;border-right:1px solid #d9dfca}.map-controls button:last-child{border:0}.player-status{position:absolute;bottom:68px;left:18px;display:flex;align-items:center;gap:6px;font-size:10px;background:#ffffefde;padding:7px 9px;border-radius:6px;pointer-events:none}.player-status>span:first-child{height:6px;width:6px;border-radius:50%;background:#ce9f52}.player-status b{font-size:10px}.player-status>span:last-child{font-size:9px;color:#8a9580;margin-left:2px}.map-caption{display:flex;justify-content:space-between;padding:13px 2px 0;gap:8px;font-size:9px;color:#949d86}.map-caption>div{display:flex;align-items:center;gap:5px}.legend-dot{width:5px;height:5px;display:inline-block;border-radius:50%;margin-left:9px}.legend-dot:first-child{margin-left:0}.green{background:#6e9360}.coral{background:#cc8769}.gold{background:#d9ae5d}.sidebar{background:#fffef8;border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;min-width:0;margin-bottom:27px;overflow:hidden}.side-tabs{display:flex;border-bottom:1px solid var(--border);padding:0 16px;flex-shrink:0;height:56px}.side-tabs button{flex:1;font-size:12px;color:#929c87;border-bottom:2px solid transparent;padding:0 2px}.side-tabs button[aria-selected=true]{border-bottom-color:#5e7d54;color:#4c6b46;font-weight:700}.side-tabs button span{font-size:9px;background:#f2e6d7;color:#b68764;border-radius:5px;padding:1px 4px;margin-left:3px}#side-content{padding:22px 20px;overflow-y:auto;max-height:calc(clamp(475px,57vh,680px) - 32px);scrollbar-width:thin;flex:1}.sidebar-foot{padding:13px 15px;background:#f6f6ed;border-top:1px dashed var(--border);font-size:10px;color:#9a9e8c;text-align:center}.mini-flower{color:#c5ae79;margin-right:4px}.welcome{display:flex;gap:12px;align-items:center;margin-bottom:19px}.avatar-wrap{background:#f1e8d1;width:56px;height:56px;border-radius:17px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid #e9ddbf}.avatar-canvas{width:42px;height:48px;image-rendering:pixelated}.welcome h2{font-family:'Gowun Dodum',sans-serif;font-size:19px;margin:0 0 5px}.welcome p{font-size:10px;color:#9a9e8e;margin:0}.welcome small{display:inline-block;font-size:9px;color:#9a8154;border:1px solid #e5dac3;padding:2px 5px;border-radius:4px;margin-top:6px}.progress-box{padding:13px 14px;background:#f2f5e9;border:1px solid #e5e9d8;border-radius:8px;margin-bottom:24px}.progress-line{display:flex;justify-content:space-between;font-size:10px;margin-bottom:9px;color:#7e8b6d}.progress-line b{color:#688755;font-size:10px}.progress-track{height:5px;background:#e2e8d4;border-radius:3px;overflow:hidden}.progress-track i{display:block;height:100%;background:#86a36b;border-radius:3px;transition:width .5s}.section-title{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px}.section-title h3{font-size:12px;margin:0;font-weight:600}.section-title span{font-size:9px;color:#a0a48e}.place-card{width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:12px 0;border-bottom:1px dashed #e5e7d9}.place-card:last-child{border:0}.card-art{width:52px;height:50px;border-radius:8px;background:#eaf0d9;image-rendering:pixelated;flex-shrink:0}.place-card>div{flex:1}.place-card strong{font-size:12px;font-weight:500;display:block;margin-bottom:5px}.place-card small{font-size:9px;color:#9ca18e}.place-card>span{font-size:14px;color:#b2baa5}.place-card:hover strong{color:#b5904c}.checkmark{color:#6b8c55!important;font-size:10px!important}.route-note{margin-top:18px;background:#faf3e4;border-radius:8px;padding:12px;font-size:10px;color:#9f8b66;line-height:1.9}.route-note button{color:#937446;text-decoration:underline;font-size:10px;padding:0}.back-btn{font-size:10px;color:#929c85;padding:0;margin-bottom:16px}.detail-art{width:100%;height:118px;border-radius:9px;image-rendering:pixelated;background:#eaf0d9;margin-bottom:17px}.tag{display:inline-block;font-size:9px;color:#7d9669;background:#eef3e4;padding:3px 7px;border-radius:4px;margin-bottom:8px}.tag.event{background:#f8ebde;color:#b77b5c}.detail-title{font-family:'Gowun Dodum',sans-serif;font-size:23px;margin:0 0 5px}.detail-sub{font-size:10px;color:#a0a491;margin:0 0 13px}.detail-desc{font-size:11px;line-height:1.95;color:#859075;margin:0 0 16px}.primary-btn{width:100%;background:#56784e;color:#fffdf3;padding:11px 14px;border-radius:7px;font-size:11px;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 3px 0 #3c5e36}.primary-btn:hover{background:#67875c}.secondary-btn{width:100%;border:1px solid #d9dfc9;padding:9px;border-radius:6px;font-size:10px;margin-top:9px;background:#fffef7}.audio-block{margin-top:21px;padding-top:17px;border-top:1px dashed var(--border)}.audio-heading{font-size:11px;display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.audio-heading small{font-size:8px;color:#a0a68f}.audio-block audio{width:100%;height:35px}.audio-track-title{font-size:10px;color:#859075;line-height:1.6;margin:8px 0}.audio-status{font-size:9px;color:#bd7c61;min-height:14px}.source{font-size:9px;line-height:1.8;color:#a3a793;margin-top:13px}.source a{text-decoration:underline}.transcript{font-size:10px;line-height:1.9;color:#89927e;margin-top:10px}.transcript summary{cursor:pointer}.transcript p{max-height:150px;overflow:auto;white-space:pre-line}.nearby{margin-top:20px;padding-top:15px;border-top:1px dashed var(--border)}.nearby h4{font-size:11px;margin:0 0 10px}.nearby button{display:block;font-size:10px;color:#829371;padding:5px 0}.event-card{text-align:left;width:100%;background:#faf6ed;border:1px solid #eee5d4;border-radius:9px;padding:13px;margin-bottom:11px}.event-card:hover{border-color:#cfad82}.event-card h3{font-size:12px;font-weight:500;line-height:1.6;margin:4px 0 7px}.event-card p{font-size:10px;color:#9d9b88;margin:0;line-height:1.8}.event-card .tag{font-size:8px;margin-bottom:3px}.event-intro{font-size:11px;line-height:1.9;color:#8c9780;margin:0 0 17px}.empty{font-size:11px;line-height:2;text-align:center;color:#9aa28c;padding:20px 10px}.journal-header{text-align:center;margin-bottom:22px}.journal-header .book-icon{font-size:30px;color:#b39768}.journal-header h2{font-family:'Gowun Dodum';font-size:22px;margin:10px 0 6px}.journal-header p{font-size:10px;color:#9ba28b}.stamp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.stamp{border:1px dashed #d8dec8;border-radius:9px;padding:14px 5px;text-align:center;background:#fafaf1;opacity:.6}.stamp.earned{opacity:1;border-color:#a1b18c;background:#f3f6e9}.stamp canvas{width:60px;height:52px;image-rendering:pixelated}.stamp p{font-size:10px;margin:5px 0}.stamp small{font-size:8px;color:#a4ad96}.wardrobe{margin-top:18px;display:flex;gap:7px;align-items:center}.wardrobe>span{font-size:10px;color:#9a9d88;margin-right:auto}.color-btn{width:22px;height:22px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1px #d7dbc9}.color-btn.selected{box-shadow:0 0 0 2px #6f8559}.saved-event{padding:11px 0;border-bottom:1px dashed var(--border);font-size:11px}.saved-event small{display:block;font-size:9px;color:#9ca38e;margin-top:5px}.saved-event button{font-size:9px;color:#b48c69;float:right}.map-night{background:#64775d}.map-night .place-marker{background:#f5edceeb}.map-night .map-hint,.map-night .player-status,.map-night .world-badge,.map-night .map-controls{background:#fff9e3de}.dpad{display:none;position:absolute;bottom:65px;right:16px;grid-template-columns:repeat(3,32px);grid-template-rows:repeat(2,32px);gap:3px}.dpad button{background:#fffdf0cc;border-radius:7px;color:#788865;touch-action:none;user-select:none}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-column:1;grid-row:2}.dpad button:nth-child(3){grid-column:2;grid-row:2}.dpad button:nth-child(4){grid-column:3;grid-row:2}#arrival{position:absolute;top:55px;left:50%;transform:translateX(-50%) translateY(-15px);opacity:0;background:#fffbee;border:1px solid #d5bb79;box-shadow:0 4px 0 #6a743a22;padding:10px 18px;border-radius:8px;white-space:nowrap;font-size:11px;pointer-events:none;transition:all .3s}#arrival.show{opacity:1;transform:translateX(-50%) translateY(0)}footer{display:flex;justify-content:space-between;font-size:10px;color:#a4aa98;padding:27px 0}footer b{font-family:'Gowun Dodum';font-size:15px;font-weight:400;color:#839174;margin-right:9px}footer a{color:#7d8f6e}footer i{font-style:normal;margin:0 9px}dialog{border:1px solid #dce1cc;border-radius:18px;background:#fffdf4;color:var(--ink);padding:35px;max-width:430px;width:calc(100% - 32px);box-shadow:0 20px 80px #30432a25}dialog::backdrop{background:#3d4d3659;backdrop-filter:blur(3px)}.modal-close{position:absolute;right:13px;top:10px;font-size:23px;color:#8e9c7e}dialog h2{font-family:'Gowun Dodum';font-size:26px;margin:0 0 15px}dialog p{font-size:12px;line-height:2;color:#869277}.help-row{display:flex;gap:13px;margin:16px 0;font-size:11px;line-height:1.9;color:#829173}.help-row b{font-size:17px;color:#b79b64;width:23px;flex-shrink:0}kbd{font-size:10px;padding:2px 4px;border:1px solid #d2dbc1;border-radius:4px;background:#f4f6eb}#toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,20px);background:#4e6844;color:#fffbed;border:1px solid #9cae84;border-radius:9px;padding:11px 20px;font-size:12px;opacity:0;pointer-events:none;z-index:20;transition:.25s;max-width:calc(100% - 35px);text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:1700px){.workspace{grid-template-columns:minmax(0,1fr) 350px}.map-frame{height:650px}.intro{padding-top:45px;padding-bottom:35px}#side-content{max-height:618px}}
@media(max-width:1150px){main{padding:0 3%}.header{padding:0 3%;gap:25px}.workspace{grid-template-columns:minmax(0,1fr) 285px;gap:16px}.map-caption>span{display:none}.brand small{display:none}.chapter{display:none}.intro h1{font-size:28px}.date-picker span{display:none}.toolbar{padding:12px}.map-hint{font-size:9px}.map-frame{min-height:480px}}
@media(max-width:800px){.header{height:66px;padding:0 5%;gap:15px}.brand>span{font-size:25px}.brand-house{width:28px}.header nav{gap:14px}.nav{font-size:11px}.help-btn{font-size:0;gap:0}.help-btn>span{font-size:11px}main{padding:0 4%}.intro{padding:25px 0 22px}.eyebrow{font-size:9px;letter-spacing:.5px}.intro h1{font-size:25px;letter-spacing:-1.3px}.intro h1 i{font-size:20px;margin-left:5px}.intro p{font-size:10px}.workspace{grid-template-columns:1fr;gap:18px}.toolbar{height:62px}.map-frame{height:520px;min-height:0}.sidebar{margin-bottom:0}#side-content{max-height:560px;padding:20px}.sidebar-foot{padding:14px}.map-caption{font-size:8px}.dpad{display:grid}.player-status{bottom:61px;max-width:65%}.map-hint{padding:9px;font-size:9px}.map-controls button{width:29px;height:30px}.place-marker{font-size:9px;padding:5px 7px}.map-top{inset:13px}.world-badge{font-size:8px;padding:6px}.compass{width:24px}.event-marker{font-size:8px}.map-caption>span{display:block;font-size:8px}footer{padding:23px 0;font-size:8px;line-height:1.8;gap:15px}.location b{font-size:12px}.location small{font-size:9px}.date-tools{gap:6px}.date-picker{padding-left:6px}.date-picker input{min-width:106px;font-size:10px}.icon-btn{padding-left:7px}.place-card{padding:12px 0}.stamp-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:420px){.intro h1{font-size:22px}.map-frame{height:450px}.map-caption>span{display:none}.header nav{gap:8px}.map-hint{font-size:8px}.date-shortcut{font-size:9px}.place-marker{font-size:8px}.player-status>span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.audio-play-btn{width:100%;padding:10px;border:1px solid #dbe2ce;background:#f1f5e7;color:#6b8558;border-radius:6px;font-size:11px;margin-bottom:9px}.audio-play-btn:hover{background:#e8efdb}
/* Mobile-first game surface: only the map is visible until a place is opened. */
html,body.map-app{height:100%;overflow:hidden;overscroll-behavior:none}.map-app{background:#bfd39e}.game-screen{max-width:none;padding:0;margin:0;height:100%;width:100%}.map-app .map-frame{position:fixed;inset:0;width:100%;height:100dvh;min-height:0;max-height:none;border:0;border-radius:0;overflow:hidden}.map-app #map{position:absolute;inset:0}.current-location{position:absolute;top:calc(17px + env(safe-area-inset-top));left:18px;display:flex;align-items:center;gap:11px;padding:12px 18px 12px 14px;background:#fffcf1ed;border:1px solid #fff9e9;border-radius:15px;box-shadow:0 3px 16px #43533715;pointer-events:none;min-width:210px;max-width:calc(100% - 115px)}.location-pin{font-size:28px;color:#789264}.location-caption{font-size:9px;letter-spacing:.6px;color:#929b80}.location-caption i{font-style:normal;margin:0 5px;color:#c5c7b2}.current-location h1{font-family:'Gowun Dodum',sans-serif;font-size:20px;letter-spacing:-.5px;font-weight:bold;margin:4px 0 3px;white-space:nowrap}.map-app #walk-status{font-size:9px;color:#99a087;display:block;max-width:235px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.map-app .compass{position:absolute;top:calc(18px + env(safe-area-inset-top));right:18px;display:block;width:65px;height:74px;border-radius:14px;background:#fffcf1d9;color:#7d8f6b;box-shadow:0 2px 10px #4353370c}.compass .north{position:absolute;top:8px;left:0;right:0;text-align:center;font-size:10px;letter-spacing:1px;color:#be886c}.compass .needle{position:absolute;left:26px;top:24px;font-size:25px;line-height:24px;color:#b58d65}.compass .west{position:absolute;left:8px;top:32px;font-size:9px}.compass .east{position:absolute;right:8px;top:32px;font-size:9px}.compass .south{position:absolute;bottom:6px;left:0;right:0;text-align:center;font-size:8px}.map-progress{position:absolute;top:calc(127px + env(safe-area-inset-top));left:20px;display:flex;gap:12px;font-size:9px;color:#536f44;pointer-events:none;background:#fbf9e8b8;padding:6px 9px;border-radius:7px}.map-progress>span{display:flex;align-items:center;gap:5px}.visit-dot,.listen-dot{width:5px;height:5px;border-radius:50%;display:inline-block}.visit-dot{background:#5c9870}.listen-dot{background:#d49b41}.map-app .place-marker{background:transparent;border:0;box-shadow:none;border-radius:0;transform:translate(-50%,-100%);padding:7px 10px;min-width:36px;min-height:33px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;font-weight:600;line-height:1.2;color:#465d3d;text-shadow:0 1px 2px #fffde9,1px 0 2px #fffde9,-1px 0 2px #fffde9,0 -1px 2px #fffde9;white-space:nowrap;touch-action:manipulation}.map-app .place-marker:after{display:none}.map-app .place-marker:hover,.map-app .place-marker.selected{background:#fff9e844;border:0;box-shadow:none;border-radius:7px}.map-dots{display:flex;align-items:center;gap:4px;height:6px}.map-dots i{display:inline-block;width:5px;height:5px;border-radius:50%;box-shadow:0 0 0 1px #fbfae8cc}.map-dots .unvisited{background:#92a58088;width:4px;height:4px}.map-dots .visit-dot{background:#5c9870}.map-dots .listen-dot{background:#d49b41}.map-app .event-marker{font-size:9px;color:#b67754;min-height:25px;padding:4px 7px;background:#fff2d897;border-radius:5px;font-weight:500}.map-app .map-controls{position:absolute;right:18px;bottom:calc(111px + env(safe-area-inset-bottom));display:flex;flex-direction:column;border:1px solid #f9f5df;background:#fffcf1e8;border-radius:13px;box-shadow:0 3px 14px #43533715;width:42px;align-items:center;overflow:hidden}.map-app .map-controls button{width:42px;height:40px;border:0;font-size:23px;color:#6f835c}.map-app #zoom-value{font-size:8px;color:#9ca68a;padding:3px 0;border-block:1px solid #e9ebdc;width:100%;text-align:center}.map-app .map-controls button[hidden]{display:none}.map-app .dpad{position:absolute;display:grid;grid-template-columns:repeat(3,32px);grid-template-rows:repeat(3,32px);gap:2px;left:18px;bottom:calc(102px + env(safe-area-inset-bottom));right:auto;padding:7px;border-radius:50%;background:#fcf9e5b0;border:1px solid #fffbe87a;box-shadow:0 3px 14px #4353370d;touch-action:none}.map-app .dpad button{background:transparent;color:#7d9267;font-size:12px;border-radius:50%;width:32px;height:32px;padding:0;-webkit-user-select:none;user-select:none}.map-app .dpad button:active{background:#dbe4c4}.map-app .dpad button[data-dir=up]{grid-column:2;grid-row:1}.map-app .dpad button[data-dir=left]{grid-column:1;grid-row:2}.map-app .dpad button[data-dir=right]{grid-column:3;grid-row:2}.map-app .dpad button[data-dir=down]{grid-column:2;grid-row:3}.dpad-center{grid-column:2;grid-row:2;display:flex;align-items:center;justify-content:center;color:#b7a274;font-size:18px;pointer-events:none}.map-actions{position:absolute;bottom:calc(28px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:0;background:#fffdf1f0;border:1px solid #fffdf1;border-radius:15px;box-shadow:0 3px 18px #4353371c;white-space:nowrap;overflow:hidden}.map-actions button{font-size:11px;padding:14px 16px;border-right:1px solid #e7e9d7;color:#617a50;font-weight:500}.map-actions button:last-child{border:0;font-size:17px;padding:10px 15px}.map-actions button span{font-size:16px;margin-right:6px}.map-actions button:hover{background:#edf2dc}.walk-tip{position:absolute;bottom:calc(86px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);font-size:9px;color:#5c794c;text-shadow:0 1px 3px #fffbdc;white-space:nowrap;pointer-events:none;transition:opacity .4s}.walk-tip.gone{opacity:0}.map-app #arrival{top:calc(27% + env(safe-area-inset-top));background:#fffcf1ed;font-size:10px;padding:9px 15px;z-index:6}.map-app .sidebar{position:fixed;z-index:10;right:18px;bottom:18px;top:auto;width:340px;max-width:calc(100% - 36px);max-height:calc(100dvh - 135px - env(safe-area-inset-top));margin:0;background:#fffdf5fa;backdrop-filter:blur(10px);border:1px solid #f4f3e4;border-radius:20px;box-shadow:0 8px 60px #3b4e302c;transform:translateY(calc(100% + 30px));opacity:0;pointer-events:none;transition:transform .25s,opacity .25s;display:flex;flex-direction:column;overflow:hidden}.map-app .sidebar.open{transform:translateY(0);opacity:1;pointer-events:auto}.sheet-handle{width:30px;height:3px;background:#d7dcc8;border-radius:3px;margin:10px auto 0;flex-shrink:0}.sheet-heading{display:flex;align-items:center;justify-content:space-between;padding:13px 20px 7px;flex-shrink:0}.sheet-heading>b{font-family:'Gowun Dodum',sans-serif;font-size:16px;font-weight:400}.sheet-heading button{font-size:25px;color:#97a387;padding:0;line-height:20px;width:25px;height:25px}.map-app .side-tabs{height:47px;padding:0 15px}.map-app .side-tabs button{font-size:11px}.map-app .side-tabs button span{font-size:8px}.sheet-date{display:flex;align-items:center;gap:7px;padding:10px 18px;border-bottom:1px solid #e7e9d9;flex-shrink:0;background:#f9f9ef}.sheet-date label{font-size:9px;color:#9aa48a}.sheet-date input{border:0;background:transparent;width:110px;min-width:0;color:#70835e;font-size:10px;padding:4px 0}.sheet-date button{font-size:10px;color:#8b997c;padding:3px 6px}.sheet-date #daynight{margin-left:auto;font-size:18px}.sheet-date #help{border:1px solid #c8d2b7;border-radius:50%;font-size:10px;width:18px;height:18px;padding:0}.map-app #side-content{flex:1;min-height:0;max-height:calc(100dvh - 325px);padding:18px 20px;overscroll-behavior:contain}.map-app .detail-art{height:100px}.map-app #toast{bottom:calc(92px + env(safe-area-inset-bottom));font-size:10px;z-index:30}.map-app #mini-player{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(86px + env(safe-area-inset-bottom));display:flex;align-items:center;border-radius:11px;background:#fffcf2ed;border:1px solid #f7eac9;box-shadow:0 3px 14px #43533715;overflow:hidden;max-width:calc(100% - 35px)}.map-app #mini-player[hidden]{display:none}.map-app #open-audio{display:flex;gap:7px;align-items:center;padding:11px 12px;font-size:10px;min-width:0}.map-app #open-audio>span{color:#b99453}.map-app #mini-title{max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.map-app #mini-pause{padding:9px 13px;border-left:1px solid #e5e8d7;font-size:15px}.sheet-open #mini-player{opacity:0;pointer-events:none}.sheet-open .map-actions,.sheet-open .walk-tip{opacity:0;pointer-events:none}.map-night .current-location,.map-night .compass{background:#fbf3dce8}.map-night .place-marker{background:transparent}.map-night .event-marker{background:#f9e8caaa}
@media(max-width:600px){.current-location{top:calc(13px + env(safe-area-inset-top));left:13px;padding:10px 13px 10px 11px;gap:9px;min-width:190px;max-width:calc(100% - 100px);border-radius:13px}.location-pin{font-size:24px}.location-caption{font-size:8px}.current-location h1{font-size:19px;margin:4px 0 3px}.map-app #walk-status{font-size:8px;max-width:200px}.map-app .compass{right:13px;top:calc(13px + env(safe-area-inset-top));width:62px;height:72px}.compass .needle{left:25px}.map-progress{left:15px;top:calc(115px + env(safe-area-inset-top));font-size:8px}.map-app .place-marker{font-size:10px}.map-app .event-marker{font-size:8px}.map-app .sidebar{right:0;left:0;bottom:0;max-width:none;width:100%;border-radius:23px 23px 0 0;max-height:44dvh;padding-bottom:env(safe-area-inset-bottom);transform:translateY(110%)}.map-app .sidebar.open{transform:translateY(0)}.map-app #side-content{max-height:calc(44dvh - 150px);padding:16px 20px}.map-app .detail-art{height:90px}.sheet-heading{padding:10px 20px 4px}.sheet-heading>b{font-size:15px}.map-app .side-tabs{height:42px}.sheet-date{padding:7px 19px}.sheet-date input{font-size:10px}.map-app .dpad{left:13px;bottom:calc(105px + env(safe-area-inset-bottom));grid-template-columns:repeat(3,30px);grid-template-rows:repeat(3,30px);padding:5px}.map-app .dpad button{width:30px;height:30px}.map-app .map-controls{right:13px;bottom:calc(120px + env(safe-area-inset-bottom));width:39px;border-radius:12px}.map-app .map-controls button{width:39px;height:37px}.map-actions{bottom:calc(23px + env(safe-area-inset-bottom))}.map-actions button{padding:13px 14px;font-size:10px}.walk-tip{font-size:8px;bottom:calc(80px + env(safe-area-inset-bottom))}.map-app #mini-player{bottom:calc(81px + env(safe-area-inset-bottom));max-width:calc(100% - 50px)}.map-app #mini-title{max-width:170px}.sheet-open .map-controls{bottom:calc(45dvh + 15px)}.sheet-open .dpad{opacity:0;pointer-events:none}.sheet-open .map-progress{opacity:0}.map-app .stamp-grid{grid-template-columns:repeat(3,1fr)}.map-app .stamp{padding:8px 3px}.map-app .stamp canvas{width:42px;height:37px}.map-app .stamp p{font-size:9px}.map-app .stamp small{font-size:7px}}
@media(max-height:500px) and (orientation:landscape){.current-location{top:10px;left:10px;padding:7px 12px}.map-progress{top:98px}.map-app .compass{top:10px;right:10px}.map-app .sidebar{right:8px;left:auto;bottom:8px;max-width:340px;width:45%;max-height:calc(100dvh - 16px);border-radius:15px}.map-app #side-content{max-height:calc(100dvh - 173px)}.sheet-heading{padding-top:4px}.sheet-open .map-controls{display:none}.map-actions{bottom:14px}}
.audio-tools{display:flex;align-items:center;gap:8px}.audio-tools button{padding:3px 6px;background:#edf2e2;border-radius:5px;color:#7c906b;font-size:9px}
/* Keep the traveler and real destinations above quiet scenery. */
.map-app .place-marker{z-index:2;text-shadow:none;background:none;padding:4px 6px;gap:5px;line-height:1.3;font-size:12px}.map-app .place-marker:hover,.map-app .place-marker.selected{background:none}.landmark-name{display:block;background:#fffbed;border:1px solid #91a177;border-radius:7px;padding:6px 9px;color:#3c583b;box-shadow:0 2px 0 #516b3c24;font-weight:700;white-space:nowrap}.map-app .place-marker.selected .landmark-name{border-color:#608164;background:#fff8d8}.map-app .place-marker.destination-target{z-index:5}.destination-target .landmark-name{background:#f7d38e!important;border:2px solid #b97948!important;color:#684127;padding:5px 10px;box-shadow:0 3px 0 #955f342b}.landmark-name em{display:block;font-style:normal;letter-spacing:1px;font-weight:500;font-size:8px;color:#a86640;margin-bottom:1px}.map-app .event-marker{background:#fff4dfdc;padding:4px 7px;border:1px solid #e6cfaa;border-radius:5px;font-size:9px;font-weight:400;z-index:1}.map-dots{padding:0 3px;background:#fffcf0c9;border-radius:5px;height:8px}.map-dots i{width:5px;height:5px;box-shadow:none}#player-tag{position:absolute;transform:translate(-50%,-100%);z-index:6;pointer-events:none;background:#286b63;border:2px solid #fffdf0;border-radius:7px;padding:2px 8px;color:#fffdf0;font-size:10px;font-weight:700;box-shadow:0 2px 5px #345b4828;white-space:nowrap}#target-edge{position:absolute;transform:translate(-50%,-50%);z-index:7;pointer-events:none;display:flex;gap:7px;align-items:center;background:#fff3d8f5;border:2px solid #be7e51;color:#865331;border-radius:10px;padding:8px 10px;box-shadow:0 3px 12px #79572a1f;max-width:190px;font-size:11px;white-space:nowrap}#target-edge[hidden]{display:none}#target-arrow{display:inline-block;font-size:20px;line-height:18px;color:#b96742}#target-title{font-weight:600;overflow:hidden;text-overflow:ellipsis}.map-night .landmark-name{background:#fff4d8;color:#4e6546}.map-night #player-tag{background:#286b63}
@media(max-width:600px){.map-app .place-marker{font-size:11px}.landmark-name{padding:5px 8px}#player-tag{font-size:10px;padding:2px 7px}.map-app .event-marker{font-size:8px}.map-app #target-edge{font-size:10px;padding:7px 9px}}
#player-tag{transform:translate(-50%,0);font-size:10px;padding:2px 7px}
/* The user's position is a small neutral dot, without a character illustration. */
#player-tag{display:none!important}.player-dot-key{display:inline-block;width:8px;height:8px;background:#626944;border:1.5px solid #fffaf0;border-radius:50%;box-shadow:0 0 0 1px #858b60}.avatar-wrap{background:#eeeedf}.avatar-canvas{width:35px;height:39px}
.destination-target .landmark-name{border-color:#a18a4c!important;color:#6a5c32}#target-edge{border-color:#a18a4c;color:#74643a}#target-arrow{color:#8d7b3f}
/* Controls share the root layer, so the map's stacking context cannot hide them. */
.map-app .map-controls{position:fixed;z-index:100;display:flex!important;pointer-events:auto;isolation:isolate}.map-app .dpad{position:fixed;z-index:90;opacity:1!important;pointer-events:auto!important;grid-template-columns:repeat(3,35px);grid-template-rows:repeat(3,35px)}.map-app .dpad button{display:flex;align-items:center;justify-content:center;gap:3px;width:35px;height:35px}.map-app .dpad button[data-dir=up],.map-app .dpad button[data-dir=down]{flex-direction:column;gap:0}.direction-name{font-size:9px;font-weight:500;line-height:12px;color:#6b7954}.map-app .dpad b{font-size:10px;font-weight:400;line-height:12px}.map-app .dpad-center{font-size:22px;color:#8a9167}.map-app .sidebar.place-open .sheet-date{display:none}.map-app .sidebar.place-open #side-content{max-height:calc(100dvh - 285px);padding-top:12px}.place-detail-head{display:flex;gap:10px;align-items:flex-start;margin-bottom:12px}.place-detail-head .back-btn{font-size:19px;padding:1px 4px 0 0;margin:0;color:#899878;line-height:25px}.place-detail-head .detail-title{font-size:22px;line-height:1.3;margin:0 0 4px}.place-detail-head .detail-sub{font-size:10px;line-height:1.5;margin:0;color:#939d83}.audio-block.audio-first{margin:0;padding:0;border:0}.audio-first .audio-play-btn{display:block;width:100%;min-height:44px;margin:0 0 9px;background:#5d7549;border:1px solid #526b40;color:#fffdf0;font-size:13px;font-weight:600;border-radius:8px}.audio-first .audio-play-btn:hover{background:#6c8257}.audio-control-row{display:flex;align-items:center;gap:7px}.audio-control-row audio{width:calc(100% - 42px);height:34px}.audio-speed-btn{width:36px;height:30px;background:#eef2e2;border:1px solid #dce4cd;border-radius:7px;font-size:10px;color:#7c8c67}.audio-first .audio-status{min-height:0;font-size:9px;margin-top:5px;color:#899771}.place-action-row{display:flex;align-items:center;gap:9px;margin:13px 0}.place-action-row .secondary-btn{width:auto;flex:1;margin:0;padding:8px 10px;font-size:10px}.place-action-row .tag{flex-shrink:0;margin:0;font-size:9px}.place-information{border-top:1px dashed #e0e4d3;padding-top:12px;margin-top:14px;color:#849372;font-size:10px;line-height:1.8}.place-information summary{cursor:pointer}.place-information .detail-desc{margin-top:10px}.full-transcript{white-space:pre-line;font-size:10px;line-height:1.9;color:#89927d}.player-dot-key{background:#ffda38;border-color:#585b35;box-shadow:none}
@media(max-width:600px){.map-app .sidebar.place-open #side-content{max-height:calc(44dvh - 112px);padding-top:11px}.map-app .sidebar.place-open .sheet-heading{padding-top:7px}.map-app .sidebar.place-open .side-tabs{height:39px}.place-detail-head .detail-title{font-size:21px}.place-detail-head{margin-bottom:11px}.map-app .dpad{grid-template-columns:repeat(3,33px);grid-template-rows:repeat(3,33px)}.map-app .dpad button{width:33px;height:33px}.sheet-open .map-app .dpad,.map-app.sheet-open .dpad{bottom:calc(45dvh + 15px + env(safe-area-inset-bottom));opacity:1!important;pointer-events:auto!important}.map-app.sheet-open .map-controls{bottom:calc(45dvh + 15px + env(safe-area-inset-bottom))}.place-action-row{margin:10px 0}}
@media(max-height:500px) and (orientation:landscape){.map-app .sidebar.place-open #side-content{max-height:calc(100dvh - 127px)}.sheet-open .map-controls{display:flex!important}}
.player-dot-key{background:linear-gradient(135deg,#ff6170 0%,#aa54d8 50%,#3f75f4 100%);border-color:#fffdf8;box-shadow:0 0 0 1px #aa9bb3}
.player-dot-key{width:10px;height:10px;background:none!important;border:0;box-shadow:none}.player-dot-key svg{width:100%;height:100%;display:block}

/* Readable text floor across the game UI. */
.brand small,.nav,.nav span,.help-btn,.help-btn>span,.eyebrow,.intro p,.chapter>span,.chapter b,.chapter small,.location b,.location small,.date-shortcut,.date-picker span,.date-picker input,.place-marker,.event-marker,.world-badge,.compass b,.map-hint,.player-status,.player-status b,.player-status>span:last-child,.map-caption,.side-tabs button,.side-tabs button span,.sidebar-foot,.welcome p,.welcome small,.progress-line,.progress-line b,.section-title h3,.section-title span,.place-card strong,.place-card small,.checkmark,.route-note,.route-note button,.back-btn,.tag,.detail-sub,.detail-desc,.primary-btn,.secondary-btn,.audio-heading,.audio-heading small,.audio-track-title,.audio-status,.source,.transcript,.nearby h4,.nearby button,.event-card h3,.event-card p,.event-card .tag,.event-intro,.empty,.journal-header p,.stamp p,.stamp small,.wardrobe>span,.saved-event,.saved-event small,.saved-event button,#arrival,footer,dialog p,.help-row,kbd,#toast,.map-caption>span,.audio-play-btn,.location-caption,.map-app #walk-status,.compass .north,.compass .west,.compass .east,.compass .south,.map-progress,.map-app .place-marker,.map-app .event-marker,.map-app #zoom-value,.map-app .dpad button,.map-actions button,.walk-tip,.map-app #arrival,.map-app .side-tabs button,.map-app .side-tabs button span,.sheet-date label,.sheet-date input,.sheet-date button,.sheet-date #help,.map-app #toast,.map-app #open-audio,.map-app .stamp p,.map-app .stamp small,.audio-tools button,.landmark-name em,#player-tag,#target-edge,.map-app #target-edge,.direction-name,.map-app .dpad b,.place-detail-head .detail-sub,.audio-first .audio-play-btn,.audio-speed-btn,.audio-first .audio-status,.place-action-row .secondary-btn,.place-action-row .tag,.place-information,.full-transcript{font-size:14px!important}

.map-app{font-size:14px}.map-app p,.map-app small,.map-app label,.map-app input,.map-app summary,.map-app .tag,.map-app .source,.map-app .full-transcript,.map-app .direction-name{font-size:14px!important;line-height:1.6}.map-app .current-location{max-width:calc(100% - 26px);min-width:0;width:max-content}.map-app .location-caption{font-size:14px!important;line-height:1.4}.map-app #walk-status{font-size:14px!important;line-height:1.4;max-width:300px}.map-app .current-location h1{font-size:20px}.map-app .location-pin{font-size:25px!important}.map-app .map-progress{gap:10px;padding:6px 9px}.map-app .map-progress>span{font-size:14px!important}.map-app #zoom-value{font-size:14px!important;padding:4px 0}.map-app .sheet-heading>b{font-size:18px}.map-app .side-tabs{height:48px}.map-app .side-tabs button{font-size:14px!important}.map-app .sidebar.place-open .side-tabs{height:46px}.map-app .sheet-date{gap:5px;padding:9px 14px}.map-app .sheet-date input{width:128px;flex:1;min-width:112px;font-size:14px!important}.map-app .sheet-date #today{font-size:14px!important;white-space:nowrap}.map-app .sheet-date #daynight{font-size:22px!important}.map-app .sheet-date #help{font-size:14px!important;width:23px;height:23px;flex-shrink:0}.map-app .section-title h3,.map-app .nearby h4{font-size:16px}.map-app .place-card strong{font-size:16px}.map-app .place-card small{font-size:14px!important;line-height:1.6}.map-app .place-card{padding:14px 0}.map-app .place-detail-head .detail-title{font-size:22px}.map-app .audio-first .audio-play-btn{font-size:16px!important;min-height:48px}.map-app .audio-control-row audio{height:40px}.map-app .place-action-row{flex-wrap:wrap;gap:8px}.map-app .place-action-row .secondary-btn{font-size:14px!important;min-height:40px}.map-app .place-information{font-size:14px!important;line-height:1.8}.map-app .stamp-grid{grid-template-columns:repeat(2,1fr)}.map-app .event-card h3{font-size:16px}.map-app .walk-tip{font-size:14px!important;white-space:normal;text-align:center;width:calc(100% - 45px);max-width:400px;line-height:1.5}.map-app #zoom-in,.map-app #zoom-out{font-size:24px!important}.map-app #close-sheet{font-size:26px!important}
/* A compact control is shown by default; the direction strip opens only when needed. */
.map-app .dpad{display:none!important}.map-app #toggle-dpad{position:fixed;left:18px;bottom:calc(105px + env(safe-area-inset-bottom));z-index:90;display:flex;align-items:center;justify-content:center;gap:7px;min-width:78px;height:42px;padding:7px 12px;border:1px solid #f6f5e5;border-radius:12px;background:#fffdf1ed;color:#6b7954;font-size:14px;box-shadow:0 3px 14px #43533712}.map-app #toggle-dpad span{font-size:20px!important}.map-app.direction-open #toggle-dpad{display:none}.map-app.direction-open .dpad{position:fixed;display:flex!important;align-items:center;gap:2px;width:auto;height:50px;padding:4px 6px;left:18px;bottom:calc(102px + env(safe-area-inset-bottom));right:auto;border-radius:12px;background:#fffdf1ed;border:1px solid #f6f5e5;box-shadow:0 3px 14px #43533712}.map-app.direction-open .dpad button{width:42px;height:42px;flex:none;display:flex;align-items:center;justify-content:center;gap:2px;font-size:14px!important;border-radius:8px}.map-app.direction-open .dpad b{font-size:14px!important;line-height:16px}.map-app.direction-open .dpad .direction-name{font-size:14px!important;line-height:16px}.map-app.direction-open #hide-dpad{font-size:24px!important;width:32px}.map-app .direction-name{color:#68774f}
@media(max-width:600px){.map-app .current-location{right:auto;left:13px;max-width:calc(100% - 26px)}.map-app .map-progress{top:calc(121px + env(safe-area-inset-top))}.map-app #toggle-dpad{left:13px}.map-app.direction-open .dpad{left:13px}.map-app.sheet-open #toggle-dpad{bottom:calc(45dvh + 15px + env(safe-area-inset-bottom))}.map-app.direction-open.sheet-open .dpad{bottom:calc(45dvh + 15px + env(safe-area-inset-bottom))}.map-app .sidebar.place-open #side-content{max-height:calc(44dvh - 118px)}.map-app .place-detail-head .detail-sub{font-size:14px!important}.map-app .place-detail-head{margin-bottom:10px}}
/* Labels sit outside the entire landmark silhouette, never over faces or roofs. */
.map-app .place-marker{transform:translate(-50%,0)}
/* Restore the familiar nameplate above each landmark, lifted above its full silhouette. */
.map-app .place-marker{transform:translate(-50%,-100%)}
#north-indicator{position:fixed;right:13px;top:calc(13px + env(safe-area-inset-top));z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;width:38px;height:48px;background:#fffdf1df;border:1px solid #f6f5e5;border-radius:10px;color:#6c7c53;pointer-events:none;box-shadow:0 2px 10px #4353370a}#north-indicator span{font-size:14px;line-height:18px}#north-indicator b{font-size:23px;line-height:22px;font-weight:400}.map-app .current-location{max-width:calc(100% - 76px)}
.district-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:9px}.district-picker button{min-height:43px;border:1px solid #dce2cf;border-radius:7px;padding:7px 3px;background:#f2f5e9;color:#687d52;font-size:14px;line-height:1.35}.district-picker button.current-district{background:#e8edda;border:2px solid #8c9f72;font-weight:700}.overview-link{margin:0 0 19px!important}.district-marker{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;max-width:128px;font-size:14px;font-weight:600;padding:7px 9px;background:#fffbedee;border:1px solid #b6bea0;border-radius:7px;color:#516b43;white-space:nowrap;box-shadow:0 2px 3px #516b3c1a}.map-app .location-caption{white-space:normal}
