:root{--font-display:var(--font-space-grotesk),var(--font-fraunces),system-ui,sans-serif;--font-body:var(--font-inter),-apple-system,BlinkMacSystemFont,sans-serif;--font-mono:var(--font-jetbrains-mono),"SF Mono",ui-monospace,monospace;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.333rem;--text-xl:1.777rem;--text-2xl:2.369rem;--text-3xl:3.157rem;--text-4xl:4.209rem;--tracking-tighter:-0.03em;--tracking-tight:-0.015em;--tracking-normal:0;--tracking-wide:0.025em;--tracking-wider:0.05em;--leading-none:1;--leading-tight:1.2;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625}.logo-text{font-size:var(--text-xl);font-weight:700}.logo-text,.station-name-text{font-family:var(--font-display);letter-spacing:var(--tracking-tight)}.station-name-text{font-size:var(--text-lg);font-weight:600;line-height:var(--leading-tight)}.ghost-score-text{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:700;letter-spacing:var(--tracking-tighter);line-height:var(--leading-none);font-variant-numeric:tabular-nums;background:linear-gradient(135deg,#FF6B6B,#C62828);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-value-text{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:500;letter-spacing:var(--tracking-tight);font-variant-numeric:tabular-nums slashed-zero}.stat-label-text{font-family:var(--font-body);font-size:var(--text-xs);font-weight:500;letter-spacing:var(--tracking-wider);text-transform:uppercase;color:rgba(11,18,32,.52)}[data-theme=dark] .stat-label-text{color:rgba(255,255,255,.6)}.body-text{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--leading-relaxed);letter-spacing:var(--tracking-normal)}@media (max-width:768px){*{-webkit-tap-highlight-color:transparent!important;-webkit-touch-callout:none!important}.mobile-filter-pill *,.mobile-search-bar *,.mobile-station-card *,.mobile-station-detail *{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}:focus-visible{outline:2px solid var(--dm-text-primary)!important;outline-offset:2px}.mobile-station-card,.mobile-station-card .bg-muted,.mobile-station-detail,.mobile-station-detail .bg-muted{background-color:rgb(245 245 245)!important}[data-theme=dark] .mobile-station-card,[data-theme=dark] .mobile-station-card .bg-muted,[data-theme=dark] .mobile-station-detail,[data-theme=dark] .mobile-station-detail .bg-muted{background-color:rgb(30 41 59)!important}}@supports (padding-top:env(safe-area-inset-top)){.mobile-layout{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}}@media (max-width:768px){.desktop-sidebar{display:none}.map-container{position:fixed;inset:0;z-index:0}body{touch-action:auto}}.mobile-search-bar{position:fixed;top:calc(env(safe-area-inset-top, 0px) + 16px);left:16px;right:76px;z-index:100;height:48px;border-radius:24px;background:var(--glass-bg-solid);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 4px 20px var(--shadow-color);display:flex;align-items:center;padding:0 20px;gap:12px}.mobile-filter-scroll{position:fixed;top:calc(env(safe-area-inset-top, 0px) + 80px);left:0;right:0;z-index:100;display:flex;gap:8px;padding:0 16px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;-ms-overflow-style:none}.mobile-filter-scroll::-webkit-scrollbar{display:none}.mobile-filter-pill{flex:0 0 auto;padding:8px 16px;border-radius:20px;background:var(--bg-primary);border:1px solid var(--border-color);color:var(--dm-text-primary);font-size:14px;font-weight:500;white-space:nowrap;scroll-snap-align:start;transition:all .2s ease;-webkit-tap-highlight-color:transparent;cursor:pointer}.mobile-filter-pill:active{transform:scale(.95)}.mobile-filter-pill.active{background:var(--dm-text-primary);color:var(--bg-primary);border-color:var(--dm-text-primary)}.mobile-layout .map-container{pointer-events:auto!important}.mobile-station-card{display:flex;align-items:center;padding:16px;gap:12px;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:transform .15s cubic-bezier(.25,.46,.45,.94),background-color .15s ease,box-shadow .15s ease;cursor:pointer;width:100%;background:transparent;border:none;border-bottom:1px solid rgba(0,0,0,.06);transform-origin:center center;will-change:transform}.mobile-station-card:active{transform:scale(.98);background-color:rgba(0,0,0,.04)!important}.dark .mobile-station-card:active,[data-theme=dark] .mobile-station-card:active{background-color:rgba(255,255,255,.06)!important}.mobile-station-card ::-moz-selection,.mobile-station-card::-moz-selection,.mobile-station-detail ::-moz-selection,.mobile-station-detail::-moz-selection{background-color:transparent!important}.mobile-station-card ::selection,.mobile-station-card::selection,.mobile-station-detail ::selection,.mobile-station-detail::selection{background-color:transparent!important}.mobile-station-card ::-webkit-selection,.mobile-station-card::-webkit-selection,.mobile-station-detail ::-webkit-selection,.mobile-station-detail::-webkit-selection{background-color:transparent!important}.mobile-station-card .rank{font-size:18px;font-weight:800;color:var(--gray-700,#374151);min-width:36px;text-align:center}.mobile-station-card .station-info{flex:1;min-width:0}.mobile-station-card .station-name{font-size:14px;font-weight:500;color:var(--gray-900,#111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-station-card .station-lines{display:flex;gap:4px;margin-top:4px}.mobile-station-card.is-ghosty .station-lines span{opacity:.65}.mobile-station-card.is-ghosty .station-name{color:var(--gray-700,#374151)}.mobile-station-card .ghost-score{margin-left:auto;text-align:right}.mobile-station-card .ghost-score-value{font-size:24px;font-weight:800;color:var(--red-600,#dc2626)}.mobile-station-detail{display:flex;flex-direction:column;touch-action:none}@media (min-width:769px){.mobile-filter-scroll,.mobile-layout,.mobile-search-bar{display:none!important}}@media (prefers-reduced-motion:reduce){.mobile-filter-pill,.mobile-station-card{transition:none!important}.mobile-filter-pill:active{transform:none!important}}@media (prefers-color-scheme:dark){.mobile-search-bar{background:rgba(0,0,0,.85);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.mobile-search-bar input{color:white}.mobile-search-bar input::-moz-placeholder{color:rgba(255,255,255,.5)}.mobile-search-bar input::placeholder{color:rgba(255,255,255,.5)}.mobile-filter-pill{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:white}.mobile-filter-pill.active{background:white;color:black;border-color:white}}@media (prefers-contrast:high){.mobile-search-bar{background:white;border:2px solid black}.mobile-filter-pill{border-width:2px}}.glass-sidebar{background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(248,250,252,.85));backdrop-filter:blur(20px) saturate(1.8);-webkit-backdrop-filter:blur(20px) saturate(1.8);border:1px solid rgba(255,255,255,.18);box-shadow:0 8px 32px rgba(0,0,0,.04),inset 0 1px 0 rgba(255,255,255,.5);transition:all .3s cubic-bezier(.4,0,.2,1)}[data-theme=dark] .glass-sidebar{background:linear-gradient(180deg,rgba(15,23,42,.85),rgba(30,41,59,.85));border:1px solid rgba(255,255,255,.08);box-shadow:0 8px 32px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.05)}.glass-sidebar:before{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.02'/%3E%3C/svg%3E");opacity:.02;mix-blend-mode:overlay;pointer-events:none}.glass-panel{position:relative;background:rgba(255,255,255,.98);backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border:1px solid rgba(255,255,255,.18);box-shadow:0 10px 40px rgba(0,0,0,.08),inset 0 1px 0 rgba(255,255,255,.5)}.glass-panel:before{background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 35%)}.glass-panel:after,.glass-panel:before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;z-index:0}.glass-panel:after{opacity:.015;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px 200px;mix-blend-mode:overlay}.glass-panel>*{position:relative;z-index:1}[data-theme=dark] .glass-panel{background:rgba(15,23,42,.95);border:1px solid rgba(255,255,255,.08);box-shadow:0 10px 40px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.05)}[data-theme=dark] .glass-panel:before{background:linear-gradient(180deg,rgba(255,255,255,.03),transparent 35%)}.glass-card{background:rgba(255,255,255,.6);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.18);box-shadow:0 4px 16px rgba(0,0,0,.05);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-card:hover{background:rgba(255,255,255,.7);box-shadow:0 8px 24px rgba(0,0,0,.08),0 0 0 1px rgba(0,0,0,.04);transform:translateY(-2px)}[data-theme=dark] .glass-card{background:rgba(30,41,59,.6);border:1px solid rgba(255,255,255,.08)}[data-theme=dark] .glass-card:hover{background:rgba(30,41,59,.7);box-shadow:0 8px 24px rgba(0,0,0,.3),0 0 0 1px rgba(255,255,255,.08)}.glass-button{background:rgba(255,255,255,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(0,0,0,.08);box-shadow:0 1px 2px rgba(0,0,0,.04),inset 0 1px 0 rgba(255,255,255,.5);transition:all .2s cubic-bezier(.34,1.56,.64,1)}.glass-button:hover{background:rgba(255,255,255,.8);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.08),inset 0 1px 0 rgba(255,255,255,.7)}.glass-button:active{transform:scale(.97);transition-duration:.1s}.glass-overlay{background:rgba(0,0,0,.4);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.filter-pill{position:relative;transition:all .2s cubic-bezier(.34,1.56,.64,1);overflow:hidden}.filter-pill:before{content:"";position:absolute;inset:0;background:var(--pill-color);opacity:0;transition:opacity .2s ease;border-radius:inherit}.filter-pill>*{position:relative;z-index:1}.filter-pill:hover:not(.active){transform:translateY(-1px)}.filter-pill:hover:not(.active):before{opacity:.1}.filter-pill:active{transform:scale(.97);transition-duration:.1s}.filter-pill.active{transform:scale(1.02);animation:pillActivate .3s cubic-bezier(.34,1.56,.64,1)}.filter-pill.active:hover{transform:scale(1.04)}@keyframes pillActivate{0%{transform:scale(1)}50%{transform:scale(.95)}to{transform:scale(1.02)}}[data-theme=dark] .filter-pill:hover:not(.active){border-color:var(--pill-color-border-dark,rgba(255,255,255,.2))}.stagger-list{--stagger-delay:0.06s}.stagger-list-item{opacity:0;transform:translateX(-30px);filter:blur(4px);animation:staggerIn .5s cubic-bezier(.34,1.56,.64,1) forwards;animation-delay:calc(var(--index, 0) * var(--stagger-delay))}@keyframes staggerIn{to{opacity:1;transform:translateX(0);filter:blur(0)}}.ghost-score-gauge{animation:gaugeReveal .8s cubic-bezier(.34,1.56,.64,1) forwards}.ghost-score-gauge-text{font-variant-numeric:tabular-nums;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}@keyframes gaugeReveal{0%{transform:scale(.8) rotate(-180deg);opacity:0}to{transform:scale(1) rotate(0deg);opacity:1}}.ghost-score-number{animation:countUp 1.2s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes countUp{0%{transform:scale(0);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.ghost-score-high{animation:ghostPulse 2s ease-in-out infinite}@keyframes ghostPulse{0%,to{transform:scale(1);filter:drop-shadow(0 0 20px currentColor)}50%{transform:scale(1.05);filter:drop-shadow(0 0 30px currentColor)}}.panel-enter{animation:panelSlideIn .4s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes panelSlideIn{0%{transform:translateX(100px) scale(.95);opacity:0;filter:blur(10px)}to{transform:translateX(0) scale(1);opacity:1;filter:blur(0)}}.panel-content-item{opacity:0;transform:translateY(20px);animation:panelItemReveal .3s cubic-bezier(.34,1.56,.64,1) forwards;animation-delay:calc(var(--index, 0) * .08s + .15s)}@keyframes panelItemReveal{to{opacity:1;transform:translateY(0)}}.map-marker-ghost{animation:markerPulse 3s ease-in-out infinite}@keyframes markerPulse{0%,to{transform:scale(1);opacity:.9}50%{transform:scale(1.2);opacity:.6}}.map-marker-selected{animation:markerSelect .4s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes markerSelect{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1.15)}}.breathe{animation:breathe 3s ease-in-out infinite}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.shimmer{position:relative;overflow:hidden}.shimmer:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2) 50%,transparent);transform:translateX(-100%);animation:shimmer 2s infinite}@keyframes shimmer{to{transform:translateX(100%)}}.ghost-float{animation:ghostFloat 4s ease-in-out infinite}@keyframes ghostFloat{0%,to{transform:translateY(0)}25%{transform:translateY(-10px)}75%{transform:translateY(5px)}}.animate-float-up{animation:floatUp 3s ease-out infinite}.animate-float-up-delay{animation:floatUp 3s ease-out 1s infinite}.animate-float-up-delay-2{animation:floatUp 3s ease-out 2s infinite}@keyframes floatUp{0%{transform:translateY(0) translateX(-50%);opacity:0}20%{opacity:.6}to{transform:translateY(-30px) translateX(-50%);opacity:0}}