/* ═══════════════════════════════════════════
   SPARC-ASC · sparc-nasa.css · v3 (clean)
   Redesigned from scratch — matches HTML exactly
   Palette: #5929D1 purple · #EACA4A gold · #07070f bg
   ═══════════════════════════════════════════ */

/* ── 0. WP CONFLICT OVERRIDES ─────────────── */
html { margin-top:0 !important; overflow-x:hidden; }
body { background:#07070f !important; color:#fff !important; font-family:'Saira',sans-serif !important; }
#wpadminbar { position:fixed !important; z-index:999999 !important; }
body.admin-bar #site-header { top:32px !important; }
@media(max-width:782px){ body.admin-bar #site-header { top:46px !important; } }

/* Kill WP theme chrome */
#masthead, #site-navigation, .site-header-main,
.wp-site-blocks > header:not(#site-header),
.wp-block-template-part > header,
.elementor-location-header { display:none !important; }

/* Reset WP containers */
.wp-site-blocks, .entry-content, .page-content,
#page, #content, #primary, .site-content {
  max-width:none !important; padding:0 !important;
  margin:0 !important; width:100% !important;
}
#main, .page { padding-top:0 !important; margin-top:0 !important; }
#main p, #site-header p, #site-footer p { margin:0; }

/* ── 1. VARIABLES ─────────────────────────── */
:root {
  --bg:     #07070f;
  --bg1:    #0e0e1c;
  --bg2:    #151528;
  --pu:     #5929D1;
  --pu-h:   #6d38f0;
  --pu-l:   #8775FF;
  --pu-dim: rgba(89,41,209,.14);
  --go:     #EACA4A;
  --go-dim: rgba(234,202,74,.10);
  --w1:     rgba(255,255,255,.90);
  --w2:     rgba(255,255,255,.60);
  --w3:     rgba(255,255,255,.32);
  --w4:     rgba(255,255,255,.15);
  --w5:     rgba(255,255,255,.07);
  --bd:     rgba(255,255,255,.07);
  --bd2:    rgba(255,255,255,.13);
  --r:      10px;
  --hh:     64px;
  --pad:    1.25rem;
  --max:    1280px;
}

/* ── 2. BASE ──────────────────────────────── */
*, *::before, *::after { box-sizing:border-box; }
body { margin:0; line-height:1.5; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
ul, ol { list-style:none; margin:0; padding:0; }
button { cursor:pointer; font-family:inherit; }
h1,h2,h3,h4,h5,h6 { margin:0; }
p { margin:0; }
strong { font-weight:700; }
em { font-style:italic; }
address { font-style:normal; }

/* ── 3. HEADER ────────────────────────────── */
#site-header {
  position:fixed; top:0; left:0; right:0; z-index:200;
  height:var(--hh);
  background:rgba(7,7,15,.88);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid var(--bd);
  transition:border-color .3s, background .3s;
}
#site-header.nav--scrolled {
  border-bottom-color:rgba(255,255,255,.14);
  background:rgba(7,7,15,.96);
}
.header-glass { display:none; } /* glass done via #site-header background */

/* Header inner layout */
#site-header > div:not(.header-glass) {
  position:relative; z-index:1;
  max-width:var(--max); margin:0 auto;
  padding:0 var(--pad);
  height:var(--hh);
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
}

/* Brand */
.nav-brand {
  display:flex; align-items:center; gap:.75rem;
  flex-shrink:0; text-decoration:none;
}
#brand-logo { width:36px; height:36px; border-radius:50%; object-fit:cover; flex-shrink:0; }
#brand-text {
  font-size:.72rem; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--w1); white-space:nowrap;
}

