/* ============================================================
   Frontiers Research Hub — Components & Sections
   ============================================================ */

/* ---------- Scroll progress ---------- */
.scroll-progress {
  position: fixed; top: 0; left: 0; height: 2px; width: 0%;
  background: var(--grad-signature);
  z-index: var(--z-modal); box-shadow: 0 0 12px rgba(34,211,238,0.6);
}

/* ---------- Cursor glow (ambient) ---------- */
.cursor-glow {
  position: fixed; width: 420px; height: 420px; border-radius: 50%;
  pointer-events: none; z-index: 1; transform: translate(-50%,-50%);
  background: radial-gradient(circle, rgba(34,211,238,0.06), transparent 65%);
  transition: opacity 0.4s ease; opacity: 0;
}

/* ---------- Navigation ---------- */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: var(--z-nav);
  transition: background var(--dur-med) var(--ease-out),
              border-color var(--dur-med) var(--ease-out),
              backdrop-filter var(--dur-med) var(--ease-out);
  border-bottom: 1px solid transparent;
}
.nav.is-scrolled {
  background: var(--nav-bg);
  backdrop-filter: blur(16px) saturate(140%);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  border-bottom-color: var(--c-hairline);
}
.nav.is-menu-open {
  background: #06090F;
  border-bottom-color: var(--c-hairline);
}
.nav__inner {
  display: flex; align-items: center; justify-content: space-between;
  height: 74px; gap: var(--s-5);
}
.brand { display: flex; align-items: center; gap: 0.7rem; flex: 0 0 auto; z-index: 2; }
.brand__glyph { width: 34px; height: 34px; }
.brand__name {
  font-family: var(--font-display); font-weight: 600; font-size: 1.05rem;
  letter-spacing: -0.01em; color: var(--c-text); line-height: 1;
}
.brand__name small { display:block; font-family: var(--font-mono); font-weight:400;
  font-size:0.58rem; letter-spacing: 0.22em; color: var(--c-faint); margin-top:3px; text-transform:uppercase; }

/* At page top the nav sits over the always-dark hero: keep chrome light.
   Once scrolled (over themed body) it flips to theme colours. */
.nav .brand__name { color: #E6EDF3; }
.nav .brand__name small { color: rgba(148,163,184,0.85); }
.nav.is-scrolled .brand__name { color: var(--c-text); }
.nav.is-scrolled .brand__name small { color: var(--c-faint); }

.nav__links { display: flex; align-items: center; gap: 0.35rem; }
.nav__link {
  font-size: 0.92rem; font-weight: 500; color: rgba(230,237,243,0.72);
  padding: 0.5rem 0.85rem; border-radius: var(--r-pill);
  transition: color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);
  position: relative;
}
.nav__link:hover, .nav__link[aria-current="page"] { color: #fff; }
.nav.is-scrolled .nav__link { color: var(--c-muted); }
.nav.is-scrolled .nav__link:hover, .nav.is-scrolled .nav__link[aria-current="page"] { color: var(--c-text); }
.nav__link[aria-current="page"]::after {
  content:""; position:absolute; left:0.85rem; right:0.85rem; bottom:0.15rem; height:1px;
  background: var(--grad-signature);
}
.nav__actions { display: flex; align-items: center; gap: 0.6rem; flex: 0 0 auto; }

.nav__toggle { display: none; background: none; border: 0; width: 44px; height: 44px;
  align-items: center; justify-content: center; color: #E6EDF3; }
.nav.is-scrolled .nav__toggle { color: var(--c-text); }
.nav__toggle svg { width: 26px; height: 26px; }

/* Mobile menu */
.nav__mobile {
  position: fixed; inset: 0; z-index: calc(var(--z-nav) - 1);
  background: #06090F;
  display: flex; flex-direction: column; justify-content: center; gap: 0.5rem;
  padding: var(--gutter); transform: translateY(-100%); opacity: 0;
  transition: transform var(--dur-med) var(--ease-out), opacity var(--dur-med) var(--ease-out);
  pointer-events: none; min-height: 100vh; min-height: 100dvh;
  overflow-y: auto; overscroll-behavior: contain;
}
.nav__mobile.is-open { transform: translateY(0); opacity: 1; pointer-events: auto; }
.nav__mobile a { font-family: var(--font-display); font-size: 2rem; font-weight: 500;
  color: var(--c-text); padding: 0.5rem 0; letter-spacing: -0.02em; }
.nav__mobile a:hover { color: var(--c-cyan); }
.nav__mobile .btn { margin-top: 1.5rem; align-self: flex-start; }

@media (max-width: 900px) {
  .nav__links { display: none; }
  .nav__actions .btn--primary { display: none; }
  .nav__toggle { display: flex; }
}

/* ---------- Hero ---------- */
.hero { position: relative; min-height: 100svh; display: flex; align-items: center;
  overflow: hidden; padding-top: 74px; background: #06090F; }
/* Hero always sits on dark imagery: keep its text light in both themes. */
.hero h1 { color: #E6EDF3; }
.hero__lead { color: #94A3B8; }
.hero__canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; }
.hero__img-fallback { position: absolute; inset: 0; width:100%; height:100%; object-fit: cover;
  z-index: 0; opacity: 0; }
.hero__scrim { position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    radial-gradient(120% 90% at 50% 40%, transparent 40%, rgba(6,9,15,0.55) 100%),
    linear-gradient(180deg, rgba(6,9,15,0.65) 0%, transparent 25%, transparent 55%, var(--c-bg) 100%); }
.hero__content { position: relative; z-index: 2; max-width: 62rem; }
.hero h1 {
  font-size: var(--fs-display); letter-spacing: -0.03em; line-height: 1.02;
  margin-bottom: 1.5rem; text-wrap: balance;
}
.hero__lead { font-size: var(--fs-lead); color: var(--c-muted); max-width: 46rem;
  margin-bottom: 2.5rem; }
.hero__cta { display: flex; flex-wrap: wrap; gap: 1rem; }
.hero__scrollcue { position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%);
  z-index: 2; font-family: var(--font-mono); font-size: 0.66rem; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--c-faint); display: flex; flex-direction: column;
  align-items: center; gap: 0.5rem; }
.hero__scrollcue span { width: 1px; height: 34px; background: linear-gradient(var(--c-cyan), transparent);
  animation: scrollcue 2s var(--ease-io) infinite; }
@keyframes scrollcue { 0%{transform:scaleY(0);transform-origin:top} 50%{transform:scaleY(1);transform-origin:top} 51%{transform-origin:bottom} 100%{transform:scaleY(0);transform-origin:bottom} }

/* ---------- Section intro (NO eyebrow kicker) ---------- */
.intro { max-width: 52rem; margin-bottom: var(--s-8); }
.intro--center { margin-inline: auto; text-align: center; }
.intro h2 { margin-bottom: 1rem; text-wrap: balance; }
.intro p { font-size: var(--fs-lead); color: var(--c-muted); margin: 0; }
.intro--center p { margin-inline: auto; }

/* ---------- Positioning strip + feature triad ---------- */
.positioning { border-top: 1px solid var(--c-hairline); border-bottom: 1px solid var(--c-hairline); }
.positioning__line { font-family: var(--font-display); font-weight: 400;
  font-size: clamp(1.4rem, 2.6vw, 2.2rem); line-height: 1.35; color: var(--c-text);
  letter-spacing: -0.01em; max-width: 60rem; text-wrap: balance; }
.positioning__line b { font-weight: 600; }
.triad { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-5); margin-top: var(--s-8); }
.triad__item { padding-top: var(--s-5); border-top: 1px solid var(--c-hairline-2); }
.triad__num { font-family: var(--font-mono); font-size: 0.72rem; color: var(--c-cyan);
  letter-spacing: 0.15em; }
.triad__item h3 { font-size: 1.35rem; margin: 0.7rem 0 0.4rem; }
.triad__item p { font-size: 0.95rem; margin: 0; }
@media (max-width: 760px){ .triad { grid-template-columns: 1fr; } }

/* ---------- About preview (split) ---------- */
.split { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: var(--s-8); align-items: center; }
.split__visual { position: relative; border-radius: var(--r-xl); overflow: hidden;
  border: 1px solid var(--c-hairline); box-shadow: var(--shadow-soft); aspect-ratio: 4/3; }
.split__visual img { width: 100%; height: 100%; object-fit: cover; }
.split__visual::after { content:""; position:absolute; inset:0;
  background: linear-gradient(120deg, transparent 55%, rgba(6,9,15,0.35)); }
.mv { display: grid; gap: var(--s-5); margin: var(--s-6) 0; }
.mv__item { padding-left: var(--s-5); border-left: 2px solid transparent;
  border-image: var(--grad-signature) 1; }
.mv__item h4 { font-family: var(--font-mono); font-size: 0.72rem; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--c-cyan); margin-bottom: 0.5rem; }
.mv__item p { margin: 0; color: var(--c-muted); }
@media (max-width: 860px){ .split { grid-template-columns: 1fr; gap: var(--s-6); } }

