/* Self-hosted fonts — exact files Google Fonts serves, same unicode-ranges,
   moved local to cut the fonts.googleapis.com -> fonts.gstatic.com request chain.
   Kept in sync with upstream weekly by .github/workflows/update-fonts.yml. */
/* BEGIN self-hosted fonts (auto-generated by scripts/update-fonts.mjs — do not edit) */
/* Fredoka hebrew */
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/fredoka-v17-hebrew-1590d3ec.woff2) format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* Fredoka latin-ext */
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/fredoka-v17-latin-ext-18bbd1b5.woff2) format('woff2');
  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;
}
/* Fredoka latin */
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/fredoka-v17-latin-a4a694ae.woff2) format('woff2');
  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;
}
/* Fredoka hebrew */
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/fredoka-v17-hebrew-1590d3ec.woff2) format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* Fredoka latin-ext */
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/fredoka-v17-latin-ext-18bbd1b5.woff2) format('woff2');
  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;
}
/* Fredoka latin */
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/fredoka-v17-latin-a4a694ae.woff2) format('woff2');
  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;
}
/* Fredoka hebrew */
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/fredoka-v17-hebrew-1590d3ec.woff2) format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* Fredoka latin-ext */
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/fredoka-v17-latin-ext-18bbd1b5.woff2) format('woff2');
  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;
}
/* Fredoka latin */
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/fredoka-v17-latin-a4a694ae.woff2) format('woff2');
  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;
}
/* Nunito Sans cyrillic-ext */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/nunito-sans-v19-cyrillic-ext-864cbb44.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* Nunito Sans cyrillic */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/nunito-sans-v19-cyrillic-da866de3.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* Nunito Sans vietnamese */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/nunito-sans-v19-vietnamese-f0fe852d.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* Nunito Sans latin-ext */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/nunito-sans-v19-latin-ext-8aa72ded.woff2) format('woff2');
  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;
}
/* Nunito Sans latin */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/nunito-sans-v19-latin-426536c5.woff2) format('woff2');
  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;
}
/* Nunito Sans cyrillic-ext */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/nunito-sans-v19-cyrillic-ext-864cbb44.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* Nunito Sans cyrillic */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/nunito-sans-v19-cyrillic-da866de3.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* Nunito Sans vietnamese */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/nunito-sans-v19-vietnamese-f0fe852d.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* Nunito Sans latin-ext */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/nunito-sans-v19-latin-ext-8aa72ded.woff2) format('woff2');
  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;
}
/* Nunito Sans latin */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/nunito-sans-v19-latin-426536c5.woff2) format('woff2');
  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;
}
/* END self-hosted fonts */

/* Phish Club — design tokens lifted from the original mascot palette */
:root{
  --ink:        #2E1A10;
  --ink-soft:   #6A5246;
  --blue:       #5667E3;
  --blue-deep:  #2B2F8F;
  --blue-darker:#1E2270;
  --cyan:       #1ED4E6;
  --cyan-soft:  #7DE9F2;
  --orange:     #F5862A;
  --orange-lt:  #FBA94C;
  --gold:       #FFC24B;
  --paper:      #FFF7EA;
  --paper-2:    #FBEAD2;
  --white:      #ffffff;
  --error:      #C73A1F;

  --font-display: 'Fredoka', system-ui, sans-serif;
  --font-body: 'Nunito Sans', system-ui, -apple-system, sans-serif;

  --maxw: 1180px;
  --pad: clamp(1.25rem, 5vw, 4rem);
  --radius: 22px;
  --bd: 2.5px solid var(--ink);
  --pop: 6px 6px 0 var(--ink);
  --pop-sm: 4px 4px 0 var(--ink);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0; font-family:var(--font-body); color:var(--ink); background:var(--paper);
  font-size:clamp(1rem,1.05vw,1.08rem); line-height:1.65; -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }
