
:root{color-scheme:dark;font-family:Arial,'Malgun Gothic',sans-serif;color:#e4e4d8;background:#222c2c}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:#182426b8;border:1px solid #78827b4d;border-radius:4px;padding:12px 17px}button:hover,a:hover{color:#e5cc85;border-color:#c2ab69}button:focus-visible,a:focus-visible{outline:2px solid #e5cc85;outline-offset:4px}#viewport,canvas,.vignette{position:fixed;inset:0;width:100%;height:100%}.vignette{pointer-events:none;background:radial-gradient(ellipse at 50% 48%,transparent 40%,#09121270 100%)}header{position:absolute;top:28px;left:32px;pointer-events:none}.brand{display:flex;align-items:center;gap:15px;font-size:32px;letter-spacing:7px;pointer-events:auto}.star{color:#dfcb94;font-size:60px;line-height:1}.brand small{font-family:monospace;font-size:10px;letter-spacing:3.5px;display:block;margin-top:5px}.location{margin-top:48px}.rule{display:block;width:42px;height:3px;background:#c6b176}.location p,.eyebrow{font:12px monospace;letter-spacing:2px;color:#bec3b8}.location h1{font-size:34px;letter-spacing:-1px;margin:12px 0 22px}.location .weather{font-size:11px;letter-spacing:1px}.map{position:absolute;top:28px;right:32px;width:237px;background:#142123d9;border:1px solid #71817a66;border-top:3px solid #bda770;border-radius:2px 2px 10px 10px;padding:20px;color:#b3bdb7;font:10px monospace;letter-spacing:1px}.map-label,.map-foot{display:flex;justify-content:space-between}.map svg{width:100%;height:150px}.map path{fill:none;stroke:#acb8ad;stroke-width:1.5}.map circle{fill:#ead389;filter:drop-shadow(0 0 4px #ffe5a0)}.map-foot{border-top:1px solid #71817a55;padding-top:14px;font-size:9px}.map-foot span:first-child{color:#d5d1b9}.controls{position:absolute;bottom:82px;left:50%;transform:translateX(-50%);padding:20px 24px;background:#162326e8;border:1px solid #6e807a60;border-radius:8px;width:470px;box-shadow:0 12px 50px #0003}.control-title{display:flex;align-items:center;justify-content:space-between;color:#cbb881;font:12px monospace;letter-spacing:2px;margin-bottom:17px}.badge{font-size:9px;letter-spacing:1px;color:#a5b2a8}.buttons{display:flex;gap:8px}.buttons button{font-size:14px;padding:12px 15px}.buttons .active{background:#beb07e19;color:#dfcd99;border-color:#baab6b88}kbd{font:10px monospace;padding:3px 5px;border:1px solid #7e918659;margin-left:7px;border-radius:3px}.controls p{font-size:11px;margin:17px 0 10px;color:#c0cac3}.controls small{font-size:10px;color:#8e9c96}footer{position:absolute;bottom:22px;left:32px;right:32px;display:flex;align-items:center;justify-content:space-between;font-size:12px}footer>div{display:flex;gap:8px}footer>a{padding:12px 0;color:#aebbb0}footer button{backdrop-filter:blur(8px)}#loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#142123ed;padding:22px 30px;border-radius:6px;display:flex;align-items:center;gap:15px;font-size:14px}.spinner{width:18px;height:18px;border:2px solid #5b675d;border-top-color:#e5cc85;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}dialog{max-width:550px;width:calc(100% - 32px);background:#172326;color:#dfe3d8;border:1px solid #78827b88;border-radius:8px;padding:32px;box-shadow:0 25px 100px #0009}dialog::backdrop{background:#071211a6;backdrop-filter:blur(5px)}dialog h2{font-size:27px;line-height:1.2;font-weight:500}dialog p{font-size:14px;line-height:1.8;color:#b0bcb5}dialog .eyebrow{font-size:10px;color:#d0b77e}.close{position:absolute;top:12px;right:12px;padding:3px 10px;font-size:22px}.download-list{display:grid;gap:8px;margin-top:25px}.download-list a{border:1px solid #61766c55;padding:18px 14px;display:flex;gap:16px;align-items:center;font-size:14px}.download-list strong{width:50px;color:#d7bf80}.download-list span{flex:1;font-size:12px;color:#aab9af}@media(max-width:700px){header{top:20px;left:20px}.brand{font-size:22px;letter-spacing:4px}.star{font-size:43px}.brand small{font-size:8px;letter-spacing:2px}.location{margin-top:28px}.location h1{font-size:26px}.map{display:none}.controls{bottom:82px;width:calc(100% - 32px);max-width:440px;padding:16px}.control-title{margin-bottom:12px}.buttons button{flex:1;padding:10px 7px;font-size:12px}.controls p{font-size:10px}footer{left:17px;right:17px;bottom:17px}footer button{padding:11px;font-size:11px}footer>a{font-size:11px}}