/* ---------- Impact stats ---------- */
.stats { position: relative; overflow: hidden; }
.stats__bg { position:absolute; inset:0; z-index:0; object-fit: cover; width:100%; height:100%;
  opacity: 0.20; }
.stats__inner { position: relative; z-index: 1; }
.stats__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--s-5);
  border-top: 1px solid var(--c-hairline); }
.stat { padding-top: var(--s-6); border-right: 1px solid var(--c-hairline); padding-inline: var(--s-4); }
.stat:last-child { border-right: 0; }
.stat__num { font-family: var(--font-display); font-weight: 600;
  font-size: clamp(2.4rem, 4vw, 3.4rem); letter-spacing: -0.02em; line-height: 1;
  background: var(--grad-text); -webkit-background-clip: text; background-clip: text; color: transparent; }
.stat__num .confirm-dot { font-size: 0.9rem; }
.stat__label { font-family: var(--font-mono); font-size: 0.7rem; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--c-muted); margin-top: 0.8rem; }
.stat .confirm { margin-top: 0.6rem; display: inline-block; font-size: 0.62rem; }
@media (max-width: 900px){ .stats__grid { grid-template-columns: repeat(2,1fr); gap: var(--s-6); }
  .stat { border-right: 0; border-bottom: 1px solid var(--c-hairline); padding-bottom: var(--s-5);} }

/* ---------- Research themes grid ---------- */
.themes { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-5); }
.theme-card { position: relative; border-radius: var(--r-lg); overflow: hidden;
  border: 1px solid var(--c-hairline); background: var(--c-panel); min-height: 300px;
  display: flex; flex-direction: column; justify-content: flex-end;
  transition: transform var(--dur-med) var(--ease-out), border-color var(--dur-med) var(--ease-out),
              box-shadow var(--dur-med) var(--ease-out); }
.theme-card__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  z-index: 0; opacity: 0.72; transition: opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out); }
.theme-card::after { content:""; position:absolute; inset:0; z-index:1;
  background: linear-gradient(180deg, rgba(6,9,15,0.15) 0%, rgba(6,9,15,0.6) 46%, rgba(6,9,15,0.97) 100%); }
.theme-card__body { position: relative; z-index: 2; padding: var(--s-6); }
.theme-card__body h3 { font-size: 1.3rem; margin-bottom: 0.4rem; color: #F1F5FB; text-shadow: 0 1px 14px rgba(0,0,0,0.75); }
.theme-card__body p { font-size: 0.9rem; color: #DCE5F0; opacity: 0.95; margin: 0 0 0.9rem; text-shadow: 0 1px 10px rgba(0,0,0,0.75); }
.theme-card__more { font-family: var(--font-mono); font-size: 0.72rem; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--c-cyan); display:inline-flex; align-items:center; gap:0.4em; }
.theme-card:hover { transform: translateY(-5px); border-color: rgba(34,211,238,0.3);
  box-shadow: var(--shadow-soft), 0 0 40px -10px rgba(34,211,238,0.3); }
.theme-card:hover .theme-card__img { opacity: 0.8; transform: scale(1.05); }
@media (max-width: 960px){ .themes { grid-template-columns: repeat(2,1fr);} }
@media (max-width: 620px){ .themes { grid-template-columns: 1fr;} }

/* ---------- Publications ---------- */
.pubs { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s-5); }
.pub {
  display: flex; flex-direction: column; gap: 0.8rem;
  background: var(--c-panel); border: 1px solid var(--c-hairline); border-radius: var(--r-lg);
  padding: var(--s-6); position: relative; overflow: hidden;
  transition: transform var(--dur-med) var(--ease-out), border-color var(--dur-med) var(--ease-out),
              box-shadow var(--dur-med) var(--ease-out);
}
.pub:hover { transform: translateY(-4px); border-color: rgba(99,102,241,0.35);
  box-shadow: var(--shadow-soft), 0 0 40px -12px rgba(99,102,241,0.3); }
