/* ==========================================================================
   NAC San Bernardino — design system
   Editorial-civic. Warm paper ground, council navy ink, brass rules.
   Palette sourced from the council's own equity: the royal-blue / cream
   "You Have a Voice" shirt, and the navy + lime tournament flyer.
   ========================================================================== */

:root{
  --navy:#0E1F3C;
  --navy-soft:#1B3560;
  --civic:#2B5CA8;
  --civic-deep:#1D4478;
  --gold:#C8973F;
  --gold-ink:#8A6116;
  --cream:#F2DFAE;
  --paper:#FBF8F2;
  --paper-2:#F4EDE0;
  --paper-3:#EBE1CE;
  --ink:#141C29;
  --muted:#5A6474;
  --line:rgba(14,31,60,.10);
  --line-2:rgba(14,31,60,.055);
  --lime:#A8DC1E;

  --ease:cubic-bezier(.32,.72,0,1);
  --ease-out:cubic-bezier(.16,1,.3,1);

  --shell-r:2rem;
  --core-r:1.625rem;
  --wrap:1180px;
  --gut:clamp(1.25rem,5vw,3rem);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Plus Jakarta Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:1.0625rem;
  line-height:1.65;
  letter-spacing:-.005em;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.is-locked{overflow:hidden}

/* film grain — fixed, pointer-events-none, never on scrolling content */
body::after{
  content:"";position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

img{max-width:100%;height:auto;display:block}
a{color:inherit}
button{font:inherit;color:inherit}

h1,h2,h3,h4,.display{
  font-family:"Fraunces","Iowan Old Style",Georgia,serif;
  font-weight:600;
  font-variation-settings:"SOFT" 20,"WONK" 1,"opsz" 96;
  letter-spacing:-.022em;
  line-height:1.04;
  margin:0;
  color:var(--navy);
}
h1{font-size:clamp(2.6rem,6.6vw,5.1rem)}
h2{font-size:clamp(2rem,4.4vw,3.35rem);line-height:1.06}
h3{font-size:clamp(1.3rem,2.1vw,1.7rem);line-height:1.18;letter-spacing:-.015em}
h4{font-size:1.0625rem;letter-spacing:-.01em}
p{margin:0 0 1.15em}
.lede{font-size:clamp(1.13rem,1.7vw,1.32rem);line-height:1.6;color:#33404F;letter-spacing:-.012em}

.script{font-family:"Yellowtail",cursive;font-weight:400;letter-spacing:0;font-variation-settings:normal}

/* ---------- layout ---------- */
.wrap{width:min(var(--wrap),100% - var(--gut)*2);margin-inline:auto}
.wrap-wide{width:min(1400px,100% - var(--gut)*2);margin-inline:auto}
section{padding-block:clamp(4.5rem,10vw,9.5rem)}
.sec-tight{padding-block:clamp(3.5rem,7vw,6rem)}

.eyebrow{
  display:inline-flex;align-self:flex-start;align-items:center;gap:.55rem;
  font-family:"Plus Jakarta Sans",sans-serif;
  font-size:.6875rem;font-weight:600;text-transform:uppercase;
  letter-spacing:.2em;color:var(--gold-ink);
  border:1px solid rgba(200,151,63,.34);
  background:rgba(200,151,63,.07);
  border-radius:999px;padding:.4rem .85rem;margin-bottom:1.5rem;
}
.eyebrow::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold)}
.eyebrow.on-dark{color:var(--cream);border-color:rgba(242,223,174,.3);background:rgba(242,223,174,.08)}
.eyebrow.on-dark::before{background:var(--cream)}

.rule{width:80px;height:3px;background:var(--gold);border-radius:2px;margin-bottom:1.6rem}

/* ---------- double-bezel card ---------- */
.shell{
  background:rgba(14,31,60,.045);
  border:1px solid var(--line-2);
  border-radius:var(--shell-r);
  padding:.375rem;
}
.core{
  background:var(--paper);
  border-radius:var(--core-r);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.7), 0 18px 44px -28px rgba(14,31,60,.28);
  height:100%;
}
.shell-dark{background:rgba(242,223,174,.09);border-color:rgba(242,223,174,.14)}
.shell-dark>.core{
  background:var(--navy-soft);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.09), 0 24px 60px -34px rgba(0,0,0,.6);
}
.card-pad{padding:clamp(1.5rem,2.6vw,2.25rem)}

