:root {
  --ink: #18251f;
  --ink-soft: #35453e;
  --paper: #fbf7ef;
  --surface: #ffffff;
  --surface-alt: #f2ede2;
  --sage: #52685d;
  --sage-dark: #263c33;
  --terracotta: #e98a52;
  --coral: #d8795d;
  --wheat: #d8ca91;
  --cream: #f0ddb8;
  --line: rgba(24, 37, 31, .14);
  --shadow: 0 22px 70px rgba(25, 42, 34, .14);
  --radius-sm: 14px;
  --radius-md: 24px;
  --radius-lg: 38px;
  --max: 1240px;
  --font-scale: 1;
}

[data-theme="dark"] {
  --ink: #f4f2e8;
  --ink-soft: #c9d0ca;
  --paper: #101814;
  --surface: #17231d;
  --surface-alt: #1e2d25;
  --line: rgba(255, 255, 255, .14);
  --shadow: 0 22px 70px rgba(0, 0, 0, .32);
}

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  font-size: calc(16px * var(--font-scale));
}

body {
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 8% 10%, rgba(216, 202, 145, .18), transparent 28rem),
    radial-gradient(circle at 88% 12%, rgba(233, 138, 82, .14), transparent 32rem),
    var(--paper);
  font-family: "Avenir Next", Avenir, "Segoe UI", system-ui, -apple-system, sans-serif;
  line-height: 1.6;
  overflow-x: clip;
}

body.menu-open { overflow: hidden; }

img { max-width: 100%; }

a { color: inherit; }

button, input, textarea, select { font: inherit; }

button { cursor: pointer; }

.skip-link {
  position: fixed;
  left: 16px;
  top: -70px;
  z-index: 9999;
  background: var(--terracotta);
  color: #1c221d;
  padding: 12px 18px;
  border-radius: 999px;
  font-weight: 800;
  transition: top .2s ease;
}

.skip-link:focus { top: 16px; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  border-bottom: 1px solid transparent;
  transition: background .25s ease, border-color .25s ease, backdrop-filter .25s ease;
}

.site-header.is-scrolled {
  background: color-mix(in srgb, var(--paper) 86%, transparent);
  border-color: var(--line);
  backdrop-filter: blur(18px);
}

.nav-wrap {
  width: min(var(--max), calc(100% - 36px));
  min-height: 84px;
  margin: auto;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 26px;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}

.brand img {
  width: 155px;
  height: auto;
  display: block;
}

.primary-nav {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 4px;
}

.primary-nav a {
  text-decoration: none;
  font-weight: 700;
  font-size: .92rem;
  padding: 10px 12px;
  border-radius: 999px;
  color: var(--ink-soft);
  white-space: nowrap;
}

.primary-nav a:hover,
.primary-nav a[aria-current="page"] {
  background: var(--surface);
  color: var(--ink);
  box-shadow: 0 8px 24px rgba(23, 35, 29, .08);
}

.nav-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.icon-button,
.language-button,
.menu-button {
  min-width: 44px;
  min-height: 44px;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--surface) 78%, transparent);
  color: var(--ink);
  border-radius: 999px;
  font-weight: 800;
}

.language-button {
  padding: 0 14px;
  min-width: 64px;
}

.menu-button { display: none; }

.container {
  width: min(var(--max), calc(100% - 36px));
  margin-inline: auto;
}

.hero {
  position: relative;
  min-height: calc(100svh - 84px);
  display: grid;
  align-items: center;
  isolation: isolate;
  overflow: hidden;
}

.hero-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: -3;
  opacity: .88;
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(90deg, var(--paper) 0%, color-mix(in srgb, var(--paper) 91%, transparent) 42%, transparent 78%),
    linear-gradient(180deg, transparent 70%, var(--paper) 100%);
}

.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(360px, .96fr);
  align-items: center;
  gap: 44px;
  padding: 68px 0 88px;
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 18px;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-weight: 900;
  color: var(--sage);
}

.eyebrow::before {
  content: "";
  width: 34px;
  height: 3px;
  border-radius: 99px;
  background: linear-gradient(90deg, var(--terracotta), var(--wheat));
}

h1, h2, h3 {
  font-family: "Avenir Next", Avenir, "Segoe UI", system-ui, sans-serif;
  line-height: 1.04;
  letter-spacing: -.035em;
}

h1 {
  max-width: 900px;
  margin: 0;
  font-size: clamp(3rem, 7.4vw, 7.1rem);
  font-weight: 850;
}

.hero h1 .accent {
  color: var(--terracotta);
  position: relative;
  display: inline-block;
}

.hero-copy {
  max-width: 680px;
  margin: 24px 0 0;
  font-size: clamp(1.08rem, 1.7vw, 1.35rem);
  color: var(--ink-soft);
}

.button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 32px;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 52px;
  padding: 13px 20px;
  border-radius: 999px;
  border: 1px solid var(--line);
  font-weight: 850;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.button:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(25, 42, 34, .16);
}

.button-primary {
  color: #172019;
  border-color: transparent;
  background: linear-gradient(135deg, var(--terracotta), #f1a15c);
}

.button-secondary {
  background: color-mix(in srgb, var(--surface) 82%, transparent);
}

.hero-visual {
  min-height: 600px;
  position: relative;
  display: grid;
  place-items: center;
}

.orbit-stage {
  width: min(560px, 92vw);
  aspect-ratio: 1;
  position: relative;
  display: grid;
  place-items: center;
}

.orbit-stage::before,
.orbit-stage::after {
  content: "";
  position: absolute;
  inset: 9%;
  border: 1px solid rgba(93, 112, 99, .32);
  border-radius: 50%;
  animation: spin 28s linear infinite;
}

.orbit-stage::after {
  inset: 22%;
  border-style: dashed;
  animation-direction: reverse;
  animation-duration: 20s;
}

.core-card {
  width: 55%;
  aspect-ratio: 1;
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  padding: 28px;
  border-radius: 42% 58% 54% 46% / 50% 46% 54% 50%;
  background: color-mix(in srgb, var(--surface) 88%, transparent);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  backdrop-filter: blur(14px);
  animation: morph 9s ease-in-out infinite;
}

.core-card img {
  width: 78%;
  filter: drop-shadow(0 18px 24px rgba(28, 42, 35, .12));
}

.orbit-chip {
  position: absolute;
  z-index: 3;
  max-width: 190px;
  padding: 13px 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: color-mix(in srgb, var(--surface) 88%, transparent);
  box-shadow: 0 14px 40px rgba(23, 35, 29, .13);
  backdrop-filter: blur(12px);
  font-weight: 800;
  animation: float 6s ease-in-out infinite;
}

.orbit-chip small {
  display: block;
  margin-top: 2px;
  font-weight: 600;
  color: var(--ink-soft);
}

.orbit-chip.one { top: 6%; left: 0; }
.orbit-chip.two { top: 24%; right: -2%; animation-delay: -2s; }
.orbit-chip.three { bottom: 10%; right: 5%; animation-delay: -4s; }
.orbit-chip.four { bottom: 16%; left: -3%; animation-delay: -1s; }

.scroll-cue {
  position: absolute;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%);
  display: grid;
  justify-items: center;
  gap: 6px;
  color: var(--ink-soft);
  font-size: .77rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.scroll-cue::after {
  content: "";
  width: 1px;
  height: 32px;
  background: linear-gradient(var(--terracotta), transparent);
  animation: pulse 1.8s ease-in-out infinite;
}

.section {
  padding: 110px 0;
  position: relative;
}

.section-tight { padding: 76px 0; }

.section-sage {
  background:
    linear-gradient(135deg, rgba(38, 60, 51, .98), rgba(55, 83, 70, .97));
  color: #fffaf0;
}

.section-sage .eyebrow,
.section-sage .muted { color: #d9e1dc; }

.section-heading {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(320px, .6fr);
  align-items: end;
  gap: 40px;
  margin-bottom: 48px;
}

.section-heading h2,
.page-hero h1 {
  margin: 0;
  font-size: clamp(2.3rem, 5vw, 5rem);
}

.section-heading p {
  margin: 0;
  font-size: 1.08rem;
  color: var(--ink-soft);
}

.card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.feature-card {
  min-height: 320px;
  padding: 28px;
  border-radius: var(--radius-md);
  background: var(--surface);
  border: 1px solid var(--line);
  box-shadow: 0 10px 34px rgba(23, 35, 29, .08);
  position: relative;
  overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease;
}

.feature-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow);
}

.feature-card::after {
  content: "";
  position: absolute;
  width: 170px;
  height: 170px;
  border-radius: 50%;
  right: -60px;
  bottom: -70px;
  background: radial-gradient(circle, rgba(233, 138, 82, .26), transparent 66%);
}

.feature-number {
  display: inline-grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 15px;
  background: var(--surface-alt);
  color: var(--sage-dark);
  font-weight: 900;
}

.feature-card h3 {
  margin: 70px 0 12px;
  font-size: 1.7rem;
}

.feature-card p {
  margin: 0;
  color: var(--ink-soft);
}

.pathway {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  counter-reset: steps;
}

.path-step {
  min-height: 220px;
  padding: 24px;
  border-radius: 24px;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .18);
  position: relative;
}

.path-step::before {
  counter-increment: steps;
  content: "0" counter(steps);
  font-weight: 900;
  color: var(--wheat);
  letter-spacing: .08em;
}

.path-step h3 {
  margin: 54px 0 8px;
  font-size: 1.45rem;
}

.path-step p {
  margin: 0;
  color: #d9e1dc;
}

.split {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(420px, 1.08fr);
  align-items: center;
  gap: 60px;
}

.visual-placeholder {
  min-height: 520px;
  border-radius: var(--radius-lg);
  border: 1px solid var(--line);
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(120deg, rgba(216, 202, 145, .7), transparent 52%),
    linear-gradient(310deg, rgba(233, 138, 82, .7), transparent 58%),
    var(--sage);
  box-shadow: var(--shadow);
}

.visual-placeholder::before {
  content: "";
  position: absolute;
  inset: 9%;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .55);
  box-shadow:
    0 0 0 55px rgba(255,255,255,.05),
    0 0 0 110px rgba(255,255,255,.04);
}

.visual-placeholder::after {
  content: "ROYALTY-FREE STEM IMAGE / VIDEO";
  position: absolute;
  left: 28px;
  bottom: 24px;
  color: #fff;
  font-size: .75rem;
  letter-spacing: .14em;
  font-weight: 900;
}

.stat-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 30px;
}

.stat {
  padding: 18px;
  border-radius: 18px;
  background: var(--surface);
  border: 1px solid var(--line);
}

.stat strong {
  display: block;
  color: var(--terracotta);
  font-size: 1.55rem;
}

.stat span { color: var(--ink-soft); }

.quote-band {
  border-block: 1px solid var(--line);
  background: color-mix(in srgb, var(--surface-alt) 72%, transparent);
}

.quote-band .container {
  min-height: 180px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}

.quote-band strong {
  max-width: 820px;
  font-size: clamp(1.5rem, 3vw, 2.8rem);
  line-height: 1.15;
}

.page-hero {
  padding: 90px 0 70px;
}

.page-hero .lead {
  max-width: 790px;
  margin-top: 22px;
  font-size: 1.2rem;
  color: var(--ink-soft);
}

.content-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 50px;
  align-items: start;
}

.prose {
  max-width: 850px;
}

.prose h2 {
  margin: 54px 0 14px;
  font-size: clamp(1.7rem, 3vw, 2.6rem);
}

.prose h2:first-child { margin-top: 0; }

.prose h3 {
  margin: 34px 0 10px;
  font-size: 1.25rem;
}

.prose p,
.prose li { color: var(--ink-soft); }

.prose a {
  color: var(--sage);
  font-weight: 800;
}

.notice {
  padding: 20px 22px;
  border-left: 5px solid var(--terracotta);
  border-radius: 0 18px 18px 0;
  background: var(--surface);
  border-top: 1px solid var(--line);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.side-card {
  position: sticky;
  top: 108px;
  padding: 22px;
  border-radius: 22px;
  background: var(--surface);
  border: 1px solid var(--line);
}

.side-card h3 { margin-top: 0; }

.side-card a {
  display: block;
  padding: 8px 0;
  text-decoration: none;
  color: var(--ink-soft);
  font-weight: 700;
}

.form-shell {
  padding: 30px;
  border-radius: 28px;
  background: var(--surface);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.field { display: grid; gap: 7px; }

.field.full { grid-column: 1 / -1; }

.field label { font-weight: 800; }

.field input,
.field select,
.field textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--paper);
  color: var(--ink);
  padding: 13px 14px;
}

.field textarea { min-height: 150px; resize: vertical; }

.choice {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
}

.form-message {
  margin-top: 16px;
  padding: 14px;
  border-radius: 14px;
  background: var(--surface-alt);
  display: none;
}

.form-message.is-visible { display: block; }

.site-footer {
  margin-top: 90px;
  padding: 70px 0 26px;
  color: #eef2ec;
  background: #17281f;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr .8fr;
  gap: 46px;
}

.footer-logo {
  width: 230px;
  filter: drop-shadow(0 10px 20px rgba(0,0,0,.18));
}

.footer-grid h2,
.footer-grid h3 { color: #fff; }

.footer-links {
  display: grid;
  gap: 8px;
}

.footer-links a {
  color: #cbd6cf;
  text-decoration: none;
}

.footer-links a:hover { color: #fff; }

.footer-bottom {
  margin-top: 48px;
  padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,.15);
  display: flex;
  justify-content: space-between;
  gap: 24px;
  color: #b9c6be;
  font-size: .83rem;
}

.accessibility-dock {
  position: fixed;
  z-index: 1200;
  right: 18px;
  bottom: 18px;
  display: flex;
  gap: 8px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: color-mix(in srgb, var(--surface) 88%, transparent);
  box-shadow: 0 12px 34px rgba(23, 35, 29, .18);
  backdrop-filter: blur(15px);
}

.accessibility-dock button,
.accessibility-dock a {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-weight: 900;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
}

.accessibility-dock button:hover,
.accessibility-dock a:hover { background: var(--surface-alt); }

.cookie-banner {
  position: fixed;
  z-index: 1800;
  left: 18px;
  right: 18px;
  bottom: 18px;
  max-width: 880px;
  margin: auto;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: var(--surface);
  box-shadow: 0 28px 80px rgba(0,0,0,.28);
  display: none;
}

.cookie-banner.is-visible { display: block; }

.cookie-banner h2 {
  margin: 0 0 8px;
  font-size: 1.35rem;
}

.cookie-banner p {
  margin: 0;
  color: var(--ink-soft);
}

.cookie-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.cookie-dialog {
  width: min(640px, calc(100% - 28px));
  border: 0;
  border-radius: 24px;
  padding: 0;
  color: var(--ink);
  background: var(--surface);
  box-shadow: 0 32px 110px rgba(0,0,0,.36);
}

.cookie-dialog::backdrop {
  background: rgba(10, 17, 13, .72);
  backdrop-filter: blur(6px);
}

.dialog-inner { padding: 26px; }

.dialog-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: start;
}

.dialog-head h2 { margin: 0; }

.dialog-close {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: var(--surface-alt);
}

.preference-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 20px;
  padding: 18px 0;
  border-top: 1px solid var(--line);
}

.preference-row:first-of-type { margin-top: 18px; }

.preference-row strong { display: block; }
.preference-row p { margin: 4px 0 0; color: var(--ink-soft); }

.switch {
  width: 52px;
  height: 30px;
  appearance: none;
  border-radius: 99px;
  background: #c7cbc8;
  position: relative;
  transition: background .2s ease;
}

.switch::after {
  content: "";
  position: absolute;
  width: 24px;
  height: 24px;
  left: 3px;
  top: 3px;
  border-radius: 50%;
  background: #fff;
  transition: transform .2s ease;
  box-shadow: 0 2px 8px rgba(0,0,0,.22);
}

.switch:checked { background: var(--sage); }
.switch:checked::after { transform: translateX(22px); }
.switch:disabled { opacity: .65; }

.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1);
}

.reveal.is-visible {
  opacity: 1;
  transform: none;
}

@keyframes spin { to { transform: rotate(360deg); } }
@keyframes morph {
  0%,100% { border-radius: 42% 58% 54% 46% / 50% 46% 54% 50%; transform: rotate(-2deg); }
  50% { border-radius: 56% 44% 41% 59% / 46% 58% 42% 54%; transform: rotate(2deg); }
}
@keyframes float {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}
@keyframes pulse {
  0%,100% { opacity: .25; transform: scaleY(.7); }
  50% { opacity: 1; transform: scaleY(1); }
}

@media (max-width: 1060px) {
  .primary-nav {
    position: fixed;
    inset: 84px 0 0;
    padding: 28px;
    background: var(--paper);
    display: none;
    align-content: start;
    justify-items: stretch;
    overflow-y: auto;
  }

  .primary-nav.is-open {
    display: grid;
    gap: 8px;
  }

  .primary-nav a {
    font-size: 1.15rem;
    padding: 14px;
    border-radius: 16px;
  }

  .menu-button { display: inline-grid; place-items: center; }
  .nav-wrap { grid-template-columns: auto 1fr auto; }
  .nav-actions { justify-self: end; }

  .hero-grid,
  .split {
    grid-template-columns: 1fr;
  }

  .hero-grid { padding-top: 44px; }
  .hero-visual { min-height: 520px; }
  .section-heading { grid-template-columns: 1fr; }
  .pathway { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
  .nav-wrap { width: min(100% - 24px, var(--max)); min-height: 72px; }
  .brand img { width: 126px; }
  .primary-nav { inset: 72px 0 0; }
  .hero { min-height: auto; }
  .hero-grid { padding: 48px 0 78px; }
  .hero h1 { font-size: clamp(3rem, 17vw, 5.4rem); }
  .hero-visual { min-height: 430px; }
  .orbit-chip { font-size: .82rem; max-width: 150px; }
  .section { padding: 78px 0; }
  .card-grid,
  .pathway,
  .stat-row,
  .form-grid,
  .footer-grid {
    grid-template-columns: 1fr;
  }
  .content-layout { grid-template-columns: 1fr; }
  .side-card { position: static; }
  .quote-band .container,
  .footer-bottom { flex-direction: column; align-items: flex-start; }
  .accessibility-dock { right: 10px; bottom: 10px; }
  .cookie-banner { left: 10px; right: 10px; bottom: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .reveal { opacity: 1; transform: none; }
}


/* =========================================================
   V0.2 — scroll-led STEM and employability experience
   ========================================================= */
.scroll-progress {
  position: fixed;
  inset: 0 0 auto;
  z-index: 2200;
  height: 3px;
  transform-origin: left center;
  transform: scaleX(0);
  background: linear-gradient(90deg, var(--wheat), var(--terracotta), var(--coral));
  pointer-events: none;
}

.hero-v2 {
  min-height: calc(100svh - 84px);
  position: relative;
  display: grid;
  align-items: center;
  overflow: clip;
  isolation: isolate;
}

.hero-v2::before {
  content: "";
  position: absolute;
  width: min(900px, 85vw);
  aspect-ratio: 1.8;
  right: -8vw;
  top: 4%;
  z-index: -2;
  background: url('/assets/images/hwb-watercolour-swoosh.png') center / contain no-repeat;
  opacity: .62;
  filter: saturate(.92);
  transform: translate3d(0, var(--hero-parallax, 0px), 0) rotate(-4deg);
  transition: opacity .25s ease;
}

.hero-v2::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -3;
  background:
    radial-gradient(circle at 75% 24%, rgba(233,138,82,.16), transparent 21rem),
    radial-gradient(circle at 85% 72%, rgba(93,112,99,.15), transparent 27rem),
    linear-gradient(180deg, transparent 72%, var(--paper));
}

.hero-v2-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr);
  gap: 36px;
  align-items: center;
  padding: 64px 0 96px;
}

