@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700;800&family=Noto+Serif+KR:wght@500;600;700&display=swap');
:root{--ink:#233c35;--green:#285344;--light:#f5f5ee;--line:#e6e7de;--muted:#7c827b;--orange:#b76b3f;--cream:#fbfbf7}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--cream);font-family:'Noto Sans KR',sans-serif;font-size:13px}button,input{font:inherit}button{cursor:pointer;color:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}button{background:none;border:0}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #bd784b;outline-offset:3px}a{color:inherit}button:disabled{cursor:not-allowed;opacity:.5}[hidden]{display:none!important}.header{height:86px;display:flex;align-items:center;padding:0 30px;gap:55px;border-bottom:1px solid var(--line);background:#fffefb}.brand{display:flex;gap:12px;text-decoration:none;align-items:center;font-family:'Noto Serif KR',serif;font-size:23px;white-space:nowrap}.brand-symbol{display:grid;place-items:center;border:1px solid #577264;width:43px;height:43px;border-radius:50%;font-size:25px;transform:rotate(-8deg)}.brand b{font-weight:600}.brand small{display:block;font:8px 'Noto Sans KR',sans-serif;letter-spacing:2.2px;margin-top:5px;color:#7b8b7d}.header nav{display:flex;height:100%;gap:28px}.nav{position:relative;padding:0 2px;font-size:13px;color:#7a837a}.nav.active{color:var(--green);font-weight:700}.nav.active:after{content:'';height:3px;position:absolute;bottom:0;left:0;right:0;background:var(--green)}.nav span{margin-left:8px}.header-right{margin-left:auto;display:flex;gap:22px;align-items:center}.prototype{font-size:10px;color:#7d8075;background:#f0f2eb;padding:6px 10px;border-radius:20px;white-space:nowrap}.prototype i{display:inline-block;width:5px;height:5px;background:#8e9c6f;border-radius:50%;margin-right:4px}.text-button{font-size:11px}.agency{font-size:11px;color:#83887b;border-left:1px solid var(--line);padding-left:22px}.notice{height:40px;background:#eff2e9;padding:0 30px;display:flex;gap:9px;align-items:center;font-size:10px;color:#69755f;border-bottom:1px solid #e2e8d9}.notice-icon{width:14px;height:14px;border:1px solid #889777;border-radius:50%;text-align:center;font:11px Georgia}.demo-control{margin-left:auto;display:flex;align-items:center;gap:8px;cursor:pointer;white-space:nowrap}.demo-control input{position:absolute;opacity:0}.switch{width:27px;height:16px;border-radius:10px;background:#c9d0c0;position:relative}.switch:before{content:'';position:absolute;top:3px;left:3px;width:10px;height:10px;background:white;border-radius:50%;transition:.2s}.demo-control input:checked+.switch{background:#b66c42}.demo-control input:checked+.switch:before{transform:translateX(11px)}.demo-control input:focus-visible+.switch{outline:3px solid #b66c42}.layout{height:calc(100dvh - 126px);display:grid;grid-template-columns:390px 1fr}.sidebar{overflow:auto;background:var(--cream);z-index:500;border-right:1px solid var(--line);padding:29px 26px 20px;scrollbar-width:thin;scrollbar-color:#d4d8c9 transparent}.intro{margin-bottom:23px}.eyebrow{font-size:9px;font-weight:600;letter-spacing:2px;color:#88967a}.intro .eyebrow{letter-spacing:1.5px;font-size:10px}.intro h1{font-family:'Noto Serif KR',serif;font-weight:600;font-size:29px;letter-spacing:-1.5px;line-height:1.65;margin:10px 0}.intro p{font-size:11px;color:#868b80;margin:9px 0}.search{border:1px solid #dce1d3;display:flex;align-items:center;padding:10px 13px;background:white;border-radius:5px;gap:10px}.search>span{font-size:22px;color:#67785e;line-height:1}.search input{width:100%;min-width:0;border:0;background:none;outline:none;font-size:11px}.search kbd{font-size:9px;white-space:nowrap;color:#a2a69b;border:1px solid #eee;padding:2px 4px;border-radius:3px}.date-bar{display:flex;align-items:center;gap:8px;background:#eeeee5;border-radius:5px;padding:11px 13px;margin-top:10px}.date-bar label{font-size:11px}.date-bar input{margin-left:auto;width:135px;border:0;background:none;font-size:11px;color:#50634e}.calendar-icon{font-size:18px;color:#788469}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:26px 0 13px}.section-heading h2{font-size:12px;margin:0;font-weight:600}.section-heading h2 span{font:11px Georgia;color:#8d997e;margin-left:7px}.subtle{font-size:9px;color:#93998d}.place-card{border:1px solid var(--line);background:#fffefa;border-radius:7px;margin-bottom:10px;padding:16px 15px;cursor:pointer;transition:.2s}.place-card:hover{border-color:#9cae94;transform:translateY(-1px)}.place-card.selected{border-color:#7e9970;background:#f2f4eb;box-shadow:0 0 0 1px #7e997015}.place-top{display:flex;gap:11px;align-items:center}.place-icon{display:grid;place-items:center;width:41px;height:42px;border-radius:5px;background:#e7ebdc;font-size:22px;color:#657655}.place-info{flex:1}.place-info h3{margin:0 0 5px;font-size:14px;font-weight:600}.place-info small{color:#8a8f7d;font-size:10px}.place-top>span{font-size:16px;color:#88937e}.metrics{display:flex;align-items:center;justify-content:space-between;margin-top:15px;padding-top:12px;border-top:1px solid #e7e9dd}.metric{font-size:9px;color:#92988a;display:flex;flex-direction:column;gap:5px}.metric strong{font-weight:500;color:#737e6b;font-size:10px}.metric+.metric{border-left:1px solid #e5e8db;padding-left:13px}.demo-tag{background:#f7e8d9;color:#a3653d;font-size:8px;padding:2px 4px;border-radius:3px;margin-left:4px;font-style:normal;display:inline-block}.plan-cta{width:100%;display:flex;align-items:center;gap:12px;border:1px solid #d9ddca;background:#ecefdf;border-radius:6px;padding:17px 13px;margin-top:19px;text-align:left}.plan-cta .spark{font-size:25px;color:#8c9a67}.plan-cta b{display:block;font-size:11px;font-weight:600}.plan-cta small{display:block;font-size:9px;color:#8b927c;margin-top:5px}.plan-cta>span:last-child{margin-left:auto;font-size:20px}.data-footnote{font-size:9px;line-height:1.8;color:#a0a591;margin:20px 2px}.map-area{position:relative;overflow:hidden;background:#e9eddf;isolation:isolate}#map{position:absolute;inset:0;z-index:0;background:#e9eddf}.leaflet-tile-pane{filter:none}.leaflet-container{font:12px 'Noto Sans KR',sans-serif}.leaflet-control-zoom{border:1px solid #d9dfce!important;border-radius:5px!important;box-shadow:0 3px 12px #33442a0c!important}.leaflet-control-zoom a{color:var(--green)!important}.leaflet-control-attribution{font-size:8px!important}.map-top{position:absolute;top:24px;left:28px;right:26px;display:flex;justify-content:space-between;z-index:400}.layer-tabs{display:flex;background:#fffefa;padding:5px;gap:3px;border-radius:7px;border:1px solid #dee2d4;box-shadow:0 4px 16px #314b2810}.layer-tabs button{font-size:11px;padding:10px 14px;border-radius:4px;white-space:nowrap}.layer-tabs button.selected{background:var(--green);color:#fff}.map-button{border:1px solid #d8dfce;background:#fffefa;width:43px;height:43px;border-radius:6px;font-size:23px;box-shadow:0 4px 16px #314b2810}.map-title{position:absolute;left:35px;top:111px;pointer-events:none;z-index:350;text-shadow:0 1px 6px #fff,0 1px 12px #fff}.map-title h2{font-family:'Noto Serif KR',serif;font-weight:500;letter-spacing:-1px;line-height:1.6;font-size:30px;margin:11px 0 16px}.map-region{font-size:10px;color:#7c8970;letter-spacing:.4px}.map-region i{padding:0 5px;font-style:normal}.detail-card{position:absolute;right:25px;bottom:82px;width:320px;background:#fffef9ed;backdrop-filter:blur(12px);border:1px solid #dfe4d4;border-radius:9px;padding:22px;z-index:450;box-shadow:0 8px 30px #263d2712}.detail-label{display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#879577;letter-spacing:1px}.detail-card h2{font-family:'Noto Serif KR',serif;font-size:24px;letter-spacing:-1px;font-weight:600;margin:11px 0 5px}.detail-card p{color:#8d9682;font-size:10px;line-height:1.7;margin:7px 0}.detail-line{height:1px;background:#e5e8dc;margin:17px 0}.status-grid{display:grid;gap:11px}.status-grid>div{display:flex;justify-content:space-between;align-items:center;font-size:10px}.status-grid>div>span{color:#8b957e}.status-grid b{font-weight:500;font-size:11px}.detail-action{margin-top:18px;padding-top:15px;border-top:1px solid #e7eade;display:flex;justify-content:space-between;align-items:center}.detail-action button{font-size:10px}.detail-action span{font-size:9px;color:#959c8b}.map-legend{position:absolute;left:28px;bottom:34px;z-index:400;padding:13px 17px;display:flex;gap:15px;align-items:center;border:1px solid #dce1d1;border-radius:5px;background:#fffefaec;font-size:10px}.legend-heading{font-weight:600;padding-right:15px;border-right:1px solid #dfe3d6}.map-legend small{font-size:9px;color:#8d9682}.location-note{position:absolute;bottom:12px;left:28px;font-size:8px;color:#6b785f;background:#ffffffa8;padding:2px 5px;z-index:400}.place-marker{background:transparent;border:0}.marker-inner{display:flex;align-items:center;gap:7px;width:max-content;background:#fffefb;border:1px solid #bac8ad;box-shadow:0 3px 10px #334d3420;padding:7px 11px 7px 7px;border-radius:30px;color:#3e5640;font-size:11px;white-space:nowrap}.marker-inner b{background:#e7ecdb;color:#516444;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:10px}.place-marker.current .marker-inner{background:var(--green);color:white;border-color:var(--green)}.place-marker.current b{background:#ffffff25;color:white}.map-alert{position:absolute;top:82px;left:28px;right:26px;padding:10px 13px;background:#fffaf0f5;border:1px solid #e9dfc5;border-radius:5px;font-size:10px;color:#82724e;z-index:410}.field{display:flex;flex-direction:column;font-size:11px;gap:8px;margin-bottom:17px}.field input{width:100%;border:1px solid #dbe1d2;border-radius:5px;padding:12px;background:#fffefa;color:var(--ink);min-width:0}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:13px}fieldset{border:0;padding:0;margin:4px 0 22px}legend{font-size:11px;margin-bottom:11px}legend small{font-size:9px;color:#99a08c;margin-left:8px}.place-check{display:flex;align-items:center;gap:8px;padding:11px;border:1px solid #e1e5d7;border-radius:5px;margin:7px 0;font-size:11px;background:#fffefa}.place-check small{margin-left:auto;color:#99a08d;font-size:9px}input[type=checkbox],input[type=radio]{accent-color:var(--green)}.style-choices{display:flex;gap:9px}.style-choices label{flex:1}.style-choices input{position:absolute;opacity:0}.style-choices span{display:block;text-align:center;border:1px solid #dce1d0;padding:11px 4px;border-radius:5px;color:#839077;font-size:11px}.style-choices input:checked+span{background:#edf1e3;border-color:#80966d;color:var(--green)}.style-choices input:focus-visible+span{outline:3px solid #b76b3f}.night-choice{display:flex;align-items:center;gap:7px;font-size:10px}.form-note{font-size:9px;line-height:1.9;color:#99a08d;margin:19px 0}.primary{background:var(--green);color:white;border-radius:5px;padding:14px;font-size:11px}.primary span{float:right}.full{width:100%}#form-error{font-size:11px;color:#a35d39;padding-top:10px}.itinerary-head{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:22px;padding-top:20px}.itinerary-head h2{font-size:15px;margin:0}.itinerary-head button{font-size:10px;text-decoration:underline}.timeline{padding-left:14px;border-left:1px dashed #bcc8a8;margin:22px 0 10px 8px}.timeline-item{position:relative;margin-bottom:20px;padding-left:7px}.timeline-item:before{content:'';position:absolute;left:-20px;top:4px;width:9px;height:9px;border-radius:50%;background:#7e9468;border:2px solid #f7f8ef}.timeline-item time{color:#7d8d6b;font-size:10px}.timeline-item h3{margin:5px 0;font-size:13px}.timeline-item p{font-size:10px;line-height:1.7;color:#8d9680;margin:5px 0}.itinerary-note{background:#eeefe5;padding:13px;border-radius:5px;color:#7f896e;font-size:9px;line-height:1.9}.calendar-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:15px}.day-button{padding:9px 2px;border:1px solid #e1e5d8;border-radius:4px;font-size:9px}.day-button.active{background:#e5ebd9;border-color:#8fa37c}.day-button span{display:block;margin-top:5px;color:#899679;font-size:9px}dialog{border:1px solid #dce2d3;border-radius:12px;padding:30px;max-width:850px;width:calc(100% - 30px);max-height:86dvh;color:var(--ink);background:#fffef9}dialog::backdrop{background:#20382f70;backdrop-filter:blur(3px)}.dialog-top{display:flex;justify-content:space-between;align-items:center}.dialog-top button{font-size:20px}dialog>h2{font-family:'Noto Serif KR',serif;font-size:28px;line-height:1.6}dialog>p{font-size:11px;color:#879176}#research-content{font-size:12px;line-height:1.9}#research-content h3{font-size:15px;margin-top:26px}#research-content table{border-collapse:collapse;width:100%;font-size:10px}#research-content th,#research-content td{padding:10px 8px;text-align:left;vertical-align:top;border-bottom:1px solid #e5e8da}#research-content th{background:#eef1e5}#research-content a{color:#38604b}#research-content code{background:#eff1e8;padding:2px 4px;font-size:10px;overflow-wrap:anywhere}.mobile-handle{display:none}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#284d42;color:white;z-index:3000;padding:12px 20px;border-radius:6px;font-size:12px;max-width:90%;box-shadow:0 5px 25px #0002}.parking-entry{border:1px solid #e0e5d6;border-radius:5px;padding:12px;margin-top:10px}.parking-entry h3{font-size:12px;margin:0 0 6px}.parking-entry .parking-meta{display:flex;justify-content:space-between;font-size:10px;color:#8a927c}.empty-state{font-size:12px;padding:30px 0;color:#939c85}.mini-source{font-size:8px!important}body.demo .notice{background:#f5e9d7;color:#96643e}body.demo .notice strong{color:#9d5d32}
.api-tag{font-style:normal;font-size:8px;color:#42614b;background:#e7eedf;padding:2px 4px;border-radius:3px;margin-left:3px}.api-status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:15px 0}.api-status-grid article{border:1px solid #dce4d1;border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:7px}.api-status-grid span{color:#96734c;font-size:11px}.api-status-grid small{font-size:9px;color:#929b85}.date-recommendation{border:1px solid #dfe7d2;background:#f0f4e8;padding:10px;border-radius:5px;display:flex;flex-direction:column;gap:7px;margin-top:12px}.date-recommendation span{font-size:9px;color:#859574}.date-recommendation button{font-size:11px;text-align:left;padding:0;color:#385c43}.date-recommendation small{font-size:8px;color:#8d987f}.parking-hours{font-size:9px}.detail-card{max-height:65%;overflow:auto;scrollbar-width:thin}@media(max-width:720px){.api-status-grid{grid-template-columns:1fr}}
@media(min-width:1500px){.layout{grid-template-columns:420px 1fr}.sidebar{padding-left:32px;padding-right:32px}.intro h1{font-size:32px}}
@media(max-width:1100px){.header{gap:30px;padding:0 22px}.agency{display:none}.header-right{gap:15px}.layout{grid-template-columns:350px 1fr}.sidebar{padding:25px 22px}.intro h1{font-size:26px}.map-title h2{font-size:26px}.detail-card{width:285px;right:20px}.map-legend{max-width:calc(100% - 55px);flex-wrap:wrap;gap:7px}.map-top{left:20px;right:20px}.layer-tabs button{padding:10px}}
@media(max-width:720px){.header{height:70px;padding:0 17px;gap:15px}.brand{font-size:18px;gap:8px}.brand-symbol{width:33px;height:33px;font-size:20px}.brand small{font-size:6px;letter-spacing:1.3px}.header nav{margin-left:auto;gap:15px}.nav{font-size:11px}.nav span{display:none}.header-right{margin:0}.header-right .prototype{display:none}.text-button{font-size:0}.text-button span{font-size:17px}.notice{height:49px;padding:8px 15px;font-size:9px;line-height:1.7;gap:7px}.notice>span:nth-child(2){flex:1}.demo-control{font-size:9px;flex-direction:column;gap:2px}.notice-icon{flex-shrink:0}.layout{height:calc(100dvh - 119px);display:block;position:relative}.map-area{position:absolute;inset:0}.sidebar{position:absolute;left:0;right:0;bottom:0;height:46%;z-index:600;border-radius:20px 20px 0 0;padding:16px 22px 25px;box-shadow:0 -5px 30px #243e2915;border-right:0;transition:height .25s}.sidebar.expanded{height:88%}.mobile-handle{display:block;width:80px;height:18px;margin:-10px auto 12px;position:relative}.mobile-handle:after{content:'';position:absolute;width:36px;height:4px;left:22px;top:8px;background:#c7cfbc;border-radius:10px}.intro{margin-bottom:16px}.intro h1{font-size:25px;line-height:1.5;margin:6px 0}.intro h1 br{display:none}.intro p{font-size:10px}.intro .eyebrow{font-size:8px}.map-title{top:82px;left:23px}.map-title h2{font-size:23px;line-height:1.5;margin:8px 0}.map-title .eyebrow{font-size:8px}.map-region{font-size:9px}.map-top{top:15px;left:16px;right:16px}.layer-tabs{padding:4px}.layer-tabs button{font-size:10px;padding:9px 10px}.map-button{width:37px;height:37px;font-size:20px}.detail-card{display:none}.map-legend{bottom:calc(46% + 16px);left:15px;padding:9px 12px;gap:9px;font-size:9px}.map-legend small{display:none}.location-note{display:none}.map-alert{top:67px;left:16px;right:16px;font-size:9px}.map-area .leaflet-bottom.leaflet-right{bottom:47%}.section-heading{margin-top:21px}.place-card{padding:14px}.data-footnote{margin-bottom:10px}dialog{padding:23px}dialog>h2{font-size:23px}#research-content table{font-size:9px}#research-content th,#research-content td{padding:7px 4px}}

/* Real cartographic snapshot is visible even before JavaScript or WebGL initializes. */
#map{background-image:none;background-size:cover;background-position:center}.map-mode{position:absolute;z-index:410;top:80px;right:26px;border:1px solid #dfe4d5;border-radius:4px;background:#fffef9ef;color:#7b896e;padding:6px 10px;font-size:9px}.leaflet-gl-layer{opacity:0;transition:opacity .3s}.map-area.map-live .leaflet-gl-layer{opacity:1}@media(max-width:720px){.map-mode{top:65px;right:16px;font-size:8px;max-width:200px}}

/* A closer tourist-center view with clear, restrained cartography. */
#map{background-size:cover;background-position:50% 12%}
.map-title{top:86px;left:28px;text-shadow:none}
.map-title>.eyebrow,.map-title>h2{display:none}
.map-region{display:inline-block;background:#fffefbed;padding:9px 13px;border:1px solid #dfe5d8;border-radius:6px;color:#6f8069;font-size:10px;box-shadow:0 2px 8px #304a2a05}
.marker-inner{border:1px solid #d3decf;box-shadow:0 4px 14px #253b2825;padding:8px 14px 8px 8px;font-size:12px;font-weight:600;border-radius:12px;color:#314d3d;background:#fffefa}
.marker-inner b{width:28px;height:28px;font-size:11px;background:#e9efe2;color:#4e6b43}
.place-marker.current .marker-inner{border:2px solid #284f49;background:#fffefa;color:#284f49;box-shadow:0 5px 20px #264c4430}
.place-marker.current b{background:#284f49;color:white}
.map-mode{top:auto;bottom:12px;right:170px;font-size:8px;border:0;background:#fffef9df;padding:3px 7px}
@media(max-width:720px){.map-title{left:16px;top:67px}.map-region{font-size:8px;padding:7px 9px}.map-mode{bottom:calc(46% + 6px);right:15px;top:auto;max-width:200px}.marker-inner{font-size:11px;padding:6px 10px 6px 6px}.marker-inner b{width:25px;height:25px}}

#map{overscroll-behavior:contain;touch-action:none}
.map-zoom-controls{position:absolute;z-index:450;right:22px;bottom:66px;display:flex;flex-direction:column;align-items:center;background:#fffefb;border:1px solid #d5dfcf;border-radius:8px;box-shadow:0 3px 15px #253b2815;overflow:hidden}
.map-zoom-controls button{width:42px;height:38px;font-size:23px;line-height:1;color:#315340;background:#fffefb}
.map-zoom-controls button:hover{background:#eff3e9}
#map-zoom-level{max-width:90px;min-width:42px;padding:5px 6px;border-top:1px solid #e6ebdf;border-bottom:1px solid #e6ebdf;font-size:8px;color:#829277;text-align:center}
#map.is-zooming{cursor:zoom-in}
@media(max-width:720px){.map-zoom-controls{right:15px;bottom:calc(46% + 52px)}.map-zoom-controls button{width:36px;height:34px;font-size:21px}}

/* Native vector canvas stays hidden until real source features are rendered. */
#map .maplibregl-canvas-container{opacity:0;transition:opacity .2s}
.map-area.map-live #map .maplibregl-canvas-container{opacity:1}
.map-area:not(.map-live) #map .maplibregl-marker{visibility:hidden}
.maplibregl-ctrl-attrib{font-size:8px!important}
.maplibregl-ctrl-bottom-right{bottom:0;right:0}
.maplibregl-marker.place-marker{width:max-content;height:auto}
@media(max-width:720px){.maplibregl-ctrl-bottom-right{bottom:46%}}

.detail-close{position:absolute;right:10px;top:8px;width:27px;height:27px;display:grid;place-items:center;border-radius:50%;font-size:20px;color:#7f8e76;background:#eef2e7}.detail-close:hover{background:#e0e8d6;color:#304e3d}.detail-card .detail-label{padding-right:22px}

/* A real basemap is required for interaction. A static image is not an interactive substitute. */
#map{background-image:none!important;background-color:#f3f5ef;background-size:auto;background-position:center}
.map-runtime-note{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);z-index:300;background:#fffefa;border:1px solid #dbe3d2;border-radius:10px;padding:25px;max-width:440px;width:calc(100% - 48px);box-shadow:0 6px 24px #304b2910;color:#526747;text-align:center;pointer-events:none}
.map-runtime-note strong{font-size:15px;font-weight:600}.map-runtime-note p{font-size:11px;line-height:1.9;color:#8a967e;margin:10px 0 0}.map-zoom-controls button:disabled{opacity:.35;cursor:wait}
@media(max-width:720px){.map-runtime-note{top:28%;padding:17px}.map-runtime-note strong{font-size:13px}.map-runtime-note p{font-size:10px}}
