/* Shared dusk palette for redesigned listening pages. One place to lift the night. */
html:has(.listen-pg),
html:has(body.home),
html:has(body.news-pg){
  --dusk:#1a3350;
  --dusk-deep:#13263d;
  --panel:rgba(48,86,120,.72);
  --panel-soft:rgba(48,86,120,.55);
  --panel-line:rgba(139,214,204,.34);
  --hero-wash:rgba(26,51,80,.2);
  --map-filter:contrast(1.18) saturate(1.28) brightness(1.72);
  --weekday-gold:rgb(246,216,152);
}
/* Muskoka Pulse v2 preview: wider layout, big weekdays, pulse homepage, tasteful motion.
   Brand: Fraunces headings, Source Sans 3 body, Josefin Sans accents, navy/gold/teal. */

:root{
  --wrap:92rem;
  --dusk:#1a3350;
  --dusk-deep:#13263d;
  --panel:rgba(48,86,120,.72);
  --panel-soft:rgba(48,86,120,.55);
  --panel-line:rgba(139,214,204,.34);
  --hero-wash:rgba(26,51,80,.2);
  --map-filter:contrast(1.18) saturate(1.28) brightness(1.72);
  --weekday-gold:rgb(246,216,152);
  --v2-navy:var(--dusk,#1a3350);
  --v2-card:var(--panel,rgba(48,86,120,.72));
  --v2-card-solid:#245070;
}

/* Slightly roomier reading column on large screens, without stretching paragraphs unreadably. */
@media (min-width:80rem){
  body:not(.folk-pg) .wrap{max-width:calc(92rem + 2*var(--gut));}
}

/* ---------- Big, visible dates. Weekday leads. ---------- */
body:not(.folk-pg) .day-h,
body:not(.folk-pg) h3.cal-dh{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.2rem;
  border-top:1px solid var(--line);
  padding-top:1.15rem;
  margin:1.75rem 0 1.1rem;
  line-height:1;
}
body:not(.folk-pg) .day-h .dh-dow,
body:not(.folk-pg) h3.cal-dh .dh-dow{
  display:block;
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(2.5rem,5.4vw,4.15rem);
  line-height:.92;
  letter-spacing:-.03em;
  color:var(--weekday-gold,rgb(246,216,152));
  background:none;
  border:0;
  padding:0;
}
body:not(.folk-pg) .day-h .dh-sep,
body:not(.folk-pg) h3.cal-dh .dh-sep{display:none}
body:not(.folk-pg) .day-h .dh-date,
body:not(.folk-pg) h3.cal-dh .dh-date{
  display:block;
  margin:0;
  font-family:var(--sans);
  font-weight:500;
  font-size:1.0625rem;
  line-height:1.35;
  letter-spacing:0;
  color:var(--muted);
  max-width:none;
}
body:not(.folk-pg) .sub-head{align-items:flex-end}
body:not(.folk-pg) .sub-head .count{
  font-family:var(--caps);
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:.75rem;
  color:var(--sun1);
  margin-bottom:.35rem;
}
body:not(.folk-pg) .when.big-when{
  min-width:7.5rem;
}
body:not(.folk-pg) .when.big-when .dow{
  display:block;
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(2.1rem,4vw,3.1rem);
  line-height:.9;
  letter-spacing:-.03em;
  color:var(--ivory);
}
body:not(.folk-pg) .when.big-when .mon,
body:not(.folk-pg) .when.big-when .yr{
  font-family:var(--caps);
  letter-spacing:.08em;
  text-transform:uppercase;
}
body:not(.folk-pg) .when.big-when .day{
  font-family:var(--serif);
  font-size:clamp(1.8rem,3vw,2.4rem);
  line-height:1;
  color:var(--sun1);
}
body:not(.folk-pg) .ev-facts dt{font-family:var(--caps);letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;color:var(--muted)}
body:not(.folk-pg) .ev-facts dd.v2-date-dd{
  font-family:var(--serif);
  font-size:clamp(1.65rem,2.6vw,2.15rem);
  line-height:1.15;
  color:var(--ivory);
}
body:not(.folk-pg) .ev-facts dd.v2-date-dd .v2-date-rest{
  display:block;
  margin-top:.2rem;
  font-family:var(--sans);
  font-size:1rem;
  font-weight:500;
  color:var(--muted);
}

/* ---------- Home pulse hero ---------- */
body.home .hero-art{display:none}
body.home .pulse-hero{
  position:relative;
  overflow:hidden;
  min-height:auto;
  display:grid;
  grid-template-columns:minmax(22rem,1fr) minmax(24rem,1.2fr);
  grid-template-areas:"map copy";
  align-items:stretch;
  background:var(--v2-navy);
  border-bottom:1px solid var(--line);
}
body.home .pulse-map{grid-area:map}
body.home .pulse-hero-copy{grid-area:copy}
body.home .pulse-map{
  position:relative;
  z-index:0;
  min-height:28rem;
  background:transparent;
}
body.home .pulse-map-img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  opacity:1;
}
body.home .pulse-map canvas.mp-pulse{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
  opacity:0;
  transition:opacity 1.2s ease;
}
body.home .pulse-map canvas.mp-pulse.on{opacity:1}
body.home .pulse-hero::after{content:none;} /* overlay off for split layout */
body.home .pulse-hero-copy{
  position:relative;
  z-index:2;
  width:100%;
  max-width:none;
  padding-top:2rem;
  padding-bottom:1.5rem;
  text-align:left;
}
@media (min-width:64rem){
  body.home .pulse-hero-copy{
    padding-top:clamp(2.4rem,6vh,4.5rem);
    padding-bottom:clamp(1.6rem,3vh,2.6rem);
  }
}
body.home .pulse-hero-copy > *{margin-left:0;margin-right:0}
body.home .pulse-hero .kicker{
  color:var(--link);
  margin-bottom:1.1rem;
}
body.home .pulse-dow{
  margin:0;
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(4.1rem,11vw,8.4rem);
  line-height:.86;
  letter-spacing:-.045em;
  color:var(--weekday-gold,rgb(246,216,152));
  max-width:12ch;
}
body.home .pulse-hero h1{
  margin:.85rem 0 0;
  font-size:clamp(1.7rem,3vw,2.55rem);
  line-height:1.15;
  letter-spacing:-.03em;
  max-width:18ch;
}
body.home .pulse-longdate{
  margin:.55rem 0 0;
  font-family:var(--sans);
  font-weight:500;
  font-size:1.125rem;
  color:var(--muted);
}
body.home .pulse-hero .lede{
  margin-top:1.15rem;
  max-width:38ch;
}
body.home .pulse-filters{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin-top:1.6rem;
}
body.home .pulse-filters .chip{
  appearance:none;
  border:1px solid var(--line-strong);
  background:var(--hero-wash,rgba(26,51,80,.2));
  color:var(--ivory);
  font:600 .8rem/1 var(--caps);
  letter-spacing:.08em;
  text-transform:uppercase;
  min-height:44px;
  padding:.7rem 1rem;
  border-radius:999px;
  cursor:pointer;
}
body.home .pulse-filters .chip[aria-pressed=true]{
  background:var(--sun);
  color:var(--on-sun);
  border-color:transparent;
}
body.home .pulse-hero .actions{margin-top:1.7rem}

