/* ---------- Design tokens ---------- */
:root{
  --cream:#F0F4F5;
  --cream-deep:#E1E8EA;
  --ink:#1B2126;
  --ink-soft:#525E66;
  --ink-faint: rgba(27,33,38,.55);

  --mint:#3F8368;
  --mint-deep:#245943;
  --mint-bg:#CFE7DA;
  --mint-bg-soft:#E4F1E9;

  --coral:#D9662C;
  --coral-deep:#9C4118;
  --coral-bg:#F4D2AE;
  --coral-bg-soft:#FAE7D2;

  --plum:#221B3D;
  --plum-soft:#332A58;
  --plum-ink:#EDE7F6;
  --plum-ink-soft: rgba(237,231,246,.72);

  --blush:#C15D5F;
  --blush-deep:#7E3536;
  --blush-bg:#F1D3CF;
  --blush-bg-soft:#F8E7E4;

  --radius-lg:28px;
  --radius-md:18px;
  --radius-sm:12px;
  --container:1160px;

  --shadow-soft: 0 20px 45px -25px rgba(27,33,38,.35);
  --ease: cubic-bezier(.22,.68,.32,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3{
  text-wrap:balance;
  font-family:'Fraunces',Georgia,serif;
  font-weight:500;
  line-height:1.08;
  margin:0 0 .5em;
  letter-spacing:-.01em;
}
p{ margin:0 0 1em; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }

.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 28px;
}
.sprite-defs{ position:absolute; width:0; height:0; overflow:hidden; }
.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:absolute; left:16px; top:-60px;
  background:var(--ink); color:var(--cream);
  padding:10px 18px; border-radius:999px; z-index:200;
  transition:top .2s var(--ease);
}
.skip-link:focus{ top:16px; }

.eyebrow{
  font-family:'Inter',sans-serif;
  font-weight:600;
  font-size:.8rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink-faint);
  margin:0 0 1em;
}
.eyebrow--light{ color:var(--plum-ink-soft); }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 28px;
  border-radius:999px;
  font-weight:600;
  font-size:.95rem;
  border:1.5px solid transparent;
  transition:transform .25s var(--ease), background-color .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
}
.btn:hover{ transform:translateY(-2px); }
.btn--primary{ background:var(--ink); color:var(--cream); }
.btn--primary:hover{ background:var(--coral); }
.btn--ghost{ border-color:rgba(27,33,38,.25); color:var(--ink); }
.btn--ghost:hover{ border-color:var(--ink); background:rgba(27,33,38,.05); }
.btn--outline-light{ border-color:rgba(237,231,246,.4); color:var(--plum-ink); }
.btn--outline-light:hover{ border-color:var(--plum-ink); background:rgba(237,231,246,.08); }

