/* Folding Mountain Ultra — 2027 site
   Archivo Variable (SIL OFL) self-hosted, standing in for Acumin Variable Concept.
   Brand: black #0B0708 · offwhite #CBC8B2 · green #B6E876 */
@font-face{font-family:'Archivo Variable';font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;
  src:url(fonts/archivo-latin-wdth-normal.woff2) format('woff2-variations');
  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:'Archivo Variable';font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;
  src:url(fonts/archivo-latin-ext-wdth-normal.woff2) format('woff2-variations');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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;}

:root{
  --black:#0B0708; --off:#CBC8B2; --green:#B6E876;
  --ink-dim:rgba(203,200,178,.62); --ink-faint:rgba(203,200,178,.34);
  --rule:rgba(203,200,178,.18); --rule-dark:rgba(11,7,8,.18);
  --pad:clamp(20px,5vw,88px); --maxw:1320px; --navh:58px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:var(--navh)}
body{margin:0;background:var(--black);color:var(--off);
  font-family:'Archivo Variable','Archivo',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  font-variation-settings:'wdth' 100,'wght' 400;font-size:clamp(15px,1.02vw,17px);line-height:1.62;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
::selection{background:var(--green);color:var(--black)}

/* ---------- type ---------- */
.dsp{font-variation-settings:'wdth' 112,'wght' 420;text-transform:uppercase;line-height:.94;letter-spacing:.005em;margin:0}
h1.dsp{font-size:clamp(2.3rem,5.6vw,5.1rem)}
h2.dsp{font-size:clamp(2rem,4.6vw,4rem)}
h3.dsp{font-size:clamp(1.15rem,1.7vw,1.6rem);line-height:1.06}
h4.dsp{font-size:clamp(.95rem,1.2vw,1.15rem);line-height:1.1}
.eyebrow{font-variation-settings:'wdth' 108,'wght' 500;text-transform:uppercase;
  font-size:clamp(.62rem,.78vw,.74rem);letter-spacing:.34em;color:var(--green);margin:0 0 1.4rem}
.eyebrow.dim{color:var(--ink-faint)}
/* horse mark beside a label; takes the label's colour */
.wh{display:inline-flex;align-items:center;gap:.72em}
.wh::before{content:"";flex:0 0 auto;width:2.25em;height:2.6em;background:currentColor;
  -webkit-mask:url(img/horse-icon.png) center/contain no-repeat;
          mask:url(img/horse-icon.png) center/contain no-repeat}
.card .idx.wh{gap:.66em}
.lede{font-size:clamp(1.05rem,1.45vw,1.35rem);line-height:1.55;color:var(--off);max-width:60ch}
p{margin:0 0 1.1em;max-width:68ch;color:var(--ink-dim)}
p strong{color:var(--off);font-variation-settings:'wght' 600}
.num{font-variation-settings:'wdth' 108,'wght' 500;font-variant-numeric:tabular-nums}
.mono{font-variant-numeric:tabular-nums;font-variation-settings:'wdth' 106,'wght' 500}

/* ---------- layout ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.wide{max-width:1560px}
section{position:relative}
.sec{padding:clamp(64px,9vw,138px) 0}
.sec-s{padding:clamp(44px,6vw,88px) 0}
.light{background:var(--off);color:var(--black)}
.light p{color:rgba(11,7,8,.68)}
.light p strong{color:var(--black)}
.light .eyebrow{color:rgba(11,7,8,.5)}
.light .eyebrow.g{color:#5f8a1f}
.light .lede{color:var(--black)}
.topo{position:relative;overflow:hidden}
.topo::before{content:'';position:absolute;inset:-10%;background:url('topo.svg') center/1100px repeat;opacity:.13;pointer-events:none}
.topo:not(.light)::before{filter:invert(1);opacity:.085}
.topo>*{position:relative;z-index:1}
.rule{height:1px;background:var(--rule);border:0;margin:0}
.light .rule{background:var(--rule-dark)}
.center{text-align:center}
.center p,.center .lede{margin-left:auto;margin-right:auto}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;align-items:center;justify-content:space-between;
  gap:20px;padding:12px var(--pad);background:rgba(11,7,8,0);backdrop-filter:blur(0px);
  transition:background .35s ease,backdrop-filter .35s ease,border-color .35s;border-bottom:1px solid transparent}
.nav.stuck,.nav.solid{background:rgba(11,7,8,.92);backdrop-filter:blur(14px);border-bottom-color:var(--rule)}
.nav .brand{display:flex;align-items:center;flex:0 0 auto}
.nav .brand img{height:30px;width:auto}
.navlinks{display:flex;gap:22px;align-items:center}
.navlinks a{text-decoration:none;text-transform:uppercase;font-size:.67rem;letter-spacing:.19em;
  font-variation-settings:'wdth' 106,'wght' 500;color:var(--ink-dim);transition:color .2s;white-space:nowrap}
.navlinks a:hover{color:var(--green)}
.navlinks a.on{color:var(--off)}
.navlinks a.btn{color:var(--black)}
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px;margin:-8px}
.burger span{display:block;width:22px;height:1.5px;background:var(--off);margin:5px 0;transition:.25s}
.nav.open .burger span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav.open .burger span:nth-child(2){opacity:0}
.nav.open .burger span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
@media(max-width:1040px){
  .nav{background:rgba(11,7,8,.92);backdrop-filter:blur(14px);border-bottom-color:var(--rule)}
  .burger{display:block;order:3}
  .navlinks{position:fixed;inset:var(--navh) 0 auto 0;flex-direction:column;align-items:flex-start;gap:0;
    background:rgba(11,7,8,.985);backdrop-filter:blur(18px);padding:8px var(--pad) 26px;
    border-bottom:1px solid var(--rule);transform:translateY(-8px);opacity:0;pointer-events:none;transition:.22s}
  .nav.open .navlinks{transform:none;opacity:1;pointer-events:auto}
  .navlinks a{padding:15px 0;font-size:.82rem;letter-spacing:.22em;width:100%;border-bottom:1px solid var(--rule)}
  .navlinks a.btn{margin-top:18px;border-bottom:0;width:auto}
  .nav .brand img{height:24px}
}
.btn{display:inline-block;text-decoration:none;text-transform:uppercase;font-size:.7rem;letter-spacing:.2em;
  font-variation-settings:'wdth' 106,'wght' 600;background:var(--green);color:var(--black);padding:11px 20px;
  border:0;cursor:pointer;transition:transform .18s ease,filter .18s ease;font-family:inherit}
.btn:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn.ghost{background:transparent;color:var(--off);border:1px solid var(--rule)}
.light .btn.ghost{color:var(--black);border-color:var(--rule-dark)}
.btn.ghost:hover{border-color:var(--green);color:var(--green)}
.btn.lg{padding:15px 30px;font-size:.76rem}
.btn[disabled]{opacity:.45;pointer-events:none}
.btnrow{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;align-items:center}
@media(max-width:520px){.btnrow{flex-direction:column}.btnrow .btn{width:100%;max-width:340px;text-align:center}}


/* ---------- hero ---------- */
.hero{min-height:100svh;position:relative;display:flex;align-items:flex-end;overflow:hidden}
.hero.short{min-height:74svh}
.hero video,.hero .fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero::after{content:'';position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(11,7,8,.66) 0%,rgba(11,7,8,.16) 30%,rgba(11,7,8,.52) 66%,rgba(11,7,8,.95) 100%);pointer-events:none}
.hero .wrap{position:relative;z-index:2;width:100%;padding-bottom:clamp(44px,7vw,86px);padding-top:110px}
.hero h1{max-width:16ch;text-shadow:0 2px 40px rgba(11,7,8,.55)}
.hero .lede{margin-top:1.5rem;text-shadow:0 1px 24px rgba(11,7,8,.7)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:2.1rem}
.hero-meta{display:flex;flex-wrap:wrap;gap:clamp(16px,3vw,42px);margin-top:2.4rem;padding-top:1.3rem;
  border-top:1px solid var(--rule);font-size:.71rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ink-faint);font-variation-settings:'wdth' 106,'wght' 500}