.hero-v2 h1 {
  font-size: clamp(3.2rem, 7.7vw, 8rem);
  max-width: 960px;
}

.hero-v2 .line-mask {
  display: block;
  overflow: hidden;
  padding-bottom: .08em;
}

.hero-v2 .line-inner {
  display: block;
  transform: translateY(115%);
  animation: line-rise .95s cubic-bezier(.16,.8,.24,1) forwards;
}

.hero-v2 .line-mask:nth-child(2) .line-inner { animation-delay: .13s; }
.hero-v2 .line-mask:nth-child(3) .line-inner { animation-delay: .26s; }

.hero-v2 .hero-emphasis {
  color: var(--terracotta);
  text-shadow: 0 10px 34px rgba(233,138,82,.15);
}

.hero-orbit-v2 {
  position: relative;
  min-height: 650px;
  display: grid;
  place-items: center;
  perspective: 1100px;
}

.future-core {
  position: relative;
  width: min(440px, 88vw);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  transform-style: preserve-3d;
  transform: rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));
  transition: transform .15s ease-out;
}

.future-core::before,
.future-core::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--sage) 38%, transparent);
  inset: 0;
  animation: spin 26s linear infinite;
}
.future-core::after {
  inset: 14%;
  border-style: dashed;
  animation-duration: 17s;
  animation-direction: reverse;
}

.future-disc {
  width: 61%;
  aspect-ratio: 1;
  border-radius: 44% 56% 63% 37% / 51% 43% 57% 49%;
  background: color-mix(in srgb, var(--surface) 86%, transparent);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  display: grid;
  place-items: center;
  backdrop-filter: blur(18px);
  animation: morph 9s ease-in-out infinite;
  transform: translateZ(60px);
}

.future-disc img { width: 74%; }

.future-node {
  position: absolute;
  min-width: 148px;
  padding: 12px 15px;
  border-radius: 18px;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--surface) 86%, transparent);
  box-shadow: 0 15px 42px rgba(23,35,29,.13);
  backdrop-filter: blur(14px);
  transform: translateZ(80px);
  font-weight: 850;
}
.future-node small { display:block; font-weight:650; color:var(--ink-soft); }
.future-node.n1 { top: 3%; left: -7%; }
.future-node.n2 { top: 17%; right: -14%; }
.future-node.n3 { bottom: 10%; right: -8%; }
.future-node.n4 { bottom: 4%; left: -8%; }

.kinetic-band {
  overflow: hidden;
  border-block: 1px solid var(--line);
  background: color-mix(in srgb, var(--surface) 78%, transparent);
}
.kinetic-track {
  width: max-content;
  display: flex;
  align-items: center;
  gap: 34px;
  padding: 20px 0;
  animation: marquee 32s linear infinite;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--ink-soft);
}
.kinetic-track span::after {
  content: "✦";
  margin-left: 34px;
  color: var(--terracotta);
}

.scroll-lab {
  position: relative;
  padding: 110px 0 140px;
}
.scroll-lab-grid {
  display: grid;
  grid-template-columns: minmax(390px, .86fr) minmax(0, 1.14fr);
  gap: 72px;
  align-items: start;
}
.skills-engine-wrap {
  position: sticky;
  top: 120px;
  min-height: calc(100svh - 150px);
  display: grid;
  align-content: center;
}
.skills-engine {
  position: relative;
  min-height: 600px;
  border-radius: 42px;
  overflow: hidden;
  border: 1px solid var(--line);
  background:
    radial-gradient(circle at 50% 45%, rgba(233,138,82,.16), transparent 17rem),
    linear-gradient(150deg, color-mix(in srgb, var(--surface) 94%, transparent), color-mix(in srgb, var(--surface-alt) 86%, transparent));
  box-shadow: var(--shadow);
  isolation: isolate;
}
.skills-engine::before {
  content: "";
  position: absolute;
  inset: -15%;
  z-index: -1;
  background-image:
    linear-gradient(rgba(93,112,99,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(93,112,99,.08) 1px, transparent 1px);
  background-size: 34px 34px;
  transform: perspective(700px) rotateX(55deg) translateY(18%);
  transform-origin: bottom;
}
.engine-ring {
  position: absolute;
  width: 330px;
  aspect-ratio: 1;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
  border: 1px solid color-mix(in srgb, var(--sage) 38%, transparent);
  border-radius: 50%;
  transition: transform .7s cubic-bezier(.2,.75,.2,1), border-color .5s ease;
}
.engine-ring::before,
.engine-ring::after {
  content:"";
  position:absolute;
  border-radius:50%;
  inset:14%;
  border:1px dashed color-mix(in srgb, var(--terracotta) 42%, transparent);
  animation:spin 18s linear infinite;
}
.engine-ring::after { inset:31%; animation-direction:reverse; animation-duration:12s; }
.engine-centre {
  position:absolute;
  left:50%; top:50%;
  transform:translate(-50%,-50%);
  width:148px; aspect-ratio:1;
  border-radius:38% 62% 56% 44%;
  display:grid; place-items:center;
  background:linear-gradient(145deg,var(--terracotta),#f4ad67);
  color:#18251f;
  font-size:1.22rem;
  font-weight:950;
  text-align:center;
  padding:18px;
  box-shadow:0 18px 45px rgba(233,138,82,.3);
  transition: transform .55s cubic-bezier(.2,.75,.2,1), border-radius .55s ease;
}
.engine-satellite {
  position:absolute;
  width:134px;
  min-height:78px;
  padding:12px;
  border-radius:17px;
  border:1px solid var(--line);
  background:var(--surface);
  display:grid;
  align-content:center;
  font-weight:850;
  box-shadow:0 10px 28px rgba(23,35,29,.1);
  transition: opacity .4s ease, transform .55s cubic-bezier(.2,.75,.2,1), background .4s ease;
}
.engine-satellite small { color:var(--ink-soft); font-weight:650; }
.engine-satellite.s1 { left:7%; top:12%; }
.engine-satellite.s2 { right:6%; top:18%; }
.engine-satellite.s3 { right:8%; bottom:14%; }
.engine-satellite.s4 { left:7%; bottom:17%; }
.skills-engine[data-stage="stem"] .s1,
.skills-engine[data-stage="skills"] .s2,
.skills-engine[data-stage="cv"] .s3,
.skills-engine[data-stage="future"] .s4 {
  background:var(--sage-dark);
  color:#fff;
  transform:scale(1.08) translateY(-5px);
}
.skills-engine[data-stage="skills"] .engine-ring { transform:translate(-50%,-50%) rotate(60deg) scale(.93); }
.skills-engine[data-stage="cv"] .engine-ring { transform:translate(-50%,-50%) rotate(130deg) scale(1.06); }
.skills-engine[data-stage="future"] .engine-ring { transform:translate(-50%,-50%) rotate(205deg) scale(.96); }
.skills-engine[data-stage="skills"] .engine-centre { border-radius:50%; transform:translate(-50%,-50%) rotate(-6deg); }
.skills-engine[data-stage="cv"] .engine-centre { border-radius:24px; transform:translate(-50%,-50%) rotate(4deg); }
.skills-engine[data-stage="future"] .engine-centre { border-radius:60% 40% 48% 52%; transform:translate(-50%,-50%) scale(1.08); }

.story-stack { padding-bottom: 15vh; }
.story-step {
  min-height: 80vh;
  display:grid;
  align-content:center;
  padding:50px 0;
  opacity:.32;
  transform:translateY(28px);
  transition:opacity .45s ease, transform .55s ease;
}
.story-step.is-active { opacity:1; transform:none; }
.story-step .chapter {
  color:var(--terracotta);
  font-size:.78rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:950;
}
.story-step h2 { margin:14px 0 18px; font-size:clamp(2.5rem,5vw,5.4rem); }
.story-step p { max-width:700px; font-size:1.16rem; color:var(--ink-soft); }
.story-tags { display:flex; flex-wrap:wrap; gap:9px; margin-top:22px; }
.story-tags span { padding:8px 12px; border-radius:999px; border:1px solid var(--line); background:var(--surface); font-weight:800; }

.horizontal-showcase {
  position: relative;
  height: 520vh;
  background: var(--sage-dark);
  color:#fffaf0;
}
.horizontal-viewport {
  position: sticky;
  top:0;
  height:100svh;
  overflow:hidden;
  display:grid;
  align-items:center;
}
.horizontal-track {
  display:flex;
  width:max-content;
  will-change:transform;
  transform:translate3d(0,0,0);
}
.horizontal-panel {
  width:100vw;
  min-height:100svh;
  padding:110px max(36px, calc((100vw - var(--max))/2));
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(380px,1.1fr);
  gap:70px;
  align-items:center;
  position:relative;
  overflow:hidden;
}
.horizontal-panel::before {
  content:attr(data-index);
  position:absolute;
  right:3vw;
  bottom:-.18em;
  font-size:clamp(12rem,28vw,30rem);
  line-height:1;
  font-weight:950;
  color:rgba(255,255,255,.035);
}
.horizontal-panel h2 { font-size:clamp(3rem,6vw,7rem); margin:0 0 20px; }
.horizontal-panel p { color:#d6e0da; font-size:1.15rem; max-width:650px; }
.panel-visual {
  min-height:560px;
  border-radius:40px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);
  position:relative;
  overflow:hidden;
  display:grid;
  place-items:center;
}
.panel-visual .giant-glyph { font-size:clamp(9rem,20vw,18rem); font-weight:950; color:var(--wheat); filter:drop-shadow(0 20px 50px rgba(0,0,0,.22)); }
.panel-visual .mini-card {
  position:absolute;
  width:min(260px,45%);
  padding:18px;
  border-radius:20px;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);
  backdrop-filter:blur(12px);
}
.panel-visual .mini-card.a { top:8%; left:6%; }
.panel-visual .mini-card.b { bottom:8%; right:6%; }
.panel-visual img { width:86%; height:86%; object-fit:contain; filter:drop-shadow(0 24px 40px rgba(0,0,0,.2)); }

.outcomes-section { overflow:hidden; }
.outcome-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.outcome-card {
  min-height:260px;
  padding:25px;
  border-radius:26px;
  background:var(--surface);
  border:1px solid var(--line);
  box-shadow:0 12px 34px rgba(23,35,29,.08);
  position:relative;
  overflow:hidden;
}
.outcome-card strong { display:block; font-size:clamp(2.7rem,5vw,5rem); color:var(--terracotta); line-height:1; }
.outcome-card h3 { margin:55px 0 8px; font-size:1.45rem; }
.outcome-card p { margin:0; color:var(--ink-soft); }

.map-stage {
  min-height:640px;
  position:relative;
  border-radius:42px;
  overflow:hidden;
  background:linear-gradient(145deg,var(--surface),var(--surface-alt));
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.map-stage img {
  position:absolute;
  width:92%;
  height:92%;
  object-fit:contain;
  left:7%;
  top:5%;
  opacity:.88;
  transform:translate3d(var(--map-x,0),var(--map-y,0),0) scale(1.04);
  transition:transform .15s linear;
}
.map-stage .map-label {
  position:absolute;
  left:28px; bottom:28px;
  max-width:300px;
  padding:16px 18px;
  border-radius:18px;
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  border:1px solid var(--line);
  backdrop-filter:blur(15px);
  font-weight:850;
}

.team-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.team-card { border-radius:28px; overflow:hidden; background:var(--surface); border:1px solid var(--line); }
.team-card .portrait { aspect-ratio:4/4.2; overflow:hidden; background:var(--surface-alt); }
.team-card .portrait img { width:100%; height:100%; object-fit:cover; filter:saturate(.82); transition:transform .7s cubic-bezier(.2,.75,.2,1), filter .35s ease; }
.team-card:hover .portrait img { transform:scale(1.045); filter:saturate(1); }
.team-card .team-copy { padding:22px; }
.team-card h3 { margin:0 0 4px; }
.team-card p { color:var(--ink-soft); }

.magnetic { --mx:0px; --my:0px; transform:translate(var(--mx),var(--my)); }
.magnetic:hover { transform:translate(var(--mx),var(--my)); }

@keyframes line-rise { to { transform:translateY(0); } }
@keyframes marquee { to { transform:translateX(-50%); } }

@media (max-width:1060px) {
  .hero-v2-grid { grid-template-columns:1fr; }
  .hero-orbit-v2 { min-height:520px; }
  .scroll-lab-grid { grid-template-columns:1fr; }
  .skills-engine-wrap { position:relative; top:auto; min-height:auto; }
  .skills-engine { min-height:560px; }
  .story-step { min-height:62vh; }
  .horizontal-showcase { height:auto; }
  .horizontal-viewport { position:relative; height:auto; overflow:visible; }
  .horizontal-track { width:100%; display:grid; transform:none !important; }
  .horizontal-panel { width:100%; min-height:auto; grid-template-columns:1fr; padding:90px max(24px, calc((100vw - var(--max))/2)); }
  .panel-visual { min-height:440px; }
  .outcome-grid { grid-template-columns:1fr 1fr; }
  .team-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width:760px) {
  .hero-v2-grid { padding-top:38px; }
  .hero-v2 h1 { font-size:clamp(3.1rem,16vw,5.5rem); }
  .hero-orbit-v2 { min-height:430px; }
  .future-core { width:330px; }
  .future-node { min-width:122px; font-size:.8rem; }
  .future-node.n1 { left:-1%; }
  .future-node.n2 { right:-3%; }
  .future-node.n3 { right:0; }
  .future-node.n4 { left:0; }
  .scroll-lab { padding-top:75px; }
  .skills-engine { min-height:470px; }
  .engine-ring { width:255px; }
  .engine-centre { width:122px; font-size:1rem; }
  .engine-satellite { width:112px; min-height:68px; font-size:.78rem; }
  .engine-satellite.s1 { left:3%; top:7%; }
  .engine-satellite.s2 { right:3%; top:12%; }
  .engine-satellite.s3 { right:3%; bottom:10%; }
  .engine-satellite.s4 { left:3%; bottom:13%; }
  .story-step { min-height:auto; padding:70px 0; opacity:1; transform:none; }
  .horizontal-panel { padding-top:75px; padding-bottom:75px; }
  .panel-visual { min-height:330px; }
  .outcome-grid, .team-grid { grid-template-columns:1fr; }
  .map-stage { min-height:450px; }
}

@media (prefers-reduced-motion: reduce) {
  .kinetic-track { animation:none; width:auto; flex-wrap:wrap; justify-content:center; }
  .line-inner { transform:none !important; animation:none !important; }
  .horizontal-showcase { height:auto; }
  .horizontal-viewport { position:relative; height:auto; overflow:visible; }
  .horizontal-track { display:grid; width:100%; transform:none !important; }
  .horizontal-panel { width:100%; min-height:auto; }
}


/* ================================================================
   V0.3 — employability-first scrollytelling and assurance design
   ================================================================ */
:root {
  --text-muted-safe: #58655f;
  --status-current: #245844;
  --status-progress: #6b4b16;
  --status-planned: #6b3942;
}
[data-theme="dark"] {
  --text-muted-safe: #d4dcd6;
  --status-current: #9fd7bd;
  --status-progress: #f0cf8e;
  --status-planned: #e7a9b5;
}
p, li, dd, td, th { overflow-wrap: anywhere; }
h1, h2, h3, .button, .primary-nav a { overflow-wrap: normal; word-break: normal; }
.feature-card, .path-step, .horizontal-panel, .audience-card, .fact-card, .trust-dashboard-card { min-width: 0; height: auto; }

.hero-v3 {
  --hero-zoom: 0;
  min-height: calc(100svh - 84px);
  position: relative;
  isolation: isolate;
  overflow: clip;
  display: grid;
  align-items: center;
}
.hero-v3::before {
  content: "";
  position: absolute;
  z-index: -2;
  inset: 0;
  background:
    radial-gradient(circle at 76% 44%, rgba(233,138,82,.18), transparent 26rem),
    linear-gradient(90deg, var(--paper) 0%, color-mix(in srgb, var(--paper) 93%, transparent) 52%, transparent 85%);
}
.hero-grid-lines {
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .28;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: 76px 76px;
  mask-image: linear-gradient(to bottom, #000, transparent 92%);
  transform: scale(calc(1 + var(--hero-zoom) * .08));
}
.hero-v3-grid {
  display: grid;
  grid-template-columns: minmax(0,1.06fr) minmax(390px,.94fr);
  gap: clamp(30px, 5vw, 82px);
  align-items: center;
  padding-block: 80px 104px;
}
.hero-v3 h1 {
  margin: 0;
  max-width: 1040px;
  font-size: clamp(3.2rem, 7vw, 7.4rem);
  letter-spacing: -.06em;
}
.hero-fact-strip { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 10px; }
.hero-fact-strip span {
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--surface) 84%, transparent);
  border-radius: 999px;
  padding: 9px 13px;
  color: var(--ink-soft);
  font-size: .83rem;
}
.hero-fact-strip strong { color: var(--ink); }
.hero-orbit-v3 { min-height: 610px; display: grid; place-items: center; perspective: 1200px; }
.future-core.v3 {
  width: min(570px, 94vw);
  transform: translateY(calc(var(--hero-zoom) * -26px)) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) scale(calc(1 + var(--hero-zoom) * .08));
}
.scroll-ticker { overflow: clip; }
.scroll-ticker .kinetic-track { will-change: transform; }