h1,h2,h3{ font-family:var(--font-display); font-weight:600; line-height:1.05; margin:0; letter-spacing:-.01em; }
a:focus-visible, button:focus-visible{ outline:3px solid var(--blue); outline-offset:3px; }
.hero a:focus-visible, .on-dark a:focus-visible, .on-dark button:focus-visible,
.mobile-menu a:focus-visible, .mobile-menu button:focus-visible,
footer.site a:focus-visible{ outline-color:var(--cyan); }
section[id]{ scroll-margin-top:90px; }
p{ margin:0; }
::selection{ background:var(--cyan); color:var(--ink); }

.wrap{ max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad); }
.eyebrow{
  font-family:var(--font-display); font-weight:600; font-size:.82rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--blue); display:inline-flex; align-items:center; gap:.55rem;
  background:var(--white); border:var(--bd); border-radius:100px; padding:.4rem .9rem; box-shadow:var(--pop-sm);
}
.eyebrow .fishy{ width:16px; height:16px; }
.section-title{ font-size:clamp(2.1rem,4.8vw,3.5rem); margin:1.1rem 0 0; max-width:18ch; font-weight:700; }
.lead{ font-size:clamp(1.05rem,1.5vw,1.22rem); color:var(--ink-soft); max-width:54ch; }

.btn{
  display:inline-flex; align-items:center; gap:.5rem; justify-content:center; font-family:var(--font-display);
  font-weight:600; font-size:1rem; padding:.78em 1.5em; border-radius:100px; border:var(--bd); box-shadow:var(--pop-sm);
  transition:transform .14s ease, box-shadow .14s ease, background .2s ease; white-space:nowrap;
}
.btn:hover{ transform:translate(-2px,-2px); box-shadow:6px 6px 0 var(--ink); }
.btn:active{ transform:translate(2px,2px); box-shadow:1px 1px 0 var(--ink); }
.btn:disabled{ opacity:.6; cursor:not-allowed; transform:none; box-shadow:var(--pop-sm); }
.btn svg{ width:18px; height:18px; }
.btn-primary{ background:var(--orange); color:var(--ink); }
.btn-primary:hover{ background:var(--orange-lt); }
.btn-cyan{ background:var(--cyan); color:var(--ink); }
.btn-cream{ background:var(--paper); color:var(--ink); }
.btn-ghost{ background:transparent; color:var(--ink); box-shadow:none; }
.btn-ghost:hover{ background:var(--white); box-shadow:var(--pop-sm); }
.on-dark .btn-ghost{ color:var(--white); border-color:var(--white); }
.on-dark .btn-ghost:hover{ background:var(--white); color:var(--ink); }

section{ position:relative; }
.pad-y{ padding-block:clamp(4.5rem,9vw,8rem); }

.reveal{ opacity:0; transform:translateY(26px); transition:opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } html{ scroll-behavior:auto; } }

.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; }

.skip-link{ position:fixed; top:.6rem; left:.6rem; z-index:100; background:var(--ink); color:var(--paper); font-family:var(--font-display); font-weight:600; padding:.8rem 1.3rem; border-radius:100px; transform:translateY(-200%); transition:transform .2s; }
.skip-link:focus{ transform:none; }

body.menu-open{ overflow:hidden; }

/* HEADER */
header.site{ position:fixed; inset:0 0 auto 0; z-index:60; transition:background .3s, box-shadow .3s, padding .3s; padding-block:1rem; }
header.site .bar{ display:flex; align-items:center; justify-content:space-between; gap:1.2rem; }
.brand{ display:inline-flex; align-items:center; gap:.6rem; font-family:var(--font-display); font-weight:700; font-size:1.5rem; color:var(--ink); }
.brand img{ width:46px; height:46px; flex:none; filter:drop-shadow(2px 2px 0 rgba(46,26,16,.18)); }
nav.primary{ display:flex; align-items:center; gap:1.7rem; }
nav.primary a{ font-family:var(--font-display); font-weight:500; font-size:1rem; color:var(--ink); position:relative; }
nav.primary a::after{ content:""; position:absolute; left:0; right:0; bottom:-5px; height:3px; background:var(--orange); border-radius:3px; transform:scaleX(0); transform-origin:left; transition:transform .22s; }
nav.primary a:hover::after{ transform:scaleX(1); }
.header-cta{ display:inline-flex; align-items:center; gap:.9rem; }
header.site.scrolled{ background:var(--paper); box-shadow:0 3px 0 var(--ink); padding-block:.6rem; border-bottom:2.5px solid var(--ink); }

