/* ============================================================
   Fairfax Sports — single-file landing page
   Brand: Inter · Fairfax Navy #001535 · Cardinal Red #D90013 ·
   Fairfax Gold #E89900 · Bone #F7F3EA · Muted #5A6478
   ============================================================ */
:root{
  --background:#ffffff; --foreground:#001535;
  --brand:#D90013;        /* Cardinal Red — CTAs, accents */
  --brand-deep:#001535;   /* Fairfax Navy — hero / stats / footer base */
  --brand-light:#E89900;  /* Fairfax Gold — rules, highlights, focus ring */
  --surface:#F7F3EA;      /* Bone — tinted surfaces */
  --surface-card:#ffffff;
  --ink:#001535; --ink-soft:#5A6478;
  --ghost:#D6DAE1;        /* oversized ghost text */
  --hairline:#E9E5DA;
  --on-brand:#ffffff;
  --radius-card:1.5rem; --radius-card-lg:2rem; --radius-pill:62.5rem;
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0}
html{font-size:16px;-webkit-text-size-adjust:100%}
@media (max-width:1920px){html{font-size:0.833333vw}}
@media (max-width:1440px){html{font-size:1.111111vw}}
@media (max-width:1024px){html{font-size:1.5625vw}}
@media (max-width:640px){html{font-size:4.444444vw}}
html.locked{position:relative;overflow:hidden;height:100%}
body{min-height:100vh;background:var(--background);color:var(--foreground);font-family:"Inter","Helvetica Neue",Arial,system-ui,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}
img,svg,video{display:block;max-width:100%}
button{cursor:pointer;font:inherit;color:inherit;background:none;border:0;padding:0}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none;padding:0}
address{font-style:normal}
:focus-visible{outline:2px solid var(--brand-light);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

main{width:100%;overflow-x:clip;padding:.5rem}
@media (min-width:640px){main{padding:.75rem}}

/* ---------- placeholders (no imagery yet) ---------- */
.ph{position:relative;overflow:hidden;background:#EDE9DE;background-image:repeating-linear-gradient(135deg,rgba(0,21,53,.07) 0 .5rem,transparent .5rem 1.1rem);border:1px dashed rgba(0,21,53,.2)}
.ph::before{content:attr(data-label);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:.9375rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:rgba(0,21,53,.5);white-space:nowrap;text-align:center}
.ph-dark{background:#0b2450;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 .5rem,transparent .5rem 1.1rem);border-color:rgba(255,255,255,.22)}
.ph-dark::before{color:rgba(255,255,255,.55)}
.ph-hero{background:radial-gradient(60% 55% at 72% 38%,rgba(217,0,19,.38),transparent 70%),radial-gradient(45% 55% at 18% 82%,rgba(232,153,0,.22),transparent 70%),#0b2450;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.045) 0 .6rem,transparent .6rem 1.4rem),radial-gradient(60% 55% at 72% 38%,rgba(217,0,19,.38),transparent 70%),radial-gradient(45% 55% at 18% 82%,rgba(232,153,0,.22),transparent 70%);border:0}
.ph-hero::before{color:rgba(255,255,255,.35);font-size:.9375rem}

/* ---------- shared type ---------- */
.lab{font-size:.9375rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase}
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.9375rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft)}
.eyebrow::before{content:"";width:.375rem;height:.375rem;border-radius:var(--radius-pill);background:var(--brand)}
.eyebrow.light{color:rgba(255,255,255,.7)}
.eyebrow.light::before{background:var(--brand-light)}
.chip{display:inline-flex;align-items:center;gap:.5rem;border-radius:var(--radius-pill);padding:.5rem 1rem;font-size:.9375rem;font-weight:600;background:var(--surface);color:var(--ink)}
.chip i{width:.4375rem;height:.4375rem;border-radius:99px;background:var(--brand);display:inline-block}
.chip-glass{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.h2{font-size:2.25rem;font-weight:600;letter-spacing:-.025em;line-height:1.06;margin-top:1rem}
@media (min-width:640px){.h2{font-size:3rem;line-height:1.02}}
.lede{font-size:1.02rem;line-height:1.6;color:var(--ink-soft)}

/* reveal primitives */
.rl{display:block}
.rl.clip{overflow:hidden;padding-bottom:.14em;margin-bottom:-.14em}
.rli{display:block;will-change:transform,opacity}
.rw{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}
.noclip .rw{overflow:visible;padding-bottom:0;margin-bottom:0}
.rwi{display:inline-block;will-change:transform,opacity}

/* ---------- buttons ---------- */
.pill{display:inline-flex;align-items:center;gap:.6rem;border-radius:var(--radius-pill);padding:.875rem 1.75rem;font-size:.95rem;font-weight:600;white-space:nowrap;transition:background .2s,color .2s,border-color .2s}
.pill svg{width:1rem;height:1rem;flex:none}
.pill-solid{background:var(--brand);color:#fff}
.pill-solid:hover{background:var(--brand-deep)}
.pill-light{background:#fff;color:var(--ink)}
.pill-light:hover{background:var(--brand);color:#fff}
.pill-ghost{border:1px solid rgba(255,255,255,.35);color:#fff}
.pill-ghost:hover{background:#fff;color:var(--ink);border-color:#fff}
.pill-outline{border:1px solid currentColor;color:var(--ink)}
.pill-outline:hover{background:var(--ink);color:#fff}
.pill[disabled]{opacity:.6;cursor:default}

.abtn{width:3rem;height:3rem;border-radius:var(--radius-pill);display:grid;place-items:center;border:1px solid var(--hairline);color:var(--ink);transition:border-color .2s,background .2s}
@media (min-width:640px){.abtn{width:3.5rem;height:3.5rem}}
.abtn:hover{border-color:var(--ink)}
.abtn.solid{background:var(--ink);border-color:var(--ink);color:#fff}
.abtn.solid:hover{background:var(--brand);border-color:var(--brand)}
.abtn .flip{display:block}
.abtn.prev .flip{transform:scaleX(-1)}
.abtn svg{width:1.25rem;height:1.25rem}

.dots{display:flex;gap:.5rem;align-items:center}
.dot{padding:.375rem}
.dot span{display:block;height:.375rem;width:.375rem;border-radius:var(--radius-pill);background:var(--ghost);transition:width .35s cubic-bezier(.16,1,.3,1),background .3s}
.dot.is-active span{width:1.25rem;background:var(--ink)}
.dots.light .dot span{background:rgba(255,255,255,.4)}
.dots.light .dot.is-active span{background:#fff}

.glass{position:absolute;left:.75rem;right:.75rem;bottom:.75rem;border-radius:.75rem;background:rgba(0,21,53,.5);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;padding:.6rem .8rem}
.glass.red{background:rgba(217,0,19,.55)}
.glass b{display:block;font-size:.9375rem;font-weight:600;line-height:1.3}
.glass span{display:block;font-size:.9375rem;opacity:.85;line-height:1.45;margin-top:.15rem}

/* ---------- header ---------- */
.hdr{position:relative;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.5rem 1.5rem 0;font-size:.9375rem;font-weight:500;color:#fff}
@media (min-width:640px){.hdr{padding:2rem 2.5rem 0}}
.hdr-nav{display:none;flex:1;gap:2rem}
@media (min-width:1024px){.hdr-nav{display:flex}}
.hdr-nav a{opacity:.9;white-space:nowrap;transition:opacity .2s}
.hdr-nav a:hover{opacity:1}
.brand{display:inline-flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;letter-spacing:-.02em;white-space:nowrap}
@media (min-width:1024px){.brand{flex:1;justify-content:center}}
.logo{height:2.4rem;width:auto;display:block}
.brand .logo{height:2.4rem}
@media (max-width:640px){.brand .logo{height:2.1rem}}
.hdr-right{display:flex;flex:1;justify-content:flex-end;align-items:center;gap:1rem}
@media (min-width:640px){.hdr-right{gap:1.25rem}}
.hdr-cta{display:none;font-weight:600;letter-spacing:.02em;text-decoration:underline transparent;text-underline-offset:.3em;transition:text-decoration-color .2s}
.hdr-cta:hover{text-decoration-color:#fff}
@media (min-width:640px){.hdr-cta{display:inline}}
.burger{width:2.5rem;height:2.5rem;border-radius:var(--radius-pill);background:rgba(255,255,255,.15);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:grid;place-content:center;gap:5px;transition:background .2s}
.burger:hover{background:rgba(255,255,255,.25)}
.burger span{display:block;width:1rem;height:1px;background:#fff}

/* ---------- hero ---------- */
.hero{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--radius-card-lg);background:var(--brand-deep);color:#fff;height:calc(100svh - 1rem);min-height:36rem;display:flex;flex-direction:column}
@media (min-width:640px){.hero{height:calc(100svh - 1.5rem)}}
.hero-plate{position:absolute;inset:0;z-index:-10;overflow:hidden}
.hero-plate-inner{position:absolute;left:0;right:0;top:-16%;height:132%;width:100%}
.hero-plate-inner .ph{position:absolute;inset:0}
.hero-grad{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,21,53,.65),rgba(0,21,53,.35),rgba(0,21,53,.78))}
.hero-title-wrap{padding:1.25rem 1.5rem 0}
@media (min-width:640px){.hero-title-wrap{padding:1.5rem 2.5rem 0}}
.hero-chip{margin-bottom:1.25rem}
.hero-title{font-size:9.4vw;font-weight:700;letter-spacing:-.03em;line-height:.95}
@media (min-width:640px){.hero-title{font-size:8.6vw}}
.hero-bottom{margin-top:auto;padding:2rem 1.5rem 2rem;display:flex;flex-direction:column;gap:1.5rem}
@media (min-width:640px){.hero-bottom{flex-direction:row;justify-content:space-between;align-items:flex-end;padding:0 2.5rem 2.5rem}}
.hero-left{max-width:44rem}
.hero-tag{font-size:2rem;font-weight:600;letter-spacing:-.025em;line-height:1.02;color:rgba(255,255,255,.9)}
.hero-sub{font-size:1.02rem;line-height:1.6;color:rgba(255,255,255,.78);max-width:38rem;margin-top:1.25rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}
.hero-right{display:flex;align-items:flex-end;gap:1rem}
.hslider{display:none;width:16rem;flex-direction:column;gap:.75rem}
@media (min-width:768px){.hslider{display:flex}}
.hslider-stage{position:relative}
.hcard{display:flex;gap:.75rem;border-radius:var(--radius-card);border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.1);padding:.75rem;box-shadow:0 20px 40px -20px rgba(0,21,53,.5);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.hcard.out{position:absolute;inset:0}
.hcard-img{width:3.5rem;height:3.5rem;flex:none;border-radius:.75rem}
.hcard-img::before{font-size:.9375rem;letter-spacing:.1em}
.hcard-tag{font-size:.9375rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--brand-light)}
.hcard-title{font-size:.9375rem;font-weight:600;line-height:1.3;margin-top:.2rem}
.hcard-cta{display:inline-block;font-size:.9375rem;margin-top:.35rem;text-decoration:underline;text-underline-offset:.25em;opacity:.85}
.hcard-cta:hover{opacity:1}
.mcard{width:100%;max-width:20rem;display:flex;gap:.75rem;align-items:stretch;border-radius:var(--radius-card);border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.1);padding:.75rem;box-shadow:0 20px 40px -20px rgba(0,21,53,.5);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
@media (min-width:640px){.mcard{max-width:15rem}}
.mcard-l{flex:1;display:flex;flex-direction:column;justify-content:space-between;gap:.75rem}
.mcard-val{font-size:1.875rem;font-weight:600;letter-spacing:-.03em;line-height:1}
.avatars{display:flex}
.avatars i{width:1.25rem;height:1.25rem;border-radius:var(--radius-pill);border:1px solid rgba(0,21,53,.4);margin-left:-.5rem}
.avatars i:first-child{margin-left:0}
.mcard-cap{font-size:.9375rem;opacity:.8;line-height:1.4}
.mcard-img{width:4rem;aspect-ratio:3/4;border-radius:.75rem;flex:none}
.mcard-img::before{font-size:.9375rem;letter-spacing:.1em;white-space:normal;width:80%}

/* ---------- trust / about ---------- */
.trust{position:relative;isolation:isolate;overflow:hidden;padding:4rem 1.5rem;background:var(--background)}
@media (min-width:640px){.trust{padding:5rem 2.5rem}}
.trust-top{position:relative;z-index:20;display:flex;flex-direction:column;gap:1.5rem}
@media (min-width:640px){.trust-top{flex-direction:row;justify-content:space-between;align-items:flex-start}}
.pct{width:7rem;height:7rem;flex:none;border-radius:var(--radius-pill);background:var(--surface);display:grid;place-content:center;text-align:center}
@media (min-width:640px){.pct{width:8rem;height:8rem}}
.pct b{font-size:1.5rem;font-weight:600;letter-spacing:-.02em;line-height:1}
.pct span{display:block;font-size:.9375rem;color:var(--ink-soft);max-width:8em;margin:.4rem auto 0;line-height:1.35}
.bcard{display:flex;gap:1rem;max-width:28rem;border-radius:var(--radius-card);background:var(--surface);padding:1.25rem}
@media (min-width:640px){.bcard{gap:1.25rem;padding:1.5rem}}
.bcard-idx{align-self:flex-start;flex:none;border-radius:.75rem;background:var(--background);padding:.5rem 1rem;font-size:1.25rem;font-weight:600;letter-spacing:-.02em}
.bcard h3{font-size:1.125rem;font-weight:600;line-height:1.3;letter-spacing:-.01em}
.bcard p{font-size:.9375rem;color:var(--ink-soft);line-height:1.6;margin-top:.5rem}
.ghost{position:relative;z-index:0;pointer-events:none;user-select:none;max-width:88rem;margin:3rem auto 0;font-size:8.2vw;font-weight:600;letter-spacing:-.035em;line-height:1.02}
.ghost-row{display:flex;justify-content:space-between;gap:1rem}
.gw{display:inline-block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em;color:var(--ghost);white-space:nowrap}
.gw.ink{color:var(--ink)}
.gwi{display:inline-block;will-change:transform,opacity}
.tcard-pos{position:relative;z-index:10;width:13rem;margin:2.5rem auto 0}
@media (min-width:640px){.tcard-pos{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:16rem;margin:0}}
.tcard-rot{position:relative;transform:rotate(6deg);aspect-ratio:3/4;border-radius:var(--radius-card);background:var(--brand-deep);overflow:hidden;box-shadow:0 30px 60px -20px rgba(0,21,53,.45)}
.tcard-layer{position:absolute;inset:0}
.tcard-layer .ph{position:absolute;inset:0;border:0}
.tcard-val{position:absolute;left:1rem;top:1rem;font-size:3rem;font-weight:600;letter-spacing:-.035em;line-height:1;color:#fff}
.trust-ctl{position:relative;z-index:20;display:flex;justify-content:space-between;align-items:center;margin-top:3rem}
@media (min-width:640px){.trust-ctl{margin-top:6rem}}

/* ---------- pillars (programs list) ---------- */
.pillars{background:var(--surface);padding:6rem 1.5rem}
@media (min-width:640px){.pillars{padding:6rem 2.5rem}}
.pillars-head{display:grid;gap:2rem;align-items:end}
@media (min-width:1024px){.pillars-head{grid-template-columns:1.1fr 1fr}}
.pillars-lede{max-width:32rem}
.pillars-lede .lede{margin-bottom:1.5rem}
.plist{margin-top:3.5rem}
.plist li{border-top:1px solid var(--hairline)}
.plist li:last-child{border-bottom:1px solid var(--hairline)}
.prow{display:block}
.prow:focus-visible{background:var(--background)}
.prow-in{display:flex;align-items:center;gap:1.5rem;padding:1.75rem 0}
.prow-idx{width:2.5rem;flex:none;font-size:.9375rem;font-weight:600;color:var(--ink-soft)}
.prow-txt{flex:1}
.prow-txt h3{font-size:1.5rem;font-weight:600;letter-spacing:-.02em;line-height:1.15}
@media (min-width:640px){.prow-txt h3{font-size:1.875rem}}
.prow-txt p{font-size:.9375rem;color:var(--ink-soft);margin-top:.35rem;line-height:1.55;max-width:38rem}
.prow-arrow{width:2.75rem;height:2.75rem;flex:none;border-radius:var(--radius-pill);border:1px solid var(--hairline);display:grid;place-items:center;color:var(--ink)}
.prow-arrow svg{width:1.1rem;height:1.1rem}
.logos{margin-top:4rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:1rem}
.logos .lab{grid-column:1/-1;color:var(--ink-soft);margin-bottom:.25rem}
.logo-ph{height:4.5rem;border-radius:.75rem;border:1px dashed rgba(0,21,53,.25);background:var(--background);display:grid;place-items:center;text-align:center;padding:0 .75rem;font-size:.9375rem;font-weight:600;color:var(--ink-soft)}

/* ---------- explore (facilities) ---------- */
.explore{background:var(--background);border-radius:var(--radius-card-lg);margin-top:-2.5rem;position:relative;padding:4rem 1.5rem 5rem}
@media (min-width:640px){.explore{padding:4rem 2.5rem 5rem}}
.explore-grid{display:grid;gap:2.5rem;align-items:end}
@media (min-width:768px){.explore-grid{grid-template-columns:1fr 1fr}}
.explore-intro{max-width:30rem}
.explore-icon{width:4.5rem;height:4.5rem;border-radius:var(--radius-card);background:var(--surface);display:grid;place-items:center;padding:.6rem}
.explore-icon img{height:100%;width:auto}
.explore-intro .h2{margin-top:1.5rem}
.explore-body{font-size:.95rem;color:var(--ink-soft);max-width:22rem;margin-top:1.5rem;line-height:1.6}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;align-items:end}
.tile:nth-child(2n){margin-bottom:2rem}
.tile-img{position:relative;aspect-ratio:3/4;border-radius:var(--radius-card);overflow:hidden;background:var(--surface)}
.tile-img .ph{position:absolute;inset:0;border:0}

/* ---------- stats ---------- */
.stats{background:var(--brand-deep);color:#fff;border-radius:var(--radius-card-lg);margin-top:.75rem;padding:5rem 1.5rem}
@media (min-width:640px){.stats{padding:5rem 2.5rem}}
.stats .lede{color:rgba(255,255,255,.7);max-width:34rem;margin-top:1.5rem}
.stat-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:2rem;row-gap:3rem;margin-top:4rem}
@media (min-width:1024px){.stat-grid{grid-template-columns:repeat(4,1fr)}}
.stat{border-top:1px solid rgba(255,255,255,.2);padding-top:1.25rem}
.stat-val{font-size:3.75rem;font-weight:600;letter-spacing:-.03em;line-height:1.05}
@media (min-width:640px){.stat-val{font-size:4.5rem}}
.stat-lab{font-size:.9375rem;color:rgba(255,255,255,.65);margin-top:.75rem}

/* ---------- principles (testimonials) ---------- */
.principles{background:var(--background);padding:5rem 1.5rem}
@media (min-width:640px){.principles{padding:6rem 2.5rem}}
.pgrid{display:grid;gap:1.25rem;margin-top:3.5rem}
@media (min-width:768px){.pgrid{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.pgrid{grid-template-columns:repeat(4,1fr)}}
.pcard{display:flex;flex-direction:column;justify-content:space-between;height:100%;min-height:18rem;border-radius:var(--radius-card);background:var(--surface);padding:1.75rem}
.pcard-q{font-size:2.25rem;line-height:1;color:var(--brand);font-weight:700}
.pcard blockquote{font-size:1.125rem;line-height:1.5;color:var(--ink);margin-top:1rem;font-weight:500;letter-spacing:-.01em}
.pcard figcaption{border-top:1px solid var(--hairline);padding-top:1rem;margin-top:1.5rem}
.pcard figcaption b{display:block;font-weight:600;font-size:1.16rem}
.pcard figcaption span{display:block;font-size:.9375rem;color:var(--ink-soft)}
.pcard.photo{padding:0;overflow:hidden;position:relative;background:var(--brand-deep)}
.pcard.photo .ph{position:absolute;inset:0;border:0}

/* ---------- explore more (events / venues / host) ---------- */
.more{background:var(--surface);border-radius:var(--radius-card-lg);margin-top:.75rem;padding:5rem 1.5rem}
@media (min-width:640px){.more{padding:6rem 2.5rem}}
.xgrid{display:grid;gap:1.25rem;margin-top:3.5rem}
@media (min-width:768px){.xgrid{grid-template-columns:repeat(3,1fr)}}
.xcard{display:flex;flex-direction:column;height:100%;border-radius:var(--radius-card);background:var(--surface-card);overflow:hidden}
.xcard-img{aspect-ratio:16/10;border:0;border-bottom:1px dashed rgba(0,21,53,.2)}
.xcard-body{padding:1.5rem;display:flex;flex-direction:column;flex:1}
.xcard-body .lab{color:var(--brand)}
.xcard-body h3{font-size:1.25rem;font-weight:600;letter-spacing:-.015em;line-height:1.25;margin-top:.75rem}
.xcard-body p{font-size:.9375rem;color:var(--ink-soft);line-height:1.6;margin-top:.75rem;flex:1}
.xlink{display:inline-flex;align-items:center;gap:.4rem;margin-top:1.25rem;font-size:.9375rem;font-weight:600}
.xlink svg{width:1rem;height:1rem}

/* ---------- footer ---------- */
.foot{background:var(--brand-deep);color:#fff;border-radius:var(--radius-card-lg);margin-top:.75rem;padding:3.5rem 1.5rem}
@media (min-width:640px){.foot{padding:4rem 2.5rem}}
.cta-band{display:flex;flex-direction:column;gap:2rem;border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:3.5rem}
@media (min-width:640px){.cta-band{flex-direction:row;justify-content:space-between;align-items:flex-end}}
.cta-title{font-size:3rem;font-weight:600;letter-spacing:-.03em;line-height:.95;margin-top:1rem}
@media (min-width:640px){.cta-title{font-size:3.75rem}}
.cta-copy{font-size:.95rem;line-height:1.6;color:rgba(255,255,255,.7);max-width:36rem;margin-top:1.25rem}
.f-giant{font-weight:600;letter-spacing:-.04em;font-size:11vw;line-height:1;margin-top:3rem}
@media (min-width:640px){.f-giant{font-size:8vw}}
.f-cols{display:grid;gap:2.5rem;padding:3rem 0 3.5rem}
@media (min-width:768px){.f-cols{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.f-brand{max-width:22rem}
.f-brand .logo{height:3rem}
.f-blurb{font-size:.9375rem;color:rgba(255,255,255,.65);margin-top:1rem;line-height:1.6}
.f-social{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-top:1.25rem;font-size:.9375rem;color:rgba(255,255,255,.8);white-space:nowrap}
.f-social a:hover{color:#fff}
.f-news{margin-top:1.5rem}
.f-news .lab{color:rgba(255,255,255,.5)}
.f-news form{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}
.f-news input{width:100%;border-radius:.75rem;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);padding:.7rem 1rem;font:inherit;font-size:.9375rem;color:#fff}
.f-news input::placeholder{color:rgba(255,255,255,.5)}
.f-news input:focus{outline:none;border-color:var(--brand-light);box-shadow:0 0 0 3px rgba(232,153,0,.25)}
.f-news .pill{align-self:flex-start;margin-top:.25rem;padding:.7rem 1.4rem;font-size:.9375rem}
.f-news-ok{font-size:.9375rem;color:var(--brand-light);margin-top:.5rem;display:none}
.f-nav h3{font-size:.9375rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.f-nav ul{margin-top:1rem;font-size:.9375rem;color:rgba(255,255,255,.8);display:flex;flex-direction:column;gap:.75rem}
.f-nav a:hover{color:#fff}
.f-nav .f-sub{margin-top:1.75rem}
.f-bottom{border-top:1px solid rgba(255,255,255,.15);padding-top:2rem;font-size:.9375rem;color:rgba(255,255,255,.6);display:flex;flex-direction:column;gap:1.25rem}
@media (min-width:640px){.f-bottom{flex-direction:row;justify-content:space-between;align-items:center}}
.f-bottom nav{display:flex;gap:1.25rem}
.f-bottom a:hover{color:#fff}

/* ---------- contact modal ---------- */
.modal{position:fixed;inset:0;z-index:90;display:flex;align-items:flex-end;justify-content:center;padding:.75rem;pointer-events:none;visibility:hidden}
.modal.open{pointer-events:auto;visibility:visible}
@media (min-width:640px){.modal{align-items:center;padding:1.5rem}}
.modal-bg{position:absolute;inset:0;background:rgba(0,21,53,.4);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.modal-panel{position:relative;width:100%;max-height:92svh;overflow-y:auto;border-radius:var(--radius-card-lg);background:var(--surface-card);padding:1.5rem;color:var(--ink);box-shadow:0 40px 80px -20px rgba(0,21,53,.5)}
@media (min-width:640px){.modal-panel{max-width:32rem;padding:2rem}}
.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.modal-title{font-size:2.25rem;font-weight:600;letter-spacing:-.025em;line-height:1.02;margin-top:.75rem}
@media (min-width:640px){.modal-title{font-size:3rem}}
.modal-sub{font-size:.9375rem;color:var(--ink-soft);line-height:1.6;margin-top:1rem}
.modal-sub a{text-decoration:underline;text-underline-offset:.2em}
.xbtn{width:2.5rem;height:2.5rem;flex:none;border-radius:var(--radius-pill);background:var(--surface);display:grid;place-items:center;transition:background .2s}
.xbtn:hover{background:var(--hairline)}
.xbtn svg{width:1.1rem;height:1.1rem}
.xbtn.onnavy{background:rgba(255,255,255,.15);color:#fff}
.xbtn.onnavy:hover{background:rgba(255,255,255,.25)}
.form{margin-top:1.75rem;display:flex;flex-direction:column;gap:1rem}
.form-row{display:grid;gap:1rem}
@media (min-width:640px){.form-row{grid-template-columns:1fr 1fr}}
.field label{display:block;font-size:.9375rem;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:var(--ink-soft);margin-bottom:.45rem}
.field input,.field textarea{width:100%;border-radius:.75rem;border:1px solid var(--hairline);background:var(--background);padding:.75rem 1rem;font:inherit;font-size:.9375rem;color:var(--ink);resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--brand-light);box-shadow:0 0 0 3px rgba(232,153,0,.25)}
.form .pill{align-self:flex-start;margin-top:.25rem}
.success{margin-top:2rem;border-radius:var(--radius-card);background:var(--surface);padding:1.5rem;text-align:center;display:none}
.success.show{display:block}
.success-ico{width:3rem;height:3rem;border-radius:var(--radius-pill);background:var(--brand);color:#fff;display:grid;place-items:center;margin:0 auto}
.success-ico svg{width:1.4rem;height:1.4rem}
.success h3{font-size:1.125rem;font-weight:600;margin-top:1rem}
.success p{font-size:.9375rem;color:var(--ink-soft);margin-top:.5rem;line-height:1.6}
.success .pill{margin-top:1.25rem}

/* ---------- menu overlay ---------- */
.menu{position:fixed;inset:0;z-index:70;display:flex;flex-direction:column;pointer-events:none;visibility:hidden}
.menu.open{pointer-events:auto;visibility:visible}
.menu-bg{position:absolute;inset:0;background:var(--brand-deep)}
.menu-panel{position:relative;height:100%;display:flex;flex-direction:column;padding:.5rem;color:#fff}
@media (min-width:640px){.menu-panel{padding:.75rem}}
.menu-inner{flex:1;display:flex;flex-direction:column;padding:1.5rem;min-height:0}
@media (min-width:640px){.menu-inner{padding:2rem 2.5rem}}
.menu-top{display:flex;justify-content:space-between;align-items:center}
.menu-nav{flex:1;display:flex;flex-direction:column;justify-content:center;gap:.5rem;padding:2rem 0}
.menu-nav a{display:block;font-size:3rem;font-weight:600;letter-spacing:-.03em;line-height:1;transition:color .2s}
@media (min-width:640px){.menu-nav a{font-size:4.5rem}}
.menu-nav a:hover{color:var(--brand-light)}
.menu-bottom{border-top:1px solid rgba(255,255,255,.15);padding-top:2rem;display:flex;flex-direction:column;gap:1.25rem}
@media (min-width:640px){.menu-bottom{flex-direction:row;justify-content:space-between;align-items:center}}
.menu-social{display:flex;gap:1.25rem;font-size:.9375rem;color:rgba(255,255,255,.7)}
.menu-social a:hover{color:#fff}

/* ---------- loader ---------- */
.loader{position:fixed;inset:0;z-index:200;background:var(--brand-deep);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;will-change:transform}
.loader-wm{display:flex;align-items:center;gap:.6rem;font-size:1.5rem;font-weight:600;letter-spacing:-.02em;opacity:0}
.loader-wm .logo{height:3.5rem}
.loader-track{width:10rem;height:1px;border-radius:var(--radius-pill);background:rgba(255,255,255,.2);overflow:hidden}
.loader-fill{height:100%;background:#fff;transform:scaleX(0);transform-origin:left}

/* mobile tightening */
@media (max-width:640px){
  .hero-chip{font-size:.9375rem;padding:.45rem .9rem}
  .tile .glass{left:.5rem;right:.5rem;bottom:.5rem;padding:.5rem .6rem}
  .tile .glass b{font-size:.9375rem}
  .tile .glass span{display:none}
  .pct{width:6.5rem;height:6.5rem}
}

@media (prefers-reduced-motion:reduce){
  *{transition-duration:.01ms!important;animation-duration:.01ms!important}
}

/* ============ inner pages ============ */
.hdr-nav a[aria-current="page"]{opacity:1;text-decoration:underline;text-underline-offset:.45em;text-decoration-color:var(--brand-light);text-decoration-thickness:2px}
.hero.page{height:auto;min-height:0}
.phero{padding:4rem 1.5rem 3rem;display:grid;gap:2.5rem;align-items:end}
@media (min-width:640px){.phero{padding:5rem 2.5rem 3.5rem}}
@media (min-width:1024px){.phero{grid-template-columns:1.15fr .85fr;gap:4rem}}
.phero .chip{margin-bottom:1.25rem}
.ph1{font-size:2.6rem;font-weight:600;letter-spacing:-.025em;line-height:1.06}
@media (min-width:640px){.ph1{font-size:4rem}}
.phero .lede{color:rgba(255,255,255,.75);margin-top:1.5rem;max-width:36rem}
.phero .lede + .lede{margin-top:1rem}
.phero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}
.hrow{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}
.hrow .ph{aspect-ratio:3/4;border-radius:1rem}
.pstack{position:relative;padding-bottom:3rem;padding-right:3rem}
.pstack .ph-big{aspect-ratio:4/3;border-radius:var(--radius-card)}
.pstack .ph-lap{position:absolute;right:0;bottom:0;width:45%;aspect-ratio:1;border-radius:1rem}
.pstack.dark .ph{border-color:rgba(255,255,255,.22)}
.ph-wide{aspect-ratio:21/9;border-radius:var(--radius-card)}
.ph-side{aspect-ratio:4/5;border-radius:var(--radius-card)}
.ph-db{aspect-ratio:16/7;border-radius:var(--radius-card)}
.sec{padding:5rem 1.5rem}
@media (min-width:640px){.sec{padding:6rem 2.5rem}}
.sec.tight{padding-top:4rem;padding-bottom:4rem}
.sec.bone{background:var(--surface);border-radius:var(--radius-card-lg);margin-top:.75rem}
.two{display:grid;gap:2.5rem;align-items:center}
@media (min-width:768px){.two{grid-template-columns:1fr 1fr;gap:4rem}}
.two .txt .lede{margin-top:1.25rem;max-width:34rem}
.two .txt .lede + .lede{margin-top:1rem}
.two .txt .pill{margin-top:1.75rem}
.two.rev .txt{order:1}
@media (min-width:768px){.two.rev .txt{order:2}.two.rev .pic{order:1}}
.bigread{font-weight:600;font-size:1.5rem;line-height:1.34;letter-spacing:-.02em;max-width:60rem;color:var(--ink)}
@media (min-width:640px){.bigread{font-size:2.3rem}}
.bigread .bw{color:rgba(0,21,53,.16);transition:color .35s ease}
.bigread .bw.on{color:var(--ink)}
.band{background:var(--brand-deep);color:#fff;border-radius:var(--radius-card-lg);margin-top:.75rem;padding:5rem 1.5rem}
@media (min-width:640px){.band{padding:6rem 2.5rem}}
.band.red{background:var(--brand)}
.band .lede{color:rgba(255,255,255,.75)}
.band .eyebrow{color:rgba(255,255,255,.75)}
.band .eyebrow::before{background:var(--brand-light)}
.band.red .eyebrow::before{background:#fff}
.band .pill-light:hover{background:var(--brand-deep);color:#fff}
.band .pstack .ph{border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.08);background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.07) 0 .5rem,transparent .5rem 1.1rem)}
.band .pstack .ph::before{color:rgba(255,255,255,.6)}
.grid3{display:grid;gap:1.25rem;margin-top:3rem}
@media (min-width:640px){.grid3{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.grid3{grid-template-columns:repeat(3,1fr)}}
.fcard{border-radius:var(--radius-card);background:var(--surface);padding:1.75rem;display:flex;flex-direction:column;gap:1rem;min-height:11rem}
.sec.bone .fcard{background:var(--surface-card)}
.itile{width:2.5rem;height:2.5rem;border-radius:.75rem;background:var(--brand-light);color:#fff;display:grid;place-items:center;font-size:1.1rem;flex:none}
.fcard p{font-size:1rem;font-weight:500;line-height:1.45;letter-spacing:-.01em}
.fcard h3{font-size:1.16rem;font-weight:600;line-height:1.3}
.fcard .lk{font-size:.95rem;font-weight:500;text-decoration:underline;text-underline-offset:.25em}
.after{margin-top:2.5rem;max-width:40rem}
.steps{margin-top:2rem}
.steps li{display:flex;gap:1.25rem;align-items:baseline;padding:1rem 0;border-top:1px solid var(--hairline);font-size:1.125rem;font-weight:500;letter-spacing:-.01em}
.steps li:last-child{border-bottom:1px solid var(--hairline)}
.steps li span{font-size:.9375rem;font-weight:700;color:var(--brand);letter-spacing:.1em;width:2rem;flex:none}
.grid2{display:grid;gap:1.25rem;margin-top:3rem}
@media (min-width:768px){.grid2{grid-template-columns:1fr 1fr}}
.xcard.tall .xcard-img{aspect-ratio:16/9}
.ph-cap{display:block}
.fwrap{display:grid;gap:2rem;align-items:start}
@media (min-width:1024px){.fwrap{grid-template-columns:1.2fr .8fr;gap:3rem}}
.fpanel{border-radius:var(--radius-card-lg);background:var(--surface);padding:1.75rem}
@media (min-width:640px){.fpanel{padding:2.5rem}}
.fpanel h2{font-size:1.5rem;font-weight:600;letter-spacing:-.02em}
.fpanel .form{margin-top:1.5rem}
.fpanel .field input,.fpanel .field textarea{background:var(--surface-card)}
.side-stack{display:flex;flex-direction:column;gap:1.25rem}
.lk{text-decoration:underline;text-underline-offset:.25em}
.h2.tight{margin-top:.75rem}
.eyebrow + .h2{margin-top:1rem}
/* placeholders inside navy heroes read as dark */
.hero .ph:not(.ph-hero){background:#0b2450;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 .5rem,transparent .5rem 1.1rem);border-color:rgba(255,255,255,.22)}
.hero .ph:not(.ph-hero)::before{color:rgba(255,255,255,.55)}

/* ============ partners / join / news / play ============ */
.logo-ph img{max-height:3.25rem;width:auto;max-width:80%}
.logo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:1.25rem;margin-top:3rem}
.logo-card{border-radius:var(--radius-card);background:var(--surface-card);border:1px solid var(--hairline);padding:1.5rem;display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center}
.logo-card img{height:4.5rem;width:auto;max-width:100%}
.logo-card span{font-size:.9375rem;font-weight:500;color:var(--ink-soft)}
.pending{border-radius:var(--radius-card);background:var(--surface);border:1px dashed rgba(0,21,53,.3);padding:1.5rem}
.pending .lab{color:var(--brand-light)}
.pending p{font-size:.9375rem;color:var(--ink-soft);line-height:1.6;margin-top:.5rem}
.pending b{color:var(--ink);font-weight:600}
.sec.bone .pending{background:var(--surface-card)}
.xcard-body .pending{margin-top:1rem;padding:1rem}
.pcard-grid{display:grid;gap:1.25rem;margin-top:3rem}
@media (min-width:640px){.pcard-grid{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.pcard-grid{grid-template-columns:repeat(3,1fr)}}
.pcard-grid .xcard .xcard-img{aspect-ratio:16/10}
.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.25rem}
.tags span{border-radius:var(--radius-pill);border:1px solid var(--hairline);padding:.4rem .9rem;font-size:.9375rem;font-weight:500;color:var(--ink-soft)}
.invest{display:grid;gap:1.25rem;margin-top:3rem;align-items:stretch}
@media (min-width:1024px){.invest{grid-template-columns:1fr 1fr 1fr}}
.invest .stat-card{border-radius:var(--radius-card);background:var(--brand-deep);color:#fff;padding:1.75rem;display:flex;flex-direction:column;justify-content:space-between;gap:1rem}
.invest .stat-card .stat-val{font-size:4rem}
.invest .stat-card .lab{color:rgba(255,255,255,.6)}
.news-date{font-size:.9375rem;color:var(--ink-soft);margin-top:.5rem}

/* font floor: labels inside tiny placeholders can't fit at 15px, so hide them */
.hcard-img::before,.mcard-img::before{display:none}
.eyebrow,.lab{letter-spacing:.18em}
.pct span{max-width:9em}
.f-nav h3{letter-spacing:.16em}

/* partner logos: no chrome, larger, blended so the PNGs' off-white boxes vanish on bone */
.logos{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:2rem 2.5rem;align-items:center}
.logo-ph{height:auto;border:0;background:transparent;padding:0}
.logo-ph img{max-height:6.5rem;width:auto;max-width:100%;mix-blend-mode:multiply}
.logo-card{border:0;background:transparent;padding:.5rem}
.logo-card img{height:7rem;mix-blend-mode:multiply}
.logos{mix-blend-mode:multiply}
.logo-ph img{max-height:8rem;mix-blend-mode:normal}
.logo-grid{mix-blend-mode:multiply}
.logo-card img{height:8.5rem;mix-blend-mode:normal}
.logos,.logo-grid{mix-blend-mode:normal}

.tcard-pos{transition:left .7s cubic-bezier(.16,1,.3,1)}

/* ============ floating pill nav (appears after scrolling past the hero header) ============ */
.fnav-wrap{position:fixed;top:.75rem;left:0;right:0;z-index:60;display:flex;justify-content:center;pointer-events:none;padding:0 .75rem}
.fnav{display:flex;align-items:center;gap:1.25rem;padding:.45rem .45rem .45rem 1rem;border-radius:var(--radius-pill);background:rgba(0,21,53,.86);color:#fff;border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 48px -20px rgba(0,21,53,.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);opacity:0;transform:translate3d(0,-32px,0);pointer-events:none;max-width:100%}
.fnav.show{pointer-events:auto}
.fnav-brand img{height:1.9rem;width:auto;display:block}
.fnav-links{display:none;gap:1.25rem;font-size:.9375rem;font-weight:500;white-space:nowrap}
@media (min-width:1024px){.fnav-links{display:flex}}
.fnav-links a{color:rgba(255,255,255,.85);transition:color .2s}
.fnav-links a:hover{color:#fff}
.fnav-links a[aria-current="page"]{color:#fff;text-decoration:underline;text-underline-offset:.45em;text-decoration-color:var(--brand-light);text-decoration-thickness:2px}
.fnav-cta{display:none;border-radius:var(--radius-pill);background:#fff;color:var(--ink);padding:.6rem 1.1rem;font-size:.9375rem;font-weight:600;white-space:nowrap;transition:background .2s,color .2s}
.fnav-cta:hover{background:var(--brand);color:#fff}
@media (min-width:640px){.fnav-cta{display:inline-block}}
.fnav .burger{width:2.4rem;height:2.4rem}

/* nav sizing pass: +2px type, +20% logos, ~20% wider pill */
.hdr{font-size:1.0625rem}
.brand .logo{height:2.9rem}
@media (max-width:640px){.brand .logo{height:2.5rem}}
.fnav{gap:2rem;padding:.55rem .55rem .55rem 1.5rem}
.fnav-brand img{height:2.3rem}
.fnav-links{gap:1.75rem;font-size:1.0625rem}
.fnav-cta{font-size:1.0625rem;padding:.7rem 1.4rem}

/* partner logos: never distort — both dimensions auto, capped by the cell */
.logo-ph img,.logo-card img{width:auto;height:auto;max-width:100%;object-fit:contain}
.logo-ph img{max-height:8rem}
.logo-card img{max-height:8.5rem}

/* footer seal watermark */
.foot{position:relative;overflow:hidden;isolation:isolate}
.foot-seal{position:absolute;right:-10rem;bottom:-14rem;width:52rem;max-width:none;opacity:.07;pointer-events:none;z-index:-1;filter:brightness(0) invert(1)}
@media (max-width:640px){.foot-seal{width:30rem;right:-8rem;bottom:-8rem}}
.foot-seal{top:3rem;bottom:auto;right:-12rem;width:58rem;opacity:.08}
@media (max-width:640px){.foot-seal{top:auto;bottom:-6rem;right:-10rem;width:34rem}}

/* red footer */
.foot{background:var(--brand)}
.foot .eyebrow.light{color:rgba(255,255,255,.8)}
.foot .eyebrow.light::before{background:#fff}
.foot .pill-light:hover{background:var(--brand-deep);color:#fff}
.foot .pill-solid{background:var(--brand-deep)}
.foot .pill-solid:hover{background:#fff;color:var(--ink)}
.foot .f-news input:focus{border-color:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.3)}
.foot .f-news-ok{color:#fff}
.foot .cta-copy,.foot .f-blurb,.foot .f-nav ul,.foot .f-social,.foot .f-bottom{color:rgba(255,255,255,.85)}
.foot .f-nav h3,.foot .f-news .lab{color:rgba(255,255,255,.65)}
.foot .cta-band,.foot .f-bottom{border-color:rgba(255,255,255,.25)}
.foot .f-news input{border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.12)}
.foot .f-news input::placeholder{color:rgba(255,255,255,.7)}
.foot-seal{opacity:.1}
.f-cols{padding-top:4rem}

/* partner logos span the full width: 5 equal columns, logo fills the column, ratio preserved */
.logos{grid-template-columns:repeat(5,1fr);gap:2rem 3rem;align-items:center}
.logo-ph{display:block}
.logo-ph img{width:100%;height:auto;max-height:none;max-width:none}
@media (max-width:1024px){.logos{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.logos{grid-template-columns:repeat(2,1fr);gap:1.5rem}}
.logo-grid{grid-template-columns:repeat(5,1fr);gap:2rem 3rem;align-items:center}
.logo-card{padding:0}
.logo-card img{width:100%;height:auto;max-height:none}
@media (max-width:1024px){.logo-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.logo-grid{grid-template-columns:repeat(2,1fr)}}

/* social icons */
.f-social,.menu-social{display:flex;gap:.75rem;align-items:center}
.f-social a,.menu-social a{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:var(--radius-pill);border:1px solid rgba(255,255,255,.3);color:#fff;transition:background .2s,border-color .2s}
.f-social a:hover,.menu-social a:hover{background:#fff;color:var(--brand);border-color:#fff}
.menu-social a:hover{color:var(--brand-deep)}
.f-social svg,.menu-social svg{width:1.2rem;height:1.2rem}
.f-social{margin-top:1.5rem}

/* solid white for all text on navy (and the red footer, for consistency) */
.eyebrow.light,.band .eyebrow,.hero-tag,.hero-sub,.phero .lede,.stats .lede,.stat-lab,.band .lede,.invest .stat-card .lab,
.fnav-links a,.menu-social,.hdr-nav a,.hcard-cta,.mcard-cap,.hero .glass span,.tcard-layer .glass span,.pcard.photo .glass span,
.cta-copy,.f-blurb,.f-social,.f-nav h3,.f-nav ul,.foot .cta-copy,.foot .f-blurb,.foot .f-nav ul,.foot .f-social,.foot .f-bottom,.foot .f-nav h3,
.hdr-cta,.menu-nav a,.loader,.hcard-tag,.hcard-title{color:#fff;opacity:1}
.hdr-nav a:hover,.fnav-links a:hover,.menu-social a:hover{color:#fff}
.fnav-links a[aria-current="page"]{color:#fff}

/* real photos inside placeholder frames */
.ph.has-img{background:none;border:0}
.ph.has-img::before{display:none}
.ph.has-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ph.ph-hero.has-img img{object-position:center 40%}
.tcard-layer .ph.has-img img{opacity:.9}
.hero-grad{background:linear-gradient(to bottom,rgba(0,21,53,.7),rgba(0,21,53,.45),rgba(0,21,53,.85))}

/* text columns 20% wider site-wide (cards and UI widths unchanged) */
.hero-left{max-width:53rem}
.hero-sub{max-width:46rem}
.pillars-lede{max-width:38.5rem}
.prow-txt p{max-width:46rem}
.explore-intro{max-width:36rem}
.explore-body{max-width:26.5rem}
.stats .lede{max-width:41rem}
.cta-copy{max-width:43rem}
.f-brand{max-width:26.5rem}
.phero .lede{max-width:43rem}
.two .txt .lede{max-width:41rem}
.bigread{max-width:72rem}
.after{max-width:48rem}
.pct span{max-width:11em}

/* ============ pinned horizontal card slider ============ */
.hslide{position:relative;height:280vh}
.hslide-pin{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;justify-content:center;padding:0 1.5rem;overflow:hidden}
@media (min-width:640px){.hslide-pin{padding:0 2.5rem}}
.hslide-head .h2{max-width:60rem}
.hslide-viewport{margin-top:2.5rem}
.hslide-track{display:flex;gap:1.25rem;will-change:transform}
.scard{flex:0 0 26rem;min-height:19rem;border-radius:var(--radius-card);padding:1.75rem 2rem;display:flex;flex-direction:column;justify-content:space-between;gap:2rem}
.scard p{font-size:1.9rem;font-weight:600;line-height:1.15;letter-spacing:-.025em}
.scard-n{font-size:.9375rem;font-weight:700;letter-spacing:.2em;opacity:.75}
.scard.navy{background:var(--brand-deep);color:#fff}
.scard.red{background:var(--brand);color:#fff}
.scard.gold{background:var(--brand-light);color:var(--ink)}
.scard.bone{background:var(--surface);color:var(--ink)}
.hslide .after{margin-top:2.5rem}
@media (max-width:640px){
  .hslide{height:auto}
  .hslide-pin{position:static;height:auto;padding:5rem 1.5rem;overflow:visible}
  .hslide-viewport{overflow-x:auto;margin:2rem -1.5rem 0;padding:0 1.5rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
  .hslide-track{transform:none!important;width:max-content}
  .scard{flex-basis:18rem;min-height:15rem;scroll-snap-align:start}
  .scard p{font-size:1.5rem}
}
.f-nav h3{white-space:nowrap}
.f-cols{grid-template-columns:1.2fr repeat(3,minmax(max-content,1fr))}
@media (max-width:768px){.f-cols{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.f-cols{grid-template-columns:1fr}}
.hslide-head .h2{max-width:none}
.hero-grad{background:linear-gradient(to bottom,rgba(0,21,53,.82),rgba(0,21,53,.6),rgba(0,21,53,.9))}

/* seal watermark on red bands: sits over the photo edge and the background */
.band{position:relative;overflow:hidden;isolation:isolate}
.band .two{position:relative;z-index:1}
.band-seal{position:absolute;left:40%;bottom:-10rem;width:38rem;max-width:none;opacity:.14;z-index:2;pointer-events:none;filter:brightness(0) invert(1)}
.band.red:has(.two.rev) .band-seal{left:auto;right:40%}
@media (max-width:768px){.band-seal{left:auto;right:-8rem;bottom:-8rem;width:24rem}}
.band-seal{left:33%;bottom:-3rem;width:34rem;opacity:.16}
.band.red:has(.two.rev) .band-seal{left:auto;right:33%}
@media (max-width:768px){.band-seal{left:auto;right:-8rem;bottom:-8rem;width:24rem}}
.band-seal{bottom:auto;top:-9rem}
@media (max-width:768px){.band-seal{bottom:auto;top:-8rem}}

/* ============ motion pass ============ */
/* hero photos: slow drift-zoom */
@keyframes kenburns{from{transform:scale(1.04)}to{transform:scale(1.14)}}
.ph.ph-hero.has-img img{animation:kenburns 26s ease-in-out infinite alternate;transform-origin:60% 40%}
/* card photos zoom on hover */
.xcard .xcard-img img,.pcard.photo .ph img,.tile-img .ph img,.hrow .ph img,.pstack .ph img,.ph-side img{transition:transform .9s cubic-bezier(.16,1,.3,1)}
.xcard:hover .xcard-img img,.pcard.photo:hover .ph img,.hrow .ph:hover img,.pstack .ph:hover img,.ph-side:hover img{transform:scale(1.06)}
.xcard,.pcard,.fcard,.scard{transition:box-shadow .4s ease}
.xcard:hover,.pcard:hover{box-shadow:0 30px 50px -30px rgba(0,21,53,.35)}
/* arrow links nudge */
.xlink svg{transition:transform .35s cubic-bezier(.16,1,.3,1)}
.xlink:hover svg{transform:translateX(5px)}
/* nav underline slides in */
.hdr-nav a,.fnav-links a{position:relative}
.hdr-nav a::after,.fnav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-.35em;height:2px;background:var(--brand-light);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.16,1,.3,1)}
.hdr-nav a:hover::after,.fnav-links a:hover::after{transform:scaleX(1)}
.hdr-nav a[aria-current="page"],.fnav-links a[aria-current="page"]{text-decoration:none}
.hdr-nav a[aria-current="page"]::after,.fnav-links a[aria-current="page"]::after{transform:scaleX(1)}
/* list rows tint on hover */
.prow-in{transition:background .3s ease,padding-left .4s cubic-bezier(.16,1,.3,1)}
.plist li:hover .prow-in{background:rgba(255,255,255,.6);padding-left:.75rem;border-radius:.75rem}
/* seals turn slowly */
@keyframes spin{to{rotate:360deg}}
.foot-seal,.band-seal{animation:spin 160s linear infinite}
/* partner logos lift on hover */
.logo-ph img{transition:transform .4s cubic-bezier(.16,1,.3,1)}
.logo-ph:hover img{transform:translateY(-4px)}
/* gold dot pulse on eyebrows */
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.5)}}
.eyebrow::before{animation:pulse 2.8s ease-in-out infinite}
/* burger bars */
.burger span{transition:transform .3s cubic-bezier(.16,1,.3,1)}
.burger:hover span:first-child{transform:translateX(-2px)}
.burger:hover span:last-child{transform:translateX(2px)}
/* text link underline grow on menu */
.menu-nav a{transition:color .2s,transform .4s cubic-bezier(.16,1,.3,1)}
.menu-nav a:hover{transform:translateX(.5rem)}
@media (prefers-reduced-motion:reduce){.ph.ph-hero.has-img img,.foot-seal,.band-seal,.eyebrow::before{animation:none}}

/* band seal: 3x larger, stronger parallax travel */
.band-seal{width:102rem;top:-60rem;left:22%;opacity:.14}
.band.red:has(.two.rev) .band-seal{left:auto;right:22%}
@media (max-width:768px){.band-seal{width:60rem;top:-32rem;left:auto;right:-20rem}}

.band-seal{top:-24rem;left:24%}
.band.red:has(.two.rev) .band-seal{left:auto;right:24%}
@media (max-width:768px){.band-seal{top:-14rem;left:auto;right:-22rem;width:60rem}}
.band-seal{height:auto}

/* ============ county map (Explore Fairfax) ============ */
.mapsec{padding:5rem 1.5rem 3rem}
@media (min-width:640px){.mapsec{padding:6rem 2.5rem 3rem}}
.map-head{display:grid;gap:2rem;align-items:end;margin-bottom:2rem}
@media (min-width:1024px){.map-head{grid-template-columns:1.1fr .9fr;gap:4rem}}
.map-side .lede{max-width:34rem}
.map-legend{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.25rem}
.map-legend .lg{display:inline-flex;align-items:center;gap:.6rem;border-radius:var(--radius-pill);border:1px solid var(--hairline);padding:.6rem 1.1rem;font-size:.9375rem;font-weight:600;color:var(--ink-soft);background:var(--surface);transition:background .2s,color .2s,border-color .2s}
.map-legend .lg.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.map-legend .dot{width:.75rem;height:.75rem;border-radius:var(--radius-pill);flex:none;box-shadow:0 0 0 2px rgba(255,255,255,.9)}
.map-legend .dot.red{background:var(--brand)}
.map-legend .dot.navy{background:var(--brand-light)}
.map-legend .lg span{opacity:.7;font-weight:500}
.county-map-wrap{border-radius:var(--radius-card-lg);overflow:hidden;background:var(--surface);box-shadow:0 30px 60px -30px rgba(0,21,53,.35)}
.county-map{width:100%;height:72vh;min-height:30rem;background:var(--surface)}
.map-src{font-size:.9375rem;color:var(--ink-soft);margin-top:1rem;max-width:60rem}
/* leaflet skin */
.leaflet-container{font-family:inherit}
.leaflet-control-zoom a{color:var(--ink)}
.leaflet-popup-content-wrapper{border-radius:1rem;box-shadow:0 20px 40px -20px rgba(0,21,53,.5);padding:.25rem}
.leaflet-popup-content{margin:.75rem 1rem;font-size:.9375rem;line-height:1.5;color:var(--ink)}
.leaflet-popup-content b{display:block;font-size:1.05rem;font-weight:600;margin-bottom:.2rem}
.leaflet-popup-content small{display:block;color:var(--ink-soft)}
.leaflet-popup-content a{color:var(--brand);font-weight:600;text-decoration:underline;text-underline-offset:.2em}
.leaflet-popup-tip{box-shadow:none}
.ffx-tag{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.35rem}
.ffx-tag.red{color:var(--brand)}.ffx-tag.navy{color:var(--brand-deep)}

/* map list */
.map-table-wrap{margin-top:1.25rem;border-radius:var(--radius-card-lg);background:var(--surface);overflow:hidden}
.map-table-bar{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--hairline)}
.map-filter{display:flex;gap:.4rem;border-radius:var(--radius-pill);background:var(--surface-card);padding:.3rem}
.map-filter button{border-radius:var(--radius-pill);padding:.5rem 1rem;font-size:.9375rem;font-weight:600;color:var(--ink-soft);transition:background .2s,color .2s}
.map-filter button.on{background:var(--ink);color:#fff}
.map-search{flex:1;min-width:14rem}
.map-search input{width:100%;border-radius:var(--radius-pill);border:1px solid var(--hairline);background:var(--surface-card);padding:.7rem 1.1rem;font:inherit;font-size:.9375rem;color:var(--ink)}
.map-search input:focus{outline:none;border-color:var(--brand-light);box-shadow:0 0 0 3px rgba(232,153,0,.25)}
.map-count{font-size:.9375rem;color:var(--ink-soft);white-space:nowrap}
.map-table-scroll{max-height:30rem;overflow:auto}
.map-table{width:100%;border-collapse:collapse;font-size:.9375rem}
.map-table th{position:sticky;top:0;background:var(--surface);text-align:left;font-size:.9375rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);padding:.9rem 1.5rem;border-bottom:1px solid var(--hairline);z-index:1}
.map-table td{padding:.9rem 1.5rem;border-bottom:1px solid var(--hairline);vertical-align:top;color:var(--ink)}
.map-table tbody tr{cursor:pointer;transition:background .2s}
.map-table tbody tr:hover{background:var(--surface-card)}
.map-table td.name{font-weight:600;white-space:nowrap}
.map-table td.muted{color:var(--ink-soft)}
.map-table .tag{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;white-space:nowrap}
.map-table .tag i{width:.6rem;height:.6rem;border-radius:var(--radius-pill);flex:none}
.map-table .tag.red i{background:var(--brand)}.map-table .tag.navy i{background:var(--brand-light)}
.map-table a{color:var(--brand);font-weight:600;text-decoration:underline;text-underline-offset:.2em;white-space:nowrap}
@media (max-width:768px){.map-table th:nth-child(4),.map-table td:nth-child(4){display:none}}
.map-table-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}

/* list scroll nav on the right */
.map-table-body{display:flex;align-items:stretch}
.map-table-scroll{flex:1;min-width:0}
.map-scrollnav{flex:none;display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1.25rem 1rem;border-left:1px solid var(--hairline);background:var(--surface)}
.map-scrollnav .abtn{width:3rem;height:3rem}
.map-scrollnav .abtn[disabled]{opacity:.35;cursor:default}
.map-scrollnav .abtn[disabled]:hover{border-color:var(--hairline)}
.map-scrollbar{flex:1;width:.25rem;border-radius:var(--radius-pill);background:var(--hairline);position:relative;min-height:4rem}
.map-scrollbar i{position:absolute;left:0;right:0;top:0;height:20%;border-radius:var(--radius-pill);background:var(--ink)}
@media (max-width:640px){.map-scrollnav{padding:.75rem .5rem;gap:.6rem}.map-scrollnav .abtn{width:2.5rem;height:2.5rem}}
/* band seal: behind the content, tucked to the photo side so it only shows on red */
.band-seal{z-index:0;left:46%;top:-30rem}
.band.red:has(.two.rev) .band-seal{left:auto;right:46%}
@media (max-width:768px){.band-seal{left:auto;right:-22rem;top:-14rem}}
