/* ============================================================
   IMPACT Rise Up — design system
   Palette from Rise Up P.ai poster / Apple-style presentation
   ============================================================ */

@font-face {
  font-family: "IBM Plex Sans Thai";
  src: url("../assets/fonts/IBMPlexSansThai-Thin.ttf") format("truetype");
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Sans Thai";
  src: url("../assets/fonts/IBMPlexSansThai-ExtraLight.ttf") format("truetype");
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Sans Thai";
  src: url("../assets/fonts/IBMPlexSansThai-Light.ttf") format("truetype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Sans Thai";
  src: url("../assets/fonts/IBMPlexSansThai-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Sans Thai";
  src: url("../assets/fonts/IBMPlexSansThai-Medium.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Sans Thai";
  src: url("../assets/fonts/IBMPlexSansThai-SemiBold.ttf") format("truetype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Sans Thai";
  src: url("../assets/fonts/IBMPlexSansThai-Bold.ttf") format("truetype");
  font-weight: 700 900;
  font-style: normal;
  font-display: swap;
}

:root {
  /* brand */
  --navy-950: #0E0C33;
  --navy-900: #14123E;
  --navy-800: #1B1857;
  --indigo-700: #30338F;
  --royal-600: #16498F;
  --royal-500: #1E4FD8;
  --cyan-400: #3FB2E8;
  --cyan-300: #62CBF2;
  --yellow-400: #F6EB16;
  --yellow-500: #EAD800;

  /* category colors */
  --cat-fn: #2E5BFF;
  --cat-deco: #2FB4E8;
  --cat-gi: #F0821E;

  /* neutrals */
  --ink: #12123A;
  --ink-soft: #4A4C6E;
  --paper: #F5F6FB;
  --card: #FFFFFF;
  --line: rgba(18, 18, 58, 0.10);

  /* dark-section tokens */
  --d-text: rgba(255, 255, 255, 0.94);
  --d-text-soft: rgba(214, 220, 255, 0.72);
  --d-line: rgba(255, 255, 255, 0.14);
  --d-card: rgba(255, 255, 255, 0.06);

  --font-display: "IBM Plex Sans Thai", sans-serif;
  --font-body: "IBM Plex Sans Thai", sans-serif;

  --nav-h: 52px;
  --radius-lg: 28px;
  --radius-md: 18px;
  --radius-sm: 12px;
}

/* ---------- reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.65;
  color: var(--ink);
  background: var(--paper);
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
h1, h2, h3, h4, p { margin: 0; }
a { color: inherit; }
ul, ol { margin: 0; padding: 0; }
button { font: inherit; }
.nowrap { white-space: nowrap; }
p, li { text-wrap: pretty; }

::selection { background: var(--yellow-400); color: var(--navy-900); }

:focus-visible {
  outline: 3px solid var(--cyan-400);
  outline-offset: 3px;
  border-radius: 4px;
}

/* ---------- local nav ---------- */
.localnav {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 100;
  height: var(--nav-h);
  background: rgba(14, 12, 51, 0.72);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  backdrop-filter: saturate(180%) blur(20px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.localnav-inner {
  max-width: 1080px;
  margin: 0 auto;
  height: 100%;
  padding: 0 20px;
  display: flex;
  align-items: center;
  gap: 20px;
}
.localnav-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  flex-shrink: 0;
  order: 1;
}
.localnav-brand img { height: 30px; width: auto; }
.localnav-links {
  display: flex;
  align-items: center;
  gap: 26px;
  margin-left: auto;
  order: 2;
}
.localnav-links a {
  color: rgba(255, 255, 255, 0.82);
  text-decoration: none;
  font-size: 13.5px;
  font-weight: 500;
  white-space: nowrap;
  transition: color 0.2s;
}
.localnav-links a:hover { color: #fff; }
.localnav-links a[aria-current="page"] { color: #fff; font-weight: 600; }
.localnav-cta {
  flex-shrink: 0;
  order: 3;
  background: var(--yellow-400);
  color: var(--navy-900) !important;
  font-weight: 700 !important;
  padding: 7px 16px;
  border-radius: 999px;
  transition: transform 0.15s ease, background 0.2s;
}
.localnav-cta:hover { background: #FFF33F; transform: scale(1.04); }
/* hamburger — hidden on desktop */
.nav-toggle {
  display: none;
  margin-left: auto;
  width: 40px;
  height: 40px;
  border: none;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  cursor: pointer;
  padding: 0;
  position: relative;
}
.nav-toggle span,
.nav-toggle span::before,
.nav-toggle span::after {
  position: absolute;
  left: 50%;
  width: 18px;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  transform: translateX(-50%);
  transition: transform 0.25s ease, opacity 0.2s ease;
}
.nav-toggle span { top: 50%; margin-top: -1px; }
.nav-toggle span::before { content: ""; top: -6px; }
.nav-toggle span::after { content: ""; top: 6px; }
.nav-toggle[aria-expanded="true"] span { background: transparent; }
.nav-toggle[aria-expanded="true"] span::before { transform: translateX(-50%) translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span::after { transform: translateX(-50%) translateY(-6px) rotate(-45deg); }

/* ---------- buttons ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--font-display);
  font-weight: 600;
  text-decoration: none;
  border-radius: 999px;
  padding: 14px 30px;
  font-size: 17px;
  line-height: 1.3;
  transition: transform 0.15s ease, box-shadow 0.2s ease, background 0.2s;
  cursor: pointer;
  border: none;
}
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0) scale(0.98); }
.btn-solar {
  background: var(--yellow-400);
  color: var(--navy-900);
  box-shadow: 0 8px 28px rgba(246, 235, 22, 0.28);
}
.btn-solar:hover { background: #FFF33F; box-shadow: 0 12px 36px rgba(246, 235, 22, 0.4); }
.btn-ghost-dark {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.28);
}
.btn-ghost-dark:hover { background: rgba(255, 255, 255, 0.18); }
.btn-ghost-light {
  background: transparent;
  color: var(--royal-500);
  border: 1.5px solid currentColor;
}
.btn-lg { padding: 17px 40px; font-size: 19px; }

.link-more {
  font-weight: 600;
  color: var(--royal-500);
  text-decoration: none;
}
.link-more:hover { text-decoration: underline; }
.link-more::after { content: " ›"; }

/* ---------- layout primitives ---------- */
.container { max-width: 1080px; margin: 0 auto; padding: 0 24px; }
.container-wide { max-width: 1280px; margin: 0 auto; padding: 0 24px; }
.section { padding: clamp(76px, 11vw, 150px) 0; }
.section-tight { padding: clamp(48px, 7vw, 90px) 0; }

.theme-dark {
  background: var(--navy-900);
  color: var(--d-text);
}

/* ---------- typography ---------- */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--royal-500);
  margin-bottom: 18px;
}
.theme-dark .eyebrow { color: var(--cyan-300); }
.eyebrow .up-arrow { width: 12px; height: 15px; flex-shrink: 0; }

.display-xl {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(1.75rem, 6.6vw, 4.9rem);
  line-height: 1.16;
  letter-spacing: -0.015em;
  text-wrap: balance;
}
.display-lg {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(1.6rem, 4.4vw, 3.2rem);
  line-height: 1.2;
  letter-spacing: -0.01em;
  text-wrap: balance;
}
.display-md {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(1.4rem, 2.8vw, 1.9rem);
  line-height: 1.25;
}
.lead {
  font-size: clamp(1.05rem, 1.8vw, 1.3rem);
  line-height: 1.7;
  color: var(--ink-soft);
}
.theme-dark .lead { color: var(--d-text-soft); }

.text-gradient {
  background: linear-gradient(92deg, #62CBF2 0%, #3FB2E8 45%, #B8F0FF 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.text-solar { color: var(--yellow-400); }

.section-head { max-width: 720px; margin-bottom: clamp(40px, 6vw, 72px); }
.section-head.centered { margin-left: auto; margin-right: auto; text-align: center; }
.section-head .lead { margin-top: 18px; }
.section-head.benefits-head { max-width: 900px; }
.benefits-head h2 span { display: block; }
.section-head.categories-intro { max-width: 860px; }

/* ============================================================
   HERO
   ============================================================ */
.hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: calc(var(--nav-h) + 56px) 24px 96px;
  overflow: hidden;
  background:
    radial-gradient(95% 100% at 10% 100%, rgba(20, 31, 148, 0.72) 0%, transparent 62%),
    linear-gradient(108deg, #1727AA 0%, #1745C8 48%, #1763E4 100%);
  color: var(--d-text);
}
.hero-inner { position: relative; z-index: 2; max-width: 880px; }
.hero-lockup {
  width: min(100%, 780px);
  margin: 0 auto 38px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto clamp(108px, 13vw, 150px);
  align-items: center;
  gap: clamp(18px, 3.2vw, 42px);
}
.hero-lockup-riseup { width: 100%; height: auto; }
.hero-lockup-times {
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 6vw, 5rem);
  font-weight: 400;
  line-height: 1;
  color: #fff;
}
.hero-lockup-ovec { width: 100%; height: auto; }
.hero h1 { margin-bottom: 22px; }
.hero .lead { max-width: 640px; margin: 0 auto 30px; color: rgba(255, 255, 255, 0.76); }
.hero-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 26px;
  font-size: 15px;
  font-weight: 500;
  color: var(--d-text-soft);
  margin-bottom: 38px;
}
.hero-meta strong { color: var(--yellow-400); font-weight: 600; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }

/* floating tool icons — echo of the poster background */
.hero-tools { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.hero-tools svg {
  position: absolute;
  color: #fff;
  opacity: 0.05;
  animation: toolDrift 14s ease-in-out infinite alternate;
}
@keyframes toolDrift {
  from { transform: translateY(0) rotate(var(--rot, 0deg)); }
  to { transform: translateY(-26px) rotate(calc(var(--rot, 0deg) + 10deg)); }
}

/* rising arrows on load */
.hero-rise { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
.hero-rise span {
  position: absolute;
  bottom: -18%;
  width: 2px;
  height: 16%;
  background: linear-gradient(to top, rgba(98, 203, 242, 0), rgba(98, 203, 242, 0.55));
  animation: riseUp 3.4s cubic-bezier(0.22, 0.61, 0.36, 1) infinite;
}
.hero-rise span::after {
  content: "";
  position: absolute;
  top: -7px; left: 50%;
  width: 9px; height: 9px;
  border-top: 2px solid rgba(98, 203, 242, 0.75);
  border-right: 2px solid rgba(98, 203, 242, 0.75);
  transform: translateX(-50%) rotate(-45deg);
}
@keyframes riseUp {
  0% { transform: translateY(0); opacity: 0; }
  12% { opacity: 1; }
  70% { opacity: 1; }
  100% { transform: translateY(-88vh); opacity: 0; }
}

.scroll-hint {
  position: absolute;
  bottom: 26px; left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  color: var(--d-text-soft);
  font-size: 12.5px;
  letter-spacing: 0.12em;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.scroll-hint::after {
  content: "";
  width: 1px; height: 30px;
  background: linear-gradient(to bottom, rgba(255,255,255,0.5), transparent);
}

/* ---------- stat ribbon ---------- */
.stat-ribbon {
  background: var(--navy-950);
  color: var(--d-text);
  padding: 40px 0;
}
.stat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  text-align: center;
}
.stat-num {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(1.7rem, 3.4vw, 2.6rem);
  color: var(--yellow-400);
  line-height: 1.15;
  white-space: nowrap;
}
.stat-num .unit { font-size: 0.55em; font-weight: 600; margin-left: 4px; }
.stat-label { font-size: 14.5px; color: var(--d-text-soft); margin-top: 6px; }

/* ============================================================
   BENTO — what you get
   ============================================================ */
.bento {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 18px;
}
.bento-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 34px 32px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow: hidden;
  position: relative;
}
.bento-card h3 {
  font-family: var(--font-display);
  font-size: 1.28rem;
  font-weight: 600;
  line-height: 1.3;
}
.bento-card p {
  color: var(--ink-soft);
  font-size: 15.5px;
  line-height: 1.65;
  text-wrap: pretty;
}
.bento-icon {
  width: 46px; height: 46px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, #EDF3FF, #DDEBFF);
  color: var(--royal-500);
  margin-bottom: 4px;
}
.bento-icon svg { width: 24px; height: 24px; }
.span-3 { grid-column: span 3; }
.span-2 { grid-column: span 2; }
.span-4 { grid-column: span 4; }
.span-6 { grid-column: span 6; }

.bento-photo {
  padding: 0;
  min-height: 320px;
  color: #fff;
  justify-content: flex-end;
  background-size: cover;
  background-position: center;
}
.bento-photo .bento-overlay {
  padding: 34px 32px;
  background: linear-gradient(to top, rgba(14, 12, 51, 0.92) 0%, rgba(14, 12, 51, 0.35) 55%, transparent 100%);
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.bento-photo h3 { color: #fff; }
.bento-photo p { color: rgba(224, 230, 255, 0.85); }
.bento-tag {
  align-self: flex-start;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.08em;
  padding: 5px 12px;
  border-radius: 999px;
  background: var(--yellow-400);
  color: var(--navy-900);
}

/* ============================================================
   CATEGORY CARDS (home teaser)
   ============================================================ */
.cat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.cat-card {
  border-radius: var(--radius-lg);
  padding: 38px 32px 32px;
  color: #fff;
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-height: 420px;
  position: relative;
  overflow: hidden;
  text-decoration: none;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.cat-card:hover { transform: translateY(-6px); box-shadow: 0 24px 48px rgba(14, 12, 51, 0.22); }
.cat-fn { background: linear-gradient(160deg, #1E3FD0 0%, #2E5BFF 55%, #1730A8 100%); }
.cat-deco { background: linear-gradient(160deg, #1893C9 0%, #2FB4E8 55%, #0F7FB5 100%); }
.cat-gi { background: linear-gradient(160deg, #D96A0A 0%, #F0821E 55%, #C25E05 100%); }
.cat-icon {
  width: 54px; height: 54px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.16);
  display: grid;
  place-items: center;
}
.cat-icon svg { width: 28px; height: 28px; }
.cat-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 2rem;
  line-height: 1.1;
}
.cat-sub { font-weight: 600; font-size: 1.02rem; opacity: 0.95; text-wrap: balance; }
.cat-desc { font-size: 15px; line-height: 1.65; opacity: 0.85; flex-grow: 1; text-wrap: pretty; }
.cat-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.cat-chips span {
  font-size: 12.5px;
  font-weight: 500;
  padding: 5px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.22);
}
.cat-more { font-weight: 600; font-size: 15px; margin-top: 8px; }
.cat-more::after { content: " ›"; }

/* ============================================================
   TIMELINE
   ============================================================ */
.timeline { position: relative; max-width: 760px; margin: 0 auto; }
.timeline::before {
  content: "";
  position: absolute;
  left: 21px; top: 10px; bottom: 10px;
  width: 2px;
  background: linear-gradient(to top, var(--cyan-400), rgba(98, 203, 242, 0.12));
}
.tl-item {
  position: relative;
  padding: 0 0 44px 74px;
}
.tl-item:last-child { padding-bottom: 0; }
.tl-node {
  position: absolute;
  left: 0; top: 2px;
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--navy-800);
  border: 1.5px solid rgba(98, 203, 242, 0.5);
  display: grid;
  place-items: center;
  color: var(--cyan-300);
}
.tl-node svg { width: 20px; height: 20px; }
.tl-date {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 14.5px;
  color: var(--yellow-400);
  letter-spacing: 0.02em;
  margin-bottom: 4px;
}
.tl-item h3 {
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 600;
  margin-bottom: 8px;
}
.tl-item p { color: var(--d-text-soft); font-size: 15.5px; text-wrap: pretty; }
.tl-item ul {
  list-style: none;
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.tl-item ul li {
  position: relative;
  padding-left: 22px;
  color: var(--d-text-soft);
  font-size: 15px;
}
.tl-item ul li::before {
  content: "";
  position: absolute;
  left: 2px; top: 7px;
  width: 8px; height: 8px;
  border-top: 2px solid var(--cyan-400);
  border-right: 2px solid var(--cyan-400);
  transform: rotate(-45deg);
}
.tl-note {
  margin-top: 36px;
  text-align: center;
  font-size: 14px;
  color: var(--d-text-soft);
}

/* ============================================================
   PRIZES
   ============================================================ */
.prize-hero { text-align: center; margin-bottom: clamp(40px, 6vw, 64px); }
.prize-total {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(4rem, 13vw, 9rem);
  line-height: 1;
  color: var(--yellow-400);
  letter-spacing: -0.02em;
  text-shadow: 0 0 80px rgba(246, 235, 22, 0.35);
}
.prize-total .unit {
  font-size: 0.3em;
  font-weight: 600;
  color: var(--d-text);
  margin-left: 10px;
  letter-spacing: 0;
}
.prize-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  max-width: 920px;
  margin: 0 auto;
}
.prize-card {
  background: var(--d-card);
  border: 1px solid var(--d-line);
  border-radius: var(--radius-md);
  padding: 26px 20px;
  text-align: center;
}
.prize-card.first {
  background: linear-gradient(170deg, rgba(246, 235, 22, 0.16), rgba(246, 235, 22, 0.05));
  border-color: rgba(246, 235, 22, 0.45);
}
.prize-rank { font-size: 14px; font-weight: 600; color: var(--d-text-soft); margin-bottom: 8px; }
.prize-card.first .prize-rank { color: var(--yellow-400); }
.prize-amt {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(1.5rem, 3vw, 2rem);
  white-space: nowrap;
}
.prize-amt .unit { font-size: 0.55em; font-weight: 500; color: var(--d-text-soft); }
.prize-foot {
  text-align: center;
  margin-top: 30px;
  color: var(--d-text-soft);
  font-size: 15px;
}
.prize-foot strong { color: var(--d-text); }

/* ============================================================
   PHOTO MARQUEE
   ============================================================ */
.marquee {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.marquee-track {
  display: flex;
  gap: 18px;
  width: max-content;
  animation: marquee 42s linear infinite;
}
.marquee:hover .marquee-track { animation-play-state: paused; }
.marquee-track img {
  height: clamp(180px, 26vw, 280px);
  width: auto;
  border-radius: var(--radius-md);
}
@keyframes marquee {
  to { transform: translateX(-50%); }
}

/* ============================================================
   ELIGIBILITY / CHECKLIST
   ============================================================ */
.check-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.check-list li {
  position: relative;
  padding-left: 42px;
  font-size: 16.5px;
}
.check-list li strong { font-weight: 600; }
.check-list li::before {
  content: "";
  position: absolute;
  left: 0; top: 1px;
  width: 26px; height: 26px;
  border-radius: 50%;
  background: var(--royal-500);
}
.check-list li::after {
  content: "";
  position: absolute;
  left: 7px; top: 8px;
  width: 11px; height: 6px;
  border-left: 2.5px solid #fff;
  border-bottom: 2.5px solid #fff;
  transform: rotate(-45deg);
}
.theme-dark .check-list li::before { background: var(--cyan-400); }
.theme-dark .check-list li::after { border-color: var(--navy-900); }

.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 80px);
  align-items: center;
}

/* ============================================================
   CATEGORY DETAIL PAGE
   ============================================================ */
.page-header {
  padding: calc(var(--nav-h) + clamp(60px, 9vw, 110px)) 0 clamp(56px, 8vw, 96px);
  background:
    radial-gradient(100% 80% at 82% 110%, rgba(30, 79, 216, 0.4) 0%, transparent 60%),
    linear-gradient(165deg, #191650 0%, #1D1A5F 60%, #14123E 100%);
  color: var(--d-text);
  text-align: center;
}
.page-header .lead { max-width: 640px; margin: 18px auto 0; color: rgba(244,246,255,.86); }

/* CONTACT — direct lines to the Rise Up team */
.contact-hero .lead { max-width:760px; }
.contact-hub { background:#f5f6fb; }
.contact-channel-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:46px; }
.contact-channel { min-height:260px; padding:26px; display:grid; grid-template-columns:auto 1fr auto; gap:20px; align-items:start; color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:var(--radius-md); box-shadow:0 16px 42px rgba(18,18,58,.07); text-decoration:none; transition:transform .2s ease,box-shadow .2s ease; }
.contact-channel:hover { transform:translateY(-5px); box-shadow:0 22px 48px rgba(18,18,58,.13); }
.contact-channel-logo { width:54px; height:54px; display:block; object-fit:contain; border-radius:11px; }
.contact-channel small { display:block; color:var(--ink-soft); font-size:12px; }
.contact-channel strong { display:block; margin-top:8px; overflow-wrap:anywhere; font-size:1.18rem; }
.contact-channel p { margin-top:50px; color:var(--ink-soft); font-size:14px; line-height:1.6; }
.contact-channel>b { font-size:1.3rem; }
.contact-team-section { color:#fff; background:var(--navy-950); }
.contact-team-head { display:grid; grid-template-columns:1fr 1fr; gap:16px 55px; align-items:end; }
.contact-team-head .eyebrow { grid-column:1/-1; }
.contact-team-head>p:last-child { color:var(--d-text-soft); line-height:1.7; }
.contact-people-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:48px; }
.contact-person,.contact-office { min-height:270px; padding:27px; display:flex; flex-direction:column; border:1px solid rgba(255,255,255,.16); border-radius:var(--radius-md); background:rgba(255,255,255,.055); }
.contact-person>p,.contact-office>p { color:var(--cyan-300); font:700 11px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.12em; text-transform:uppercase; }
.contact-person h3,.contact-office h3 { margin-top:35px; font-size:1.4rem; }
.contact-person span,.contact-office span { margin-top:5px; color:var(--d-text-soft); font-size:14px; line-height:1.6; }
.contact-person a,.contact-office a { margin-top:auto; padding-top:22px; color:var(--yellow-400); border-top:1px solid rgba(255,255,255,.15); font-size:1.2rem; font-weight:600; text-decoration:none; }

.type-switch {
  position: sticky;
  top: var(--nav-h);
  z-index: 50;
  background: rgba(245, 246, 251, 0.82);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--line);
  padding: 12px 0;
}
.type-switch-inner {
  display: flex;
  gap: 10px;
  justify-content: center;
  overflow-x: auto;
  scrollbar-width: none;
  padding: 0 20px;
}
.type-switch-inner::-webkit-scrollbar { display: none; }
.type-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 20px;
  border-radius: 999px;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 14.5px;
  text-decoration: none;
  color: var(--ink-soft);
  border: 1.5px solid var(--line);
  background: #fff;
  white-space: nowrap;
  transition: all 0.2s;
}
.type-pill .dot { width: 9px; height: 9px; border-radius: 50%; }
.type-pill:hover { border-color: currentColor; }
.type-pill.active-fn { background: var(--cat-fn); border-color: var(--cat-fn); color: #fff; }
.type-pill.active-deco { background: var(--cat-deco); border-color: var(--cat-deco); color: #fff; }
.type-pill.active-gi { background: var(--cat-gi); border-color: var(--cat-gi); color: #fff; }

.type-section { padding: clamp(72px, 10vw, 130px) 0; }
.type-section + .type-section { border-top: 1px solid var(--line); }
.type-head { display: flex; align-items: center; gap: 20px; margin-bottom: 16px; flex-wrap: wrap; }
.type-badge {
  width: 62px; height: 62px;
  border-radius: 20px;
  display: grid;
  place-items: center;
  color: #fff;
  flex-shrink: 0;
}
.type-badge svg { width: 32px; height: 32px; }
.badge-fn { background: linear-gradient(150deg, #2E5BFF, #1730A8); }
.badge-deco { background: linear-gradient(150deg, #2FB4E8, #0F7FB5); }
.badge-gi { background: linear-gradient(150deg, #F0821E, #C25E05); }
.type-head h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 1.1;
}
.type-tagline {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(1.1rem, 2.2vw, 1.4rem);
  margin-bottom: 20px;
}
.tag-fn { color: var(--cat-fn); }
.tag-deco { color: #1691C2; }
.tag-gi { color: #D9700D; }

.brief-box {
  border-radius: var(--radius-md);
  padding: 28px 32px;
  margin: 30px 0;
  background: var(--card);
  border: 1px solid var(--line);
  border-left: 6px solid var(--royal-500);
}
.brief-box.b-fn { border-left-color: var(--cat-fn); }
.brief-box.b-deco { border-left-color: var(--cat-deco); }
.brief-box.b-gi { border-left-color: var(--cat-gi); }
.brief-box .label {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-bottom: 8px;
}
.brief-box .quote {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(1.15rem, 2.4vw, 1.5rem);
  line-height: 1.5;
}

.duo {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin: 30px 0;
}
.panel {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: 28px;
}
.panel h4 {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 600;
  margin-bottom: 16px;
}
.chip-set { display: flex; flex-wrap: wrap; gap: 8px; }
.chip-set span {
  font-size: 14px;
  font-weight: 500;
  padding: 7px 15px;
  border-radius: 999px;
  background: var(--paper);
  border: 1px solid var(--line);
}
.arrow-list { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.arrow-list li {
  position: relative;
  padding-left: 24px;
  font-size: 15.5px;
  color: var(--ink-soft);
}
.arrow-list li::before {
  content: "";
  position: absolute;
  left: 2px; top: 8px;
  width: 8px; height: 8px;
  border-top: 2px solid var(--royal-500);
  border-right: 2px solid var(--royal-500);
  transform: rotate(-45deg);
}

.idea-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 30px 0;
}
.idea-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: 24px 26px;
}
.idea-card h5 {
  margin: 0 0 8px;
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 600;
}
.idea-card p { font-size: 14.5px; color: var(--ink-soft); line-height: 1.6; }

.note-box {
  display: flex;
  gap: 14px;
  background: #FFFBE0;
  border: 1px solid #EFE29A;
  border-radius: var(--radius-md);
  padding: 20px 24px;
  font-size: 15px;
  color: #5A5210;
  margin: 30px 0;
}
.note-box svg { flex-shrink: 0; width: 22px; height: 22px; margin-top: 2px; }

/* questions accordion */
.q-details {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  margin: 30px 0;
  overflow: hidden;
}
.q-details summary {
  cursor: pointer;
  list-style: none;
  padding: 22px 28px;
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.05rem;
}
.q-details summary::-webkit-details-marker { display: none; }
.q-details summary::after {
  content: "";
  margin-left: auto;
  width: 10px; height: 10px;
  border-right: 2px solid var(--ink-soft);
  border-bottom: 2px solid var(--ink-soft);
  transform: rotate(45deg);
  transition: transform 0.25s;
  flex-shrink: 0;
}
.q-details[open] summary::after { transform: rotate(-135deg); }
.q-details ol {
  padding: 0 28px 26px 28px;
  margin: 0;
  list-style: none;
  counter-reset: q;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.q-details ol li {
  counter-increment: q;
  position: relative;
  padding-left: 44px;
  font-size: 15.5px;
  color: var(--ink-soft);
}
.q-details ol li strong { color: var(--ink); font-weight: 600; }
.q-details ol li::before {
  content: counter(q);
  position: absolute;
  left: 0; top: 0;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--paper);
  border: 1px solid var(--line);
  display: grid;
  place-items: center;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 13px;
  color: var(--ink);
}

.type-foot {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 34px;
}

/* ============================================================
   CRITERIA PAGE
   ============================================================ */
.score-list { display: flex; flex-direction: column; gap: 14px; }
.score-row {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: 22px 26px;
}
.score-row-top {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 10px;
}
.score-row-top h4 {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.08rem;
  line-height: 1.4;
}
.score-row-top h4 .en { display: block; font-size: 0.8rem; font-weight: 500; color: var(--ink-soft); margin-top: 2px; }
.score-pts {
  margin-left: auto;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.5rem;
  color: var(--royal-500);
  white-space: nowrap;
  flex-shrink: 0;
}
.score-pts .unit { font-size: 0.6em; font-weight: 500; color: var(--ink-soft); }
.score-bar {
  height: 7px;
  border-radius: 99px;
  background: var(--paper);
  overflow: hidden;
  margin-bottom: 12px;
}
.score-bar i {
  display: block;
  height: 100%;
  border-radius: 99px;
  background: linear-gradient(90deg, var(--royal-500), var(--cyan-400));
  width: 0;
  transition: width 1s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.is-in .score-bar i, .score-row.is-in .score-bar i { width: var(--w); }
.score-desc { font-size: 14.5px; color: var(--ink-soft); }

.score-fn .score-pts { color: var(--cat-fn); }
.score-fn .score-bar i { background: linear-gradient(90deg, #1730A8, var(--cat-fn)); }
.score-deco .score-pts { color: #1691C2; }
.score-deco .score-bar i { background: linear-gradient(90deg, #0F7FB5, var(--cat-deco)); }
.score-gi .score-pts { color: #D9700D; }
.score-gi .score-bar i { background: linear-gradient(90deg, #C25E05, var(--cat-gi)); }

.rubric { margin-top: 14px; border-top: 1px solid var(--line); }
.rubric summary {
  cursor: pointer;
  list-style: none;
  padding: 12px 0 2px;
  font-size: 14px;
  font-weight: 600;
  color: var(--royal-500);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.rubric summary::-webkit-details-marker { display: none; }
.rubric summary::after {
  content: "";
  width: 7px; height: 7px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  transition: transform 0.2s;
}
.rubric[open] summary::after { transform: rotate(-135deg) translateY(-1px); }
.rubric-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  padding: 14px 0 6px;
}
.rubric-cell {
  background: var(--paper);
  border-radius: var(--radius-sm);
  padding: 14px 16px;
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--ink-soft);
}
.rubric-cell b {
  display: block;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 13px;
  color: var(--ink);
  margin-bottom: 6px;
}
.rubric-cell b .pt { color: var(--royal-500); }

.total-line {
  margin-top: 18px;
  display: flex;
  justify-content: flex-end;
  align-items: baseline;
  gap: 12px;
  font-family: var(--font-display);
  font-weight: 600;
  padding: 0 26px;
}
.total-line .sum { font-size: 1.6rem; font-weight: 700; }

/* ============================================================
   APPLY PAGE
   ============================================================ */
.steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.step-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: 28px 26px;
  position: relative;
}
.step-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 2.6rem;
  line-height: 1;
  background: linear-gradient(160deg, var(--royal-500), var(--cyan-400));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  margin-bottom: 14px;
}
.step-card h4 {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.08rem;
  margin-bottom: 8px;
}
.step-card p { font-size: 14.5px; color: var(--ink-soft); }
.step-card a { color: var(--royal-500); font-weight: 600; }

.terms { counter-reset: t; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 20px; list-style: none; }
.terms li {
  counter-increment: t;
  position: relative;
  padding: 16px 18px 16px 56px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  font-size: 14.5px;
  color: var(--ink-soft);
  line-height: 1.6;
}
.terms li::before {
  content: counter(t, decimal-leading-zero);
  position: absolute;
  left: 18px; top: 16px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  color: var(--royal-500);
}
.terms li strong { color: var(--ink); font-weight: 600; }

.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.contact-card {
  background: var(--d-card);
  border: 1px solid var(--d-line);
  border-radius: var(--radius-md);
  padding: 30px;
}
.contact-role { font-size: 13px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cyan-300); margin-bottom: 8px; }
.contact-card h4 { font-family: var(--font-display); font-weight: 600; font-size: 1.25rem; margin-bottom: 14px; }
.contact-card a { color: var(--d-text); text-decoration: none; font-weight: 500; }
.contact-card a:hover { color: var(--cyan-300); }
.contact-lines { display: flex; flex-direction: column; gap: 8px; font-size: 15.5px; color: var(--d-text-soft); }

.social-row { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 26px; }
.social-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 22px;
  border-radius: 999px;
  background: var(--d-card);
  border: 1px solid var(--d-line);
  color: var(--d-text);
  text-decoration: none;
  font-weight: 500;
  font-size: 15px;
  transition: background 0.2s;
}
.social-btn:hover { background: rgba(255, 255, 255, 0.12); }
.social-btn svg { width: 20px; height: 20px; }

/* ============================================================
   BIG CTA + FOOTER
   ============================================================ */
.big-cta {
  text-align: center;
  background:
    radial-gradient(80% 100% at 50% 115%, rgba(30, 79, 216, 0.5) 0%, transparent 60%),
    var(--navy-900);
  color: var(--d-text);
}
.big-cta .display-lg { max-width: 720px; margin: 0 auto 18px; }
.big-cta .lead { max-width: 560px; margin: 0 auto 36px; }
.cta-deadline {
  margin-top: 26px;
  font-size: 14.5px;
  color: var(--d-text-soft);
}
.cta-deadline strong { color: var(--yellow-400); }

.site-footer {
  background: var(--navy-950);
  color: var(--d-text-soft);
  padding: 56px 0 40px;
  font-size: 14px;
}
.footer-top {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr);
  align-items: start;
  gap: 28px;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--d-line);
}
.footer-brand img { height: 40px; width: auto; }
.footer-sponsor-groups { width: 100%; }
.sponsor-group {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  align-items: center;
  min-height: 78px;
  padding: 10px 0;
  border-top: 1px dashed rgba(255,255,255,.16);
}
.sponsor-group:first-child { border-top: 0; padding-top: 0; }
.sponsor-group > p {
  color: var(--cyan-300);
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.sponsor-logos { display: flex; align-items: center; gap: 22px; min-width: 0; }
.sponsor-impact { width: 180px; height: auto; }
.sponsor-ovec { width: 62px; height: 62px; object-fit: contain; }
.sponsor-logos-cropped { flex-wrap: wrap; }
.sponsor-crop { position: relative; display: block; height: 54px; overflow: hidden; flex: 0 0 auto; }
.sponsor-crop img { position: absolute; top: 0; width: auto; max-width: none; height: 54px; }
.crop-bl { width: 37px; }
.crop-bl img { left: 0; }
.crop-reit { width: 125px; }
.crop-reit img { left: -278px; }
.crop-msm { width: 78px; }
.crop-msm img { left: -58px; }
.crop-bla { width: 35px; }
.crop-bla img { left: -424px; }
.footer-links { display: flex; flex-wrap: wrap; gap: 22px; margin: 26px 0; }
.footer-links a { color: var(--d-text-soft); text-decoration: none; }
.footer-links a:hover { color: #fff; }
.footer-note { line-height: 1.7; max-width: 720px; }
.footer-note a { color: var(--cyan-300); text-decoration: none; }

/* ============================================================
   ABOUT IMPACT — one event, one connected ecosystem
   ============================================================ */
.impact-hero {
  min-height: min(860px, 100svh);
  position: relative;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  color: #fff;
  background: var(--navy-950);
}
.impact-hero-photo {
  position: absolute;
  inset: 0;
  background: url("../assets/photo-6.jpg") center 42% / cover no-repeat;
  transform: scale(1.02);
}
.impact-hero-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(8, 7, 38, .96) 0%, rgba(10, 9, 45, .7) 48%, rgba(10, 9, 45, .12) 80%),
    linear-gradient(0deg, rgba(8, 7, 38, .88) 0%, transparent 62%);
}
.impact-hero-inner { position: relative; z-index: 1; width: 100%; padding-top: 140px; padding-bottom: clamp(68px, 10vw, 110px); }
.impact-hero .eyebrow { color: var(--cyan-300); }
.impact-hero h1 { max-width: 820px; }
.impact-hero .lead { max-width: 690px; margin-top: 25px; color: rgba(235, 239, 255, .8); }
.impact-scroll { display: inline-flex; align-items: center; gap: 11px; margin-top: 38px; color: #fff; text-decoration: none; font-size: 14px; font-weight: 600; }
.impact-scroll span { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid rgba(255,255,255,.38); border-radius: 50%; }

.impact-intro-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(40px, 8vw, 100px); align-items: start; }
.impact-intro-copy { display: grid; gap: 22px; color: var(--ink-soft); }
.impact-services { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 64px; padding-top: 28px; border-top: 1px solid var(--line); }
.impact-services span { padding: 9px 15px; border: 1px solid rgba(30,79,216,.18); border-radius: 999px; background: rgba(255,255,255,.7); color: var(--indigo-700); font-size: 13px; font-weight: 600; }

.impact-ecosystem { overflow: hidden; }
.impact-ecosystem .section-head { max-width: 750px; margin: 0 auto 65px; }
.ecosystem-stage { position: relative; width: min(760px, 90vw); aspect-ratio: 1; margin: 0 auto; }
.ecosystem-stage::before, .ecosystem-stage::after { content: ""; position: absolute; border: 1px solid rgba(98,203,242,.2); border-radius: 50%; inset: 13%; }
.ecosystem-stage::after { inset: 25%; border-style: dashed; }
.ecosystem-core { position: absolute; z-index: 2; inset: 50% auto auto 50%; transform: translate(-50%,-50%); width: 210px; aspect-ratio: 1; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: radial-gradient(circle at 35% 25%, #2931a0, var(--navy-950)); box-shadow: 0 0 0 12px rgba(98,203,242,.07), 0 30px 80px rgba(0,0,0,.35); }
.ecosystem-core svg { width: 36px; height: 36px; color: var(--cyan-300); margin-bottom: 9px; }
.ecosystem-core strong { font-size: 1.55rem; line-height: 1; letter-spacing: .08em; }
.ecosystem-core small { margin-top: 10px; color: var(--d-text-soft); line-height: 1.35; }
.ecosystem-orbit { position: absolute; inset: 0; }
.ecosystem-orbit span { --a: calc(var(--i) * 45deg - 90deg); position: absolute; left: 50%; top: 50%; width: 120px; min-height: 58px; display: grid; place-items: center; padding: 9px; border: 1px solid rgba(255,255,255,.15); border-radius: 15px; background: rgba(255,255,255,.07); color: rgba(255,255,255,.9); text-align: center; font-size: 13px; font-weight: 600; line-height: 1.2; transform: translate(-50%,-50%) rotate(var(--a)) translateY(-290px) rotate(calc(var(--a) * -1)); backdrop-filter: blur(12px); }

.impact-opportunity-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(42px, 8vw, 100px); align-items: center; }
.impact-photo-card { position: relative; min-height: 620px; border-radius: var(--radius-lg); overflow: hidden; background: var(--navy-900); }
.impact-photo-card img { width: 100%; height: 100%; position: absolute; object-fit: cover; }
.impact-photo-card::after { content:""; position:absolute; inset:0; background: linear-gradient(0deg, rgba(14,12,51,.8), transparent 48%); }
.impact-photo-card span { position: absolute; z-index: 1; left: 28px; bottom: 25px; color: #fff; font-size: clamp(1.5rem, 3vw, 2.4rem); font-weight: 700; }
.impact-opportunity-copy .display-lg { margin-bottom: 24px; }
.challenge-list { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 28px; }
.challenge-list span { padding: 14px 16px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink); font-size: 14px; font-weight: 500; }
.challenge-list span::before { content: "↗"; color: var(--royal-500); margin-right: 9px; }

.impact-learning { background: #edf1ff; }
.impact-learning .section-head { max-width: 760px; margin: 0 auto 52px; }
.learning-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.learning-card { min-height: 310px; padding: 28px; display: flex; flex-direction: column; background: #fff; border: 1px solid rgba(30,79,216,.11); border-radius: var(--radius-md); }
.learning-card > span { color: var(--royal-500); font-size: 11px; font-weight: 700; letter-spacing: .16em; }
.learning-card svg { width: 38px; height: 38px; color: var(--royal-500); margin: auto 0 24px; }
.learning-card h3 { font-size: 1.2rem; line-height: 1.3; margin-bottom: 10px; }
.learning-card p { color: var(--ink-soft); font-size: 14.5px; line-height: 1.65; }
.impact-quote-kicker { color: var(--cyan-300); font-size: 13px; font-weight: 700; letter-spacing: .22em; }
.impact-word { margin: 0 auto 18px; font-size: clamp(4rem, 14vw, 10rem); line-height: .95; letter-spacing: -.055em; color: #fff; }
.impact-quote .lead { max-width: 680px; }

/* ABOUT IMPACT V2 — event production floor plan */
.impact-about-page { background: #f5f6fb; }
.hall-hero { min-height: 100svh; position: relative; display: flex; align-items: flex-end; overflow: hidden; color: #fff; background: var(--navy-950); }
.hall-hero-image { position: absolute; inset: 0; background: url("../assets/about-impact-arena.webp") center / cover no-repeat; filter: saturate(.82) contrast(1.04); }
.hall-hero-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(9,8,42,.97) 0%, rgba(9,8,42,.88) 42%, rgba(9,8,42,.24) 78%), linear-gradient(0deg, rgba(9,8,42,.95) 0%, transparent 55%); }
.hall-hero-grid { position: absolute; inset: 0; opacity: .18; background-image: linear-gradient(rgba(98,203,242,.5) 1px, transparent 1px), linear-gradient(90deg, rgba(98,203,242,.5) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(90deg, #000, transparent 72%); }
.hall-hero-content { position: relative; z-index: 2; width: 100%; padding-top: 120px; padding-bottom: clamp(62px, 8vw, 95px); }
.hall-impact-logo { width: clamp(170px, 22vw, 250px); height: auto; margin-bottom: 18px; }
.hall-kicker, .production-label, .vision-label { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--cyan-300); }
.hall-hero h1 { max-width: 900px; margin: 18px 0 32px; font-size: clamp(3.3rem, 8.4vw, 7.5rem); font-weight: 700; line-height: 1; letter-spacing: -.04em; }
.hall-hero h1 small { display:block; margin-bottom:.08em; color:#fff; font-size:.42em; line-height:1.15; letter-spacing:-.02em; }
.hall-hero h1 span { display: block; color: transparent; -webkit-text-stroke: 1.5px rgba(255,255,255,.72); }
.hall-hero-copy { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; max-width: 900px; color: rgba(234,237,255,.78); font-size: 15px; line-height: 1.75; }
.hall-scroll { display: inline-flex; align-items: center; gap: 13px; margin-top: 34px; color: #fff; text-decoration: none; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; letter-spacing: .12em; }
.hall-scroll span { display: grid; place-items: center; width: 31px; height: 31px; color: var(--navy-950); background: var(--yellow-400); border-radius: 50%; }
.hall-sign { position: absolute; z-index: 2; right: 4vw; bottom: 7vw; display: grid; width: 150px; padding: 15px; color: var(--navy-950); background: var(--yellow-400); transform: rotate(-2deg); box-shadow: 0 14px 40px rgba(0,0,0,.22); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.hall-sign b { font-size: 10px; letter-spacing: .18em; }
.hall-sign strong { margin-top: 3px; font-size: 2.8rem; line-height: .9; letter-spacing: -.08em; }
.hall-sign span { margin-top: 8px; padding-top: 7px; border-top: 2px solid currentColor; font-size: 8px; }

.impact-video-section { background: #fff; }
.impact-video-layout { display: grid; grid-template-columns: .68fr 1.32fr; gap: clamp(38px, 7vw, 82px); align-items: center; }
.impact-video-copy .display-lg { margin-bottom: 20px; }
.impact-video-copy .lead { margin-bottom: 24px; font-size: 1rem; }
.impact-video-frame { position: relative; overflow: hidden; aspect-ratio: 16 / 9; background: var(--navy-950); box-shadow: 0 26px 70px rgba(20,24,72,.18); }
.impact-video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.venue-scope-head { display: grid; grid-template-columns: .7fr 1fr; column-gap: 55px; align-items: end; }
.venue-scope-head .eyebrow { grid-column: 1 / -1; }
.venue-scope-head .lead { font-size: 1rem; }
.venue-board { display: grid; grid-template-columns: repeat(4,1fr); margin-top: 55px; list-style: none; border-top: 1px solid var(--ink); border-left: 1px solid var(--ink); }
.venue-board li { min-height: 190px; padding: 18px; display: flex; flex-direction: column; border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.venue-board li:nth-child(7) { grid-column: span 2; }
.venue-board small { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; letter-spacing: .14em; color: var(--royal-500); }
.venue-board b { margin-top: auto; font-size: 1.1rem; line-height: 1.2; }
.venue-board span { margin-top: 6px; color: var(--ink-soft); font-size: 13px; }
.venue-scope-note { max-width: 700px; margin: 32px 0 0 auto; padding-left: 22px; border-left: 5px solid var(--yellow-400); color: var(--ink-soft); }

.production-section { color: #fff; background: var(--navy-950); }
.production-heading { display: grid; grid-template-columns: .65fr 1.15fr; gap: 18px 60px; align-items: end; }
.production-heading .production-label { grid-column: 1 / -1; }
.production-heading > p:last-child { color: var(--d-text-soft); }
.call-sheet { margin-top: 55px; border-top: 1px solid rgba(255,255,255,.45); }
.call-sheet-head, .call-row { display: grid; grid-template-columns: 85px 1fr 100px; align-items: center; }
.call-sheet-head { padding: 10px 16px; color: var(--cyan-300); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; letter-spacing: .14em; }
.call-row { min-height: 76px; padding: 10px 16px; border-top: 1px solid rgba(255,255,255,.12); transition: background .2s, color .2s; }
.call-row:hover { color: var(--navy-950); background: var(--yellow-400); }
.call-row > span, .call-row i { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; font-style: normal; letter-spacing: .08em; }
.call-row b { font-size: 1.15rem; font-weight: 500; }
.call-row em { margin-left: 12px; color: var(--d-text-soft); font-size: 12px; font-weight: 400; font-style: normal; }
.call-row:hover em { color: rgba(14,12,51,.66); }
.call-row i::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 8px; border-radius: 50%; background: var(--cyan-300); }
.call-row:hover i::before { background: var(--royal-500); }
.production-conclusion { max-width: 720px; margin: 40px 0 0 auto; color: var(--d-text-soft); font-size: 1.05rem; }

.innovation-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(45px,7vw,90px); align-items: center; }
.innovation-visual { position: relative; min-height: 690px; overflow: hidden; background: var(--navy-900); }
.innovation-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.innovation-stamp { position: absolute; right: 22px; bottom: 22px; width: 132px; padding: 14px; background: var(--yellow-400); color: var(--navy-950); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.innovation-stamp span { font-size: 9px; letter-spacing: .16em; }
.innovation-stamp strong { display: block; margin-top: 7px; font-size: 1.5rem; line-height: 1; }
.innovation-content .display-lg { margin-bottom: 22px; }
.innovation-content .lead { font-size: 1rem; }
.innovation-challenges { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin-top: 28px; list-style: none; border-top: 1px solid var(--line); }
.innovation-challenges li { padding: 13px 8px 13px 24px; position: relative; border-bottom: 1px solid var(--line); font-size: 13px; }
.innovation-challenges li::before { content: "+"; position: absolute; left: 4px; color: var(--royal-500); font-family: monospace; font-weight: 700; }
.innovation-close { margin-top: 26px; font-weight: 600; }

.field-learning { background: #e8edff; }
.field-title { display: grid; grid-template-columns: 240px 1fr; gap: 50px; align-items: end; }
.field-title > span { color: var(--royal-500); font-size: clamp(4.8rem,11vw,8.5rem); font-weight: 700; line-height: .75; letter-spacing: -.08em; }
.field-copy { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin: 60px 0 28px; background: rgba(30,79,216,.18); border: 1px solid rgba(30,79,216,.18); }
.field-copy p { padding: 24px; background: #f5f6fb; color: var(--ink-soft); font-size: 14px; }
.learning-manifest { display: grid; grid-template-columns: 1fr 2fr; background: var(--royal-500); color: #fff; }
.learning-manifest h3 { padding: 28px; font-size: 1.55rem; }
.learning-manifest ul { list-style: none; border-left: 1px solid rgba(255,255,255,.25); }
.learning-manifest li { display: grid; grid-template-columns: 48px 1fr; gap: 12px; padding: 17px 22px; border-bottom: 1px solid rgba(255,255,255,.18); }
.learning-manifest li:last-child { border-bottom: 0; }
.learning-manifest li span { color: var(--cyan-300); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; }

.vision-stage { position: relative; overflow: hidden; text-align: center; color: #fff; background: var(--navy-900); }
.vision-stage::before { content: "IMPACT"; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); color: transparent; -webkit-text-stroke: 1px rgba(98,203,242,.12); font-size: 28vw; font-weight: 700; line-height: 1; letter-spacing: -.08em; pointer-events: none; }
.vision-stage .container { position: relative; }
.vision-copy { max-width: 900px; margin: 22px auto 0; font-size: clamp(1.25rem,2.5vw,2rem); line-height: 1.65; }
.vision-line { width: 1px; height: 85px; margin: 42px auto; background: var(--cyan-300); }
.vision-impact { font-size: clamp(2.4rem,7vw,6rem); line-height: 1.05; }
.vision-impact span { color: var(--yellow-400); }
.vision-detail { max-width: 790px; margin: 25px auto 0; color: var(--d-text-soft); }
.vision-detail + .vision-detail { margin-top: 4px; }

/* MICE INDUSTRY — connected wayfinding route */
.mice-page { --m:#2e5bff; --i:#3fb2e8; --c:#f6eb16; --e:#f0821e; background:#f5f6fb; }
.mice-page .localnav-links { gap:18px; }
.mice-page .localnav-links a { font-size:12.5px; }
.mice-hero { min-height:100svh; position:relative; display:flex; align-items:flex-end; overflow:hidden; color:#fff; background:var(--navy-950); }
.mice-hero-photo { position:absolute; inset:0; background:url("../assets/photo-5.jpg") center/cover no-repeat; opacity:.48; }
.mice-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(14,12,51,.98) 0%,rgba(14,12,51,.54) 68%,rgba(14,12,51,.28)); }
.mice-hero-inner { position:relative; z-index:1; width:100%; padding-top:120px; padding-bottom:clamp(55px,8vw,90px); }
.mice-overline,.mice-finale-label { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; font-weight:700; letter-spacing:.16em; color:var(--cyan-300); }
.mice-hero h1 { display:grid; grid-template-columns:repeat(4,1fr); margin:18px 0 0; font-size:clamp(5rem,19vw,13rem); line-height:.72; letter-spacing:-.08em; }
.mice-hero h1 span { position:relative; display:block; border-bottom:8px solid currentColor; }
.mice-m{color:var(--m)}.mice-i{color:var(--i)}.mice-c{color:var(--c)}.mice-e{color:var(--e)}
.mice-industry-title { margin-top:22px; font-size:clamp(1.25rem,3vw,2.2rem); font-weight:600; }
.mice-hero-intro { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; margin-top:38px; padding-top:24px; border-top:1px solid rgba(255,255,255,.24); color:rgba(238,241,255,.78); font-size:13.5px; line-height:1.7; }

.mice-decoder { padding-bottom:0; }
.mice-section-head { display:flex; justify-content:space-between; gap:40px; align-items:end; }
.mice-section-head .eyebrow { order:2; margin-bottom:7px; }
.mice-route { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:42px; }
.mice-route i { height:9px; background:var(--m); }.mice-route i:nth-child(2){background:var(--i)}.mice-route i:nth-child(3){background:var(--c)}.mice-route i:nth-child(4){background:var(--e)}
.mice-letter { padding:clamp(70px,9vw,115px) 0; }
.mice-letter-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(45px,8vw,100px); }
.letter-code { position:sticky; top:95px; align-self:start; }
.letter-code span { display:block; font-size:clamp(7rem,18vw,12rem); font-weight:700; line-height:.68; letter-spacing:-.09em; }
.letter-code b { display:block; margin-top:30px; font-size:1.55rem; }
.letter-code small { display:block; margin-top:5px; color:var(--ink-soft); font-size:.9rem; }
.letter-photo { aspect-ratio:16/8.5; margin:0 0 32px; overflow:hidden; border-radius:var(--radius-md); box-shadow:0 18px 45px rgba(18,18,58,.12); }
.letter-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.letter-definition { max-width:720px; font-size:clamp(1.25rem,2.4vw,1.8rem); line-height:1.55; }
.letter-columns { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:42px; border:1px solid var(--line); background:var(--line); }
.letter-columns>div { padding:22px; background:#fff; }
.letter-columns h3 { margin-bottom:15px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.letter-columns ul { list-style:none; }
.letter-columns li { padding:8px 0; border-bottom:1px solid var(--line); color:var(--ink-soft); font-size:13px; }
.letter-columns li:last-child { border:0; }
.mice-letter-m{background:#eef1ff}.mice-letter-m .letter-code span,.mice-letter-m h3{color:var(--m)}
.mice-letter-i{background:#eaf8ff}.mice-letter-i .letter-code span,.mice-letter-i h3{color:#138ebf}
.mice-letter-c{background:#fffceb}.mice-letter-c .letter-code span,.mice-letter-c h3{color:#b9a900}
.mice-letter-e{background:#fff3e8}.mice-letter-e .letter-code span,.mice-letter-e h3{color:#cf6507}

.mice-backstage { overflow:hidden; color:#fff; background:var(--navy-950); }
.mice-backstage-head { display:grid; grid-template-columns:1fr 1fr; gap:20px 60px; align-items:end; }
.mice-backstage-head .eyebrow { grid-column:1/-1; }
.mice-backstage-head .lead { font-size:1rem; }
.backstage-marquee { display:flex; flex-wrap:wrap; gap:10px; margin-top:52px; }
.backstage-marquee span { padding:12px 17px; border:1px solid rgba(255,255,255,.2); border-radius:999px; color:rgba(255,255,255,.85); font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; }
.backstage-marquee span:nth-child(4n+1){border-color:var(--m)}.backstage-marquee span:nth-child(4n+2){border-color:var(--i)}.backstage-marquee span:nth-child(4n+3){border-color:var(--c)}.backstage-marquee span:nth-child(4n){border-color:var(--e)}
.backstage-close { max-width:780px; margin:42px 0 0 auto; padding-top:25px; border-top:1px solid rgba(255,255,255,.2); color:var(--d-text-soft); }

.mice-impact-section { background:#fff; }
.impact-question { display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:end; }
.impact-question>p { color:var(--ink-soft); font-size:1.15rem; }
.impact-outcomes { display:grid; grid-template-columns:repeat(3,1fr); margin-top:50px; list-style:none; border-top:1px solid var(--ink); border-left:1px solid var(--ink); }
.impact-outcomes li { min-height:145px; padding:20px; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end; border-right:1px solid var(--ink); border-bottom:1px solid var(--ink); font-size:1.1rem; font-weight:600; }
.impact-outcomes li::before { content:"+"; margin-bottom:auto; color:var(--royal-500); font-family:monospace; font-size:1.35rem; line-height:1; }
.impact-reason { max-width:820px; margin:38px 0 0 auto; font-size:1.15rem; font-weight:600; }

.mice-innovation-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(45px,7vw,90px); align-items:center; }
.mice-innovation-photo { min-height:700px; position:relative; overflow:hidden; }
.mice-innovation-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.mice-innovation-content .display-lg { margin-bottom:24px; }
.mice-innovation-content>p:not(.eyebrow) { color:var(--ink-soft); }
.innovation-board { margin-top:28px; list-style:none; border-top:1px solid var(--line); }
.innovation-board li { padding:13px 0; border-bottom:1px solid var(--line); font-size:14px; }
.innovation-board b { display:inline-block; min-width:155px; color:var(--royal-500); }
.innovation-board-close { margin-top:24px; font-weight:600; color:var(--ink)!important; }

.everyday-mice { color:#fff; background:#29308f; }
.everyday-head { max-width:800px; }
.everyday-head .lead { margin:20px 0; color:var(--d-text-soft); }
.everyday-tickets { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:38px; list-style:none; }
.everyday-tickets li { min-height:110px; padding:20px; display:flex; align-items:flex-end; border:1px dashed rgba(255,255,255,.42); background:rgba(255,255,255,.06); }
.everyday-tickets li::before { content:"ADMIT ONE"; display:block; margin-right:auto; align-self:flex-start; color:var(--cyan-300); font-family:monospace; font-size:8px; letter-spacing:.1em; }
.everyday-close { margin-top:30px; color:var(--yellow-400); font-weight:600; }

.mice-finale { position:relative; overflow:hidden; text-align:center; color:#fff; background:var(--navy-950); }
.mice-finale::before { content:"M I C E"; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); white-space:nowrap; color:transparent; -webkit-text-stroke:1px rgba(98,203,242,.12); font-size:20vw; font-weight:700; }
.mice-finale .container { position:relative; }
.mice-finale .display-lg { margin:16px auto 24px; max-width:820px; }
.mice-finale-copy { max-width:850px; margin:0 auto; color:var(--d-text-soft); }
.mice-finale .hero-actions { margin-top:34px; }

/* GI FOR MICE — labels of origin */
.gi-page { --gi-orange:#f0821e; --gi-green:#2d8b68; --gi-mulberry:#8f2d6a; background:#f5f6fb; }
.gi-page .localnav-links { gap:14px; }.gi-page .localnav-links a{font-size:12px}
.gi-hero { min-height:100svh; position:relative; display:flex; align-items:center; overflow:hidden; color:#fff; background:linear-gradient(135deg,#171346,#30338f); }
.gi-contours { position:absolute; inset:-15%; opacity:.18; background:repeating-radial-gradient(ellipse at 24% 58%,transparent 0 26px,rgba(246,235,22,.8) 27px 28px,transparent 29px 46px); transform:rotate(-8deg); }
.gi-hero-grid { position:relative; display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(45px,9vw,120px); align-items:center; padding-top:120px; padding-bottom:70px; }
.gi-origin-mark { width:min(330px,72vw); margin:auto; filter:drop-shadow(0 18px 38px rgba(0,0,0,.22)); }
.gi-origin-mark img { display:block; width:100%; height:auto; }
.gi-kicker,.gi-mono { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:11px; font-weight:700; letter-spacing:.14em; color:var(--gi-orange); }
.gi-hero-copy h1 { margin:15px 0 18px; font-size:clamp(3rem,7vw,6.5rem); line-height:.95; letter-spacing:-.04em; }.gi-thesis{max-width:620px;font-size:clamp(1.3rem,2.6vw,2rem);font-weight:600;line-height:1.5}.gi-hero-copy>p:last-child{max-width:620px;margin-top:20px;color:var(--d-text-soft)}

.gi-definition-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; }.gi-definition-copy>p{font-size:1.25rem;line-height:1.75}.gi-definition-copy blockquote{margin:38px 0 0;padding:28px;border-left:8px solid var(--gi-orange);background:#fff;font-size:clamp(1.3rem,2.5vw,2rem);font-weight:600;line-height:1.55}
.gi-value { color:#fff; background:var(--gi-green); }.gi-value-head{display:grid;grid-template-columns:.7fr 1.3fr;gap:50px;align-items:end}.gi-value .gi-mono{color:#d8ffb9}.gi-value-list{margin-top:55px;list-style:none;border-top:1px solid rgba(255,255,255,.5)}.gi-value-list li{display:grid;grid-template-columns:90px 1fr;gap:20px;align-items:center;min-height:95px;border-bottom:1px solid rgba(255,255,255,.22)}.gi-value-list span{font-family:monospace;color:#d8ffb9}.gi-value-list b{font-size:1.15rem;font-weight:500}

.origin-head { display:flex;justify-content:space-between;align-items:end;gap:30px }.origin-head>div{max-width:820px}.origin-head .display-lg{margin-top:10px}.origin-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:50px;border-top:1px solid var(--ink);border-left:1px solid var(--ink)}.origin-grid article{min-height:270px;padding:0;display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);background:#fff}.origin-grid article>img{width:100%;height:200px;display:block;object-fit:cover}.origin-grid b{padding:18px 20px 20px;font-size:1.08rem}.origin-grid p{color:var(--gi-orange);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}

.local-to-global { color:#fff;background:#251f63 }.local-global-head{max-width:860px}.local-to-global .gi-mono{color:var(--yellow-400)}.local-global-head .display-lg{margin:15px 0 24px}.local-global-head .lead{color:var(--d-text-soft)}.gi-use-cases{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:48px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.15)}.gi-use-cases article{min-height:190px;padding:25px;display:flex;flex-direction:column;justify-content:flex-end;background:#302979}.gi-use-cases h3{color:var(--yellow-400);font-size:1.25rem}.gi-use-cases p{margin-top:8px;color:var(--d-text-soft);font-size:14px}

.gi-challenge { background:#fff3e8 }.challenge-brief{display:grid;grid-template-columns:210px 1fr;gap:55px}.challenge-brief>span{align-self:start;padding:12px;border:2px solid var(--gi-orange);color:var(--gi-orange);font-family:monospace;font-size:11px;font-weight:700;letter-spacing:.14em;text-align:center;transform:rotate(-3deg)}.challenge-brief .lead{margin-top:18px;font-size:1rem}.challenge-checks{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:42px;list-style:none}.challenge-checks li{min-height:140px;padding:18px;display:flex;align-items:flex-end;background:#fff;border:1px solid rgba(240,130,30,.25);font-size:14px;font-weight:600}

.inspiration-ideas { background:#fff }.ideas-head{display:flex;justify-content:space-between;align-items:end}.ideas-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:45px}.ideas-grid article{min-height:240px;padding:26px;display:flex;flex-direction:column;background:#f5f6fb;border:1px solid var(--line)}.ideas-grid span{color:var(--gi-orange);font-family:monospace;font-size:11px}.ideas-grid h3{margin-top:auto;font-size:1.4rem}.ideas-grid p{margin-top:9px;color:var(--ink-soft)}

.gi-criteria { color:#fff;background:var(--gi-mulberry) }.criteria-head{display:grid;grid-template-columns:.7fr 1.3fr;gap:50px;align-items:end}.gi-criteria .gi-mono{color:#ffd6ea}.gi-criteria-list{margin-top:52px;list-style:none}.gi-criteria-list li{display:grid;grid-template-columns:.7fr 1.3fr;gap:35px;padding:18px 0;border-top:1px solid rgba(255,255,255,.24)}.gi-criteria-list b{color:#ffd6ea;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.gi-criteria-list span{font-size:1.08rem}
.gi-finale{position:relative;overflow:hidden;text-align:center;color:#fff;background:var(--navy-950)}.gi-finale::before{content:"GI";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:transparent;-webkit-text-stroke:1px rgba(246,235,22,.12);font-size:42vw;font-weight:700;line-height:.7}.gi-finale .container{position:relative}.gi-finale .gi-mono{color:var(--yellow-400)}.gi-finale-copy{max-width:900px;margin:22px auto 0;font-size:clamp(1.25rem,2.5vw,2rem);line-height:1.7}.gi-finale .hero-actions{margin-top:34px}

/* MICE + GI tone alignment — shared Rise Up visual language */
@media (min-width:721px) {
  .localnav-links { gap:18px; }
  .localnav-links a { font-size:12.5px; }
}
.mice-page,.gi-page { background:var(--paper); }
.mice-page .eyebrow,.gi-page .eyebrow { font-family:var(--font-display); letter-spacing:.12em; }
.mice-page .mice-overline,.mice-page .mice-finale-label,.gi-page .gi-kicker,.gi-page .gi-mono { font-family:var(--font-display); letter-spacing:.1em; text-transform:none; }
.mice-hero { background:var(--navy-950); }
.mice-hero-photo { opacity:.34; filter:saturate(.75); }
.mice-hero::after { background:linear-gradient(0deg,rgba(14,12,51,.99) 0%,rgba(20,18,62,.67) 70%,rgba(20,18,62,.45)); }
.mice-hero h1 span { border-bottom-width:5px; }
.mice-route { gap:0; overflow:hidden; border-radius:999px; }
.mice-route i { height:7px; }
.mice-letter { background:var(--paper); }
.mice-letter:nth-of-type(even) { background:#eef2ff; }
.mice-letter-m .letter-code span { color:var(--royal-500)!important; }
.mice-letter-i .letter-code span { color:var(--cyan-400)!important; }
.mice-letter-c .letter-code span { color:var(--indigo-700)!important; }
.mice-letter-e .letter-code span { color:var(--cat-gi)!important; }
.letter-columns { gap:14px; border:0; background:transparent; }
.letter-columns>div { border:1px solid var(--line); border-radius:var(--radius-md); box-shadow:0 12px 32px rgba(18,18,58,.05); }
.letter-columns h3 { font-family:var(--font-display); letter-spacing:.08em; }
.mice-letter-m h3,.mice-letter-i h3,.mice-letter-c h3,.mice-letter-e h3 { color:var(--royal-500); }
.mice-backstage,.everyday-mice { background:var(--navy-900); }
.backstage-marquee span { border-color:var(--d-line)!important; background:var(--d-card); font-family:var(--font-body); }
.backstage-marquee span:nth-child(3n+1) { color:var(--cyan-300); }
.mice-impact-section { background:var(--paper); }
.impact-outcomes { gap:14px; border:0; }
.impact-outcomes li { border:1px solid var(--line); border-radius:var(--radius-md); background:#fff; box-shadow:0 12px 32px rgba(18,18,58,.05); }
.mice-innovation-photo { border-radius:var(--radius-lg); }
.innovation-board li { padding:15px 4px; }
.everyday-tickets { gap:14px; }
.everyday-tickets li { border:1px solid var(--d-line); border-radius:var(--radius-md); background:var(--d-card); }
.everyday-tickets li::before { color:var(--cyan-300); font-family:var(--font-body); font-weight:600; }
.mice-finale { background:var(--navy-950); }
.gi-hero { background:radial-gradient(90% 100% at 15% 100%,rgba(30,79,216,.65),transparent 60%),var(--navy-950); }
.gi-contours { opacity:.11; }
.gi-origin-mark { color:var(--yellow-400); }
.gi-kicker,.gi-mono { color:var(--royal-500); }
.gi-hero .gi-kicker { color:var(--cyan-300); }
.gi-definition-copy blockquote { border:1px solid var(--line); border-left:7px solid var(--yellow-400); border-radius:0 var(--radius-md) var(--radius-md) 0; box-shadow:0 14px 38px rgba(18,18,58,.06); }
.gi-value { color:var(--d-text); background:var(--navy-900); }
.gi-value .gi-mono { color:var(--cyan-300); }
.gi-value-list span { color:var(--yellow-400); font-family:var(--font-body); }
.origin-grid { gap:14px; border:0; }
.origin-grid article { border:1px solid var(--line); border-radius:var(--radius-md); box-shadow:0 12px 32px rgba(18,18,58,.05); }
.origin-grid p { color:var(--royal-500); font-family:var(--font-body); }
.local-to-global { background:var(--navy-950); }
.local-to-global .gi-mono { color:var(--cyan-300); }
.gi-use-cases { gap:14px; border:0; background:transparent; }
.gi-use-cases article { border:1px solid var(--d-line); border-radius:var(--radius-md); background:var(--d-card); }
.gi-use-cases h3 { color:var(--cyan-300); }
.gi-challenge { background:#eef2ff; }
.challenge-brief>span { border-color:var(--royal-500); border-radius:999px; color:var(--royal-500); font-family:var(--font-body); transform:none; }
.challenge-checks { gap:14px; }
.challenge-checks li { border:1px solid var(--line); border-radius:var(--radius-md); box-shadow:0 12px 32px rgba(18,18,58,.05); }
.ideas-grid article { border-radius:var(--radius-md); background:#fff; box-shadow:0 12px 32px rgba(18,18,58,.05); }
.ideas-grid span { color:var(--royal-500); font-family:var(--font-body); }
.gi-criteria { color:var(--d-text); background:var(--navy-900); }
.gi-criteria .gi-mono,.gi-criteria-list b { color:var(--cyan-300); font-family:var(--font-body); }
.gi-finale { background:var(--navy-950); }

/* ============================================================
   REVEAL ANIMATION
   ============================================================ */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.reveal.is-in { opacity: 1; transform: none; }
.reveal-d1 { transition-delay: 0.08s; }
.reveal-d2 { transition-delay: 0.16s; }
.reveal-d3 { transition-delay: 0.24s; }
.reveal-d4 { transition-delay: 0.32s; }
.reveal-d5 { transition-delay: 0.4s; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .hero-rise, .hero-tools svg { animation: none !important; display: none; }
  .marquee-track { animation: none; }
  .marquee { overflow-x: auto; }
  .score-bar i { transition: none; width: var(--w); }
  .btn, .cat-card { transition: none; }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 960px) {
  .cat-grid { grid-template-columns: 1fr; }
  .cat-card { min-height: 0; }
  .steps { grid-template-columns: repeat(2, 1fr); }
  .rubric-grid { grid-template-columns: repeat(2, 1fr); }
  .bento { grid-template-columns: 1fr 1fr; }
  .span-2, .span-3, .span-4, .span-6 { grid-column: span 1; }
  .bento-photo { grid-column: span 2; }
  .ecosystem-orbit span { transform: translate(-50%,-50%) rotate(var(--a)) translateY(-35vw) rotate(calc(var(--a) * -1)); }
  .hall-sign { display: none; }
  .venue-board { grid-template-columns: repeat(2,1fr); }
  .venue-board li:nth-child(7) { grid-column: span 2; }
  .innovation-layout { grid-template-columns: .9fr 1.1fr; gap: 40px; }
  .field-title { grid-template-columns: 180px 1fr; gap: 30px; }
  .mice-hero-intro { grid-template-columns:1fr 1fr; }
  .mice-hero-intro p:last-child { grid-column:1/-1; }
  .letter-columns { grid-template-columns:1fr; }
  .mice-innovation-grid { grid-template-columns:1fr 1fr; gap:40px; }
  .gi-hero-grid { grid-template-columns:.7fr 1.3fr;gap:45px }.origin-grid{grid-template-columns:repeat(2,1fr)}.challenge-checks{grid-template-columns:repeat(3,1fr)}
}

@media (min-width: 721px) {
  .benefits-head h2 span { white-space: nowrap; }
}

@media (max-width: 720px) {
  body { font-size: 16px; }
  .display-xl { font-size: clamp(1.4rem, 6.2vw, 2.1rem); line-height: 1.22; }
  .display-lg { font-size: clamp(1.35rem, 5.6vw, 1.9rem); line-height: 1.26; }
  .display-md { font-size: clamp(1.25rem, 4.6vw, 1.6rem); }
  .hero { padding-left: 18px; padding-right: 18px; }
  .hero-lockup {
    grid-template-columns: minmax(0, 1fr) auto 72px;
    gap: 12px;
    margin-bottom: 30px;
  }
  .hero-lockup-times { font-size: 2.2rem; }
  .container, .container-wide { padding-left: 18px; padding-right: 18px; }
  .prize-total { font-size: clamp(3rem, 17vw, 5rem); }

  /* mobile nav → hamburger */
  .nav-toggle { display: block; margin-left: 14px; order: 3; }
  .localnav-cta { margin-left: auto; order: 2; }
  .localnav-links {
    order: 4;
    position: fixed;
    top: var(--nav-h);
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    margin: 0;
    padding: 8px 18px 18px;
    background: rgba(14, 12, 51, 0.96);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    backdrop-filter: saturate(180%) blur(20px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    transform: translateY(-8px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
  }
  .localnav-links.open {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  .localnav-links a {
    font-size: 16px;
    padding: 13px 4px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }
  .localnav-links a.localnav-cta { display: none; } /* CTA already pinned outside */
  .localnav-links a:not(.localnav-cta) { font-size: 13px; }
  .stat-grid { grid-template-columns: 1fr; gap: 26px; }
  .split { grid-template-columns: 1fr; }
  .duo { grid-template-columns: 1fr; }
  .idea-grid { grid-template-columns: 1fr; }
  .terms { grid-template-columns: 1fr; }
  .contact-grid { grid-template-columns: 1fr; }
  .prize-grid { grid-template-columns: repeat(2, 1fr); }
  .steps { grid-template-columns: 1fr; }
  .bento { grid-template-columns: 1fr; }
  .bento-photo { grid-column: span 1; }
  .footer-top { grid-template-columns: 1fr; }
  .sponsor-group { grid-template-columns: 1fr; gap: 10px; padding: 18px 0; }
  .sponsor-group:first-child { padding-top: 10px; }
  .sponsor-logos { gap: 18px; }
  .sponsor-impact { width: 165px; }
  .score-row-top { flex-wrap: wrap; gap: 8px; }
  .score-pts { margin-left: 0; }
  .rubric-grid { grid-template-columns: 1fr; }
  .hero-actions .btn { width: 100%; }
  .type-foot .btn { width: 100%; }
  .impact-hero { min-height: 700px; }
  .impact-hero-photo { background-position: 62% center; }
  .impact-hero-shade { background: linear-gradient(0deg, rgba(8,7,38,.97) 0%, rgba(8,7,38,.66) 68%, rgba(8,7,38,.28) 100%); }
  .impact-intro-grid, .impact-opportunity-grid { grid-template-columns: 1fr; }
  .impact-services { margin-top: 42px; }
  .ecosystem-stage { width: 100%; aspect-ratio: auto; display: grid; gap: 12px; }
  .ecosystem-stage::before, .ecosystem-stage::after { display: none; }
  .ecosystem-core { position: relative; inset: auto; transform: none; width: 180px; margin: 0 auto 24px; }
  .ecosystem-orbit { position: static; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .ecosystem-orbit span { position: static; transform: none; width: auto; min-height: 62px; }
  .impact-photo-card { min-height: 440px; }
  .challenge-list { grid-template-columns: 1fr; }
  .learning-grid { grid-template-columns: 1fr; }
  .learning-card { min-height: 245px; }
  .impact-word { font-size: clamp(3.4rem, 19vw, 6rem); }
  .hall-hero { min-height: 780px; }
  .hall-hero-image { background-position: 48% center; }
  .hall-hero-image::after { background: linear-gradient(0deg, rgba(9,8,42,.98) 0%, rgba(9,8,42,.78) 65%, rgba(9,8,42,.3) 100%); }
  .hall-hero-grid { background-size: 46px 46px; }
  .hall-hero h1 { font-size: clamp(3rem,16vw,5rem); line-height: 1.08; }
  .hall-hero-copy { grid-template-columns: 1fr; gap: 14px; font-size: 13px; }
  .hall-scroll { margin-top: 24px; }
  .impact-video-layout { grid-template-columns: 1fr; }
  .venue-scope-head, .production-heading { grid-template-columns: 1fr; gap: 18px; }
  .venue-scope-head .eyebrow, .production-heading .production-label { grid-column: auto; }
  .venue-board { grid-template-columns: 1fr; }
  .venue-board li, .venue-board li:nth-child(7) { grid-column: auto; min-height: 140px; }
  .call-sheet-head, .call-row { grid-template-columns: 38px 1fr; }
  .call-sheet-head span:last-child, .call-row i { display: none; }
  .call-row { min-height: 70px; padding-left: 8px; padding-right: 8px; }
  .call-row b { font-size: 1rem; }
  .call-row em { display: block; margin: 3px 0 0; }
  .innovation-layout { grid-template-columns: 1fr; }
  .innovation-visual { min-height: 480px; }
  .innovation-challenges { grid-template-columns: 1fr; }
  .field-title { grid-template-columns: 1fr; }
  .field-title > span { font-size: 5rem; }
  .field-copy { grid-template-columns: 1fr; }
  .learning-manifest { grid-template-columns: 1fr; }
  .learning-manifest ul { border-left: 0; border-top: 1px solid rgba(255,255,255,.25); }
  .mice-hero { min-height:800px; }
  .mice-hero h1 { font-size:22vw; }
  .mice-hero-intro { grid-template-columns:1fr; gap:12px; margin-top:28px; }
  .mice-hero-intro p:last-child { grid-column:auto; }
  .mice-section-head { display:block; }
  .mice-section-head .eyebrow { margin-bottom:18px; }
  .mice-letter-grid { grid-template-columns:1fr; }
  .letter-code { position:static; }
  .letter-code span { font-size:8rem; }
  .letter-columns { margin-top:28px; }
  .mice-backstage-head,.impact-question { grid-template-columns:1fr; }
  .mice-backstage-head .eyebrow { grid-column:auto; }
  .impact-outcomes { grid-template-columns:1fr 1fr; }
  .impact-outcomes li { min-height:120px; }
  .mice-innovation-grid { grid-template-columns:1fr; }
  .contact-channel-grid,.contact-people-grid { grid-template-columns:1fr; }
  .contact-channel { min-height:220px; }
  .contact-team-head { grid-template-columns:1fr; }
  .contact-team-head .eyebrow { grid-column:auto; }
  .mice-innovation-photo { min-height:450px; }
  .innovation-board b { display:block; min-width:0; margin-bottom:2px; }
  .everyday-tickets { grid-template-columns:1fr 1fr; }
  .everyday-tickets li { min-height:120px; flex-direction:column; align-items:flex-start; justify-content:space-between; }
  .everyday-tickets li::before { margin-right:0; }
  .gi-hero{min-height:800px}.gi-hero-grid,.gi-definition-grid,.gi-value-head,.challenge-brief,.criteria-head{grid-template-columns:1fr}.gi-origin-mark{width:210px}.gi-hero-copy{text-align:center}.gi-definition-copy>p{font-size:1.05rem}.gi-value-list li{grid-template-columns:45px 1fr}.origin-head,.ideas-head{display:block}.origin-grid{grid-template-columns:1fr 1fr}.origin-grid article{min-height:175px}.gi-use-cases{grid-template-columns:1fr 1fr}.challenge-checks{grid-template-columns:1fr 1fr}.challenge-checks li{min-height:120px}.ideas-grid{grid-template-columns:1fr}.ideas-grid article{min-height:200px}.gi-criteria-list li{grid-template-columns:1fr;gap:7px}
}