.hover-lift{transition:transform .7s var(--ease),box-shadow .7s var(--ease)}
.hover-lift:hover{transform:translateY(-5px)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.85rem;
  padding:.6rem .6rem .6rem 1.55rem;
  border-radius:999px;border:1px solid transparent;
  font-size:.95rem;font-weight:600;letter-spacing:-.01em;
  text-decoration:none;cursor:pointer;
  transition:transform .55s var(--ease),background-color .55s var(--ease),color .55s var(--ease),border-color .55s var(--ease);
}
.btn:active{transform:scale(.978)}
.btn .ico{
  width:2rem;height:2rem;flex:none;border-radius:999px;
  display:grid;place-items:center;
  transition:transform .55s var(--ease),background-color .55s var(--ease);
}
.btn .ico svg{width:.95rem;height:.95rem}
.btn:hover .ico{transform:translate(3px,-2px) scale(1.06)}

.btn-primary{background:var(--navy);color:var(--paper)}
.btn-primary .ico{background:rgba(242,223,174,.16)}
.btn-primary:hover{background:#152B52}
.btn-primary:hover .ico{background:rgba(242,223,174,.28)}

.btn-gold{background:var(--gold);color:#20170A}
.btn-gold .ico{background:rgba(32,23,10,.13)}
.btn-gold:hover{background:#D9A94F}

.btn-cream{background:var(--cream);color:var(--navy)}
.btn-cream .ico{background:rgba(14,31,60,.12)}
.btn-cream:hover{background:#F7E9C4}

.btn-ghost{background:transparent;color:var(--navy);border-color:var(--line)}
.btn-ghost .ico{background:rgba(14,31,60,.07)}
.btn-ghost:hover{background:rgba(14,31,60,.045);border-color:rgba(14,31,60,.2)}

.btn-ghost-dark{background:transparent;color:var(--cream);border-color:rgba(242,223,174,.28)}
.btn-ghost-dark .ico{background:rgba(242,223,174,.14)}
.btn-ghost-dark:hover{background:rgba(242,223,174,.09)}

.btn-lime{background:var(--lime);color:#16220A}
.btn-lime .ico{background:rgba(22,34,10,.14)}
.btn-lime:hover{background:#B9E93E}

.btn-sm{padding:.45rem .45rem .45rem 1.15rem;font-size:.875rem}
.btn-sm .ico{width:1.7rem;height:1.7rem}
.btn-sm .ico svg{width:.8rem;height:.8rem}

/* ---------- nav: floating glass pill ---------- */
.nav-shell{position:sticky;top:0;z-index:70;padding-top:1.5rem;pointer-events:none}
.nav{
  pointer-events:auto;
  width:min(var(--wrap),100% - var(--gut)*2);margin-inline:auto;
  display:flex;align-items:center;gap:1rem;
  background:rgba(251,248,242,.76);
  -webkit-backdrop-filter:saturate(1.7) blur(22px);
  backdrop-filter:saturate(1.7) blur(22px);
  border:1px solid rgba(14,31,60,.09);
  border-radius:999px;
  padding:.5rem .5rem .5rem .85rem;
  box-shadow:0 20px 46px -30px rgba(14,31,60,.45);
  transition:background-color .6s var(--ease),box-shadow .6s var(--ease);
}
.nav.scrolled{background:rgba(251,248,242,.93);box-shadow:0 22px 50px -28px rgba(14,31,60,.55)}

.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;flex:none;padding-right:.35rem}
.brand img{width:4.5rem;height:4.5rem;border-radius:50%;margin-block:-.95rem;background:#fff;box-shadow:0 0 0 1px rgba(14,31,60,.14),0 6px 16px -8px rgba(14,31,60,.45)}
.brand-txt{display:flex;flex-direction:column;line-height:1}
.brand-txt b{
  font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:1.02rem;
  letter-spacing:-.02em;color:var(--navy);
}
.brand-txt span{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:.22rem;font-weight:600}

.nav-links{display:flex;align-items:center;gap:.15rem;margin-left:auto}
.nav-links a{
  text-decoration:none;font-size:.885rem;font-weight:500;color:#28313E;
  padding:.5rem .75rem;border-radius:999px;white-space:nowrap;
  transition:background-color .45s var(--ease),color .45s var(--ease);
}
.nav-links a:hover{background:rgba(14,31,60,.055);color:var(--navy)}
.nav-links a[aria-current="page"]{color:var(--navy);background:rgba(14,31,60,.07);font-weight:600}
.nav-cta{margin-left:.35rem}

.burger{
  width:2.6rem;height:2.6rem;flex:none;border-radius:999px;border:1px solid var(--line);
  background:rgba(14,31,60,.04);display:grid;place-items:center;cursor:pointer;
  transition:background-color .5s var(--ease);
}
.burger:hover{background:rgba(14,31,60,.085)}
.burger i{
  display:block;width:15px;height:1.6px;background:var(--navy);border-radius:2px;
  position:relative;transition:transform .6s var(--ease),opacity .35s var(--ease);
}
.burger i::before,.burger i::after{
  content:"";position:absolute;left:0;width:15px;height:1.6px;background:var(--navy);border-radius:2px;
  transition:transform .6s var(--ease),opacity .35s var(--ease);
}
.burger i::before{top:-5px}
.burger i::after{top:5px}
body.menu-open .burger i{background:transparent}
body.menu-open .burger i::before{transform:translateY(5px) rotate(45deg)}
body.menu-open .burger i::after{transform:translateY(-5px) rotate(-45deg)}

/* ---------- full-screen menu ---------- */
.menu{
  position:fixed;inset:0;z-index:65;
  background:rgba(14,31,60,.93);
  -webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);
  opacity:0;visibility:hidden;
  transition:opacity .7s var(--ease),visibility .7s var(--ease);
  overflow-y:auto;padding:7.5rem 0 4rem;
}
body.menu-open .menu{opacity:1;visibility:visible}
.menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:.5rem}
.menu a{
  display:block;text-decoration:none;padding:1.05rem 1.25rem;border-radius:1.1rem;
  border:1px solid rgba(242,223,174,.12);
  opacity:0;transform:translateY(46px);
  transition:opacity .8s var(--ease),transform .8s var(--ease),background-color .45s var(--ease),border-color .45s var(--ease);
}
body.menu-open .menu a{opacity:1;transform:none}
.menu a:hover{background:rgba(242,223,174,.08);border-color:rgba(242,223,174,.26)}
.menu a b{display:block;font-family:"Fraunces",Georgia,serif;font-size:1.3rem;font-weight:600;color:var(--cream);letter-spacing:-.02em}
.menu a span{display:block;font-size:.85rem;color:rgba(242,223,174,.6);margin-top:.2rem}
.menu-head{color:rgba(242,223,174,.5);font-size:.6875rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;margin:0 0 1.1rem}

/* ---------- hero ---------- */
.hero{position:relative;padding-top:clamp(3.5rem,8vw,6rem);padding-bottom:clamp(3.5rem,7vw,6rem);overflow:hidden}
.hero::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(58% 48% at 78% 8%,rgba(200,151,63,.16),transparent 62%),
    radial-gradient(52% 46% at 8% 4%,rgba(43,92,168,.13),transparent 60%);
}
.hero-split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,4.5vw,4.5rem);align-items:center}
.hero h1 .accent{color:var(--gold-ink)}
.hero-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2.25rem}