/* Town signals on the map */
body.home .pulse-towns{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
}
body.home .pulse-pin{
  position:absolute;
  transform:translate(-50%,-50%);
  pointer-events:auto;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.15rem;
  text-decoration:none;
  color:var(--ivory);
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.35));
}
body.home .pulse-pin .nm{
  font-family:var(--caps);
  font-size:.68rem;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(248,245,236,.92);
  white-space:nowrap;
}
body.home .pulse-pin .ct{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:1.65rem;
  height:1.65rem;
  padding:0 .4rem;
  border-radius:999px;
  background:var(--panel,rgba(48,86,120,.72));
  border:1px solid rgba(247,189,104,.55);
  color:var(--sun1);
  font-family:var(--serif);
  font-size:.95rem;
  line-height:1;
}
body.home .pulse-pin.is-live .ct{
  background:var(--sun);
  color:var(--on-sun);
  border-color:transparent;
}
body.home .pulse-pin:hover .nm,
body.home .pulse-pin:focus-visible .nm{color:var(--sun1)}
body.home .pulse-pin:focus-visible{outline:2px solid var(--sun);outline-offset:4px}

@media (max-width:63.99rem){
  body.home .pulse-hero{grid-template-columns:1fr;grid-template-areas:"map" "copy";min-height:auto}
  body.home .pulse-map{min-height:16.5rem;max-height:22rem}
  body.home .pulse-towns{display:none}
}