.scrollcue{position:absolute;left:50%;bottom:18px;z-index:3;transform:translateX(-50%);
  font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-faint);animation:bob 2.4s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,6px)}}

/* ---------- stat bar ---------- */
.proof{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:#0d0a0b}
.proof-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.proof-cell{padding:clamp(22px,3vw,36px) clamp(14px,2vw,26px);border-right:1px solid var(--rule)}
.proof-cell:last-child{border-right:0}
.proof-cell .v{font-size:clamp(1.5rem,2.5vw,2.3rem);color:var(--green);line-height:1;
  font-variation-settings:'wdth' 110,'wght' 500;font-variant-numeric:tabular-nums;white-space:nowrap}
.proof-cell .k{margin-top:.65rem;font-size:.63rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ink-faint);line-height:1.5;font-variation-settings:'wdth' 106,'wght' 500}

/* ---------- split / bleed / grids ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;gap:0}
.split.pad>div{padding:clamp(40px,6vw,96px) var(--pad)}
.split-img{position:relative;min-height:clamp(340px,52vw,720px)}
.split-img img,.split-img video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.split>*{min-width:0}
.split-txt{display:flex;flex-direction:column;justify-content:center}
@media(max-width:880px){.split{grid-template-columns:1fr}.split-img{min-height:60vw}.split.rev>.split-img{order:-1}}
.bleed{position:relative;height:clamp(360px,62vh,760px);overflow:hidden}
.bleed img,.bleed video{width:100%;height:100%;object-fit:cover}
.bleed .cap{pointer-events:auto;position:absolute;left:var(--pad);bottom:clamp(20px,3vw,36px);right:var(--pad);z-index:2;
  font-size:.67rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(203,200,178,.82);
  text-shadow:0 1px 20px rgba(11,7,8,.9);font-variation-settings:'wdth' 106,'wght' 500}
.bleed::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 55%,rgba(11,7,8,.82) 100%)}
.gal{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(8px,1vw,14px)}
.gal figure{margin:0;position:relative;overflow:hidden}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.3,1)}
.gal figure:hover img{transform:scale(1.035)}
.g3{grid-column:span 3}.g4{grid-column:span 4}.g5{grid-column:span 5}.g6{grid-column:span 6}
.g7{grid-column:span 7}.g8{grid-column:span 8}.g9{grid-column:span 9}.g12{grid-column:span 12}
.h-s{height:clamp(180px,22vw,290px)}.h-m{height:clamp(230px,30vw,400px)}.h-l{height:clamp(300px,40vw,540px)}
@media(max-width:760px){.g3,.g4,.g5,.g6,.g7,.g8,.g9{grid-column:span 12}.h-s,.h-m,.h-l{height:clamp(220px,58vw,340px)}}

/* ---------- cards ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
@media(min-width:960px){.cards.c3{grid-template-columns:repeat(3,1fr)}.cards.c4{grid-template-columns:repeat(4,1fr)}}
.light .cards{background:var(--rule-dark);border-color:var(--rule-dark)}
.card{background:var(--black);padding:clamp(22px,2.5vw,34px);display:flex;flex-direction:column;gap:.85rem}
.light .card{background:var(--off)}
.card .idx{font-size:.63rem;letter-spacing:.24em;color:var(--green);font-variation-settings:'wdth' 106,'wght' 600}
.light .card .idx{color:#5f8a1f}
.card p{margin:0;font-size:.94rem}
.card .meta{font-size:.63rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);
  margin-top:auto;padding-top:.6rem;font-variation-settings:'wdth' 106,'wght' 500}
.light .card .meta{color:rgba(11,7,8,.45)}

/* ---------- tables ---------- */
table.t{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
table.t th{text-align:left;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);
  font-variation-settings:'wdth' 106,'wght' 600;padding:0 14px 12px 0;border-bottom:1px solid var(--rule);white-space:nowrap}
table.t td{padding:13px 14px 13px 0;border-bottom:1px solid var(--rule);font-size:.92rem;color:var(--ink-dim)}
table.t td:first-child{color:var(--off);font-variation-settings:'wght' 500}
table.t tr:last-child td{border-bottom:0}
.light table.t th{color:rgba(11,7,8,.5);border-bottom-color:var(--rule-dark)}
.light table.t td{color:rgba(11,7,8,.7);border-bottom-color:var(--rule-dark)}
.light table.t td:first-child{color:var(--black)}
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.t .g{color:var(--green)!important}
.light .t .g{color:#4f7a12!important}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(16px);transition:opacity .8s cubic-bezier(.2,.7,.3,1),transform .8s cubic-bezier(.2,.7,.3,1)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1!important;transform:none!important}.scrollcue{animation:none}}

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--rule);padding:clamp(48px,6vw,86px) 0 34px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:clamp(24px,3vw,48px)}
@media(max-width:820px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr}}
.foot h5{font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);
  margin:0 0 1.1rem;font-variation-settings:'wdth' 106,'wght' 600}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{margin-bottom:.55rem}
.foot a{text-decoration:none;color:var(--ink-dim);font-size:.9rem;transition:color .2s}
.foot a:hover{color:var(--green)}
.foot .logo{height:34px;width:auto;margin-bottom:1.2rem}
.foot-base{margin-top:clamp(38px,5vw,64px);padding-top:22px;border-top:1px solid var(--rule);
  display:flex;flex-wrap:wrap;gap:14px 30px;justify-content:space-between;
  font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}
.sponsorstrip{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(24px,3.6vw,58px)}
.sponsorstrip img{height:clamp(26px,2.6vw,38px);width:auto;opacity:.6;transition:opacity .25s;filter:grayscale(1)}
.sponsorstrip img:hover{opacity:1;filter:none}
.sponsorstrip.big img{height:clamp(34px,3.6vw,52px)}

