@font-face{font-family:Bebas Neue;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2039e8342bda6056-s.0h2amv7e1wlhq.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bebas Neue;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fabcf92ba1ccea36-s.p.0lwj123ije5i..woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bebas Neue Fallback;src:local(Arial);ascent-override:117.32%;descent-override:39.11%;line-gap-override:0.0%;size-adjust:76.72%}.bebas_neue_d423d9f0-module__jt1vUG__className{font-family:Bebas Neue,Bebas Neue Fallback;font-style:normal;font-weight:400}.bebas_neue_d423d9f0-module__jt1vUG__variable{--font-display:"Bebas Neue", "Bebas Neue Fallback"}
@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b12e986493c137cf-s.0unhoe1q6hp6-.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/36363bfb06833f56-s.p.0-pny06~-x26a.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b2fa3ef4ca165ab4-s.0cnogfwvi2_o-.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a73419dd2ba2d841-s.p.0x-0vqtj_fzf1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono Fallback;src:local(Arial);ascent-override:73.71%;descent-override:23.03%;line-gap-override:0.0%;size-adjust:134.59%}.dm_mono_8326c40-module__sbgBlq__className{font-family:DM Mono,DM Mono Fallback;font-style:normal}.dm_mono_8326c40-module__sbgBlq__variable{--font-mono:"DM Mono", "DM Mono Fallback"}
@font-face{font-family:DM Sans;font-style:normal;font-weight:300;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:300;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_72aec58-module__WBL4Va__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_72aec58-module__WBL4Va__variable{--font-body:"DM Sans", "DM Sans Fallback"}
:root{--color-bg:#0d0d0d;--color-surface:#141414;--color-surface-2:#1c1c1c;--color-surface-3:#242424;--color-border:#2a2a2a;--color-border-soft:#1f1f1f;--color-accent:#f7c948;--color-accent-dim:#b8952d;--color-accent-glow:#f7c9482e;--color-text-primary:#f0ede6;--color-text-secondary:#8a8680;--color-text-muted:#505050;--line-1:#ee352e;--line-2:#ee352e;--line-3:#ee352e;--line-4:#00933c;--line-5:#00933c;--line-6:#00933c;--line-7:#b933ad;--line-A:#0039a6;--line-C:#0039a6;--line-E:#0039a6;--line-B:#ff6319;--line-D:#ff6319;--line-F:#ff6319;--line-M:#ff6319;--line-G:#6cbe45;--line-J:#963;--line-Z:#963;--line-L:#a7a9ac;--line-N:#fccc0a;--line-Q:#fccc0a;--line-R:#fccc0a;--line-W:#fccc0a;--line-S:#6d6e71;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--radius-pill:100px;--ease-snap:cubic-bezier(.34, 1.56, .64, 1);--ease-smooth:cubic-bezier(.4, 0, .2, 1);--transition-fast:.18s var(--ease-smooth);--transition-mid:.32s var(--ease-smooth)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;height:100%;font-size:16px}body{background:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-body,"DM Sans", system-ui, sans-serif);-webkit-font-smoothing:antialiased;min-height:100dvh;font-weight:400;overflow:hidden}img{max-width:100%;display:block}button{cursor:pointer;background:0 0;border:none;font-family:inherit}ol,ul{list-style:none}a{color:inherit;text-decoration:none}.view{opacity:0;pointer-events:none;transition:opacity var(--transition-mid), transform var(--transition-mid);will-change:opacity, transform;z-index:1;flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden;transform:translateY(12px)}.view.active{opacity:1;pointer-events:auto;z-index:2;transform:translateY(0)}.mono{font-family:var(--font-mono,"DM Mono", "Courier New", monospace);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem}.btn{justify-content:center;align-items:center;gap:var(--space-sm);border-radius:var(--radius-md);font-family:var(--font-mono,"DM Mono", monospace);letter-spacing:.06em;text-transform:uppercase;transition:background var(--transition-fast), color var(--transition-fast), transform .12s var(--ease-snap), box-shadow var(--transition-fast);-webkit-user-select:none;user-select:none;margin-bottom:10px;padding:12px 28px;font-size:.8rem;font-weight:500;display:inline-flex}.btn:active{transform:scale(.96)}.btn--primary{background:var(--color-accent);color:#0d0d0d}.btn--primary:hover{background:#ffd966}.btn--primary:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.btn--primary:disabled{background:var(--color-surface-3);color:var(--color-text-muted);pointer-events:none}.btn--signout{color:#0d0d0d;background:tomato}.btn--signout:hover{background:#ff745b}.btn--ghost{color:var(--color-text-secondary);border:1px solid var(--color-border);background:0 0}.btn--ghost:hover{color:var(--color-text-primary);border-color:#444}.btn--icon{color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 16px;font-size:.75rem}.btn--icon:hover{color:var(--color-text-primary);border-color:#444}.btn--lg{letter-spacing:.08em;padding:18px 40px;font-size:.9rem}.btn--full{width:100%}.buttons{flex-direction:column;gap:12px;width:100%;max-width:320px;display:flex}#view-splash{justify-content:center;align-items:center;overflow:hidden}.splash-grid{pointer-events:none;background-image:linear-gradient(#f7c94808 1px,#0000 1px),linear-gradient(90deg,#f7c94808 1px,#0000 1px);background-size:40px 40px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 80%,#000 40%,#0000 100%);mask-image:radial-gradient(80% 80%,#000 40%,#0000 100%)}.splash-inner{z-index:1;align-items:center;gap:var(--space-lg);padding:var(--space-xl);text-align:center;flex-direction:column;display:flex;position:relative}.splash-logo{align-items:center;gap:var(--space-md);display:flex}.logo-track{background:var(--color-accent);border-radius:var(--radius-pill);width:56px;height:3px;display:block}.logo-track--right{transform:scaleX(-1)}.logo-wordmark{font-family:var(--font-display,"Bebas Neue", "Impact", sans-serif);color:var(--color-accent);letter-spacing:.04em;font-size:clamp(3.5rem,12vw,6rem);line-height:.88}.splash-tagline{color:var(--color-text-secondary);max-width:260px;font-size:1rem;line-height:1.6}.splash-hint{font-family:var(--font-mono,"DM Mono", monospace);letter-spacing:.1em;color:var(--color-text-muted);text-transform:uppercase;font-size:.65rem}#view-loading{justify-content:center;align-items:center}.loading-inner{align-items:center;gap:var(--space-xl);flex-direction:column;display:flex}.loading-pulse{width:80px;height:80px;position:relative}.pulse-ring{border:2px solid var(--color-accent);opacity:0;border-radius:50%;animation:2s ease-out infinite pulse-expand;position:absolute;inset:0}.pulse-ring--delay{animation-delay:.8s}.pulse-dot{background:var(--color-accent);border-radius:50%;position:absolute;inset:30px}@keyframes pulse-expand{0%{opacity:.8;transform:scale(.4)}to{opacity:0;transform:scale(1.6)}}.loading-label{font-family:var(--font-mono,"DM Mono", monospace);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-secondary);font-size:.75rem}.topbar{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border-soft);background:var(--color-bg);z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.topbar-brand{align-items:center;gap:var(--space-sm);display:flex}.topbar-logo{border-radius:var(--radius-sm);background:var(--color-accent);color:#0d0d0d;width:32px;height:32px;font-family:var(--font-display,"Bebas Neue", sans-serif);letter-spacing:.02em;justify-content:center;align-items:center;font-size:1rem;line-height:1;display:inline-flex}.topbar-name{font-family:var(--font-mono,"DM Mono", monospace);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-secondary);font-size:.7rem}.topbar-xp{border:1px solid var(--color-accent-dim);border-radius:var(--radius-pill);background:var(--color-accent-glow);align-items:center;gap:5px;padding:6px 12px;display:flex}.xp-icon{color:var(--color-accent);font-size:.75rem}#xp-value{font-family:var(--font-mono,"DM Mono", monospace);color:var(--color-accent);font-size:.85rem;font-weight:500}.xp-label{font-family:var(--font-mono,"DM Mono", monospace);letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent-dim);font-size:.6rem}#view-adventure{background:var(--color-bg)}.card-stage{padding:var(--space-lg);flex-direction:column;flex:1;align-items:flex-start;min-height:0;display:flex;overflow-y:auto}.card-stage--loading{justify-content:center;align-items:center;overflow-y:hidden}.adventure-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;flex-shrink:0;gap:0;width:100%;max-width:480px;margin:0 auto;display:flex;overflow:hidden}.card-header{padding:var(--space-lg);gap:var(--space-md);background:linear-gradient(160deg, var(--color-surface-2) 0%, var(--color-surface) 100%);flex-direction:column;display:flex}.card-lines{flex-wrap:wrap;gap:6px;display:flex}.line-badge{width:28px;height:28px;font-family:var(--font-display,"Bebas Neue", sans-serif);color:#fff;letter-spacing:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;font-weight:700;display:inline-flex}.line--1,.line--2,.line--3{background:var(--line-1)}.line--4,.line--5,.line--6{background:var(--line-4)}.line--7{background:var(--line-7)}.line--A,.line--C,.line--E{background:var(--line-A)}.line--B,.line--D,.line--F,.line--M{background:var(--line-B)}.line--G{background:var(--line-G)}.line--J,.line--Z{background:var(--line-J)}.line--L{background:var(--line-L)}.line--N,.line--Q,.line--R,.line--W{background:var(--line-N);color:#000}.line--S{background:var(--line-S)}.card-destination-label{font-family:var(--font-mono,"DM Mono", monospace);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);font-size:.6rem}.card-station-name{font-family:var(--font-display,"Bebas Neue", sans-serif);letter-spacing:.02em;color:var(--color-text-primary);font-size:clamp(2rem,8vw,3.2rem);line-height:.95}.card-borough{font-family:var(--font-mono,"DM Mono", monospace);letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);border:1px solid var(--color-accent-dim);border-radius:var(--radius-pill);background:var(--color-accent-glow);width:fit-content;padding:3px 8px;font-size:.7rem}.card-divider{padding:0 var(--space-lg);align-items:center;gap:10px;display:flex}.divider-line{background:var(--color-border);flex:1;height:1px}.divider-dot{border:1px solid var(--color-border);border-radius:50%;width:6px;height:6px}.card-fact{padding:var(--space-lg);gap:var(--space-sm);border-bottom:1px solid var(--color-border-soft);align-items:flex-start;display:flex}.fact-icon{color:var(--color-accent);flex-shrink:0;margin-top:2px;font-size:.9rem}.card-fact-text{color:var(--color-text-secondary);font-size:.875rem;font-style:italic;line-height:1.55}.card-stats{border-bottom:1px solid var(--color-border-soft);grid-template-columns:repeat(3,1fr);display:grid}.stat-cell{padding:var(--space-md) var(--space-sm);border-right:1px solid var(--color-border-soft);flex-direction:column;align-items:center;gap:4px;display:flex}.stat-cell:last-child{border-right:none}.stat-cell--accent .stat-value{color:var(--color-accent)}.stat-value{font-family:var(--font-display,"Bebas Neue", sans-serif);letter-spacing:.02em;color:var(--color-text-primary);font-size:1.9rem;line-height:1}.stat-label{font-family:var(--font-mono,"DM Mono", monospace);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);text-align:center;font-size:.6rem}.card-stops-section{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border-soft)}.stops-heading{font-family:var(--font-mono,"DM Mono", monospace);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-sm);font-size:.6rem}.stops-list{flex-direction:column;gap:2px;display:flex}.stop-item{align-items:center;gap:var(--space-sm);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border-soft);padding:5px 0;font-size:.82rem;display:flex}.stop-item:last-child{border-bottom:none}.stop-dot{background:var(--color-border);border-radius:50%;flex-shrink:0;width:6px;height:6px}.stop-dot--current{background:var(--color-accent)}.card-quest{padding:var(--space-md) var(--space-lg);gap:var(--space-sm);align-items:flex-start;display:flex}.quest-tag{font-family:var(--font-mono,"DM Mono", monospace);letter-spacing:.1em;text-transform:uppercase;background:var(--color-accent);color:#0d0d0d;border-radius:var(--radius-sm);flex-shrink:0;margin-top:2px;padding:3px 7px;font-size:.6rem}.quest-text{color:var(--color-text-primary);font-size:.875rem;line-height:1.65}.card-actions{gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-top:1px solid var(--color-border);background:var(--color-bg);flex-shrink:0;display:flex}.card-actions .btn:last-child{flex:1}#view-map{flex-direction:row;overflow:hidden}.map-sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;flex-shrink:0;width:340px;display:flex;overflow:hidden}.sidebar-header{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border);gap:var(--space-md);flex-direction:column;flex-shrink:0;display:flex}.route-summary{flex-direction:column;gap:4px;display:flex}.route-node{align-items:center;gap:var(--space-sm);display:flex}.route-node-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.origin-dot{background:var(--color-text-muted);border:2px solid var(--color-text-secondary)}.dest-dot{background:var(--color-accent)}.route-connector{background:repeating-linear-gradient(to bottom, var(--color-border) 0px, var(--color-border) 4px, transparent 4px, transparent 8px);width:2px;height:18px;margin-left:4px}.route-node-label{color:var(--color-text-primary);font-size:.9rem;font-weight:500}.directions-section{padding:var(--space-md) var(--space-lg);gap:var(--space-sm);flex-direction:column;flex:1;display:flex;overflow-y:auto}.directions-heading{font-family:var(--font-mono,"DM Mono", monospace);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);flex-shrink:0;font-size:.6rem}.directions-list{flex-direction:column;gap:2px;display:flex}.direction-step{gap:var(--space-sm);border-bottom:1px solid var(--color-border-soft);align-items:flex-start;padding:10px 0;display:flex}.direction-step:last-child{border-bottom:none}.step-num{background:var(--color-surface-3);width:20px;height:20px;font-family:var(--font-mono,"DM Mono", monospace);color:var(--color-text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;font-size:.65rem;display:flex}.step-icon{text-align:center;flex-shrink:0;width:20px;margin-top:1px;font-size:.85rem}.step-text{color:var(--color-text-secondary);flex:1;font-size:.82rem;line-height:1.5}.step-duration{font-family:var(--font-mono,"DM Mono", monospace);color:var(--color-text-muted);letter-spacing:.04em;flex-shrink:0;margin-top:2px;font-size:.65rem}.quest-completion{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--color-border);gap:var(--space-md);flex-direction:column;flex-shrink:0;display:flex}.completion-heading{font-family:var(--font-display,"Bebas Neue", sans-serif);letter-spacing:.04em;color:var(--color-text-primary);font-size:1.1rem}.completion-subtext{color:var(--color-text-secondary);font-size:.8rem;line-height:1.5}.upload-area{border:1.5px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);transition:border-color var(--transition-fast), background var(--transition-fast);cursor:pointer;position:relative;overflow:hidden}.upload-area:hover,.upload-area.drag-over{border-color:var(--color-accent);background:var(--color-accent-glow)}.upload-area:focus-within{border-color:var(--color-accent)}#photo-input{opacity:0;cursor:pointer;z-index:1;width:100%;height:100%;position:absolute;inset:0}.upload-placeholder{padding:var(--space-lg);align-items:center;gap:var(--space-sm);pointer-events:none;flex-direction:column;display:flex}.upload-icon{color:var(--color-text-muted);font-size:1.8rem}.upload-label{color:var(--color-text-secondary);font-size:.82rem;font-weight:500}.upload-hint{font-family:var(--font-mono,"DM Mono", monospace);color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.6rem}.photo-preview{object-fit:cover;width:100%;height:140px;display:block}.verify-status{align-items:center;gap:var(--space-sm);padding:var(--space-sm);background:var(--color-surface-3);border-radius:var(--radius-sm);display:flex}.verify-spinner{border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#verify-status-text{font-family:var(--font-mono,"DM Mono", monospace);letter-spacing:.06em;color:var(--color-text-secondary);text-transform:uppercase;font-size:.68rem}.map-canvas{background:var(--color-bg);flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.map-tabs{padding:var(--space-sm) var(--space-sm) 0;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;gap:2px;display:flex}.map-tab{font-family:var(--font-mono,"DM Mono", monospace);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:color var(--transition-fast), background var(--transition-fast);border:1px solid #0000;border-bottom:none;padding:8px 18px;font-size:.68rem;position:relative;bottom:-1px}.map-tab.active,.map-tab[aria-selected=true]{color:var(--color-accent);background:var(--color-bg);border-color:var(--color-border);border-bottom-color:var(--color-bg)}.map-tab:hover:not(.active){color:var(--color-text-secondary)}.map-panel{flex:1;position:relative;overflow:hidden}.map-panel:not(.active){display:none!important}#svg-container{background:var(--color-bg);justify-content:center;align-items:center;width:100%;height:100%;display:flex;overflow:hidden}#svg-container svg{width:100%;max-width:100%;height:100%;max-height:100%}#leaflet-map{width:100%;height:100%}.leaflet-container{background:var(--color-bg)!important;font-family:var(--font-body,"DM Sans", system-ui, sans-serif)!important}.leaflet-tile{filter:brightness(.7)saturate(.4)hue-rotate(180deg)}#view-complete{background:var(--color-bg);justify-content:center;align-items:center;overflow-y:auto}.complete-inner{align-items:center;gap:var(--space-lg);padding:var(--space-xl) var(--space-lg);text-align:center;flex-direction:column;width:100%;max-width:440px;display:flex}.complete-badge{background:var(--color-accent-glow);border:2px solid var(--color-accent);width:80px;height:80px;animation:badge-pop .5s var(--ease-snap) both;border-radius:50%;justify-content:center;align-items:center;display:flex}@keyframes badge-pop{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.badge-star{color:var(--color-accent);font-size:2.2rem}.complete-heading{font-family:var(--font-display,"Bebas Neue", sans-serif);letter-spacing:.04em;color:var(--color-text-primary);font-size:clamp(3rem,12vw,5rem);line-height:.9}.complete-stats{gap:var(--space-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);width:100%;display:flex}.complete-stat{flex-direction:column;flex:1;align-items:center;gap:4px;display:flex}.complete-stat-value{font-family:var(--font-display,"Bebas Neue", sans-serif);color:var(--color-accent);letter-spacing:.02em;font-size:1.8rem;line-height:1}.complete-stat-label{font-family:var(--font-mono,"DM Mono", monospace);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);font-size:.58rem}.complete-station{flex-direction:column;gap:4px;display:flex}.complete-station-label{font-family:var(--font-mono,"DM Mono", monospace);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);font-size:.6rem}.complete-station-name{font-family:var(--font-display,"Bebas Neue", sans-serif);letter-spacing:.04em;color:var(--color-text-primary);font-size:1.5rem}.complete-photo-wrap{border-radius:var(--radius-md);border:1px solid var(--color-border);width:100%;overflow:hidden}.complete-photo{object-fit:cover;width:100%;max-height:220px}.complete-actions{gap:var(--space-sm);width:100%;display:flex}.complete-actions .btn--primary{flex:1}.toast{bottom:var(--space-lg);background:var(--color-surface-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-mono,"DM Mono", monospace);letter-spacing:.06em;color:var(--color-text-secondary);white-space:nowrap;z-index:999;opacity:0;transition:opacity var(--transition-fast), transform var(--transition-fast);pointer-events:none;padding:12px 20px;font-size:.72rem;position:fixed;left:50%;transform:translate(-50%)translateY(16px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:#444}@media (max-width:699px){#view-map{flex-direction:column}.map-sidebar{border-right:none;border-bottom:1px solid var(--color-border);width:100%;height:55%}.map-canvas{height:45%}.card-stage{padding:var(--space-md)}.adventure-card{max-width:100%}}@media (min-width:1200px){.map-sidebar{width:380px}}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.leaderboard-fab{bottom:var(--space-lg);right:var(--space-lg);z-index:9999;align-items:center;gap:var(--space-sm);background:var(--color-accent);color:#0d0d0d;border-radius:var(--radius-pill);font-family:var(--font-mono,"DM Mono", monospace);letter-spacing:.08em;text-transform:uppercase;transition:background var(--transition-fast), transform .12s var(--ease-snap), box-shadow var(--transition-fast);cursor:pointer;border:none;padding:11px 20px;font-size:.72rem;font-weight:600;display:inline-flex;position:fixed;box-shadow:0 4px 16px #0006}.leaderboard-fab:hover{background:#ffd966;box-shadow:0 6px 20px #00000080}.leaderboard-fab:active{transform:scale(.95)}.leaderboard-fab__icon{font-size:.85rem;line-height:1}.leaderboard-fab__label{line-height:1}.leaderboard-overlay{z-index:100;padding:var(--space-lg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:leaderboard-fade-in .2s var(--ease-smooth) both;background:#000000bf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes leaderboard-fade-in{0%{opacity:0}to{opacity:1}}.leaderboard-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:360px;padding:var(--space-lg);box-shadow:0 24px 64px #0009, 0 0 0 1px var(--color-border-soft);animation:leaderboard-slide-up .24s var(--ease-snap) both}@keyframes leaderboard-slide-up{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.leaderboard-header{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg);display:flex}.leaderboard-header__track{background:var(--color-accent);border-radius:var(--radius-pill);opacity:.5;flex:1;height:2px}.leaderboard-header__title{font-family:var(--font-display,"Bebas Neue", "Impact", sans-serif);letter-spacing:.06em;color:var(--color-accent);white-space:nowrap;font-size:1.6rem;line-height:1}.leaderboard-loading{align-items:center;gap:var(--space-md);padding:var(--space-xl) 0;font-family:var(--font-mono,"DM Mono", monospace);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);flex-direction:column;font-size:.68rem;display:flex}.leaderboard-loading__spinner{border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin}.leaderboard-empty{text-align:center;padding:var(--space-xl) 0;font-family:var(--font-mono,"DM Mono", monospace);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);font-size:.72rem;line-height:1.8}.leaderboard-list{gap:var(--space-xs);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.leaderboard-row{align-items:center;gap:var(--space-md);padding:10px var(--space-md);border-radius:var(--radius-md);background:var(--color-surface-2);border:1px solid var(--color-border-soft);transition:border-color var(--transition-fast), background var(--transition-fast);display:flex}.leaderboard-row:hover{background:var(--color-surface-3);border-color:var(--color-border)}.leaderboard-row--gold{background:var(--color-surface-3);border-color:#f7c94840}.leaderboard-row--gold:hover{background:var(--color-surface-3);border-color:#f7c94866}.leaderboard-row__rank{font-family:var(--font-display,"Bebas Neue", sans-serif);text-align:center;width:28px;color:var(--color-text-muted);flex-shrink:0;font-size:1.1rem;line-height:1}.leaderboard-row__rank--1{color:var(--color-accent)}.leaderboard-row__rank--2{color:silver}.leaderboard-row__rank--3{color:#b87333}.leaderboard-row__name{font-family:var(--font-body,"DM Sans", system-ui, sans-serif);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.9rem;font-weight:500;overflow:hidden}.leaderboard-row__pts{font-family:var(--font-mono,"DM Mono", monospace);color:var(--color-accent);flex-shrink:0;align-items:baseline;gap:3px;font-size:.88rem;display:flex}.leaderboard-row__pts-label{letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent-dim);font-size:.6rem}
