:root{--bg: #0a0e1a;--surface: #131a2b;--text: #e8e2d0;--text-dim: #b3ae9d;--accent: #d9a441;--border: rgba(232, 226, 208, .14);--nav-height: 60px;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overscroll-behavior:none;-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer;touch-action:manipulation}.app{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}.boot-screen{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center}.boot-screen p{margin:0;font-size:15px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--text-dim)}.app-title{position:absolute;top:calc(var(--safe-top) + 10px);left:14px;z-index:30;pointer-events:none}.app-title h1{margin:0;font-size:14px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--text);text-shadow:0 1px 8px rgba(10,14,26,.95)}.map-screen{position:absolute;inset:0 0 calc(var(--nav-height) + var(--safe-bottom)) 0}.map-screen__container{position:relative;width:100%;height:100%;background:var(--bg)}.map-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:24px}.map-loading__title{margin:0;font-size:26px;font-weight:600;letter-spacing:.06em}.map-loading__text{margin:0;color:var(--text-dim);font-size:15px}.follow-toggle{position:absolute;right:12px;bottom:16px;width:48px;height:48px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text-dim);display:grid;place-items:center;z-index:20;box-shadow:0 4px 16px #00000073}.follow-toggle[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#0a0e1a}.player-marker{width:18px;height:18px;border-radius:50%;background:#7fb4ff;border:3px solid #0a0e1a;box-shadow:0 0 0 2px #7fb4ff8c,0 0 18px #7fb4ff73;position:relative}.player-marker:after{content:"";position:absolute;top:-14px;right:-14px;bottom:-14px;left:-14px;border-radius:50%;border:2px solid rgba(127,180,255,.35);animation:player-pulse 2.4s ease-out infinite}@keyframes player-pulse{0%{transform:scale(.35);opacity:1}to{transform:scale(1);opacity:0}}@media(prefers-reduced-motion:reduce){.player-marker:after{animation:none;opacity:.4}}.point-preview{position:absolute;left:10px;right:10px;bottom:12px;z-index:25;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:10px 16px 14px;box-shadow:0 12px 32px #0000008c}.point-preview__header{display:flex;align-items:center;justify-content:space-between;gap:8px}.point-preview__kind{font-size:13px;color:var(--text-dim);letter-spacing:.04em}.point-preview__title{margin:2px 0 6px;font-size:19px;font-weight:600;line-height:1.25}.point-preview__distance{margin:0;font-size:14px;color:var(--accent)}.point-preview__talk{margin-top:10px;width:100%}.point-preview__error{margin:8px 0 0;font-size:13px;color:#e07a5f}.icon-button{min-width:44px;min-height:44px;margin-right:-12px;background:none;border:none;color:var(--text-dim);font-size:18px}.stub-screen{position:absolute;inset:0 0 calc(var(--nav-height) + var(--safe-bottom)) 0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:var(--bg);padding:24px;text-align:center}.stub-screen h2{margin:0;font-size:22px;font-weight:600;letter-spacing:.02em}.stub-screen p{margin:0;color:var(--text-dim);max-width:34ch;line-height:1.5}.bottom-nav{position:absolute;left:0;right:0;bottom:0;z-index:40;display:flex;height:calc(var(--nav-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:#0d1221f7;border-top:1px solid var(--border)}.bottom-nav button{flex:1 1 0;min-width:44px;min-height:var(--nav-height);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:none;color:var(--text-dim);font-size:11px;letter-spacing:.01em}.bottom-nav button[aria-current=page]{color:var(--accent)}.maplibregl-ctrl-attrib{background:#0a0e1abf!important;color:var(--text-dim)}.maplibregl-ctrl-attrib a{color:var(--text-dim)!important}