.pub__meta { font-family: var(--font-mono); font-size: 0.7rem; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--c-cyan); display: flex; gap: 0.6rem; flex-wrap: wrap; align-items:center; }
.pub__meta .dotsep { color: var(--c-faint); }
.pub__title { font-family: var(--font-display); font-weight: 500; font-size: 1.12rem;
  line-height: 1.32; color: var(--c-text); margin: 0; }
.pub__foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; padding-top: 0.9rem; border-top: 1px solid var(--c-hairline); }
.pub__type { font-size: 0.82rem; color: var(--c-faint); }
.doi-link { font-family: var(--font-mono); font-size: 0.74rem; letter-spacing: 0.05em;
  color: var(--c-muted); display: inline-flex; align-items: center; gap: 0.4em;
  padding: 0.4em 0.8em; border: 1px solid var(--c-hairline-2); border-radius: var(--r-pill);
  transition: all var(--dur-fast) var(--ease-out); }
.doi-link:hover { color: var(--c-cyan); border-color: rgba(34,211,238,0.5); box-shadow: var(--glow-cyan); }
@media (max-width: 720px){ .pubs { grid-template-columns: 1fr; } }

/* ---------- How it works (steps) ---------- */
.steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s-5); counter-reset: step; }
.step { position: relative; padding-top: var(--s-6); }
.step::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: var(--c-hairline-2); }
.step__num { counter-increment: step; font-family: var(--font-mono); font-size: 0.8rem;
  color: var(--c-cyan); letter-spacing: 0.1em; }
.step__num::before { content: "0" counter(step); }
.step__dot { position: absolute; top: -4px; left: 0; width: 8px; height: 8px; border-radius: 50%;
  background: var(--grad-signature); box-shadow: var(--glow-cyan); }
.step h3 { font-size: 1.2rem; margin: 0.9rem 0 0.5rem; }
.step p { font-size: 0.92rem; margin: 0; }
@media (max-width: 900px){ .steps { grid-template-columns: repeat(2,1fr); gap: var(--s-6);} }
@media (max-width: 520px){ .steps { grid-template-columns: 1fr; } }

/* ---------- Audience panels ---------- */
.panels { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-5); }
.panel { position: relative; border-radius: var(--r-xl); padding: var(--s-8) var(--s-7);
  border: 1px solid var(--c-hairline); overflow: hidden;
  background:
    radial-gradient(120% 100% at 0% 0%, rgba(34,211,238,0.07), transparent 55%),
    var(--c-panel); }
.panel--partner { background:
    radial-gradient(120% 100% at 100% 0%, rgba(99,102,241,0.09), transparent 55%),
    var(--c-panel); }
.panel h3 { font-size: 1.7rem; margin-bottom: 0.8rem; }
.panel p { margin-bottom: 1.5rem; }
.panel__list { list-style: none; padding: 0; margin: 0 0 1.8rem; display: grid; gap: 0.7rem; }
.panel__list li { display: flex; gap: 0.7rem; align-items: flex-start; color: var(--c-muted);
  font-size: 0.95rem; }
.panel__list svg { width: 18px; height: 18px; flex: 0 0 auto; margin-top: 3px; stroke: var(--c-cyan); }
@media (max-width: 860px){ .panels { grid-template-columns: 1fr; } }

/* ---------- Testimonials ---------- */
/* Bento layout: two wide tiles and two standard, alternating rows */
.voices { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-5); }
.voices .voice:nth-child(1) { grid-column: span 2; }
.voices .voice:nth-child(4) { grid-column: span 2; }
.voice { background: var(--c-panel); border: 1px solid var(--c-hairline); border-radius: var(--r-lg);
  padding: var(--s-6) var(--s-7); display: flex; flex-direction: column; gap: 1rem; position: relative;
  box-shadow: var(--shadow-card), var(--glow-inner);
  transition: border-color var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out); }
.voice:hover { border-color: rgba(34,211,238,0.24); box-shadow: var(--shadow-soft), 0 0 40px -14px rgba(34,211,238,0.25), var(--glow-inner); }
.voice__mark { font-family: var(--font-display); font-size: 2.8rem; line-height: 0.5; color: var(--c-cyan);
  opacity: 0.5; height: 0.5em; }
.voice__quote { font-size: 1.12rem; line-height: 1.6; color: var(--c-text); margin: 0; max-width: 52ch; }
.voice__who { margin-top: auto; padding-top: 0.4rem; }
@media (max-width: 940px){ .voices { grid-template-columns: 1fr 1fr; }
  .voices .voice:nth-child(1), .voices .voice:nth-child(4) { grid-column: auto; } }
.mono-avatar { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center;
  font-family: var(--font-display); font-weight: 600; font-size: 1rem; color: var(--c-text);
  background: linear-gradient(140deg,#141C2A,#0C1119); position: relative; flex: 0 0 auto; }
.mono-avatar::before { content:""; position:absolute; inset:-1.5px; border-radius:50%; padding:1.5px;
  background: var(--grad-signature); -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; }
.voice__name { font-size: 0.92rem; font-weight: 600; color: var(--c-text); }
.voice__role { font-size: 0.8rem; color: var(--c-faint); }
@media (max-width: 900px){ .voices { grid-template-columns: 1fr; } }

/* ---------- Blog teaser ---------- */
.posts { display: grid; grid-template-columns: repeat(3,1fr); gap: var(--s-5); }
.post { border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--c-hairline);
  background: var(--c-panel); transition: transform var(--dur-med) var(--ease-out), border-color var(--dur-med) var(--ease-out); }
.post:hover { transform: translateY(-4px); border-color: rgba(34,211,238,0.28); }
.post__img { aspect-ratio: 16/10; overflow: hidden; }
.post__img img { width:100%; height:100%; object-fit: cover; opacity: 0.75; }
.post__body { padding: var(--s-5); }
.post__tag { font-family: var(--font-mono); font-size: 0.66rem; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--c-cyan); }
.post h3 { font-size: 1.1rem; margin: 0.6rem 0 0.5rem; }
.post p { font-size: 0.88rem; margin: 0; }
@media (max-width: 900px){ .posts { grid-template-columns: 1fr; } }

/* ---------- CTA band ---------- */
.cta-band { position: relative; overflow: hidden; border-radius: var(--r-xl);
  margin-inline: var(--gutter); padding: clamp(3rem,7vw,6rem) var(--gutter);
  border: 1px solid var(--c-hairline); }
.cta-band__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  z-index: 0; opacity: 0.55; }
.cta-band::after { content:""; position:absolute; inset:0; z-index:1;
  background: radial-gradient(100% 120% at 50% 50%, transparent 30%, rgba(6,9,15,0.7)); }