/* ---------- Pulse board, week strip, glance ---------- */
.v2-section{position:relative;z-index:1}
body.home .pulse-board .section-head,
body.home .week-strip .section-head,
body.home .glance .section-head,
body.home .submit-cta .section-head{align-items:flex-end}
body.home #pulse-board-title{
  font-size:clamp(2.4rem,5vw,3.8rem);
  line-height:.95;
  letter-spacing:-.03em;
}
body.home .pulse-board-sub{margin:.35rem 0 0;color:var(--muted);font-size:1.05rem}
body.home .pulse-count{
  font-family:var(--caps);
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:.8rem;
  color:var(--sun1);
  margin:0;
}
.pulse-list{
  list-style:none;
  margin:1.5rem 0 0;
  padding:0;
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
}
@media (min-width:64rem){
  .pulse-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem 1.4rem}
}
.pulse-card{
  display:flex;
  flex-direction:column;
  gap:.35rem;
  padding:1.15rem 1.2rem 1.2rem;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--v2-card-solid);
  min-height:100%;
}
.pulse-card .ev-town{margin:0}
.pulse-card h3{margin:0;font-size:1.35rem;line-height:1.25}
.pulse-card h3 a{color:inherit;text-decoration:none}
.pulse-card h3 a:hover,
.pulse-card h3 a:focus-visible{color:var(--sun1)}
.pulse-card .ev-time{margin:0;color:var(--sun1);font-weight:600}
.pulse-card .meta{margin:0;color:var(--muted)}
.pulse-card .ev-links{margin:.45rem 0 0;display:flex;flex-wrap:wrap;gap:.75rem 1rem}
.pulse-now{
  display:inline-block;
  margin-right:.45rem;
  padding:.12rem .5rem;
  border-radius:999px;
  background:var(--teal);
  color:var(--n0);
  font-family:var(--caps);
  font-size:.65rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.week-strip .week-days{
  list-style:none;
  margin:1.4rem 0 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:.65rem;
}
.week-days a{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.15rem;
  min-height:8.2rem;
  padding:1rem 1rem 1.05rem;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--panel,rgba(48,86,120,.72));
  text-decoration:none;
  color:var(--ivory);
}
.week-days a[aria-current=page],
.week-days a.is-today{
  border-color:rgba(247,189,104,.7);
  box-shadow:inset 0 0 0 1px rgba(247,189,104,.25);
}
.week-days .wd{
  font-family:var(--serif);
  font-size:clamp(1.45rem,2.2vw,1.9rem);
  line-height:.95;
  letter-spacing:-.03em;
}
.week-days .num{
  font-family:var(--serif);
  font-size:1.15rem;
  color:var(--sun1);
}
.week-days .ct{
  margin-top:auto;
  font-family:var(--sans);
  font-size:.9rem;
  color:var(--muted);
}
.week-days a:hover,
.week-days a:focus-visible{border-color:var(--link);color:var(--ivory)}
@media (max-width:63.99rem){
  .week-strip .week-days{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:47.99rem){
  .week-strip .week-days{grid-template-columns:repeat(2,minmax(0,1fr))}
}

.glance-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
  margin-top:1.4rem;
}
@media (min-width:64rem){
  .glance-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.1rem}
}
.glance-card{
  display:flex;
  flex-direction:column;
  gap:.45rem;
  padding:1.2rem 1.2rem 1.3rem;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--v2-card-solid);
  text-decoration:none;
  color:inherit;
  min-height:100%;
}
.glance-card h3{margin:0;font-size:1.45rem}
.glance-card p{margin:0;color:var(--muted);max-width:none}
.glance-card .more{margin-top:auto;padding-top:.6rem}
a.glance-card:hover h3,
a.glance-card:focus-visible h3{color:var(--sun1)}

