:root{
  --locator-cyan:#75efff;
  --locator-purple:#b86cff;
  --locator-pink:#ff5ecb;
  --locator-green:#8cff78;
  --locator-ink:#05050a;
  --locator-panel:#0b0b12;
}
.locator-page{background:radial-gradient(circle at 50% 0,rgba(184,108,255,.08),transparent 28%),#050607}
.locator-shell{position:relative;padding:clamp(.65rem,1.8vw,1.15rem);border:1px solid #5c6671;border-radius:14px;background:linear-gradient(145deg,#1b2026,#07090c 22%,#0c0e13 75%,#20262c);box-shadow:0 30px 90px rgba(0,0,0,.62),inset 0 1px 0 rgba(255,255,255,.1)}
.locator-shell:before,.locator-shell:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:#747d86;box-shadow:inset 0 1px 2px #fff,0 1px 4px #000;z-index:5}
.locator-shell:before{left:9px;top:9px}.locator-shell:after{right:9px;bottom:9px}
.locator-plate{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 .8rem;padding:.35rem .55rem;color:#c8d0d6;font:600 .66rem/1.2 'Oswald',sans-serif;letter-spacing:.18em;text-transform:uppercase}
.locator-plate span:last-child{color:var(--locator-cyan);text-shadow:0 0 10px rgba(117,239,255,.55)}
.locator-controls{position:relative;z-index:4;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:.75rem;margin-bottom:.8rem}
.locator-controls input,.locator-controls select{border-color:#4b5360;background:linear-gradient(180deg,#10121a,#08090e);color:#f5f8fa;box-shadow:inset 0 0 18px rgba(0,0,0,.72)}
.locator-controls input:focus,.locator-controls select:focus{border-color:var(--locator-cyan);box-shadow:0 0 0 1px var(--locator-cyan),0 0 18px rgba(117,239,255,.22),inset 0 0 16px rgba(0,0,0,.72)}
.locator-map-wrap{position:relative;overflow:hidden;border:1px solid #69727d;border-radius:9px;background:#05050a;box-shadow:inset 0 0 40px #000,0 0 22px rgba(117,239,255,.09)}
.locator-map-wrap:after{content:"";position:absolute;inset:0;z-index:401;pointer-events:none;box-shadow:inset 0 0 55px rgba(0,0,0,.9),inset 0 0 15px rgba(184,108,255,.18)}
.locator-page .map{height:560px;border:0;border-radius:0;box-shadow:none;background:#05050a;filter:saturate(1.15) contrast(1.08)}
.locator-page .leaflet-tile-pane{filter:hue-rotate(8deg) saturate(1.35) brightness(.9)}
.locator-page .leaflet-control-zoom a{color:#e9fbff;background:#0b0c12;border-color:#39414c;text-shadow:0 0 8px rgba(117,239,255,.8);transition:.2s ease}
.locator-page .leaflet-control-zoom a:hover{color:#fff;background:#11141c;box-shadow:inset 0 0 12px rgba(117,239,255,.22),0 0 12px rgba(117,239,255,.28)}
.locator-page .leaflet-control-attribution{background:rgba(3,3,7,.78);color:#929aa4}.locator-page .leaflet-control-attribution a{color:#9eefff}
.neon-wheel-marker{width:24px;height:24px;border:3px solid #eafcff;border-radius:50%;background:radial-gradient(circle,#07080d 0 30%,currentColor 32% 44%,#101119 47% 100%);box-shadow:0 0 5px currentColor,0 0 14px currentColor,0 0 24px color-mix(in srgb,currentColor 45%,transparent);transition:transform .18s ease,filter .18s ease;animation:locatorPulse 4.8s ease-in-out infinite}
.neon-wheel-marker:before{content:"";position:absolute;inset:7px;border-radius:50%;background:#eefeff;box-shadow:0 0 5px currentColor}
.neon-wheel-marker.rink{color:var(--locator-cyan)}.neon-wheel-marker.outdoor{color:var(--locator-green)}
.leaflet-marker-icon:hover .neon-wheel-marker{transform:scale(1.14) rotate(9deg);filter:brightness(1.35)}
@keyframes locatorPulse{0%,88%,100%{filter:brightness(.92)}92%{filter:brightness(1.35)}95%{filter:brightness(1)}}
.locator-page .leaflet-popup-content-wrapper,.locator-page .leaflet-popup-tip{background:#090a10;color:#e9edf2;border:1px solid #59636d;box-shadow:0 0 0 1px rgba(117,239,255,.1),0 18px 45px rgba(0,0,0,.75),0 0 20px rgba(184,108,255,.14)}
.locator-page .leaflet-popup-content-wrapper{border-radius:6px}.locator-page .leaflet-popup-content{margin:15px 17px;line-height:1.55}.locator-page .leaflet-popup-content strong{display:block;margin-bottom:.2rem;color:#fff;font:600 1rem 'Oswald',sans-serif;letter-spacing:.05em;text-transform:uppercase}.locator-page .leaflet-popup-content a{display:inline-block;margin-top:.55rem;color:var(--locator-cyan);font:600 .7rem 'Oswald',sans-serif;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;text-shadow:0 0 10px rgba(117,239,255,.4)}
.locator-page .leaflet-popup-close-button{color:#d9faff!important}
.locator-startup{position:absolute;inset:0;z-index:900;display:grid;place-items:center;background:radial-gradient(circle at 50% 48%,rgba(184,108,255,.15),transparent 25%),rgba(3,3,7,.97);transition:opacity .45s ease,visibility .45s ease}
.locator-startup.is-ready{opacity:0;visibility:hidden}.locator-startup-inner{text-align:center}.locator-startup-wheel{position:relative;width:62px;height:62px;margin:0 auto 1rem;border:5px solid var(--locator-cyan);border-radius:50%;box-shadow:0 0 10px var(--locator-cyan),0 0 28px rgba(117,239,255,.65),inset 0 0 17px rgba(184,108,255,.55);animation:locatorSpin 1.1s linear infinite}.locator-startup-wheel:before{content:"";position:absolute;inset:18px;border-radius:50%;background:#fff;box-shadow:0 0 12px var(--locator-purple)}
.locator-startup p{margin:0;color:#ecfaff;font:600 .75rem 'Oswald',sans-serif;letter-spacing:.22em;text-transform:uppercase;text-shadow:0 0 12px var(--locator-cyan)}
@keyframes locatorSpin{to{transform:rotate(360deg)}}
.locator-meta{margin-top:1.4rem;font:600 .78rem 'Oswald',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#d8e0e7}.locator-meta:before{content:"●";margin-right:.55rem;color:var(--locator-pink);text-shadow:0 0 9px var(--locator-pink)}
.locator-page .spot{border-color:#353d49;background:linear-gradient(180deg,#11131b,#08090e);box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}.locator-page .spot:hover{border-color:#687482;box-shadow:0 0 18px rgba(117,239,255,.08)}
.locator-page .tag:nth-child(1){border-color:rgba(117,239,255,.4);color:#bff7ff}.locator-page .tag:nth-child(2){border-color:rgba(184,108,255,.4);color:#d9baff}.locator-page .tag:nth-child(3){border-color:rgba(255,94,203,.4);color:#ffb9e8}
@media(max-width:900px){.locator-controls{grid-template-columns:1fr 1fr}.locator-page .map{height:500px}}
@media(max-width:600px){.locator-shell{padding:.55rem}.locator-plate{font-size:.56rem;letter-spacing:.12em}.locator-controls{grid-template-columns:1fr}.locator-page .map{height:440px}.neon-wheel-marker{width:21px;height:21px}.neon-wheel-marker:before{inset:6px}}
@media(prefers-reduced-motion:reduce){.neon-wheel-marker,.locator-startup-wheel{animation:none}.locator-startup{transition:none}}

/* Calibrate drawer: keeps the blacklight map above the fold. */
.locator-map-wrap{isolation:isolate;min-height:560px}
.locator-controls{position:absolute;z-index:700;top:0;right:0;bottom:0;width:min(390px,calc(100% - 58px));display:block;margin:0;padding:1.35rem;background:linear-gradient(145deg,rgba(22,25,34,.98),rgba(7,8,13,.985) 42%,rgba(10,8,17,.99));border-left:1px solid #69727d;box-shadow:-18px 0 50px rgba(0,0,0,.65),-2px 0 22px rgba(117,239,255,.12);transform:translateX(102%);visibility:hidden;transition:transform .34s cubic-bezier(.2,.8,.2,1),visibility .34s;overflow-y:auto}
.locator-controls.is-open{transform:translateX(0);visibility:visible}
.locator-controls-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid #38414b}
.locator-controls-head h2{margin:.15rem 0 0;font-size:clamp(2rem,4vw,3rem);line-height:1;color:#fff;text-shadow:0 0 18px rgba(184,108,255,.25)}
.locator-controls form{display:grid;grid-template-columns:1fr;gap:.48rem}
.locator-controls label{margin-top:.5rem;color:#cbd4db;font:600 .67rem/1.2 'Oswald',sans-serif;letter-spacing:.14em;text-transform:uppercase}
.locator-controls input,.locator-controls select{width:100%;min-height:48px;border:1px solid #4b5360;border-radius:4px;padding:.72rem .78rem;background:linear-gradient(180deg,#10121a,#08090e);color:#f5f8fa;box-shadow:inset 0 0 18px rgba(0,0,0,.72)}
.locator-controls input:focus,.locator-controls select:focus{outline:none;border-color:var(--locator-cyan);box-shadow:0 0 0 1px var(--locator-cyan),0 0 18px rgba(117,239,255,.22),inset 0 0 16px rgba(0,0,0,.72)}
.calibrate-close{display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid #59636d;border-radius:50%;background:#090a10;color:#eafcff;font-size:1.8rem;line-height:1;cursor:pointer;transition:.2s ease}
.calibrate-close:hover,.calibrate-close:focus-visible{border-color:var(--locator-cyan);box-shadow:0 0 16px rgba(117,239,255,.3);outline:none}
.calibrate-tab{position:absolute;z-index:710;right:0;top:50%;display:flex;align-items:center;gap:.55rem;min-height:52px;padding:.75rem .95rem;border:1px solid #6b7580;border-right:0;border-radius:7px 0 0 7px;background:linear-gradient(135deg,#252b31,#0b0d12 55%,#171b20);color:#f4fbff;font:600 .72rem/1 'Oswald',sans-serif;letter-spacing:.16em;text-transform:uppercase;box-shadow:-10px 0 28px rgba(0,0,0,.58),0 0 16px rgba(117,239,255,.14),inset 0 1px 0 rgba(255,255,255,.12);cursor:pointer;transform:translateY(-50%);transition:right .34s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease,color .2s ease}
.calibrate-tab:hover,.calibrate-tab:focus-visible{color:#fff;box-shadow:-10px 0 28px rgba(0,0,0,.58),0 0 24px rgba(117,239,255,.35),inset 0 1px 0 rgba(255,255,255,.14);outline:none}
.calibrate-tab.is-open{right:min(390px,calc(100% - 58px))}
.calibrate-led{width:8px;height:8px;border-radius:50%;background:var(--locator-cyan);box-shadow:0 0 5px var(--locator-cyan),0 0 13px var(--locator-cyan);animation:calibrateLed 3.2s ease-in-out infinite}
@keyframes calibrateLed{0%,72%,100%{opacity:.65}78%{opacity:1}84%{opacity:.75}}
.locator-locate{margin-top:1rem;min-height:50px;border:1px solid var(--locator-cyan);border-radius:4px;background:linear-gradient(180deg,rgba(117,239,255,.2),rgba(117,239,255,.06));color:#fff;font:700 .78rem/1 'Oswald',sans-serif;letter-spacing:.2em;text-transform:uppercase;text-shadow:0 0 10px rgba(117,239,255,.7);box-shadow:0 0 20px rgba(117,239,255,.12),inset 0 0 16px rgba(117,239,255,.07);cursor:pointer;transition:.2s ease}
.locator-locate:hover,.locator-locate:focus-visible{background:linear-gradient(180deg,rgba(117,239,255,.3),rgba(117,239,255,.1));box-shadow:0 0 25px rgba(117,239,255,.28),inset 0 0 18px rgba(117,239,255,.11);outline:none}
body.locator-drawer-open{overflow:hidden}
@media(max-width:900px){.locator-map-wrap{min-height:500px}}
@media(max-width:600px){.locator-map-wrap{min-height:62vh}.locator-page .map{height:62vh;min-height:440px}.locator-controls{top:auto;left:0;right:0;bottom:0;width:100%;max-height:min(78vh,650px);border-left:0;border-top:1px solid #69727d;transform:translateY(102%);border-radius:12px 12px 0 0}.locator-controls.is-open{transform:translateY(0)}.calibrate-tab{top:auto;right:50%;bottom:0;border-right:1px solid #6b7580;border-bottom:0;border-radius:7px 7px 0 0;transform:translateX(50%);transition:bottom .34s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease}.calibrate-tab.is-open{right:50%;bottom:min(78vh,650px)}.locator-plate{padding-right:.35rem}}
@media(prefers-reduced-motion:reduce){.locator-controls,.calibrate-tab{transition:none}.calibrate-led{animation:none}}

/* Let the map lead the page instead of making visitors scroll past controls. */
.locator-page .page-hero{padding:3.4rem 0 2.2rem}
.locator-page .page-hero .intro{margin-bottom:0}
.locator-page>.section{padding:1.15rem 0 4.5rem}
@media(max-width:600px){.locator-page .page-hero{padding:2.6rem 0 1.65rem}.locator-page .page-hero h1{margin-bottom:.45rem}.locator-page>.section{padding:.75rem 0 3.5rem}}

/* Locator v5: readable controls, neon dot markers, location prompt. */
.locator-controls input,
.locator-controls select {
  color-scheme: dark;
  appearance: none;
  -webkit-appearance: none;
  background-color: #0b0d12 !important;
  color: #f6fbff !important;
  -webkit-text-fill-color: #f6fbff;
}
.locator-controls select {
  padding-right: 2.65rem;
  background-image: linear-gradient(45deg,transparent 50%,#75efff 50%),linear-gradient(135deg,#75efff 50%,transparent 50%),linear-gradient(180deg,#10131b,#08090e) !important;
  background-position: calc(100% - 18px) 20px,calc(100% - 12px) 20px,0 0 !important;
  background-size: 6px 6px,6px 6px,100% 100% !important;
  background-repeat: no-repeat !important;
}
.locator-controls option { background:#090b10; color:#f6fbff; }
.locator-controls input::placeholder { color:#9ca8b2; opacity:1; -webkit-text-fill-color:#9ca8b2; }
.locator-secondary{min-height:48px;border:1px solid #6f7782;border-radius:4px;background:#0b0d12;color:#eefbff;font:700 .72rem 'Oswald',sans-serif;letter-spacing:.16em;text-transform:uppercase;cursor:pointer}
.neon-marker-shell{background:transparent!important;border:0!important}
.neon-dot{display:block;width:8px;height:8px;border-radius:50%;background:#b86cff;box-shadow:0 0 4px currentColor,0 0 10px currentColor,0 0 18px currentColor;color:#b86cff}
.neon-dot.rink{background:#75efff;color:#75efff}.neon-dot.outdoor{background:#75ff9a;color:#75ff9a}.neon-dot.derby{background:#ff5ecb;color:#ff5ecb}.neon-dot.other{background:#b86cff;color:#b86cff}
.leaflet-marker-icon:hover .neon-dot{transform:scale(1.7);filter:brightness(1.35)}
.location-prompt{position:absolute;z-index:650;left:50%;top:50%;width:min(420px,calc(100% - 32px));padding:1.35rem;transform:translate(-50%,-50%);border:1px solid #69727d;border-radius:10px;background:linear-gradient(145deg,rgba(18,21,29,.97),rgba(6,7,11,.98));box-shadow:0 20px 60px rgba(0,0,0,.72),0 0 26px rgba(117,239,255,.18);text-align:center;transition:.25s ease}
.location-prompt.is-hidden{opacity:0;visibility:hidden;transform:translate(-50%,-46%)}
.location-prompt strong{display:block;margin-bottom:.45rem;color:#fff;font:700 1.25rem 'Oswald',sans-serif;letter-spacing:.05em;text-transform:uppercase}.location-prompt span{display:block;margin-bottom:1rem;color:#c9d3da;line-height:1.55}.location-prompt .btn{width:100%;margin-bottom:.65rem}.location-dismiss{border:0;background:transparent;color:#9eefff;text-decoration:underline;cursor:pointer}
.spot h3 a{color:inherit;text-decoration:none}.spot h3 a:hover{color:#9eefff}.spot-distance{color:#9eefff;font-weight:700}
@media(max-width:600px){.neon-dot{width:7px;height:7px}.location-prompt{top:44%}}