.stat-row{display:flex;flex-wrap:wrap;gap:2.5rem;margin-top:3.25rem;padding-top:2rem;border-top:1px solid var(--line)}
.stat b{display:block;font-family:"Fraunces",Georgia,serif;font-size:2.1rem;font-weight:600;color:var(--navy);letter-spacing:-.03em;line-height:1}
.stat span{display:block;font-size:.78rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-top:.5rem;font-weight:600}

/* ---------- bento ---------- */
.bento{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem}
.b4{grid-column:span 4}.b5{grid-column:span 5}.b6{grid-column:span 6}
.b7{grid-column:span 7}.b8{grid-column:span 8}.b12{grid-column:span 12}

.tile{display:flex;flex-direction:column;height:100%}
.tile .n{
  font-family:"Fraunces",Georgia,serif;font-size:.8rem;font-weight:600;color:var(--gold-ink);
  letter-spacing:.02em;margin-bottom:.9rem;
}
.tile p:last-child{margin-bottom:0}
.tile p{color:var(--muted);font-size:.97rem;margin-top:.6rem}

.media{border-radius:var(--core-r);overflow:hidden;background:var(--paper-3)}
.media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.media:hover img{transform:scale(1.035)}
.ratio-43{aspect-ratio:4/3}
.ratio-11{aspect-ratio:1/1}
.ratio-32{aspect-ratio:3/2}
.ratio-169{aspect-ratio:16/9}

