:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Apple SD Gothic Neo,Malgun Gothic,sans-serif;color:#172824;background:#f4f2e9;font-synthesis:none;--ink:#172824;--muted:#69746c;--paper:#f4f2e9;--panel:#fffdf7;--line:#dcded3;--gold:#d5b77b;--water:#63a8a3;--route:#d67353;--radius:12px;--space:8px}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button,a,input{-webkit-tap-highlight-color:transparent}button{color:inherit}button:focus-visible,input:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #d28439;outline-offset:3px}button{touch-action:manipulation}a{color:inherit;text-underline-offset:3px}button svg{flex-shrink:0}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}#app{height:100dvh;min-height:480px;display:grid;grid-template-columns:280px minmax(0,1fr);overflow:hidden}.sidebar{background:var(--ink);color:#f4f1e4;display:flex;flex-direction:column;min-height:0;z-index:30}.brand{display:flex;align-items:center;gap:12px;padding:24px 24px 16px;font-size:10px;letter-spacing:2px;line-height:1.6}.brand b{display:block;font-size:16px;font-weight:500;letter-spacing:4px}.brand-icon{display:grid;place-items:center;width:36px;height:48px;border:1px solid #637465;border-radius:18px 18px 2px 2px;color:var(--gold)}.brand-icon svg{width:26px;height:30px}.intro{padding:24px 24px 26px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:1.8px;line-height:1.5}.intro .eyebrow{color:var(--gold);font-size:9px;letter-spacing:1.5px}.intro h1{font-size:29px;font-weight:500;letter-spacing:-1.3px;margin:18px 0 12px}.intro>p:not(.eyebrow){font-size:13px;line-height:1.9;color:#b4beb2;margin:0 0 20px}.date-chip{font-size:11px;color:#e4dbc2;letter-spacing:.5px}.date-chip span{border-left:1px solid #526050;margin-left:10px;padding-left:10px;color:#aebbae;letter-spacing:0}.search-wrap{padding:0 18px 20px}.search{display:flex;align-items:center;gap:9px;background:#253830;border:1px solid #4b5a4d;border-radius:6px;padding:0 12px;color:#aebbad;min-height:46px}.search input{width:100%;min-width:0;background:none;border:0;color:#fffdf5;outline-offset:6px;font-size:12px;height:44px}.search input::placeholder{color:#b1bcae}.search kbd{font-size:11px;opacity:.6;border:1px solid #75816d;border-radius:3px;padding:1px 4px}.list-heading{display:flex;justify-content:space-between;padding:0 24px 12px;color:#aab9a8;font-size:10px;letter-spacing:1px}.list-heading span:last-child{color:var(--gold)}.place-list{overflow-y:auto;min-height:0;flex:1;scrollbar-width:thin;scrollbar-color:#53604e transparent;padding:0 10px 16px}.place-row{border:0;background:none;width:100%;display:flex;align-items:center;gap:10px;text-align:left;padding:13px 12px;min-height:65px;border-radius:6px;color:#dbe1d6}.place-row:hover,.place-row.selected{background:#314337}.place-row.selected .place-symbol{color:var(--gold)}.place-symbol{color:#7c917c;display:flex;flex-shrink:0}.place-symbol svg{width:17px}.place-copy{min-width:0;flex:1}.place-copy strong{display:block;font-weight:450;font-size:12px;line-height:1.5}.place-copy small{display:block;font-size:9px;line-height:1.5;color:#9daf9b;margin-top:2px}.place-end{font-size:13px;color:#bbaa83}.place-end small{display:block;text-align:right;font-size:8px}.sidebar-footer{border-top:1px solid #344637;margin:0 24px;padding:18px 0 16px;font-size:9px;color:#a4b3a0}.sidebar-footer p{font-size:9px;letter-spacing:1px;color:#829780;margin:10px 0 0}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#a2b881;margin-right:6px}.empty-state{padding:20px 12px;font-size:13px;line-height:1.8}.empty-state small{display:block;font-size:11px;color:#adbcaa;margin-bottom:12px}.workspace{display:flex;flex-direction:column;min-width:0;min-height:0}.topbar{height:92px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:var(--paper);border-bottom:1px solid var(--line);gap:16px}.topbar .eyebrow{color:var(--muted);font-size:8px;letter-spacing:1.7px}.topbar h2{font-family:Georgia,serif;font-size:25px;font-weight:400;letter-spacing:-.5px;margin:5px 0 0}.topbar h2 span{font-family:-apple-system,BlinkMacSystemFont,sans-serif;font-size:8px;font-weight:500;letter-spacing:1.5px;margin-left:16px;vertical-align:middle;color:var(--muted)}.topbar-right{display:flex;align-items:center;gap:12px}.map-status{font-size:10px;color:var(--muted)}.map-status:before{content:"";display:inline-block;width:5px;height:5px;background:#789475;border-radius:50%;margin-right:6px}.map-area{position:relative;flex:1;min-height:0;isolation:isolate;overflow:hidden}#map{position:absolute;inset:0;touch-action:none}#map canvas{display:block;width:100%;height:100%;touch-action:none}.map-labels{position:absolute;inset:0;overflow:hidden;pointer-events:none}.map-label,.route-label{position:absolute;left:0;top:0;pointer-events:auto;white-space:nowrap;background:#faf9edf0;border:1px solid #d4d6c8;padding:7px 11px;border-radius:4px;box-shadow:0 3px 12px #27362b12;font-size:10px;color:#405247;min-height:32px}.map-label:after{content:"";position:absolute;bottom:-9px;left:50%;height:9px;border-left:1px solid #7b8a72}.map-label.hero-label{background:#20372eee;color:#e4cf9c;border-color:#5c6851;padding:9px 14px;font-size:11px}.map-label.is-selected{border-color:#bd773d}.route-label{background:#963f29;color:#fff5e3;border:0;font-size:10px;z-index:2}.camera-presets{position:absolute;top:24px;left:24px;display:flex;gap:4px;background:#fffdf4ee;padding:5px;border:1px solid #d7d9cc;border-radius:9px;z-index:5;box-shadow:0 4px 20px #34402d08}.preset{min-height:44px;padding:8px 14px;border:0;border-radius:5px;background:none;display:flex;align-items:center;gap:8px;font-size:11px;white-space:nowrap;color:#586453}.preset:hover{background:#e9e8db}.preset.active{background:var(--ink);color:#f5e6bb}.preset small{display:block;font-size:8px;opacity:.7;margin-top:3px}.preset-number{font-family:Georgia,serif;font-size:21px;line-height:1}.preset svg{width:16px;height:16px}.view-caption{position:absolute;top:115px;left:32px;display:flex;flex-direction:column;gap:8px;pointer-events:none;max-width:70%;text-shadow:0 1px 8px #eeecdc}.view-caption>span:first-child{font-size:10px;letter-spacing:1px;color:#61715e}.view-caption strong{font-size:20px;font-weight:500;letter-spacing:-.7px}.view-caption>span:last-child{font-size:10px;color:#5c6d5a}.map-area:has(#map[data-night=true]) .view-caption{color:#f4e8d2;text-shadow:0 1px 8px #152b36}.map-area:has(#map[data-night=true]) .view-caption>span{color:#c6cbb7}.map-tools{position:absolute;right:24px;top:24px;display:flex;flex-direction:column;align-items:center;gap:16px;z-index:6}.compass{width:52px;height:64px;background:#fffdf1e6;border:1px solid #d7d9cc;border-radius:30px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.compass span{font-size:10px;font-weight:600;line-height:1}.compass svg{height:31px;width:31px}.zoom-controls{display:flex;flex-direction:column;border:1px solid #d7d9cc;border-radius:7px;overflow:hidden;background:#fffdf1f2}.zoom-controls button{border:0;background:none;width:42px;height:44px;font-size:21px}.zoom-controls button+button{border-top:1px solid var(--line)}.zoom-controls button:hover{background:#e5e6d7}.icon-button{width:44px;height:44px;display:grid;place-items:center;border:0;background:transparent;border-radius:6px}.reset-button{background:#fffdf1ee;border:1px solid #d7d9cc}.height-legend{position:absolute;left:32px;bottom:175px;font-size:9px;display:flex;flex-direction:column;gap:6px;color:#50614e;pointer-events:none}.height-legend i{display:block;border-left:1px solid #66775b;position:relative;width:9px;height:40px;border-top:1px solid #66775b;border-bottom:1px solid #66775b}.height-legend small{font-size:8px;color:#6b795f}.map-bottom{position:absolute;bottom:14px;left:24px;right:24px;z-index:7;pointer-events:none}.environment{display:flex;align-items:center;gap:32px;background:#fffdf4f5;border:1px solid #d7d9cc;border-radius:9px;padding:18px 24px;max-width:700px;margin:auto;box-shadow:0 8px 30px #3040260d;pointer-events:auto}.time-block{flex:1;min-width:0}.time-title{display:flex;align-items:center;gap:8px;font-size:11px}.time-title svg{width:16px;height:16px;color:#aa8143}.time-title output{font-size:18px;font-variant-numeric:tabular-nums;font-weight:500;margin-left:auto;line-height:1}.time-title>span{font-size:8px;color:var(--muted)}input[type=range]{width:100%;height:24px;margin:8px 0 0;accent-color:#977647;cursor:pointer;touch-action:pan-y}.time-ticks{position:relative;display:flex;justify-content:space-between;font-size:8px;color:#69745e}.time-ticks .sunset{color:#9b6c38}.layer-toggles{display:flex;flex-direction:column;gap:2px;border-left:1px solid var(--line);padding-left:24px}.toggle-row{display:flex;align-items:center;gap:9px;min-height:36px;font-size:11px;cursor:pointer;position:relative;white-space:nowrap}.toggle-row small{font-size:9px;color:var(--muted);margin-left:3px}.toggle-row input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:1}.switch{height:18px;width:31px;background:#c5c9bb;border-radius:12px;position:relative}.switch:after{content:"";position:absolute;left:3px;top:3px;width:12px;height:12px;background:#fff;border-radius:50%;transition:transform .15s}.toggle-row input:checked+.switch{background:#56785e}.toggle-row input:checked+.switch:after{transform:translate(13px)}.toggle-row input:focus-visible+.switch{outline:3px solid #d28439;outline-offset:3px}.map-footer{display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#53644f;padding:14px 5px 0;gap:12px}.altitude{white-space:nowrap;background:#fffdf1d9;padding:5px 8px;border-radius:4px}.altitude b{font-weight:500;margin-left:8px}.gestures{background:#fffdf1c9;padding:5px 8px;border-radius:4px}.route-strip{max-width:700px;margin:0 auto 8px;background:#fff7e9f5;border:1px solid #d8bea0;border-radius:8px;padding:10px 14px;font-size:10px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;pointer-events:auto}.route-strip b{color:#9c523b;font-weight:600}.route-strip i{font-style:normal;margin:0 8px;color:#a27859}.route-strip small{width:100%;font-size:9px;color:#756c5b}.attribution{height:30px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 24px;font-size:8px;color:#65715f;border-top:1px solid var(--line);gap:12px}.attribution a{text-decoration:none}.attribution a:hover{text-decoration:underline}.details{position:absolute;right:16px;top:100px;bottom:175px;width:306px;background:var(--panel);border:1px solid #d6d7c9;border-radius:10px;box-shadow:0 12px 40px #273a2526;overflow-y:auto;z-index:15;padding:24px;scrollbar-width:thin;scrollbar-color:#c3c7b8 transparent}.detail-close{position:absolute;right:7px;top:7px;background:#f2f1e7;z-index:1}.details .eyebrow{font-size:9px;color:#8b764c;margin:0 0 16px}.detail-illustration{height:100px;position:relative;display:flex;align-items:center;justify-content:center;background:#eae9dc;border-radius:5px;overflow:hidden;margin-bottom:22px}.detail-illustration svg{height:70px;width:70px;stroke-width:.65;color:#60735a;z-index:1}.detail-illustration>span{position:absolute;right:10px;bottom:-12px;font-family:Georgia,serif;font-size:83px;color:#d3d6c6;letter-spacing:-5px}.details h2{font-size:23px;font-weight:500;letter-spacing:-1px;margin:0 0 6px;line-height:1.3}.detail-english{font-size:10px;color:#79816c;line-height:1.5;margin:0 0 18px}.detail-description{font-size:12px;line-height:1.9;color:#5e6b57}.height-stat{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;margin:22px 0;display:flex;flex-direction:column;gap:7px}.height-stat>span{font-size:10px;color:var(--muted)}.height-stat strong{font-family:Georgia,-apple-system,serif;font-size:34px;font-weight:400;color:#3c503c}.height-stat strong small{font-size:15px;color:#7d8a70}.height-stat>small{font-size:9px;color:#8b7753}.details dl{margin:0 0 22px;display:flex;flex-direction:column;gap:14px}.details dl>div{display:grid;grid-template-columns:55px 1fr;gap:10px;font-size:10px;line-height:1.6}.details dt{color:#7f8875}.details dd{margin:0;overflow-wrap:anywhere}.focus-button{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--ink);color:#f0e6c9;border:0;border-radius:5px;font-size:11px;min-height:46px;width:100%;padding:10px 14px}.source-note{font-size:9px;line-height:1.8;color:#7b806f;margin-top:22px;padding-top:18px;border-top:1px solid var(--line);overflow-wrap:anywhere}.source-note b{font-weight:500;color:#5f6b55}.source-note a{color:#526d51}.details:focus-within{scroll-behavior:smooth}#tooltip{position:fixed;pointer-events:none;z-index:100;font-size:11px;max-width:250px;background:#233b30;color:#f6efd8;border-radius:5px;padding:9px 12px;box-shadow:0 4px 15px #22332220}#map-error{position:absolute;left:30px;right:30px;top:200px;z-index:10;padding:24px;background:var(--panel);border:1px solid #b87a55;border-radius:8px;font-size:14px;line-height:1.8}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:6px;padding:9px 12px;min-height:44px;font-size:12px}.mobile-only{display:none}@media(min-width:761px)and (max-height:780px){.intro{padding:12px 24px 18px}.intro>p:not(.eyebrow){display:none}.intro h1{margin:10px 0 16px}.brand{padding-top:16px}.details{top:88px;bottom:165px}.detail-illustration{height:65px}.detail-illustration svg{height:50px}.topbar{height:78px}.camera-presets{top:16px}.view-caption{top:100px}}@media(max-width:1100px){#app{grid-template-columns:250px minmax(0,1fr)}.topbar{padding:0 24px}.topbar h2 span{display:none}.map-status{font-size:9px}.camera-presets{left:16px;gap:0}.preset{padding:8px 10px}.map-tools{right:16px;top:96px}.details{right:12px;top:96px;bottom:170px}.view-caption{left:24px;max-width:65%}.environment{padding:15px 18px;gap:20px}.layer-toggles{padding-left:18px}.gestures{font-size:8px}.attribution{padding:0 16px}}@media(max-width:760px){#app{display:flex;min-height:0}.workspace{width:100%}.sidebar{position:fixed;inset:0 auto 0 0;width:min(320px,88vw);transform:translate(-100%);transition:transform .2s;box-shadow:12px 0 40px #17282433}.sidebar.open{transform:translate(0)}.sidebar:not(.open){visibility:hidden}.sidebar .brand{position:relative}.sidebar .brand .icon-button{margin-left:auto;color:#e7e4d2}.mobile-only{display:inline-flex}.topbar{height:72px;padding:0 18px;gap:8px}.topbar .eyebrow{font-size:7px}.topbar h2{font-size:22px}.map-status{display:none}.camera-presets{top:14px;left:12px;right:12px;overflow-x:auto;padding:4px;scrollbar-width:none;gap:0}.preset{padding:6px 10px;flex:1;font-size:10px;gap:6px;min-height:43px}.preset svg{width:14px}.preset-number{font-size:18px}.preset small{font-size:7px}.view-caption{left:18px;top:91px;gap:7px}.view-caption strong{font-size:18px}.view-caption>span:last-child{font-size:9px;line-height:1.6}.map-tools{right:14px;top:92px;gap:10px}.compass{width:44px;height:58px}.zoom-controls button{width:42px;height:44px}.height-legend{left:18px;bottom:185px;font-size:8px}.map-bottom{left:12px;right:12px;bottom:10px}.environment{padding:13px 14px;gap:14px;align-items:center}.time-title{font-size:10px;gap:5px}.time-title output{font-size:16px}.time-ticks,.time-ticks .sunset{font-size:7px}.layer-toggles{padding-left:12px;gap:2px}.toggle-row{font-size:10px;gap:6px;min-height:38px}.toggle-row small{display:none}.time-title svg{display:none}.map-footer{padding-top:8px;font-size:8px}.gestures{font-size:0;background:none;padding:0}.gestures:after{content:"한 손가락 회전 · 두 손가락 확대·이동";font-size:8px}.attribution{height:auto;min-height:34px;padding:6px 12px;font-size:7px;gap:6px;align-items:flex-start;line-height:1.5}.feature-count{display:none}.attribution>span:last-child{text-align:right;max-width:120px}.details{inset:auto 0 0;width:auto;max-height:55%;border-radius:16px 16px 0 0;padding:22px 24px 26px;box-shadow:0 -8px 40px #24392430}.detail-illustration{display:none}.details h2{font-size:22px;padding-right:25px}.detail-english{margin-bottom:12px}.details .eyebrow{margin-bottom:10px}.detail-description{font-size:11px}.height-stat{margin:16px 0;padding:12px 0;display:grid;grid-template-columns:1fr auto;align-items:center}.height-stat strong{grid-column:2;grid-row:1 / 3;font-size:30px}.height-stat>small{grid-column:1}.details dl{gap:10px}.detail-close{right:12px;top:12px}.route-strip{padding:9px 12px;gap:7px;font-size:9px}.route-strip>span{font-size:8px}.route-strip i{margin:0 3px}.route-strip small{font-size:8px}.height-legend:has(~.map-bottom #route-strip:not([hidden])){display:none}}@media(max-height:500px)and (max-width:1000px){.topbar{height:54px}.view-caption{display:none}.camera-presets{top:8px}.map-tools{top:72px;gap:4px}.compass{height:44px}.reset-button{display:none}.environment{padding:8px 14px;max-width:550px}.map-bottom{right:72px}.map-footer,.height-legend{display:none}.details{max-height:70%;top:auto;bottom:0}.route-strip{padding:5px 10px}.route-strip small{display:none}}html,body{height:100%;overflow:hidden;overscroll-behavior:none}@media(max-height:500px){#app{min-height:0}.sidebar .intro{display:none}.sidebar .brand{padding:12px 24px}.sidebar .search-wrap{padding-bottom:12px}}@media(max-width:760px){.search input{font-size:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