.audience-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.audience-card {
  min-height: 430px;
  padding: 26px;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  border-radius: 30px;
  border: 1px solid var(--line);
  background: var(--surface);
  box-shadow: 0 18px 52px rgba(24,37,31,.09);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.audience-card:hover { box-shadow: var(--shadow); border-color: color-mix(in srgb, var(--terracotta) 58%, var(--line)); }
.audience-index { font-weight: 900; color: var(--text-muted-safe); letter-spacing: .14em; }
.audience-icon {
  margin: 52px 0 24px;
  width: 76px; height: 76px;
  display: grid; place-items: center;
  border-radius: 26px;
  background: var(--surface-alt);
  color: var(--terracotta);
  font-size: 2rem; font-weight: 900;
}
.audience-card h3 { font-size: 1.8rem; margin: 0 0 12px; }
.audience-card p { color: var(--ink-soft); margin: 0 0 24px; }
.text-link { margin-top: auto; font-weight: 900; color: var(--sage-dark); }
[data-theme="dark"] .text-link { color: var(--cream); }

.scroll-copy-section { min-height: 250vh; position: relative; background: var(--surface-alt); }
.scroll-copy-layout {
  display: grid;
  grid-template-columns: minmax(0,1.2fr) minmax(300px,.65fr);
  gap: 80px;
  align-items: start;
}
.scroll-copy-sticky {
  min-height: 100vh;
  position: sticky;
  top: 0;
  display: grid;
  align-content: center;
  padding-block: 110px;
}
.scroll-copy {
  margin: 0;
  max-width: 950px;
  font-size: clamp(2rem, 4.5vw, 5rem);
  font-weight: 760;
  line-height: 1.08;
  letter-spacing: -.04em;
  color: var(--text-muted-safe);
}
.scroll-copy .word { color: var(--text-muted-safe); transition: color .15s linear; }
.scroll-copy .word.is-lit { color: var(--ink); }
.scroll-copy-notes { padding-block: 70vh 35vh; display: grid; gap: 64vh; }
.scroll-copy-notes article {
  padding: 24px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 22px;
  box-shadow: 0 16px 44px rgba(24,37,31,.09);
}
.scroll-copy-notes strong { font-size: 1.25rem; }
.scroll-copy-notes p { color: var(--ink-soft); }

.zoom-portal { min-height: 310vh; position: relative; background: #14231c; color: #f7f4ea; }
.zoom-portal-sticky {
  min-height: 100vh;
  position: sticky;
  top: 0;
  overflow: clip;
  display: grid;
  place-items: center;
  padding: 84px 24px 40px;
}
.zoom-copy {
  position: absolute;
  z-index: 2;
  top: 10vh;
  left: max(24px, calc((100vw - var(--max))/2));
  max-width: 520px;
}
.zoom-copy h2 { margin: 0 0 12px; font-size: clamp(2.4rem,5vw,5rem); }
.zoom-copy p { color: #d9e3dc; }
.device-stage {
  width: min(1100px, 92vw);
  transform-origin: center;
  transform: translateY(var(--device-y,180px)) scale(var(--device-scale,.62));
  will-change: transform;
}
.device-frame {
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 34px;
  padding: 10px;
  background: #25382f;
  box-shadow: 0 40px 130px rgba(0,0,0,.5);
}
.device-browser {
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding-inline: 16px;
  color: #d7e0da;
  font-size: .8rem;
}
.device-browser span { width: 10px; height: 10px; border-radius: 50%; background: #e98a52; }
.device-browser span:nth-child(2) { background: #d8ca91; }
.device-browser span:nth-child(3) { background: #6e8a79; }
.device-browser strong { margin-left: 12px; font-weight: 700; }
.device-content {
  min-height: 620px;
  display: grid;
  grid-template-columns: 58px 1fr 1fr;
  gap: 16px;
  padding: 22px;
  border-radius: 24px;
  background: #fbf7ef;
  color: #18251f;
}
.device-steps { display: grid; align-content: start; gap: 12px; }
.device-steps span {
  width: 34px; height: 34px;
  display: grid; place-items:center;
  border-radius: 50%;
  border: 1px solid rgba(24,37,31,.2);
  font-weight: 900;
}
.device-steps .active { background: #e98a52; border-color: transparent; }
.device-form, .device-cv {
  padding: 30px;
  border: 1px solid rgba(24,37,31,.14);
  border-radius: 20px;
  background: #fff;
}
.device-form h3 { font-size: clamp(1.4rem,2.2vw,2.3rem); }
.demo-choice { margin-top: 10px; padding: 13px; border-radius: 12px; border: 1px solid rgba(24,37,31,.18); font-weight: 800; }
.demo-choice.active { background: #f0ddb8; border-color: #e98a52; }
.cv-name { font-size: 2.3rem; font-weight: 900; margin-bottom: 24px; }
.device-cv h4 { margin: 28px 0 12px; color: #52685d; }
.cv-line { height: 9px; margin: 10px 0; border-radius: 9px; width: 52%; background: #d8dfda; }
.cv-line.mid { width: 72%; }
.cv-line.wide { width: 94%; }
.zoom-action { position: absolute; z-index: 3; bottom: 4vh; opacity: var(--zoom-action-opacity,0); }

.horizontal-showcase.v3 .horizontal-panel {
  grid-template-columns: minmax(420px,.9fr) minmax(450px,1.1fr);
  padding-inline: max(5vw, 50px);
}
.panel-list { display:flex; flex-wrap:wrap; gap:8px; margin-top:22px; }
.panel-list span { padding: 9px 12px; border-radius:999px; background:var(--surface-alt); border:1px solid var(--line); color:var(--ink-soft); font-weight:800; }
.gear-visual { display:grid; place-items:center; }
.rotating-orbit {
  width:min(430px,70vw); aspect-ratio:1; border-radius:50%;
  border:2px solid var(--sage); position:relative; display:grid; place-items:center;
  transform:rotate(var(--orbit-rotation,0deg));
}
.rotating-orbit::before,.rotating-orbit::after { content:""; position:absolute; inset:16%; border:1px dashed var(--terracotta); border-radius:50%; }
.rotating-orbit::after { inset:33%; background:var(--wheat); border-style:solid; }
.rotating-orbit span { position:absolute; z-index:2; font-weight:900; }
.rotating-orbit span:nth-child(1){top:4%;left:42%}.rotating-orbit span:nth-child(2){right:2%;top:47%}.rotating-orbit span:nth-child(3){bottom:4%;left:43%}.rotating-orbit span:nth-child(4){left:1%;top:47%}
.checklist-visual { display:grid; grid-template-columns:1fr 1fr; gap:15px; align-content:center; }
.assurance-check {
  min-height:120px; padding:22px; display:flex; gap:12px; align-items:center;
  border-radius:20px; background:var(--surface); border:1px solid var(--line);
  font-size:1.3rem; font-weight:900;
}
.assurance-check span { color:var(--status-current); }
.evidence-visual { display:grid; place-items:center; gap:14px; }
.evidence-label { width:min(400px,75vw); padding:24px; border-radius:20px; font-size:2rem; font-weight:900; }
.evidence-label.delivered { background:#d6eadf; color:#163d2d; transform:translateX(-10%); }
.evidence-label.current { background:#f0ddb8; color:#473411; transform:translateX(8%); }
.evidence-label.proposed { background:#f1d9d5; color:#5a2832; transform:translateX(-2%); }


.spiral-section {
  min-height: 360vh;
  position: relative;
  padding-top: 110px;
  background: var(--surface-alt);
}
.spiral-intro { position:relative; z-index:3; }
.spiral-intro h2 { margin:0; font-size:clamp(2.4rem,5vw,5rem); }
.spiral-intro > p:last-child { max-width:760px; color:var(--ink-soft); }
.spiral-sticky {
  position:sticky;
  top:0;
  height:100vh;
  display:grid;
  place-items:center;
  overflow:clip;
  perspective:1200px;
}
.spiral-stage {
  width:min(1060px,94vw);
  height:620px;
  position:relative;
  transform-style:preserve-3d;
  transform:rotateX(56deg) rotateZ(var(--spiral-rotation,0deg));
}
.spiral-card {
  position:absolute;
  left:50%;
  top:50%;
  width:250px;
  min-height:210px;
  padding:22px;
  border-radius:24px;
  border:1px solid var(--line);
  background:var(--surface);
  box-shadow:0 20px 60px rgba(24,37,31,.18);
  transform-style:preserve-3d;
  transform:translate(-50%,-50%) rotateZ(var(--card-angle)) translateY(-245px) rotateZ(var(--card-counter)) rotateX(-56deg) translateZ(var(--card-z));
}
.spiral-card:nth-child(1){--card-angle:0deg;--card-counter:0deg;--card-z:0px}
.spiral-card:nth-child(2){--card-angle:60deg;--card-counter:-60deg;--card-z:45px}
.spiral-card:nth-child(3){--card-angle:120deg;--card-counter:-120deg;--card-z:90px}
.spiral-card:nth-child(4){--card-angle:180deg;--card-counter:-180deg;--card-z:135px}
.spiral-card:nth-child(5){--card-angle:240deg;--card-counter:-240deg;--card-z:180px}
.spiral-card:nth-child(6){--card-angle:300deg;--card-counter:-300deg;--card-z:225px}
.spiral-card span { font-weight:900; color:var(--terracotta); }
.spiral-card h3 { font-size:1.55rem; }
.spiral-card p { color:var(--ink-soft); }

.fact-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.fact-card { padding:26px; border:1px solid var(--line); border-radius:24px; background:var(--surface); }
.fact-card h3 { margin:50px 0 12px; font-size:1.5rem; }
.fact-card p { color:var(--ink-soft); }

.status-pill {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  min-height:30px;
  padding:5px 10px;
  border-radius:999px;
  font-size:.74rem;
  font-weight:950;
  letter-spacing:.04em;
  text-transform:uppercase;
  border:1px solid currentColor;
}
.status-current { color:var(--status-current); background:color-mix(in srgb,var(--status-current) 11%,transparent); }
.status-progress { color:var(--status-progress); background:color-mix(in srgb,var(--status-progress) 11%,transparent); }
.status-planned { color:var(--status-planned); background:color-mix(in srgb,var(--status-planned) 10%,transparent); }
.status-neutral { color:var(--ink-soft); background:var(--surface-alt); }

.trust-motion-section { padding:110px 0; background:var(--surface); }
.trust-motion-grid { display:grid; grid-template-columns:minmax(380px,.8fr) minmax(0,1fr); gap:70px; align-items:center; }
.trust-wheel-wrap { min-height:560px; display:grid; place-items:center; }
.trust-wheel {
  width:min(500px,88vw);
  aspect-ratio:1;
  position:relative;
  border-radius:50%;
  border:1px solid var(--line);
  transform:rotate(var(--trust-rotation,0deg));
}
.trust-wheel::before,.trust-wheel::after {
  content:"";
  position:absolute;
  inset:18%;
  border-radius:50%;
  border:1px dashed var(--terracotta);
}
.trust-wheel::after { inset:35%; border-style:solid; background:var(--sage-dark); }
.trust-wheel-core {
  position:absolute;
  inset:39%;
  z-index:2;
  display:grid;
  place-items:center;
  color:#fff;
  font-weight:950;
  letter-spacing:.12em;
}
.trust-wheel > span {
  position:absolute;
  padding:9px 12px;
  border-radius:999px;
  background:var(--surface);
  border:1px solid var(--line);
  font-weight:850;
  box-shadow:0 9px 24px rgba(24,37,31,.1);
}
.trust-wheel > span:nth-of-type(1){top:2%;left:38%}
.trust-wheel > span:nth-of-type(2){top:25%;right:-6%}
.trust-wheel > span:nth-of-type(3){bottom:18%;right:0}
.trust-wheel > span:nth-of-type(4){bottom:2%;left:35%}
.trust-wheel > span:nth-of-type(5){bottom:19%;left:-4%}
.trust-wheel > span:nth-of-type(6){top:24%;left:-7%}

.parallax-wales {
  min-height:780px;
  position:relative;
  isolation:isolate;
  overflow:clip;
  display:grid;
  align-items:center;
  background:#20382d;
  color:#fffaf0;
}
.parallax-layer { position:absolute; inset:-10%; z-index:-3; will-change:transform; }
.parallax-layer.back {
  background:
    radial-gradient(circle at 78% 40%,rgba(216,202,145,.45),transparent 25%),
    radial-gradient(circle at 30% 70%,rgba(233,138,82,.34),transparent 28%),
    #20382d;
  transform:translate3d(0,var(--parallax-back,0px),0) scale(1.1);
}
.parallax-layer.middle {
  z-index:-2;
  opacity:.38;
  background-image:url("/assets/images/south-wales-map.png");
  background-repeat:no-repeat;
  background-position:78% 56%;
  background-size:min(720px,70vw);
  transform:translate3d(var(--parallax-mid-x,0px),var(--parallax-mid-y,0px),0);
}
.parallax-layer.front {
  z-index:-1;
  background:linear-gradient(155deg,transparent 48%,rgba(233,138,82,.32) 48.2%,rgba(216,202,145,.18) 68%,transparent 68.2%);
  transform:translate3d(0,var(--parallax-front,0px),0) scale(1.12);
}
.parallax-content { max-width:800px; }
.parallax-content h2 { margin:0; font-size:clamp(2.7rem,6vw,6.4rem); }
.parallax-content p { font-size:1.15rem; color:#e4ece6; }
.final-cta .container { min-height:280px; }
.final-cta .button-row { margin:0; }

.trust-hero { padding-bottom:54px; }
.status-key {
  margin-top:30px;
  display:grid;
  grid-template-columns:auto 1fr auto 1fr auto 1fr;
  gap:10px 14px;
  align-items:center;
  color:var(--ink-soft);
}
.notice-strong { margin-top:28px; }
.trust-dashboard { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.trust-dashboard-card { padding:26px; border:1px solid var(--line); border-radius:24px; background:var(--surface); }
.trust-dashboard-card h2 { margin:46px 0 12px; font-size:1.7rem; }
.trust-dashboard-card p { color:var(--ink-soft); }
.trust-dashboard-card a { font-weight:900; color:var(--sage-dark); }
[data-theme="dark"] .trust-dashboard-card a { color:var(--cream); }
.assurance-map { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.assurance-map a {
  min-height:140px;
  padding:22px;
  border-radius:20px;
  text-decoration:none;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.07);
}
.assurance-map strong { display:block; font-size:1.25rem; color:#fff; }
.assurance-map span { color:#dce6df; }
.policy-section { padding-bottom:30px; border-bottom:1px solid var(--line); }
.policy-section:last-child { border-bottom:0; }
.trust-side a { padding:9px 0; }
.assurance-table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:22px; background:var(--surface); }
.assurance-table { width:100%; min-width:980px; border-collapse:collapse; }
.assurance-table th,.assurance-table td { padding:16px; text-align:left; vertical-align:top; border-bottom:1px solid var(--line); }
.assurance-table th { background:var(--surface-alt); color:var(--ink); }
.assurance-table td { color:var(--ink-soft); }
.assurance-table tr:last-child td { border-bottom:0; }
.light-prose p,.light-prose li { color:#e0e8e2; }
.light-prose h2 { color:#fff; }
.dark-side { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.2); }
.dark-side h3,.dark-side a { color:#fff; }

.service-answer-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.service-answer-grid article { padding:28px; border-radius:24px; border:1px solid var(--line); background:var(--surface); }
.service-answer-grid article > span { font-weight:950; color:var(--terracotta); }
.service-answer-grid h2 { margin:55px 0 12px; font-size:1.75rem; }
.service-answer-grid p { color:var(--ink-soft); }
.board-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.board-card { overflow:hidden; border-radius:26px; background:var(--surface); border:1px solid var(--line); }
.board-card img { width:100%; aspect-ratio:4/3; object-fit:cover; object-position:center; }
.board-card > div { padding:23px; }
.board-card span { font-weight:900; color:var(--terracotta); }
.board-card h3 { margin:8px 0 12px; font-size:1.55rem; }
.board-card p { color:var(--ink-soft); }
.essential-notice { max-width:920px; }
.preference-row .status-pill { align-self:center; }

@media (max-width:1060px) {
  .hero-v3-grid,.trust-motion-grid { grid-template-columns:1fr; }
  .hero-orbit-v3 { min-height:520px; }
  .audience-grid,.fact-grid,.trust-dashboard,.board-grid { grid-template-columns:1fr 1fr; }
  .scroll-copy-layout { grid-template-columns:1fr; }
  .scroll-copy-sticky { position:relative; min-height:auto; padding-bottom:40px; }
  .scroll-copy-section { min-height:auto; padding:100px 0; }
  .scroll-copy-notes { padding:20px 0; gap:16px; }
  .zoom-portal { min-height:250vh; }
  .horizontal-showcase.v3 .horizontal-panel { grid-template-columns:1fr; padding:70px 32px; }
  .spiral-section { min-height:auto; padding-bottom:90px; }
  .spiral-sticky { position:relative; height:auto; overflow:visible; }
  .spiral-stage { height:auto; display:grid; grid-template-columns:1fr 1fr; gap:16px; transform:none !important; }
  .spiral-card { position:relative; left:auto; top:auto; width:auto; min-height:210px; transform:none !important; }
  .status-key { grid-template-columns:auto 1fr; }
}
@media (max-width:760px) {
  .hero-v3-grid { padding-block:50px 84px; }
  .hero-v3 h1 { font-size:clamp(3rem,15vw,5.5rem); }
  .hero-orbit-v3 { min-height:430px; }
  .audience-grid,.fact-grid,.trust-dashboard,.board-grid,.service-answer-grid,.assurance-map { grid-template-columns:1fr; }
  .audience-card { min-height:360px; }
  .scroll-copy { font-size:clamp(2rem,10vw,3.4rem); }
  .zoom-copy { top:8vh; right:20px; }
  .device-content { grid-template-columns:1fr; min-height:500px; padding:12px; }
  .device-steps,.device-cv { display:none; }
  .device-frame { border-radius:22px; }
  .spiral-stage { grid-template-columns:1fr; }
  .trust-wheel-wrap { min-height:430px; }
  .trust-wheel > span { font-size:.72rem; }
  .status-key { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .scroll-copy .word { color:var(--ink); }
  .zoom-portal { min-height:auto; padding:90px 0; }
  .zoom-portal-sticky { position:relative; min-height:auto; }
  .zoom-copy { position:relative; top:auto; left:auto; margin-bottom:24px; }
  .device-stage { transform:none !important; }
  .zoom-action { position:relative; bottom:auto; opacity:1 !important; margin-top:24px; }
  .spiral-section { min-height:auto; }
  .spiral-sticky { position:relative; height:auto; }
  .spiral-stage { transform:none !important; }
  .trust-wheel,.rotating-orbit { transform:none !important; }
}


/* ================================================================
   V0.3.2 — viewport containment, contrast and purposeful motion
   ================================================================ */

/* Shorter scroll-reading sequence that stays inside a normal laptop viewport. */
.scroll-copy-section { min-height: 160vh; }
.scroll-copy-layout { gap: clamp(28px, 5vw, 62px); }
.scroll-copy-sticky { min-height: 100svh; padding-block: clamp(82px, 12vh, 116px); }
.scroll-copy {
  max-width: 920px;
  font-size: clamp(1.85rem, 3.5vw, 3.8rem);
  line-height: 1.09;
}
.scroll-copy-notes { padding-block: 38vh 18vh; gap: 24vh; }
.scroll-copy-notes article { max-width: 390px; }

/* Calm parallax service preview — no zooming into the mock screen. */
.zoom-portal.service-preview { min-height: 175vh; }
.service-preview .zoom-portal-sticky { padding-top: clamp(80px, 10vh, 110px); }
.service-preview .zoom-copy { top: 8vh; max-width: 600px; }
.service-preview .device-stage {
  width: min(980px, 90vw);
  transform: translate3d(0, var(--device-y, 70px), 0);
  scale: 1;
}
.service-preview .device-content { min-height: min(540px, 62svh); }
.service-preview .zoom-action { bottom: 3vh; }

/* Sideways panels now fit comfortably inside a 1366 × 768 class viewport. */
.horizontal-showcase { height: 455vh; }
.horizontal-panel {
  min-height: 100svh;
  padding-block: clamp(58px, 8vh, 78px);
  gap: clamp(28px, 4vw, 58px);
}
.horizontal-showcase.v3 .horizontal-panel {
  grid-template-columns: minmax(360px, .92fr) minmax(360px, 1.08fr);
  padding-inline: max(34px, calc((100vw - var(--max))/2));
}
.horizontal-panel h2 {
  font-size: clamp(2.45rem, 4.6vw, 5.15rem);
  line-height: .98;
}
.horizontal-panel p { font-size: clamp(.98rem, 1.2vw, 1.1rem); }
.panel-visual {
  min-height: 390px;
  height: min(56svh, 500px);
  border-radius: 32px;
}
.skills-glyph { font-size: clamp(4.2rem, 11vw, 9.4rem) !important; letter-spacing: -.08em; }

/* Explicit colours prevent inherited white-on-white text in the assurance checklist. */
.assurance-check {
  background: #ffffff;
  color: #18251f;
  border-color: rgba(24,37,31,.18);
  box-shadow: 0 12px 28px rgba(0,0,0,.13);
}
.assurance-check span { color: #245844; }

/* Evidence labels stay centred and fully contained. */
.evidence-visual { padding: 28px; overflow: hidden; }
.evidence-label {
  width: min(360px, calc(100% - 24px));
  max-width: 100%;
  transform: none !important;
  text-align: center;
}

/* The rotation now has a visible purpose at its centre. */
.spiral-section { min-height: 285vh; }
.spiral-stage { height: 590px; }
.spiral-core {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 12;
  width: 220px;
  min-height: 150px;
  padding: 22px;
  display: grid;
  align-content: center;
  justify-items: center;
  text-align: center;
  border-radius: 50%;
  color: #fffaf0;
  background: linear-gradient(145deg, #263c33, #3e6252);
  border: 1px solid rgba(255,255,255,.26);
  box-shadow: 0 24px 70px rgba(24,37,31,.28);
  transform: translate(-50%,-50%) rotateX(-56deg) translateZ(150px);
}
.spiral-core strong { font-size: 1.05rem; line-height: 1.15; }
.spiral-core span { margin: 6px 0; color: #f0ddb8; font-size: .72rem; font-weight: 900; text-transform: uppercase; letter-spacing: .12em; }
.spiral-card { width: 240px; min-height: 205px; }
.spiral-card p { font-size: .95rem; }

@media (max-width: 1060px) {
  .scroll-copy-section { min-height: auto; }
  .scroll-copy-notes { padding: 0; gap: 16px; }
  .zoom-portal.service-preview { min-height: auto; padding: 100px 0 90px; }
  .service-preview .zoom-portal-sticky { position: relative; min-height: auto; display: block; }
  .service-preview .zoom-copy { position: relative; inset: auto; margin: 0 auto 34px; width: min(var(--max), calc(100% - 36px)); }
  .service-preview .device-stage { transform: none !important; margin-inline: auto; }
  .service-preview .zoom-action { position: relative; display: flex; width: max-content; margin: 28px auto 0; opacity: 1 !important; }
  .horizontal-showcase { height: auto; }
  .horizontal-showcase.v3 .horizontal-panel { grid-template-columns: 1fr; }
  .panel-visual { height: auto; min-height: 390px; }
  .spiral-core { position: relative; left: auto; top: auto; width: auto; min-height: 130px; border-radius: 28px; transform: none; grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .scroll-copy { font-size: clamp(1.85rem, 9vw, 3rem); }
  .panel-visual { min-height: 330px; }
  .horizontal-panel h2 { font-size: clamp(2.25rem, 12vw, 4rem); }
  .checklist-visual { grid-template-columns: 1fr 1fr; }
  .assurance-check { min-height: 90px; padding: 16px; font-size: 1.05rem; }
}

/* ================================================================
   V0.4 — research, offer status, funding and impact content
   ================================================================ */
.evidence-context { background: var(--surface-alt); }
.research-grid,
.status-offer-grid,
.outcome-grid,
.partner-type-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.research-card,
.status-offer-card,
.outcome-card,
.partner-type-card {
  min-width: 0;
  padding: clamp(24px, 3vw, 34px);
  border-radius: var(--radius-md);
  background: var(--surface);
  border: 1px solid var(--line);
  box-shadow: 0 12px 36px rgba(23,35,29,.08);
}
.research-card h3,
.status-offer-card h3,
.outcome-card h3,
.partner-type-card h3 { margin: 22px 0 12px; font-size: clamp(1.35rem, 2vw, 1.8rem); }
.research-card p,
.status-offer-card p,
.outcome-card p,
.partner-type-card p { color: var(--ink-soft); }
.research-card a,
.status-offer-card a,
.outcome-card a,
.partner-type-card a { font-weight: 850; }
.research-figure {
  display: block;
  font-size: clamp(2.8rem, 5vw, 5.5rem);
  line-height: .9;
  letter-spacing: -.06em;
  color: var(--sage-dark);
  font-weight: 950;
}
.offer-status .section-heading h2,
.offer-status .section-heading .eyebrow { color: #fffaf0; }
.status-offer-card { color: var(--ink); }
.grant-feature {
  padding: clamp(74px, 10vw, 130px) 0;
  color: #fffaf0;
  background: linear-gradient(125deg, #1c3028, #345947 66%, #6d5637);
}
.grant-feature-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
  align-items: center;
  gap: clamp(34px, 7vw, 90px);
}
.grant-feature h2 { max-width: 820px; color: #fffaf0; font-size: clamp(2.4rem, 5vw, 5.5rem); }
.grant-feature p { max-width: 760px; color: #e0e9e3; }
.grant-mark {
  min-height: 360px;
  display: grid;
  align-content: center;
  gap: 18px;
  padding: 36px;
  border-radius: 36px;
  color: #17231e;
  background: #f0ddb8;
  box-shadow: 0 32px 70px rgba(0,0,0,.24);
}
.grant-mark strong { font-size: clamp(3.8rem, 8vw, 7.5rem); line-height: .8; letter-spacing: -.08em; }
.grant-mark span { font-weight: 850; font-size: 1.2rem; }
.grant-mark a { color: #193d30; font-weight: 900; }
.source-note {
  padding: 18px 22px;
  border-left: 4px solid var(--terracotta);
  background: var(--surface-alt);
  color: var(--ink-soft);
}
.impact-chain { grid-template-columns: repeat(5, 1fr); }
.impact-chain .path-step { min-height: 250px; }
.funding-route-list { display: grid; gap: 12px; }
.funding-route-list article { padding: 20px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); }

@media (max-width: 980px) {
  .research-grid,
  .status-offer-grid,
  .outcome-grid,
  .partner-type-grid { grid-template-columns: 1fr; }
  .grant-feature-grid { grid-template-columns: 1fr; }
  .grant-mark { min-height: 280px; }
  .impact-chain { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 620px) {
  .impact-chain { grid-template-columns: 1fr; }
}

/* V0.5 — calm CV story, readable STEM loop and evidence pathway */
.cv-story-section { color:#fffaf0; background:radial-gradient(circle at 82% 22%,rgba(216,202,145,.17),transparent 34%),linear-gradient(135deg,#14231c,#29473a 68%,#3d594b); overflow:clip; }
.cv-story-grid { display:grid; grid-template-columns:minmax(0,.92fr) minmax(480px,1.08fr); gap:clamp(42px,7vw,96px); align-items:center; }
.cv-story-copy h2 { color:#fffaf0; font-size:clamp(2.6rem,5vw,5.2rem); }
.cv-story-copy > p:not(.eyebrow) { max-width:700px; color:#dfe8e2; font-size:1.08rem; }
.cv-story-steps { margin:32px 0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; list-style:none; }
.cv-story-steps li { min-width:0; display:grid; grid-template-columns:auto 1fr; gap:3px 12px; padding:16px; border:1px solid rgba(255,255,255,.18); border-radius:18px; background:rgba(255,255,255,.075); }
.cv-story-steps span { grid-row:1 / 3; color:#f1bd83; font-size:.78rem; font-weight:950; }
.cv-story-steps strong { color:#fffaf0; }
.cv-story-steps small { color:#dbe5df; line-height:1.45; }
.cv-story-visual { margin:0; }
.cv-story-image-wrap { position:relative; overflow:hidden; border:1px solid rgba(255,255,255,.2); border-radius:34px; background:#f2eee4; box-shadow:0 36px 90px rgba(0,0,0,.34); }
.cv-story-image-wrap::after { content:""; position:absolute; inset:0; pointer-events:none; box-shadow:inset 0 0 0 1px rgba(255,255,255,.18); }
.cv-story-image-wrap img { width:100%; height:auto; display:block; transform:scale(1.025); transition:transform 1.1s cubic-bezier(.2,.75,.2,1); }
.cv-story-visual.is-visible img { transform:scale(1); }
.cv-story-visual figcaption { margin-top:14px; color:#cbd8d1; font-size:.9rem; }
.build-loop { align-content:center; grid-template-columns:1fr auto 1fr; gap:14px; padding:clamp(22px,4vw,44px); }
.build-loop-step { min-width:0; min-height:132px; display:grid; align-content:center; gap:6px; padding:22px; color:#17251f; background:#fffaf0; border:1px solid rgba(24,37,31,.16); border-radius:22px; box-shadow:0 16px 34px rgba(0,0,0,.12); }
.build-loop-step span { color:#b8522e; font-size:.78rem; font-weight:950; }
.build-loop-step strong { font-size:clamp(1.35rem,2.2vw,2.15rem); }
.build-loop-step:nth-of-type(4) { background:#f0ddb8; }
.build-loop-arrow { color:#f1bd83; font-size:2rem; font-weight:950; }
.evidence-pathway-section { background:var(--surface-alt); }
.evidence-pathway-heading { align-items:end; }
.evidence-pathway { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.evidence-pathway-card { position:relative; min-width:0; min-height:260px; padding:28px; overflow:hidden; border:1px solid var(--line); border-radius:26px; background:var(--surface); box-shadow:0 18px 46px rgba(24,37,31,.08); }
.evidence-pathway-card::after { content:""; position:absolute; right:-34px; bottom:-54px; width:130px; height:130px; border:26px solid rgba(110,138,121,.11); border-radius:50%; }
.evidence-pathway-card > span { color:var(--terracotta); font-weight:950; }
.evidence-pathway-card h3 { margin:36px 0 10px; font-size:clamp(1.55rem,2.5vw,2.35rem); }
.evidence-pathway-card p { color:var(--ink-soft); }
.evidence-pathway-card strong { position:relative; z-index:1; display:block; margin-top:24px; color:var(--sage-dark); font-size:.92rem; }
.evidence-pathway-result { margin-top:18px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:18px; padding:24px 28px; border-radius:22px; color:#fffaf0; background:#263c33; font-size:clamp(1.05rem,2vw,1.5rem); text-align:center; }
.evidence-pathway-result > span:nth-child(2) { color:#f1bd83; font-size:1.8rem; }
.policy-meta { margin-top:28px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; overflow:hidden; border:1px solid var(--line); border-radius:20px; background:var(--line); }
.policy-meta div { min-width:0; padding:15px 17px; background:var(--surface); }
.policy-meta dt { margin:0 0 5px; color:var(--ink-soft); font-size:.72rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.policy-meta dd { margin:0; font-weight:800; overflow-wrap:anywhere; }
.document-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.document-card { min-width:0; padding:25px; border:1px solid var(--line); border-radius:22px; background:var(--surface); }
.document-card h2 { margin:20px 0 10px; font-size:1.45rem; }
.document-card p { color:var(--ink-soft); }
.document-card a { font-weight:900; }
.document-group-title { margin:54px 0 20px; }
.welsh-review-note { margin-top:20px; padding:16px 20px; border-left:4px solid var(--terracotta); color:var(--ink-soft); background:var(--surface-alt); }
@media (max-width:1050px) {
  .cv-story-grid { grid-template-columns:1fr; }
  .cv-story-visual { max-width:820px; }
  .evidence-pathway,.document-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .policy-meta { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:720px) {
  .cv-story-steps,.evidence-pathway,.document-grid,.policy-meta { grid-template-columns:1fr; }
  .build-loop { grid-template-columns:1fr; }
  .build-loop-arrow { transform:rotate(90deg); justify-self:center; }
  .evidence-pathway-result { grid-template-columns:1fr; }
  .evidence-pathway-result > span:nth-child(2) { transform:rotate(90deg); }
}
@media print {
  .site-header,.site-footer,.accessibility-dock,.cookie-banner,.cookie-dialog,.scroll-progress,.button-row,.side-card { display:none !important; }
  body { color:#000; background:#fff; font-size:11pt; }
  .page-hero,.section { padding:24px 0; }
  .container,.content-layout { width:100%; max-width:none; display:block; }
  a { color:#000; text-decoration:underline; }
  a[href]::after { content:" (" attr(href) ")"; font-size:8pt; overflow-wrap:anywhere; }
  .policy-meta,.policy-section,.notice { break-inside:avoid; }
}

/* V2.0 — shorter mobile-first homepage, pathway, updates and resources */
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.v2-hero { position:relative; min-height:min(820px,calc(100svh - 84px)); display:grid; align-items:center; overflow:hidden; isolation:isolate; background:radial-gradient(circle at 76% 38%,rgba(239,166,113,.2),transparent 28%),linear-gradient(135deg,#f9f4e9 0%,#eef2ea 56%,#dae6dc 100%); }
.v2-hero-grid { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr); align-items:center; gap:clamp(38px,7vw,104px); padding-block:clamp(72px,10vw,130px); }
.v2-hero-copy h1 { max-width:880px; margin:.18em 0 .32em; font-size:clamp(3.8rem,7.5vw,8rem); line-height:.86; letter-spacing:-.075em; }
.v2-hero-copy .lead { max-width:720px; color:var(--ink-soft); font-size:clamp(1.05rem,1.55vw,1.3rem); }
.v2-proof-strip { margin-top:34px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; overflow:hidden; border:1px solid rgba(31,59,47,.16); border-radius:20px; background:rgba(31,59,47,.16); }
.v2-proof-strip span { min-width:0; padding:15px 17px; display:grid; gap:3px; background:rgba(255,250,240,.86); }
.v2-proof-strip strong { color:var(--ink); font-size:.88rem; }
.v2-proof-strip small { color:var(--ink-soft); }
.v2-hero-map { position:relative; min-height:520px; border:1px solid rgba(31,59,47,.14); border-radius:48% 52% 45% 55% / 55% 43% 57% 45%; background:rgba(255,255,255,.46); box-shadow:0 34px 90px rgba(24,48,38,.12); }
.v2-hero-map::before,.v2-hero-map::after { content:""; position:absolute; border:1px dashed rgba(184,82,46,.5); border-radius:50%; inset:11%; animation:spin 30s linear infinite; }
.v2-hero-map::after { inset:25%; border-style:solid; border-color:rgba(38,60,51,.16); animation-direction:reverse; animation-duration:22s; }
.map-core { position:absolute; z-index:2; inset:34%; display:grid; place-items:center; align-content:center; gap:8px; padding:20px; border-radius:50%; color:#fffaf0; background:#263c33; text-align:center; box-shadow:0 22px 48px rgba(13,31,23,.22); }
.map-core img { width:66px; }
.map-core strong { font-size:.85rem; line-height:1.2; }
.map-label { position:absolute; z-index:3; padding:9px 13px; border-radius:999px; color:#17231e; background:#fffaf0; border:1px solid rgba(31,59,47,.14); box-shadow:0 12px 30px rgba(20,45,34,.12); font-weight:850; }
.label-one { top:10%; left:39%; }.label-two { top:43%; right:1%; }.label-three { bottom:8%; left:38%; }.label-four { top:43%; left:-2%; }
.v2-section-head { margin-bottom:34px; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(280px,.65fr); gap:42px; align-items:end; }
.v2-section-head h2 { margin:.2em 0 0; }
.v2-section-head > p { margin:0; color:var(--ink-soft); }
.v2-route-grid,.updates-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.v2-route-card { min-width:0; min-height:300px; padding:28px; display:flex; flex-direction:column; color:var(--ink); text-decoration:none; border:1px solid var(--line); border-radius:28px; background:var(--surface); box-shadow:0 18px 48px rgba(24,37,31,.07); transition:transform .25s ease,box-shadow .25s ease; }
.v2-route-card:hover { transform:translateY(-5px); box-shadow:0 26px 60px rgba(24,37,31,.12); }
.v2-route-card > span { color:var(--terracotta); font-weight:950; }
.v2-route-card h3 { margin:auto 0 12px; font-size:clamp(1.6rem,2.5vw,2.35rem); }
.v2-route-card p { color:var(--ink-soft); }
.v2-route-card strong { margin-top:20px; color:var(--sage-dark); }
.v2-pathway-preview { color:#fffaf0; background:#1d332a; }
.v2-pathway-preview .v2-section-head > p,.v2-pathway-preview .v2-disclaimer { color:#cbd9d1; }
.v2-pathway-preview h2 { color:#fffaf0; }
.product-journey { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.product-stage { position:relative; min-width:0; min-height:420px; padding:28px; display:flex; flex-direction:column; border:1px solid rgba(255,255,255,.16); border-radius:30px; background:rgba(255,255,255,.07); }
.product-stage.live { background:#fffaf0; color:#18281f; }
.product-stage .stage-number { position:absolute; top:20px; right:24px; color:rgba(255,255,255,.22); font-size:3.4rem; font-weight:950; letter-spacing:-.08em; }
.product-stage.live .stage-number { color:rgba(32,67,51,.12); }
.product-stage h3 { margin:70px 0 4px; font-size:1rem; color:#f0bd86; }
.product-stage.live h3 { color:#a74727; }
.product-stage h4 { margin:0 0 18px; color:inherit; font-size:clamp(1.9rem,3vw,3rem); }
.product-stage p { color:#d7e2dc; }
.product-stage.live p { color:#526159; }
.product-stage .button { margin-top:auto; align-self:flex-start; }
.product-stage .product-actions { margin-top:auto; display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.product-stage .product-actions .button { margin-top:0; }
.v2-disclaimer { max-width:900px; margin:24px 0 0; font-size:.9rem; }
.grant-v2 { background:#f0ddb8; }
.grant-v2-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(330px,.6fr); gap:clamp(38px,7vw,90px); align-items:center; }
.grant-v2 h2 { margin:.18em 0; font-size:clamp(3.5rem,7vw,7rem); }
.grant-v2-card { padding:34px; border-radius:32px; color:#fffaf0; background:#263c33; box-shadow:0 26px 70px rgba(27,48,38,.2); }
.grant-v2-card > strong { display:block; font-size:clamp(4rem,8vw,7.5rem); line-height:.9; letter-spacing:-.08em; }
.grant-v2-card > span { display:block; margin:10px 0 28px; color:#f1bd83; font-weight:850; }
.grant-v2-card dl { margin:0; display:grid; gap:1px; background:rgba(255,255,255,.16); }
.grant-v2-card dl div { padding:14px 0; display:grid; gap:3px; background:#263c33; }
.grant-v2-card dt { color:#bacbc2; font-size:.75rem; text-transform:uppercase; letter-spacing:.08em; font-weight:850; }
.grant-v2-card dd { margin:0; font-weight:750; }
.v2-programme-summary .split { align-items:center; }
.skills-ribbon { display:grid; gap:10px; }
.skills-ribbon span { padding:17px 20px; display:grid; grid-template-columns:120px 1fr; gap:20px; border:1px solid var(--line); border-radius:16px; background:var(--surface); font-weight:900; }
.skills-ribbon small { color:var(--ink-soft); font-weight:600; }
.v2-updates-preview { background:var(--surface-alt); }
.update-card { min-width:0; min-height:310px; padding:26px; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:26px; background:var(--surface); }
.update-meta { color:var(--terracotta); font-size:.78rem; font-weight:900; text-transform:uppercase; letter-spacing:.06em; }
.update-card h3 { margin:42px 0 12px; font-size:clamp(1.45rem,2.4vw,2rem); }
.update-card p { color:var(--ink-soft); }
.update-card a { margin-top:auto; font-weight:900; }
.instagram-v2 { color:#fffaf0; background:linear-gradient(135deg,#1c3028,#345447); }
.instagram-v2 h2 { color:#fffaf0; font-size:clamp(3rem,6vw,6rem); }
.instagram-v2-grid { display:grid; grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr); gap:clamp(38px,6vw,80px); align-items:center; }
.instagram-v2-grid > div:first-child > p:not(.eyebrow) { color:#d4e0da; }
.social-preview-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.social-preview-grid a { position:relative; min-height:330px; overflow:hidden; border-radius:24px; color:#fff; text-decoration:none; background:#14251d; }
.social-preview-grid img { width:100%; height:100%; object-fit:cover; opacity:.75; transition:transform .45s ease,opacity .45s ease; }
.social-preview-grid a:hover img { transform:scale(1.04); opacity:.9; }
.social-preview-grid span { position:absolute; inset:auto 16px 16px; padding:10px 12px; border-radius:12px; background:rgba(15,34,25,.82); font-weight:850; }
.v2-trust { background:#fffaf0; }
.v2-trust-grid { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(38px,7vw,100px); }
.trust-links-v2 { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.trust-links-v2 a { padding:20px; display:flex; justify-content:space-between; color:var(--ink); text-decoration:none; border:1px solid var(--line); border-radius:18px; background:var(--surface); font-weight:850; }
.trust-links-v2 a:hover { border-color:var(--terracotta); }
.back-to-top { position:fixed; z-index:1090; right:22px; bottom:90px; width:48px; height:48px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.25); border-radius:50%; color:#fffaf0; background:#263c33; box-shadow:0 14px 38px rgba(15,35,25,.24); opacity:0; visibility:hidden; transform:translateY(12px); transition:opacity .2s ease,transform .2s ease,visibility .2s; cursor:pointer; font-size:1.25rem; }
.back-to-top.is-visible { opacity:1; visibility:visible; transform:none; }
.article-shell { padding-block:clamp(70px,9vw,120px); }
.article-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(250px,330px); gap:clamp(34px,7vw,90px); align-items:start; }
.article-content { max-width:820px; }
.article-content h2 { margin-top:2.2em; font-size:clamp(2rem,4vw,3.6rem); }
.article-content h3 { margin-top:1.8em; }
.article-content p,.article-content li { color:var(--ink-soft); font-size:1.05rem; line-height:1.75; }
.article-content li+li { margin-top:.55em; }
.article-aside { position:sticky; top:110px; padding:22px; border:1px solid var(--line); border-radius:22px; background:var(--surface-alt); }
.article-aside a { display:block; padding:8px 0; font-weight:800; }
.resource-roadmap { display:grid; gap:14px; counter-reset:resource; }
.resource-step { padding:22px; border:1px solid var(--line); border-radius:20px; background:var(--surface); }
.resource-step summary { cursor:pointer; list-style:none; font-size:1.25rem; font-weight:900; }
.resource-step summary::-webkit-details-marker { display:none; }
.resource-step summary::before { counter-increment:resource; content:counter(resource,decimal-leading-zero); margin-right:14px; color:var(--terracotta); }
.resource-step[open] { box-shadow:0 18px 44px rgba(24,37,31,.08); }
.planner-box { margin-top:28px; padding:24px; border:2px solid #263c33; border-radius:22px; background:#fff; }
.planner-box label { display:grid; gap:7px; margin-top:16px; font-weight:800; }
.planner-box textarea,.planner-box input { width:100%; padding:12px; border:1px solid var(--line); border-radius:12px; font:inherit; background:#fff; }
.source-list { padding:20px; border-left:4px solid var(--terracotta); background:var(--surface-alt); }

/* The sticky header blur must not constrain the fixed mobile navigation. */
@media (max-width:1060px) {
  body.menu-open .site-header,body.menu-open .site-header.is-scrolled { background:var(--paper); backdrop-filter:none; }
  .primary-nav { height:calc(100dvh - 84px); padding:16px 22px 22px; grid-template-rows:repeat(9,minmax(44px,auto)); align-content:center; overscroll-behavior:contain; }
  .primary-nav.is-open { gap:6px; }
  .primary-nav a { display:grid; place-items:center; width:min(100%,560px); min-height:44px; margin-inline:auto; padding:9px 14px; text-align:center; }
  .v2-hero-grid,.grant-v2-grid,.instagram-v2-grid,.v2-trust-grid,.article-grid { grid-template-columns:1fr; }
  .v2-hero-map { min-height:440px; max-width:620px; width:100%; margin-inline:auto; }
  .v2-route-grid,.product-journey,.updates-grid { grid-template-columns:1fr; }
  .product-stage { min-height:350px; }
  .article-aside { position:static; }
}
@media (max-width:760px) {
  .primary-nav { height:calc(100dvh - 72px); }
  .v2-hero { min-height:auto; }
  .v2-hero-grid { padding-block:54px 70px; }
  .v2-hero-copy h1 { font-size:clamp(3.2rem,15vw,5rem); }
  .v2-proof-strip { grid-template-columns:1fr; }
  .v2-hero-map { min-height:330px; border-radius:34px; }
  .map-core { inset:31%; }
  .map-core img { width:48px; }
  .map-label { font-size:.78rem; }
  .v2-section-head { grid-template-columns:1fr; gap:12px; }
  .v2-route-card { min-height:250px; }
  .product-stage { min-height:330px; }
  .grant-v2-card { padding:26px; }
  .skills-ribbon span { grid-template-columns:1fr; gap:3px; }
  .social-preview-grid { grid-template-columns:1fr 1fr; }
  .social-preview-grid a { min-height:220px; }
  .social-preview-grid a:last-child { grid-column:1/-1; }
  .trust-links-v2 { grid-template-columns:1fr; }
  .back-to-top { right:14px; bottom:78px; }
}
@media (max-height:560px) and (max-width:1060px) {
  .primary-nav { align-content:start; }
}
@media (prefers-reduced-motion:reduce) {
  .v2-hero-map::before,.v2-hero-map::after { animation:none; }
  .back-to-top { transition:none; }
}
@media print {
  .back-to-top,.instagram-v2 { display:none!important; }
  .article-grid { display:block; }
  .planner-box { break-inside:avoid; }
}

/* ================================================================
   V2.1 — restored scroll choreography and verified theme contrast
   ================================================================ */

/* Darken small orange text in light mode so labels remain readable. */
.eyebrow,
.update-meta,
.v2-route-card > span,
.resource-step summary::before {
  color: #a74627;
}

.v2-route-card strong,
.research-card a,
.status-offer-card a,
.outcome-card a,
.partner-type-card a,
.text-link {
  color: #244f3e;
}

/* A concise sideways story on desktop; the document order remains logical. */
.v21-horizontal {
  position: relative;
  height: 390vh;
  color: #17251f;
  background: #e8eee7;
}

.v21-horizontal-sticky {
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
}

.v21-horizontal-track {
  height: 100%;
  width: max-content;
  display: flex;
  will-change: transform;
}

.v21-panel {
  position: relative;
  width: 100vw;
  min-height: 100svh;
  padding: clamp(92px, 11vh, 130px) max(34px, calc((100vw - var(--max)) / 2));
  display: grid;
  align-content: center;
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 24%, rgba(233,138,82,.18), transparent 28%),
    #f8f4eb;
}

.v21-panel::after {
  content: "";
  position: absolute;
  right: clamp(30px, 8vw, 150px);
  bottom: clamp(30px, 8vh, 100px);
  width: clamp(180px, 28vw, 430px);
  aspect-ratio: 1;
  border: clamp(28px, 5vw, 70px) solid rgba(38,60,51,.08);
  border-radius: 50%;
  pointer-events: none;
}

.v21-panel h2 {
  max-width: 960px;
  margin: .16em 0 .25em;
  font-size: clamp(3.2rem, 7vw, 7.8rem);
  line-height: .9;
  letter-spacing: -.065em;
}

.v21-panel > p:not(.eyebrow) {
  max-width: 690px;
  color: #304139;
  font-size: clamp(1.05rem, 1.6vw, 1.3rem);
}

.v21-panel-number {
  position: absolute;
  top: clamp(94px, 12vh, 140px);
  right: max(34px, calc((100vw - var(--max)) / 2));
  color: rgba(38,60,51,.18);
  font-size: clamp(5rem, 13vw, 13rem);
  font-weight: 950;
  line-height: 1;
  letter-spacing: -.1em;
}

.v21-panel-intro {
  color: #fffaf0;
  background:
    radial-gradient(circle at 82% 22%, rgba(216,202,145,.18), transparent 30%),
    linear-gradient(135deg, #14251d, #315342);
}

.v21-panel-intro > p:not(.eyebrow) { color: #dce7e0; }
.v21-panel-intro .eyebrow { color: #f3bd88; }
.v21-panel-wheat { background: #f0ddb8; }
.v21-panel-dark { color: #fffaf0; background: #20372d; }
.v21-panel-dark > p:not(.eyebrow) { color: #dce7e0; }
.v21-panel-dark .eyebrow { color: #f3bd88; }

.v21-skill-tags {
  position: relative;
  z-index: 2;
  max-width: 800px;
  margin-top: 30px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.v21-skill-tags span {
  padding: 10px 15px;
  border: 1px solid rgba(31,59,47,.2);
  border-radius: 999px;
  color: #17251f;
  background: rgba(255,255,255,.7);
  font-weight: 850;
}

.v21-panel-dark .v21-skill-tags span,
.v21-panel-intro .v21-skill-tags span {
  color: #fffaf0;
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.25);
}

/* Scroll-linked movement on existing V2 elements. */
.v2-hero-map {
  transform: translate3d(0, var(--v21-map-y, 0), 0) rotate(var(--v21-map-rotate, 0deg));
  transition: box-shadow .25s ease;
  will-change: transform;
}

.grant-v2-card,
.social-preview-grid {
  transform: translate3d(0, var(--v21-parallax-y, 0), 0);
  will-change: transform;
}

.skills-ribbon span {
  transition: transform .35s ease, border-color .35s ease, background .35s ease, box-shadow .35s ease;
}

.skills-ribbon span.is-active {
  transform: translateX(-18px);
  border-color: #b8522e;
  box-shadow: 0 18px 44px rgba(24,37,31,.12);
}

/* Fixed-colour V2 sections need explicit dark counterparts. */
[data-theme="dark"] .v2-hero {
  color: #f7f3e9;
  background:
    radial-gradient(circle at 76% 38%, rgba(233,138,82,.16), transparent 30%),
    linear-gradient(135deg, #101814, #18271f 58%, #22392e);
}

[data-theme="dark"] .v2-hero-map {
  border-color: rgba(255,255,255,.18);
  background: rgba(255,255,255,.055);
  box-shadow: 0 34px 90px rgba(0,0,0,.3);
}

[data-theme="dark"] .v2-proof-strip {
  border-color: rgba(255,255,255,.14);
  background: rgba(255,255,255,.14);
}

[data-theme="dark"] .v2-proof-strip span {
  background: #1a2922;
}

[data-theme="dark"] .v2-proof-strip strong { color: #f7f3e9; }
[data-theme="dark"] .v2-proof-strip small { color: #cbd6cf; }

[data-theme="dark"] .v2-route-card strong,
[data-theme="dark"] .research-card a,
[data-theme="dark"] .status-offer-card a,
[data-theme="dark"] .outcome-card a,
[data-theme="dark"] .partner-type-card a,
[data-theme="dark"] .text-link {
  color: #b9ddca;
}

[data-theme="dark"] .eyebrow,
[data-theme="dark"] .update-meta,
[data-theme="dark"] .v2-route-card > span,
[data-theme="dark"] .resource-step summary::before {
  color: #f1a873;
}

[data-theme="dark"] .grant-v2 {
  color: #f7f3e9;
  background: #26382f;
}

[data-theme="dark"] .grant-v2 .button-secondary {
  color: #f7f3e9;
  border-color: rgba(255,255,255,.34);
  background: rgba(255,255,255,.06);
}

[data-theme="dark"] .v2-trust {
  color: #f7f3e9;
  background: #121c17;
}

[data-theme="dark"] .trust-links-v2 a {
  color: #f7f3e9;
  background: #1a2922;
  border-color: rgba(255,255,255,.14);
}

[data-theme="dark"] .planner-box {
  color: #18251f;
  background: #f8f4eb;
}

[data-theme="dark"] .planner-box textarea,
[data-theme="dark"] .planner-box input {
  color: #18251f;
  background: #fff;
  border-color: rgba(24,37,31,.24);
}

[data-theme="dark"] .v21-horizontal {
  color: #f7f3e9;
  background: #101814;
}

@media (max-width: 1060px) {
  .v21-horizontal { height: auto; }
  .v21-horizontal-sticky { position: relative; height: auto; overflow: visible; }
  .v21-horizontal-track { width: auto; height: auto; display: grid; transform: none !important; }
  .v21-panel { width: auto; min-height: min(720px, 92svh); }
}

@media (max-width: 760px) {
  .v21-panel {
    min-height: auto;
    padding: 82px 18px;
  }
  .v21-panel h2 { font-size: clamp(2.8rem, 14vw, 4.7rem); }
  .v21-panel-number { top: 24px; right: 18px; font-size: 5rem; }
  .skills-ribbon span.is-active { transform: none; }
  .grant-v2-card,
  .social-preview-grid,
  .v2-hero-map { transform: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  .v21-horizontal { height: auto; }
  .v21-horizontal-sticky { position: relative; height: auto; overflow: visible; }
  .v21-horizontal-track { width: auto; height: auto; display: grid; transform: none !important; }
  .v21-panel { width: auto; min-height: auto; }
  .grant-v2-card,
  .social-preview-grid,
  .v2-hero-map { transform: none !important; }
}

/* ================================================================
   V2.2 — student interview pathway and personalised toolkit
   ================================================================ */
.journey-explainer { display:grid; gap:14px; margin-top:28px; }
.journey-explainer article { display:grid; grid-template-columns:64px 1fr; gap:20px; padding:22px; border:1px solid var(--line); border-radius:22px; background:var(--surface); }
.journey-explainer article > span { width:52px; height:52px; display:grid; place-items:center; border-radius:50%; color:#fffaf0; background:var(--sage-dark); font-weight:950; }
.journey-explainer h3 { margin:0 0 6px; }
.journey-explainer p { margin:0; }

.interview-app-hero { background:radial-gradient(circle at 82% 25%,rgba(237,151,94,.2),transparent 30%),linear-gradient(135deg,#f8f3e8,#e9efe9); }
.app-flow-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.app-flow-grid article { min-width:0; min-height:280px; padding:26px; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:26px; background:var(--surface); box-shadow:0 18px 45px rgba(24,37,31,.07); }
.app-flow-grid article > span { color:var(--terracotta); font-weight:950; }
.app-flow-grid h3 { margin:auto 0 10px; font-size:clamp(1.35rem,2.3vw,2rem); }
.app-flow-grid p { color:var(--ink-soft); }
.feature-check-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.feature-check-grid article { padding:22px; border:1px solid var(--line); border-radius:20px; background:var(--surface); }
.feature-check-grid h3 { margin:0 0 8px; }
.feature-check-grid p { margin:0; }
.surface-alt { background:var(--surface-alt); }

.toolkit-hero { background:radial-gradient(circle at 78% 28%,rgba(232,139,82,.18),transparent 30%),linear-gradient(135deg,#fbf5e9,#e6eee7); }
.privacy-inline { max-width:820px; margin-top:24px; padding:15px 18px; border-left:4px solid var(--terracotta); border-radius:0 14px 14px 0; color:var(--ink-soft); background:rgba(255,255,255,.68); }
.toolkit-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(250px,330px); gap:clamp(28px,6vw,72px); align-items:start; }
.toolkit-builder-card { min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:30px; background:var(--surface); box-shadow:0 24px 65px rgba(24,37,31,.1); }
.toolkit-progress { padding:22px 26px; color:#fffaf0; background:#263c33; }
.toolkit-progress > div:first-child { display:flex; justify-content:space-between; gap:18px; align-items:center; }
.toolkit-progress span { color:#ccdbd3; font-size:.85rem; font-weight:800; }
.toolkit-progress strong { text-align:right; }
.toolkit-progress-track { height:7px; margin-top:15px; overflow:hidden; border-radius:999px; background:rgba(255,255,255,.16); }
.toolkit-progress-track span { display:block; height:100%; width:16.666%; border-radius:inherit; background:#f0bd86; transition:width .25s ease; }
.toolkit-step { padding:clamp(24px,5vw,48px); }
.toolkit-step:not(.is-active) { display:none; }
.toolkit-step fieldset { min-width:0; margin:0; padding:0; border:0; }
.toolkit-step legend { max-width:760px; padding:0; color:var(--ink); font-family:var(--font-display); font-size:clamp(1.8rem,3.4vw,3rem); font-weight:900; letter-spacing:-.035em; line-height:1; }
.question-help { margin:12px 0 24px; color:var(--ink-soft); }
.choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.choice-grid-compact { grid-template-columns:repeat(2,minmax(0,1fr)); }
.choice-card { position:relative; min-width:0; cursor:pointer; }
.choice-card input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.choice-card > span { min-height:108px; padding:18px; display:flex; flex-direction:column; justify-content:center; gap:5px; border:2px solid var(--line); border-radius:18px; background:var(--surface-alt); transition:border-color .18s ease,transform .18s ease,background .18s ease,box-shadow .18s ease; }
.choice-grid-compact .choice-card > span { min-height:78px; }
.choice-card strong { color:var(--ink); }
.choice-card small { color:var(--ink-soft); line-height:1.35; }
.choice-card:hover > span { transform:translateY(-2px); border-color:rgba(167,70,39,.5); }
.choice-card:has(input:checked) > span { border-color:var(--terracotta); background:#fff5ea; box-shadow:0 0 0 3px rgba(167,70,39,.12); }
.choice-card:has(input:focus-visible) > span { outline:3px solid #1f6fb2; outline-offset:3px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.form-grid label,.notes-field { display:grid; gap:7px; color:var(--ink); font-weight:850; }
.form-grid input,.notes-field textarea { width:100%; padding:13px 14px; border:1px solid var(--line); border-radius:12px; color:var(--ink); background:var(--surface); font:inherit; }
.form-grid input:focus,.notes-field textarea:focus { outline:3px solid rgba(31,111,178,.24); border-color:#1f6fb2; }
.form-span { grid-column:1/-1; }
.notes-field { margin-top:20px; }
.toolkit-actions { padding:0 clamp(24px,5vw,48px) clamp(24px,5vw,42px); display:flex; justify-content:space-between; gap:12px; }
.toolkit-actions .button[hidden] { display:none; }
.toolkit-actions .button:disabled { opacity:.45; cursor:not-allowed; }
.field-error { margin:0 clamp(24px,5vw,48px) 22px; color:#8b271d; font-weight:850; }
.toolkit-side { position:sticky; top:110px; display:grid; gap:14px; }
.toolkit-side-card { padding:22px; border:1px solid var(--line); border-radius:22px; background:var(--surface-alt); }
.toolkit-side-card > strong { font-size:1.1rem; }
.toolkit-side-card ul { padding-left:20px; }
.toolkit-side-card li+li { margin-top:8px; }
.toolkit-result-section { background:#e9eee8; }
.toolkit-result-actions { margin-bottom:28px; display:flex; justify-content:space-between; gap:30px; align-items:end; }
.toolkit-result-actions h2 { margin:.15em 0 0; }
.toolkit-document { counter-reset:toolkit-section; max-width:980px; margin-inline:auto; padding:clamp(28px,5vw,64px); color:#17251f; background:#fff; border-radius:24px; box-shadow:0 26px 70px rgba(24,37,31,.14); }
.toolkit-document-header { padding-bottom:24px; display:grid; grid-template-columns:190px 1fr; gap:28px; align-items:center; border-bottom:3px solid #263c33; }
.toolkit-document-header img { width:100%; }
.toolkit-document-header p { margin:0; color:#a74627; font-weight:900; text-transform:uppercase; letter-spacing:.07em; }
.toolkit-document-header h1 { margin:4px 0 6px; font-size:clamp(2.2rem,5vw,4.6rem); line-height:.95; }
.toolkit-document-header span { color:#526159; }
.toolkit-summary-grid { margin:24px 0 12px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; overflow:hidden; border:1px solid #ccd5cf; border-radius:16px; background:#ccd5cf; }
.toolkit-summary-grid div { min-width:0; padding:14px; display:grid; gap:4px; background:#f7f4ec; }
.toolkit-summary-grid strong { color:#526159; font-size:.75rem; text-transform:uppercase; letter-spacing:.06em; }
.toolkit-summary-grid span { overflow-wrap:anywhere; font-weight:800; }
.toolkit-print-section { padding:34px 0; border-bottom:1px solid #d5ddd8; }
.print-section-heading { margin-bottom:20px; display:grid; grid-template-columns:58px 1fr; gap:16px; align-items:center; }
.print-section-heading > span { width:52px; height:52px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#263c33; font-weight:950; }
.print-section-heading > span { font-size:0; }
.print-section-heading > span::before { counter-increment:toolkit-section; content:counter(toolkit-section,decimal-leading-zero); font-size:.95rem; }
.print-section-heading p { margin:0; color:#a74627; font-size:.78rem; font-weight:900; text-transform:uppercase; letter-spacing:.07em; }
.print-section-heading h2 { margin:2px 0 0; font-size:clamp(1.75rem,3vw,2.8rem); }
.toolkit-checklist { padding:0; display:grid; gap:10px; list-style:none; }
.toolkit-checklist li { padding:12px 14px; border:1px solid #d5ddd8; border-radius:12px; background:#fbfaf6; }
.toolkit-print-section h3 { margin:28px 0 8px; }
.write-lines { display:grid; gap:17px; margin:12px 0 24px; }
.write-lines span { display:block; min-height:16px; border-bottom:1px solid #8c9992; }
.practice-question { padding:20px 0; border-bottom:1px dashed #cbd3ce; }
.practice-question:last-child { border-bottom:0; }
.practice-question p { margin:10px 0 0; color:#526159; font-size:.9rem; }
.star-sheet { margin-top:24px; padding:20px; border:1px solid #cbd3ce; border-radius:16px; break-inside:avoid; }
.star-sheet h3 { margin:0 0 18px; }
.blank-inline { display:inline-block; width:45%; border-bottom:1px solid #8c9992; }
.star-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.star-grid > div { padding:14px; border-radius:12px; background:#f7f4ec; }
.star-grid p { margin:5px 0 0; color:#526159; font-size:.88rem; }
.user-note { padding:20px; border-left:5px solid #a74627; background:#fff5ea; white-space:normal; }
.toolkit-document-footer { padding-top:28px; color:#526159; font-size:.85rem; }
.toolkit-document-footer p { margin:.4em 0; }

[data-theme="dark"] .interview-app-hero,
[data-theme="dark"] .toolkit-hero { background:radial-gradient(circle at 78% 28%,rgba(232,139,82,.15),transparent 30%),#17261f; }
[data-theme="dark"] .privacy-inline { background:rgba(255,255,255,.06); }
[data-theme="dark"] .choice-card:has(input:checked) > span { color:#fffaf0; background:#3a2b25; }
[data-theme="dark"] .toolkit-result-section { background:#14221c; }
[data-theme="dark"] .toolkit-document { color:#17251f; background:#fff; }

@media (max-width:1060px) {
  .app-flow-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .toolkit-layout { grid-template-columns:1fr; }
  .toolkit-side { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .toolkit-result-actions { align-items:start; flex-direction:column; }
}
@media (max-width:720px) {
  .journey-explainer article { grid-template-columns:50px 1fr; padding:18px; }
  .app-flow-grid,.feature-check-grid,.choice-grid,.choice-grid-compact,.form-grid,.star-grid { grid-template-columns:1fr; }
  .app-flow-grid article { min-height:220px; }
  .toolkit-side { grid-template-columns:1fr; }
  .toolkit-progress > div:first-child { align-items:flex-start; flex-direction:column; gap:4px; }
  .toolkit-progress strong { text-align:left; }
  .form-span { grid-column:auto; }
  .toolkit-actions { flex-wrap:wrap; }
  .toolkit-actions .button { flex:1 1 150px; }
  .toolkit-document { padding:24px 18px; border-radius:16px; }
  .toolkit-document-header { grid-template-columns:1fr; }
  .toolkit-document-header img { max-width:180px; }
  .toolkit-summary-grid { grid-template-columns:1fr; }
}

@media print {
  @page { size:A4; margin:13mm; }
  .toolkit-page .site-header,
  .toolkit-page .skip-link,
  .toolkit-page .scroll-progress,
  .toolkit-page .page-hero,
  .toolkit-page #toolkit-builder,
  .toolkit-page .no-print,
  .toolkit-page .back-to-top,
  .toolkit-page .accessibility-dock { display:none!important; }
  .toolkit-page main,
  .toolkit-result-section { padding:0!important; background:#fff!important; }
  .toolkit-result-section[hidden] { display:none!important; }
  .toolkit-document { max-width:none; margin:0; padding:0; box-shadow:none; border-radius:0; }
  .toolkit-document-header { grid-template-columns:145px 1fr; }
  .toolkit-document-header h1 { font-size:28pt; }
  .toolkit-summary-grid { grid-template-columns:repeat(3,1fr); }
  .toolkit-print-section { break-before:page; border:0; }
  .toolkit-print-section.first-print-section { break-before:auto; }
  .practice-question,.star-sheet,.toolkit-checklist li,.print-section-heading { break-inside:avoid; }
  .write-lines { gap:13px; }
  .toolkit-document-footer { break-before:auto; }
  a[href]::after { content:none!important; }
}


/* Interview toolkit V2.3: guided research flow, accessible themes and browser-only PDF output. */
.toolkit-page {
  --toolkit-accent-soft: #fff1e5;
  --toolkit-info-bg: #edf4ef;
  --toolkit-info-border: #789184;
  --toolkit-control-bg: #ffffff;
  --toolkit-control-text: #18251f;
  --toolkit-placeholder: #68766f;
  --toolkit-error: #922f24;
}

.toolkit-page .toolkit-hero {
  background:
    radial-gradient(circle at 78% 28%, rgba(232,139,82,.2), transparent 31%),
    linear-gradient(135deg, #fbf5e9, #e4eee7);
  color: #18251f;
}

.toolkit-page .toolkit-hero .lead,
.toolkit-page .toolkit-hero .privacy-inline {
  color: #35453e;
}

.toolkit-page .privacy-inline {
  background: rgba(255,255,255,.84);
  border: 1px solid rgba(24,37,31,.1);
  border-left: 4px solid var(--terracotta);
}

.toolkit-page #toolkit-builder {
  scroll-margin-top: 100px;
}

.toolkit-progress-copy {
  display: grid;
  gap: 1px;
}

.toolkit-progress-copy [data-toolkit-progress-phase] {
  color: #f0bd86;
  font-size: .72rem;
  font-weight: 950;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.toolkit-progress-copy [data-toolkit-progress-text] {
  color: #dce6e0;
}

.toolkit-step {
  min-height: 480px;
  color: var(--ink);
}

.toolkit-step legend,
.toolkit-step label,
.toolkit-step strong,
.toolkit-side-card,
.toolkit-result-actions {
  color: var(--ink);
}

.choice-card > span {
  color: var(--ink);
  background: var(--surface-alt);
}

.choice-card:has(input:checked) > span {
  color: var(--ink);
  border-color: var(--terracotta);
  background: var(--toolkit-accent-soft);
  box-shadow: 0 0 0 3px rgba(167,70,39,.13);
}

.choice-card:has(input:checked) strong,
.choice-card:has(input:checked) small {
  color: inherit;
}

.form-grid input,
.notes-field textarea,
.stacked-fields input,
.stacked-fields textarea,
.large-answer-field textarea,
.private-email-control input {
  width: 100%;
  border: 1px solid var(--line);
  color: var(--toolkit-control-text);
  background: var(--toolkit-control-bg);
  caret-color: var(--terracotta);
}

.form-grid input::placeholder,
.notes-field textarea::placeholder,
.stacked-fields input::placeholder,
.stacked-fields textarea::placeholder,
.large-answer-field textarea::placeholder,
.private-email-control input::placeholder {
  color: var(--toolkit-placeholder);
  opacity: 1;
}

.stacked-fields {
  display: grid;
  gap: 18px;
}

.stacked-fields label,
.large-answer-field {
  display: grid;
  gap: 8px;
  color: var(--ink);
  font-weight: 850;
}

.stacked-fields input,
.stacked-fields textarea,
.large-answer-field textarea {
  padding: 14px 15px;
  border-radius: 13px;
  line-height: 1.55;
  resize: vertical;
}

.stacked-fields input:focus,
.stacked-fields textarea:focus,
.large-answer-field textarea:focus,
.private-email-control input:focus {
  outline: 3px solid rgba(31,111,178,.25);
  border-color: #1f6fb2;
}

.large-answer-field textarea {
  min-height: 230px;
}

.research-action,
.research-tip,
.privacy-mini {
  margin-top: 20px;
  border-radius: 16px;
}

.research-action {
  padding: 20px;
  border: 1px solid var(--toolkit-info-border);
  background: var(--toolkit-info-bg);
}

.research-action[hidden] {
  display: none;
}

.research-action strong {
  display: block;
  margin-bottom: 4px;
}

.research-action p {
  margin: 0 0 16px;
  color: var(--ink-soft);
}

.research-tip {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  padding: 14px 16px;
  border-left: 4px solid var(--wheat);
  background: var(--surface-alt);
  color: var(--ink-soft);
}

.research-tip strong {
  color: var(--ink);
}

.privacy-mini {
  padding: 12px 14px;
  border: 1px solid var(--line);
  background: var(--surface-alt);
  color: var(--ink-soft);
  font-size: .9rem;
}

.field-error {
  color: var(--toolkit-error);
}

.private-email-control {
  margin: -10px 0 26px;
  padding: 16px 18px;
  display: grid;
  grid-template-columns: minmax(240px, 440px) minmax(220px, 1fr);
  gap: 10px 18px;
  align-items: end;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--surface);
}

.private-email-control label {
  display: grid;
  gap: 7px;
  color: var(--ink);
  font-weight: 850;
}

.private-email-control input {
  padding: 11px 13px;
  border-radius: 11px;
}

.private-email-control small {
  color: var(--ink-soft);
}

.pdf-status {
  margin: -10px 0 24px;
  padding: 13px 16px;
  border: 1px solid var(--toolkit-info-border);
  border-radius: 14px;
  color: var(--ink);
  background: var(--toolkit-info-bg);
  font-weight: 750;
}

.pdf-status.is-error {
  border-color: #b76357;
  color: var(--toolkit-error);
  background: #fff1ee;
}

.toolkit-result-actions .button:disabled {
  opacity: .58;
  cursor: progress;
}

.toolkit-answer-block {
  margin-top: 18px;
  padding: 18px 20px;
  border: 1px solid #cbd5cf;
  border-radius: 14px;
  background: #fbfaf6;
  break-inside: avoid;
  page-break-inside: avoid;
}

.toolkit-answer-block h3 {
  margin: 0 0 8px;
  color: #263c33;
  font-size: 1.05rem;
}

.toolkit-answer-copy {
  overflow-wrap: anywhere;
  color: #25362e;
  line-height: 1.58;
}

.toolkit-answer-block.is-empty {
  border-style: dashed;
  background: #f5f2e9;
}

.toolkit-answer-block.is-empty .toolkit-answer-copy {
  color: #58675f;
}

.evidence-card {
  margin-top: 15px;
  padding: 18px;
  display: grid;
  grid-template-columns: 44px minmax(0,1fr);
  gap: 15px;
  border: 1px solid #cbd5cf;
  border-radius: 15px;
  background: #fbfaf6;
  break-inside: avoid;
  page-break-inside: avoid;
}

.evidence-card-number {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #a74627;
  font-weight: 950;
}

.evidence-card h3 {
  margin: 0 0 6px;
  color: #263c33;
}

.evidence-card p {
  margin: 0;
  color: #25362e;
  line-height: 1.58;
}

.evidence-card.is-empty {
  border-style: dashed;
  background: #f5f2e9;
}

.star-reminder {
  margin-top: 18px;
  padding: 15px 17px;
  display: grid;
  gap: 4px;
  border-left: 5px solid #d8ca91;
  background: #f7f4ec;
}

.star-reminder strong {
  color: #263c33;
}

.star-reminder span {
  color: #526159;
}

.subsection-title {
  margin-top: 28px !important;
}

.practice-question-list {
  margin: 12px 0 0;
  padding-left: 24px;
  display: grid;
  gap: 10px;
}

.practice-question-list li {
  padding-left: 4px;
}

.toolkit-document .user-note {
  color: #25362e;
}

.pdf-export-mode {
  width: 190mm !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 8mm !important;
  color: #17251f !important;
  background: #fff !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-size: 11pt !important;
}

.pdf-export-mode .toolkit-document-header h1 {
  font-size: 28pt !important;
}

.pdf-export-mode .toolkit-print-section {
  break-before: page;
  page-break-before: always;
  border-bottom: 0;
}

.pdf-export-mode .toolkit-print-section.first-print-section {
  break-before: auto;
  page-break-before: auto;
}

.pdf-export-mode .toolkit-answer-block,
.pdf-export-mode .evidence-card,
.pdf-export-mode .toolkit-checklist li,
.pdf-export-mode .print-section-heading,
.pdf-export-mode .star-reminder {
  break-inside: avoid;
  page-break-inside: avoid;
}

[data-theme="dark"] .toolkit-page {
  --toolkit-accent-soft: #402d25;
  --toolkit-info-bg: #22362c;
  --toolkit-info-border: #6f8d7d;
  --toolkit-control-bg: #101914;
  --toolkit-control-text: #f4f2e8;
  --toolkit-placeholder: #aebcb4;
  --toolkit-error: #ffb0a6;
}

[data-theme="dark"] .toolkit-page .toolkit-hero {
  color: #f4f2e8;
  background:
    radial-gradient(circle at 78% 28%, rgba(232,139,82,.18), transparent 31%),
    linear-gradient(135deg, #14221c, #1d3027);
}

[data-theme="dark"] .toolkit-page .toolkit-hero .lead,
[data-theme="dark"] .toolkit-page .toolkit-hero .privacy-inline {
  color: #d3ddd7;
}

[data-theme="dark"] .toolkit-page .privacy-inline {
  background: rgba(255,255,255,.075);
  border-color: rgba(255,255,255,.13);
}

[data-theme="dark"] .toolkit-page .choice-card:has(input:checked) > span {
  color: #fffaf0;
  background: var(--toolkit-accent-soft);
}

[data-theme="dark"] .toolkit-page input,
[data-theme="dark"] .toolkit-page textarea {
  color-scheme: dark;
}

[data-theme="dark"] .toolkit-page .pdf-status.is-error {
  color: #ffd0ca;
  background: #40241f;
}

@media (max-width: 720px) {
  .toolkit-step {
    min-height: 0;
  }

  .research-tip,
  .private-email-control {
    grid-template-columns: 1fr;
  }

  .large-answer-field textarea {
    min-height: 190px;
  }

  .toolkit-result-actions .button-row {
    width: 100%;
  }

  .toolkit-result-actions .button-row .button {
    flex: 1 1 170px;
  }
}

@media print {
  .private-email-control,
  .pdf-status {
    display: none !important;
  }

  .toolkit-answer-block,
  .evidence-card,
  .star-reminder {
    box-shadow: none !important;
  }
}


/* Explicit toolkit theme contrast overrides. */
html[data-theme="light"] body.toolkit-page .toolkit-hero,
html[data-theme="light"] body.toolkit-page .toolkit-hero h1 {
  color: #18251f !important;
}

html[data-theme="dark"] body.toolkit-page .toolkit-hero,
html[data-theme="dark"] body.toolkit-page .toolkit-hero h1 {
  color: #f4f2e8 !important;
}

html[data-theme="dark"] body.toolkit-page .toolkit-hero .lead,
html[data-theme="dark"] body.toolkit-page .toolkit-hero .privacy-inline,
html[data-theme="dark"] body.toolkit-page .toolkit-hero .privacy-inline strong {
  color: #dce5df !important;
}

html[data-theme="light"] body.toolkit-page .toolkit-hero .lead,
html[data-theme="light"] body.toolkit-page .toolkit-hero .privacy-inline,
html[data-theme="light"] body.toolkit-page .toolkit-hero .privacy-inline strong {
  color: #35453e !important;
}


/* V2.4 — clear tool navigation, readable pathway buttons and reliable PDF capture. */
.v2-pathway-preview .product-stage:not(.live) .button-secondary {
  color:#18251f;
  border-color:#fffaf0;
  background:#fffaf0;
  box-shadow:0 10px 28px rgba(0,0,0,.13);
}
.v2-pathway-preview .product-stage:not(.live) .button-secondary:hover,
.v2-pathway-preview .product-stage:not(.live) .button-secondary:focus-visible {
  color:#18251f;
  border-color:#f0ddb8;
  background:#f0ddb8;
}
.v2-pathway-preview .product-stage.live .button-primary {
  color:#172019;
}
.toolkit-document.pdf-export-mode {
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}
[data-theme="dark"] .v2-pathway-preview .product-stage:not(.live) .button-secondary {
  color:#18251f;
  border-color:#fffaf0;
  background:#fffaf0;
}


/* V2.5 — employability-first career hub, creator proof and private Career Direction Quiz. */
.product-journey.four-tools { grid-template-columns:repeat(2,minmax(0,1fr)); }
.product-journey.four-tools .product-stage { min-height:390px; }
.product-journey.four-tools .product-stage h4 { font-size:clamp(1.8rem,3vw,2.8rem); }
.product-journey.four-tools .product-actions .button { padding:.72rem 1rem; }

.career-hub-hero { background:radial-gradient(circle at 86% 18%,rgba(233,138,82,.18),transparent 28%),linear-gradient(135deg,var(--paper),var(--surface-alt)); }
.career-hub-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(360px,.82fr); gap:clamp(34px,6vw,82px); align-items:center; }
.creator-proof-card { overflow:hidden; display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); border:1px solid var(--line); border-radius:30px; background:var(--surface); box-shadow:var(--shadow); }
.creator-proof-card img { width:100%; height:100%; min-height:430px; object-fit:cover; object-position:68% 48%; }
.creator-proof-card > div { min-width:0; padding:clamp(22px,3vw,34px); display:flex; flex-direction:column; justify-content:center; }
.creator-proof-card span { color:var(--terracotta); font-size:.76rem; font-weight:950; letter-spacing:.09em; text-transform:uppercase; }
.creator-proof-card h2 { margin:12px 0; font-size:clamp(1.55rem,2.25vw,2.45rem); line-height:1.02; overflow-wrap:anywhere; }
.creator-proof-card p { color:var(--ink-soft); }
.creator-proof-card a { margin-top:10px; font-weight:900; }
.home-creator-proof { background:var(--surface-alt); }
.creator-proof-strip { display:grid; grid-template-columns:110px minmax(0,1fr) auto; gap:26px; align-items:center; }
.creator-proof-strip img { width:110px; height:110px; object-fit:cover; object-position:center 20%; border-radius:24px; border:1px solid var(--line); }
.creator-proof-strip h2 { margin:.15em 0 .25em; font-size:clamp(1.8rem,3.4vw,3.2rem); }
.creator-proof-strip p { margin:0; color:var(--ink-soft); }

/* Social preview labels are separate from images so names/artwork remain unobstructed. */
.social-preview-grid a { min-height:330px; display:grid; grid-template-rows:minmax(0,1fr) auto; }
.social-preview-grid img { height:270px; min-height:0; }
.social-preview-grid span { position:static; inset:auto; padding:13px 15px; border-radius:0; background:#14251d; }
.social-preview-grid a:nth-child(3) img { object-fit:contain; object-position:center; padding:18px; opacity:1; background:#fffaf0; }

.career-quiz-hero { color:#fffaf0; background:radial-gradient(circle at 78% 22%,rgba(233,138,82,.2),transparent 26%),linear-gradient(135deg,#172b22,#2e4b3e); }
.career-quiz-hero h1 { color:#fffaf0; }
.career-quiz-hero .lead { color:#d9e5de; }
.career-quiz-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.55fr); gap:clamp(36px,7vw,90px); align-items:center; }
.quiz-proof-row { margin:26px 0 4px; display:flex; flex-wrap:wrap; gap:8px; }
.quiz-proof-row span { padding:8px 12px; border:1px solid rgba(255,255,255,.22); border-radius:999px; color:#f6ead9; background:rgba(255,255,255,.07); font-size:.84rem; font-weight:850; }
.career-quiz-note { padding:28px; border:1px solid rgba(255,255,255,.2); border-radius:26px; background:rgba(255,255,255,.08); }
.career-quiz-note strong { display:block; font-size:1.25rem; }
.career-quiz-note p { color:#d8e4dd; }
.career-quiz-note a { color:#f0bd86; font-weight:900; }
.career-quiz-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(250px,330px); gap:clamp(28px,6vw,72px); align-items:start; }
.career-quiz-card { overflow:hidden; border:1px solid var(--line); border-radius:30px; background:var(--surface); box-shadow:0 24px 65px rgba(24,37,31,.1); }
.career-quiz-progress { padding:22px 26px; color:#fffaf0; background:#263c33; }
.career-quiz-progress > div:first-child { display:flex; justify-content:space-between; gap:20px; align-items:center; }
.career-quiz-progress span { color:#f0bd86; font-size:.8rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.career-progress-track { height:7px; margin-top:14px; overflow:hidden; border-radius:999px; background:rgba(255,255,255,.16); }
.career-progress-track span { display:block; width:14.285%; height:100%; border-radius:inherit; background:#f0bd86; transition:width .22s ease; }
.career-question { min-height:520px; padding:clamp(24px,5vw,48px); }
.career-question:not(.is-active) { display:none; }
.career-question fieldset { min-width:0; margin:0; padding:0; border:0; }
.career-question legend { max-width:780px; padding:0; color:var(--ink); font-family:var(--font-display); font-size:clamp(1.9rem,3.5vw,3.1rem); font-weight:900; letter-spacing:-.04em; line-height:1; }
.career-subject-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
.career-subject-grid label { cursor:pointer; }
.career-subject-grid input { position:absolute; opacity:0; pointer-events:none; }
.career-subject-grid span { min-height:64px; padding:13px 15px; display:flex; align-items:center; border:2px solid var(--line); border-radius:15px; color:var(--ink); background:var(--surface-alt); font-weight:850; }
.career-subject-grid label:has(input:checked) span { border-color:var(--terracotta); background:#fff1e5; box-shadow:0 0 0 3px rgba(167,70,39,.12); }
.career-subject-grid label:has(input:focus-visible) span { outline:3px solid #1f6fb2; outline-offset:3px; }
.is-limit-disabled { opacity:.46; }
.career-quiz-actions { padding:0 clamp(24px,5vw,48px) clamp(24px,5vw,42px); display:flex; justify-content:space-between; gap:12px; }
.career-quiz-actions .button[hidden] { display:none; }
.career-quiz-actions .button:disabled { opacity:.45; cursor:not-allowed; }
.career-quiz-side { position:sticky; top:110px; display:grid; gap:14px; }
.career-quiz-side > div { padding:22px; border:1px solid var(--line); border-radius:22px; background:var(--surface-alt); }
.career-quiz-side strong { font-size:1.1rem; }
.career-quiz-side ul { padding-left:20px; }
.career-quiz-side li+li { margin-top:7px; }
.career-results-section { color:#17251f; background:#e9eee8; }
.career-results-head { margin-bottom:26px; display:flex; justify-content:space-between; gap:30px; align-items:end; }
.career-results-head h2 { margin:.1em 0; color:#17251f; }
.career-results-head p { color:#526159; }
.career-results-summary { margin-bottom:20px; padding:17px 20px; display:grid; gap:4px; border-left:5px solid #a74627; border-radius:0 14px 14px 0; background:#fffaf0; }
.career-role-results { display:grid; gap:18px; }
.career-role-card { position:relative; overflow:hidden; padding:clamp(24px,4vw,40px); display:grid; grid-template-columns:58px minmax(0,.9fr) minmax(320px,1.1fr); gap:24px; border:1px solid #cbd5cf; border-radius:26px; color:#17251f; background:#fff; box-shadow:0 18px 48px rgba(24,37,31,.08); break-inside:avoid; }
.career-role-rank { width:52px; height:52px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#263c33; font-weight:950; }
.career-role-main > span { color:#a74627; font-size:.75rem; font-weight:950; letter-spacing:.07em; text-transform:uppercase; }
.career-role-main h2 { margin:8px 0 12px; color:#17251f; font-size:clamp(2rem,4vw,3.7rem); }
.career-role-main p { color:#526159; }
.career-match-reasons { margin-top:20px; padding:15px 16px; border-radius:15px; background:#f7f4ec; }
.career-match-reasons ul { margin:8px 0 0; padding-left:20px; }
.career-route-panel { padding:20px; border-radius:18px; background:#edf4ef; }
.career-route-panel h3 { margin:0 0 14px; color:#263c33; }
.career-route-panel dl { margin:0 0 18px; display:grid; gap:11px; }
.career-route-panel dl div { padding-bottom:10px; border-bottom:1px solid #cbd5cf; }
.career-route-panel dt { color:#526159; font-size:.74rem; font-weight:950; letter-spacing:.06em; text-transform:uppercase; }
.career-route-panel dd { margin:3px 0 0; }
.career-route-panel .button { align-self:flex-start; }
.career-official-links { margin-top:52px; padding:clamp(26px,5vw,48px); border-radius:28px; background:#263c33; }
.career-official-links h2 { color:#fffaf0; }
.career-official-links > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.career-official-links a { padding:18px; display:grid; gap:5px; color:#fffaf0; text-decoration:none; border:1px solid rgba(255,255,255,.18); border-radius:16px; background:rgba(255,255,255,.06); }
.career-official-links a:hover { border-color:#f0bd86; }
.career-official-links span { color:#cbd9d1; }
[data-theme="dark"] .career-hub-hero { background:radial-gradient(circle at 86% 18%,rgba(233,138,82,.14),transparent 28%),linear-gradient(135deg,#101814,#1d3027); }
[data-theme="dark"] .career-subject-grid label:has(input:checked) span { color:#fffaf0; background:#402d25; }
[data-theme="dark"] .home-creator-proof { background:#14221c; }

@media (max-width:1280px) {
  .career-hub-hero-grid { grid-template-columns:1fr; }
  .creator-proof-card { max-width:900px; grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr); }
}
@media (max-width:1060px) {
  .career-quiz-hero-grid,.career-quiz-layout { grid-template-columns:1fr; }
  .creator-proof-card { grid-template-columns:1fr; max-width:none; }
  .career-quiz-side { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .career-role-card { grid-template-columns:52px 1fr; }
  .career-route-panel { grid-column:1/-1; }
  .creator-proof-strip { grid-template-columns:90px 1fr; }
  .creator-proof-strip img { width:90px; height:90px; }
  .creator-proof-strip .button { grid-column:1/-1; justify-self:start; }
}
@media (max-width:720px) {
  .product-journey.four-tools,.career-subject-grid,.career-official-links > div,.career-quiz-side { grid-template-columns:1fr; }
  .creator-proof-card { grid-template-columns:1fr; }
  .creator-proof-card img { min-height:300px; max-height:380px; aspect-ratio:16/10; object-position:68% 38%; }
  .creator-proof-card > div { padding:22px; }
  .creator-proof-card h2 { font-size:clamp(1.9rem,8vw,2.6rem); overflow-wrap:normal; }
  .creator-proof-strip { grid-template-columns:72px 1fr; gap:16px; }
  .creator-proof-strip img { width:72px; height:72px; border-radius:18px; }
  .career-question { min-height:0; }
  .career-quiz-progress > div:first-child { align-items:flex-start; flex-direction:column; gap:3px; }
  .career-quiz-actions { flex-wrap:wrap; }
  .career-quiz-actions .button { flex:1 1 145px; }
  .career-results-head { align-items:flex-start; flex-direction:column; }
  .career-role-card { grid-template-columns:1fr; padding:22px; }
  .career-route-panel { grid-column:auto; }
  .social-preview-grid a { min-height:0; }
  .social-preview-grid img { height:230px; }
}
@media print {
  .career-quiz-page .site-header,.career-quiz-page .page-hero,.career-quiz-page #career-quiz-builder,.career-quiz-page .career-results-head .button-row,.career-quiz-page .surface-alt,.career-quiz-page .site-footer,.career-quiz-page .accessibility-dock { display:none!important; }
  .career-results-section { padding:0!important; background:#fff!important; }
  .career-role-card { box-shadow:none; break-inside:avoid; page-break-inside:avoid; }
  .career-official-links { color:#17251f; background:#fff; border:1px solid #cbd5cf; }
  .career-official-links h2,.career-official-links a { color:#17251f; }
  .career-official-links a { background:#fff; border-color:#cbd5cf; }
  .career-official-links span { color:#526159; }
}

/* Explicit Career Quiz option contrast in both themes. */
html[data-theme="light"] body.career-quiz-page .choice-card > span,
html[data-theme="light"] body.career-quiz-page .career-subject-grid span {
  color:#18251f;
  background:#f2ede2;
}
html[data-theme="dark"] body.career-quiz-page .choice-card > span,
html[data-theme="dark"] body.career-quiz-page .career-subject-grid span {
  color:#f4f2e8;
  background:#1e2d25;
}
html[data-theme="dark"] body.career-quiz-page .choice-card small {
  color:#c9d0ca;
}
html[data-theme="dark"] body.career-quiz-page .choice-card:has(input:checked) > span,
html[data-theme="dark"] body.career-quiz-page .career-subject-grid label:has(input:checked) span {
  color:#fffaf0;
  background:#402d25;
}


/* V2.6.4 — richer founder story on the About page. */
.founder-story-section {
  padding-top: 78px;
  background: var(--surface-alt);
}
.founder-story-grid {
  display: grid;
  grid-template-columns: minmax(320px, .78fr) minmax(0, 1.22fr);
  gap: clamp(34px, 6vw, 82px);
  align-items: center;
}
.founder-story-image {
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 34px;
  background: var(--surface);
  box-shadow: var(--shadow);
}
.founder-story-image img {
  width: 100%;
  height: clamp(460px, 56vw, 680px);
  display: block;
  object-fit: cover;
  object-position: 68% 44%;
}
.founder-story-image figcaption {
  padding: 15px 18px;
  color: var(--ink-soft);
  background: var(--surface);
  font-size: .88rem;
  font-weight: 750;
}
.founder-story-copy h2 {
  max-width: 800px;
  margin: .2em 0 .55em;
  font-size: clamp(2.25rem, 4.6vw, 4.8rem);
}
.founder-story-copy p {
  color: var(--ink-soft);
  font-size: 1.06rem;
}
.founder-story-copy blockquote {
  margin: 30px 0 0;
  padding: 22px 26px;
  border-left: 5px solid var(--terracotta);
  border-radius: 0 18px 18px 0;
  color: var(--ink);
  background: var(--surface);
  font-size: clamp(1.1rem, 2vw, 1.4rem);
  font-weight: 850;
  line-height: 1.5;
}
[data-theme="dark"] .founder-story-section {
  background: #14221c;
}
@media (max-width: 900px) {
  .founder-story-grid {
    grid-template-columns: 1fr;
  }
  .founder-story-image {
    max-width: 720px;
  }
  .founder-story-image img {
    height: min(70vw, 560px);
  }
}
@media (max-width: 560px) {
  .founder-story-section {
    padding-top: 52px;
  }
  .founder-story-image img {
    height: 390px;
    object-position: 66% 42%;
  }
  .founder-story-copy h2 {
    font-size: clamp(2rem, 11vw, 3.2rem);
  }
  .founder-story-copy blockquote {
    padding: 18px 20px;
  }
}


/* V2.7 — public-sector navigation, licensing, programme clarity and social layout. */
@media (min-width:1181px) {
  .primary-nav { gap:2px; }
  .primary-nav a { padding:9px 10px; font-size:.86rem; }
}
@media (max-width:1180px) {
  .primary-nav { position:fixed; inset:84px 0 0; z-index:1200; padding:22px; display:none; align-content:center; justify-items:stretch; overflow-y:auto; background:var(--paper); }
  .primary-nav.is-open { display:grid; grid-template-rows:repeat(9,minmax(44px,auto)); gap:6px; }
  .primary-nav a { display:grid; place-items:center; width:min(100%,560px); min-height:44px; margin-inline:auto; padding:9px 14px; font-size:1.08rem; text-align:center; border-radius:16px; }
  .menu-button { display:inline-grid; place-items:center; }
  .nav-actions { justify-self:end; }
  body.menu-open .site-header,body.menu-open .site-header.is-scrolled { background:var(--paper); backdrop-filter:none; }
}
@media (max-width:760px) { .primary-nav { inset:72px 0 0; } }

/* Keep Instagram copy and @thehwbco clear of the image grid at every width. */
.instagram-v2-grid > * { min-width:0; }
.instagram-v2-grid > div:first-child { position:relative; z-index:3; }
.instagram-v2 .social-preview-grid { position:relative; z-index:1; min-width:0; overflow:hidden; }
.instagram-v2 .social-preview-grid a { position:relative; min-width:0; min-height:0; display:grid; grid-template-rows:240px auto; overflow:hidden; }
.instagram-v2 .social-preview-grid img { display:block; width:100%; height:240px; min-height:0; object-fit:cover; opacity:1; }
.instagram-v2 .social-preview-grid span { position:static!important; inset:auto!important; display:block; min-width:0; padding:13px 15px; border-radius:0; color:#fffaf0; background:#14251d; white-space:normal; overflow-wrap:anywhere; }
.instagram-v2 .social-preview-grid a:nth-child(3) img { object-fit:contain; object-position:center; padding:18px; background:#fffaf0; }
@media (max-width:1240px) {
  .instagram-v2-grid { grid-template-columns:1fr; }
  .instagram-v2-grid > div:first-child { max-width:780px; }
}
@media (max-width:760px) {
  .instagram-v2 .social-preview-grid { grid-template-columns:1fr; }
  .instagram-v2 .social-preview-grid a { grid-template-rows:minmax(220px,58vw) auto; }
  .instagram-v2 .social-preview-grid img { height:100%; }
}

.personal-use-badge { max-width:760px; margin:22px 0 0; padding:14px 17px; display:grid; gap:2px; border:1px solid rgba(38,60,51,.18); border-radius:16px; background:var(--surface); }
.personal-use-badge strong { color:var(--sage-dark); font-size:1.02rem; }
.personal-use-badge span { color:var(--ink-soft); }
.organisational-use-section { background:var(--surface-alt); }
.organisational-use-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.55fr); gap:clamp(30px,6vw,74px); align-items:start; }
.organisational-use-grid h2 { margin:.15em 0 .45em; font-size:clamp(2.2rem,4.6vw,4.7rem); }
.licensing-summary-card { padding:26px; border:1px solid var(--line); border-radius:24px; background:var(--surface); box-shadow:0 18px 50px rgba(24,37,31,.08); }
.licensing-summary-card > strong { display:block; font-size:1.25rem; }
.licensing-summary-card ul { padding-left:20px; }
.licensing-summary-card li+li { margin-top:8px; }

body.licensing-dialog-open { overflow:hidden; }
.licensing-dialog { width:min(980px,calc(100% - 28px)); max-height:92dvh; padding:0; overflow:auto; border:0; border-radius:28px; color:var(--ink); background:var(--surface); box-shadow:0 32px 100px rgba(0,0,0,.38); }
.licensing-dialog::backdrop { background:rgba(12,25,19,.72); backdrop-filter:blur(5px); }
.licensing-dialog-shell { position:relative; padding:clamp(24px,5vw,52px); }
.licensing-dialog-close { position:absolute; top:16px; right:16px; z-index:2; width:44px; height:44px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; color:var(--ink); background:var(--surface-alt); font-size:1.6rem; }
.licensing-dialog h2,.licensing-form-panel h2 { margin:.1em 0 .4em; font-size:clamp(2rem,4.8vw,4.5rem); }
.licensing-choice-grid { margin-top:26px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.licensing-choice-grid article { padding:24px; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:22px; background:var(--surface-alt); }
.licensing-choice-grid article > span { color:var(--terracotta); font-size:.78rem; font-weight:950; text-transform:uppercase; letter-spacing:.08em; }
.licensing-choice-grid h3 { margin:35px 0 10px; font-size:1.6rem; }
.licensing-choice-grid .button { margin-top:auto; }
.licensing-form-panel[hidden] { display:none; }
.licensing-enquiry-form { margin-top:24px; }
.licensing-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.licensing-form-grid label,.licensing-notes { display:grid; gap:7px; color:var(--ink); font-weight:850; }
.licensing-form-grid input,.licensing-form-grid select,.licensing-notes textarea { width:100%; padding:13px 14px; border:1px solid var(--line); border-radius:12px; color:var(--ink); background:var(--surface); font:inherit; }
.licensing-form-grid input:focus,.licensing-form-grid select:focus,.licensing-notes textarea:focus { outline:3px solid rgba(31,111,178,.24); border-color:#1f6fb2; }
.licensing-tools-fieldset { margin:22px 0; padding:0; border:0; }
.licensing-tools-fieldset legend { margin-bottom:10px; font-weight:900; }
.licensing-tools-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.licensing-tools-grid label { padding:12px 14px; display:flex; gap:9px; align-items:flex-start; border:1px solid var(--line); border-radius:13px; background:var(--surface-alt); }
.licensing-notes { margin-top:18px; }
.licensing-confirm { margin:18px 0; display:flex; gap:10px; align-items:flex-start; }
.licensing-confirm input { margin-top:.35em; }
.licensing-status { margin-top:16px; padding:13px 15px; border:1px solid #789184; border-radius:13px; background:#edf4ef; font-weight:750; }
.licensing-status.is-error { color:#922f24; border-color:#b76357; background:#fff1ee; }
.licensing-page-hero { background:radial-gradient(circle at 84% 20%,rgba(233,138,82,.18),transparent 30%),linear-gradient(135deg,var(--paper),var(--surface-alt)); }
.licensing-page-form-card { padding:clamp(24px,5vw,54px); border:1px solid var(--line); border-radius:28px; background:var(--surface); box-shadow:var(--shadow); }

.programme-hero { background:radial-gradient(circle at 85% 20%,rgba(233,138,82,.18),transparent 28%),linear-gradient(135deg,var(--paper),var(--surface-alt)); }
.programme-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.48fr); gap:clamp(34px,6vw,80px); align-items:center; }
.programme-hero-aside { padding:26px; border:1px solid var(--line); border-radius:24px; background:var(--surface); }
.programme-hero-aside strong { display:block; font-size:1.25rem; }
.programme-offer-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.programme-offer-card { min-width:0; padding:28px; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:26px; background:var(--surface); box-shadow:0 16px 46px rgba(24,37,31,.07); }
.programme-offer-card h3 { margin:50px 0 10px; font-size:clamp(1.7rem,3vw,2.7rem); }
.programme-offer-card p { color:var(--ink-soft); }
.programme-offer-card ul { padding-left:20px; }
.programme-offer-card li+li { margin-top:7px; }
.programme-offer-card > .button,.programme-offer-card > .button-row { margin-top:auto; }
.support-needed-section { color:#fffaf0; background:linear-gradient(135deg,#1c3028,#345447); }
.support-needed-section h2 { color:#fffaf0; }
.support-needed-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }
.support-needed-grid article { padding:24px; border:1px solid rgba(255,255,255,.18); border-radius:20px; background:rgba(255,255,255,.07); }
.support-needed-grid article > span { color:#f0bd86; font-weight:950; }
.support-needed-grid h3 { margin:35px 0 8px; color:#fffaf0; font-size:1.45rem; }
.support-needed-grid p { color:#d6e1db; }
.programme-support-cta { margin-top:28px; padding:26px; display:flex; justify-content:space-between; gap:30px; align-items:center; border-radius:22px; color:var(--ink); background:#fffaf0; }
.programme-support-cta h3 { margin:0 0 5px; color:#17251f; font-size:1.6rem; }
.programme-support-cta p { margin:0; color:#526159; }

[data-theme="dark"] .personal-use-badge,[data-theme="dark"] .licensing-summary-card,[data-theme="dark"] .programme-hero-aside,[data-theme="dark"] .licensing-page-form-card { background:var(--surface); }
[data-theme="dark"] .licensing-form-grid input,[data-theme="dark"] .licensing-form-grid select,[data-theme="dark"] .licensing-notes textarea { color-scheme:dark; }
@media (max-width:900px) {
  .organisational-use-grid,.programme-hero-grid,.programme-offer-grid { grid-template-columns:1fr; }
  .support-needed-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .programme-support-cta { align-items:flex-start; flex-direction:column; }
}

/* V3.2 — simplified career page and consistent four-app row. */
.career-pathway-hero { padding:clamp(54px,8vw,100px) 0; background:linear-gradient(135deg,var(--paper),var(--surface-alt)); }
.career-pathway-intro { display:block; }
.career-pathway-copy h1 { font-size:clamp(3rem,6vw,6.5rem); }
.career-pathway-copy { max-width:1050px; }
.career-founder-section { background:var(--surface-alt); }
.career-founder-card { overflow:hidden; display:grid; grid-template-columns:minmax(230px,.8fr) minmax(0,1.2fr); border:1px solid var(--line); border-radius:32px; background:var(--surface); box-shadow:var(--shadow); }
.career-founder-card img { width:100%; height:100%; min-height:390px; object-fit:cover; object-position:68% 35%; }
.career-founder-card > div { padding:clamp(24px,4vw,42px); display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.career-founder-card h2 { margin:.1em 0 .45em; font-size:clamp(1.75rem,3vw,3rem); }
.career-founder-card p:not(.eyebrow) { margin:0 0 24px; color:var(--ink-soft); }
.career-founder-actions { display:flex; flex-wrap:wrap; gap:12px; }
.career-apps-section { background:var(--paper); }
.career-apps-heading { margin-bottom:28px; }
.career-apps-heading h2 { margin:.1em 0 0; }
.career-app-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.career-app-tile { min-width:0; min-height:430px; padding:26px; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:28px; color:var(--ink); background:var(--surface); box-shadow:0 16px 44px rgba(24,37,31,.08); }
.career-app-number { color:var(--terracotta); font-size:2.2rem; font-weight:950; line-height:1; }
.career-app-status { width:max-content; max-width:100%; margin:20px 0 18px; padding:6px 10px; border-radius:999px; color:var(--ink); background:var(--surface-alt); font-size:.72rem; font-weight:900; text-transform:uppercase; letter-spacing:.06em; }
.career-app-tile h3 { margin:0 0 14px; font-size:clamp(1.5rem,2vw,2.15rem); }
.career-app-tile p { margin:0; color:var(--ink-soft); }
.career-app-actions { width:100%; margin-top:auto; padding-top:24px; display:grid; grid-template-columns:1fr; gap:10px; }
.career-app-actions .button { width:100%; min-height:44px; padding:10px 16px; justify-content:center; text-align:center; }
.career-app-note { max-width:850px; margin:24px 0 0; color:var(--ink-soft); }
.updates-feed-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.update-card h2 { margin:32px 0 12px; font-size:clamp(1.45rem,2.4vw,2rem); }
[data-theme="dark"] .career-pathway-hero { background:linear-gradient(135deg,var(--paper),var(--surface-alt)); }
[data-theme="dark"] .career-founder-card,
[data-theme="dark"] .career-app-tile { color:var(--ink); background:var(--surface); border-color:var(--line); box-shadow:var(--shadow); }
[data-theme="dark"] .career-founder-card h2,
[data-theme="dark"] .career-app-tile h3,
[data-theme="dark"] .career-app-status { color:var(--ink); }
[data-theme="dark"] .career-app-status { background:var(--surface-alt); }

@media (max-width:1100px) {
  .career-app-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:720px) {
  .career-founder-card { grid-template-columns:1fr; }
  .career-founder-card img { min-height:280px; max-height:380px; }
  .career-app-grid,.updates-feed-grid { grid-template-columns:1fr; }
  .career-app-tile { min-height:360px; }
}
@media (max-width:650px) {
  .licensing-choice-grid,.licensing-form-grid,.licensing-tools-grid,.support-needed-grid { grid-template-columns:1fr; }
  .licensing-dialog { width:min(100% - 14px,980px); max-height:96dvh; border-radius:20px; }
  .licensing-dialog-shell { padding:56px 18px 24px; }
}


/* V2.8: homepage overflow fixes retained on the restored stylesheet. */
.v2-proof-strip,
.v2-proof-strip span,
.grant-v2-grid,
.grant-v2-card {
  min-width: 0;
}

.v2-proof-strip strong,
.v2-proof-strip small {
  overflow-wrap: anywhere;
}

.grant-v2-card {
  overflow: hidden;
  container-type: inline-size;
}

.grant-v2-card > strong {
  max-width: 100%;
  font-size: clamp(3.25rem, 17cqw, 5.65rem);
  line-height: .94;
  letter-spacing: -.055em;
  white-space: nowrap;
}

.instagram-v2-grid {
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 34px;
  align-items: start;
}

.instagram-v2-grid > div:first-child {
  width: min(100%, 820px);
  max-width: 820px;
  position: relative;
  z-index: 2;
}

.instagram-v2 h2 {
  max-width: 100%;
  margin: .08em 0 .22em;
  font-size: clamp(2.7rem, 5vw, 5.2rem);
  line-height: .95;
  overflow-wrap: anywhere;
}

.instagram-v2 .social-preview-grid {
  width: 100%;
  position: relative;
  z-index: 1;
}

/* V2.9: restore strong contrast and rebalance the homepage splash. */
.section-sage {
  color: #fffaf0;
  background: linear-gradient(135deg, #263c33, #375346);
}

.section-sage .eyebrow,
.section-sage .muted,
.section-sage .section-heading > p,
.section-sage .path-step p {
  color: #d9e1dc;
}

.section-sage .section-heading h2,
.section-sage .path-step h3 {
  color: #fffaf0;
}

.section-sage .path-step {
  color: #fffaf0;
  background: rgba(255,255,255,.075);
  border-color: rgba(255,255,255,.19);
}

.section-sage .path-step::before {
  color: #f0d796;
}

.v2-hero > .container,
.v2-hero .v2-hero-grid {
  width: min(1450px, calc(100% - 48px));
  max-width: none;
}

.v2-hero-grid {
  grid-template-columns: minmax(0, 1.03fr) minmax(500px, .97fr);
  gap: clamp(42px, 5vw, 76px);
  padding-block: clamp(70px, 8vw, 108px);
}

.v2-hero-copy {
  min-width: 0;
}

.v2-hero-copy h1.v29-hero-title {
  max-width: 810px;
  margin: .18em 0 .3em;
  font-size: clamp(3.7rem, 6.2vw, 6.45rem);
  line-height: .9;
  letter-spacing: -.067em;
}

.v29-hero-title > span {
  display: block;
}

.v2-hero-copy .lead {
  max-width: 700px;
}

.v2-hero-map {
  width: 100%;
  max-width: 650px;
  min-height: 570px;
  justify-self: end;
}

.map-core {
  inset: 28.5%;
  gap: 7px;
}

.map-core img {
  width: 92px;
}

.map-core strong {
  max-width: 120px;
  font-size: .76rem;
  line-height: 1.15;
}

.map-label {
  padding: 8px 12px;
  font-size: .78rem;
}

@media (max-width: 1180px) {
  .v2-hero > .container,
  .v2-hero .v2-hero-grid {
    width: min(var(--max), calc(100% - 36px));
  }

  .v2-hero-grid {
    grid-template-columns: 1fr;
  }

  .v2-hero-copy h1.v29-hero-title {
    max-width: 850px;
    font-size: clamp(3.5rem, 10vw, 6.2rem);
  }

  .v2-hero-map {
    justify-self: center;
  }
}

@media (max-width: 760px) {
  .grant-v2-card > strong {
    font-size: clamp(3.1rem, 17vw, 5rem);
  }

  .instagram-v2 h2 {
    font-size: clamp(2.5rem, 14vw, 4.2rem);
  }

  .v2-hero-copy h1.v29-hero-title {
    font-size: clamp(3rem, 15vw, 5rem);
    line-height: .92;
  }

  .v2-hero-map {
    min-height: 360px;
  }

  .map-core {
    inset: 27%;
  }

  .map-core img {
    width: 76px;
  }

  .map-label {
    font-size: .72rem;
  }
}


/* V3.0 privacy, browser storage and anonymous statistics disclosure. */
.storage-table-wrap { margin:22px 0; overflow-x:auto; border:1px solid var(--line); border-radius:18px; background:var(--surface); }
.storage-table { width:100%; min-width:760px; border-collapse:collapse; }
.storage-table th,.storage-table td { padding:15px 16px; text-align:left; vertical-align:top; border-bottom:1px solid var(--line); }
.storage-table th { color:var(--ink); background:var(--surface-alt); }
.storage-table td { color:var(--ink-soft); }
.storage-table tr:last-child td { border-bottom:0; }
.storage-table code { color:var(--ink); font-weight:800; overflow-wrap:anywhere; }
.cookie-dialog .status-pill { white-space:nowrap; }
.cookie-banner { max-width:940px; }
@media (max-width:640px) {
  .preference-row { grid-template-columns:1fr; gap:10px; }
  .preference-row .status-pill { justify-self:start; }
}

/* V5 launch system: one calm, tactile visual language across every page. */
:root {
  --hwb-ease: cubic-bezier(.2,.8,.2,1);
  --hwb-control-shadow: 0 10px 30px rgba(24,37,31,.10);
}

body,
.site-header,
.page-hero,
.section,
.button,
.language-button,
.menu-button,
.accessibility-dock button,
.accessibility-dock a,
input,
select,
textarea,
dialog,
.card,
.policy-card,
.document-card,
.update-card,
.product-stage {
  transition: color .22s var(--hwb-ease), background-color .22s var(--hwb-ease),
    border-color .22s var(--hwb-ease), box-shadow .22s var(--hwb-ease), transform .22s var(--hwb-ease);
}

:where(a,button,input,select,textarea,summary):focus-visible {
  outline: 3px solid var(--terracotta);
  outline-offset: 4px;
}

:where(.button,.language-button,.menu-button,.accessibility-dock button,.accessibility-dock a):hover {
  transform: translateY(-2px);
  box-shadow: var(--hwb-control-shadow);
}

input,
select,
textarea {
  color: var(--ink);
  background: var(--surface);
  border-color: var(--line);
}

[data-theme="dark"] :where(.page-hero,.cookie-banner,.cookie-dialog .dialog-inner,.policy-card,.document-card,.update-card,.product-stage,.form-card,.contact-card,.support-card,.card) {
  color: var(--ink);
  background-color: var(--surface);
  border-color: var(--line);
}

[data-theme="dark"] :where(input,select,textarea) {
  color: #f4f2e8;
  background: #1e2d25;
  border-color: rgba(255,255,255,.22);
}

[data-theme="dark"] :where(input,textarea)::placeholder { color: #aebbb3; opacity: 1; }
[data-theme="dark"] :where(.lead,.prose p,.prose li,.card p,.policy-card p,.document-card p,.update-card p,.product-stage p) { color: var(--ink-soft); }
[data-theme="dark"] .site-header.is-scrolled { background: color-mix(in srgb,#101814 88%,transparent); }
[data-theme="dark"] .status-neutral { background:#26372f; color:#e7ede8; }

@media (max-width: 760px) {
  .button-row { align-items:stretch; }
  .button-row .button { width:100%; justify-content:center; text-align:center; }
  .page-hero { min-height:auto; }
}

@media (prefers-reduced-motion: reduce) {
  body,.site-header,.page-hero,.section,.button,.language-button,.menu-button,
  .accessibility-dock button,.accessibility-dock a,input,select,textarea,dialog,
  .card,.policy-card,.document-card,.update-card,.product-stage { transition:none!important; }
  :where(.button,.language-button,.menu-button,.accessibility-dock button,.accessibility-dock a):hover { transform:none; }
}


/* V6 Welsh-language beta notice */
.welsh-beta-banner{background:#f4dfcf;border-bottom:1px solid rgba(38,60,51,.18);color:#263c33;padding:.65rem 0;position:relative;z-index:35}
.welsh-beta-banner[hidden]{display:none!important}
.welsh-beta-banner .container{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;font-size:.9rem}
.welsh-beta-banner strong{font-weight:800}
.welsh-beta-banner span{flex:1 1 420px}
.welsh-beta-banner a{color:#263c33;font-weight:750;text-decoration:underline;text-underline-offset:.18em}
.welsh-beta-dialog{width:min(720px,calc(100% - 2rem));border:0;border-radius:28px;padding:0;background:#fffaf4;color:#263c33;box-shadow:0 28px 90px rgba(20,36,30,.34)}
.welsh-beta-dialog::backdrop{background:rgba(18,31,26,.68);backdrop-filter:blur(5px)}
.welsh-beta-dialog-inner{position:relative;padding:clamp(1.4rem,4vw,2.5rem);border:2px solid rgba(229,138,78,.35);border-radius:28px;background:linear-gradient(145deg,#fffaf4 0%,#f6eee5 100%)}
.welsh-beta-dialog h2{font-size:clamp(1.65rem,4vw,2.35rem);margin:.2rem 0 .8rem;color:#263c33}
.welsh-beta-dialog p{line-height:1.65}
.welsh-beta-dialog .welsh-beta-english{border-left:4px solid #bcd7ca;padding:.65rem .85rem;background:rgba(255,255,255,.65);border-radius:0 14px 14px 0}
.welsh-beta-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.2rem}
.welsh-beta-dialog .dialog-close{position:absolute;right:1rem;top:1rem;border:0;background:transparent;color:#263c33;font-size:1.6rem;cursor:pointer}
.welsh-review-note{margin-top:1rem;padding:.8rem 1rem;border-radius:16px;background:#fff3e8;border:1px solid rgba(229,138,78,.35);color:#263c33}
html[data-theme="dark"] .welsh-beta-banner{background:#d88a57;color:#263c33;border-bottom-color:rgba(255,255,255,.14)}
html[data-theme="dark"] .welsh-beta-banner a{color:#263c33}
html[data-theme="dark"] .welsh-beta-dialog{background:#20352d;color:#f7f4ec}
html[data-theme="dark"] .welsh-beta-dialog-inner{background:linear-gradient(145deg,#243c33 0%,#1b3028 100%);border-color:rgba(229,138,78,.48)}
html[data-theme="dark"] .welsh-beta-dialog h2,html[data-theme="dark"] .welsh-beta-dialog .dialog-close{color:#f7f4ec}
html[data-theme="dark"] .welsh-beta-dialog .welsh-beta-english{background:rgba(255,255,255,.08);border-left-color:#bcd7ca}
html[data-theme="dark"] .welsh-review-note{background:#3b3028;color:#f7f4ec;border-color:rgba(229,138,78,.5)}
@media (max-width:680px){.welsh-beta-actions .button{width:100%;justify-content:center}.welsh-beta-banner .container{align-items:flex-start}}


/* V6.3 visibility, footer and privacy refinements. */
html:not([data-theme="dark"]) .button-primary,
html:not([data-theme="dark"]) .hwb-entry-button { color:#fff !important; }
html[data-theme="dark"] .button-primary,
html[data-theme="dark"] .hwb-entry-button { color:#18251f !important; }
.section-sage { color:#fffaf2; background:#29443a; }
.section-sage :where(h2,h3,p,.lead,.prose p) { color:#fffaf2 !important; }
.section-sage .eyebrow { color:#f4bf8d !important; }
.section-sage .side-card { color:#fffaf2; background:rgba(16,39,31,.46); border-color:rgba(255,255,255,.24); }
.section-sage .side-card p { color:#e8f0eb !important; }
.section-sage .button-secondary { color:#fffaf2; border-color:rgba(255,255,255,.42); background:rgba(255,255,255,.08); }
.section-sage .button-secondary:hover { background:rgba(255,255,255,.15); }
.footer-bottom { justify-content:flex-start; flex-wrap:wrap; padding-right:190px; }
.footer-utility-links { display:inline-flex; flex-wrap:wrap; align-items:center; gap:9px; }
.footer-utility-links a { color:#e4ece7; }
.footer-utility-links .footer-separator { color:#789084; }
.statistics-choice { margin-top:16px; padding:16px; border:1px solid var(--line); border-radius:16px; background:var(--surface-alt); }
.statistics-choice p { margin:6px 0 12px; }
.statistics-confirmation { color:var(--sage-deep); font-weight:750; }
.blog-intro { max-width:780px; margin-bottom:34px; }
@media (max-width:760px) {
 .footer-bottom { padding-right:0; padding-bottom:76px; }
 .section-sage .content-layout { gap:24px; }
}

/* V6.3.0 footer controls remain reachable beside the organisation details. */
.footer-bottom > .footer-utility-links { order:-2; margin-right:4px; }
.footer-bottom > .footer-utility-links + span { order:-1; }
.footer-bottom > span { flex:0 1 auto; }
@media (min-width:761px){ .site-footer .footer-bottom { padding-right:210px; } }