/* ---------- dark band ---------- */
.band-dark{background:var(--navy);color:rgba(242,223,174,.86);position:relative;overflow:hidden}
.band-dark::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(60% 60% at 82% 0%,rgba(43,92,168,.34),transparent 62%),
             radial-gradient(48% 55% at 4% 100%,rgba(200,151,63,.16),transparent 62%);
}
.band-dark>*{position:relative}
.band-dark h1,.band-dark h2,.band-dark h3{color:var(--cream)}
.band-dark .lede{color:rgba(242,223,174,.76)}
.band-dark .rule{background:var(--cream)}

.band-paper2{background:var(--paper-2)}

/* ---------- lists ---------- */
.goals{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:.15rem 2.5rem}
.goals li{
  display:flex;gap:.85rem;align-items:flex-start;
  padding:.85rem 0;border-bottom:1px solid var(--line-2);font-size:.985rem;color:#2C3542;
}
.goals li svg{width:1.05rem;height:1.05rem;flex:none;margin-top:.36rem;color:var(--gold)}
.band-dark .goals li{border-bottom-color:rgba(242,223,174,.12);color:rgba(242,223,174,.84)}
.band-dark .goals li svg{color:var(--cream)}

/* ---------- ward directory ---------- */
.wards{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:1rem}
.ward-n{
  display:inline-grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:50%;
  background:var(--navy);color:var(--cream);
  font-family:"Fraunces",Georgia,serif;font-size:.95rem;font-weight:600;flex:none;
}
.ward-head{display:flex;align-items:center;gap:.8rem;margin-bottom:.35rem}
.ward-cm{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-ink);font-weight:600;margin-bottom:1.1rem}
.na-list{list-style:none;margin:0;padding:0}
.na-list li{padding:.5rem 0;border-top:1px solid var(--line-2);font-size:.95rem;color:#2C3542}
.na-list li small{color:var(--muted);font-size:.8rem}

/* ---------- people ---------- */
.people{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem}
.person{text-align:left}
.person .role{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold-ink);font-weight:700;margin-bottom:.55rem}
.person .nm{font-family:"Fraunces",Georgia,serif;font-size:1.32rem;font-weight:600;color:var(--navy);letter-spacing:-.02em;line-height:1.15}
.initials{
  width:3.2rem;height:3.2rem;border-radius:50%;display:grid;place-items:center;margin-bottom:1.1rem;
  background:linear-gradient(150deg,var(--navy),var(--civic));color:var(--cream);
  font-family:"Fraunces",Georgia,serif;font-size:1.02rem;font-weight:600;letter-spacing:.01em;
}

/* ---------- archive grid (calendars, newsletters) ---------- */
.archive{display:grid;grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:1rem}
.arch-item{display:block;text-decoration:none}
.arch-item .media{border:1px solid var(--line-2)}
.arch-item .cap{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.9rem .25rem .1rem}
.arch-item .cap b{font-family:"Fraunces",Georgia,serif;font-size:1.02rem;font-weight:600;color:var(--navy);letter-spacing:-.015em}
.arch-item .cap span{font-size:.75rem;color:var(--muted);letter-spacing:.09em;text-transform:uppercase;font-weight:600}