.submit-cta{
  background:linear-gradient(180deg, rgba(48,86,120,.28), rgba(26,51,80,0));
}
.submit-cta .cta-box{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:1.25rem 2rem;
  padding:1.6rem 1.5rem;
  border:1px solid var(--line-strong);
  border-radius:22px;
  background:var(--panel-soft,rgba(48,86,120,.55));
}
.submit-cta h2{font-size:clamp(1.8rem,3vw,2.4rem);margin:0}
.submit-cta p{margin:.45rem 0 0;max-width:46ch}

/* Event tools: When row */
.evt-row.evt-when .chips{flex-wrap:wrap}

/* Share */
.v2-share,
button.v2-share{
  appearance:none;
  background:none;
  border:0;
  padding:0;
  color:var(--link);
  font:inherit;
  cursor:pointer;
  text-decoration:underline;
}
.v2-share:hover,.v2-share:focus-visible{color:var(--sun1)}
.v2-copied{color:var(--sun1);text-decoration:none}

/* Submit form */
.v2-form{
  display:grid;
  gap:1rem;
  margin-top:1.4rem;
  max-width:40rem;
}
.v2-form label{display:block;font-family:var(--caps);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.35rem}
.v2-form input,
.v2-form select,
.v2-form textarea{
  width:100%;
  min-height:48px;
  padding:.75rem .9rem;
  border:1px solid var(--line-strong);
  border-radius:12px;
  background:var(--panel-soft,rgba(48,86,120,.55));
  color:var(--ivory);
  font:500 1rem/1.4 var(--sans);
}
.v2-form textarea{min-height:8.5rem;resize:vertical}
.v2-form .nl-consent{display:flex;gap:.7rem;align-items:flex-start;font-family:var(--sans);font-size:1rem;text-transform:none;letter-spacing:0;color:var(--fg)}
.v2-form .nl-consent input{width:auto;min-height:0;margin-top:.25rem}
.v2-note{
  padding:1rem 1.1rem;
  border-left:3px solid var(--sun);
  background:var(--panel-soft,rgba(48,86,120,.55));
  color:var(--fg);
  max-width:46ch;
}

/* Scroll reveal */
.js .v2-reveal{opacity:0;transform:translateY(14px);transition:opacity .7s ease, transform .7s ease}
.js .v2-reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .js .v2-reveal{opacity:1;transform:none;transition:none}
  body.home .pulse-map canvas.mp-pulse{display:none}
  body.home .pulse-filters .chip,
  .week-days a,
  .pulse-card,
  .glance-card{transition:none}
}

@media (max-width:47.99rem){
  body.home .pulse-dow{font-size:clamp(3.4rem,18vw,5.2rem)}
  .pulse-card{padding:1rem}
}

