@font-face{font-family:Pretendard;src:url('./assets/pretendard.woff2') format('woff2');font-display:swap;font-weight:100 900}
:root{--green:#435d46;--sage:#6c7f61;--teal:#2e7976;--paper:#f5f1e8;--ink:#283b2e;--muted:#697467;--line:#dedfd1;--sand:#d9cbb6;--white:#fffdf7;--header:76px;--sidebar:350px;--shadow:0 8px 32px #293b2d14}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:Pretendard,-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo',sans-serif;color:var(--ink);background:var(--paper);font-size:14px}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer;color:inherit;border:0;background:none}button:disabled{opacity:.45;cursor:default}a{color:var(--teal);text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid #2e7976;outline-offset:3px}button:focus:not(:focus-visible){outline:none}svg.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}button svg.icon{pointer-events:none}[hidden]{display:none!important}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:var(--green);color:white;padding:12px}.skip:focus{top:10px}
.app-header{height:var(--header);display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:var(--white);border-bottom:1px solid var(--line);position:relative;z-index:25;gap:20px}.brand{display:flex;align-items:center;gap:11px;color:var(--green);flex-shrink:0}.brand img{width:47px;height:53px;object-fit:contain}.brand>span{font-size:17px;letter-spacing:-.5px}.brand b{font-weight:750}.brand small{display:block;margin-top:4px;letter-spacing:2.3px;font-size:9px;font-weight:650;color:var(--muted)}.area-tabs{display:flex;gap:4px;background:#edf0e5;padding:5px;border-radius:40px}.area-tabs button{min-height:40px;padding:0 23px;border-radius:30px;font-weight:650;white-space:nowrap;font-size:13px;color:#5d6b5c;transition:background .2s,color .2s}.area-tabs button.active{background:var(--green);color:#fffef8;box-shadow:0 2px 5px #2a3b2b16}.header-actions{display:flex;align-items:center;gap:14px}.quiet{display:flex;align-items:center;gap:8px;min-height:44px;padding:5px 8px;font-size:12px;font-weight:600}.quiet.active{color:var(--teal)}#saved-count{font-size:10px;min-width:18px;padding:3px 5px;border-radius:14px;background:#edf0e5}.camp-button{display:flex;align-items:center;gap:8px;background:var(--green);color:var(--white);border-radius:9px;padding:0 15px;min-height:42px;font-size:12px;font-weight:600}
.app-main{display:flex;width:100%;height:calc(100dvh - var(--header))}.explore-panel{width:var(--sidebar);flex-shrink:0;background:var(--white);border-right:1px solid var(--line);display:flex;flex-direction:column;position:relative;z-index:20;min-height:0}.intro{padding:27px 26px 19px;position:relative;flex-shrink:0;overflow:hidden}.eyebrow{font-size:9px;letter-spacing:1.7px;color:var(--teal);font-weight:700}.intro .eyebrow span{margin-left:9px}.intro h1{font-size:35px;line-height:1.17;letter-spacing:-1.7px;margin:13px 0 11px;color:var(--green);font-weight:750}.intro p{font-size:12px;line-height:1.7;margin:0;color:var(--muted)}.intro-art{position:absolute;right:10px;top:33px;width:116px;height:159px;object-fit:contain;pointer-events:none}.search-wrap{display:flex;align-items:center;gap:10px;background:#f0f1e9;border:1px solid #dfe3d7;border-radius:11px;margin:0 23px;padding:0 13px;height:47px;flex-shrink:0;color:#667361;transition:border .2s}.search-wrap:focus-within{border-color:var(--teal)}.search-wrap svg.icon{width:18px}.search-wrap input{min-width:0;width:100%;height:100%;border:0;background:none;outline:none;font-size:12px;color:var(--ink)}.search-wrap input:focus-visible{outline:none}.search-wrap input::-webkit-search-cancel-button{display:none}.search-wrap>button{min-width:30px;min-height:36px;display:flex;align-items:center;justify-content:center;margin-right:-7px}.categories{display:flex;flex-wrap:wrap;gap:7px;padding:17px 23px 18px;flex-shrink:0}.category-chip{display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:25px;padding:0 10px;min-height:34px;font-size:11px;font-weight:600;white-space:nowrap}.category-chip svg.icon{width:14px;height:14px}.category-chip.active{background:var(--green);border-color:var(--green);color:var(--white)}.list-toolbar{padding:15px 23px 12px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);flex-shrink:0}.list-toolbar h2{font-size:12px;font-weight:650;margin:0;display:flex;gap:6px}.list-toolbar h2 span{font-weight:500;color:var(--teal)}.text-button{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:var(--muted);padding:6px 0;min-height:30px;white-space:nowrap}.text-button svg.icon{width:13px;height:13px}.place-list{overflow:auto;overscroll-behavior:contain;min-height:0;flex:1;padding:0 12px 10px;scrollbar-width:thin;scrollbar-color:#cbd3c1 transparent}.place-card{display:flex;align-items:center;gap:12px;padding:14px 11px;border-bottom:1px solid #eeeee5;border-radius:8px;cursor:pointer;position:relative;transition:background .15s;min-height:99px}.place-card:hover,.place-card.active{background:#edf1e6}.place-card.active{box-shadow:inset 3px 0 0 var(--green)}.place-symbol{height:43px;width:43px;flex-shrink:0;border-radius:13px;display:flex;align-items:center;justify-content:center;color:var(--green);background:#e6ecd9}.place-symbol svg.icon{width:21px;height:21px}.place-symbol img{width:100%;height:100%;object-fit:contain;transform:scale(1.3)}.place-symbol[data-category=cafe],.place-symbol[data-category=food]{color:#7d6551;background:#efe6d9}.place-symbol[data-category=nature]{color:var(--teal);background:#e1eeea}.place-symbol[data-category=basecamp]{color:white;background:var(--green)}.place-card-text{flex:1;min-width:0}.place-card .meta{display:flex;gap:6px;align-items:center;font-size:9px;color:var(--muted);margin-bottom:5px}.place-card h3{font-size:13px;line-height:1.4;margin:0 0 4px;font-weight:700;letter-spacing:-.2px}.place-card p{font-size:10px;line-height:1.55;color:var(--muted);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-favorite{align-self:flex-start;flex-shrink:0;min-width:32px;min-height:36px;padding:6px;margin:-6px -7px 0 -6px;color:#919b89}.card-favorite.saved{color:var(--green)}.card-favorite.saved .icon{fill:#ccd7b8}.distance{white-space:nowrap;font-size:9px;color:#87907e;margin-top:5px;display:block}.side-footer{padding:12px 23px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.side-footer>span{font-size:10px;font-weight:650;color:#84917b}.side-footer .text-button{padding:0;min-height:22px}.loading{padding:40px 12px;text-align:center;color:var(--muted)}.empty-state{text-align:center;padding:36px 15px;color:var(--muted);line-height:1.7;font-size:12px}.empty-state strong{color:var(--green);display:block;font-size:15px;margin:10px}.empty-state button{display:block;background:var(--green);color:white;margin:15px auto;padding:11px 20px;border-radius:9px}
.map-stage{position:relative;flex:1;min-width:0;background:#edeedf;overflow:hidden}.map-canvas{position:absolute;inset:0;touch-action:none;user-select:none;cursor:grab}.map-canvas.dragging{cursor:grabbing}.map-canvas>svg{display:block;width:100%;height:100%;overflow:hidden}.map-stage:after{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Ccircle cx='10' cy='10' r='.4' fill='%23647656' fill-opacity='.13'/%3E%3Ccircle cx='57' cy='36' r='.3' fill='%23647656' fill-opacity='.13'/%3E%3C/svg%3E");pointer-events:none;z-index:1}.map-kicker{position:absolute;top:24px;left:25px;display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:1.4px;font-weight:650;color:var(--green);background:#faf8efdd;padding:10px 12px;border:1px solid #dfe3d3;border-radius:7px;pointer-events:none;z-index:3;backdrop-filter:blur(8px)}.live-dot{height:5px;width:5px;background:var(--teal);border-radius:100%;box-shadow:0 0 0 3px #3e8e8c1c}.map-hint{position:absolute;top:28px;left:50%;transform:translateX(-50%);background:#fffdf5e0;padding:10px 15px;border-radius:22px;font-size:10px;color:var(--muted);pointer-events:none;z-index:4;transition:opacity .3s;white-space:nowrap}.map-hint.faded{opacity:0}.map-tools{position:absolute;right:24px;top:24px;display:flex;flex-direction:column;gap:10px;z-index:6}.map-tools>button,.tool-group{background:var(--white);border:1px solid #dce1d2;border-radius:11px;box-shadow:0 4px 14px #293b2d0d;overflow:hidden}.map-tools button{width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:var(--green)}.map-tools button:hover{background:#e6eddf}.map-tools button.active{color:var(--teal);background:#e3efea}.tool-group button+button{border-top:1px solid var(--line)}.map-bottom{position:absolute;bottom:15px;left:24px;right:24px;display:flex;align-items:flex-end;justify-content:space-between;pointer-events:none;z-index:4;gap:10px}.map-bottom>a{pointer-events:auto;background:#f8f7eee0;padding:3px 5px;font-size:9px;white-space:nowrap;color:#6e7e6a}.scale{font-size:9px;color:#5d7054;background:#f8f7ee99;padding:4px 6px;border-radius:3px}.scale span{display:block;margin-bottom:3px}.scale i{display:block;width:70px;height:5px;border:1px solid #5d7054;border-top:0}.map-camp{position:absolute;bottom:51px;left:24px;display:flex;align-items:center;gap:12px;background:var(--green);border:1px solid #ffffff25;color:var(--white);padding:13px 15px;border-radius:12px;box-shadow:var(--shadow);font-size:12px;font-weight:650;z-index:5;text-align:left}.map-camp small{display:block;font-size:10px;font-weight:400;opacity:.75;margin-top:4px}.map-camp>svg:last-child{width:16px;margin-left:18px}.mobile-list-button{display:none}.map-marker{cursor:pointer;outline:none}.map-marker .hit{fill:transparent;pointer-events:all}.map-marker:focus-visible .marker-ring{stroke:#192c20;stroke-width:3;stroke-dasharray:3 2}.map-marker:hover .marker-ring{stroke-width:3}.marker-label{font-family:Pretendard,sans-serif;paint-order:stroke;stroke:#faf8ef;stroke-width:4px;stroke-linejoin:round;fill:var(--green);font-size:11px;font-weight:650;pointer-events:none}.cluster-label{fill:white;font-family:Pretendard,sans-serif;font-weight:700;font-size:12px;pointer-events:none}.river-label{fill:#5b9791;font-family:Pretendard,sans-serif;font-size:26px;font-weight:650;letter-spacing:7px;paint-order:stroke;stroke:#c5dbd544;stroke-width:4px}.road-label{fill:#87927d;font-family:Pretendard,sans-serif;font-size:10px;paint-order:stroke;stroke:#f5f2e7;stroke-width:3px;stroke-linejoin:round}.map-art{filter:drop-shadow(0 3px 3px #3e513611);pointer-events:none}.selection-preview{position:absolute;left:50%;bottom:70px;transform:translateX(-50%);z-index:8;background:var(--white);box-shadow:var(--shadow);border-radius:13px;padding:12px;max-width:380px;width:calc(100% - 40px)}
.detail-panel{position:absolute;top:16px;right:16px;width:340px;max-height:calc(100% - 32px);overflow:auto;overscroll-behavior:contain;z-index:15;background:var(--white);border:1px solid #d8ddcd;border-radius:17px;box-shadow:0 12px 50px #2a403528;scrollbar-width:thin;scrollbar-color:#ccd5bf transparent}.detail-top{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}.detail-top>span{font-size:10px;letter-spacing:.6px;color:var(--muted);font-weight:650}.detail-top-actions{display:flex;gap:4px}.icon-button{min-width:34px;min-height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:100%}.icon-button:hover{background:#eaf0e2}.detail-hero{height:150px;background:#edf0df;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.detail-hero:before,.detail-hero:after{content:'';position:absolute;bottom:-30px;width:190px;height:110px;border-radius:100%;background:#dce4cb}.detail-hero:before{left:-20px}.detail-hero:after{right:-40px;background:#d3e3d9}.detail-hero>img{position:relative;z-index:1;height:146px;max-width:220px;width:auto;object-fit:contain;padding:8px}.detail-hero>svg.icon{position:relative;z-index:1;width:52px;height:52px;stroke-width:1.1;color:var(--green)}.detail-body{padding:21px 22px}.detail-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.tag{font-size:9px;line-height:1.4;padding:4px 7px;border-radius:5px;color:var(--green);background:#e8eddc}.tag.temporary{color:#80613d;background:#f0e4d0}.detail-body h2{font-size:24px;line-height:1.3;letter-spacing:-.8px;margin:0 0 12px;color:var(--green)}.detail-summary{font-size:13px;line-height:1.75;margin:0 0 16px;color:#5f6c5a;word-break:keep-all}.detail-address{font-size:11px;line-height:1.7;color:#6d7666;display:flex;gap:8px;padding:12px 0;border-top:1px solid var(--line);margin-bottom:14px}.detail-address svg.icon{width:15px;height:18px;flex-shrink:0}.detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.primary-link,.secondary-link{display:flex;align-items:center;justify-content:center;gap:7px;border-radius:9px;min-height:43px;font-size:12px;font-weight:650}.primary-link{background:var(--green);color:white}.secondary-link{background:#edf0e4;color:var(--green)}.primary-link svg,.secondary-link svg{width:15px}.detail-section{padding-top:18px;margin-top:18px;border-top:1px solid var(--line)}.detail-section h3{font-size:12px;color:var(--green);margin:0 0 9px}.detail-section p,.detail-section li{font-size:11px;color:#64705e;line-height:1.85;margin:0 0 10px;word-break:keep-all}.detail-section ul{padding-left:16px;margin:0}.products{display:flex;flex-wrap:wrap;gap:5px}.products span{background:#ece9de;font-size:10px;padding:6px 8px;border-radius:5px;color:#76674e}.detail-section details summary{font-size:11px;font-weight:600;cursor:pointer;padding:8px 0;color:var(--muted)}.source-note{font-size:10px!important;color:#85907c!important}.source-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.source-row a{font-size:10px;border:1px solid var(--line);border-radius:5px;padding:6px 8px;color:var(--teal)}.same-building button{display:block;width:100%;padding:9px 10px;font-size:11px;text-align:left;border:1px solid var(--line);border-radius:6px;margin:5px 0}.source-record{white-space:pre-wrap;max-height:230px;overflow:auto;font-size:10px!important;background:#f3f1e9;padding:10px;line-height:1.8}.detail-footer{display:flex;gap:7px;margin-top:17px;justify-content:space-between}.detail-footer>button{font-size:11px;display:flex;align-items:center;gap:6px;padding:8px 0;min-height:36px;color:var(--teal)}.detail-footer svg.icon{width:16px}.cluster-list{padding:16px 20px}.cluster-list p{font-size:12px;line-height:1.6;color:var(--muted)}.cluster-list button{display:flex;gap:10px;align-items:center;width:100%;padding:12px 5px;border-top:1px solid var(--line);text-align:left}.cluster-list button span:last-child{display:block;font-size:12px;line-height:1.5}.cluster-list small{display:block;color:var(--muted);font-size:10px}.cluster-zoom{border-radius:8px;background:var(--green);color:white;justify-content:center;margin:12px 0;font-size:12px!important}
.about-dialog{width:min(520px,calc(100% - 30px));max-height:calc(100dvh - 40px);overflow:auto;background:var(--white);border:1px solid var(--line);padding:33px;border-radius:18px;color:var(--ink);box-shadow:var(--shadow)}.about-dialog::backdrop{background:#21322670;backdrop-filter:blur(3px)}#close-about{position:absolute;right:14px;top:13px}.about-dialog h2{font-size:28px;letter-spacing:-1px;color:var(--green);line-height:1.3;margin:16px 0 20px}.about-dialog h3{font-size:13px;margin:24px 0 10px;color:var(--green)}.about-dialog p{font-size:12px;line-height:1.85;word-break:keep-all;color:var(--muted)}.source-links{display:flex;gap:9px;flex-wrap:wrap;font-size:11px}.fine-print{font-size:10px!important;color:#829075!important;border-top:1px solid var(--line);padding-top:18px;margin-top:25px}.guide-links{display:flex;flex-wrap:wrap;gap:7px}.guide-links button{border:1px solid var(--line);padding:8px 11px;font-size:11px;border-radius:6px}.about-counts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.about-counts strong{display:block;color:var(--green);font-size:24px}.about-counts span{font-size:10px;color:var(--muted)}.toast{position:fixed;left:50%;bottom:34px;transform:translate(-50%,25px);opacity:0;pointer-events:none;padding:12px 18px;background:#304633ed;color:var(--white);border-radius:10px;font-size:12px;line-height:1.6;z-index:80;box-shadow:var(--shadow);max-width:calc(100% - 36px);width:max-content;text-align:center;transition:opacity .18s,transform .18s}.toast.visible{opacity:1;transform:translate(-50%,0)}.error-panel{position:fixed;inset:0;z-index:100;background:var(--paper);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:30px}.error-panel h1{font-size:22px;color:var(--green)}.error-panel button{background:var(--green);color:white;padding:13px 20px;border-radius:9px;margin-top:15px}.error-panel p{color:var(--muted);line-height:1.6}
@media(min-width:1600px){:root{--sidebar:380px}.intro{padding:32px 29px 22px}.intro h1{font-size:39px}.intro-art{width:135px;height:170px;right:17px}.search-wrap{margin:0 26px}.categories{padding:20px 26px}.place-card{padding:16px 14px;min-height:108px}.place-card h3{font-size:14px}.place-card p{font-size:11px}.place-symbol{height:48px;width:48px}.detail-panel{width:370px}.detail-body{padding:24px}}
@media(max-width:1120px){:root{--sidebar:310px}.app-header{padding:0 20px;gap:10px}.brand>span{font-size:15px}.brand img{width:39px;height:45px}.area-tabs button{padding:0 16px;font-size:12px}.header-actions{gap:5px}.quiet{font-size:11px;gap:5px}.camp-button{font-size:11px;padding:0 10px}.intro{padding:24px 22px 18px}.intro h1{font-size:31px}.intro-art{width:100px;right:7px}.search-wrap{margin:0 19px}.categories{padding:16px 19px}.category-chip{padding:0 8px;font-size:10px}.detail-panel{width:310px}.map-hint{display:none}.map-camp{left:18px;bottom:52px;font-size:11px;padding:12px}.map-camp>svg:last-child{margin-left:2px}.list-toolbar{padding-left:20px;padding-right:20px}}
@media(max-width:760px), (max-width:1000px) and (max-height:500px) and (orientation:landscape){:root{--header:118px;--sidebar:0px}.app-header{height:118px;padding:11px 17px 52px;gap:8px;align-items:center}.brand{gap:7px}.brand img{width:32px;height:39px}.brand>span{font-size:14px}.brand small{font-size:7px;margin-top:3px;letter-spacing:1.8px}.header-actions{gap:5px}.quiet{min-width:37px;padding:5px 4px;font-size:10px}.quiet svg.icon{width:17px}.saved-label{display:none}.camp-button{min-height:35px;font-size:10px;padding:0 10px;gap:5px;border-radius:8px}.camp-button svg.icon{width:15px}.area-tabs{position:absolute;bottom:11px;left:17px;right:17px;justify-content:space-between;padding:4px}.area-tabs button{flex:1;min-height:32px;font-size:12px;padding:0 9px}.app-main{height:calc(100dvh - var(--header));display:block}.map-stage{height:100%;width:100%}.explore-panel{position:absolute;top:calc(var(--header) + 10px);left:12px;right:12px;width:auto;border:0;background:transparent;z-index:11;pointer-events:none;max-height:calc(100dvh - var(--header) - 24px);border-radius:15px;transition:transform .22s}.intro,.list-toolbar,.place-list,.side-footer{display:none}.search-wrap{margin:0;height:45px;background:var(--white);border:1px solid #d9dfce;box-shadow:0 3px 12px #2535260d;pointer-events:auto;padding:0 13px;border-radius:11px}.search-wrap input{font-size:13px}.categories{padding:9px 0 0;flex-wrap:nowrap;overflow:auto;scrollbar-width:none;pointer-events:auto;gap:6px;max-width:100%}.categories::-webkit-scrollbar{display:none}.category-chip{min-height:33px;background:var(--white);font-size:10px;padding:0 11px;border-color:#dfe3d3;box-shadow:0 2px 5px #24362808;flex-shrink:0}.category-chip svg.icon{height:13px;width:13px}.map-kicker{top:112px;left:17px;font-size:8px;padding:7px 9px;letter-spacing:1.1px}.map-tools{right:14px;top:112px;gap:9px}.map-tools button{width:41px;height:41px}.map-tools .tool-group button{height:38px}.map-camp{left:14px;bottom:82px;padding:10px 12px;border-radius:10px;font-size:10px;gap:7px}.map-camp small{font-size:9px}.map-camp>svg:first-child{width:16px}.map-camp>svg:last-child{width:14px;margin-left:5px}.map-bottom{bottom:12px;left:15px;right:12px;gap:8px}.map-bottom>a{font-size:7px;max-width:165px}.scale{font-size:8px;padding:3px 5px}.mobile-list-button{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);border-radius:30px;display:flex;align-items:center;justify-content:center;gap:8px;background:var(--white);color:var(--green);padding:11px 18px;min-height:42px;font-size:11px;font-weight:650;z-index:7;box-shadow:0 5px 20px #25352820;white-space:nowrap;border:1px solid #dce1d1}.mobile-list-button svg.icon{width:16px;height:16px}.mobile-list-button b{font-size:10px;color:var(--teal);font-weight:500}.detail-panel{top:auto;right:0;left:0;bottom:0;width:100%;max-height:min(76dvh,calc(100% - 105px));border-radius:21px 21px 0 0;border-bottom:0;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -8px 40px #2a403526}.detail-top{padding:8px 16px;position:sticky;top:0;background:var(--white);z-index:4;min-height:46px}.detail-top:before{content:'';position:absolute;top:5px;left:50%;transform:translateX(-50%);width:30px;height:3px;border-radius:3px;background:#d1d8c7}.detail-hero{height:126px}.detail-hero>img{height:122px;max-width:190px}.detail-body{padding:17px 21px 24px}.detail-body h2{font-size:25px}.detail-summary{font-size:13px}.detail-address{font-size:12px}.detail-section p,.detail-section li{font-size:12px}.detail-section h3{font-size:13px}.detail-actions .primary-link,.detail-actions .secondary-link{font-size:13px;min-height:45px}.detail-footer>button{font-size:12px;min-height:42px}.detail-open .map-camp,.detail-open .mobile-list-button{display:none}.detail-open .map-kicker{opacity:0}.list-open .explore-panel{background:var(--white);pointer-events:auto;box-shadow:var(--shadow);padding:14px 0 0;border:1px solid #dce1d2;height:calc(100dvh - var(--header) - 35px);max-height:none;top:calc(var(--header) + 12px)}.list-open .search-wrap{margin:0 13px;box-shadow:none;background:#f0f2e8}.list-open .categories{padding:10px 13px 12px}.list-open .list-toolbar{display:flex;padding:12px 19px}.list-open .place-list{display:block;padding:0 9px;overflow:auto;flex:1;min-height:0}.list-open .side-footer{display:flex;padding:10px 19px}.list-open .mobile-list-button{bottom:21px;z-index:24;background:var(--green);color:white}.list-open .mobile-list-button b{color:#d8e2cc}.list-open .side-footer{padding-bottom:62px}.list-open .detail-panel{z-index:30}.place-card{min-height:100px;padding:14px 10px}.place-card h3{font-size:14px}.place-card p{font-size:11px}.place-card .meta{font-size:10px}.place-symbol{width:47px;height:47px}.card-favorite{min-width:40px;min-height:40px}.distance{font-size:10px}.toast{bottom:86px;font-size:12px}.about-dialog{padding:28px 24px}.about-dialog p{font-size:13px}.about-dialog .fine-print{font-size:11px!important}.about-dialog h2{font-size:27px}.selection-preview{display:none}}
@media(max-width:360px){.app-header{padding-left:12px;padding-right:12px}.brand>span{font-size:12px}.brand img{width:27px}.header-actions{gap:0}.camp-button{padding:0 7px;font-size:9px}.quiet{min-width:29px;gap:2px}.area-tabs{left:12px;right:12px}.map-camp{font-size:9px;gap:6px;padding:9px}.map-camp small{font-size:8px}.map-camp>svg:last-child{display:none}.map-bottom>a{font-size:6.5px}.detail-body{padding-left:17px;padding-right:17px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.card-open{display:flex;align-items:center;gap:12px;flex:1;min-width:0;text-align:left;padding:0;background:none;border-radius:5px}.card-open .place-card-text{flex:1}.compass{position:absolute;bottom:94px;right:30px;z-index:4;color:#63785b;font-size:10px;font-weight:650;pointer-events:none}@media(max-width:760px), (max-width:1000px) and (max-height:500px) and (orientation:landscape){.compass{bottom:47px;right:20px;font-size:9px}}
/* Touch targets stay 44px even where the visual symbol is smaller. */
.card-favorite{min-width:44px;min-height:44px}.icon-button{min-width:44px;min-height:44px}.text-button{min-height:44px}.side-footer .text-button{min-height:44px}.header-actions .quiet{min-height:44px}.area-tabs button{min-height:44px}.category-chip{min-height:44px}.map-tools button{width:44px;height:44px}.tool-group button{height:44px}
@media(max-width:760px), (max-width:1000px) and (max-height:500px) and (orientation:landscape){:root{--header:132px}.app-header{height:132px;padding-bottom:63px}.area-tabs{bottom:8px}.area-tabs button{min-height:44px}.category-chip{min-height:44px}.map-tools button,.map-tools .tool-group button{width:44px;height:44px}.map-tools{right:12px;top:116px}.map-kicker{top:116px}.categories{padding-top:9px}.card-favorite{min-width:44px;min-height:44px}.detail-top{min-height:54px}.header-actions .quiet{min-width:44px}.camp-button{min-height:44px}.side-footer{min-height:48px}.side-footer .text-button{min-height:36px}}

.icon-button[aria-pressed="true"] .icon{fill:#d2ddc2;stroke:#435d46}@media(max-width:760px), (max-width:1000px) and (max-height:500px) and (orientation:landscape){.search-wrap input{font-size:16px}}

.category-chip{min-width:44px}.search-wrap>button{min-width:44px;min-height:44px}.camp-button{min-height:44px}.mobile-list-button{min-height:44px}@media(max-width:760px), (max-width:1000px) and (max-height:500px) and (orientation:landscape){.category-chip{min-width:44px}.search-wrap>button{min-width:44px;min-height:44px}.mobile-list-button{min-height:44px}}

/* The completed Basecamp artwork is shown in full, without cropping. */
.detail-hero.detail-hero--basecamp{height:auto;aspect-ratio:4/3;background:#f5f0e6}
.detail-hero--basecamp:before,.detail-hero--basecamp:after{display:none}
.detail-hero.detail-hero--basecamp>img{display:block;width:100%;height:100%;max-width:none;padding:0;object-fit:contain}
.map-landmark:hover .map-art{filter:drop-shadow(0 3px 4px #3e513638)}
.map-landmark:focus-visible .landmark-hit{stroke:#385842;stroke-width:2;stroke-dasharray:4 3}

.detail-hero.detail-hero--place{height:190px;background:#edf0e2}
.detail-hero--place:before,.detail-hero--place:after{opacity:.45}
.detail-hero.detail-hero--place>img{width:100%;height:100%;max-width:310px;padding:10px;object-fit:contain}
 .illustration-credit{padding:0 15px;font-size:10px;line-height:1.7;color:var(--muted);background:#f3f3e9}
.illustration-credit summary{cursor:pointer;min-height:35px;padding:9px 0;list-style-position:inside;text-align:right}
.illustration-credit>div{display:flex;flex-direction:column;gap:7px;padding:2px 0 13px;word-break:keep-all}
.illustration-credit a{color:var(--teal)}
.illustration-credit a:hover{text-decoration:underline}
@media(max-width:760px), (max-width:1000px) and (max-height:500px) and (orientation:landscape){.detail-hero.detail-hero--place{height:175px}.illustration-credit{padding:0 18px}.illustration-credit summary{min-height:39px}}

/* Keep a useful list and readable input when a phone is turned sideways. */
@media(max-width:760px) and (max-height:620px){
 .detail-hero.detail-hero--place{height:110px}
 .detail-hero.detail-hero--basecamp{height:140px;aspect-ratio:auto}
}

.location-state{position:absolute;right:79px;top:25px;min-height:42px;display:flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid #d8dfd0;border-radius:11px;background:var(--white);box-shadow:var(--shadow);color:var(--muted);font-size:11px;font-weight:650;z-index:6;pointer-events:none}
.location-state:before{content:'';width:6px;height:6px;border-radius:50%;background:#a5ad98;flex-shrink:0}
.location-state[data-mode=following]{color:var(--teal);background:#eff6ef;border-color:#a7c5b4}
.location-state[data-mode=following]:before{background:var(--teal);box-shadow:0 0 0 3px #2e797617}
.location-state[data-mode=error]{color:#876340}
body.location-active .map-kicker,body.location-active .map-hint{display:none}
#locate[aria-busy=true] .icon{animation:locating-turn 1.8s linear infinite}
@keyframes locating-turn{to{transform:rotate(360deg)}}
@media(max-width:760px), (max-width:1000px) and (max-height:500px) and (orientation:landscape){.location-state{top:117px;right:65px;min-height:42px;font-size:10px;padding:8px 10px}}

/* Keep supporting text readable on the paper palette. */
.source-note,.fine-print{color:#62705d!important}
.distance,.side-footer>span{color:#62705d}
.card-favorite{color:#6d7b65}
.road-label{fill:#66755f}
.map-bottom>a{color:#62735e}
.detail-section p,.detail-section li{font-size:12px}
.source-note{font-size:11px!important}
.distance{font-size:10px}
.primary-link,.secondary-link,.detail-footer>button,.same-building button,.guide-links button{min-height:44px}

/* Short phones need the same reachable controls as wider landscape screens. */
@media(max-width:1000px) and (max-height:500px) and (orientation:landscape){
 :root{--header:64px}
 .app-header{height:64px;padding:0 12px;gap:8px}
 .brand{gap:5px}
 .brand img{width:25px;height:34px}
 .brand>span{font-size:12px;white-space:nowrap}
 .brand small{display:none}
 .area-tabs{position:static;flex:1;left:auto;right:auto;bottom:auto;padding:4px;gap:2px}
 .area-tabs button{padding:0 6px;font-size:11px;min-width:0}
 .header-actions{gap:4px}
 .header-actions .quiet{padding:0;gap:2px}
 .camp-button{width:44px;padding:0;justify-content:center}
 .camp-button>span{display:none}
 .camp-button svg.icon{width:20px}
 .explore-panel{left:12px;right:70px;top:calc(var(--header) + 10px)}
 .map-tools{top:12px;right:12px}
 .map-kicker{display:none}
 .map-camp{bottom:54px;left:12px;padding:8px 10px}
 .location-state{top:116px;left:12px;right:auto;max-width:calc(100% - 80px)}
 .mobile-list-button{bottom:26px}
 .detail-panel{top:8px;bottom:8px;left:auto;right:8px;width:min(330px,62vw);max-height:calc(100% - 16px);border-radius:14px}
 .detail-hero.detail-hero--place,.detail-hero.detail-hero--basecamp{height:90px;aspect-ratio:auto}
 .detail-open .explore-panel{visibility:hidden}
 .list-open .explore-panel{left:12px;right:12px;top:calc(var(--header) + 8px);height:calc(100dvh - var(--header) - 16px);padding:8px 0;max-height:none}
 .list-open .list-toolbar,.list-open .side-footer{display:none}
 .list-open .categories{padding:6px 13px}
 .list-open .place-list{padding-bottom:58px}
 .list-open .mobile-list-button{bottom:18px}
}

/* Place-specific illustrations keep facility/parent depictions explicit. */
.illustration-note{margin:0;padding:10px 18px;background:#f0f2e8;color:#4e6247;font-size:11px;line-height:1.6;border-top:1px solid #e0e5d5}.cluster-list .place-symbol img{width:100%;height:100%;object-fit:contain;transform:none}.marker-illustration{pointer-events:none}
.art-name{font:650 10px Pretendard,sans-serif;fill:#314c35;paint-order:stroke;stroke:#faf8ef;stroke-width:4px;stroke-linejoin:round;pointer-events:none}
.detail-art-open{position:absolute;right:10px;bottom:8px;z-index:2;display:flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border-radius:10px;background:#fffdf5ed;color:#314c35;border:1px solid #d5decb;font-size:12px;font-weight:650}
.detail-art-open svg{width:16px;height:16px}