/* ---------- sponsors ---------- */
.sponsor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:.75rem}
.sponsor{
  background:#fff;border:1px solid var(--line-2);border-radius:1.15rem;
  height:118px;display:grid;place-items:center;padding:1rem;overflow:hidden;
  transition:transform .6s var(--ease),border-color .6s var(--ease);
}
.sponsor:hover{transform:translateY(-3px);border-color:rgba(14,31,60,.16)}
.sponsor img{max-height:86px;max-width:100%;width:auto;object-fit:contain;filter:saturate(.96)}
.sponsor-names{columns:2;column-gap:2.5rem;list-style:none;padding:0;margin:0}
.sponsor-names li{padding:.42rem 0;border-bottom:1px solid var(--line-2);font-size:.94rem;break-inside:avoid;color:#2C3542}

.act-ico{
  width:3rem;height:3rem;border-radius:1rem;display:grid;place-items:center;margin-bottom:1.35rem;
  background:linear-gradient(150deg,var(--navy),var(--civic));color:var(--cream);
}
.act-ico svg{width:1.4rem;height:1.4rem}

/* ---------- gallery ---------- */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.6rem}
.gallery .media{aspect-ratio:1/1}

/* ---------- forms ---------- */
.field{margin-bottom:1.05rem}
.field label{display:block;font-size:.775rem;letter-spacing:.13em;text-transform:uppercase;font-weight:700;color:var(--muted);margin-bottom:.5rem}
.field input,.field textarea,.field select{
  width:100%;padding:.85rem 1.05rem;border-radius:.95rem;
  border:1px solid var(--line);background:#fff;color:var(--ink);
  font:inherit;font-size:.97rem;
  transition:border-color .45s var(--ease),box-shadow .45s var(--ease);
}
.field input:focus,.field textarea:focus,.field select:focus{
  outline:none;border-color:var(--civic);box-shadow:0 0 0 3px rgba(43,92,168,.14);
}
.field textarea{min-height:150px;resize:vertical}
.field-2{display:grid;grid-template-columns:1fr 1fr;gap:1.05rem}
.consent{display:flex;gap:.7rem;align-items:flex-start;font-size:.85rem;color:var(--muted);line-height:1.55}
.consent input{width:1.05rem;height:1.05rem;margin-top:.22rem;flex:none;accent-color:var(--civic)}
.fine{font-size:.775rem;color:var(--muted);line-height:1.55}

.band-dark .field label{color:rgba(242,223,174,.62)}
.band-dark .field input,.band-dark .field textarea,.band-dark .field select{
  background:rgba(242,223,174,.07);border-color:rgba(242,223,174,.2);color:var(--cream);
}
.band-dark .field input::placeholder{color:rgba(242,223,174,.4)}
.band-dark .consent,.band-dark .fine{color:rgba(242,223,174,.6)}

/* ---------- contact rows ---------- */
.rows{display:grid;gap:.5rem}
.row-link{
  display:flex;align-items:center;justify-content:space-between;gap:1.25rem;
  padding:1.15rem 1.35rem;border-radius:1.25rem;text-decoration:none;
  border:1px solid var(--line-2);background:#fff;
  transition:transform .6s var(--ease),border-color .6s var(--ease);
}
.row-link:hover{transform:translateX(4px);border-color:rgba(14,31,60,.18)}
.row-link b{font-family:"Fraunces",Georgia,serif;font-size:1.12rem;font-weight:600;color:var(--navy);letter-spacing:-.018em}
.row-link p{margin:.2rem 0 0;font-size:.88rem;color:var(--muted)}
.row-link .ico{
  width:2.15rem;height:2.15rem;border-radius:999px;background:rgba(14,31,60,.06);
  display:grid;place-items:center;flex:none;transition:transform .55s var(--ease),background-color .55s var(--ease);
}
.row-link:hover .ico{transform:translate(3px,-2px);background:rgba(14,31,60,.11)}
.row-link .ico svg{width:.95rem;height:.95rem;color:var(--navy)}