.cta-band__inner { position: relative; z-index: 2; max-width: 48rem; margin-inline: auto;
  text-align: center; }
.cta-band h2 { font-size: clamp(2rem, 4.5vw, 3.2rem); margin-bottom: 1.2rem; text-wrap: balance; color: #F1F5FB; }
.cta-band p { color: #C7D2E0; margin-inline: auto; margin-bottom: 2rem; }

/* ---------- Newsletter / form fields ---------- */
.field-row { display: flex; gap: 0.75rem; max-width: 30rem; margin-inline: auto; }
.field { flex: 1; background: rgba(255,255,255,0.03); border: 1px solid var(--c-hairline-2);
  border-radius: var(--r-pill); padding: 0.85em 1.3em; color: var(--c-text); font-family: var(--font-body);
  font-size: 0.95rem; transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast); }
.field::placeholder { color: var(--c-faint); }
.field:focus { outline: none; border-color: rgba(34,211,238,0.55); box-shadow: var(--glow-cyan); }
@media (max-width: 520px){ .field-row { flex-direction: column; } }

/* ---------- Marquee ---------- */
.marquee { overflow: hidden; border-block: 1px solid var(--c-hairline);
  padding-block: var(--s-5); -webkit-mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
          mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.marquee__track { display: flex; gap: 3.5rem; width: max-content; animation: marquee 42s linear infinite; }
.marquee:hover .marquee__track { animation-play-state: paused; }
.marquee__item { font-family: var(--font-mono); font-size: 0.82rem; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--c-faint); white-space: nowrap; display:flex; align-items:center; gap: 3.5rem; }
.marquee__item::after { content:""; width:5px; height:5px; border-radius:50%; background: var(--c-indigo); opacity:0.6; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ---------- Footer ---------- */
.footer { border-top: 1px solid var(--c-hairline); background: var(--c-bg-deep);
  padding-top: var(--s-9); position: relative; overflow: hidden; }
.footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: var(--s-7); }
.footer__brand .brand { margin-bottom: 1.2rem; }
.footer__tag { color: var(--c-muted); max-width: 26rem; font-size: 0.95rem; }
.footer__col h4 { font-family: var(--font-mono); font-size: 0.7rem; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--c-faint); margin-bottom: 1.2rem; }
.footer__col a { display: block; color: var(--c-muted); font-size: 0.92rem; padding: 0.35rem 0;
  transition: color var(--dur-fast); }
.footer__col a:hover { color: var(--c-cyan); }
.footer__news p { font-size: 0.9rem; margin-bottom: 1rem; }
.footer__news .field-row { max-width: none; margin: 0; }
.footer__social { display: flex; gap: 0.6rem; margin-top: 1.3rem; }
.footer__social a { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center;
  border: 1px solid var(--c-hairline-2); color: var(--c-muted); transition: all var(--dur-fast); }
.footer__social a:hover { color: var(--c-cyan); border-color: rgba(34,211,238,0.5); box-shadow: var(--glow-cyan); }
.footer__social svg { width: 17px; height: 17px; }
.footer__bar { margin-top: var(--s-8); padding-block: var(--s-5); border-top: 1px solid var(--c-hairline);
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.footer__bar p { margin: 0; font-size: 0.82rem; color: var(--c-faint); }
.footer__bar .meta a { color: var(--c-muted); }
.footer__bar .meta a:hover { color: var(--c-cyan); }
@media (max-width: 900px){ .footer__grid { grid-template-columns: 1fr 1fr; gap: var(--s-6);}
  .footer__brand { grid-column: 1 / -1; } .footer__news { grid-column: 1 / -1; } }
@media (max-width: 560px){ .footer__grid { grid-template-columns: 1fr; } }

/* ---------- Reveal animation base (JS adds .in) ---------- */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.8s var(--ease-out), transform 0.8s var(--ease-out); }
.reveal.in { opacity: 1; transform: none; }
.reveal-delay-1 { transition-delay: 0.08s; }
.reveal-delay-2 { transition-delay: 0.16s; }
.reveal-delay-3 { transition-delay: 0.24s; }
@media (prefers-reduced-motion: reduce){ .reveal { opacity: 1; transform: none; } }

/* Page hero (interior) — always dark imagery, light text in both themes */
.page-hero { position: relative; padding-top: calc(74px + var(--s-9)); padding-bottom: var(--s-8);
  overflow: hidden; border-bottom: 1px solid var(--c-hairline); background: #06090F; }
.page-hero__bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0.34; z-index:0; }
.page-hero::after { content:""; position:absolute; inset:0; z-index:1;
  background: linear-gradient(180deg, rgba(6,9,15,0.45), var(--c-bg)); }