.nav-toggle{ display:none; width:48px; height:48px; border-radius:14px; border:var(--bd); background:var(--white); box-shadow:var(--pop-sm); align-items:center; justify-content:center; color:var(--ink); }
.nav-toggle svg{ width:24px; height:24px; }

.mobile-menu{ position:fixed; inset:0; z-index:70; background:var(--blue-deep); display:flex; flex-direction:column; padding:6rem var(--pad) 2.5rem; transform:translateY(-100%); transition:transform .4s cubic-bezier(.4,0,.2,1); visibility:hidden; }
.mobile-menu.open{ transform:none; visibility:visible; }
.mobile-menu a{ color:var(--white); font-family:var(--font-display); font-weight:600; font-size:1.9rem; padding:.5rem 0; border-bottom:2px solid rgba(255,255,255,.15); }
.mobile-menu .btn{ margin-top:2rem; align-self:flex-start; }
.mobile-menu .close{ position:absolute; top:1.3rem; right:var(--pad); color:var(--white); width:48px; height:48px; }
.mobile-menu .close svg{ width:30px; height:30px; }

/* HERO */
.hero{ position:relative; color:var(--white); overflow:hidden; padding-top:clamp(7rem,12vw,9rem); padding-bottom:0;
  background:radial-gradient(120% 90% at 85% 0%, var(--blue) 0%, var(--blue-deep) 55%, var(--blue-darker) 100%); }