/* ---------- Header / Nav ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(240,244,245,.82);
  backdrop-filter:blur(14px) saturate(140%);
  border-bottom:1px solid rgba(27,33,38,.08);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:16px; padding-bottom:16px;
}
.logo{
  display:flex; align-items:center; gap:10px;
  font-family:'Fraunces',serif; font-weight:600; font-size:1.3rem;
  color:var(--ink);
}
.logo-mark{
  width:26px; height:26px;
  color:var(--ink);
  transition:color .4s var(--ease), transform .4s var(--ease);
  flex:0 0 auto;
}
.logo:hover .logo-mark{ transform:rotate(-8deg) scale(1.06); }
.main-nav{ display:flex; align-items:center; gap:8px; }
.nav-pill{
  padding:9px 18px;
  border-radius:999px;
  font-weight:600; font-size:.92rem;
  border:1.5px solid rgba(27,33,38,.14);
  transition:background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease), transform .2s var(--ease);
}
.nav-pill:hover{ transform:translateY(-1px); }
.nav-pill--cta{ background:var(--ink); border-color:var(--ink); color:var(--cream); }
.nav-pill--cta:hover{ background:var(--blush-deep); border-color:var(--blush-deep); color:#fff; }

/* Header recolors to match the hovered nav item — "shine a light" on your choice */
.site-header{ transition:background-color .4s var(--ease), border-color .4s var(--ease); }
.site-header[data-hover]{ border-bottom-color:transparent; }
.site-header[data-hover="mint"]{ background:#367560; }
.site-header[data-hover="coral"]{ background:#B34E1A; }
.site-header[data-hover="plum"]{ background:var(--plum); }
.site-header[data-hover="blush"]{ background:#B04F52; }
.site-header[data-hover] .logo{ color:#fff; }
.site-header[data-hover] .logo-mark{ color:#fff; }
.site-header[data-hover] .nav-pill{ color:#fff; border-color:rgba(255,255,255,.35); }
.site-header[data-hover] .nav-pill:hover{ background:rgba(255,255,255,.95); border-color:#fff; }
.site-header[data-hover="mint"] .nav-pill:hover{ color:var(--mint-deep); }
.site-header[data-hover="coral"] .nav-pill:hover{ color:var(--coral-deep); }
.site-header[data-hover="plum"] .nav-pill:hover{ color:var(--plum); }
.site-header[data-hover="blush"] .nav-pill:hover{ color:var(--blush-deep); }
.site-header[data-hover] .nav-pill--cta{ background:var(--ink); color:var(--cream); border-color:var(--ink); }
.site-header[data-hover] .menu-toggle span{ background:#fff; }

.menu-toggle{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:42px; height:42px; border:none; background:none; border-radius:10px;
}
.menu-toggle span{ width:22px; height:2px; background:var(--ink); margin:0 auto; transition:transform .25s var(--ease), opacity .25s var(--ease); }
.menu-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.mobile-nav{
  display:none; flex-direction:column;
  max-height:0; overflow:hidden;
  transition:max-height .35s var(--ease);
  border-top:1px solid rgba(27,33,38,.08);
}
.mobile-nav.is-open{ max-height:320px; }
.mobile-nav a{
  padding:16px 28px; font-weight:600; font-size:1.05rem;
  border-bottom:1px solid rgba(27,33,38,.06);
}
.mobile-nav a[data-color="mint"]{ color:var(--mint-deep); }
.mobile-nav a[data-color="coral"]{ color:var(--coral-deep); }
.mobile-nav a[data-color="plum"]{ color:var(--plum); }
.mobile-nav a[data-color="blush"]{ color:var(--blush-deep); }

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height:88svh;
  display:flex; align-items:center;
  overflow:hidden;
  padding:80px 0 60px;
}
/* Colored light shining through frosted glass */
.hero-glass{ position:absolute; inset:0; overflow:hidden; pointer-events:none; transform:translateZ(0); }
.hero-glow{
  position:absolute; border-radius:50%;
  filter:blur(55px);
  will-change:transform;
  animation:drift 30s ease-in-out infinite;
}
.hero-glow--mint{
  width:620px; height:620px; top:-200px; right:-160px;
  background:radial-gradient(circle at 40% 40%, var(--mint) 0%, var(--mint) 35%, transparent 72%);
  opacity:.8;
}
.hero-glow--coral{
  width:520px; height:520px; bottom:-220px; left:-140px;
  background:radial-gradient(circle at 45% 45%, var(--coral) 0%, var(--coral) 32%, transparent 72%);
  opacity:.75;
  animation-delay:-10s;
  animation-duration:34s;
}
.hero-glow--blush{
  width:400px; height:400px; top:18%; left:42%;
  background:radial-gradient(circle at 50% 50%, var(--blush) 0%, var(--blush) 30%, transparent 72%);
  opacity:.5;
  animation-delay:-20s;
  animation-duration:26s;
}
.hero-glass-pane{
  position:absolute; inset:-15%;
  background:linear-gradient(160deg, rgba(240,244,245,.35), rgba(240,244,245,.6) 60%);
}
@keyframes drift{
  0%{ transform:translate(0,0) scale(1); }
  50%{ transform:translate(-55px,40px) scale(1.15); }
  100%{ transform:translate(0,0) scale(1); }
}

.hero-inner{ position:relative; max-width:760px; }
.hero h1{
  font-size:clamp(2.4rem, 5.6vw, 4.4rem);
  color:var(--ink);
}
.hero-lead{
  font-size:clamp(1.05rem, 1.6vw, 1.25rem);
  color:var(--ink-soft);
  max-width:560px;
  margin-bottom:2em;
}
.hero-actions{ display:flex; gap:14px; flex-wrap:wrap; }

/* ---------- Trailer ---------- */
.trailer{
  position:relative;
  background:linear-gradient(175deg, var(--plum) 0%, #2A2350 60%, #1C1733 100%);
  color:var(--plum-ink);
  padding:110px 0;
  overflow:hidden;
}
.trailer-rings{ position:absolute; inset:0; pointer-events:none; }
.ring{ position:absolute; border-radius:50%; border:1px solid rgba(237,231,246,.18); }
.ring--1{ width:640px; height:640px; top:-220px; right:-160px; }
.ring--2{ width:420px; height:420px; bottom:-180px; right:8%; }
.dot{ position:absolute; width:12px; height:12px; border-radius:50%; }
.dot--coral{ background:var(--coral); top:8%; right:22%; box-shadow:0 0 24px rgba(217,102,44,.6); }
.dot--mint{ background:var(--mint-bg); top:30%; right:6%; box-shadow:0 0 20px rgba(207,231,218,.5); }
.dot--coral2{ background:var(--coral); bottom:14%; right:34%; width:8px; height:8px; }
.dot--mint2{ background:var(--mint-bg); bottom:30%; right:12%; width:9px; height:9px; }

.trailer-grid{
  position:relative;
  display:grid; grid-template-columns:1fr .85fr; gap:64px; align-items:center;
}
.game-logo{ display:inline-block; height:34px; width:auto; margin-bottom:18px; }
.trailer-copy h2{ color:#fff; font-size:clamp(2rem, 3.4vw, 3rem); }
.vf-heading--glow{ text-shadow:0 0 22px rgba(217,102,44,.4), 0 0 60px rgba(207,231,218,.2); }
.trailer-copy p{ color:var(--plum-ink-soft); font-size:1.08rem; max-width:440px; margin-bottom:2em; }

.trailer-video{ display:flex; justify-content:center; }
.phone-frame{
  position:relative;
  width:min(300px, 78vw);
  aspect-ratio:9/16;
  background:#0E0C1A;
  border-radius:38px;
  padding:10px;
  box-shadow:var(--shadow-soft), 0 0 0 1px rgba(237,231,246,.12);
}
.phone-frame video{
  width:100%; height:100%; object-fit:cover;
  border-radius:28px; background:#000;
}
/* Keep a 16:9 letterboxed frame in fullscreen instead of stretching edge-to-edge */
.phone-frame video:fullscreen{
  width:100%; height:auto; aspect-ratio:16/9; max-height:100vh;
  object-fit:contain; background:#000; border-radius:0;
}
.phone-frame video:-webkit-full-screen{
  width:100%; height:auto; aspect-ratio:16/9; max-height:100vh;
  object-fit:contain; background:#000; border-radius:0;
}
.phone-frame video::backdrop{ background:#000; }
.phone-notch{
  position:absolute; top:10px; left:50%; transform:translateX(-50%);
  width:70px; height:18px; background:#0E0C1A; border-radius:0 0 14px 14px; z-index:2;
}
.play-btn{
  position:absolute; inset:0; margin:auto; width:68px; height:68px; border-radius:50%;
  background:rgba(240,244,245,.92); color:var(--ink); border:none;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 30px rgba(0,0,0,.35);
  transition:transform .25s var(--ease), opacity .25s var(--ease);
}
.play-btn:hover{ transform:scale(1.08); }
.play-btn.is-hidden{ opacity:0; pointer-events:none; transform:scale(.85); }
.play-btn svg{ margin-left:3px; }

/* ---------- Pillar sections (O nás / Vize / Projekty / Kontakt) ---------- */
.pillar{ padding:120px 0; }
.pillar-inner{ max-width:760px; }
.pillar-inner--center{ max-width:560px; }
.pillar h2{ font-size:clamp(2rem,3.6vw,3rem); }
.pillar-lead{ font-size:1.2rem; }
.pillar p{ color:var(--ink-soft); }
.pillar-text p{ font-weight:600; }

/* Full-bleed photo split (O nás / Vize) — image fills the section edge-to-edge */
.pillar--photo{
  container-type:inline-size;
  padding:0;
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:stretch;
}
.pillar-text-col{
  display:flex; align-items:center;
  padding-top:100px; padding-bottom:100px;
  padding-left:max(28px, calc((100cqw - 1160px) / 2 + 28px));
  padding-right:64px;
}
.pillar--photo-reverse .pillar-text-col{
  order:2;
  padding-left:64px;
  padding-right:max(28px, calc((100cqw - 1160px) / 2 + 28px));
}
.pillar-media-col{
  position:relative;
  min-height:480px;
  order:2;
}
.pillar--photo-reverse .pillar-media-col{ order:1; }
.pillar-media-col img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  display:block;
}

.pillar--mint{ background:var(--mint-bg-soft); }
.pillar--mint .eyebrow{ color:var(--mint-deep); }
.pillar--mint h2{ color:var(--mint-deep); }
.pillar--mint .pillar-lead{ color:var(--ink); }

.pillar--coral{ background:var(--coral-bg-soft); }
.pillar--coral .eyebrow{ color:var(--coral-deep); }
.pillar--coral h2{ color:var(--coral-deep); }
.pillar--coral .pillar-lead{ color:var(--ink); }

.pillar--blush{ background:var(--blush-bg-soft); }
.pillar--blush .eyebrow{ color:var(--blush-deep); }
.pillar--blush h2{ color:var(--blush-deep); }
.pillar--blush .pillar-lead{ color:var(--ink); }

.pillar--team{ background:var(--cream-deep); }
.pillar--team .pillar-inner{ margin-bottom:56px; }

.team-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:36px 28px;
}
.team-photo{
  aspect-ratio:4/5; overflow:hidden;
  border-radius:var(--radius-md);
  margin-bottom:16px;
  box-shadow:var(--shadow-soft);
}
.team-photo img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .5s var(--ease);
}
.team-card:hover .team-photo img{ transform:scale(1.05); }
.team-card h3{
  font-size:1.05rem; line-height:1.3;
  margin-bottom:.35em;
}
.team-card p{
  font-size:.9rem; line-height:1.5;
  color:var(--ink-soft);
  margin:0;
}
.team-card:nth-child(5n+1) h3{ color:var(--mint-deep); }
.team-card:nth-child(5n+2) h3{ color:var(--coral-deep); }
.team-card:nth-child(5n+3) h3{ color:var(--blush-deep); }
.team-card:nth-child(5n+4) h3{ color:var(--mint-deep); }
.team-card:nth-child(5n+5) h3{ color:var(--coral-deep); }

.pillar--plum{
  background:linear-gradient(175deg,#241D42 0%, var(--plum) 55%, #1C1733 100%);
  color:var(--plum-ink);
}
.pillar--plum .pillar-inner{ max-width:800px; }
.pillar--plum h2.light{ color:#fff; }
.pillar--plum .pillar-lead.light{ color:var(--plum-ink); }
.pillar--plum .light-soft{ color:var(--plum-ink-soft); }
.pillar--plum em{ font-style:italic; color:#fff; }
.pillar--plum strong{ color:var(--coral); font-weight:700; }

/* Gallery */
.gallery{
  display:flex; gap:18px; overflow-x:auto;
  margin:48px 0; padding:4px 4px 16px;
  scroll-snap-type:x proximity;
}
.gallery::-webkit-scrollbar{ height:6px; }
.gallery::-webkit-scrollbar-thumb{ background:rgba(237,231,246,.25); border-radius:6px; }
.gallery-fig{ flex:0 0 230px; margin:0; scroll-snap-align:start; }
.gallery-fig figcaption{
  margin-top:12px; font-size:.88rem; line-height:1.4;
  color:var(--plum-ink-soft);
}
.gallery-item{
  display:block; width:100%; aspect-ratio:9/16;
  padding:0; border:none; background:#0E0C1A;
  border-radius:var(--radius-md);
  overflow:hidden;
  scroll-snap-align:start;
  box-shadow:0 18px 40px -20px rgba(0,0,0,.6);
  cursor:zoom-in;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.gallery-item:hover, .gallery-item:focus-visible{
  transform:translateY(-6px);
  box-shadow:0 26px 50px -18px rgba(0,0,0,.7);
}
.gallery-item img{
  width:100%; height:100%; object-fit:contain;
}

/* Lightbox */
.lightbox{
  position:fixed; inset:0; z-index:300;
  display:flex; align-items:center; justify-content:center;
  background:rgba(10,8,20,.92);
  backdrop-filter:blur(6px);
  opacity:0; visibility:hidden;
  transition:opacity .3s var(--ease), visibility 0s linear .3s;
}
.lightbox.is-open{ opacity:1; visibility:visible; transition:opacity .3s var(--ease); }
.lightbox-caption{
  position:absolute; left:0; right:0; bottom:20px; margin:0;
  text-align:center; color:#fff; font-size:.95rem; padding:0 72px;
}
.lightbox-caption:empty{ display:none; }
.lightbox-img{
  max-width:min(90vw, 640px); max-height:88vh;
  width:auto; height:auto;
  object-fit:contain;
  border-radius:16px;
  box-shadow:0 30px 70px -20px rgba(0,0,0,.7);
  background:#0E0C1A;
}
.lightbox-close, .lightbox-nav{
  position:absolute;
  display:flex; align-items:center; justify-content:center;
  width:48px; height:48px; border-radius:50%;
  background:rgba(255,255,255,.1);
  color:#fff; border:1px solid rgba(255,255,255,.18);
  transition:background-color .25s var(--ease), transform .2s var(--ease);
}
.lightbox-close:hover, .lightbox-nav:hover{ background:rgba(255,255,255,.22); }
.lightbox-close{ top:24px; right:24px; }
.lightbox-prev{ left:24px; top:50%; transform:translateY(-50%); }
.lightbox-next{ right:24px; top:50%; transform:translateY(-50%); }
.lightbox-prev:hover, .lightbox-next:hover{ transform:translateY(-50%) scale(1.06); }

/* Phases */
.phases{
  display:grid; grid-template-columns:1fr 1fr; gap:24px;
  margin:48px 0;
}
.phase{
  background:rgba(237,231,246,.06);
  border:1px solid rgba(237,231,246,.14);
  border-radius:var(--radius-md);
  padding:28px;
}
.phase h3{ color:#fff; font-size:1.25rem; margin-top:10px; }
.phase-tag{
  display:inline-block; font-size:.75rem; font-weight:600;
  letter-spacing:.06em; text-transform:uppercase;
  padding:5px 12px; border-radius:999px;
}
.phase-tag--done{ background:rgba(63,131,104,.25); color:#9FDFC2; }
.phase-tag--active{ background:rgba(217,102,44,.22); color:#F3A36E; }
.phase-tag--planned{ background:rgba(237,231,246,.12); color:var(--plum-ink); }

/* Funding */
.funding{
  display:flex; align-items:center; gap:14px;
  padding:24px 0; margin-bottom:8px;
  border-top:1px solid rgba(237,231,246,.16);
}
.funding img{ flex:0 0 auto; border-radius:2px; box-shadow:0 0 0 1px rgba(237,231,246,.18); }
.funding p{ margin:0; line-height:1.5; }
.funding a{ color:#fff; text-decoration:underline; text-underline-offset:2px; }
.funding a:hover{ color:var(--coral); }

/* Reports */
.reports{ border-top:1px solid rgba(237,231,246,.16); padding-top:24px; margin-top:8px; }
.reports summary{
  cursor:pointer; list-style:none;
  font-family:'Fraunces',serif; font-size:1.3rem; color:#fff;
  display:flex; align-items:center; gap:10px;
}
.reports summary::-webkit-details-marker{ display:none; }
.reports summary::after{ content:'+'; margin-left:auto; font-size:1.6rem; color:var(--plum-ink-soft); transition:transform .25s var(--ease); }
.reports[open] summary::after{ content:'–'; }
.reports-count{ font-family:'Inter',sans-serif; font-size:.9rem; color:var(--plum-ink-soft); }
.reports-summary{ margin-top:16px; }
.report-list{ margin-top:16px; }
.report-list{ display:flex; flex-direction:column; }
.report-list li{ border-bottom:1px solid rgba(237,231,246,.12); }
.report-list a{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:16px 4px;
  color:var(--plum-ink-soft);
  transition:color .25s var(--ease), padding-left .25s var(--ease);
}
.report-list a:hover{ color:#fff; padding-left:10px; }
.report-list em{ font-style:normal; font-size:.8rem; opacity:.85; white-space:nowrap; }

/* Source line, team role, status card */
.pillar-source{ font-size:.85rem; }
.pillar-source a{ text-decoration:underline; text-underline-offset:2px; }
.team-card .team-role{ margin-top:.5em; font-size:.85rem; font-style:italic; }
.status-card{
  margin-top:36px; padding:28px;
  border:1px solid rgba(237,231,246,.22);
  border-left:4px solid var(--coral);
  border-radius:var(--radius-md);
  background:rgba(237,231,246,.06);
}
.status-card h3{ color:#fff; font-size:1.25rem; }
.status-card .btn{ margin-top:6px; }

/* ---------- Pro školy ---------- */
.fact-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:16px; margin:48px 0 32px;
}
.fact{
  background:rgba(255,255,255,.65);
  border-radius:var(--radius-md);
  padding:22px 24px;
}
.fact dt{ font-size:.78rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--mint-deep); margin-bottom:6px; }
.fact dd{ margin:0; font-family:'Fraunces',serif; font-size:1.15rem; line-height:1.3; color:var(--ink); }
.skoly-cta{ margin:0 0 64px; }
.faq h3{ font-size:1.4rem; margin-bottom:18px; color:var(--mint-deep); }
.faq details{ border-top:1px solid rgba(27,33,38,.14); padding:16px 0; }
.faq details:last-child{ border-bottom:1px solid rgba(27,33,38,.14); }
.faq summary{
  cursor:pointer; list-style:none; font-weight:600; color:var(--ink);
  display:flex; justify-content:space-between; gap:16px;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:'+'; font-size:1.4rem; line-height:1; color:var(--mint-deep); }
.faq details[open] summary::after{ content:'–'; }
.faq details p{ margin:12px 0 0; }

/* ---------- Contact ---------- */
.contact-form{ display:flex; flex-direction:column; gap:16px; margin-top:32px; }
.contact-form .field{ display:flex; flex-direction:column; gap:6px; }
.contact-form label{ font-weight:600; font-size:.9rem; color:var(--ink); }
.contact-form input[type="email"], .contact-form select, .contact-form textarea{
  padding:14px 18px;
  border-radius:var(--radius-sm);
  border:1.5px solid rgba(27,33,38,.35);
  background:#fff;
  font-family:inherit; font-size:1rem; color:var(--ink);
  width:100%;
}
.contact-form textarea{ resize:vertical; min-height:110px; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus{ outline:2px solid var(--blush-deep); outline-offset:2px; }
.contact-form .hp{ position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.contact-form .consent{ display:flex; gap:10px; align-items:flex-start; font-weight:400; font-size:.88rem; line-height:1.45; color:var(--ink-soft); }
.contact-form .consent input{ margin-top:3px; width:18px; height:18px; flex:0 0 auto; accent-color:var(--blush-deep); }
.contact-form .consent a, .contact-alt a{ text-decoration:underline; text-underline-offset:2px; color:var(--blush-deep); }
.contact-form .btn{ align-self:flex-start; }
.contact-alt{ margin-top:12px; font-size:.95rem; color:var(--ink-soft); }
.form-note{ margin-top:16px; font-weight:600; color:var(--blush-deep); min-height:1.4em; }

/* ---------- Footer ---------- */
.crisis{
  margin:0 0 48px; padding:26px 28px;
  border-radius:var(--radius-md);
  background:rgba(240,244,245,.07);
  border:1px solid rgba(240,244,245,.18);
  color:rgba(240,244,245,.9);
}
.crisis h2{ font-family:'Fraunces',serif; font-size:1.3rem; margin:0 0 12px; color:#fff; }
.crisis-list{ display:grid; gap:8px; margin-bottom:12px; }
.crisis-number{ font-weight:700; font-size:1.1rem; color:#fff; text-decoration:underline; text-underline-offset:3px; margin-right:6px; }
.crisis-note{ margin:0; font-size:.95rem; }
.crisis-note a{ margin-left:12px; text-decoration:underline; text-underline-offset:2px; color:#fff; }
.footer-org{ font-size:.85rem; }
.site-footer{ background:var(--ink); color:var(--cream); padding:64px 0 28px; }
.footer-inner{
  display:flex; justify-content:space-between; align-items:flex-start;
  flex-wrap:wrap; gap:32px;
  padding-bottom:40px; border-bottom:1px solid rgba(240,244,245,.14);
}
.logo--footer{ color:var(--cream); }
.logo--footer .logo-mark{ color:var(--mint-bg); }
.footer-brand p{ color:rgba(240,244,245,.6); margin-top:10px; max-width:280px; }
.footer-nav{ display:flex; gap:28px; flex-wrap:wrap; }
.footer-nav a{ color:rgba(240,244,245,.75); font-weight:500; }
.footer-nav a:hover{ color:var(--coral); }
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px;
  padding-top:24px; font-size:.85rem; color:rgba(240,244,245,.5);
}
.footer-funding{
  display:flex; align-items:center; flex-wrap:wrap; gap:6px 10px;
  margin:0; color:rgba(240,244,245,.55);
}
.footer-funding img{ flex:0 0 auto; border-radius:2px; box-shadow:0 0 0 1px rgba(240,244,245,.18); }
.footer-funding a{ color:rgba(240,244,245,.8); text-decoration:underline; text-underline-offset:2px; }
.footer-funding a:hover{ color:#fff; }

/* ---------- Reveal-on-scroll ---------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-visible{ opacity:1; transform:none; }

/* ---------- Cursor-reactive variable headlines ---------- */
.vf-heading .vf-word{
  display:inline-block;
  font-variation-settings:'wght' var(--wght, 440), 'opsz' var(--opsz, 40);
  transition:font-variation-settings .18s ease-out;
}

/* ---------- Responsive ---------- */
@media (max-width:920px){
  .main-nav{ display:none; }
  .menu-toggle{ display:flex; }
  .mobile-nav{ display:flex; }
  .trailer-grid{ grid-template-columns:1fr; gap:48px; }
  .phases{ grid-template-columns:1fr; }
  .pillar--photo{ grid-template-columns:1fr; }
  .pillar-text-col, .pillar--photo-reverse .pillar-text-col{
    order:1;
    padding:64px max(28px, calc((100cqw - 1160px) / 2 + 28px));
  }
  .pillar-media-col, .pillar--photo-reverse .pillar-media-col{ order:2; min-height:320px; }
}
@media (max-width:640px){
  .hero{ min-height:auto; padding:64px 0 80px; }
  .pillar{ padding:80px 0; }
  .trailer{ padding:80px 0; }
  .report-list em{ display:none; }
  .lightbox-close{ top:14px; right:14px; width:42px; height:42px; }
  .lightbox-prev{ left:10px; }
  .lightbox-next{ right:10px; }
  .lightbox-nav{ width:42px; height:42px; }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; transition:none; }
  .hero-glow{ animation:none; }
  .vf-heading .vf-word{ transition:none; }
}