.page-hero__inner { position: relative; z-index: 2; }
.page-hero h1 { font-size: var(--fs-h1); margin-bottom: 1rem; color: #F1F5FB; }
.page-hero p { font-size: var(--fs-lead); color: #B8C4D4; max-width: 46rem; }
.breadcrumb { font-family: var(--font-mono); font-size: 0.7rem; letter-spacing: 0.12em;
  text-transform: uppercase; color: rgba(148,163,184,0.85); margin-bottom: 1.5rem; }
.breadcrumb a { color: #B8C4D4; }

/* ============================================================
   INTERIOR PAGES
   ============================================================ */

/* Prose */
.prose { max-width: 65ch; }
.prose p { margin-bottom: 1.2rem; color: var(--c-muted); }
.prose p.lead-para { font-size: var(--fs-lead); color: var(--c-text); }

/* Values grid */
.values { display: grid; grid-template-columns: repeat(3,1fr); gap: var(--s-5); }
.value { background: var(--c-panel); border: 1px solid var(--c-hairline); border-radius: var(--r-lg);
  padding: var(--s-6); box-shadow: var(--glow-inner); }
.value__icon { width: 42px; height: 42px; border-radius: 11px; display: grid; place-items: center;
  margin-bottom: 1rem; background: linear-gradient(135deg,var(--c-cyan-soft),var(--c-indigo-soft));
  border: 1px solid var(--c-hairline-2); }
.value__icon svg { width: 20px; height: 20px; stroke: var(--c-cyan); fill: none; }
.value h3 { font-size: 1.2rem; margin-bottom: 0.5rem; }
.value p { font-size: 0.92rem; color: var(--c-muted); margin: 0; }
@media (max-width: 860px){ .values { grid-template-columns: 1fr; } }

/* Timeline */
.timeline { position: relative; margin-top: var(--s-6); padding-left: 2rem; }
.timeline::before { content:""; position:absolute; left: 6px; top: 4px; bottom: 4px; width: 1px;
  background: linear-gradient(var(--c-cyan), var(--c-indigo), transparent); }
.tl-item { position: relative; padding-bottom: var(--s-6); }
.tl-item::before { content:""; position:absolute; left: -2rem; top: 4px; width: 13px; height: 13px;
  border-radius: 50%; background: var(--c-bg); border: 2px solid var(--c-cyan); box-shadow: var(--glow-cyan);
  margin-left: 0.5px; }
.tl-item .tl-year { font-family: var(--font-mono); font-size: 0.8rem; letter-spacing: 0.08em; color: var(--c-cyan); }
.tl-item h4 { font-size: 1.1rem; margin: 0.3rem 0 0.4rem; }
.tl-item p { font-size: 0.92rem; color: var(--c-muted); margin: 0; }

/* Filter bar */
.filterbar { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-bottom: var(--s-6); }
.filter-btn { font-family: var(--font-mono); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--c-muted); padding: 0.5em 1em; border-radius: var(--r-pill); border: 1px solid var(--c-hairline-2);
  background: transparent; transition: all var(--dur-fast) var(--ease-out); }
.filter-btn:hover { color: var(--c-text); border-color: var(--c-hairline-2); }
.filter-btn.is-active { color: #06090F; background: var(--grad-signature); border-color: transparent; }
[data-theme="light"] .filter-btn.is-active { color: #fff; }

/* Publication library rows */
.pub-list { display: grid; gap: var(--s-4); }
.pub-row { display: grid; grid-template-columns: 1fr auto; gap: var(--s-5); align-items: center;
  background: var(--c-panel); border: 1px solid var(--c-hairline); border-radius: var(--r-md);
  padding: var(--s-5) var(--s-6); transition: border-color var(--dur-med), transform var(--dur-med), box-shadow var(--dur-med); }
.pub-row:hover { border-color: rgba(34,211,238,0.3); transform: translateX(3px); box-shadow: var(--shadow-card); }
.pub-row.is-hidden { display: none; }
.pub-row__meta { font-family: var(--font-mono); font-size: 0.68rem; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--c-cyan); margin-bottom: 0.5rem; display: flex; gap: 0.55rem; flex-wrap: wrap; align-items: center; }
.pub-row__meta .dotsep { color: var(--c-faint); }
.pub-row__title { font-family: var(--font-display); font-weight: 500; font-size: 1.05rem; line-height: 1.35;
  color: var(--c-text); margin: 0; }
@media (max-width: 680px){ .pub-row { grid-template-columns: 1fr; } }

/* Theme detail block */
.theme-detail { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: var(--s-6); align-items: center;
  padding: var(--s-7) 0; border-top: 1px solid var(--c-hairline); scroll-margin-top: 90px; }
.theme-detail__img { border-radius: var(--r-lg); overflow: hidden; aspect-ratio: 4/3; border: 1px solid var(--c-hairline); }
.theme-detail__img img { width:100%; height:100%; object-fit: cover; }
.theme-detail h3 { font-size: 1.6rem; margin-bottom: 0.6rem; }
.theme-detail p { color: var(--c-muted); margin: 0; }
@media (max-width: 760px){ .theme-detail { grid-template-columns: 1fr; } }

/* Leader profile */
.leader { display: grid; grid-template-columns: 260px 1fr; gap: var(--s-7); align-items: start; }
.leader__card { background: var(--c-panel); border: 1px solid var(--c-hairline); border-radius: var(--r-xl);
  padding: var(--s-6); text-align: center; box-shadow: var(--glow-inner); position: sticky; top: 100px; }
.leader__avatar { width: 120px; height: 120px; border-radius: 50%; margin: 0 auto 1.2rem; display: grid; place-items: center;
  font-family: var(--font-display); font-weight: 600; font-size: 2.6rem; color: var(--c-text);
  background: linear-gradient(140deg,#141C2A,#0C1119); position: relative; }
[data-theme="light"] .leader__avatar { background: linear-gradient(140deg,#EAF0F8,#DCE6F2); }
.leader__avatar::before { content:""; position:absolute; inset:-2px; border-radius:50%; padding:2px;
  background: var(--grad-signature); -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; }
.leader__name { font-family: var(--font-display); font-weight: 600; font-size: 1.3rem; }
.leader__role { font-family: var(--font-mono); font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--c-cyan); margin-top: 0.3rem; }
.leader__links { display: grid; gap: 0.5rem; margin-top: 1.3rem; }
.leader__links a { font-size: 0.85rem; color: var(--c-muted); padding: 0.5rem; border: 1px solid var(--c-hairline-2);
  border-radius: var(--r-pill); transition: all var(--dur-fast); }
.leader__links a:hover { color: var(--c-cyan); border-color: rgba(34,211,238,0.5); }
.leader__bio h2 { margin-bottom: 1rem; }
@media (max-width: 820px){ .leader { grid-template-columns: 1fr; } .leader__card { position: static; } }

/* Member grid */
.members { display: grid; grid-template-columns: repeat(4,1fr); gap: var(--s-5); margin-top: var(--s-6); }
.member { background: var(--c-panel); border: 1px solid var(--c-hairline); border-radius: var(--r-lg);
  padding: var(--s-6); text-align: center; }
.member__avatar { width: 68px; height: 68px; border-radius: 50%; margin: 0 auto 1rem; display: grid; place-items: center;
  font-family: var(--font-display); font-weight: 600; font-size: 1.4rem; color: var(--c-text);
  background: linear-gradient(140deg,#141C2A,#0C1119); position: relative; }
[data-theme="light"] .member__avatar { background: linear-gradient(140deg,#EAF0F8,#DCE6F2); }
.member__avatar::before { content:""; position:absolute; inset:-1.5px; border-radius:50%; padding:1.5px;
  background: var(--grad-signature); -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; }
.member__name { font-weight: 600; font-size: 0.95rem; }
.member__role { font-size: 0.8rem; color: var(--c-faint); margin-top: 0.2rem; }
@media (max-width: 900px){ .members { grid-template-columns: repeat(2,1fr); } }

/* People directory */
.team-directory { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--s-5); margin-top: var(--s-6); }
.advisor-directory { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--s-5); margin-top: var(--s-6); }
.team-card { background: var(--c-panel); border: 1px solid var(--c-hairline); border-radius: var(--r-xl); padding: var(--s-6); box-shadow: var(--glow-inner); }
.team-card__top { display: grid; grid-template-columns: 68px minmax(0,1fr); gap: 1rem; align-items: center; }
.team-card .member__avatar { margin: 0; }
.team-card h3 { font-size: 1.05rem; line-height: 1.35; margin: 0; }
.team-card__role { color: var(--c-cyan); font-family: var(--font-mono); font-size: 0.68rem; line-height: 1.55; letter-spacing: 0.06em; text-transform: uppercase; margin-top: 0.35rem; }
.team-card__bio { color: var(--c-muted); font-size: 0.92rem; line-height: 1.75; margin-top: 1.25rem; }
.team-card--advisor { background: linear-gradient(145deg,var(--c-panel),rgba(34,211,238,0.025)); }
.community-statement { max-width: 860px; text-align: center; }
.community-statement h2 { margin: 0.75rem 0 1rem; }
.community-statement p { color: var(--c-muted); font-size: clamp(1.05rem,2vw,1.25rem); line-height: 1.75; }
@media (max-width: 980px){ .advisor-directory { grid-template-columns: 1fr; } }
@media (max-width: 760px){ .team-directory { grid-template-columns: 1fr; } .team-card { padding: var(--s-5); } }

/* Forms */
.form { display: grid; gap: var(--s-5); max-width: 46rem; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-5); }
@media (max-width: 620px){ .form-grid { grid-template-columns: 1fr; } }
.field-group { display: grid; gap: 0.5rem; align-content: start; }
.field-group label { font-family: var(--font-mono); font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--c-muted); }
.field-group .req { color: var(--c-cyan); }
.input, .select, .textarea { width: 100%; background: var(--c-panel-2); border: 1px solid var(--c-hairline-2);
  border-radius: var(--r-md); padding: 0.85em 1em; color: var(--c-text); font-family: var(--font-body); font-size: 0.95rem;
  transition: border-color var(--dur-fast), box-shadow var(--dur-fast); }
.input::placeholder, .textarea::placeholder { color: var(--c-faint); }
.input:focus, .select:focus, .textarea:focus { outline: none; border-color: rgba(34,211,238,0.55); box-shadow: var(--glow-cyan); }
.textarea { min-height: 130px; resize: vertical; }
.form__note { font-size: 0.85rem; color: var(--c-faint); }
.form-status { font-size: 0.92rem; padding: 0.9rem 1.1rem; border-radius: var(--r-md); display: none;
  border: 1px solid rgba(52,211,153,0.35); background: rgba(52,211,153,0.08); color: var(--c-green); }
.form-status.is-visible { display: block; }
.form-status.is-error { border-color:rgba(239,68,68,.35); background:rgba(239,68,68,.08); color:#fca5a5; }

/* Expectations list */
.expect { display: grid; grid-template-columns: repeat(3,1fr); gap: var(--s-5); }
.expect .value { text-align: left; }
@media (max-width: 860px){ .expect { grid-template-columns: 1fr; } }

/* FAQ */
.faq { display: grid; gap: 0.8rem; max-width: 52rem; }
.faq details { background: var(--c-panel); border: 1px solid var(--c-hairline); border-radius: var(--r-md);
  padding: 0 var(--s-5); overflow: hidden; }
.faq summary { list-style: none; cursor: pointer; padding: 1.2rem 0; font-family: var(--font-display);
  font-weight: 500; font-size: 1.05rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-family: var(--font-mono); color: var(--c-cyan); font-size: 1.3rem; transition: transform var(--dur-fast); }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { margin: 0 0 1.2rem; color: var(--c-muted); font-size: 0.95rem; }

/* Contact layout */
.contact-grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: var(--s-8); align-items: start; }
.contact-info .ci-item { padding: var(--s-5) 0; border-top: 1px solid var(--c-hairline); }
.contact-info .ci-item:first-child { border-top: 0; }
.contact-info h4 { font-family: var(--font-mono); font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--c-faint); margin-bottom: 0.5rem; }
.contact-info a, .contact-info p { color: var(--c-text); font-size: 1.02rem; margin: 0; }
.contact-info a:hover { color: var(--c-cyan); }
@media (max-width: 820px){ .contact-grid { grid-template-columns: 1fr; gap: var(--s-6); } }

/* ---------- Collaboration map ---------- */
.collab-map { position: relative; width: 100%; aspect-ratio: 2 / 1; border-radius: var(--r-xl);
  overflow: hidden; border: 1px solid var(--c-hairline); box-shadow: var(--shadow-soft), var(--glow-inner);
  background: radial-gradient(120% 150% at 50% 10%, rgba(34,211,238,0.07), transparent 55%),
              radial-gradient(90% 120% at 90% 90%, rgba(99,102,241,0.07), transparent 55%),
              var(--c-panel); }
.collab-map canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; }
.collab-map__cap { position: absolute; left: 1.2rem; bottom: 1.1rem; z-index: 2;
  font-family: var(--font-mono); font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--c-faint); display: flex; align-items: center; gap: 0.6rem; }
.collab-map__cap::before { content:""; width:7px; height:7px; border-radius:50%; background: var(--c-cyan); box-shadow: 0 0 8px var(--c-cyan); }

/* ---------- Primary button glow pulse (hero + CTA only) ---------- */
@keyframes btnpulse {
  0%, 100% { box-shadow: 0 0 0 rgba(34,211,238,0.0), 0 0 22px -6px rgba(34,211,238,0.35); }
  50% { box-shadow: 0 0 0 rgba(34,211,238,0.0), 0 0 34px -4px rgba(34,211,238,0.6); }
}
.hero .btn--primary, .cta-band__inner .btn--primary { animation: btnpulse 3.4s var(--ease-io) infinite; }
.hero .btn--primary:hover, .cta-band__inner .btn--primary:hover { animation: none; }
@media (prefers-reduced-motion: reduce){ .hero .btn--primary, .cta-band__inner .btn--primary { animation: none; } }

/* Leader portrait photo */
.leader__photo { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 20%;
  border-radius: var(--r-lg); border: 1px solid var(--c-hairline-2); margin-bottom: 1.3rem;
  box-shadow: 0 0 30px -10px rgba(34,211,238,0.35); }

/* ---------- Private team profile intake ---------- */
.profile-intake { background: radial-gradient(80% 55% at 76% 4%,rgba(99,102,241,.09),transparent 60%),var(--c-bg); }
.profile-intro { position:relative; overflow:hidden; padding:clamp(7rem,12vw,10rem) 0 clamp(3rem,6vw,5rem); border-bottom:1px solid var(--c-hairline); }
.profile-intro__bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.22; mix-blend-mode:screen; }
.profile-intro::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,var(--c-bg) 8%,rgba(6,9,15,.72) 58%,rgba(6,9,15,.35)); }
.profile-intro__inner { position:relative; z-index:1; display:flex; align-items:flex-end; justify-content:space-between; gap:var(--s-7); }
.profile-intro h1 { max-width:850px; font-size:clamp(2.35rem,5vw,4.6rem); }
.profile-intro p { font-size:var(--fs-lead); max-width:720px; margin:1.2rem 0 0; }
.preview-badge { flex:0 0 auto; display:inline-flex; align-items:center; gap:.6rem; padding:.65rem 1rem; border:1px solid rgba(52,211,153,.24); border-radius:var(--r-pill); background:rgba(52,211,153,.07); color:var(--c-green); font:500 .7rem var(--font-mono); letter-spacing:.08em; text-transform:uppercase; }
.preview-badge span { width:7px; height:7px; border-radius:50%; background:var(--c-green); box-shadow:0 0 10px var(--c-green); }
.profile-form-section { padding-top:clamp(2.5rem,6vw,5rem); }
.intake-layout { display:grid; grid-template-columns:290px minmax(0,1fr); gap:clamp(2rem,5vw,5rem); align-items:start; }
.intake-rail { position:sticky; top:105px; }
.intake-rail__head { display:flex; justify-content:space-between; align-items:end; gap:1rem; padding-bottom:var(--s-5); border-bottom:1px solid var(--c-hairline); }
.intake-rail__head strong { font-size:.92rem; font-weight:500; }
.intake-steps { list-style:none; margin:0; padding:var(--s-5) 0; display:grid; }
.intake-steps li { display:grid; grid-template-columns:34px 1fr; gap:.85rem; position:relative; padding:.7rem 0 1.15rem; color:var(--c-faint); }
.intake-steps li::before { content:""; position:absolute; left:12px; top:37px; bottom:-1px; width:1px; background:var(--c-hairline-2); }
.intake-steps li:last-child::before { display:none; }
.intake-steps li>span { width:25px; height:25px; display:grid; place-items:center; border-radius:50%; border:1px solid var(--c-hairline-2); font:500 .58rem var(--font-mono); transition:.25s; }
.intake-steps strong,.intake-steps small { display:block; }
.intake-steps strong { color:inherit; font-size:.87rem; font-weight:500; }
.intake-steps small { margin-top:.12rem; color:var(--c-faint); font-size:.75rem; }
.intake-steps li.is-active { color:var(--c-text); }
.intake-steps li.is-active>span,.intake-steps li.is-complete>span { color:#06090F; border-color:transparent; background:var(--grad-signature); }
.privacy-note { display:flex; gap:.8rem; padding:1rem; background:var(--c-panel); border:1px solid var(--c-hairline); border-radius:var(--r-md); }
.privacy-note svg { width:20px; flex:0 0 20px; color:var(--c-cyan); margin-top:.15rem; }
.privacy-note p { font-size:.76rem; line-height:1.55; margin:0; }
.privacy-note strong { color:var(--c-text); }
.intake-card { min-width:0; background:linear-gradient(145deg,rgba(18,26,40,.96),rgba(15,21,32,.93)); border:1px solid var(--c-hairline-2); border-radius:var(--r-xl); padding:clamp(1.25rem,4vw,3rem); box-shadow:var(--shadow-soft),var(--glow-inner); }
.intake-card__top { display:flex; justify-content:space-between; gap:2rem; align-items:end; padding-bottom:var(--s-5); margin-bottom:var(--s-6); border-bottom:1px solid var(--c-hairline); }
.intake-card__top .meta { display:block; color:var(--c-cyan); margin-bottom:.45rem; }
.intake-card__top h2 { font-size:clamp(1.55rem,3vw,2.2rem); margin:0; }
.intake-progress { width:130px; height:4px; overflow:hidden; background:var(--c-hairline-2); border-radius:var(--r-pill); }
.intake-progress span { display:block; width:25%; height:100%; background:var(--grad-signature); border-radius:inherit; transition:width .35s var(--ease-out); }
.profile-panel { display:grid; gap:var(--s-5); }
.profile-panel[hidden] { display:none; }
.profile-panel__intro { font-size:1rem; margin:-.2rem 0 .25rem; }
.field-group small { color:var(--c-faint); font-size:.75rem; line-height:1.45; }
.field-note-spacer { visibility:hidden; }
.form-grid--aligned .input, .form-grid--aligned .select { height:48px; }
.field-label-row { display:flex; justify-content:space-between; gap:1rem; align-items:center; }
.field-label-row>span { font:400 .68rem var(--font-mono); color:var(--c-faint); }
.textarea--bio { min-height:190px; }
.optional { color:var(--c-faint); font-size:.6rem; margin-left:.35rem; }
.choice-fieldset { margin:0; padding:0; border:0; }
.choice-fieldset legend { font:400 .7rem var(--font-mono); letter-spacing:.1em; text-transform:uppercase; color:var(--c-muted); }
.choice-fieldset>p { margin:-.15rem 0 .25rem; font-size:.78rem; }
.choice-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:.65rem; }
.choice-chip { position:relative; cursor:pointer; }
.choice-chip input { position:absolute; opacity:0; pointer-events:none; }
.choice-chip span { display:flex; min-height:44px; align-items:center; justify-content:center; text-align:center; padding:.65rem .7rem; border:1px solid var(--c-hairline-2); border-radius:var(--r-pill); background:rgba(255,255,255,.015); color:var(--c-muted); font-size:.76rem; line-height:1.25; transition:.2s; }
.choice-chip input:focus-visible+span { outline:2px solid var(--c-cyan); outline-offset:2px; }
.choice-chip input:checked+span { color:var(--c-text); border-color:rgba(34,211,238,.45); background:var(--c-cyan-soft); }
.photo-layout { display:grid; grid-template-columns:minmax(0,1fr) 180px; gap:var(--s-5); }
.photo-drop { min-height:260px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:.55rem; padding:2rem; text-align:center; cursor:pointer; border:1px dashed rgba(34,211,238,.35); border-radius:var(--r-lg); background:linear-gradient(145deg,rgba(34,211,238,.04),rgba(99,102,241,.035)); transition:.2s; }
.photo-drop:hover,.photo-drop.is-dragging { border-color:var(--c-cyan); background:var(--c-cyan-soft); }
.photo-drop input { position:absolute; width:1px; height:1px; opacity:0; }
.photo-drop__icon { width:48px; height:48px; display:grid; place-items:center; border-radius:50%; background:var(--c-cyan-soft); color:var(--c-cyan); margin-bottom:.25rem; }
.photo-drop__icon svg { width:23px; }
.photo-drop strong { font:600 1rem var(--font-display); max-width:100%; overflow-wrap:anywhere; }
.photo-drop>span:last-child { color:var(--c-faint); font-size:.75rem; }
.photo-preview { border:1px solid var(--c-hairline-2); border-radius:var(--r-lg); overflow:hidden; background:var(--c-bg); aspect-ratio:4/5; display:grid; place-items:center; }
.photo-preview img { width:100%; height:100%; object-fit:cover; }
.btn.is-loading { cursor:wait; opacity:.85; }
.btn.is-loading::before { content:""; width:1em; height:1em; flex-shrink:0; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:submission-spin .8s linear infinite; }
.submission-progress { margin-top:1rem; color:var(--c-muted); font-size:.9rem; }
@keyframes submission-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .btn.is-loading::before { animation:none; } }
.photo-preview__empty { text-align:center; display:grid; gap:.25rem; color:var(--c-faint); }
.photo-preview__empty span { font:500 .85rem var(--font-display); }
.photo-preview__empty small { font-size:.7rem; }
.photo-guidance { display:grid; grid-template-columns:repeat(3,1fr); gap:.7rem; }
.photo-guidance>div { display:flex; gap:.6rem; padding:.8rem; border:1px solid var(--c-hairline); border-radius:var(--r-md); }
.photo-guidance span { font:400 .62rem var(--font-mono); color:var(--c-cyan); }
.photo-guidance p { font-size:.7rem; line-height:1.45; margin:0; }
.photo-guidance strong { color:var(--c-text); font-weight:500; }
.consent-list { display:grid; gap:.85rem; }
.consent-item { display:grid; grid-template-columns:20px 1fr; gap:.85rem; padding:1rem; cursor:pointer; border:1px solid var(--c-hairline); border-radius:var(--r-md); background:rgba(255,255,255,.012); transition:.2s; }
.consent-item:hover { border-color:var(--c-hairline-2); }
.consent-item input { width:18px; height:18px; margin-top:.15rem; accent-color:var(--c-cyan); }
.consent-item strong,.consent-item small { display:block; }
.consent-item strong { color:var(--c-text); font-size:.88rem; font-weight:500; }
.consent-item strong em { color:var(--c-cyan); font:normal .56rem var(--font-mono); text-transform:uppercase; letter-spacing:.06em; margin-left:.4rem; }
.consent-item small { color:var(--c-muted); line-height:1.5; margin-top:.2rem; }
.review-note { display:grid; grid-template-columns:48px 1fr; gap:1rem; padding:1.1rem; background:var(--c-indigo-soft); border:1px solid rgba(99,102,241,.25); border-radius:var(--r-md); }
.review-note__icon { width:48px; height:48px; display:grid; place-items:center; border-radius:50%; background:var(--grad-signature); color:#06090F; font:700 .65rem var(--font-mono); }
.review-note strong { font-family:var(--font-display); }
.review-note p { font-size:.78rem; margin:.2rem 0 0; }
.profile-form__error { display:none; margin-top:var(--s-5); padding:.8rem 1rem; color:#fca5a5; background:rgba(239,68,68,.08); border:1px solid rgba(239,68,68,.25); border-radius:var(--r-md); font-size:.82rem; }
.profile-form__error.is-visible { display:block; }
.profile-actions { display:flex; align-items:center; gap:.8rem; padding-top:var(--s-6); margin-top:var(--s-6); border-top:1px solid var(--c-hairline); }
.profile-actions [hidden] { display:none; }
.profile-actions__note { color:var(--c-faint); font-size:.72rem; margin-right:auto; }
.profile-complete { text-align:center; padding:clamp(2rem,6vw,5rem) 1rem; }
.profile-complete[hidden] { display:none; }
.profile-complete__mark { width:72px; height:72px; margin:0 auto 1.5rem; display:grid; place-items:center; border-radius:50%; background:rgba(52,211,153,.12); color:var(--c-green); }
.profile-complete__mark svg { width:34px; }
.profile-complete .eyebrow::before { display:none; }
.profile-complete h2,.profile-complete p { margin-left:auto; margin-right:auto; }
.profile-complete .btn { margin-top:.8rem; }
@media (max-width:900px){
  .profile-intro__inner { align-items:flex-start; flex-direction:column; }
  .intake-layout { grid-template-columns:1fr; }
  .intake-rail { position:static; }
  .intake-rail__head,.privacy-note { display:none; }
  .intake-steps { grid-template-columns:repeat(4,1fr); gap:.45rem; padding:0; }
  .intake-steps li { display:block; padding:0; }
  .intake-steps li::before,.intake-steps small { display:none; }
  .intake-steps li>span { margin-bottom:.45rem; }
  .intake-steps strong { font-size:.72rem; }
  .choice-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:620px){
  .profile-intro { padding-top:6.5rem; }
  .profile-intro h1 { font-size:2.3rem; }
  .intake-steps strong { display:none; }
  .intake-card__top { align-items:start; flex-direction:column; gap:1rem; }
  .intake-progress { width:100%; }
  .choice-grid,.photo-guidance { grid-template-columns:1fr; }
  .photo-layout { grid-template-columns:1fr; }
  .photo-preview { max-width:180px; width:100%; justify-self:center; }
  .profile-actions { flex-wrap:wrap; }
  .profile-actions__note { order:-1; width:100%; }
}

/* ---------- Brand logo (image lockup) ---------- */
.brand__logo { height: 34px; width: auto; display: block;
  filter: drop-shadow(0 0 10px rgba(34,211,238,0.16)); }
.brand__logo--footer { height: 44px; }
@media (max-width: 480px){ .brand__logo { height: 30px; } }

/* ---------- Contribute / profile intake form ---------- */
.field-hint { font-size: 0.8rem; color: var(--c-faint); margin-top: 0.35rem; }
.input[type="file"] { padding: 0.7em 0.9em; font-size: 0.9rem; color: var(--c-muted); cursor: pointer; }
.input[type="file"]::file-selector-button {
  font-family: var(--font-body); font-size: 0.82rem; font-weight: 600; color: #06090F;
  background: var(--grad-signature); border: 0; border-radius: var(--r-pill);
  padding: 0.5em 1em; margin-right: 0.9rem; cursor: pointer; }
.consent { display: flex; gap: 0.75rem; align-items: flex-start;
  font-size: 0.92rem; color: var(--c-muted); line-height: 1.5; }
.consent input { width: 19px; height: 19px; margin-top: 0.15rem; flex: 0 0 auto; accent-color: var(--c-cyan); cursor: pointer; }
.consent a { color: var(--c-cyan); }