/* Desktop nav */
.nav-menu { display:none; align-items:center; gap:0; }
@media(min-width:1024px){ .nav-menu { display:flex; } }
.nav-item { position:relative; }
.nav-link, .nav-trigger {
  display:flex; align-items:center; gap:.3rem;
  padding:.45rem .8rem;
  font-size:.8rem; font-weight:500;
  color:var(--w2); border-radius:6px;
  border:none; background:none; font-family:inherit;
  cursor:pointer; white-space:nowrap;
  transition:color .15s, background .15s;
}
.nav-link:hover, .nav-trigger:hover,
.nav-link:focus-visible { color:#fff; background:rgba(255,255,255,.06); }

/* Nav dropdown panels */
.nav-panel {
  position:absolute; top:100%; left:0;
  min-width:200px;
  background:var(--bg1);
  border:1px solid var(--bd2);
  border-radius:var(--r);
  /* padding-top bridges the gap so mouse doesn't leave nav-item */
  padding:8px .5rem .5rem;
  opacity:0; pointer-events:none;
  transform:translateY(-4px);
  transition:opacity .18s, transform .18s;
  z-index:300;
}
/* Invisible bridge above the panel — keeps hover active while mouse travels */
.nav-panel::before {
  content:''; position:absolute;
  top:-10px; left:0; right:0; height:10px;
}
.nav-panel--wide { min-width:420px; }
.nav-item:hover .nav-panel,
.nav-item:focus-within .nav-panel,
.nav-panel.is-open {
  opacity:1; pointer-events:auto; transform:translateY(0);
}
.nav-panel-inner { display:flex; flex-direction:column; gap:1px; }
.nav-panel-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 .75rem; }
.nav-col { display:flex; flex-direction:column; gap:1px; }
.nav-col-title {
  font-size:.65rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--w4); padding:.5rem .7rem .3rem;
}
.nav-panel-link {
  display:block; padding:.4rem .7rem;
  font-size:.8rem; color:var(--w2); border-radius:6px;
  transition:color .14s, background .14s;
}
.nav-panel-link:hover { color:#fff; background:rgba(255,255,255,.06); }

/* TBC badges in nav */
.tbc {
  display:inline-block; font-size:.6rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
  background:var(--pu-dim); color:var(--pu-l);
  border-radius:4px; padding:1px 5px; margin-left:.35rem;
}
.tbc--alt { background:var(--go-dim); color:var(--go); }

/* Header right */
.header-right { display:flex; align-items:center; gap:.6rem; flex-shrink:0; }
.header-social { display:flex; align-items:center; gap:.1rem; }
.social-btn {
  display:flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius:6px;
  color:var(--w3); transition:color .14s, background .14s;
}
.social-btn:hover { color:#fff; background:rgba(255,255,255,.07); }
.social-btn svg { width:16px; height:16px; }

/* Buttons */
.btn-nasa {
  display:inline-flex; align-items:center; justify-content:center; gap:.4rem;
  padding:.5rem 1.1rem;
  background:var(--pu); color:#fff;
  font-size:.8rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  border:none; border-radius:6px; cursor:pointer; white-space:nowrap;
  transition:background .15s, transform .15s;
  text-decoration:none;
}
.btn-nasa:hover { background:var(--pu-h); transform:translateY(-1px); }

.btn-ghost {
  display:inline-flex; align-items:center; justify-content:center; gap:.4rem;
  padding:.5rem 1.1rem;
  background:transparent; color:var(--w2);
  font-size:.8rem; font-weight:600; letter-spacing:.06em;
  border:1px solid var(--bd2); border-radius:6px; cursor:pointer; white-space:nowrap;
  transition:color .15s, border-color .15s, transform .15s;
  text-decoration:none;
}
.btn-ghost:hover { color:#fff; border-color:var(--w2); transform:translateY(-1px); }

/* Hamburger */
.nav-hamburger {
  display:flex; align-items:center; justify-content:center;
  width:36px; height:36px; border:none; background:none;
  color:var(--w2); cursor:pointer; flex-shrink:0;
}
@media(min-width:1024px){ .nav-hamburger { display:none; } }

/* ── 4. MOBILE NAV ────────────────────────── */
.mobile-nav {
  display:none; position:fixed; inset:0; z-index:190;
  background:rgba(7,7,15,.97);
  flex-direction:column; padding:2rem var(--pad);
  overflow-y:auto;
}
.mobile-nav.is-open { display:flex; }
.mobile-nav-inner { display:flex; flex-direction:column; gap:0; }
.mobile-nav-close {
  align-self:flex-end; background:none; border:none;
  color:var(--w2); margin-bottom:1.5rem; cursor:pointer;
}
.mobile-nav-close svg { width:24px; height:24px; }
.mobile-nav-link {
  display:block; padding:1rem 0;
  font-size:1.1rem; font-weight:600; color:var(--w2);
  border-bottom:1px solid var(--bd);
  transition:color .14s;
}
.mobile-nav-link:hover { color:#fff; }

/* ── 5. HOME LEVELS ───────────────────────── */
.levels-wrapper { width:100%; }
.levels-scroll { /* free scroll — no snap */ }
.level {
  position:relative;
  width:100%; min-height:100vh;
  display:flex; align-items:center;
  overflow:hidden;
}

/* Level modifiers */
.level--cover   { }
.level--slogan  { min-height:100vh; } /* full viewport, no bleed */
.level--logo    { background:radial-gradient(ellipse 80% 70% at 50% 40%, rgba(89,41,209,.18) 0%, #07070f 70%); }
.level--carousel{ overflow:hidden; }
.level--council { }
.level--join    { }

/* Level backgrounds */
.level-bg {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  background-repeat:no-repeat;
}
.level-bg--deep { background:linear-gradient(160deg, #0a0a1a 0%, #0e0e24 100%); }
.level-bg--cosmic { background:radial-gradient(ellipse 80% 70% at 50% 40%, rgba(89,41,209,.2) 0%, #07070f 70%); }
.level-bg--join { background:radial-gradient(ellipse 80% 60% at 50% 50%, rgba(89,41,209,.25) 0%, #07070f 70%); }
.level-bg-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to right, rgba(7,7,15,.85) 0%, rgba(7,7,15,.4) 60%, transparent 100%);
}
.level-bg-overlay--carousel {
  background:linear-gradient(to right, rgba(7,7,15,.9) 0%, rgba(7,7,15,.55) 55%, rgba(7,7,15,.1) 100%);
}
.level-grid-overlay {
  position:absolute; inset:0; pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size:60px 60px;
}

/* Level content */
.level-content {
  position:relative; z-index:2;
  padding:calc(var(--hh) + 2rem) var(--pad) 3rem;
  max-width:var(--max); margin:0 auto; width:100%;
}
.level-content--center { text-align:center; display:flex; flex-direction:column; align-items:center; }

/* Eyebrow */
.level-eyebrow {
  font-family:'Space Mono', monospace;
  font-size:.65rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  color:var(--go); margin-bottom:1.2rem; display:block;
  text-shadow:0 0 20px rgba(234,202,74,.4);
}
.terminal-blink::after {
  content:'_'; animation:blink 1s step-end infinite;
}
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }

/* Cover title */
.level-hero-title {
  display:flex; flex-direction:column;
  margin-bottom:1.4rem; line-height:.92;
}
.level-title-line {
  font-size:clamp(3.5rem,12vw,8rem); font-weight:900;
  letter-spacing:-.03em; color:#fff;
}
.level-title-line--accent { color:var(--pu-l); }
.level-hero-sub {
  font-size:clamp(.9rem,2vw,1.1rem); color:rgba(255,255,255,.85);
  max-width:520px; margin-bottom:2rem; line-height:1.6;
  text-shadow:0 1px 8px rgba(0,0,0,.6);
}

/* CTA button (level) */
.level-cta {
  display:inline-flex; align-items:center; gap:.6rem;
  padding:.6rem 1.4rem;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.25); border-radius:8px;
  font-size:.85rem; font-weight:700; color:#fff;
  cursor:pointer; transition:background .15s, border-color .15s;
  text-decoration:none; backdrop-filter:blur(4px);
}
.level-cta:hover { background:rgba(255,255,255,.15); }
.level-cta--primary { background:var(--pu); border-color:var(--pu); }
.level-cta--primary:hover { background:var(--pu-h); }
.level-cta-dot {
  width:6px; height:6px; border-radius:50%;
  background:var(--pu-l); flex-shrink:0;
}
.level-cta-row { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; margin-top:2rem; }
.level-cta-row--center { justify-content:center; }

/* Level 2 — slogan */
.level-slogan {
  font-size:clamp(2.2rem,7vw,5.5rem); font-weight:900;
  line-height:1; letter-spacing:-.03em; color:#fff;
  max-width:700px; margin-bottom:1.5rem;
}
.level-slogan-sub {
  font-size:clamp(.85rem,2vw,1rem); color:var(--w2);
  max-width:500px; margin-bottom:3rem; line-height:1.7;
}
.level-values { display:flex; flex-direction:column; gap:1.2rem; }
.level-value {
  display:flex; align-items:flex-start; gap:1.2rem;
  border-top:1px solid var(--bd); padding-top:1rem;
}
.level-value-num {
  font-family:'Space Mono', monospace; font-size:.72rem;
  color:var(--pu-l); font-weight:700; flex-shrink:0; width:2rem;
}
.level-value strong { display:block; color:#fff; font-weight:700; margin-bottom:.2rem; font-size:.9rem; }
.level-value em { color:var(--w3); font-style:normal; font-size:.82rem; }

/* Level 3 — logo */
.gsap-logo-wrap {
  position:relative; width:200px; height:200px;
  display:flex; align-items:center; justify-content:center;
  margin-bottom:2rem;
}
.gsap-logo-ring {
  position:absolute; inset:0; border-radius:50%;
  border:1.5px solid rgba(135,117,255,.35);
}
/* Rings are larger than wrap — parent needs overflow:visible */
.gsap-logo-wrap { overflow:visible; }
.gsap-logo-ring--1 { inset:-20px; border-color:rgba(135,117,255,.30); }
.gsap-logo-ring--2 { inset:-40px; border-color:rgba(89,41,209,.20); border-style:dashed; }
.gsap-logo-ring--3 { inset:-65px; border-color:rgba(89,41,209,.10); }
.gsap-logo-glow {
  position:absolute; inset:-20px; border-radius:50%;
  background:radial-gradient(ellipse at center, rgba(89,41,209,.25) 0%, transparent 70%);
}
.gsap-logo-img { width:160px; height:160px; border-radius:50%; object-fit:cover; position:relative; z-index:1; }
.level-title-big {
  font-size:clamp(2rem,5vw,3.5rem); font-weight:900;
  letter-spacing:-.03em; color:#fff; margin-bottom:.75rem;
}
.level-tagline { font-size:1rem; color:var(--w3); }

/* Level 4 — carousel */
.level-carousel { position:absolute; inset:0; }
.carousel-slide {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  opacity:0; transition:opacity .7s ease;
}
.carousel-slide.is-active { opacity:1; }
.carousel-nav {
  position:absolute; bottom:2rem; right:var(--pad);
  display:flex; gap:.5rem; z-index:3;
}
.carousel-dot {
  width:8px; height:8px; border-radius:50%;
  background:rgba(255,255,255,.3); border:none; cursor:pointer;
  transition:background .2s, transform .2s;
}
.carousel-dot.is-active { background:#fff; transform:scale(1.3); }
.level-title {
  font-size:clamp(2rem,5vw,3.5rem); font-weight:900;
  letter-spacing:-.02em; color:#fff; margin-bottom:.75rem;
}
.level-sub { font-size:1rem; color:var(--w2); margin-bottom:1.5rem; line-height:1.6; }

/* Level 5 — council stats */
.level-stats-row { display:flex; gap:2.5rem; margin:2rem 0; flex-wrap:wrap; }
.level-stat { display:flex; flex-direction:column; gap:.2rem; }
.level-stat-num {
  font-size:clamp(2rem,5vw,3rem); font-weight:900;
  color:var(--pu-l); letter-spacing:-.03em; line-height:1;
}
.level-stat-lbl { font-size:.75rem; color:var(--w3); text-transform:uppercase; letter-spacing:.12em; font-family:'Space Mono',monospace; }

/* Level 6 — join */
.level-join-glow {
  position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 70% 60% at 50% 50%, rgba(89,41,209,.3) 0%, transparent 65%);
}
.level-title-huge {
  font-size:clamp(4rem,14vw,10rem); font-weight:900;
  letter-spacing:-.04em; color:#fff; line-height:.9;
  margin-bottom:1.5rem;
}
.level-sub--center { text-align:center; }
.level-big-cta { font-size:.9rem; padding:.7rem 1.6rem; }
.level-join-foot {
  margin-top:3rem; font-size:.7rem; color:var(--w4);
  font-family:'Space Mono',monospace; letter-spacing:.1em;
}

/* ── 6. SECTION WRAPPER ───────────────────── */
/* All interior sections */
#about, #programs, #rascal, #track-record, #divisions,
#engagement, #events, #community, #spacelab, #story,
#gallery, #sponsors, #contact {
  padding:5rem var(--pad);
}
/* Alternate bg */
#programs, #track-record, #engagement, #community, #story, #sponsors {
  background:var(--bg1);
}

/* Inner container (Tailwind max-w-7xl mx-auto) */
#about > div, #programs > div, #rascal > div, #track-record > div,
#divisions > div, #engagement > div, #events > div, #community > div,
#spacelab > div, #story > div, #gallery > div, #sponsors > div,
#contact > div {
  max-width:var(--max); margin:0 auto; width:100%;
}

/* ── 7. SECTION HEAD ──────────────────────── */
.section-head { margin-bottom:3rem; }
.section-head--center, .section-head.text-center { text-align:center; }
.section-eyebrow {
  font-family:'Space Mono',monospace;
  font-size:.62rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  color:var(--go); margin-bottom:.6rem; display:block;
}
.section-title {
  font-size:clamp(2rem,5vw,3.2rem); font-weight:900;
  letter-spacing:-.02em; color:#fff; line-height:1.05;
}

/* ── 8. ABOUT ─────────────────────────────── */
.values-head { margin-bottom:2rem; }
.values-eyebrow {
  font-family:'Space Mono',monospace; font-size:.62rem;
  letter-spacing:.18em; text-transform:uppercase; color:var(--w4); margin-bottom:.35rem; display:block;
}
.values-title { font-size:1.35rem; font-weight:800; margin-bottom:1.5rem; color:#fff; }
.values-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1rem; margin-bottom:3rem;
}
.value-card {
  background:var(--bg2); border:1px solid var(--bd);
  border-radius:var(--r); padding:1.5rem;
}
.value-num {
  font-family:'Space Mono',monospace; font-size:.65rem;
  color:var(--pu-l); font-weight:700; display:block; margin-bottom:.75rem;
}
.value-name { font-size:1rem; font-weight:700; color:#fff; margin-bottom:.4rem; }
.value-desc { font-size:.85rem; color:var(--w3); line-height:1.6; }

/* Vision/Mission cards */
.vm-card {
  background:var(--bg2); border:1px solid var(--bd);
  border-radius:var(--r); padding:2rem;
}
.vm-card--mission { border-color:var(--pu-dim); background:rgba(89,41,209,.06); }

/* Badge */
.badge {
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.65rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  background:var(--pu-dim); color:var(--pu-l);
  border-radius:20px; padding:.25rem .75rem;
}
.badge--outline { background:transparent; border:1px solid var(--bd2); color:var(--w3); }

/* Status LED */
.status-led {
  width:6px; height:6px; border-radius:50%; flex-shrink:0;
  background:var(--w4);
}
.status-led--active { background:#4ade80; box-shadow:0 0 6px rgba(74,222,128,.5); }
.status-led--historic { background:var(--go); }

/* About text helpers */
.text-white\/55 { color:rgba(255,255,255,.55); }
.text-white\/50 { color:rgba(255,255,255,.50); }
.text-white\/40 { color:rgba(255,255,255,.40); }
.text-white\/30 { color:rgba(255,255,255,.30); }
.text-white { color:#fff; }
.text-lg { font-size:1.125rem; line-height:1.75; }
.leading-relaxed { line-height:1.75; }
.max-w-3xl { max-width:48rem; }
.max-w-4xl { max-width:56rem; }
.mb-16 { margin-bottom:4rem; }
.mb-12 { margin-bottom:3rem; }
.mb-10 { margin-bottom:2.5rem; }
.mb-6 { margin-bottom:1.5rem; }
.mb-5 { margin-bottom:1.25rem; }
.mb-4 { margin-bottom:1rem; }
.mb-3 { margin-bottom:.75rem; }
.mt-auto { margin-top:auto; }
.mt-6 { margin-top:1.5rem; }
.mt-5 { margin-top:1.25rem; }
.mt-4 { margin-top:1rem; }
.text-2xl { font-size:1.5rem; line-height:1.3; }
.text-xl { font-size:1.25rem; line-height:1.4; }
.text-sm { font-size:.875rem; }
.text-xs { font-size:.75rem; }
.font-bold { font-weight:700; }
.font-semibold { font-weight:600; }
.font-mono { font-family:'Space Mono',monospace; }
.uppercase { text-transform:uppercase; }
.not-italic { font-style:normal; }
.tracking-\[0\.16em\] { letter-spacing:.16em; }
.tracking-\[0\.15em\] { letter-spacing:.15em; }
.tracking-\[0\.1em\] { letter-spacing:.1em; }
.tracking-\[0\.08em\] { letter-spacing:.08em; }
.space-y-6 > * + * { margin-top:1.5rem; }
.space-y-0 > * + * { margin-top:0; }

/* Grid utilities */
.grid { display:grid; }
.gap-6 { gap:1.5rem; }
.gap-5 { gap:1.25rem; }
.gap-4 { gap:1rem; }
.gap-3 { gap:.75rem; }
.gap-10 { gap:2.5rem; }
.gap-8 { gap:2rem; }
.gap-14 { gap:3.5rem; }
.grid-cols-2 { grid-template-columns:repeat(2,1fr); }
@media(min-width:768px){
  .md\:grid-cols-2 { grid-template-columns:repeat(2,1fr); }
  .md\:grid-cols-3 { grid-template-columns:repeat(3,1fr); }
}
@media(min-width:1024px){
  .lg\:grid-cols-3 { grid-template-columns:repeat(3,1fr); }
  .lg\:grid-cols-4 { grid-template-columns:repeat(4,1fr); }
  .lg\:col-span-2 { grid-column:span 2; }
  .lg\:grid-cols-2 { grid-template-columns:repeat(2,1fr); }
}
@media(min-width:640px){
  .sm\:grid-cols-2 { grid-template-columns:repeat(2,1fr); }
}

/* Flex utilities */
.flex { display:flex; }
.items-center { align-items:center; }
.items-start { align-items:flex-start; }
.justify-center { justify-content:center; }
.justify-between { justify-content:space-between; }
.flex-col { flex-direction:column; }
.flex-wrap { flex-wrap:wrap; }
.gap-6 { gap:1.5rem; }
.w-full { width:100%; }

/* ── 9. COUNCIL / PROJECTS ────────────────── */
.teams-head {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:1.5rem; flex-wrap:wrap; gap:.75rem;
}
.teams-title { font-size:1rem; font-weight:800; color:var(--w2); text-transform:uppercase; letter-spacing:.1em; }
.teams-pill {
  font-size:.72rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:var(--pu-l); border:1px solid var(--pu-dim);
  border-radius:20px; padding:.3rem .9rem;
  transition:background .14s;
}
.teams-pill:hover { background:var(--pu-dim); }
.projects-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:1rem;
}
.project-card {
  position:relative; border-radius:var(--r);
  overflow:hidden; background:var(--bg2);
  border:1px solid var(--bd);
  display:flex; flex-direction:column;
  min-height:200px;
  transition:border-color .2s, transform .2s;
  text-decoration:none;
}
.project-card:hover { border-color:var(--pu); transform:translateY(-2px); }
.project-card--featured { border-color:rgba(89,41,209,.3); min-height:240px; }
.project-card--pending { }
.project-card-img { width:100%; height:140px; object-fit:cover; }
.project-card-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(7,7,15,.95) 0%, rgba(7,7,15,.4) 60%, transparent 100%);
}
.project-card-badge {
  position:absolute; top:.75rem; right:.75rem;
  font-size:.6rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  background:rgba(74,222,128,.15); color:#4ade80;
  border-radius:4px; padding:2px 7px;
}
.project-card-badge.tbc { background:var(--pu-dim); color:var(--pu-l); }
.project-card-badge.tbc--alt { background:var(--go-dim); color:var(--go); }
.project-card-body {
  position:relative; z-index:1; padding:1rem;
  margin-top:auto;
}
.project-card-name { font-size:.95rem; font-weight:800; color:#fff; margin-bottom:.25rem; }
.project-card-sub { font-size:.75rem; color:var(--w3); }
.project-card-arrow {
  position:absolute; bottom:1rem; right:1rem; z-index:2;
  color:var(--pu-l); opacity:0; transition:opacity .2s;
}
.project-card:hover .project-card-arrow { opacity:1; }
.project-card-arrow svg { width:18px; height:18px; }
.project-card-pending {
  position:absolute; inset:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.3rem;
  background:rgba(7,7,15,.6);
}
.project-card-pending-label { font-size:.7rem; font-weight:700; color:var(--w3); text-transform:uppercase; letter-spacing:.1em; }
.project-card-pending-sub { font-size:.65rem; color:var(--w4); }

/* ── 10. RASC-AL ──────────────────────────── */
.rascal-hero {
  display:grid; gap:3rem;
  grid-template-columns:1fr 2fr;
  align-items:start;
}
@media(max-width:768px){ .rascal-hero { grid-template-columns:1fr; } }
.rascal-trophy {
  display:flex; flex-direction:column; gap:.4rem;
  background:linear-gradient(135deg, rgba(89,41,209,.15), rgba(234,202,74,.08));
  border:1px solid rgba(234,202,74,.2);
  border-radius:var(--r); padding:2rem; text-align:center;
}
.rascal-trophy-big {
  font-size:clamp(4rem,10vw,6rem); font-weight:900;
  letter-spacing:-.04em; color:var(--go); line-height:1;
}
.rascal-trophy-label { font-size:1rem; font-weight:700; color:#fff; }
.rascal-trophy-sub { font-size:.75rem; color:var(--w3); }
.rascal-copy { display:flex; flex-direction:column; gap:1.5rem; }
.rascal-copy p { color:var(--w2); line-height:1.75; font-size:.95rem; }
.rascal-kpis { display:flex; gap:2rem; flex-wrap:wrap; }
.rascal-kpi { display:flex; flex-direction:column; gap:.2rem; }
.rascal-kpi-num {
  font-size:2.5rem; font-weight:900; color:var(--pu-l); line-height:1;
}
.rascal-kpi-lbl { font-size:.7rem; color:var(--w3); text-transform:uppercase; letter-spacing:.1em; font-family:'Space Mono',monospace; }

/* Timeline */
.tl-wrap { position:relative; padding-left:2rem; }
.tl-line {
  position:absolute; left:.75rem; top:0; bottom:0;
  width:1px; background:var(--bd2);
}
.tl-item {
  position:relative; display:flex; align-items:baseline; gap:1.5rem;
  padding:1.25rem 0; border-bottom:1px solid var(--bd);
}
.tl-item::before {
  content:''; position:absolute; left:-1.65rem; top:1.6rem;
  width:8px; height:8px; border-radius:50%;
  background:var(--pu); border:2px solid var(--bg1);
}
.tl-item--gold::before { background:var(--go); }
.tl-year {
  font-family:'Space Mono',monospace; font-size:.72rem; font-weight:700;
  color:var(--pu-l); min-width:3rem; flex-shrink:0;
}
.tl-item--gold .tl-year { color:var(--go); }

/* RASC-AL Divisions */
.div-card-nasa {
  position:relative; background:var(--bg2);
  border:1px solid var(--bd); border-radius:var(--r);
  overflow:hidden;
  transition:border-color .2s, transform .2s;
}
.div-card-nasa:hover { border-color:var(--pu); transform:translateY(-2px); }
.div-card-img {
  width:100%; height:160px; overflow:hidden;
  background:var(--bg); display:flex; align-items:center; justify-content:center;
}
.div-card-img img { width:100%; height:100%; object-fit:contain; padding:1rem; }
.scanner-line {
  position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg, transparent, var(--pu), transparent);
  opacity:0; transition:opacity .3s;
}
.div-card-nasa:hover .scanner-line { opacity:1; }
.div-card-body { padding:1rem; }
.div-card-name { font-size:.9rem; font-weight:800; color:#fff; margin-bottom:.25rem; }
.div-card-role { font-size:.75rem; color:var(--w3); line-height:1.5; }

/* ── 11. ENGAGEMENT ───────────────────────── */
.engagement-col-title {
  display:flex; align-items:center; gap:.75rem;
  font-size:1rem; font-weight:800; color:#fff;
  margin-bottom:1.25rem;
}
.engagement-col-tag {
  font-family:'Space Mono',monospace; font-size:.62rem; font-weight:700;
  background:var(--pu-dim); color:var(--pu-l);
  border-radius:4px; padding:2px 7px;
}
.engagement-col-tag--gold { background:var(--go-dim); color:var(--go); }
.engagement-card {
  background:var(--bg); border:1px solid var(--bd);
  border-radius:var(--r); padding:1.25rem;
}
.engagement-card--featured { border-color:rgba(89,41,209,.2); background:rgba(89,41,209,.04); }
.engagement-logo { width:80px; height:auto; margin-bottom:.75rem; }
.engagement-num {
  font-family:'Space Mono',monospace; font-size:.6rem; font-weight:700;
  color:var(--pu-l); letter-spacing:.15em; text-transform:uppercase;
  display:block; margin-bottom:.5rem;
}
.engagement-num--gold { color:var(--go); }
.engagement-name { font-size:.9rem; font-weight:700; color:#fff; margin-bottom:.4rem; }
.engagement-desc { font-size:.8rem; color:var(--w3); line-height:1.65; }

/* ── 12. EVENTS ───────────────────────────── */
.events-col-title {
  font-size:.72rem; font-weight:700; text-transform:uppercase;
  letter-spacing:.14em; color:var(--w4); margin-bottom:1rem;
  font-family:'Space Mono',monospace;
}
.events-list { display:flex; flex-direction:column; gap:0; }
.event-row {
  display:flex; align-items:center; gap:1.25rem;
  padding:1.1rem 0; border-bottom:1px solid var(--bd);
}
.event-date {
  display:flex; flex-direction:column; align-items:center;
  min-width:3rem; flex-shrink:0;
}
.event-day { font-size:1.4rem; font-weight:900; color:#fff; line-height:1; }
.event-mo { font-size:.65rem; color:var(--w4); text-transform:uppercase; letter-spacing:.1em; font-family:'Space Mono',monospace; }
.event-body { flex:1; min-width:0; }
.event-title { font-size:.9rem; font-weight:700; color:#fff; margin-bottom:.2rem; }
.event-meta { font-size:.75rem; color:var(--w3); }
.event-tag {
  font-size:.6rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  background:var(--pu-dim); color:var(--pu-l);
  border-radius:4px; padding:3px 7px; flex-shrink:0;
}
.event-tag--gold { background:var(--go-dim); color:var(--go); }
.event-tag--alt { background:rgba(74,222,128,.1); color:#4ade80; }
.events-aside {
  background:var(--bg2); border:1px solid var(--bd);
  border-radius:var(--r); padding:1.5rem;
}

/* ── 13. COMMUNITY ────────────────────────── */
.community-sub-head {
  display:flex; align-items:baseline; justify-content:space-between;
  gap:1rem; margin-bottom:1rem; flex-wrap:wrap;
}
.community-sub-title { font-size:1rem; font-weight:800; color:#fff; }
.community-sub-hint { font-size:.72rem; color:var(--w4); font-family:'Space Mono',monospace; }
.feature-card {
  background:var(--bg2); border:1px solid var(--bd);
  border-radius:var(--r); overflow:hidden;
  transition:border-color .2s;
}
.feature-card:hover { border-color:var(--pu); }
.feature-card-img {
  height:120px; background:var(--bg);
  display:flex; align-items:center; justify-content:center;
}
.feature-placeholder {
  font-size:2rem; color:var(--w4); font-weight:900;
}
.feature-card-body { padding:1rem; }
.feature-card-term { font-size:.65rem; color:var(--pu-l); font-family:'Space Mono',monospace; letter-spacing:.1em; margin-bottom:.3rem; }
.feature-card-name { font-size:.9rem; font-weight:700; color:#fff; }
.feature-card-role { font-size:.75rem; color:var(--w3); }

/* Internships */
.intern-year { margin-bottom:1.5rem; }
.intern-year-label {
  font-size:.65rem; font-weight:700; color:var(--w4);
  font-family:'Space Mono',monospace; letter-spacing:.14em; text-transform:uppercase;
  margin-bottom:.5rem; display:block;
}
.intern-list { display:flex; flex-direction:column; gap:0; }
.intern-row {
  display:grid; grid-template-columns:1fr 1fr 1fr;
  gap:1rem; padding:.75rem 0;
  border-bottom:1px solid var(--bd); font-size:.82rem;
}
.intern-name { color:#fff; font-weight:600; }
.intern-company { color:var(--pu-l); }
.intern-role { color:var(--w3); }

/* ── 14. SPACE LAB ────────────────────────── */
.spacelab-glow {
  position:absolute; top:-200px; right:-200px;
  width:600px; height:600px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, rgba(89,41,209,.12) 0%, transparent 65%);
}
.spacelab-card {
  background:var(--bg1); border:1px solid var(--bd);
  border-radius:var(--r); padding:2rem;
}
.spacelab-card--reservations { border-color:rgba(89,41,209,.2); }
.spacelab-list { display:flex; flex-direction:column; gap:.75rem; }
.spacelab-list li { display:flex; align-items:center; gap:.75rem; font-size:.85rem; color:var(--w2); }
.spacelab-bullet {
  width:5px; height:5px; border-radius:50%;
  background:var(--pu-l); flex-shrink:0;
}
.spacelab-cta-row { display:flex; gap:.75rem; flex-wrap:wrap; }

/* ── 15. STORY ────────────────────────────── */
.story-card {
  background:var(--bg2); border:1px solid var(--bd);
  border-radius:var(--r); padding:1.75rem;
}

/* ── 16. GALLERY ──────────────────────────── */
.card-nasa {
  background:var(--bg1); border:1px solid var(--bd);
  border-radius:var(--r); transition:border-color .2s;
  text-decoration:none;
}
.card-nasa:hover { border-color:var(--pu); }
.p-6 { padding:1.5rem; }

/* ── 17. SPONSORS ─────────────────────────── */
.donate-hero {
  display:flex; align-items:center; justify-content:space-between;
  gap:2rem; padding:2rem;
  background:linear-gradient(135deg, rgba(89,41,209,.1), rgba(234,202,74,.05));
  border:1px solid rgba(89,41,209,.2);
  border-radius:var(--r); margin-bottom:3rem; flex-wrap:wrap;
}
.donate-hero-body { flex:1 1 280px; }
.donate-hero-eyebrow {
  font-family:'Space Mono',monospace; font-size:.62rem;
  color:var(--w4); letter-spacing:.16em; text-transform:uppercase; margin-bottom:.4rem; display:block;
}
.donate-hero-title { font-size:1.3rem; font-weight:800; color:#fff; margin-bottom:.5rem; }
.donate-hero-desc { font-size:.84rem; color:var(--w2); line-height:1.65; max-width:440px; }
.donate-hero-cta { display:flex; flex-direction:column; align-items:flex-start; gap:.5rem; flex-shrink:0; }
.donate-hero-note { font-size:.65rem; color:var(--w4); font-family:'Space Mono',monospace; }
.partner-logo { height:40px; width:auto; object-fit:contain; filter:brightness(0) invert(1); opacity:.5; }
.partner-logo:hover { opacity:.9; }
.flex.flex-wrap.items-center.justify-center { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; }
.sponsor-card {
  background:var(--bg2); border:1px solid var(--bd);
  border-radius:var(--r); overflow:hidden;
  display:flex; flex-direction:column;
  transition:border-color .2s;
}
.sponsor-card:hover { border-color:var(--pu); }
.sponsor-card--placeholder { border-style:dashed; }
.sponsor-card-logo {
  height:100px; display:flex; align-items:center; justify-content:center;
  padding:1.25rem; background:rgba(255,255,255,.02);
}
.sponsor-card-logo img { max-height:60px; width:auto; object-fit:contain; filter:brightness(0) invert(1); opacity:.7; }
.sponsor-card-logo--text {
  font-size:1.8rem; font-weight:900; color:var(--w2);
  letter-spacing:-.03em;
}
.sponsor-card-logo--empty { color:var(--w4); font-size:2rem; }
.sponsor-card-body { padding:1.25rem; }
.sponsor-tier {
  font-size:.6rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--pu-l); margin-bottom:.4rem; display:block;
}
.sponsor-tier--gold { color:var(--go); }
.sponsor-name { font-size:.9rem; font-weight:700; color:#fff; margin-bottom:.4rem; }
.sponsor-desc { font-size:.78rem; color:var(--w3); line-height:1.6; }
.text-center { text-align:center; }

/* ── 18. CONTACT ──────────────────────────── */
.leader-row {
  display:flex; align-items:baseline; justify-content:space-between;
  padding:.75rem 0; border-bottom:1px solid var(--bd);
  font-size:.85rem; color:#fff;
}
.leader-role { color:var(--w3); font-size:.78rem; }
.text-nasa-red { color:var(--pu) !important; }

/* ── 19. FOOTER ───────────────────────────── */
#site-footer, .site-footer {
  background:var(--bg1);
  border-top:1px solid var(--bd);
}
.footer-container {
  max-width:var(--max); margin:0 auto;
  padding:4rem var(--pad) 2rem;
}
.footer-grid {
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1fr;
  gap:3rem; margin-bottom:3.5rem;
}
@media(max-width:1024px){ .footer-grid { grid-template-columns:1fr 1fr; gap:2.5rem; } }
@media(max-width:640px){ .footer-grid { grid-template-columns:1fr; gap:2rem; } }
.footer-brand { display:flex; flex-direction:column; gap:1.25rem; }
.footer-brand-mark { display:flex; align-items:center; gap:.75rem; }
.footer-logo { width:48px; height:48px; border-radius:50%; object-fit:cover; }
.footer-brand-name { font-size:.85rem; font-weight:800; color:#fff; }
.footer-brand-sub { font-size:.72rem; color:var(--w3); margin-top:.15rem; }
.footer-brand-body { font-size:.8rem; color:var(--w3); line-height:1.7; }
.footer-brand-cta { align-self:flex-start; }
.footer-col { display:flex; flex-direction:column; gap:0; }
.footer-col-title {
  font-size:.62rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  color:var(--w4); margin-bottom:1rem; font-family:'Space Mono',monospace;
}
.footer-col-title--sub { margin-top:1.5rem; }
.footer-list { display:flex; flex-direction:column; gap:0; }
.footer-list li a, .footer-list li button {
  display:block; padding:.3rem 0;
  font-size:.82rem; color:var(--w3);
  background:none; border:none; cursor:pointer; font-family:inherit;
  text-align:left; transition:color .14s;
}
.footer-list li a:hover, .footer-list li button:hover { color:#fff; }
.footer-list--legal { }
.footer-social-row { display:flex; flex-direction:column; gap:.4rem; margin-bottom:1.25rem; }
.footer-social-btn {
  display:flex; align-items:center; gap:.5rem;
  padding:.3rem 0;
  background:none; border:none; border-radius:0;
  font-size:.82rem; color:var(--w3);
  transition:color .14s;
}
.footer-social-btn:hover { color:#fff; background:none; }
.footer-social-btn svg { width:15px; height:15px; flex-shrink:0; }
.footer-social-label { }
.footer-social-handle { font-size:.65rem; color:var(--w4); font-family:'Space Mono',monospace; margin-bottom:.5rem; }
.footer-privacy {
  background:none; border:none; cursor:pointer;
  font-family:inherit; color:var(--w3); font-size:.82rem;
  padding:.3rem 0; display:block; text-align:left;
  transition:color .14s;
}
.footer-privacy:hover { color:#fff; }
.footer-copy {
  font-size:.72rem; color:var(--w4);
  border-top:1px solid var(--bd); padding-top:1.5rem;
  font-family:'Space Mono',monospace; letter-spacing:.06em;
}

/* ── 20. DIALOGS ──────────────────────────── */
.dialog {
  display:none; position:fixed; inset:0; z-index:500;
  align-items:center; justify-content:center; padding:1rem;
}
.dialog.is-open { display:flex; }
.dialog-backdrop {
  position:absolute; inset:0;
  background:rgba(0,0,0,.7);
  backdrop-filter:blur(6px);
}
.dialog-panel {
  position:relative; z-index:1;
  background:var(--bg1); border:1px solid var(--bd2);
  border-radius:16px; max-width:540px; width:100%;
  max-height:85vh; overflow-y:auto;
}
.dialog-header {
  display:flex; align-items:flex-start; justify-content:space-between;
  padding:1.5rem 1.75rem 0; gap:1rem;
}
.dialog-eyebrow {
  font-family:'Space Mono',monospace; font-size:.6rem;
  color:var(--pu-l); letter-spacing:.16em; text-transform:uppercase;
  margin-bottom:.35rem; display:block;
}
.dialog-title { font-size:1.35rem; font-weight:800; color:#fff; }
.dialog-close {
  background:none; border:1px solid var(--bd2);
  border-radius:6px; color:var(--w3); cursor:pointer;
  padding:.3rem; flex-shrink:0;
  transition:color .14s, background .14s;
}
.dialog-close:hover { color:#fff; background:rgba(255,255,255,.07); }
.dialog-body { padding:1.5rem 1.75rem 1.75rem; }
.dialog-lede { font-size:.9rem; color:var(--w2); line-height:1.7; margin-bottom:1.5rem; }
.privacy-section { margin-bottom:1.5rem; }
.privacy-section h3 { font-size:.9rem; font-weight:700; color:#fff; margin-bottom:.5rem; }
.privacy-section p { font-size:.82rem; color:var(--w3); line-height:1.7; }
.privacy-section a { color:var(--pu-l); }
.privacy-footer { margin-top:2rem; padding-top:1rem; border-top:1px solid var(--bd); }
.privacy-footer p { font-size:.78rem; color:var(--w3); margin-bottom:.25rem; }
.privacy-meta { font-size:.7rem; color:var(--w4) !important; font-family:'Space Mono',monospace; }

/* ── 21. FAB ──────────────────────────────── */
#fab-apply {
  position:fixed; bottom:1.5rem; right:1.5rem; z-index:400;
  opacity:0; transform:translateY(1rem);
  pointer-events:none;
  transition:opacity .3s, transform .3s;
  box-shadow:0 4px 24px rgba(89,41,209,.5);
}
#fab-apply.fab--hidden { opacity:0 !important; pointer-events:none !important; }

/* ── 22. RESPONSIVE ───────────────────────── */
@media(max-width:768px){
  .level-content { padding-left:1rem; padding-right:1rem; }
  .rascal-hero { grid-template-columns:1fr; }
  .donate-hero { flex-direction:column; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .intern-row { grid-template-columns:1fr 1fr; }
  .level-stats-row { gap:1.5rem; }
  #about, #programs, #rascal, #track-record, #divisions,
  #engagement, #events, #community, #spacelab, #story,
  #gallery, #sponsors, #contact { padding:3.5rem var(--pad); }
}
@media(max-width:480px){
  .footer-grid { grid-template-columns:1fr; }
  .intern-row { grid-template-columns:1fr; }
  .projects-grid { grid-template-columns:1fr; }
  #site-header > div:not(.header-glass) { padding:0 1rem; }
}

/* ── 23. MISC HELPERS ─────────────────────── */
.sr-only { position:absolute; left:-9999px; }
.relative { position:relative; }
.overflow-hidden { overflow:hidden; }
.border-y { border-top:1px solid var(--bd); border-bottom:1px solid var(--bd); }
.text-\[10px\] { font-size:10px; }
.bg-surface-1 { background:var(--bg1); }