:root{--ink:#253b32;--paper:#f8f6ed;--line:#d7d9ca;--muted:#657165;--accent:#b6cf85}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:Georgia,"Noto Serif KR",serif}#map{position:fixed;inset:0;background:radial-gradient(ellipse at center,#e3e8d4,#acc6cc)}button,select,input{font:inherit}button,select{min-height:44px}button{cursor:pointer;color:var(--ink);border:1px solid var(--line);background:transparent;border-radius:3px}button:hover{background:#e6eadb}button:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #71964b;outline-offset:3px}button:disabled{opacity:.55;cursor:wait}.identity{position:absolute;top:24px;left:28px;display:flex;align-items:center;gap:24px}.wordmark{font-size:38px;letter-spacing:-2px;text-decoration:none;color:var(--ink);background:var(--paper);padding:6px 14px;box-shadow:0 2px 18px #23362c12}.wordmark span{font:10px monospace;letter-spacing:2px;margin-left:16px}.tag{font:10px monospace;letter-spacing:2px;background:var(--ink);color:var(--paper);padding:10px}.panel{position:absolute;top:108px;left:28px;width:292px;padding:24px;background:var(--paper);border:1px solid #fff9;box-shadow:0 8px 40px #26362c20;animation:reveal .6s ease-out}.eyebrow{font:10px monospace;letter-spacing:2px;color:var(--muted)}h1{font-size:31px;font-weight:500;line-height:1.4;letter-spacing:-1px;margin:15px 0 10px}.intro,.hint,.status{font:12px/1.8 sans-serif}.intro{color:var(--muted);margin:0 0 22px}.field,.range-title{font:12px sans-serif}.field{display:block;margin-bottom:8px}select{width:100%;padding:8px;background:#fff8;color:var(--ink);border:1px solid var(--line);border-radius:3px}.modes{display:flex;margin:18px 0 22px;gap:6px}.modes button{flex:1;font:12px sans-serif}.modes .active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.range-title{display:flex;justify-content:space-between}output{font-family:monospace}input[type=range]{width:100%;accent-color:var(--ink);margin:16px 0}.actions{display:flex;gap:8px}.actions button{flex:1;font:12px sans-serif}.hint{color:var(--muted);margin:18px 0}.status{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.status:before{content:"";display:inline-block;width:6px;height:6px;background:#648247;border-radius:50%;margin-right:8px}.telemetry{position:absolute;bottom:32px;left:28px;display:flex;align-items:center;gap:18px;padding:12px 15px;background:var(--ink);color:var(--paper);font:11px monospace;letter-spacing:.4px}.telemetry a{color:var(--accent);text-decoration:none}.maplibregl-ctrl-attrib{font:10px sans-serif}.maplibregl-ctrl-top-right{top:18px;right:18px}noscript{position:absolute;inset:45% 10%;background:var(--paper);padding:20px;text-align:center}@keyframes reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media(max-width:650px){.identity{top:14px;left:14px}.wordmark{font-size:30px}.tag{display:none}.panel{left:14px;right:14px;top:auto;bottom:70px;width:auto;padding:15px 18px;max-height:45vh;overflow:auto}.panel h1,.panel .intro,.eyebrow,.hint{display:none}.modes{margin:12px 0}.range-title{margin-top:8px}input[type=range]{margin:10px 0}.actions{margin-top:4px}.status{margin-top:10px;padding-top:6px}.telemetry{left:14px;right:14px;bottom:30px;font-size:9px;padding:10px;gap:10px;justify-content:space-between}.maplibregl-ctrl-top-right{top:65px;right:4px}}@media(prefers-reduced-motion:reduce){.panel{animation:none}}