/* ---------- footer ---------- */
footer{background:var(--navy);color:rgba(242,223,174,.62);padding-block:clamp(3.5rem,6vw,5.5rem) 2rem}
.foot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2.5rem}
footer h4{color:var(--cream);font-size:.7rem;letter-spacing:.19em;text-transform:uppercase;font-family:"Plus Jakarta Sans",sans-serif;font-weight:700;margin-bottom:1.15rem}
.foot-links{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}
.foot-links a{text-decoration:none;font-size:.92rem;color:rgba(242,223,174,.68);transition:color .45s var(--ease)}
.foot-links a:hover{color:var(--cream)}
.foot-brand{display:flex;align-items:center;gap:.85rem;margin-bottom:1.35rem}
.foot-brand img{width:5.5rem;height:5.5rem;border-radius:50%;background:#fff;flex:none}
.foot-brand b{font-family:"Fraunces",Georgia,serif;font-size:1.2rem;color:var(--cream);font-weight:600;letter-spacing:-.02em;display:block;line-height:1.2}
.foot-brand span{font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(242,223,174,.5);font-weight:600}
.foot-bot{
  margin-top:3.25rem;padding-top:1.75rem;border-top:1px solid rgba(242,223,174,.13);
  display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;font-size:.8rem;color:rgba(242,223,174,.5);
}

/* ---------- page header ---------- */
.page-head{padding-top:clamp(3rem,6vw,5rem);padding-bottom:0}
.page-head .lede{max-width:62ch}
.crumbs{font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:1.5rem}
.crumbs a{text-decoration:none;color:var(--muted)}
.crumbs a:hover{color:var(--navy)}

/* ---------- reveal ---------- */
.js .rv{opacity:0;transform:translateY(52px);filter:blur(7px);
    transition:opacity .95s var(--ease-out),transform .95s var(--ease-out),filter .95s var(--ease-out)}
.js .rv.in{opacity:1;transform:none;filter:none}
@media (prefers-reduced-motion:reduce){
  .js .rv{opacity:1;transform:none;filter:none;transition:none}
  .menu a{opacity:1;transform:none}
  *{animation-duration:.001ms !important;transition-duration:.001ms !important}
}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .nav-links{display:none}
  .foot-top{grid-template-columns:1fr 1fr;gap:2.25rem}
}
@media (max-width:860px){
  .hero-split{grid-template-columns:1fr;gap:2.5rem}
  .b4,.b5,.b6,.b7,.b8{grid-column:span 12}
  .sponsor-names{columns:1}
  .field-2{grid-template-columns:1fr}
  .stat-row{gap:1.75rem}
}
@media (max-width:860px){
  .foot-links{gap:.15rem}
  .foot-links a{display:block;padding:.6rem 0}
  .foot-bot a{display:inline-block;padding:.5rem 0}
  .nav-links a{padding:.7rem .8rem}
}
@media (max-width:560px){
  body{font-size:1.0125rem}
  .brand-txt span{display:none}
  .brand img{width:3.75rem;height:3.75rem;margin-block:-.6rem}
  .foot-top{grid-template-columns:1fr}
  .gallery{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
  .archive{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
}

/* ---------------------------------------------------------------- month calendar */
.cal-top{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:end;justify-content:space-between}
.cal-wrap{border:1px solid var(--line);border-radius:var(--core-r);background:#fff;overflow:hidden}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.cal-head{
  padding:.75rem .85rem;background:var(--navy);color:var(--cream);
  font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;
}
.cal-head .sm{display:none}
.cal-cell{
  min-height:8.5rem;padding:.7rem .7rem 1rem;border-right:1px solid var(--line-2);
  border-bottom:1px solid var(--line-2);
}
.cal-cell:nth-child(7n+7){border-right:0}
.cal-cell.is-pad{background:var(--paper-2);min-height:0}
.cal-day{margin:0 0 .5rem;font-family:Fraunces,Georgia,serif;color:var(--navy);line-height:1}
.cal-day b{font-size:1.05rem;font-weight:600}
.cal-dow{display:none}
.cal-ev{
  border-left:3px solid var(--gold);background:var(--paper);border-radius:.45rem;
  padding:.5rem .55rem;margin-bottom:.45rem;
}
.cal-ev:last-child{margin-bottom:0}
.cal-ev-t{margin:0;font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;
  font-weight:700;color:var(--gold-ink)}
.cal-ev-a{margin:.2rem 0 0;font-size:.82rem;font-weight:700;color:var(--navy);line-height:1.25}
.cal-ev-d{margin:.22rem 0 0;font-size:.78rem;color:var(--muted);line-height:1.35}
.cal-loc{
  display:inline-flex;align-items:flex-start;gap:.3rem;margin-top:.4rem;
  font-size:.75rem;line-height:1.3;color:var(--civic-deep);font-weight:600;
  text-decoration:none;border-bottom:1px solid rgba(43,92,168,.28);
}
.cal-loc:hover{color:var(--navy);border-bottom-color:var(--navy)}
.cal-loc svg{width:.85rem;height:.85rem;flex:none;margin-top:.12rem}

@media (max-width:900px){
  .cal-head .lg{display:none}
  .cal-head .sm{display:inline}
  .cal-cell{min-height:7rem;padding:.55rem .5rem .8rem}
  .cal-ev-a{font-size:.76rem}
  .cal-ev-d,.cal-loc{font-size:.72rem}
}
@media (max-width:680px){
  .cal-wrap{border-radius:1.1rem}
  .cal-grid{display:block}
  .cal-head{display:none}
  .cal-cell.is-pad,.cal-cell.no-ev{display:none}
  .cal-cell{min-height:0;border-right:0;padding:1rem 1.1rem 1.15rem}
  .cal-cell:last-child{border-bottom:0}
  .cal-day{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.7rem}
  .cal-dow{
    display:inline;font-family:"Plus Jakarta Sans",system-ui,sans-serif;
    font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;
    font-weight:700;color:var(--gold-ink);
  }
  .cal-day b{font-size:1.3rem}
  .cal-ev{padding:.65rem .7rem;margin-bottom:.55rem}
  .cal-ev-a{font-size:.92rem}
  .cal-ev-d,.cal-loc{font-size:.82rem}
}

/* ---------- 2026 tournament recap: video, photo grid, lightbox ---------- */
.rv-video{position:relative;aspect-ratio:16/9;background:#0E1F3C}
.rv-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.rg-head{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:end;justify-content:space-between}
.rg{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.7rem}
.rg-item{display:block;padding:0;border:0;background:var(--paper-3);border-radius:var(--core-r);overflow:hidden;
  aspect-ratio:3/2;cursor:zoom-in;min-height:44px;transition:transform .7s var(--ease)}
.rg-item img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.rg-item:hover img{transform:scale(1.04)}
.rg-item:active{transform:scale(.985)}
.rg-item:focus-visible{outline:3px solid var(--civic);outline-offset:3px}
.lb{position:fixed;inset:0;z-index:90;background:rgba(9,18,36,.94);display:flex;flex-direction:column;
  align-items:center;justify-content:center;padding:clamp(1rem,3vw,2.5rem);opacity:0;transition:opacity .35s var(--ease-out)}
.lb.on{opacity:1}
.lb[hidden]{display:none}
.lb-fig{margin:0;max-width:min(1400px,100%);flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  transform:scale(.97);transition:transform .5s var(--ease-out)}
.lb.on .lb-fig{transform:none}
.lb-fig img{max-width:100%;max-height:calc(100dvh - 9rem);object-fit:contain;border-radius:1rem}
.lb-fig figcaption{color:rgba(242,223,174,.78);font-size:.9rem;margin-top:.8rem;text-align:center;max-width:60ch}
.lb-bar{display:flex;gap:.6rem;align-items:center;margin-top:1rem;flex-wrap:wrap;justify-content:center}
.lb-btn,.lb-dl{min-width:44px;min-height:44px;border-radius:999px;border:1px solid rgba(242,223,174,.22);
  background:rgba(242,223,174,.08);color:#F2DFAE;font-size:1.4rem;line-height:1;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;padding:0 1rem;text-decoration:none;
  transition:background-color .4s var(--ease),transform .4s var(--ease)}
.lb-dl{font-size:.95rem;font-weight:600;background:var(--lime);color:#16220A;border-color:transparent}
.lb-btn:hover{background:rgba(242,223,174,.18)}.lb-btn:active,.lb-dl:active{transform:scale(.96)}
.lb-btn:focus-visible,.lb-dl:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
.lb-count{color:rgba(242,223,174,.7);font-size:.9rem;min-width:4.5rem;text-align:center}
@media (max-width:640px){.rg{grid-template-columns:repeat(2,1fr);gap:.45rem}}
@media (prefers-reduced-motion:reduce){.lb,.lb-fig,.rg-item,.rg-item img{transition:none}}