/* ---------- misc ---------- */
.notice{border:1px solid var(--rule);border-left:2px solid var(--green);padding:18px 22px;margin:0 0 1.4rem;max-width:68ch}
.notice p{margin:0;font-size:.92rem}
.light .notice{border-color:var(--rule-dark);border-left-color:#7aa32c}
.pill{display:inline-block;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;padding:5px 10px;
  border:1px solid var(--rule);color:var(--ink-faint);font-variation-settings:'wdth' 106,'wght' 600}
.pill.g{border-color:var(--green);color:var(--green)}
.linklist{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.linklist a{display:flex;align-items:center;justify-content:space-between;gap:20px;text-decoration:none;
  padding:17px 0;border-bottom:1px solid var(--rule);transition:color .2s,padding .25s}
.linklist a:hover{color:var(--green);padding-left:8px}
.linklist .l{font-variation-settings:'wdth' 106,'wght' 500;text-transform:uppercase;letter-spacing:.1em;font-size:.86rem}
.linklist .r{font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);white-space:nowrap}
.linklist a:hover .r{color:var(--green)}
.light .linklist,.light .linklist a{border-color:var(--rule-dark)}

/* ================= MAP ================= */
.fmumap{position:relative;overflow:hidden;background:#12100f;touch-action:none;cursor:grab;
  height:clamp(420px,58vh,700px);border:1px solid var(--rule)}
.fmumap.fm-dragging{cursor:grabbing}
.fm-tiles,.fm-marks,.fm-tint{position:absolute;inset:0}
.fm-tiles{z-index:0}
.fm-tile{position:absolute;top:0;left:0;width:256px;height:256px;opacity:0;transition:opacity .35s;
  will-change:transform;user-select:none;-webkit-user-drag:none}
.fm-tile.on{opacity:1}
.fm-tint{z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(11,7,8,.42),rgba(11,7,8,.14) 40%,rgba(11,7,8,.5));
  mix-blend-mode:multiply}
.fmumap.fm-light .fm-tint{background:linear-gradient(180deg,rgba(11,7,8,.16),rgba(11,7,8,.04) 40%,rgba(11,7,8,.2))}
.fm-svg{position:absolute;inset:0;z-index:2;pointer-events:none}
.fm-marks{z-index:3;pointer-events:none}
.fm-mark{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;cursor:pointer;
  width:30px;height:34px;display:grid;place-items:center;transition:filter .2s}
.fm-mark .hex{position:absolute;inset:0;background:var(--green);
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);
  transition:transform .2s cubic-bezier(.2,.7,.3,1),background .2s}
.fm-mark .lbl{position:relative;z-index:1;font:600 11px/1 'Archivo Variable',system-ui,sans-serif;
  letter-spacing:.02em;color:#0B0708;font-variant-numeric:tabular-nums;pointer-events:none}
.fm-mark.term .hex{background:var(--off)}
.fm-mark:hover .hex,.fm-mark.act .hex{transform:scale(1.28)}
.fm-mark.act .hex{background:#fff}
.fm-mark::after{content:'';position:absolute;inset:-11px;border-radius:50%;
  border:1px solid rgba(182,232,118,.0);transition:border-color .2s}
.fm-mark:hover::after,.fm-mark.act::after{border-color:rgba(182,232,118,.55)}
.fm-ghost{position:absolute;z-index:4;width:13px;height:13px;transform:translate(-50%,-50%);
  border-radius:50%;background:#fff;box-shadow:0 0 0 3px rgba(11,7,8,.75),0 0 18px rgba(255,255,255,.6);
  pointer-events:none;opacity:0;transition:opacity .18s}
.fm-ghost.on{opacity:1}
.fm-ui{position:absolute;z-index:6;right:12px;top:12px;display:flex;flex-direction:column;gap:6px}
.fm-btn{width:34px;height:34px;background:rgba(11,7,8,.78);backdrop-filter:blur(8px);color:var(--off);
  border:1px solid var(--rule);cursor:pointer;font:400 17px/1 system-ui;display:grid;place-items:center;
  transition:.18s;padding:0}
.fm-btn:hover{border-color:var(--green);color:var(--green)}
.fm-fit{font-size:12px}
.fm-layers{position:absolute;z-index:6;left:12px;top:12px;display:flex;gap:0;border:1px solid var(--rule);
  background:rgba(11,7,8,.78);backdrop-filter:blur(8px)}
.fm-lbtn{background:none;border:0;border-right:1px solid var(--rule);color:var(--ink-dim);cursor:pointer;
  padding:9px 14px;font:600 .6rem/1 'Archivo Variable',system-ui,sans-serif;letter-spacing:.18em;
  text-transform:uppercase;transition:.18s}
.fm-lbtn:last-child{border-right:0}
.fm-lbtn.on{background:var(--green);color:var(--black)}
.fm-lbtn:not(.on):hover{color:var(--off)}
.fm-attr{position:absolute;z-index:6;right:0;bottom:0;background:rgba(11,7,8,.72);color:rgba(203,200,178,.55);
  font:400 9px/1.5 system-ui,sans-serif;padding:4px 8px;letter-spacing:.02em;max-width:70%;text-align:right}
.fm-attr a{color:inherit}
.fm-hint{position:absolute;z-index:5;left:50%;bottom:14px;transform:translateX(-50%);
  background:rgba(11,7,8,.8);backdrop-filter:blur(8px);border:1px solid var(--rule);
  padding:7px 14px;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);
  pointer-events:none;transition:opacity .3s;white-space:nowrap}
.fmumap.fm-active .fm-hint{opacity:0}
@media(max-width:620px){.fm-hint{display:none}.fm-layers{left:8px;top:8px}.fm-ui{right:8px;top:8px}}

/* ---- station card ---- */
.stcard{position:absolute;z-index:8;width:min(320px,78vw);background:rgba(11,7,8,.94);
  backdrop-filter:blur(14px);border:1px solid var(--rule);border-top:2px solid var(--green);
  padding:18px 20px 16px;pointer-events:none;opacity:0;transform:translateY(6px);
  transition:opacity .18s,transform .18s}
.stcard.on{opacity:1;transform:none}
.stcard .c-code{font:600 .6rem/1 'Archivo Variable',system-ui;letter-spacing:.24em;text-transform:uppercase;color:var(--green)}
.stcard h5{margin:.55rem 0 .1rem;font-variation-settings:'wdth' 110,'wght' 450;text-transform:uppercase;
  font-size:1.12rem;line-height:1.02;letter-spacing:.01em}
.stcard .c-sub{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}
.stcard .c-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0 12px;
  padding:12px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.stcard .c-stats div{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);line-height:1.5}
.stcard .c-stats b{display:block;font-size:1.02rem;letter-spacing:0;text-transform:none;color:var(--off);
  font-variation-settings:'wdth' 108,'wght' 500;font-variant-numeric:tabular-nums;margin-bottom:2px}