.hero .bubbles span{ position:absolute; border-radius:50%; background:rgba(126,233,242,.18); border:2px solid rgba(126,233,242,.35); }
.hero .bubbles span:nth-child(1){ width:120px; height:120px; top:18%; left:6%; }
.hero .bubbles span:nth-child(2){ width:54px; height:54px; top:62%; left:14%; }
.hero .bubbles span:nth-child(3){ width:30px; height:30px; top:34%; left:46%; }
.hero .bubbles span:nth-child(4){ width:80px; height:80px; bottom:16%; right:8%; }
.hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:2rem; align-items:center; }
.hero-copy{ position:relative; z-index:3; padding-bottom:clamp(4rem,8vw,7rem); }
.hero .badge{ display:inline-flex; align-items:center; gap:.5rem; background:rgba(255,255,255,.12); border:2px solid rgba(255,255,255,.3); border-radius:100px; padding:.45rem 1rem; font-weight:700; font-size:.84rem; margin-bottom:1.6rem; backdrop-filter:blur(4px); }
.hero .badge .dot{ width:9px; height:9px; border-radius:50%; background:var(--cyan); box-shadow:0 0 0 4px rgba(30,212,230,.3); }
.hero h1{ font-size:clamp(2.8rem,6.6vw,5.2rem); font-weight:700; max-width:15ch; line-height:1.02; }
.hero h1 .hl{ color:var(--gold); position:relative; white-space:nowrap; }
.hero h1 .hl::after{ content:""; position:absolute; left:0; right:0; bottom:.04em; height:.16em; background:var(--orange); border-radius:6px; z-index:-1; }
.hero .tagline{ margin-top:1.5rem; font-size:clamp(1.08rem,1.6vw,1.32rem); max-width:46ch; color:rgba(255,255,255,.9); }
.hero .cta-row{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:2.3rem; }
.hero .pills{ display:flex; flex-wrap:wrap; gap:.55rem; margin-top:2.4rem; }
.hero .pills span{ font-family:var(--font-display); font-weight:600; font-size:.86rem; padding:.4rem .9rem; border-radius:100px; background:rgba(255,255,255,.12); border:2px solid rgba(255,255,255,.28); color:#fff; }
.hero-art{ position:relative; z-index:2; align-self:end; }
.hero-art .glow{ position:absolute; inset:6% 6% 12% 6%; background:radial-gradient(circle, rgba(30,212,230,.5), transparent 62%); filter:blur(8px); }
.hero-art img{ position:relative; width:100%; max-width:540px; margin:0 auto; filter:drop-shadow(0 22px 30px rgba(0,0,0,.35)); animation:bob 5s ease-in-out infinite; }
@keyframes bob{ 0%,100%{ transform:translateY(0) rotate(-1deg); } 50%{ transform:translateY(-14px) rotate(1deg); } }
@media (prefers-reduced-motion:reduce){ .hero-art img{ animation:none; } }

.wave{ display:block; width:100%; height:auto; position:relative; z-index:4; margin-top:-1px; }
.wave.flip{ transform:scaleY(-1); }

/* ABOUT */
.about{ background:var(--paper); }
.about .grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.about .mission{ font-family:var(--font-display); font-weight:500; font-size:clamp(1.45rem,2.3vw,2rem); line-height:1.3; margin:1.5rem 0; }
.about .mission .hl{ color:var(--orange); }
.about .blurb{ color:var(--ink-soft); max-width:50ch; }
.about .values{ display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.8rem; }
.about .values span{ font-family:var(--font-display); font-weight:500; font-size:.92rem; background:var(--white); border:var(--bd); padding:.45rem 1rem; border-radius:100px; box-shadow:var(--pop-sm); }
.about-card{ position:relative; border:var(--bd); border-radius:var(--radius); background:linear-gradient(150deg, var(--blue) 0%, var(--blue-deep) 100%); box-shadow:var(--pop); padding:2rem; overflow:hidden; color:var(--white); }
.about-card .screen{ position:absolute; inset:auto -10% -30% -10%; height:60%; background:radial-gradient(120% 120% at 50% 0%, var(--cyan) 0%, transparent 70%); opacity:.5; }
.about-card h3{ color:var(--white); font-size:1.5rem; position:relative; }
.about-card p{ position:relative; color:rgba(255,255,255,.88); margin-top:.6rem; }
.about-card .stat-list{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:1.4rem; position:relative; }
.about-card .mini{ background:rgba(255,255,255,.1); border:2px solid rgba(255,255,255,.22); border-radius:16px; padding:1rem; }
.about-card .mini .n{ font-family:var(--font-display); font-weight:700; font-size:1.55rem; color:var(--gold); line-height:1.05; }
.about-card .mini .l{ font-size:.82rem; color:rgba(255,255,255,.82); margin-top:.3rem; }
.about-card .est{ position:relative; margin-top:1.4rem; font-weight:700; color:var(--cyan-soft); }

/* LEADERSHIP */
.leaders{ background:var(--paper); }
.head-row{ display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; flex-wrap:wrap; margin-bottom:3rem; }
.head-row.center{ flex-direction:column; align-items:center; text-align:center; }
.head-row.center .section-title{ margin-inline:auto; }
.head-row.center .lead{ margin-inline:auto; }
.cards-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.leader-card{ background:var(--white); border:var(--bd); border-radius:var(--radius); overflow:hidden; box-shadow:var(--pop-sm); transition:transform .16s, box-shadow .16s; }
.leader-card:hover{ transform:translate(-3px,-3px); box-shadow:var(--pop); }
.leader-card .photo{ aspect-ratio:1/.85; display:grid; place-items:center; position:relative; border-bottom:var(--bd); }
.photo.g-blue{ background:linear-gradient(150deg,var(--blue),var(--blue-deep)); }
.photo.g-orange{ background:linear-gradient(150deg,var(--orange),var(--orange-lt)); }
.photo.g-cyan{ background:linear-gradient(150deg,var(--cyan),var(--blue)); }
.photo.g-gold{ background:linear-gradient(150deg,var(--gold),var(--orange)); }
.photo.g-sky{ background:linear-gradient(150deg,var(--blue),var(--cyan)); }
.photo.g-amber{ background:linear-gradient(150deg,var(--orange-lt),var(--gold)); }
.leader-card .photo .initials{ font-family:var(--font-display); font-weight:700; font-size:2.6rem; color:var(--white); }
.leader-card .photo .badge-ic{ position:absolute; right:.7rem; bottom:.7rem; width:38px; height:38px; background:var(--white); border:2.5px solid var(--ink); border-radius:50%; display:grid; place-items:center; }
.leader-card .photo .badge-ic svg{ width:20px; height:20px; }
.leader-card .body{ padding:1.2rem 1.3rem 1.5rem; }
.leader-card h3{ font-size:1.32rem; }
.leader-card .role{ font-family:var(--font-display); font-weight:600; color:var(--blue); font-size:.86rem; letter-spacing:.04em; text-transform:uppercase; margin-top:.2rem; }

/* EVENTS — Lu.ma embed */
.events{ background:var(--blue-deep); color:var(--white); }
.events .eyebrow{ color:var(--blue-deep); }
.events .section-title{ color:var(--white); }
.events .lead{ color:rgba(255,255,255,.8); }
.luma-embed{
  background:var(--white); border:var(--bd); border-radius:var(--radius); box-shadow:var(--pop);
  overflow:hidden; margin-top:1rem;
}
.luma-embed iframe{ width:100%; height:680px; border:0; display:block; background:var(--white); }
.luma-fallback{ padding:3rem 2rem; text-align:center; color:var(--ink); }
.luma-fallback h3{ font-size:1.5rem; margin-bottom:.6rem; }
.luma-fallback p{ color:var(--ink-soft); max-width:42ch; margin:0 auto 1.4rem; }

/* GET INVOLVED */
.involve{ background:var(--paper-2); }
.ways{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
.way{ background:var(--white); border:var(--bd); border-radius:var(--radius); padding:2.2rem 1.8rem; text-align:center; box-shadow:var(--pop-sm); transition:transform .16s, box-shadow .16s; display:flex; flex-direction:column; }
.way:hover{ transform:translate(-3px,-3px); box-shadow:var(--pop); }
.way .ic{ width:74px; height:74px; border-radius:22px; border:2.5px solid var(--ink); display:grid; place-items:center; margin:0 auto 1.4rem; box-shadow:var(--pop-sm); }
.way .ic svg{ width:34px; height:34px; color:var(--ink); }
.way:nth-child(1) .ic{ background:var(--orange); }
.way:nth-child(2) .ic{ background:var(--cyan); }
.way:nth-child(3) .ic{ background:var(--gold); }
.way h3{ font-size:1.5rem; }
.way p{ color:var(--ink-soft); margin:.7rem 0 1.5rem; font-size:.97rem; flex:1; }

/* CONTACT */
.contact{ background:var(--blue-deep); color:var(--white); }
.contact .eyebrow{ color:var(--blue-deep); }
.contact .grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2.5rem,6vw,5rem); }
.contact .section-title{ color:var(--white); }
.contact .blurb{ color:rgba(255,255,255,.85); margin-top:1.3rem; max-width:38ch; }
.contact-info{ margin-top:2rem; display:flex; flex-direction:column; gap:1.1rem; }
.contact-info .row{ display:flex; gap:.9rem; align-items:flex-start; }
.contact-info .row .ic{ width:46px; height:46px; flex:none; border-radius:14px; background:var(--cyan); border:2.5px solid var(--ink); display:grid; place-items:center; color:var(--ink); box-shadow:var(--pop-sm); }
.contact-info .row .ic svg{ width:21px; height:21px; }
.contact-info .row .t{ font-family:var(--font-display); font-weight:600; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--cyan-soft); }
.contact-info .row .v{ font-size:1.02rem; }
.contact-info .row a:hover{ color:var(--cyan-soft); }
.contact-socials{ display:flex; gap:.7rem; margin-top:1.8rem; flex-wrap:wrap; }
.contact-socials a{ width:48px; height:48px; border-radius:50%; background:var(--white); border:2.5px solid var(--ink); display:grid; place-items:center; color:var(--ink); box-shadow:var(--pop-sm); transition:transform .14s, box-shadow .14s, background .2s; }
.contact-socials a:hover{ transform:translate(-2px,-2px); box-shadow:var(--pop-sm); background:var(--orange); }
.contact-socials svg{ width:20px; height:20px; }