/* Full-bleed OSM shoreline map on the v2 home: northern / pulled-back crop, distinct from About. */
html:has(body.home){overflow-x:hidden;background:var(--dusk,#1a3350)}
body.home{overflow-x:hidden;background:transparent;isolation:isolate}
body.home::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  pointer-events:none;
  background:url("/assets/maps/lakes.svg?v=map-areas1") no-repeat;
  background-size:cover;
  background-position:center;
  transform:none;
  filter:var(--map-filter,contrast(1.18) saturate(1.28) brightness(1.72));
}
body.home .pulse-hero{
  background:transparent;
  border-bottom:0;
}
body.home .pulse-hero-copy{
  background:linear-gradient(90deg,rgba(26,51,80,.28),rgba(26,51,80,.08) 72%,transparent);
}
@media (max-width:63.99rem){
  body.home .pulse-map{display:none!important}
  body.home .pulse-hero{
    grid-template-columns:1fr;
    grid-template-areas:"copy";
    min-height:auto;
    background:transparent;
  }
  body.home::before{transform:none;background-position:center}
  body.home .pulse-hero-copy{
    background:linear-gradient(180deg,rgba(26,51,80,.24),rgba(26,51,80,.08) 80%,transparent);
  }
}
@media (min-width:64rem){
  body.home .pulse-hero{
    grid-template-columns:minmax(22rem,1fr) minmax(10rem,.55fr);
    grid-template-areas:"copy map";
  }
  body.home .pulse-map{
    background:transparent;
    min-height:0;
  }
  body.home .pulse-map-img{opacity:.0;pointer-events:none}
}

/* Radar origin shared by the sweep and the quiet ripple rings. */
body.home{
  --radar-x:36%;
  --radar-y:24%;
  --radar-turn:140s;
}
@media (max-width:63.99rem){
  body.home{--radar-x:34%;--radar-y:22%}
}

/* Slow CSS radar sweep, matching About: conic beam, ~140s per turn. */
body.home .listen-sweep{
  position:fixed;
  inset:-25%;
  z-index:-1;
  pointer-events:none;
  background:conic-gradient(from 0deg at var(--radar-x) var(--radar-y),
    rgba(255,255,255,.18) 0deg,
    rgba(139,214,204,.08) 12deg,
    transparent 28deg,
    transparent 360deg);
  transform-origin:var(--radar-x) var(--radar-y);
  animation:listen-sweep var(--radar-turn) linear infinite;
  opacity:.42;
}

/* Softened ripples so they sit with the sweep instead of competing. */
body.home .listen-rings{
  position:fixed;
  left:var(--radar-x);
  top:var(--radar-y);
  width:0;height:0;
  z-index:0;
  pointer-events:none;
  opacity:.4;
}
body.home .listen-rings i{
  position:absolute;
  left:0;top:0;
  width:7.5rem;height:7.5rem;
  margin:-3.75rem 0 0 -3.75rem;
  border:1px solid rgba(255,197,106,.22);
  border-radius:50%;
  animation:listen-ring 28s ease-out infinite;
  box-shadow:0 0 0 1px rgba(139,214,204,.05);
}
body.home .listen-rings i:nth-child(2){animation-delay:9s}
body.home .listen-rings i:nth-child(3){animation-delay:18s}

/* Live pins rest muted and glow as the beam reaches them. */
body.home .pulse-pin.is-live .ct{
  background:var(--panel,rgba(48,86,120,.72));
  color:var(--sun1);
  border-color:rgba(247,189,104,.55);
  animation:home-pin-glow var(--radar-turn) linear infinite;
  animation-delay:var(--beam-delay,0s);
}
body.home .pulse-pin.is-live .nm{
  animation:home-pin-nm var(--radar-turn) linear infinite;
  animation-delay:var(--beam-delay,0s);
}
@keyframes home-pin-glow{
  0%,7%{
    background:var(--sun);
    color:var(--on-sun);
    border-color:transparent;
    box-shadow:0 0 0 6px rgba(255,197,106,.2),0 0 18px rgba(255,197,106,.7);
  }
  14%,100%{
    background:var(--panel,rgba(48,86,120,.72));
    color:var(--sun1);
    border-color:rgba(247,189,104,.55);
    box-shadow:none;
  }
}
@keyframes home-pin-nm{
  0%,7%{color:var(--sun1)}
  14%,100%{color:rgba(248,245,236,.92)}
}

/* Current News: no town/source scan, centered larger heading, western Georgian Bay crop + sweep. */
html:has(body.news-pg){background:var(--dusk,#1a3350)}
body.news-pg{background:transparent;isolation:isolate;overflow-x:hidden}
body.news-pg::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  pointer-events:none;
  background:url("/assets/maps/area-huntsville-fairy.svg?v=map-areas2") no-repeat;
  background-size:cover;
  background-position:center;
  transform:none;
  filter:var(--map-filter,contrast(1.18) saturate(1.28) brightness(1.72));
}
body.news-pg .page-head{text-align:center;background:transparent;position:relative}
body.news-pg .page-head::before{
  content:"";
  position:absolute;
  inset:-24% -10%;
  z-index:-1;
  pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(26,51,80,.5) 0%,rgba(26,51,80,.3) 44%,rgba(26,51,80,.12) 68%,transparent 84%);
}
body.news-pg .page-head h1{
  font-size:clamp(3.05rem,9vw,5.7rem);
  margin-left:auto;
  margin-right:auto;
  max-width:14ch;
}
body.news-pg .listen-sweep{
  position:fixed;
  inset:-25%;
  z-index:-1;
  pointer-events:none;
  background:conic-gradient(from 0deg at 50% 34%,
    rgba(255,255,255,.16) 0deg,
    rgba(139,214,204,.07) 12deg,
    transparent 28deg,
    transparent 360deg);
  transform-origin:50% 34%;
  animation:listen-sweep 180s linear infinite;
  opacity:.5;
}
@keyframes listen-sweep{to{transform:rotate(360deg)}}
@keyframes listen-ring{
  0%{transform:scale(.18);opacity:.42}
  65%{opacity:.1}
  100%{transform:scale(7.4);opacity:0}
}
@media (prefers-reduced-motion:reduce){
  body.home .listen-sweep,
  body.home .listen-rings i,
  body.news-pg .listen-sweep{animation:none;opacity:0}
  body.home .pulse-pin.is-live .ct,
  body.home .pulse-pin.is-live .nm{animation:none}
  body.home .pulse-pin.is-live .ct{
    background:var(--sun);
    color:var(--on-sun);
    border-color:transparent;
    box-shadow:none;
  }
}
@media (max-width:639px){
  body.news-pg::before{transform:none;background-position:center}
}

/* Hide town pins with nothing on for this view. */
body.home .pulse-pin:not(.is-live){display:none}

/* Current News: pull stories up; hide empty sources/meta bars. */
body.news-pg .page-head{padding-bottom:1rem}
body.news-pg main>.section{padding-top:1.25rem;padding-bottom:clamp(2.5rem,5vw,4rem)}
body.news-pg .news-meta:empty,
body.news-pg .news-sources:empty{display:none}
body.news-pg .news-status[hidden]{display:none}

.map-area-label{
  position:fixed;
  left:clamp(.7rem,2vw,1.15rem);
  bottom:clamp(.65rem,2vw,1.05rem);
  z-index:4;
  margin:0;
  max-width:26ch;
  pointer-events:none;
  font:500 .64rem/1.35 "Source Sans 3",system-ui,sans-serif;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(201,210,218,.4);
  text-shadow:0 1px 10px rgba(19,38,61,.35);
}
body.home .pulse-clock{display:block;margin:0 0 .9rem;font-family:var(--sans,inherit);font-weight:600;font-size:clamp(1.1rem,2.2vw,1.6rem);letter-spacing:.06em;font-variant-numeric:tabular-nums;color:#A9D4EB}


/* Locked landing hero: fill viewport, no lower sections */
body.home-landing .pulse-hero-copy{
  padding-top:clamp(1.5rem,4vh,3rem);
  padding-bottom:clamp(1rem,2vh,2rem);
}
@media (min-width:64rem){
  body.home-landing .pulse-hero-copy{padding-top:2rem;padding-bottom:1.5rem}
}


/* Mobile landing pins: radar-preview.css owns the full override; keep towns unforced-hidden here for home-landing. */
@media (max-width:63.99rem){
  body.home-landing .pulse-towns{display:block}
}