.stcard .c-stats b.up{color:var(--green)}
.stcard .c-body{font-size:.84rem;line-height:1.55;color:var(--ink-dim);margin:0}
.stcard .c-tag{display:inline-block;margin:10px 6px 0 0;font-size:.55rem;letter-spacing:.18em;
  text-transform:uppercase;padding:4px 8px;border:1px solid var(--rule);color:var(--ink-faint)}
.stcard .c-tag.hot{border-color:var(--green);color:var(--green)}

/* ---- elevation profile ---- */
.prof{position:relative;background:#0d0a0b;border:1px solid var(--rule);border-top:0;
  padding:22px 0 0;touch-action:pan-y}
.prof svg{display:block;width:100%;height:clamp(190px,25vh,290px)}
.prof .p-area{fill:url(#pgrad)}
.prof .p-line{fill:none;stroke:var(--green);stroke-width:1.6;stroke-linejoin:round}
.prof .p-grid{stroke:rgba(203,200,178,.09);stroke-width:1}
.prof .p-ax{fill:rgba(203,200,178,.4);font:500 9px/1 'Archivo Variable',system-ui;letter-spacing:.1em}
.prof .p-stick{stroke:rgba(203,200,178,.3);stroke-width:1;stroke-dasharray:2 3}
.prof .p-shex{fill:var(--green)}
.prof .p-slbl{fill:rgba(203,200,178,.72);font:600 8.5px/1 'Archivo Variable',system-ui;letter-spacing:.12em}
.prof .p-cross{stroke:#fff;stroke-width:1;opacity:0}
.prof .p-dot{fill:#fff;opacity:0}
.prof.hot .p-cross,.prof.hot .p-dot{opacity:1}
.prof-read{position:absolute;top:14px;left:16px;display:flex;gap:22px;pointer-events:none;
  font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}
.prof-read b{display:block;color:var(--off);font-size:.98rem;letter-spacing:0;text-transform:none;
  font-variation-settings:'wdth' 108,'wght' 500;font-variant-numeric:tabular-nums}
.prof-read .g{color:var(--green)}
@media(max-width:620px){.prof-read{gap:14px;font-size:.55rem}}

/* ---- gallery ---- */
.ggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px}
@media(max-width:640px){.ggrid{grid-template-columns:repeat(2,1fr);gap:4px}}
.gcell{position:relative;padding-top:130%;overflow:hidden;background:#151212;border:0;cursor:pointer;display:block}
.gcell img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;
  transition:opacity .5s,transform .7s cubic-bezier(.2,.7,.3,1)}
.gcell img.on{opacity:1}
.gcell:hover img{transform:scale(1.05)}
.lbox{position:fixed;inset:0;z-index:900;background:rgba(11,7,8,.97);display:none;
  align-items:center;justify-content:center}
.lbox.on{display:flex}
.lbox img{max-width:94vw;max-height:86vh;object-fit:contain;user-select:none}
.lbox .lb-btn{position:absolute;background:rgba(11,7,8,.6);border:1px solid var(--rule);color:var(--off);
  width:46px;height:46px;display:grid;place-items:center;cursor:pointer;font-size:19px;transition:.18s;padding:0}
.lbox .lb-btn:hover{border-color:var(--green);color:var(--green)}
.lbox .lb-prev{left:16px;top:50%;transform:translateY(-50%)}
.lbox .lb-next{right:16px;top:50%;transform:translateY(-50%)}
.lbox .lb-close{right:16px;top:16px}
.lbox .lb-meta{position:absolute;left:0;right:0;bottom:14px;text-align:center;
  font-size:.63rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint)}
@media(max-width:640px){.lbox .lb-prev{left:6px}.lbox .lb-next{right:6px}.lbox .lb-btn{width:38px;height:38px}}

/* ---- planner ---- */
.plan-head{display:grid;grid-template-columns:1fr auto;gap:clamp(20px,3vw,50px);align-items:end}
@media(max-width:760px){.plan-head{grid-template-columns:1fr}}
.tabs{display:inline-flex;border:1px solid var(--rule)}
.tab{background:none;border:0;border-right:1px solid var(--rule);color:var(--ink-dim);cursor:pointer;
  padding:13px 24px;font:600 .68rem/1 'Archivo Variable',system-ui;letter-spacing:.2em;
  text-transform:uppercase;transition:.18s}
.tab:last-child{border-right:0}
.tab.on{background:var(--green);color:var(--black)}
.tab:not(.on):hover{color:var(--off)}
.slider{width:100%;-webkit-appearance:none;appearance:none;background:transparent;margin:26px 0 6px}
.slider::-webkit-slider-runnable-track{height:2px;background:var(--rule)}
.slider::-moz-range-track{height:2px;background:var(--rule)}
.slider::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;background:var(--green);
  margin-top:-9px;cursor:grab;border:0;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.slider::-moz-range-thumb{width:20px;height:20px;background:var(--green);border:0;cursor:grab;
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.slider:active::-webkit-slider-thumb{cursor:grabbing}
.bigtime{font-size:clamp(2.6rem,6.5vw,5rem);line-height:.92;color:var(--green);
  font-variation-settings:'wdth' 110,'wght' 460;font-variant-numeric:tabular-nums}
.ticks{display:flex;justify-content:space-between;font-size:.6rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-faint);margin-top:2px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.chip{background:none;border:1px solid var(--rule);color:var(--ink-dim);cursor:pointer;padding:8px 13px;
  font:600 .6rem/1 'Archivo Variable',system-ui;letter-spacing:.16em;text-transform:uppercase;transition:.18s}
.chip:hover{border-color:var(--green);color:var(--green)}
.fm-mark.wide{width:44px}
.fm-mark.wide .hex{clip-path:polygon(18% 0,82% 0,100% 50%,82% 100%,18% 100%,0 50%)}
.fm-mark.wide .lbl{font-size:10px;letter-spacing:.04em}
.stcard .c-tabs{display:flex;gap:0;margin:-4px 0 12px;border-bottom:1px solid var(--rule)}
.stcard .c-tab{background:none;border:0;border-bottom:2px solid transparent;color:var(--ink-faint);
  cursor:pointer;padding:6px 10px 7px;font:600 .58rem/1 'Archivo Variable',system-ui;
  letter-spacing:.16em;text-transform:uppercase;transition:.16s}
.stcard .c-tab.on{color:var(--green);border-bottom-color:var(--green)}
.stcard .c-tab:not(.on):hover{color:var(--off)}

/* ---- turnaround + POI markers ---- */
.fm-mark.turn .hex{background:var(--green)}
.fm-mark .uturn{position:absolute;right:-9px;top:-11px;width:17px;height:17px;background:var(--black);
  border:1px solid var(--green);border-radius:50%;display:grid;place-items:center;pointer-events:none}
.fm-mark .uturn svg{width:11px;height:11px;fill:none;stroke:var(--green);stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.fm-mark.poi{width:40px;height:36px}
.fm-mark.poi img{width:40px;height:auto;filter:drop-shadow(0 2px 8px rgba(11,7,8,.9))}
.fm-mark.poi .ring{position:absolute;inset:-9px;border-radius:50%;border:1px solid rgba(182,232,118,0);
  transition:border-color .2s,transform .2s}
.fm-mark.poi:hover .ring,.fm-mark.poi.act .ring{border-color:rgba(182,232,118,.75);transform:scale(1.08)}
.fm-mark.poi::after{display:none}
.fm-mark.poi:hover img,.fm-mark.poi.act img{transform:scale(1.12)}
.fm-mark.poi img{transition:transform .2s cubic-bezier(.2,.7,.3,1)}
.stcard.turn{border-top-color:var(--green)}
.stcard .c-hat{margin:-2px 0 12px}
.stcard .c-hat img{width:56px;height:auto}
.stcard .c-warn{margin:10px 0 0;padding:9px 12px;border-left:2px solid var(--green);
  background:rgba(182,232,118,.07);font-size:.8rem;line-height:1.5;color:var(--off)}
.prof .p-stick.turn{stroke:rgba(182,232,118,.45)}
.prof .p-turn{fill:var(--black);stroke:var(--green);stroke-width:1.5}
.prof .p-uturn{fill:none;stroke:var(--green);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.prof .p-slbl.turn{fill:var(--green)}

/* ================= EDIT MODE ================= */
[data-editing] .ed-text{outline:1px dashed rgba(182,232,118,.38);outline-offset:3px;border-radius:1px}
[data-editing] .ed-text:hover{outline-color:rgba(182,232,118,.7)}
[data-editing] .ed-text:focus{outline:1px solid var(--green);outline-offset:3px;background:rgba(182,232,118,.06)}
[data-editing] .ed-img{outline:2px dashed rgba(182,232,118,.45);outline-offset:-2px;cursor:grab;-webkit-user-drag:none;user-select:none;touch-action:none}
[data-editing] .ed-img:active{cursor:grabbing}
[data-editing] .ed-img:hover{outline:2px solid var(--green);outline-offset:-2px}
[data-editing] a{cursor:default}
#editbar{position:fixed;left:0;right:0;bottom:0;z-index:9990;background:#0B0708;
  border-top:1px solid var(--green);padding:12px 18px;display:flex;gap:16px;align-items:center;
  flex-wrap:wrap;font:500 12px/1.4 'Archivo Variable',system-ui,sans-serif;color:var(--off);letter-spacing:.06em}
#editbar strong{color:var(--green);letter-spacing:.2em;text-transform:uppercase;font-weight:600}
#editbar .ed-hint{opacity:.62}
#editbar .ed-count{opacity:.4;margin-left:auto;white-space:nowrap}
#editbar button{background:var(--green);color:#0B0708;border:0;padding:10px 17px;cursor:pointer;
  font:600 11px/1 'Archivo Variable',system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase}
#editbar #edOff{background:transparent;color:var(--off);border:1px solid rgba(203,200,178,.3)}
#imgpick{position:fixed;inset:0;z-index:9995;background:rgba(11,7,8,.9);display:none;
  align-items:center;justify-content:center;padding:3vh 3vw}
#imgpick.on{display:flex}
.ip-box{background:#0d0a0b;border:1px solid var(--rule);width:min(1100px,96vw);height:min(78vh,860px);
  display:flex;flex-direction:column}
.ip-head{display:flex;align-items:center;gap:16px;padding:14px 16px;border-bottom:1px solid var(--rule);flex-wrap:wrap}
.ip-head strong{font:600 11px/1 'Archivo Variable',system-ui;letter-spacing:.22em;text-transform:uppercase;color:var(--green)}
.ip-tabs{display:flex;border:1px solid var(--rule)}
.ip-tab{background:none;border:0;border-right:1px solid var(--rule);color:var(--ink-dim);cursor:pointer;
  padding:8px 14px;font:600 10px/1 'Archivo Variable',system-ui;letter-spacing:.16em;text-transform:uppercase}
.ip-tab:last-child{border-right:0}
.ip-tab.on{background:var(--green);color:var(--black)}
.ip-search{flex:1 1 180px;background:transparent;border:1px solid var(--rule);color:var(--off);
  padding:9px 12px;font:500 11px/1 'Archivo Variable',system-ui;letter-spacing:.1em}
.ip-x{background:none;border:1px solid var(--rule);color:var(--off);width:32px;height:32px;cursor:pointer;font-size:13px}
.ip-x:hover{border-color:var(--green);color:var(--green)}
.ip-grid{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:5px;padding:14px}
.ip-cell{position:relative;display:block;aspect-ratio:1/1.18;min-height:120px;border:0;padding:0;background:#151212;cursor:pointer;overflow:hidden}
.ip-cell img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .3s}
.ip-cell:hover img{transform:scale(1.06)}
.ip-cell:hover{outline:2px solid var(--green);outline-offset:-2px}

/* ---- merch cards ---- */
.card.product .p-img{height:clamp(240px,28vw,380px);overflow:hidden;background:#fff}
.card.product .p-img img{width:100%;height:100%;object-fit:contain;transition:transform .7s cubic-bezier(.2,.7,.3,1)}
.card.product:hover .p-img img{transform:scale(1.04)}
.card.product .p-body{padding:clamp(20px,2.3vw,30px);display:flex;flex-direction:column;gap:.55rem;flex:1}
.card.product .price{color:var(--green);margin-top:.2rem;padding-top:0}
.card.product .buy{margin-top:auto;padding-top:.9rem}

/* ---- instagram strip ---- */
.igstrip{display:flex;flex-direction:column;gap:clamp(6px,.8vw,12px)}
.mq{overflow:hidden;position:relative;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.mq-row{display:flex;gap:clamp(6px,.8vw,12px);width:max-content;animation:mqslide linear infinite;will-change:transform}
.mq-row.rev{animation-direction:reverse}
.mq:hover .mq-row{animation-play-state:paused}
@keyframes mqslide{from{transform:translate3d(0,0,0)}to{transform:translate3d(var(--mq,-50%),0,0)}}
.mq-cell{flex:0 0 auto;width:clamp(132px,15vw,212px);aspect-ratio:1;overflow:hidden;display:block;
  background:#151212;position:relative}
.mq-cell img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.3,1),filter .3s}
.mq-cell:hover img{transform:scale(1.06)}
.light .mq-cell{background:#c0bda6}
@media(prefers-reduced-motion:reduce){
  .mq-row{animation:none}
  .mq{overflow-x:auto;-webkit-overflow-scrolling:touch}
}

/* ================= THE LANDING venue map ================= */
#landingMap{height:clamp(460px,68vh,760px)}
.lm-pin{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:7px;
  pointer-events:auto;cursor:pointer;white-space:nowrap;z-index:3}
.lm-pin .dot{width:13px;height:13px;flex:0 0 auto;background:var(--c);border-radius:50%;
  box-shadow:0 0 0 2px rgba(11,7,8,.85),0 2px 10px rgba(11,7,8,.7);transition:transform .18s}
.lm-pin .tag{font:600 .62rem/1 'Archivo Variable',system-ui,sans-serif;letter-spacing:.13em;
  text-transform:uppercase;color:var(--off);background:rgba(11,7,8,.72);backdrop-filter:blur(6px);
  padding:5px 8px;border:1px solid rgba(203,200,178,.16);transition:.18s;pointer-events:none}
.lm-pin:hover .dot,.lm-pin.act .dot{transform:scale(1.45)}
.lm-pin:hover .tag,.lm-pin.act .tag{color:var(--black);background:var(--c);border-color:var(--c)}
.lm-pin.k-race .dot{width:15px;height:15px}
.lm-legend{position:absolute;left:12px;bottom:12px;z-index:6;display:flex;flex-wrap:wrap;gap:4px 14px;
  background:rgba(11,7,8,.78);backdrop-filter:blur(8px);border:1px solid var(--rule);padding:9px 13px;
  font:600 .58rem/1.5 'Archivo Variable',system-ui;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim)}
.lm-legend span{display:flex;align-items:center;gap:6px}
.lm-legend i{width:8px;height:8px;border-radius:50%;display:block}
.lm-card{width:min(300px,76vw);border-top-color:var(--c,var(--green))}
.lm-card .lm-shot{margin:-18px -20px 14px;height:140px;overflow:hidden}
.lm-card .lm-shot img,.lm-card .lm-shot video{width:100%;height:100%;object-fit:cover;display:block}
.lm-card h5{margin-top:.4rem}
.lm-card .c-body{margin-top:.7rem}
@media(max-width:700px){
  .lm-pin .tag{font-size:.55rem;letter-spacing:.08em;padding:4px 6px}
  .lm-legend{left:8px;bottom:8px;font-size:.52rem;gap:3px 10px;padding:7px 10px}
}
/* placement mode */
.lm-placing .lm-pin{cursor:grab}
.lm-placing .lm-pin:active{cursor:grabbing}
.lm-panel{position:fixed;right:0;top:var(--navh);bottom:0;width:310px;z-index:9990;background:#0d0a0b;
  border-left:1px solid var(--green);padding:16px;overflow-y:auto;display:flex;flex-direction:column;gap:11px;
  font:500 12px/1.5 'Archivo Variable',system-ui,sans-serif;color:var(--off)}
.lm-panel .lp-h strong{display:block;color:var(--green);font-size:11px;letter-spacing:.22em;text-transform:uppercase}
.lm-panel .lp-h span{display:block;opacity:.5;margin-top:5px;font-size:11px}
.lm-panel label{display:block;font-size:10px;letter-spacing:.16em;text-transform:uppercase;opacity:.55}
.lm-panel input,.lm-panel textarea,.lm-panel select{width:100%;margin-top:5px;background:#151212;
  border:1px solid var(--rule);color:var(--off);padding:8px 10px;font:500 12px/1.45 inherit;letter-spacing:0;
  text-transform:none}
.lm-panel .lp-sel{margin-top:0}
.lm-panel .lp-co{font-variant-numeric:tabular-nums;font-size:11px;opacity:.5;letter-spacing:.08em}
.lm-panel .lp-btns{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:12px}
.lm-panel button{flex:1 1 46%;background:transparent;border:1px solid var(--rule);color:var(--off);
  padding:9px;cursor:pointer;font:600 10px/1 'Archivo Variable',system-ui;letter-spacing:.14em;text-transform:uppercase}
.lm-panel button:hover{border-color:var(--green);color:var(--green)}
.lm-panel .lp-dl{flex:1 1 100%;background:var(--green);color:var(--black);border-color:var(--green)}
@media(max-width:820px){.lm-panel{position:static;width:auto;border-left:0;border-top:1px solid var(--green)}}
.lm-pin.left{flex-direction:row-reverse}
.lm-pin.nolabel .tag{opacity:0;pointer-events:none;transition:opacity .15s}
.lm-pin.nolabel:hover .tag,.lm-pin.nolabel.act .tag{opacity:1}
.lm-pin:hover,.lm-pin.act{z-index:5}
/* while placing, only the dot is a drag handle — a neighbouring label must never
   steal the grab — and its hit area is enlarged well beyond the visible dot */
.lm-placing .lm-pin .tag{pointer-events:none}
.lm-placing .lm-pin .dot{position:relative}
.lm-placing .lm-pin .dot::after{content:'';position:absolute;inset:-11px;border-radius:50%}
.lm-placing .lm-pin.nolabel .tag{opacity:.45}
.lm-pin{touch-action:none}
.lm-placing .lm-pin .dot{box-shadow:0 0 0 2px rgba(11,7,8,.85),0 0 0 4px rgba(182,232,118,.5),0 2px 10px rgba(11,7,8,.7)}
.lm-placing .lm-pin.act .dot{box-shadow:0 0 0 2px rgba(11,7,8,.85),0 0 0 5px var(--green),0 2px 10px rgba(11,7,8,.7)}

/* wide horizontal lockup in the nav and footer */
.nav .brand img{height:auto;width:clamp(196px,18vw,272px)}
@media(max-width:1040px){.nav .brand img{width:172px}}
.foot .logo{height:auto;width:clamp(210px,19vw,285px);margin-bottom:1.3rem}
.hero-logo{display:block}
@media(max-width:900px){.hero-logo{display:block;width:min(72vw,330px)!important}}
/* the venue card is read-only — never let it intercept a click meant for a pin */
.lm-card{pointer-events:none!important}
.lm-placing .lm-card{display:none}
.lm-placing .lm-pin{z-index:7}
.lm-banner{position:absolute;left:50%;top:12px;transform:translateX(-50%);z-index:8;
  background:rgba(11,7,8,.9);backdrop-filter:blur(8px);border:1px solid var(--green);
  padding:8px 15px;font:500 .64rem/1 'Archivo Variable',system-ui;letter-spacing:.1em;
  color:var(--ink-dim);white-space:nowrap;pointer-events:none}
.lm-banner strong{color:var(--green);letter-spacing:.2em;text-transform:uppercase;margin-right:9px}
@media(max-width:700px){.lm-banner{font-size:.55rem;padding:6px 10px;white-space:normal;max-width:88%;text-align:center}}
.lm-panel.with-editbar{bottom:70px}
.lm-pin .tag{transform:translateY(var(--dy,0))}
.lm-pin .tag::before{content:'';position:absolute;left:-11px;top:50%;width:11px;height:1px;
  background:rgba(203,200,178,.35);pointer-events:none}
.lm-pin.left .tag::before{left:auto;right:-11px}
.lm-pin .tag{position:relative}

/* ---- pin geometry, corrected ----------------------------------------------
   The pin is a zero-size point at the coordinate. The dot and the label are
   positioned from it absolutely, so the label's rendered box is exactly
   (x + 11, y + dy) — which is what the collision solver assumes. The earlier
   translate(-50%,-50%) centred the whole dot+label row on the point, so every
   measurement was off by half a label width. */
.lm-pin{position:absolute;width:0;height:0;transform:none;display:block;
  pointer-events:none;white-space:nowrap;z-index:3}
.lm-pin .dot{position:absolute;left:-7px;top:-7px;width:14px;height:14px;margin:0;
  pointer-events:auto;cursor:pointer;flex:none}
.lm-pin.k-race .dot{left:-8px;top:-8px;width:16px;height:16px}
.lm-pin .tag{position:absolute;left:11px;top:0;
  transform:translateY(calc(-50% + var(--dy,0px)));
  pointer-events:auto;margin:0}
.lm-pin.left .tag{left:auto;right:11px}
.lm-pin .tag::before{content:'';position:absolute;left:-11px;right:auto;top:50%;
  width:11px;height:1px;background:rgba(203,200,178,.35);pointer-events:none}
.lm-pin.left .tag::before{left:auto;right:-11px}
.lm-pin .uturn{display:none}
.lm-placing .lm-pin .tag{pointer-events:none}
.lm-pin.nolabel .tag{opacity:0}
.lm-pin.nolabel .dot:hover + .tag{opacity:1}

/* profile readout: name the station you are passing */
.prof-read .at b{color:var(--green)}
@media(max-width:620px){.prof-read{gap:12px;flex-wrap:wrap;max-width:70%}}
/* a tapped card stays open and gets a close control */
.stcard .c-x{position:absolute;right:6px;top:6px;width:28px;height:28px;background:none;
  border:0;color:var(--ink-faint);cursor:pointer;font-size:13px;line-height:1;padding:0}
.stcard .c-x:hover{color:var(--green)}

/* ---- pace planner: keep the controls in view while the chart and table update ---- */
.plan-shell{position:relative}
.plan-sticky{position:sticky;top:var(--navh);z-index:40;
  background:rgba(11,7,8,.97);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--rule);padding:14px 0 16px;margin-bottom:18px}
.plan-sticky .plan-head{align-items:center}
.plan-sticky .slider{margin:18px 0 4px}
.plan-sticky .bigtime{font-size:clamp(2rem,5vw,3.6rem)}
@media(max-width:760px){
  .plan-sticky{padding:10px 0 12px}
  .plan-sticky .plan-head{grid-template-columns:1fr auto;gap:12px}
  .plan-sticky .bigtime{font-size:clamp(1.75rem,8.5vw,2.6rem)}
  .plan-sticky .eyebrow{font-size:.55rem;margin-bottom:.3rem}
  .plan-sticky #finClock{font-size:.58rem}
  .plan-sticky .tab{padding:10px 14px;font-size:.6rem;letter-spacing:.14em}
  .plan-sticky .slider{margin:12px 0 2px}
  .plan-sticky .ticks{font-size:.52rem}
}

/* ---- station / venue cards are always dark, wherever they sit ----------------
   The Landing map lives inside a .light section, and .light sets color to the
   brand black. The card had no colour of its own, so its heading inherited the
   black and vanished against the card's dark panel. Pin the colours here so a
   card never takes its text colour from the section around it. */
.stcard{color:var(--off)}
.stcard h5{color:var(--off)}
.stcard .c-sub{color:var(--ink-faint)}
.stcard .c-body{color:var(--ink-dim)}
.stcard .c-tag{color:var(--ink-faint)}
.stcard .c-tag.hot{color:var(--green)}
.stcard .c-stats div{color:var(--ink-faint)}
.stcard .c-stats b{color:var(--off)}
.stcard .c-stats b.up{color:var(--green)}
.stcard .c-warn{color:var(--off)}
.stcard .c-tabs .c-tab{color:var(--ink-faint)}
.stcard .c-tabs .c-tab.on{color:var(--green)}
.light .stcard p{color:var(--ink-dim)}
.light .stcard p strong{color:var(--off)}
/* the photo eats a lot of a phone screen — trim it there */
@media(max-width:620px){
  .lm-card .lm-shot{height:104px}
  .lm-card{width:min(290px,80vw)}
}
/* while placing: the label is a drag handle for its own pin, same as the dot */
.lm-placing .lm-pin .tag{pointer-events:auto;cursor:grab}
.lm-placing .lm-pin:active .tag{cursor:grabbing}
.lm-placing .lm-pin.act{z-index:9}
/* armed for a click-to-place */
.fmumap.lm-armed{cursor:crosshair}
.fmumap.lm-armed .lm-banner{border-color:var(--green);background:rgba(11,7,8,.95)}
.lm-panel .lp-move{flex:1 1 100%}
.lm-panel .lp-move.on{background:var(--green);color:var(--black);border-color:var(--green)}
#editbar.unsaved{border-top-color:#e2c14e}
#editbar.unsaved strong::after{content:' · unsaved';color:#e2c14e;letter-spacing:.1em}
#editbar.saved strong::after{content:' · downloaded';color:var(--green);letter-spacing:.1em}
/* whichever pin you are actually pointing at comes to the front, so a
   neighbouring dot can never steal a grab aimed at this pin's label */
.lm-placing .lm-pin:has(.tag:hover),.lm-placing .lm-pin:has(.dot:hover){z-index:12}
/* linklist right-hand labels were --ink-faint (an off-white tint) — invisible on
   a light section. Give the light variant its own value. */
.light .linklist .r{color:rgba(11,7,8,.45)}
.light .linklist a:hover .r{color:#4f7a12}
.light .linklist a:hover{color:#4f7a12}

/* ---- the 2026 film: YouTube, but it never shows a YouTube thumbnail ----
   Our own poster covers the frame until playback starts, and the iframe is
   only created once the block scrolls into view. */
.ytfilm{position:relative;aspect-ratio:16/9;background:#0d0a0b;border:1px solid var(--rule);overflow:hidden}
.ytfilm iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.yt-poster{position:absolute;inset:0;background-size:cover;background-position:center;z-index:2;
  transition:opacity .6s ease;pointer-events:none}
.ytfilm.playing .yt-poster{opacity:0}
.yt-sound{position:absolute;right:14px;bottom:14px;z-index:3;display:inline-flex;align-items:center;gap:8px;
  background:var(--green);color:var(--black);border:0;cursor:pointer;padding:11px 18px;
  font:600 .68rem/1 'Archivo Variable',system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase;
  opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s}
.ytfilm.playing .yt-sound{opacity:1;transform:none}
.ytfilm.unmuted .yt-sound{opacity:0;pointer-events:none}
.yt-sound:hover{filter:brightness(1.08)}
.yt-sound .yt-ico{font-size:.9rem;line-height:1}
@media(max-width:620px){.yt-sound{right:8px;bottom:8px;padding:9px 13px;font-size:.6rem;letter-spacing:.12em}}

/* ---- volunteer role cards ---- */
.card.vrole .v-img{height:clamp(190px,20vw,250px);overflow:hidden}
.card.vrole .v-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.3,1)}
.card.vrole:hover .v-img img{transform:scale(1.04)}
.card.vrole .v-body{padding:clamp(20px,2.3vw,30px);display:flex;flex-direction:column;gap:.7rem;flex:1}
.card.vrole .v-body p{font-size:.9rem}

/* --- registration alert form --- */
.notifyform{display:grid;grid-template-columns:1fr 1fr;gap:12px;
  margin:2.2rem auto 0;max-width:620px;text-align:left}
.notifyform input[type=text],.notifyform input[type=email],.notifyform select{
  width:100%;background:transparent;border:1px solid rgba(11,7,8,.28);color:#0B0708;border-radius:0;
  padding:14px 16px;font:500 .8rem/1.1 inherit;letter-spacing:.16em;text-transform:uppercase;
  -webkit-appearance:none;appearance:none}
.notifyform select{background-image:linear-gradient(45deg,transparent 50%,rgba(11,7,8,.5) 50%),
  linear-gradient(135deg,rgba(11,7,8,.5) 50%,transparent 50%);
  background-position:calc(100% - 19px) 50%,calc(100% - 13px) 50%;background-size:6px 6px,6px 6px;
  background-repeat:no-repeat;padding-right:38px}
.notifyform input::placeholder{color:rgba(11,7,8,.45)}
.notifyform input:focus,.notifyform select:focus{outline:0;border-color:var(--green)}
.notifyform select,.notifyform .consent,.notifyform button{grid-column:1/-1}
.notifyform .consent{display:flex;align-items:flex-start;gap:11px;margin-top:.3rem;
  font-size:.85rem;line-height:1.45;color:rgba(11,7,8,.78);cursor:pointer}
.notifyform .consent input{flex:0 0 17px;width:17px;height:17px;margin-top:2px;accent-color:#0B0708;cursor:pointer}
.notifyform button{justify-self:center;margin-top:.5rem}
@media(max-width:560px){.notifyform{grid-template-columns:1fr}.notifyform button{width:100%}}

/* --- contact form --- */
.cform{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cform input[type=text],.cform input[type=email],.cform select,.cform textarea{
  width:100%;background:transparent;border:1px solid var(--rule);color:var(--off);border-radius:0;
  padding:14px 16px;font:500 .8rem/1.35 inherit;letter-spacing:.16em;text-transform:uppercase;
  -webkit-appearance:none;appearance:none}
.cform textarea{text-transform:none;letter-spacing:.02em;font-size:.92rem;resize:vertical;min-height:150px}
.cform select{background-image:linear-gradient(45deg,transparent 50%,rgba(203,200,178,.55) 50%),
  linear-gradient(135deg,rgba(203,200,178,.55) 50%,transparent 50%);
  background-position:calc(100% - 19px) 50%,calc(100% - 13px) 50%;background-size:6px 6px,6px 6px;
  background-repeat:no-repeat;padding-right:38px}
.cform ::placeholder{color:rgba(203,200,178,.42)}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:0;border-color:var(--green)}
.cform select,.cform textarea,.cform button{grid-column:1/-1}
.cform button{justify-self:start;margin-top:.4rem}
@media(max-width:560px){.cform{grid-template-columns:1fr}.cform button{width:100%;justify-self:stretch}}

/* --- course carousel --- */
.crsl-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;
  margin-bottom:clamp(16px,2vw,26px)}
.crsl-nav{display:flex;gap:8px;flex:0 0 auto}
.crsl-b{width:42px;height:42px;padding:0;border:1px solid var(--rule);background:transparent;
  color:var(--off);font:400 1.25rem/1 system-ui;cursor:pointer;
  transition:border-color .2s,color .2s,opacity .2s}
.crsl-b:hover{border-color:var(--green);color:var(--green)}
.crsl-b[disabled]{opacity:.28;pointer-events:none}
.light .crsl-b{color:var(--black);border-color:var(--rule-dark)}
.crsl{display:flex;gap:clamp(10px,1.2vw,16px);overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;padding-bottom:2px}
.crsl.auto{scroll-snap-type:none;scroll-behavior:auto}
.crsl.auto figure{scroll-snap-align:none}
.crsl::-webkit-scrollbar{display:none}
.crsl figure{margin:0;flex:0 0 clamp(250px,26vw,380px);scroll-snap-align:start}
.crsl figure>img,.crsl figure>video{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;background:#151212}
.crsl.sq figure{flex:0 0 clamp(230px,22vw,320px)}
.crsl.sq figure>img,.crsl.sq figure>video{aspect-ratio:1/1}
.crsl figcaption{margin-top:.75rem;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-faint);line-height:1.5}
@media(max-width:700px){.crsl figure{flex:0 0 80vw}.crsl.sq figure{flex:0 0 70vw}.crsl-nav{display:none}}


/* --- scree callout (split) --- */
.co-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(24px,3.4vw,56px);align-items:stretch;
  border:1px solid var(--rule);background:rgba(203,200,178,.035)}
.co-img{position:relative;min-height:clamp(300px,40vw,520px);overflow:hidden}
.co-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.co-txt{padding:clamp(28px,3.4vw,56px) clamp(28px,3.4vw,56px) clamp(28px,3.4vw,56px) 0;
  display:flex;flex-direction:column;justify-content:center}
.co-txt .eyebrow{color:var(--green)}
.co-txt h2{margin:.85rem 0 0}
.co-txt .lede{margin-top:1.2rem}
.co-txt>p:not(.eyebrow):not(.lede){margin-top:1.1rem;font-size:.98rem;line-height:1.7}
.co-txt .notice{margin-top:1.6rem}
.co-note{margin-top:1.7rem!important;padding-top:1.3rem;border-top:1px solid var(--rule);
  font-size:.7rem!important;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-faint);line-height:1.6}
@media(max-width:900px){
  .co-grid{grid-template-columns:1fr;gap:0}
  .co-img{min-height:62vw}
  .co-txt{padding:clamp(26px,6vw,40px)}
}

.co-stack{display:flex;flex-direction:column;gap:2px}
.co-stack>img,.co-stack>video{position:static;flex:1 1 0;min-height:0;width:100%;height:auto;
  object-fit:cover;display:block}
@media(max-width:900px){.co-stack{display:grid;grid-template-columns:1fr;gap:2px}
  .co-stack>img,.co-stack>video{aspect-ratio:3/2;height:auto}}

[data-editing] .ed-vid{outline:2px dashed rgba(182,232,118,.45);outline-offset:-2px;cursor:grab;
  -webkit-user-drag:none;user-select:none;touch-action:none}
[data-editing] .ed-vid:hover{outline:2px solid var(--green);outline-offset:-2px}
[data-editing] .ed-vid:active{cursor:grabbing}
.ip-cell.vid::after{content:'\25B6';position:absolute;left:8px;bottom:6px;z-index:2;
  font-size:10px;line-height:1;color:var(--off);text-shadow:0 1px 6px rgba(11,7,8,.9);pointer-events:none}
.ip-tab[hidden]{display:none}