.contact-form{ background:var(--white); color:var(--ink); border:var(--bd); border-radius:var(--radius); padding:clamp(1.6rem,3vw,2.6rem); box-shadow:var(--pop); }
.field{ margin-bottom:1.3rem; }
.field label{ display:block; font-family:var(--font-display); font-weight:600; font-size:.86rem; letter-spacing:.03em; margin-bottom:.45rem; }
.field input, .field select, .field textarea{ width:100%; border:2.5px solid var(--ink); background:var(--paper); color:var(--ink); border-radius:14px; padding:.85em 1em; font-family:inherit; font-size:1rem; transition:box-shadow .15s, border-color .15s; }
.field textarea{ resize:vertical; min-height:130px; }
.field select{ appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%232E1A10' stroke-width='2.5' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1em center; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; box-shadow:var(--pop-sm); }
.field input::placeholder, .field textarea::placeholder{ color:var(--ink-soft); opacity:.9; }
.field.error input, .field.error select, .field.error textarea{ border-color:var(--error); box-shadow:3px 3px 0 var(--error); }
.field .err{ display:none; color:var(--error); font-size:.85rem; margin-top:.4rem; font-weight:700; }
.field.error .err{ display:block; }
.honeypot{ position:absolute; left:-9999px; width:1px; height:1px; opacity:0; pointer-events:none; }
.row-2{ display:grid; grid-template-columns:1fr 1fr; gap:1.3rem; }
.form-foot{ display:flex; align-items:center; gap:1.2rem; flex-wrap:wrap; }
.form-status{ font-family:var(--font-display); font-weight:600; min-height:1.4em; }
.form-status.success{ color:var(--blue); display:inline-flex; align-items:center; gap:.45rem; }
.form-status.error{ color:var(--error); }
.form-status svg{ width:20px; height:20px; }

/* FOOTER */
footer.site{ background:var(--ink); color:rgba(255,247,234,.72); padding-block:clamp(3rem,6vw,4.5rem) 2rem; }
.foot-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2.5rem; padding-bottom:2.6rem; border-bottom:2px solid rgba(255,247,234,.16); }
.foot-brand .brand{ color:var(--paper); margin-bottom:1.1rem; }
.foot-brand p{ max-width:34ch; font-size:.95rem; }
.foot-col h3{ font-size:.82rem; letter-spacing:.08em; text-transform:uppercase; color:var(--cyan); margin-bottom:1rem; }
.foot-col a{ display:block; padding:.32rem 0; font-size:.96rem; transition:.18s; }
.foot-col a:hover{ color:var(--paper); padding-left:.3rem; }
.foot-social{ display:flex; gap:.6rem; margin-top:1.3rem; flex-wrap:wrap; }
.foot-social a{ width:42px; height:42px; border-radius:50%; background:rgba(255,247,234,.1); border:2px solid rgba(255,247,234,.25); display:grid; place-items:center; color:var(--paper); transition:.2s; }
.foot-social a:hover{ background:var(--orange); border-color:var(--orange); color:var(--ink); }
.foot-social svg{ width:18px; height:18px; }
.foot-bottom{ display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; padding-top:1.8rem; font-size:.85rem; }

/* RESPONSIVE */
@media (max-width:980px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-art{ max-width:420px; margin:0 auto; }
  .hero-art img{ animation:none; }
  .cards-3{ grid-template-columns:repeat(2,1fr); }
  .about .grid{ grid-template-columns:1fr; }
  .ways{ grid-template-columns:1fr; }
  .contact .grid{ grid-template-columns:1fr; }
  .foot-grid{ grid-template-columns:1fr 1fr; gap:2rem; }
  nav.primary{ display:none; }
  .header-cta .btn{ display:none; }
  .nav-toggle{ display:inline-flex; }
  .luma-embed iframe{ height:560px; }
}
@media (max-width:560px){
  .cards-3{ grid-template-columns:1fr; }
  .row-2{ grid-template-columns:1fr; }
  .foot-grid{ grid-template-columns:1fr; }
  .luma-embed iframe{ height:520px; }
}
