@font-face{font-family:Philosopher;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/philosopher-cyrillic-700-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Philosopher;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/philosopher-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:PT Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/pt-sans-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:PT Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/pt-sans-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:PT Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/pt-sans-cyrillic-700-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:PT Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/pt-sans-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"PT Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/pt-serif-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"PT Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/pt-serif-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"PT Serif";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/pt-serif-cyrillic-400-italic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"PT Serif";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/pt-serif-latin-400-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--void: #070a14;--bg: #0a0e1a;--stone: #141a2a;--stone-2: #1c2338;--gold: #d9a441;--gold-old: #b8892e;--brass: #8a6a2a;--parchment: #e8e2d0;--parchment-dim: #b3ae9d;--arcane: #8b7cf0;--arcane-deep: #4b3fa8;--ember: #c9553d;--moss: #5f8f5a;--rarity-common: #8792ab;--rarity-rare: #4f7ca8;--rarity-epic: #a06cd5;--season-accent: var(--gold);--void-rgb: 7 10 20;--stone-rgb: 20 26 42;--gold-rgb: 217 164 65;--gold-old-rgb: 184 137 46;--parchment-rgb: 232 226 208;--arcane-rgb: 139 124 240;--ember-rgb: 201 85 61;--moss-rgb: 95 143 90;--stone-glass: rgb(var(--stone-rgb) / 96%);--overlay: rgb(var(--void-rgb) / 88%);--line: rgb(var(--parchment-rgb) / 14%);--shadow-stone: 0 10px 28px rgb(0 0 0 / 55%);--surface: var(--stone);--text: var(--parchment);--text-dim: var(--parchment-dim);--accent: var(--gold);--border: var(--brass);--font-display: "Philosopher", "PT Sans", system-ui, sans-serif;--font-ui: "PT Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-lore: "PT Serif", Georgia, "Times New Roman", serif;--text-ui: 16px;--text-lore: 17px;--lh-lore: 1.55;--text-h1: 28px;--text-h2: 22px;--radius: 6px;--radius-sm: 4px;--ease-sheet: cubic-bezier(.2, .8, .2, 1);--dur-sheet: .22s;--dur-flash: .6s;--dur-pulse: 2s;--dur-breath: 4s;--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(--parchment);font-family:var(--font-ui);font-size:var(--text-ui);line-height:1.4;overscroll-behavior:none;-webkit-font-smoothing:antialiased;overflow-wrap:anywhere}button{font:inherit;cursor:pointer;touch-action:manipulation}input,select,textarea{font:inherit}h1,h2,h3{font-family:var(--font-display);font-weight:700;letter-spacing:.01em}.lore{font-family:var(--font-lore);font-size:var(--text-lore);line-height:var(--lh-lore)}.caps{letter-spacing:.06em;text-transform:uppercase}.app{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}@supports (height: 100dvh){.app{height:100dvh}}@media(pointer:coarse){input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:max(16px,1em)}}.boot-screen{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center}.boot-screen p{margin:0;font-family:var(--font-display);font-size:15px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--parchment-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:15px;letter-spacing:.3em;text-transform:uppercase;color:var(--parchment);text-shadow:0 1px 8px rgb(var(--void-rgb) / 95%),0 0 18px rgb(var(--gold-rgb) / 25%)}.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(--void)}.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-family:var(--font-display);font-size:26px;font-weight:700;letter-spacing:.06em}.map-loading__text{margin:0;color:var(--parchment-dim);font-family:var(--font-lore);font-style:italic;font-size:16px}.follow-toggle,.map-locate{position:absolute;right:12px;width:48px;height:48px;border-radius:50%;border:1px solid var(--brass);background:var(--stone-glass);color:var(--parchment-dim);display:grid;place-items:center;z-index:20;box-shadow:inset 0 0 0 3px var(--stone),inset 0 0 0 4px rgb(var(--gold-old-rgb) / 45%),0 4px 16px #00000073}.follow-toggle{bottom:16px}.follow-toggle[aria-pressed=true]{background:linear-gradient(180deg,var(--gold),var(--gold-old));border-color:var(--gold-old);color:var(--void);box-shadow:inset 0 1px #ffffff40,0 0 14px rgb(var(--gold-rgb) / 40%),0 4px 16px #00000073}.map-locate{bottom:74px;color:var(--parchment)}.map-locate[aria-busy=true]{color:var(--gold);animation:map-locate-pulse 1s ease-in-out infinite}@keyframes map-locate-pulse{50%{opacity:.45}}.player-marker{width:30px;height:30px;position:relative;color:var(--parchment);pointer-events:none}.player-marker svg{display:block;width:100%;height:100%;filter:drop-shadow(0 0 6px rgb(var(--gold-rgb) / 55%))}.player-marker:after{content:"";position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px;border-radius:50%;border:1.5px solid rgb(var(--gold-rgb) / 45%);animation:player-pulse 2.4s ease-out infinite}@keyframes player-pulse{0%{transform:scale(.35);opacity:1}to{transform:scale(1);opacity:0}}.marker-pulse{width:24px;height:24px;position:relative;pointer-events:none}.marker-pulse:before,.marker-pulse:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:1.5px solid currentColor;opacity:0;animation:marker-pulse var(--dur-pulse) ease-out infinite}.marker-pulse:after{animation-delay:calc(var(--dur-pulse) / 2)}@keyframes marker-pulse{0%{transform:scale(.55);opacity:.9}to{transform:scale(2.2);opacity:0}}.marker-breath{width:44px;height:44px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgb(var(--arcane-rgb) / 35%) 0%,transparent 70%);animation:marker-breath var(--dur-breath) ease-in-out infinite}@keyframes marker-breath{0%,to{transform:scale(.8);opacity:.55}50%{transform:scale(1.15);opacity:1}}.point-preview{position:absolute;left:10px;right:10px;bottom:12px;z-index:25;display:flex;flex-direction:column;max-height:min(72dvh,calc(100% - 96px));overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:12px 16px 16px;touch-action:pan-y}.point-preview>*{flex-shrink:0}.point-preview__header{display:flex;align-items:center;justify-content:space-between;gap:8px}.point-preview__kind{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:13px;color:var(--parchment-dim);letter-spacing:.06em;text-transform:uppercase}.point-preview__kind svg{color:var(--gold)}.point-preview__state{padding:3px 9px;border-radius:999px;border:1px solid var(--brass);font-size:12px;font-weight:700;color:var(--parchment-dim)}.point-preview__state[data-state=active],.point-preview__state[data-state=series_complete]{border-color:var(--gold);color:var(--gold)}.point-preview__state[data-state=activated]{border-color:var(--arcane);color:var(--arcane)}.point-preview__state[data-state=done]{background:rgb(var(--parchment-rgb) / 8%);color:var(--parchment)}.point-preview__title{margin:4px 0 6px;font-size:21px;line-height:1.2}.point-preview__distance{margin:0;font-family:var(--font-display);font-size:16px;color:var(--gold)}.point-preview__talk{margin-top:10px;width:100%}.point-preview__error{margin:8px 0 0}.point-quest{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px}.point-quest__kind{margin:0;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--parchment-dim)}.point-quest__title{margin:0;font-size:20px;line-height:1.2}.point-quest__intro{margin:0;font-family:var(--font-lore);font-size:16px;line-height:1.5;color:var(--parchment);white-space:pre-line}.point-quest__facts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:4px 0 0}.point-quest__facts>div{border:1px solid var(--brass);border-radius:var(--radius-sm);padding:8px 10px;background:rgb(var(--void-rgb) / 50%)}.point-quest__facts dt{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--parchment-dim)}.point-quest__facts dd{margin:2px 0 0;font-family:var(--font-display);font-size:16px}.point-quest__rewards{margin:2px 0 0;font-size:15px;color:var(--gold)}.point-quest__hint{margin:0;font-size:15px;color:var(--parchment-dim)}.point-quest__done{margin:6px 0 0;padding:10px 12px;border-radius:var(--radius-sm);border-left:3px solid var(--brass);background:rgb(var(--parchment-rgb) / 6%);font-family:var(--font-lore);font-style:italic;font-size:15px;line-height:1.4;color:var(--parchment)}.point-preview__switch{margin-top:8px;width:100%}.point-obelisk{margin-top:8px;display:flex;flex-direction:column;gap:6px}.point-obelisk__hint{margin:0;font-family:var(--font-lore);font-size:16px;line-height:1.5;font-style:italic;color:var(--parchment)}.point-obelisk__state{margin:0;font-size:14px;line-height:1.45;color:var(--parchment-dim)}.point-obelisk[data-state=activated] .point-obelisk__state{color:var(--arcane)}.point-obelisk[data-state=series_complete] .point-obelisk__state{color:var(--gold)}.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:var(--text-h2)}.stub-screen p{margin:0;color:var(--parchment-dim);max-width:34ch;font-family:var(--font-lore);font-style:italic;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:var(--void);border-top:1px solid var(--brass);box-shadow:inset 0 1px rgb(var(--gold-old-rgb) / 25%)}.bottom-nav button{position:relative;flex:1 1 0;min-width:44px;min-height:var(--nav-height);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:none;border:none;color:var(--parchment-dim);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.bottom-nav button[aria-current=page]{color:var(--gold)}.bottom-nav button[aria-current=page]:after{content:"";position:absolute;bottom:6px;width:4px;height:4px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px 2px rgb(var(--gold-rgb) / 60%)}.maplibregl-ctrl-attrib{background:rgb(var(--void-rgb) / 75%)!important;color:var(--parchment-dim);font-family:var(--font-ui)}.maplibregl-ctrl-attrib a{color:var(--parchment-dim)!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.player-marker:after{animation:none;opacity:.4}.marker-pulse:before,.marker-pulse:after{animation:none;transform:scale(1.4);opacity:.35}.marker-breath{animation:none;opacity:.8}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border:1px solid transparent;border-radius:var(--radius);background:none;color:var(--parchment);font-family:var(--font-ui);font-size:var(--text-ui);font-weight:700;line-height:1.2;letter-spacing:.02em;text-align:center;text-decoration:none;cursor:pointer;touch-action:manipulation;transition:box-shadow .15s ease,filter .15s ease,background-color .15s ease}.btn:disabled{opacity:.55;cursor:default}.btn--primary{background:linear-gradient(180deg,var(--gold) 0%,var(--gold-old) 100%);border-color:var(--gold-old);color:var(--void);box-shadow:inset 0 1px #ffffff40,0 2px 8px #0006}.btn--primary:not(:disabled):active{filter:brightness(1.08);box-shadow:inset 0 1px #ffffff40,0 0 0 3px rgb(var(--gold-rgb) / 30%),0 0 18px rgb(var(--gold-rgb) / 55%)}.btn--secondary{border-color:var(--brass);color:var(--parchment)}.btn--secondary:not(:disabled):active{background:rgb(var(--gold-rgb) / 10%);border-color:var(--gold-old)}.btn--danger{border-color:var(--ember);color:var(--parchment)}.btn--danger:not(:disabled):active{background:rgb(var(--ember-rgb) / 14%)}.btn--ghost{min-height:44px;padding:0 10px 0 0;justify-content:flex-start;color:var(--parchment-dim);font-weight:400;font-size:15px}.btn--ghost:not(:disabled):active{color:var(--parchment)}.btn--pill{min-height:44px;padding:0 16px;border-radius:999px;font-size:15px}.btn--block{width:100%}.btn--sm{min-height:44px;padding:0 14px;font-size:15px}.icon-button{display:inline-grid;place-items:center;min-width:44px;min-height:44px;margin-right:-12px;padding:0;background:none;border:none;border-radius:50%;color:var(--parchment-dim)}.icon-button:active{color:var(--gold)}.panel{--rivet: radial-gradient( circle, var(--gold) 0 1.6px, var(--gold-old) 1.7px 2.4px, transparent 2.8px );background-color:var(--stone);background-image:var(--rivet),var(--rivet),var(--rivet),var(--rivet);background-size:7px 7px;background-repeat:no-repeat;background-position:1px 1px,calc(100% - 1px) 1px,1px calc(100% - 1px),calc(100% - 1px) calc(100% - 1px);border:1px solid var(--brass);border-radius:var(--radius);outline:1px solid rgb(var(--gold-old-rgb) / 55%);outline-offset:-4px;box-shadow:var(--shadow-stone),inset 0 2px 8px #0006;color:var(--parchment)}.panel:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.panel--raised{background-color:var(--stone-2)}.panel--glass{background-color:var(--stone-glass)}.panel--active{border-color:var(--gold)}.panel--arcane{border-color:var(--arcane);outline-color:rgb(var(--arcane-rgb) / 45%)}.sheet{background-color:var(--overlay);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:3px double var(--gold-old);box-shadow:inset 0 1px rgb(var(--gold-rgb) / 35%),0 -10px 28px #0000007f;animation:sheet-rise var(--dur-sheet) var(--ease-sheet) both}@keyframes sheet-rise{0%{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}.card{--ribbon: var(--gold);border-top:3px solid var(--ribbon);text-align:left}.card--route{--ribbon: var(--gold)}.card--riddle{--ribbon: var(--arcane)}.card--dig{--ribbon: var(--moss)}.card--common{--ribbon: var(--rarity-common)}.card--rare{--ribbon: var(--rarity-rare)}.card--epic{--ribbon: var(--rarity-epic)}.chip{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--brass);background:var(--stone-2);color:var(--parchment-dim);font-family:var(--font-ui);font-size:15px;line-height:1.3;text-align:left;cursor:pointer;touch-action:manipulation}.chip:disabled{opacity:.5;cursor:default}.chip[aria-pressed=true],.chip[aria-selected=true],.chip--on{background:rgb(var(--gold-rgb) / 14%);border-color:var(--gold);color:var(--gold);font-weight:700;box-shadow:inset 0 0 0 1px rgb(var(--gold-rgb) / 35%)}.banner{--banner-accent: var(--gold);display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--brass);border-left:4px solid var(--banner-accent);border-radius:var(--radius);background:var(--stone-glass);color:var(--parchment);font-size:15px;line-height:1.4;box-shadow:var(--shadow-stone)}.banner--ember{--banner-accent: var(--ember)}.banner--arcane{--banner-accent: var(--arcane)}.banner--gold{--banner-accent: var(--gold)}.banner--moss{--banner-accent: var(--moss)}.field{width:100%;min-height:48px;padding:0 14px;border:1px solid var(--brass);border-radius:var(--radius);background:var(--stone-2);color:var(--parchment);font-family:var(--font-ui);font-size:16px;box-shadow:inset 0 2px 6px #00000059}.field::placeholder{color:var(--parchment-dim);opacity:.8}.field:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold-old)}.field:disabled{opacity:.6}.label{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--parchment-dim)}.note{--note-accent: var(--gold);margin:0;padding:2px 0 2px 10px;border-left:3px solid var(--note-accent);font-size:15px;line-height:1.45;color:var(--parchment)}.note--ember{--note-accent: var(--ember)}.note--arcane{--note-accent: var(--arcane)}.note--dim{color:var(--parchment-dim)}.eyebrow{margin:0;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--parchment-dim)}.eyebrow--gold{color:var(--gold)}.eyebrow--arcane{color:var(--arcane)}.progress{height:8px;border-radius:4px;border:1px solid var(--brass);background:var(--stone-2);overflow:hidden}.progress>span{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--gold-old),var(--gold));box-shadow:0 0 10px rgb(var(--gold-rgb) / 55%);transition:width .4s ease}.ornament{display:flex;align-items:center;gap:10px;width:100%;color:var(--brass)}.ornament:before,.ornament:after{content:"";flex:1 1 0;height:1px;background:linear-gradient(90deg,transparent,var(--brass))}.ornament:after{background:linear-gradient(90deg,var(--brass),transparent)}.ornament svg{flex:none}.ornament--gold{color:var(--gold)}.flash-in{animation:flash-in var(--dur-flash) ease-out both}@keyframes flash-in{0%{opacity:0;transform:scale(.92)}40%{opacity:1;transform:scale(1.03)}to{transform:none}}
