/* =========================================================
   FORGE Leadership & Performance
   Design system: dark editorial, sharp corners, one coral accent
   Type: Archivo (display + body), Bodoni Moda italic (emphasis),
         Spline Sans Mono (labels and details)
   ========================================================= */

/* Deliberately single-theme (dark editorial) */
:root {
  color-scheme: dark;
  /* Colour: brand accent + neutrals only */
  --coral: #F15A2D;
  --ink: #0F0E0D;
  --ink-2: #181716;
  --ink-3: #23211F;
  --ink-line: #34312E;
  --paper: #F5F2ED;
  --paper-2: #EBE6DF;
  --paper-line: #D6D0C7;
  --on-dark: #F5F2ED;
  --on-dark-muted: #A9A39A;
  --on-light: #0F0E0D;
  --on-light-muted: #5A554F;

  /* Type */
  --f-display: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --f-body: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --f-serif: "Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;
  --f-mono: "Spline Sans Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  --t-hero: clamp(2.75rem, 1.1rem + 5.4vw, 6rem);
  --t-h2: clamp(2.125rem, 1.1rem + 3.1vw, 4rem);
  --t-h3: clamp(1.375rem, 1.05rem + 0.9vw, 1.875rem);
  --t-lead: clamp(1.125rem, 1.02rem + 0.35vw, 1.3125rem);
  --t-body: 1.0625rem;
  --t-small: 0.9375rem;
  --t-label: 0.75rem;

  /* Space: 8px ladder */
  --s-1: 8px; --s-2: 16px; --s-3: 24px; --s-4: 32px; --s-5: 48px;
  --s-6: 64px; --s-7: 96px; --s-8: 128px;
  --section: clamp(88px, 9vw, 152px);
  --gutter: clamp(20px, 4vw, 48px);
  --max: 1320px;

  --ease: cubic-bezier(0.16, 1, 0.3, 1);
  --header-h: 76px;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
  margin: 0;
  background: var(--ink);
  color: var(--on-dark);
  font-family: var(--f-body);
  font-size: var(--t-body);
  line-height: 1.6;
  font-variation-settings: "wdth" 100;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
img, svg, video, canvas { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
h1, h2, h3, h4, p, ul, ol, figure, blockquote, dl, dd { margin: 0; }
ul[role="list"], ol[role="list"] { list-style: none; padding: 0; }

::selection { background: var(--coral); color: var(--ink); }
:focus-visible { outline: 2px solid var(--coral); outline-offset: 3px; }
html { scrollbar-color: var(--ink-line) var(--ink); }

.skip-link {
  position: absolute; left: var(--s-2); top: -100px; z-index: 200;
  background: var(--coral); color: var(--ink); padding: 12px 18px; font-weight: 600;
}
.skip-link:focus { top: var(--s-2); }

[hidden] { display: none !important; }
.visually-hidden {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}

/* ---------- Typography ---------- */
.h-hero, .h2, .h3, h1, h2, h3 {
  font-family: var(--f-display);
  font-weight: 500;
  text-wrap: balance;
}
.h-hero {
  font-size: var(--t-hero);
  line-height: 0.98;
  letter-spacing: -0.042em;
}
.h2 {
  font-size: var(--t-h2);
  line-height: 1.02;
  letter-spacing: -0.035em;
}
.h3 {
  font-size: var(--t-h3);
  line-height: 1.15;
  letter-spacing: -0.02em;
}
.h-hero em, .h2 em, .h3 em, .statement em {
  font-family: var(--f-serif);
  font-style: italic;
  font-weight: 600;
  font-optical-sizing: auto;
  letter-spacing: -0.025em;
  color: var(--coral);
  padding-right: 0.04em;
}
.lead { font-size: var(--t-lead); line-height: 1.55; max-width: 38ch; color: var(--on-dark-muted); }
.prose p + p { margin-top: 1.1em; }
.prose { max-width: 62ch; }
.muted { color: var(--on-dark-muted); }
.label {
  font-family: var(--f-mono);
  font-size: var(--t-label);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  line-height: 1.4;
  font-weight: 500;
}
.label--coral { color: var(--coral); }

/* ---------- Layout ---------- */
.container { width: 100%; max-width: var(--max); margin-inline: auto; padding-inline: var(--gutter); }
.section { padding-block: var(--section); position: relative; }
.section--tight { padding-block: clamp(64px, 6vw, 96px); }
.section--ink-2 { background: var(--ink-2); }
.section--paper {
  background: var(--paper); color: var(--on-light);
  --on-dark: var(--on-light); --on-dark-muted: var(--on-light-muted); --ink-line: var(--paper-line);
}
.section--paper .h-hero em, .section--paper .h2 em, .section--paper .h3 em, .section--paper .statement em { color: var(--on-light); }
.section--coral {
  background: var(--coral); color: var(--ink);
  --on-dark: var(--ink); --on-dark-muted: #3A1A0F; --ink-line: rgba(15,14,13,.25);
}
.section--coral .h2 em, .section--coral .statement em { color: var(--ink); }

.grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--s-3); }
.rule { height: 1px; background: var(--ink-line); border: 0; margin: 0; }

.section-head { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); column-gap: var(--s-3); row-gap: var(--s-3); margin-bottom: clamp(48px, 6vw, 88px); align-items: end; }
.section-head .h2 { grid-column: 1 / span 7; }
.section-head .lead, .section-head p { grid-column: 9 / span 4; }
@media (max-width: 960px) {
  .section-head .h2, .section-head .lead, .section-head p { grid-column: 1 / -1; }
}

/* ---------- Buttons & links ---------- */
.btn {
  --btn-bg: var(--coral); --btn-fg: var(--ink);
  display: inline-flex; align-items: center; justify-content: center; gap: 14px;
  min-height: 52px; padding: 0 26px;
  background: var(--btn-bg); color: var(--btn-fg);
  font-family: var(--f-body); font-size: 0.8125rem; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase; white-space: nowrap;
  border: 1px solid var(--btn-bg);
  transition: background-color .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
}
.btn svg { width: 16px; height: 16px; transition: transform .3s var(--ease); }
.btn:hover { --btn-bg: var(--on-dark); --btn-fg: var(--ink); }
.section--paper .btn:hover { --btn-bg: var(--ink); --btn-fg: var(--paper); }
.section--coral .btn { --btn-bg: var(--ink); --btn-fg: var(--paper); }
.section--coral .btn:hover { --btn-bg: var(--paper); --btn-fg: var(--ink); }
.btn:hover svg { transform: translateX(4px); }
.btn:active { transform: translateY(1px); }
.btn--ghost { --btn-bg: transparent; --btn-fg: var(--on-dark); border-color: var(--ink-line); }
.btn--ghost:hover { --btn-bg: transparent; --btn-fg: var(--on-dark); border-color: var(--on-dark); }
.section--paper .btn--ghost:hover { --btn-bg: transparent; --btn-fg: var(--ink); border-color: var(--ink); }
.btn-row { display: flex; flex-wrap: wrap; gap: var(--s-2); }

.link-arrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
  padding-block: 10px; border-bottom: 1px solid var(--ink-line);
  transition: border-color .25s var(--ease), color .25s var(--ease);
}
.link-arrow svg { width: 14px; height: 14px; transition: transform .3s var(--ease); }
.link-arrow:hover { border-color: var(--coral); }
.link-arrow:hover svg { transform: translateX(4px); }

.prose a, .inline-link { text-decoration: underline; text-underline-offset: 0.22em; text-decoration-thickness: 1px; text-decoration-color: var(--coral); }
.prose a:hover, .inline-link:hover { color: var(--coral); }

/* ---------- Header ---------- */
.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 100;
  height: calc(var(--header-h) + env(safe-area-inset-top, 0px)); padding-top: env(safe-area-inset-top, 0px);
  transition: background-color .35s var(--ease), border-color .35s var(--ease);
  border-bottom: 1px solid transparent;
}
.site-header.is-solid, .site-header.is-open { background: var(--ink); border-bottom-color: #26241F; }
.site-header .container { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); }
.brand { display: flex; align-items: center; flex-shrink: 0; }
.brand img { height: 40px; width: auto; }
.nav { display: flex; align-items: center; gap: clamp(20px, 2.4vw, 36px); }
.nav__list { display: flex; align-items: center; gap: clamp(18px, 2.2vw, 34px); list-style: none; margin: 0; padding: 0; }
.nav__link {
  position: relative; display: inline-flex; align-items: center; gap: 6px; height: var(--header-h);
  font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--on-dark);
}
.nav__link::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 22px; height: 1px; background: var(--coral);
  transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease);
}
.nav__link:hover::after, .nav__link[aria-current="page"]::after, .nav__item.is-current > .nav__link::after { transform: scaleX(1); }
.nav__link svg { width: 10px; height: 10px; transition: transform .25s var(--ease); }
.nav__item { position: relative; }
.nav__item--has-menu:hover .nav__link svg, .nav__item--has-menu:focus-within .nav__link svg { transform: rotate(180deg); }
.submenu {
  position: absolute; top: calc(var(--header-h) - 8px); left: -24px; min-width: 300px;
  background: var(--ink-2); border: 1px solid #2B2926; padding: 10px; list-style: none; margin: 0;
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity .25s var(--ease), transform .25s var(--ease), visibility .25s;
}
.nav__item--has-menu:hover .submenu, .nav__item--has-menu:focus-within .submenu { opacity: 1; visibility: visible; transform: none; }
.submenu a { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; padding: 14px 16px; transition: background-color .2s var(--ease); }
.submenu a:hover, .submenu a:focus-visible { background: var(--ink-3); }
.submenu strong { font-weight: 600; font-size: 0.9375rem; letter-spacing: -0.005em; }
.submenu span { grid-column: 1; font-size: 0.8125rem; color: var(--on-dark-muted); }
.submenu em { grid-row: 1; grid-column: 2; font-style: normal; font-family: var(--f-mono); font-size: 0.75rem; color: var(--on-dark-muted); align-self: center; }
.submenu li + li a.submenu__all { border-top: 1px solid #2B2926; margin-top: 6px; }
.header-cta { min-height: 44px; padding: 0 20px; }

.menu-toggle { display: none; width: 48px; height: 48px; margin-right: -12px; align-items: center; justify-content: center; }
.menu-toggle span { position: relative; display: block; width: 24px; height: 1.5px; background: var(--on-dark); transition: background-color .2s; }
.menu-toggle span::before, .menu-toggle span::after { content: ""; position: absolute; left: 0; width: 24px; height: 1.5px; background: var(--on-dark); transition: transform .35s var(--ease); }
.menu-toggle span::before { top: -7px; }
.menu-toggle span::after { top: 7px; }
.is-open .menu-toggle span { background: transparent; }
.is-open .menu-toggle span::before { transform: translateY(7px) rotate(45deg); }
.is-open .menu-toggle span::after { transform: translateY(-7px) rotate(-45deg); }

.mobile-nav {
  position: fixed; inset: var(--header-h) 0 0 0; z-index: 99; background: var(--ink);
  padding: var(--s-4) var(--gutter) var(--s-5); overflow-y: auto;
  display: none; flex-direction: column; justify-content: space-between; gap: var(--s-5);
}
.is-menu-open .mobile-nav { display: flex; }
.is-menu-open { overflow: hidden; }
.mobile-nav ul { list-style: none; padding: 0; margin: 0; }
.mobile-nav > ul > li { border-bottom: 1px solid #26241F; }
.mobile-nav > ul > li > a { display: flex; justify-content: space-between; align-items: center; padding: 18px 0; font-size: 1.75rem; letter-spacing: -0.03em; font-weight: 500; }
.mobile-nav > ul > li > a[aria-current="page"] { color: var(--coral); }
.mobile-nav .mobile-sub { padding: 0 0 18px; display: grid; gap: 4px; }
.mobile-nav .mobile-sub a { display: flex; justify-content: space-between; padding: 10px 0; color: var(--on-dark-muted); font-size: 1rem; }
.mobile-nav .mobile-sub a span { font-family: var(--f-mono); font-size: 0.8125rem; }
.mobile-nav__foot { display: grid; gap: var(--s-2); }
.mobile-nav__foot .btn { width: 100%; }

@media (max-width: 1040px) {
  .nav { display: none; }
  .menu-toggle { display: inline-flex; }
}

/* ---------- Footer ---------- */
.site-footer { background: var(--ink); border-top: 1px solid #26241F; padding-top: clamp(72px, 8vw, 120px); }
.footer-top { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--s-5) var(--s-3); padding-bottom: clamp(56px, 7vw, 96px); }
.footer-brand { grid-column: 1 / span 4; display: grid; gap: var(--s-3); align-content: start; }
.footer-brand img { width: 220px; }
.footer-brand p { color: var(--on-dark-muted); max-width: 32ch; font-size: var(--t-small); }
.footer-col { grid-column: span 2; }
.footer-col--wide { grid-column: span 4; }
.footer-col h2 { font-family: var(--f-mono); font-size: var(--t-label); letter-spacing: .12em; text-transform: uppercase; color: var(--on-dark-muted); font-weight: 500; margin-bottom: var(--s-3); }
.footer-col ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.footer-col a { font-size: var(--t-small); transition: color .2s var(--ease); }
.footer-col a:hover { color: var(--coral); }
.footer-bottom { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-4); justify-content: space-between; align-items: center; padding-block: var(--s-4); border-top: 1px solid #26241F; color: var(--on-dark-muted); font-size: 0.8125rem; }
.footer-bottom nav { display: flex; gap: var(--s-3); align-items: center; }
.footer-bottom a:hover { color: var(--coral); }
.footer-mega {
  font-family: var(--f-display); font-weight: 500; letter-spacing: -0.06em; line-height: .8;
  font-size: clamp(5rem, 22vw, 22rem); color: var(--ink-2); user-select: none;
  margin-bottom: -0.12em; overflow: hidden; white-space: nowrap;
}
@media (max-width: 960px) {
  .footer-brand { grid-column: 1 / -1; }
  .footer-col { grid-column: span 6; }
  .footer-col--wide { grid-column: 1 / -1; }
}

/* ---------- Icons ---------- */
.icon { width: 20px; height: 20px; flex-shrink: 0; }

/* ---------- Home hero ---------- */
.hero {
  position: relative; min-height: 100svh; display: flex; align-items: stretch;
  padding-top: var(--header-h); overflow: hidden; background: var(--ink);
}
.hero .container { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); column-gap: var(--s-3); align-items: center; padding-block: clamp(40px, 6vw, 88px); }
.hero__copy { grid-column: 1 / span 8; grid-row: 1; position: relative; z-index: 2; display: grid; gap: clamp(24px, 3vw, 40px); }
.hero__copy .lead { max-width: 40ch; }
.hero__copy .h-hero { font-size: clamp(2.75rem, 1rem + 4.2vw, 4.85rem); }
.h-hero .l { display: block; }
.hero__stage { grid-column: 8 / span 5; grid-row: 1; position: relative; aspect-ratio: 1 / 1; z-index: 1; }
.hero__stage canvas, .hero__stage img { width: 100%; height: 100%; }
.hero__stage img { object-fit: contain; }
.hero__stage[data-3d="on"] img.hero__fallback { display: none; }
.hero__stage canvas { cursor: grab; touch-action: pan-y; }
.hero__stage canvas:active { cursor: grabbing; }
.hero__meta {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 3;
}
.hero__meta .container { position: relative; display: flex; justify-content: space-between; gap: var(--s-3); padding-block: var(--s-3); color: var(--on-dark-muted); }
.hero__meta .container::before { content: ""; position: absolute; top: 0; left: var(--gutter); right: var(--gutter); height: 1px; background: #26241F; }
.hero__meta .container > * { padding: 0; }
.hero__hint { display: inline-flex; align-items: center; gap: 10px; }
.hero__hint svg { width: 16px; height: 16px; }
@media (max-width: 960px) {
  .hero { min-height: auto; }
  .hero .container { padding-top: 32px; padding-bottom: 120px; row-gap: 32px; }
  .hero__copy { grid-column: 1 / -1; grid-row: 2; }
  .hero__stage { grid-column: 1 / -1; grid-row: 1; width: min(62vw, 340px); justify-self: start; }
  .hero__meta .hero__hint { display: none; }
  .hero { flex-direction: column; }
  .hero__meta { position: static; }
  .hero .container { padding-bottom: 48px; }
}

/* ---------- Proof strip (marquee) ---------- */
.proof { border-top: 1px solid #26241F; border-bottom: 1px solid #26241F; background: var(--ink); overflow: hidden; }
.proof__inner { display: grid; grid-template-columns: auto 1fr; align-items: stretch; }
.proof__label {
  display: flex; align-items: center; padding: var(--s-4) var(--s-4) var(--s-4) max(var(--gutter), calc((100vw - var(--max)) / 2 + var(--gutter)));
  color: var(--on-dark-muted); border-right: 1px solid #26241F; font-weight: 500; position: relative; z-index: 2; background: var(--ink);
  box-sizing: content-box; width: 25ch;
}
.marquee { display: flex; overflow: hidden; align-items: center;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%); }
.marquee__list { display: flex; flex-shrink: 0; align-items: center; list-style: none; margin: 0; padding: 0; animation: marquee 38s linear infinite; }
.marquee:hover .marquee__list { animation-play-state: paused; }
.marquee__list li {
  display: flex; align-items: center; white-space: nowrap; padding-block: var(--s-4);
  font-family: var(--f-display); font-weight: 500; letter-spacing: -0.025em; font-size: clamp(1.375rem, 1rem + 1vw, 2rem); color: var(--on-dark);
}
.marquee__list li::after {
  content: ""; width: 22px; height: 22px; margin-inline: clamp(28px, 4vw, 56px); flex-shrink: 0;
  background: url("../img/forge-mark.png") center / contain no-repeat; opacity: .9;
}
@keyframes marquee { to { transform: translateX(-100%); } }
@media (max-width: 760px) {
  .proof__inner { grid-template-columns: 1fr; }
  .proof__label { border-right: 0; border-bottom: 1px solid #26241F; padding: var(--s-3) var(--gutter); max-width: none; width: auto; box-sizing: border-box; }
  .marquee__list li { padding-block: var(--s-3); }
}
@media (prefers-reduced-motion: reduce) {
  .marquee { -webkit-mask-image: none; mask-image: none; flex-wrap: wrap; padding: var(--s-3) var(--gutter); }
  .marquee__list { animation: none; flex-wrap: wrap; gap: 8px 0; }
  .marquee__list[aria-hidden] { display: none; }
}

/* ---------- Statement ---------- */
.statement {
  font-family: var(--f-display); font-weight: 500;
  font-size: clamp(2rem, 1rem + 3.4vw, 4.5rem); line-height: 1.04; letter-spacing: -0.04em;
  text-wrap: balance; max-width: 18ch;
}
.statement-wrap { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); column-gap: var(--s-3); row-gap: var(--s-5); }
.statement-wrap .statement { grid-column: 1 / span 7; grid-row: 1; }
.statement-wrap .statement-aside { grid-column: 9 / span 4; grid-row: 1; align-self: end; display: grid; gap: var(--s-3); }
.statement-wrap .statement:only-child { grid-column: 1 / span 10; }
@media (max-width: 960px) { .statement-wrap .statement, .statement-wrap .statement-aside, .statement-wrap .pull { grid-column: 1 / -1 !important; grid-row: auto; } }

/* ---------- ART framework ---------- */
.art { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); border-top: 1px solid var(--ink-line); }
.art__item { padding: var(--s-5) var(--s-4) var(--s-4) 0; display: grid; grid-template-rows: auto auto 1fr; gap: var(--s-2); }
.art__item + .art__item { padding-left: var(--s-4); border-left: 1px solid var(--ink-line); }
.art__letter {
  font-family: var(--f-display); font-weight: 500; letter-spacing: -0.06em; line-height: .82;
  font-size: clamp(7rem, 4rem + 9vw, 15rem); color: var(--coral); margin-bottom: var(--s-3);
}
.art__item h3 { font-size: var(--t-h3); letter-spacing: -0.02em; line-height: 1.15; font-weight: 500; }
.art__item p { color: var(--on-dark-muted); max-width: 30ch; }
.art-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-3); align-items: center; padding-top: var(--s-4); border-top: 1px solid var(--ink-line); }
.art-foot p { font-size: var(--t-lead); max-width: 44ch; }
@media (max-width: 860px) {
  .art { grid-template-columns: 1fr; }
  .art__item, .art__item + .art__item { padding: var(--s-4) 0; border-left: 0; border-bottom: 1px solid var(--ink-line); grid-template-columns: auto 1fr; grid-template-rows: auto; column-gap: var(--s-3); align-items: start; }
  .art__letter { font-size: 5.5rem; margin: 0; grid-row: span 2; }
  .art-foot { border-top: 0; }
}

/* ---------- Image band ---------- */
.band { position: relative; min-height: clamp(460px, 62vw, 760px); display: flex; align-items: flex-end; overflow: hidden; background: var(--ink); }
.band__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.band::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,14,13,0) 30%, rgba(15,14,13,.88) 100%); }
.band .container { position: relative; z-index: 2; padding-block: clamp(40px, 6vw, 88px); display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--s-3); align-items: end; }
.band .statement { grid-column: 1 / span 8; }
.band figcaption { grid-column: 10 / span 3; color: var(--on-dark-muted); justify-self: end; text-align: right; }
@media (max-width: 860px) { .band .statement, .band figcaption { grid-column: 1 / -1; justify-self: start; text-align: left; } }

/* ---------- Founders split ---------- */
.founders { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--s-3); align-items: start; }
.founders__intro { grid-column: 1 / span 4; position: sticky; top: calc(var(--header-h) + 40px); display: grid; gap: var(--s-3); }
.founders__cards { grid-column: 6 / span 7; display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-3); align-items: start; }
.founder { display: grid; gap: var(--s-2); align-content: start; }
.founder:nth-child(2) { margin-top: clamp(48px, 8vw, 120px); }
.founder__img { position: relative; overflow: hidden; aspect-ratio: 4 / 5; background: var(--ink-2); }
.founder__img img { width: 100%; height: 100%; object-fit: cover; object-position: center 18%; transition: transform .8s var(--ease); }
.founder:hover .founder__img img { transform: scale(1.03); }
.founder__name { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s-2); padding-top: var(--s-1); }
.founder__name h3 { font-size: 1.5rem; font-weight: 500; letter-spacing: -0.025em; }
.founder p { color: var(--on-dark-muted); font-size: var(--t-small); max-width: 38ch; }
@media (max-width: 960px) {
  .founders__intro, .founders__cards { grid-column: 1 / -1; position: static; }
}
@media (max-width: 560px) {
  .founders__cards { grid-template-columns: 1fr; }
  .founder:nth-child(2) { margin-top: 0; }
}

/* ---------- Programmes (tiers) ---------- */
.tiers { display: grid; grid-template-columns: 1fr 1.18fr 1fr; gap: 0; border: 1px solid var(--ink-line); }
.tier { position: relative; display: flex; flex-direction: column; gap: var(--s-3); padding: clamp(28px, 3vw, 44px); min-height: 100%; }
.tier + .tier { border-left: 1px solid var(--ink-line); }
.tier__top { display: flex; justify-content: space-between; align-items: center; gap: var(--s-2); }
.tier h2, .tier h3 { font-size: clamp(2rem, 1.4rem + 1.4vw, 2.75rem); letter-spacing: -0.035em; line-height: 1; font-weight: 500; }
.tier__sub { color: var(--on-dark-muted); font-size: var(--t-small); }
.tier__price { display: flex; align-items: baseline; gap: 8px; padding-block: var(--s-3); border-block: 1px solid var(--ink-line); }
.tier__price strong { font-family: var(--f-display); font-weight: 500; font-size: clamp(2.25rem, 1.6rem + 1.5vw, 3rem); letter-spacing: -0.04em; line-height: 1; }
.tier__price span { color: var(--on-dark-muted); font-size: var(--t-small); }
.tier ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; flex: 1; }
.tier li { display: grid; grid-template-columns: 18px 1fr; gap: 12px; font-size: var(--t-small); line-height: 1.5; }
.tier li svg { width: 18px; height: 18px; margin-top: 2px; color: var(--coral); }
.tier .btn, .tier .link-arrow { align-self: flex-start; }
.tier--featured { background: var(--ink-2); }
.tier--elite { background: var(--coral); color: var(--ink); --on-dark-muted: #3A1A0F; --ink-line: rgba(15,14,13,.22); }
.tier--elite li svg { color: var(--ink); }
.tier--elite .btn { --btn-bg: var(--ink); --btn-fg: var(--paper); }
.tier--elite .btn:hover { --btn-bg: var(--paper); --btn-fg: var(--ink); }
.tier--elite .link-arrow:hover { border-color: var(--ink); }
.badge {
  display: inline-flex; align-items: center; gap: 8px; height: 28px; padding: 0 12px;
  font-family: var(--f-mono); font-size: 0.6875rem; letter-spacing: .12em; text-transform: uppercase;
  border: 1px solid currentColor; border-radius: 999px; white-space: nowrap;
}
.section--paper .tiers .tier--featured { background: var(--paper-2); }
@media (max-width: 1040px) {
  .tiers { grid-template-columns: 1fr; }
  .tier + .tier { border-left: 0; border-top: 1px solid var(--ink-line); }
}

/* ---------- Spec figures ---------- */
.specs { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); border-top: 1px solid var(--ink-line); }
.spec { padding: var(--s-4) var(--s-3) 0 0; display: grid; gap: var(--s-2); align-content: start; }
.spec + .spec { padding-left: var(--s-3); border-left: 1px solid var(--ink-line); }
.spec__num { font-family: var(--f-display); font-weight: 500; font-size: clamp(3rem, 1.8rem + 3.4vw, 5.5rem); line-height: .9; letter-spacing: -0.05em; }
.spec__num sup { font-size: .45em; vertical-align: top; position: relative; top: .12em; margin-left: 2px; color: var(--coral); }
.section--coral .spec__num sup { color: var(--ink); }
.spec p { color: var(--on-dark-muted); font-size: var(--t-small); max-width: 26ch; }
@media (max-width: 860px) {
  .specs { grid-template-columns: 1fr 1fr; row-gap: var(--s-5); }
  .spec:nth-child(3) { padding-left: 0; border-left: 0; }
}

/* ---------- Testimonials ---------- */
.quotes { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--s-5) var(--s-3); }
.quote-feature { grid-column: 1 / span 8; display: grid; gap: var(--s-4); }
.quote-feature blockquote { font-family: var(--f-display); font-weight: 500; font-size: clamp(1.625rem, 1.1rem + 1.6vw, 2.625rem); line-height: 1.18; letter-spacing: -0.03em; text-wrap: pretty; }
.quote-feature blockquote::before { content: "\201C"; display: block; font-family: var(--f-serif); font-style: italic; font-size: 5rem; line-height: .6; color: var(--coral); margin-bottom: var(--s-2); }
.quote-side { grid-column: 9 / span 4; display: grid; gap: var(--s-5); align-content: start; padding-left: var(--s-4); border-left: 1px solid var(--ink-line); }
.quote-small { display: grid; gap: var(--s-3); }
.quote-small blockquote { font-size: var(--t-body); line-height: 1.6; }
.cite { display: flex; align-items: center; gap: 14px; }
.cite img { width: 52px; height: 52px; object-fit: cover; border-radius: 999px; filter: grayscale(1); }
.cite strong { display: block; font-weight: 600; font-size: var(--t-small); }
.cite span { display: block; color: var(--on-dark-muted); font-size: 0.875rem; }
@media (max-width: 960px) {
  .quote-feature, .quote-side { grid-column: 1 / -1; }
  .quote-side { padding-left: 0; border-left: 0; padding-top: var(--s-4); border-top: 1px solid var(--ink-line); }
}

.quote-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); border-top: 1px solid var(--ink-line); }
.quote-grid > figure { padding: var(--s-5) var(--s-5) var(--s-5) 0; display: grid; gap: var(--s-4); align-content: space-between; border-bottom: 1px solid var(--ink-line); }
.quote-grid > figure:nth-child(even) { padding-left: var(--s-5); padding-right: 0; border-left: 1px solid var(--ink-line); }
.quote-grid blockquote { font-size: clamp(1.125rem, 1rem + .4vw, 1.375rem); line-height: 1.45; letter-spacing: -0.012em; }
@media (max-width: 860px) {
  .quote-grid { grid-template-columns: 1fr; }
  .quote-grid > figure, .quote-grid > figure:nth-child(even) { padding: var(--s-4) 0; border-left: 0; }
}

/* ---------- Closing CTA ---------- */
.cta-close { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--s-4) var(--s-3); align-items: end; }
.cta-close .h2 { grid-column: 1 / span 8; font-size: clamp(2.5rem, 1.1rem + 4.4vw, 5.5rem); line-height: .98; letter-spacing: -0.045em; }
.cta-close__side { grid-column: 9 / span 4; display: grid; gap: var(--s-3); }
.cta-close__side p { max-width: 34ch; }
@media (max-width: 960px) { .cta-close .h2, .cta-close__side { grid-column: 1 / -1; } }

/* ---------- Page hero (inner pages) ---------- */
.page-hero { position: relative; padding-top: calc(var(--header-h) + clamp(56px, 8vw, 128px)); padding-bottom: clamp(56px, 7vw, 104px); }
.page-hero .container { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--s-4) var(--s-3); align-items: end; }
.page-hero .h-hero { grid-column: 1 / span 9; }
.page-hero .lead { grid-column: 1 / span 6; }
.page-hero .crumbs { grid-column: 1 / -1; }
.page-hero__aside { grid-column: 9 / span 4; grid-row: 1 / span 3; align-self: end; display: grid; gap: var(--s-3); justify-items: start; }
.page-hero .crumbs { grid-row: 1; }
.page-hero:has(.page-hero__aside) .crumbs, .page-hero:has(.page-hero__aside) .h-hero, .page-hero:has(.page-hero__aside) .lead { grid-column: 1 / span 7; }
.crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; color: var(--on-dark-muted); }
.crumbs a:hover { color: var(--coral); }
.crumbs svg { width: 12px; height: 12px; }
@media (max-width: 960px) { .page-hero .h-hero, .page-hero .lead, .page-hero__aside, .page-hero:has(.page-hero__aside) .crumbs, .page-hero:has(.page-hero__aside) .h-hero, .page-hero:has(.page-hero__aside) .lead { grid-column: 1 / -1; } .page-hero__aside { grid-row: auto; } }

/* Split hero with image */
.split-hero { padding-top: var(--header-h); display: grid; grid-template-columns: 1fr 1fr; min-height: min(92svh, 920px); }
.split-hero__copy { display: flex; flex-direction: column; justify-content: flex-end; gap: var(--s-4); padding: clamp(48px, 6vw, 96px) clamp(24px, 5vw, 80px) clamp(48px, 6vw, 96px) max(var(--gutter), calc((100vw - var(--max)) / 2 + var(--gutter))); }
.split-hero__copy .h-hero { font-size: clamp(2.5rem, 1rem + 3.4vw, 4.25rem); }
.split-hero__img { position: relative; overflow: hidden; background: var(--ink-2); }
.split-hero__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.split-hero__img figcaption { position: absolute; left: var(--s-3); bottom: var(--s-3); z-index: 2; color: var(--on-dark); background: rgba(15,14,13,.78); padding: 8px 12px; }
@media (max-width: 960px) {
  .split-hero { grid-template-columns: 1fr; min-height: 0; }
  .split-hero__img { aspect-ratio: 4 / 3.4; order: -1; margin-top: 0; }
  .split-hero__copy { padding: var(--s-5) var(--gutter); }
}

/* ---------- Zig-zag feature ---------- */
.zig { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--s-5) var(--s-3); align-items: center; }
.zig__img { grid-column: 1 / span 6; aspect-ratio: 5 / 6; overflow: hidden; background: var(--ink-2); }
.zig__img img { width: 100%; height: 100%; object-fit: cover; }
.zig__copy { grid-column: 8 / span 5; display: grid; gap: var(--s-4); }
.zig--rev .zig__img { grid-column: 7 / span 6; grid-row: 1; }
.zig--rev .zig__copy { grid-column: 1 / span 5; grid-row: 1; }
@media (max-width: 960px) {
  .zig__img, .zig__copy, .zig--rev .zig__img, .zig--rev .zig__copy { grid-column: 1 / -1; grid-row: auto; }
  .zig__img { aspect-ratio: 4 / 3; }
}

/* ---------- Pillars list (numbered rows) ---------- */
.rows { border-top: 1px solid var(--ink-line); }
.row { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--s-2) var(--s-3); padding-block: var(--s-4); border-bottom: 1px solid var(--ink-line); align-items: baseline; }
.row h3 { grid-column: 1 / span 5; font-size: var(--t-h3); font-weight: 500; letter-spacing: -0.02em; line-height: 1.15; }
.row p { grid-column: 7 / span 6; color: var(--on-dark-muted); max-width: 52ch; }
@media (max-width: 860px) { .row h3, .row p { grid-column: 1 / -1; } }

/* ---------- Fit (for / not for) ---------- */
.fit { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--ink-line); }
.fit > div { padding: clamp(28px, 3.4vw, 48px); display: grid; gap: var(--s-3); align-content: start; }
.fit > div + div { border-left: 1px solid var(--ink-line); }
.fit h3 { font-size: var(--t-h3); font-weight: 500; letter-spacing: -0.02em; }
.fit ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 0; }
.fit li { display: grid; grid-template-columns: 22px 1fr; gap: 14px; padding-block: 14px; border-top: 1px solid var(--ink-line); }
.fit li svg { width: 20px; height: 20px; margin-top: 3px; color: var(--coral); }
.section--paper .fit li svg { color: var(--on-light); }
@media (max-width: 860px) { .fit { grid-template-columns: 1fr; } .fit > div + div { border-left: 0; border-top: 1px solid var(--ink-line); } }

/* ---------- Six-week cycle ---------- */
.cycle { display: grid; gap: var(--s-3); }
.cycle__scale { display: grid; grid-template-columns: 200px repeat(6, minmax(0,1fr)); gap: 0; }
.cycle__scale span { padding: 10px 0 10px 12px; border-left: 1px solid var(--ink-line); color: var(--on-dark-muted); }
.cycle__scale span:first-child { border-left: 0; padding-left: 0; }
.cycle__row { display: grid; grid-template-columns: 200px repeat(6, minmax(0,1fr)); align-items: stretch; border-top: 1px solid var(--ink-line); }
.cycle__name { padding: var(--s-3) var(--s-2) var(--s-3) 0; display: grid; gap: 4px; align-content: center; }
.cycle__name strong { font-family: var(--f-display); font-weight: 500; font-size: 1.375rem; letter-spacing: -0.02em; }
.cycle__name span { color: var(--on-dark-muted); font-size: 0.875rem; }
.cycle__track { grid-column: 2 / -1; display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); position: relative; background-image: linear-gradient(90deg, var(--ink-line) 1px, transparent 1px); background-size: calc(100% / 6) 100%; }
.cycle__bar { margin-block: var(--s-3); padding: 14px 16px; background: var(--ink-3); border-left: 2px solid var(--coral); display: flex; align-items: center; font-size: 0.875rem; line-height: 1.4; }
.cycle__bar--ongoing { background: repeating-linear-gradient(90deg, var(--ink-3) 0 10px, transparent 10px 14px); color: var(--on-dark-muted); border-left-color: var(--ink-line); }
.section--paper .cycle__bar { background: var(--paper-2); }
@media (max-width: 860px) {
  .cycle__scale { display: none; }
  .cycle__row { grid-template-columns: 1fr; }
  .cycle__track { grid-column: 1; background: none; display: block; }
  .cycle__bar { margin: 0 0 var(--s-3); grid-column: auto !important; }
  .cycle__bar--ongoing { display: none; }
}

/* ---------- Comparison table ---------- */
.compare-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border-top: 1px solid var(--ink-line); }
.compare { width: 100%; min-width: 760px; border-collapse: collapse; font-size: var(--t-small); }
.compare th, .compare td { text-align: left; padding: 18px 16px; border-bottom: 1px solid var(--ink-line); vertical-align: top; }
.compare thead th { vertical-align: bottom; padding-top: var(--s-4); }
.compare thead th:not(:first-child) { font-family: var(--f-display); font-weight: 500; font-size: 1.5rem; letter-spacing: -0.03em; }
.compare thead th small { display: block; font-family: var(--f-mono); font-size: 0.75rem; letter-spacing: .08em; color: var(--on-dark-muted); margin-top: 6px; font-weight: 400; }
.compare tbody th { font-weight: 500; width: 30%; padding-left: 0; }
.compare td { color: var(--on-dark-muted); width: 23.3%; }
.compare td svg { width: 20px; height: 20px; color: var(--coral); }
.compare .col-elite { background: rgba(241,90,45,.08); }
.section--paper .compare td svg { color: var(--on-light); }
.scroll-hint { display: none; margin-bottom: var(--s-2); color: var(--on-dark-muted); }
@media (max-width: 860px) { .scroll-hint { display: block; } }
.compare-note { margin-top: var(--s-3); color: var(--on-dark-muted); font-size: var(--t-small); }

/* ---------- Programme detail components ---------- */
.price-card { display: grid; gap: var(--s-3); padding: var(--s-4); border: 1px solid var(--ink-line); width: 100%; }
.price-card__num { font-family: var(--f-display); font-weight: 500; font-size: clamp(2.75rem, 2rem + 2vw, 4rem); letter-spacing: -0.045em; line-height: 1; }
.price-card__num span { font-size: 1rem; letter-spacing: 0; color: var(--on-dark-muted); margin-left: 6px; }
.price-card dl { display: grid; gap: 10px; }
.price-card dl div { display: flex; justify-content: space-between; gap: var(--s-2); padding-top: 10px; border-top: 1px solid var(--ink-line); font-size: var(--t-small); }
.price-card dt { color: var(--on-dark-muted); }
.price-card .btn { width: 100%; }

.parts { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--s-3); }
.part { grid-column: span 4; display: grid; gap: var(--s-3); align-content: start; padding: var(--s-4); background: var(--ink-2); border-top: 2px solid var(--coral); }
.part--wide { grid-column: span 6; }
.part__top { display: flex; justify-content: space-between; gap: var(--s-2); color: var(--on-dark-muted); }
.part h3 { font-size: clamp(1.75rem, 1.3rem + 1vw, 2.25rem); font-weight: 500; letter-spacing: -0.03em; line-height: 1.05; }
.part h3 span { display: block; font-family: var(--f-body); font-size: var(--t-small); letter-spacing: 0; color: var(--on-dark-muted); font-weight: 400; margin-top: 8px; }
.part ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.part li { display: grid; grid-template-columns: 14px 1fr; gap: 12px; font-size: var(--t-small); color: var(--on-dark-muted); }
.part li::before { content: ""; width: 6px; height: 6px; background: var(--coral); margin-top: 9px; }
.part__line { font-size: var(--t-small); padding-top: var(--s-2); border-top: 1px solid var(--ink-line); }
.section--paper .part { background: var(--paper-2); }
@media (max-width: 1040px) { .part, .part--wide { grid-column: span 6; } }
@media (max-width: 680px) { .part, .part--wide { grid-column: 1 / -1; } }

.other-progs { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--ink-line); }
.other-progs a { display: grid; grid-template-columns: 1fr auto; gap: 6px var(--s-3); padding: var(--s-4) var(--s-3) var(--s-4) 0; border-bottom: 1px solid var(--ink-line); transition: background-color .25s var(--ease), padding .35s var(--ease); }
.other-progs a + a { border-left: 1px solid var(--ink-line); padding-left: var(--s-4); }
.other-progs a:hover { background: var(--ink-2); }
.other-progs strong { font-family: var(--f-display); font-weight: 500; font-size: clamp(1.75rem, 1.3rem + 1.2vw, 2.5rem); letter-spacing: -0.035em; line-height: 1; }
.other-progs span { grid-column: 1; color: var(--on-dark-muted); font-size: var(--t-small); }
.other-progs svg { grid-row: 1 / span 2; grid-column: 2; align-self: center; width: 28px; height: 28px; transition: transform .35s var(--ease); }
.other-progs a:hover svg { transform: translateX(6px); color: var(--coral); }
@media (max-width: 760px) { .other-progs { grid-template-columns: 1fr; } .other-progs a + a { border-left: 0; padding-left: 0; } }

/* ---------- Team / profile ---------- */
.profile-hero { padding-top: var(--header-h); display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); min-height: min(94svh, 940px); }
.profile-hero__img { grid-column: 1 / span 6; position: relative; overflow: hidden; background: var(--ink-2); }
.profile-hero__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 15%; }
.profile-hero__copy { grid-column: 7 / span 6; display: flex; flex-direction: column; justify-content: flex-end; gap: var(--s-4); padding: clamp(40px, 6vw, 96px) max(var(--gutter), calc((100vw - var(--max)) / 2 + var(--gutter))) clamp(40px, 6vw, 96px) clamp(32px, 5vw, 80px); }
.profile-hero__copy .h-hero { font-size: clamp(3rem, 1.4rem + 5vw, 6rem); }
.profile-hero__role { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-4); align-items: center; }
.profile-hero__role a { display: inline-flex; gap: 10px; align-items: center; }
.profile-hero__role a:hover { color: var(--coral); }
@media (max-width: 960px) {
  .profile-hero { grid-template-columns: 1fr; min-height: 0; }
  .profile-hero__img, .profile-hero__copy { grid-column: 1; }
  .profile-hero__img { aspect-ratio: 4 / 4.4; }
  .profile-hero__copy { padding: var(--s-5) var(--gutter); }
}

.pull { font-family: var(--f-display); font-weight: 500; font-size: clamp(1.75rem, 1rem + 2.4vw, 3.25rem); line-height: 1.1; letter-spacing: -0.035em; text-wrap: balance; max-width: 24ch; }
.pull::before { content: ""; display: block; width: 48px; height: 2px; background: var(--coral); margin-bottom: var(--s-4); }

.timeline { border-top: 1px solid var(--ink-line); }
.timeline__item { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--s-2) var(--s-3); padding-block: var(--s-4); border-bottom: 1px solid var(--ink-line); }
.timeline__when { grid-column: 1 / span 3; color: var(--coral); }
.timeline__what { grid-column: 4 / span 4; display: grid; gap: 4px; align-content: start; }
.timeline__what h3 { font-size: 1.375rem; font-weight: 500; letter-spacing: -0.02em; line-height: 1.2; }
.timeline__what span { color: var(--on-dark-muted); font-size: var(--t-small); }
.timeline__item p { grid-column: 8 / span 5; color: var(--on-dark-muted); }
.section--paper .timeline__when { color: var(--on-light); }
@media (max-width: 860px) { .timeline__when, .timeline__what, .timeline__item p { grid-column: 1 / -1; } }

.team-row { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--s-4) var(--s-3); align-items: end; }
.team-row + .team-row { margin-top: clamp(72px, 9vw, 140px); }
.team-row__img { grid-column: 1 / span 5; aspect-ratio: 4 / 5; overflow: hidden; background: var(--ink-2); }
.team-row__img img { width: 100%; height: 100%; object-fit: cover; object-position: center 15%; transition: transform .8s var(--ease); }
.team-row:hover .team-row__img img { transform: scale(1.025); }
.team-row__copy { grid-column: 7 / span 6; display: grid; gap: var(--s-3); padding-bottom: var(--s-2); }
.team-row__copy .h2 { font-size: clamp(2.5rem, 1.4rem + 3.4vw, 4.75rem); }
.team-row--rev .team-row__img { grid-column: 8 / span 5; grid-row: 1; }
.team-row--rev .team-row__copy { grid-column: 1 / span 6; grid-row: 1; }
.team-row__facts { display: flex; flex-wrap: wrap; gap: 8px; }
.team-row__facts li { list-style: none; }
.team-row__facts { padding: 0; margin: 0; }
@media (max-width: 960px) {
  .team-row__img, .team-row__copy, .team-row--rev .team-row__img, .team-row--rev .team-row__copy { grid-column: 1 / -1; grid-row: auto; }
  .team-row__img { max-width: 480px; }
}

.photo-strip { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: var(--s-3); }
.photo-strip figure { display: grid; gap: 12px; align-content: start; }
.photo-strip img { width: 100%; height: clamp(240px, 32vw, 460px); object-fit: cover; background: var(--ink-2); }
.photo-strip figcaption { color: var(--on-dark-muted); }
@media (max-width: 860px) { .photo-strip { grid-template-columns: 1fr 1fr; } .photo-strip figure:first-child { grid-column: 1 / -1; } .photo-strip img { height: 220px; } .photo-strip figure:first-child img { height: 380px; object-position: center 20%; } }

/* ---------- Contact ---------- */
.contact-grid { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--s-6) var(--s-3); }
.contact-people { grid-column: 1 / span 5; display: grid; gap: var(--s-4); align-content: start; }
.person-card { display: grid; grid-template-columns: 88px 1fr; gap: var(--s-3); padding-top: var(--s-4); border-top: 1px solid var(--ink-line); }
.person-card img { width: 88px; height: 110px; object-fit: cover; object-position: center 15%; }
.person-card h3 { font-size: 1.375rem; font-weight: 500; letter-spacing: -0.02em; margin-bottom: 10px; }
.person-card a { display: flex; align-items: center; gap: 10px; color: var(--on-dark-muted); padding-block: 4px; font-size: var(--t-small); overflow-wrap: anywhere; }
.person-card a:hover { color: var(--coral); }
.person-card svg { width: 16px; height: 16px; flex-shrink: 0; }
.form { grid-column: 7 / span 6; display: grid; gap: var(--s-3); }
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-3); }
.field { display: grid; gap: 10px; }
.field label { font-size: var(--t-small); font-weight: 500; }
.field label span { color: var(--on-dark-muted); font-weight: 400; }
.field input, .field select, .field textarea {
  width: 100%; min-height: 52px; padding: 14px 16px; background: var(--ink-2); color: var(--on-dark);
  border: 1px solid var(--ink-line); border-radius: 0; font: inherit; font-size: 1rem;
  transition: border-color .2s var(--ease), background-color .2s var(--ease);
  appearance: none; -webkit-appearance: none;
}
.field select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23A9A39A' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; padding-right: 44px; }
.field textarea { min-height: 160px; resize: vertical; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: #55504A; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--coral); background: var(--ink-3); }
.field .hint { font-size: 0.875rem; color: var(--on-dark-muted); }
.field.has-error input, .field.has-error textarea { border-color: var(--coral); }
.field .error { display: none; font-size: 0.875rem; color: var(--coral); }
.field.has-error .error { display: block; }
.hp { position: absolute !important; left: -9999px !important; }
.form__foot { display: flex; flex-wrap: wrap; gap: var(--s-3); align-items: center; justify-content: space-between; }
.form__foot p { font-size: 0.875rem; color: var(--on-dark-muted); max-width: 38ch; }
.form-status { display: none; padding: var(--s-3); border: 1px solid var(--ink-line); }
.form-status.is-visible { display: block; }
.form-status--ok { border-color: var(--coral); }
.form-status strong { display: block; font-weight: 600; margin-bottom: 4px; }
.btn[disabled] { opacity: .6; cursor: progress; }
@media (max-width: 960px) { .contact-people, .form { grid-column: 1 / -1; } }
@media (max-width: 560px) { .form__row { grid-template-columns: 1fr; } }

/* FAQ */
.faq { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--s-4) var(--s-3); }
.faq__head { grid-column: 1 / span 4; display: grid; gap: var(--s-3); align-content: start; }
.faq__list { grid-column: 6 / span 7; border-top: 1px solid var(--ink-line); }
.faq details { border-bottom: 1px solid var(--ink-line); }
.faq summary { list-style: none; display: flex; justify-content: space-between; gap: var(--s-3); align-items: center; padding-block: var(--s-3); cursor: pointer; font-size: 1.25rem; font-weight: 500; letter-spacing: -0.015em; line-height: 1.3; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary svg { width: 22px; height: 22px; flex-shrink: 0; transition: transform .35s var(--ease); color: var(--coral); }
.section--paper .faq summary svg { color: var(--on-light); }
.faq details[open] summary svg { transform: rotate(45deg); }
.faq summary:hover { color: var(--coral); }
.section--paper .faq summary:hover { color: var(--on-light-muted); }
.faq details p { padding-bottom: var(--s-4); color: var(--on-dark-muted); max-width: 60ch; }
@media (max-width: 960px) { .faq__head, .faq__list { grid-column: 1 / -1; } }

/* ---------- Values ---------- */
.values { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 0; border-top: 1px solid var(--ink-line); }
.values > div { padding: var(--s-4) var(--s-3) 0 0; display: grid; gap: 12px; align-content: start; }
.values > div + div { padding-left: var(--s-3); border-left: 1px solid var(--ink-line); }
.values h3 { font-size: 1.375rem; font-weight: 500; letter-spacing: -0.02em; }
.values p { color: var(--on-dark-muted); font-size: var(--t-small); }
@media (max-width: 860px) { .values { grid-template-columns: 1fr 1fr; row-gap: var(--s-4); } .values > div:nth-child(3) { padding-left: 0; border-left: 0; } }
@media (max-width: 480px) { .values { grid-template-columns: 1fr; } .values > div + div { padding-left: 0; border-left: 0; } }

/* ---------- Legal / simple prose page ---------- */
.legal { max-width: 70ch; }
.legal h2 { font-size: 1.5rem; font-weight: 500; letter-spacing: -0.02em; margin: var(--s-5) 0 var(--s-2); }
.legal p, .legal li { color: var(--on-dark-muted); }
.legal p + p { margin-top: 1em; }
.legal ul { padding-left: 1.2em; display: grid; gap: 6px; margin-top: 1em; }
.notice { padding: var(--s-3); border: 1px dashed var(--coral); color: var(--on-dark); font-size: var(--t-small); }

/* ---------- 404 ---------- */
.nf { min-height: 100svh; display: grid; align-items: center; padding-top: var(--header-h); }
.nf__num { font-family: var(--f-display); font-weight: 500; font-size: clamp(8rem, 30vw, 22rem); letter-spacing: -0.07em; line-height: .8; color: var(--coral); }

/* ---------- Utilities ---------- */
.stack-s > * + * { margin-top: var(--s-2); }
.stack > * + * { margin-top: var(--s-3); }
.stack-l > * + * { margin-top: var(--s-5); }
.mt-l { margin-top: var(--s-5); }
.mt-xl { margin-top: clamp(64px, 8vw, 120px); }
.center { text-align: center; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
.no-mark { display: inline-block; width: 16px; height: 1px; background: currentColor; vertical-align: middle; opacity: .7; }

/* ---------- Footer: speak + social ---------- */
.footer-speak { display: grid; gap: var(--s-3); justify-items: start; }
.footer-speak p { color: var(--on-dark-muted); font-size: var(--t-small); max-width: 30ch; }
.footer-social { display: inline-flex; align-items: center; gap: 8px; }
.footer-social svg { width: 14px; height: 14px; }

/* ---------- Header hides on scroll down ---------- */
.site-header { transition: background-color .35s var(--ease), border-color .35s var(--ease), transform .45s var(--ease); }
.site-header.is-hidden { transform: translateY(-100%); }

/* ---------- Scroll motion (only when JS adds .motion to <html>) ---------- */
.motion .rv { opacity: 0; transform: translateY(36px); transition: opacity 1s var(--ease), transform 1s var(--ease); transition-delay: var(--d, 0s); }
.motion .rv.in { opacity: 1; transform: none; }
.motion .rv-img > img { clip-path: inset(0 0 100% 0); transition: clip-path 1.2s var(--ease), transform .8s var(--ease); transition-delay: var(--d, 0s); }
.motion .rv-img.in > img { clip-path: inset(0 0 0 0); }
.band__img, .split-hero__img img { will-change: transform; }
.motion .band__img { transform: scale(1.14) translate3d(0, var(--py, 0px), 0); }
.scrub .w { opacity: .18; transition: opacity .25s linear; }
.scrub .w.on { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .motion .rv, .motion .rv-img > img { opacity: 1; transform: none; clip-path: none; }
  .motion .band__img { transform: none; }
  .scrub .w { opacity: 1; }
}

/* ---------- Interactive six-week cycle ---------- */
.cyc { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(32px, 5vw, 88px); align-items: center; }
.cyc__dial { position: relative; width: 100%; max-width: 520px; justify-self: center; aspect-ratio: 1 / 1; }
.cyc__dial svg { width: 100%; height: 100%; overflow: visible; }
.cyc__track { fill: none; stroke: #2A2825; stroke-width: 20; }
.cyc__tick { stroke: #3A3733; stroke-width: 1; stroke-dasharray: 2 4; }
.cyc__wk { fill: var(--on-dark-muted); font-family: var(--f-mono); font-size: 13px; letter-spacing: .08em; }
.cyc__arc { fill: none; stroke: #55504A; stroke-width: 20; stroke-linecap: butt; transition: stroke .45s var(--ease), stroke-width .45s var(--ease), opacity .45s var(--ease); cursor: pointer; }
.cyc__arc--ongoing { stroke-dasharray: 3 7; opacity: .9; }
.cyc__arc.is-on { stroke: var(--coral); stroke-width: 26; }
.cyc__arc--ongoing.is-on { stroke: var(--coral); opacity: .55; }
.cyc__needle { transform-origin: 210px 210px; transition: transform 1.1s var(--ease); }
.cyc__needle line { stroke: var(--on-dark); stroke-width: 1.5; }
.cyc__needle circle { fill: var(--on-dark); }
.cyc__centre { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; pointer-events: none; }
.cyc__centre strong { font-family: var(--f-display); font-weight: 500; font-size: clamp(3.5rem, 2rem + 4vw, 5.5rem); line-height: .85; letter-spacing: -0.06em; }
.cyc__centre span { font-family: var(--f-mono); font-size: var(--t-label); letter-spacing: .12em; text-transform: uppercase; color: var(--on-dark-muted); margin-top: 6px; }
.cyc__centre em { font-family: var(--f-serif); font-style: italic; font-weight: 600; color: var(--coral); font-size: 1.05rem; margin-top: 10px; }
.cyc__side { display: grid; gap: var(--s-4); }
.cyc__tabs { display: grid; border-top: 1px solid var(--ink-line); }
.cyc__tab, .exp__tab {
  position: relative; display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: var(--s-2);
  text-align: left; padding: 20px 0; border-bottom: 1px solid var(--ink-line); color: var(--on-dark-muted);
  transition: color .3s var(--ease);
}
.cyc__tab:hover, .exp__tab:hover { color: var(--on-dark); }
.cyc__tab[aria-selected="true"], .exp__tab[aria-selected="true"] { color: var(--on-dark); }
.cyc__num { font-family: var(--f-mono); font-size: 0.8125rem; letter-spacing: .08em; }
.cyc__tab[aria-selected="true"] .cyc__num, .exp__tab[aria-selected="true"] .cyc__num { color: var(--coral); }
.cyc__tname { font-family: var(--f-display); font-weight: 500; font-size: clamp(1.5rem, 1.1rem + 1vw, 2.125rem); letter-spacing: -0.03em; line-height: 1.05; }
.cyc__tname small { display: block; font-family: var(--f-body); font-size: var(--t-small); letter-spacing: 0; color: var(--on-dark-muted); margin-top: 4px; font-weight: 400; }
.cyc__twk { color: var(--on-dark-muted); text-align: right; }
.cyc__bar { position: absolute; left: 0; bottom: -1px; height: 2px; width: 100%; background: var(--coral); transform: scaleX(0); transform-origin: left; }
[aria-selected="true"] > .cyc__bar { transform: scaleX(1); }
[data-tabs].is-playing [aria-selected="true"] > .cyc__bar { animation: tabprog var(--play, 5s) linear forwards; }
@keyframes tabprog { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.cyc__panel { display: grid; gap: var(--s-3); padding: var(--s-4); background: var(--ink-3); min-height: 230px; align-content: start; }
.cyc__panel:not([hidden]), .exp__panel:not([hidden]) { animation: panelin .6s var(--ease); }
@keyframes panelin { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.cyc__panel ul, .exp__panel ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.cyc__panel li, .exp__panel li { display: grid; grid-template-columns: 16px 1fr; gap: 12px; color: var(--on-dark); }
.cyc__panel li::before, .exp__panel li::before { content: ""; width: 8px; height: 8px; background: var(--coral); margin-top: 9px; }
.cyc__line { padding-top: var(--s-2); border-top: 1px solid var(--ink-line); color: var(--on-dark-muted); font-size: var(--t-small); }
.cyc__tab:focus-visible, .exp__tab:focus-visible { outline-offset: -2px; }
@media (max-width: 960px) {
  .cyc { grid-template-columns: 1fr; }
  .cyc__dial { max-width: 360px; }
  .cyc__twk { display: none; }
}

.extras { margin-top: clamp(64px, 8vw, 112px); display: grid; gap: var(--s-4); }
.extras__title { font-size: var(--t-h3); font-weight: 500; letter-spacing: -0.02em; }
.extras__title em { font-family: var(--f-serif); font-style: italic; font-weight: 600; color: var(--coral); }

/* ---------- Elite explorer ---------- */
.explorer { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 88px); align-items: start; }
.exp__tabs { display: grid; border-top: 1px solid var(--ink-line); }
.exp__tab { grid-template-columns: 44px 1fr; padding: 22px 0; }
.exp__tname { font-family: var(--f-display); font-weight: 500; font-size: clamp(1.375rem, 1.05rem + .9vw, 1.875rem); letter-spacing: -0.03em; }
.exp__stage { position: sticky; top: calc(var(--header-h) + 32px); }
.exp__panel { display: grid; gap: var(--s-3); padding: clamp(28px, 3.4vw, 48px); background: var(--ink-3); border-top: 2px solid var(--coral); }
.exp__panel h3 { font-size: clamp(2.25rem, 1.5rem + 2vw, 3.5rem); font-weight: 500; letter-spacing: -0.045em; line-height: 1; }
.exp__panel h3 span { display: block; font-family: var(--f-serif); font-style: italic; font-weight: 600; font-size: .5em; letter-spacing: -0.01em; color: var(--coral); margin-top: 10px; }
.exp__rhythm { display: grid; gap: 12px; padding-top: var(--s-3); border-top: 1px solid var(--ink-line); }
.exp__rhythm .label { color: var(--on-dark-muted); }
.exp__months { display: grid; grid-template-columns: repeat(12, 1fr); gap: 4px; }
.exp__m { display: grid; gap: 6px; justify-items: center; }
.exp__m i { display: block; width: 100%; height: 26px; background: #2E2B28; }
.exp__m.on i { background: var(--coral); }
.exp__m b { font-family: var(--f-mono); font-weight: 500; font-size: 0.6875rem; color: var(--on-dark-muted); }
@media (max-width: 960px) { .explorer { grid-template-columns: 1fr; } .exp__stage { position: static; } }
@media (prefers-reduced-motion: reduce) { .cyc__panel:not([hidden]), .exp__panel:not([hidden]) { animation: none; } .cyc__needle { transition: none; } }

/* =========================================================
   Round 3: About, Team, Contact
   ========================================================= */

/* About: intro grid */
.intro-grid { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--s-5) var(--s-3); align-items: end; }
.intro-grid__title { grid-column: 1 / span 8; font-family: var(--f-display); font-weight: 500; font-size: clamp(2rem, 1rem + 3vw, 3.75rem); line-height: 1.04; letter-spacing: -0.04em; text-wrap: balance; }
.intro-grid__title em { font-family: var(--f-serif); font-style: italic; font-weight: 600; color: var(--coral); letter-spacing: -0.025em; }
.intro-grid__body { grid-column: 9 / span 4; }
.pillars { grid-column: 1 / -1; list-style: none; margin: var(--s-4) 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); border-top: 1px solid var(--ink-line); }
.pillars li { padding: var(--s-4) var(--s-4) 0 0; display: grid; gap: 12px; align-content: start; }
.pillars li + li { padding-left: var(--s-4); border-left: 1px solid var(--ink-line); }
.pillars h3 { font-size: var(--t-h3); font-weight: 500; letter-spacing: -0.02em; line-height: 1.15; }
.pillars p { color: var(--on-dark-muted); max-width: 34ch; }
@media (max-width: 960px) {
  .intro-grid__title, .intro-grid__body { grid-column: 1 / -1; }
  .pillars { grid-template-columns: 1fr; }
  .pillars li, .pillars li + li { padding: var(--s-4) 0; border-left: 0; border-bottom: 1px solid var(--ink-line); }
}

/* About: ART switchboard */
.artsw { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 88px); align-items: center; }
.artsw__venn svg { width: 100%; height: auto; overflow: visible; }
.vc { fill: rgba(241, 90, 45, .16); stroke: var(--coral); stroke-width: 2; mix-blend-mode: screen; cursor: pointer; transition: fill .5s var(--ease), stroke .5s var(--ease), transform .7s var(--ease), opacity .5s var(--ease); transform-box: fill-box; transform-origin: center; }
.vc:hover { fill: rgba(241, 90, 45, .26); }
.vc.is-off { fill: transparent; stroke: #4A4540; stroke-dasharray: 4 8; transform: scale(.9); }
.artsw:not(.is-whole) .vc:not(.is-off) { fill: rgba(241, 90, 45, .12); }
.vl { fill: var(--on-dark); font-family: var(--f-display); font-weight: 500; font-size: 20px; letter-spacing: -0.02em; pointer-events: none; transition: fill .4s var(--ease), opacity .4s var(--ease); }
.vl.is-off { fill: #6B655D; }
.artsw__core { transition: opacity .5s var(--ease), transform .7s var(--ease); transform-box: fill-box; transform-origin: center; }
.artsw__core circle { fill: var(--coral); }
.artsw__core text { fill: var(--ink); font-family: var(--f-mono); font-size: 13px; font-weight: 500; letter-spacing: .12em; }
.artsw:not(.is-whole) .artsw__core { opacity: 0; transform: scale(.4); }
.artsw__side { display: grid; gap: var(--s-4); }
.artsw__switches { display: grid; gap: 10px; }
.sw { display: grid; grid-template-columns: 52px 32px 1fr; align-items: center; gap: var(--s-2); padding: 14px 18px; border: 1px solid var(--ink-line); text-align: left; transition: border-color .3s var(--ease), background-color .3s var(--ease); }
.sw:hover { border-color: #6B655D; }
.sw[aria-pressed="true"] { background: var(--ink-3); border-color: #4A4540; }
.sw__track { position: relative; width: 44px; height: 24px; border-radius: 999px; background: #3A3733; transition: background-color .3s var(--ease); }
.sw__dot { position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: var(--on-dark); transition: transform .35s var(--ease); }
.sw[aria-pressed="true"] .sw__track { background: var(--coral); }
.sw[aria-pressed="true"] .sw__dot { transform: translateX(20px); background: var(--ink); }
.sw__l { font-family: var(--f-display); font-weight: 500; font-size: 1.75rem; letter-spacing: -0.04em; color: var(--coral); line-height: 1; }
.sw[aria-pressed="false"] .sw__l { color: #6B655D; }
.sw__name { font-size: 1.125rem; font-weight: 500; letter-spacing: -0.01em; }
.artsw__out { display: grid; gap: 12px; padding: var(--s-4); border-top: 2px solid var(--coral); background: var(--ink); min-height: 220px; align-content: start; }
.artsw__status { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s-2); }
.artsw__status .label { color: var(--on-dark-muted); }
.artsw__status strong { font-family: var(--f-serif); font-style: italic; font-weight: 600; color: var(--coral); font-size: 1.375rem; }
.artsw__out h3 { font-size: clamp(1.625rem, 1.2rem + 1vw, 2.25rem); font-weight: 500; letter-spacing: -0.035em; line-height: 1.08; }
.artsw__out p { color: var(--on-dark-muted); max-width: 44ch; }
@media (max-width: 960px) { .artsw { grid-template-columns: 1fr; } .artsw__venn { max-width: 460px; justify-self: center; width: 100%; } }

/* About: insight > action > habit */
.flow { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); position: relative; counter-reset: none; }
.flow::before { content: ""; position: absolute; left: 0; right: 0; top: 18px; height: 1px; background: var(--ink-line); }
.flow__step { position: relative; padding: 52px var(--s-4) 0 0; display: grid; gap: 12px; align-content: start; }
.flow__step::before { content: ""; position: absolute; top: 12px; left: 0; width: 13px; height: 13px; background: var(--coral); transform: rotate(45deg); }
.flow__step::after { content: ""; position: absolute; top: 18px; left: 0; height: 1px; width: 0; background: var(--coral); transition: width 1.4s var(--ease); transition-delay: var(--d, 0s); }
.motion .flow__step.in::after, .flow__step:not(.rv)::after { width: 100%; }
.flow__n { color: var(--on-dark-muted); }
.flow__step h3 { font-family: var(--f-display); font-weight: 500; font-size: clamp(2.5rem, 1.6rem + 2.6vw, 4.5rem); letter-spacing: -0.05em; line-height: .95; }
.flow__step:nth-child(2) h3 { font-family: var(--f-serif); font-style: italic; font-weight: 600; color: var(--coral); letter-spacing: -0.03em; }
.flow__step p { color: var(--on-dark-muted); max-width: 30ch; }
@media (max-width: 860px) {
  .flow { grid-template-columns: 1fr; gap: var(--s-5); }
  .flow::before { left: 6px; right: auto; top: 0; bottom: 0; width: 1px; height: auto; }
  .flow__step { padding: 0 0 0 40px; }
  .flow__step::before { top: 10px; }
  .flow__step::after { display: none; }
}

.band--short { min-height: clamp(380px, 46vw, 560px); }

/* About: experience split */
.exp-split { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--s-5) var(--s-3); align-items: start; }
.exp-split__head { grid-column: 1 / span 4; display: grid; gap: var(--s-3); position: sticky; top: calc(var(--header-h) + 40px); }
.specs--stack { grid-column: 6 / span 7; grid-template-columns: 1fr; border-top: 0; }
.specs--stack .spec, .specs--stack .spec + .spec { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: end; padding: var(--s-4) 0; border-left: 0; border-top: 1px solid var(--ink-line); gap: var(--s-3); }
.specs--stack .spec p { max-width: 32ch; }
.section--paper .spec__num sup { color: var(--coral); }
@media (max-width: 960px) { .exp-split__head, .specs--stack { grid-column: 1 / -1; position: static; } }

/* About: solo quote */
.quote-solo { display: grid; gap: var(--s-4); max-width: 1000px; }
.quote-solo blockquote { font-family: var(--f-display); font-weight: 500; font-size: clamp(1.75rem, 1rem + 2.4vw, 3.25rem); line-height: 1.1; letter-spacing: -0.035em; text-wrap: balance; }
.quote-solo blockquote em { font-family: var(--f-serif); font-style: italic; font-weight: 600; color: var(--coral); }

/* Team: duo cards */
.duo { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-3); }
.duo__card { display: grid; grid-template-rows: auto 1fr; background: var(--ink-2); transition: background-color .4s var(--ease); }
.duo__card:hover { background: var(--ink-3); }
.duo__img { position: relative; aspect-ratio: 4 / 4.6; overflow: hidden; background: var(--ink-2); }
.duo__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 18%; transition: transform 1s var(--ease), opacity .7s var(--ease); }
.duo__alt { opacity: 0; object-position: 60% center !important; }
.duo__card:hover .duo__img img { transform: scale(1.03); }
.duo__card:hover .duo__alt { opacity: 1; }
.duo__body { display: grid; gap: var(--s-3); padding: clamp(24px, 3vw, 40px); align-content: start; }
.duo__name { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s-2); flex-wrap: wrap; }
.duo__name h2 { font-size: clamp(2rem, 1.3rem + 2vw, 3.25rem); font-weight: 500; letter-spacing: -0.045em; line-height: 1; }
.duo__body > p { color: var(--on-dark-muted); max-width: 44ch; }
.duo__facts { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); border-top: 1px solid var(--ink-line); list-style: none; margin: 0; padding: 0; }
.duo__facts li { padding: var(--s-2) var(--s-2) 0 0; display: grid; gap: 4px; }
.duo__facts li + li { padding-left: var(--s-2); border-left: 1px solid var(--ink-line); }
.duo__facts strong { font-family: var(--f-display); font-weight: 500; font-size: clamp(1.5rem, 1.1rem + 1vw, 2.25rem); letter-spacing: -0.04em; line-height: 1; }
.duo__facts span { font-size: 0.8125rem; color: var(--on-dark-muted); }
.duo__card .link-arrow { justify-self: start; }
.duo__card:hover .link-arrow { border-color: var(--coral); }
.duo__card:hover .link-arrow svg { transform: translateX(4px); }
@media (max-width: 680px) { .duo { grid-template-columns: 1fr; } }

/* Team: dual timeline */
.tl { display: grid; gap: 0; }
.tl__axis, .tl__lane, .tl__forge { display: grid; grid-template-columns: 180px 1fr; align-items: center; }
.tl__years { position: relative; height: 32px; }
.tl__years span { position: absolute; bottom: 8px; transform: translateX(-50%); color: var(--on-dark-muted); }
.tl__years span:first-child { transform: none; }
.tl__years .tl__now { transform: translateX(-100%); color: var(--coral); }
.tl__lane { border-top: 1px solid var(--ink-line); }
.tl__who { font-family: var(--f-display); font-weight: 500; font-size: 1.25rem; letter-spacing: -0.02em; padding-right: var(--s-2); }
.tl__who:hover { color: var(--coral); }
.tl__track { position: relative; height: 128px; background-image: linear-gradient(90deg, #2A2825 1px, transparent 1px); background-size: calc(100% / 26 * 5) 100%; }
.tl__bar { position: absolute; height: 44px; padding: 0 12px; display: flex; align-items: center; background: #34312D; color: var(--on-dark); font-size: 0.8125rem; font-weight: 500; text-align: left; overflow: hidden; white-space: nowrap; border-left: 2px solid var(--coral); transition: background-color .3s var(--ease), color .3s var(--ease); }
.tl__bar span { overflow: hidden; text-overflow: ellipsis; }
.tl__bar--r0 { top: 14px; }
.tl__bar--r1 { top: 70px; }
.tl__bar:hover, .tl__bar[aria-pressed="true"] { background: var(--coral); color: var(--ink); }
.tl__forge-track { position: relative; height: 56px; border-top: 1px solid var(--ink-line); }
.tl__forge-mark { position: absolute; right: 0; top: 14px; display: inline-flex; align-items: center; gap: 10px; font-family: var(--f-mono); font-size: var(--t-label); letter-spacing: .14em; font-weight: 500; color: var(--coral); }
.tl__forge-mark::before { content: ""; position: absolute; right: 0; bottom: 100%; width: 2px; height: 300px; background: linear-gradient(to top, var(--coral), transparent); pointer-events: none; }
.tl__detail { margin-top: var(--s-4); display: grid; grid-template-columns: 180px minmax(0, 1fr) auto; gap: 8px var(--s-3); align-items: baseline; padding: var(--s-4) 0 0; border-top: 2px solid var(--coral); }
.tl__detail h3 { font-size: clamp(1.5rem, 1.1rem + 1vw, 2.25rem); font-weight: 500; letter-spacing: -0.035em; line-height: 1.1; }
.tl__detail p { grid-column: 2; color: var(--on-dark-muted); max-width: 60ch; }
.tl__detail [data-tl-when] { grid-column: 3; grid-row: 1; }
@media (max-width: 860px) {
  .tl__axis, .tl__forge { display: none; }
  .tl__lane { grid-template-columns: 1fr; }
  .tl__who { padding: var(--s-3) 0 var(--s-2); }
  .tl__track { height: auto; background: none; display: grid; gap: 8px; padding-bottom: var(--s-3); }
  .tl__bar { position: static; width: auto !important; height: 48px; }
  .tl__detail { grid-template-columns: 1fr; }
  .tl__detail p, .tl__detail [data-tl-when] { grid-column: 1; grid-row: auto; }
}

/* Contact: hero */
.contact-hero { padding-top: calc(var(--header-h) + clamp(48px, 7vw, 112px)); padding-bottom: clamp(56px, 7vw, 104px); position: relative; overflow: hidden; }
.contact-hero__grid { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--s-5) var(--s-3); align-items: end; position: relative; z-index: 1; }
.contact-hero__copy { grid-column: 1 / span 6; display: grid; gap: var(--s-4); justify-items: start; }
.contact-hero__copy .h-hero { font-size: clamp(2.75rem, 1rem + 3.5vw, 4.5rem); }
.contact-hero__people { grid-column: 8 / span 5; display: grid; gap: var(--s-3); }
.founder-contact { display: grid; grid-template-columns: 120px 1fr; gap: var(--s-3); padding: var(--s-3); background: var(--ink-2); border: 1px solid #26241F; transition: border-color .3s var(--ease); }
.founder-contact:hover { border-color: #4A4540; }
.founder-contact img { width: 120px; height: 150px; object-fit: cover; object-position: center 15%; }
.founder-contact__body { display: grid; gap: 10px; align-content: start; min-width: 0; }
.founder-contact h3 { font-size: 1.5rem; font-weight: 500; letter-spacing: -0.03em; }
.founder-contact dl { display: grid; gap: 6px; margin: 0; }
.founder-contact dl div { display: grid; grid-template-columns: 52px 1fr; gap: 10px; align-items: baseline; }
.founder-contact dt { color: var(--on-dark-muted); font-size: 0.6875rem; }
.founder-contact dd { margin: 0; font-size: 0.9375rem; overflow-wrap: break-word; }
.founder-contact dd a:hover { color: var(--coral); }
.founder-contact .link-arrow { justify-self: start; padding-block: 6px; font-size: 0.75rem; }
@media (max-width: 960px) { .contact-hero__copy, .contact-hero__people { grid-column: 1 / -1; } }
@media (max-width: 480px) { .founder-contact { grid-template-columns: 88px 1fr; } .founder-contact img { width: 88px; height: 110px; } }

/* Contact: enquiry block */
.enquire { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--s-6) var(--s-3); align-items: start; }
.enquire__side { grid-column: 1 / span 4; display: grid; gap: var(--s-5); position: sticky; top: calc(var(--header-h) + 40px); }
.next-steps { list-style: none; margin: 0; padding: 0; display: grid; border-top: 1px solid var(--ink-line); }
.next-steps li { display: grid; grid-template-columns: 40px 1fr; gap: var(--s-2); padding: var(--s-3) 0; border-bottom: 1px solid var(--ink-line); }
.next-steps h3 { font-size: 1.125rem; font-weight: 500; letter-spacing: -0.01em; margin-bottom: 4px; }
.next-steps p { color: var(--on-dark-muted); font-size: var(--t-small); }
.form--panel { grid-column: 6 / span 7; padding: clamp(24px, 3.5vw, 48px); background: var(--ink); border-top: 2px solid var(--coral); }
.form--panel .field input, .form--panel .field textarea { background: var(--ink-2); }
.chips { border: 0; margin: 0 0 var(--s-2); padding: 0; display: grid; gap: 12px; }
.chips legend { font-size: var(--t-small); font-weight: 500; padding: 0; margin-bottom: 12px; }
.chips__row { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { position: relative; cursor: pointer; }
.chip input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.chip span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid var(--ink-line); border-radius: 999px; font-size: 0.9375rem; transition: background-color .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease); }
.chip:hover span { border-color: #6B655D; }
.chip input:checked + span { background: var(--coral); border-color: var(--coral); color: var(--ink); font-weight: 500; }
.chip input:focus-visible + span { outline: 2px solid var(--coral); outline-offset: 3px; }
@media (max-width: 960px) { .enquire__side, .form--panel { grid-column: 1 / -1; position: static; } }
@media (max-width: 560px) {
  .founder-contact { grid-template-columns: 76px 1fr; padding: var(--s-2); gap: var(--s-2); }
  .founder-contact img { width: 76px; height: 96px; }
  .founder-contact dl div { grid-template-columns: 1fr; gap: 0; }
  .founder-contact dd { font-size: 0.875rem; overflow-wrap: anywhere; }
}
@media (max-width: 560px) {
  .founder-contact { grid-template-columns: 60px 1fr; }
  .founder-contact img { width: 60px; height: 76px; }
  .founder-contact dd { font-size: 0.8125rem; letter-spacing: -0.01em; }
}

/* =========================================================
   Round 4: hover states and new interactions
   ========================================================= */

/* Programme tiers light up coral on hover (Elite is lit when nothing is hovered) */
.tier { transition: background-color .45s var(--ease), color .45s var(--ease); }
.tier .link-arrow::after { content: ""; position: absolute; inset: 0; }
.tier .tier__price strong { transition: transform .45s var(--ease); transform-origin: left bottom; display: inline-block; }
.tier:hover, .tier:focus-within,
.tiers:not(:has(.tier:hover, .tier:focus-within)) .tier--elite {
  background: var(--coral); color: var(--ink); --on-dark-muted: #3A1A0F; --ink-line: rgba(15,14,13,.22);
}
.tier:hover li svg, .tier:focus-within li svg, .tiers:not(:has(.tier:hover, .tier:focus-within)) .tier--elite li svg { color: var(--ink); }
.tier:hover .link-arrow, .tier:focus-within .link-arrow { border-color: var(--ink); }
.tier:hover .link-arrow svg { transform: translateX(6px); }
.tier:hover .tier__price strong { transform: scale(1.06); }
.tiers:has(.tier:hover, .tier:focus-within) .tier--elite:not(:hover):not(:focus-within) { background: var(--ink-2); color: var(--on-dark); }
.tier--elite { background: var(--ink-2); color: var(--on-dark); --on-dark-muted: #A9A39A; --ink-line: #34312E; }
.tier--elite li svg { color: var(--coral); }
.tiers:has(.tier:hover, .tier:focus-within) .tier--elite:not(:hover):not(:focus-within) { --on-dark-muted: #A9A39A; --ink-line: #34312E; }
.tiers:has(.tier:hover, .tier:focus-within) .tier--elite:not(:hover):not(:focus-within) li svg { color: var(--coral); }
.tiers:not(:has(.tier:hover, .tier:focus-within)) .tier--elite { --on-dark-muted: #3A1A0F; --ink-line: rgba(15,14,13,.22); }

/* Programmes: interactive six-week cycle */
.cycle { position: relative; }
.cycle__hl { position: absolute; top: 0; bottom: 0; left: 0; width: 0; background: rgba(241, 90, 45, .10); border-inline: 1px solid rgba(241, 90, 45, .45); opacity: 0; pointer-events: none; transition: left .45s var(--ease), width .45s var(--ease), opacity .3s var(--ease); }
.cycle.has-week .cycle__hl { opacity: 1; }
.cycle__scale-lead { color: var(--on-dark-muted); align-self: center; }
.cycle__wk { text-align: left; padding: 10px 0 10px 12px; border-left: 1px solid var(--ink-line); color: var(--on-dark-muted); font: inherit; letter-spacing: inherit; text-transform: inherit; transition: color .25s var(--ease); }
.cycle__wk:hover, .cycle__wk.is-on { color: var(--coral); }
.section--paper .cycle__wk:hover, .section--paper .cycle__wk.is-on { color: var(--on-light); font-weight: 600; }
.cycle__bar { font: inherit; font-size: 0.875rem; color: inherit; text-align: left; cursor: pointer; transition: background-color .3s var(--ease), color .3s var(--ease), opacity .3s var(--ease), transform .35s var(--ease); }
.cycle__bar:hover, .cycle__bar.is-on { background: var(--coral) !important; color: var(--ink); border-left-color: var(--ink); transform: translateY(-2px); }
.cycle.is-active .cycle__bar:not(.is-on) { opacity: .4; }
.cycle__row { transition: opacity .3s var(--ease); }
.cycle__detail { margin-top: var(--s-4); padding-top: var(--s-3); border-top: 2px solid var(--coral); display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 6px var(--s-3); align-items: baseline; min-height: 120px; }
.cycle__detail .label { color: var(--on-dark-muted); }
.cycle__detail h3 { font-size: clamp(1.5rem, 1.1rem + 1vw, 2.25rem); font-weight: 500; letter-spacing: -0.035em; line-height: 1.1; }
.cycle__detail p { grid-column: 2; color: var(--on-dark-muted); max-width: 64ch; }
@media (max-width: 860px) {
  .cycle__scale { display: flex; overflow-x: auto; gap: 0; }
  .cycle__scale-lead { display: none; }
  .cycle__wk { flex: 1 0 auto; padding: 10px 12px; }
  .cycle__bar--ongoing { display: none; }
  .cycle__hl { display: none; }
  .cycle__detail { grid-template-columns: 1fr; }
  .cycle__detail p { grid-column: 1; }
}
@media (max-width: 860px) { .cycle__scale { display: flex !important; } }

/* Compare table: row and column hover */
.compare td, .compare th { transition: background-color .25s var(--ease), color .25s var(--ease); }
.compare tbody tr:hover th, .compare tbody tr:hover td { background: rgba(241, 90, 45, .07); color: var(--on-dark); }
.compare .col-hl { background: rgba(241, 90, 45, .16) !important; color: var(--on-dark); }
.compare thead th.col-hl { color: var(--coral); }
.compare tbody tr:hover th { color: var(--coral); }
.compare thead th:not(:first-child) { cursor: default; }

/* About: Insight > Action > Habit, interactive */
.flow-wrap { display: grid; gap: var(--s-4); }
.flow__step { padding: 0; }
.flow__btn { display: grid; gap: 12px; text-align: left; padding: 52px var(--s-4) var(--s-2) 0; width: 100%; color: var(--on-dark-muted); cursor: pointer; transition: color .3s var(--ease); }
.flow__btn .flow__h { font-family: var(--f-display); font-weight: 500; font-size: clamp(2.5rem, 1.6rem + 2.6vw, 4.5rem); letter-spacing: -0.05em; line-height: .95; color: #5A554F; transition: color .35s var(--ease), transform .45s var(--ease); display: inline-block; transform-origin: left bottom; }
.flow__btn .flow__p { max-width: 30ch; transition: color .3s var(--ease); }
.flow__btn[aria-pressed="true"] .flow__h, .flow__btn:hover .flow__h { color: var(--on-dark); }
.flow__btn[aria-pressed="true"] .flow__h { color: var(--coral); font-family: var(--f-serif); font-style: italic; font-weight: 600; letter-spacing: -0.03em; }
.flow__btn[aria-pressed="true"] .flow__p { color: var(--on-dark); }
.flow__step:nth-child(2) h3 { all: unset; }
.flow__step::before { transition: transform .45s var(--ease), background-color .3s var(--ease); background: #4A4540; }
.flow__step.is-reached::before { background: var(--coral); }
.flow__step.is-current::before { transform: rotate(45deg) scale(1.5); }
.flow__step::after { width: 0 !important; }
.flow__step.is-reached::after { width: 100% !important; }
.flow__step.is-current::after { width: 0 !important; }
.flow__detail { display: grid; grid-template-columns: minmax(0, 220px) minmax(0, 1fr) auto; gap: 8px var(--s-4); align-items: baseline; padding-top: var(--s-3); border-top: 2px solid var(--coral); min-height: 96px; }
.flow__detail p { font-size: clamp(1.125rem, 1rem + .4vw, 1.375rem); line-height: 1.45; letter-spacing: -0.01em; max-width: 60ch; }
.flow__detail p { animation: panelin .5s var(--ease); }
@media (max-width: 860px) {
  .flow__btn { padding: 0 0 0 40px; }
  .flow__detail { grid-template-columns: 1fr; }
}

/* About: Is FORGE for you? */
.fitq { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s-3); align-items: stretch; }
.fitq__main { display: grid; gap: var(--s-3); align-content: start; }
.fitq__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.fitq__item { width: 100%; display: grid; grid-template-columns: 36px 1fr; gap: var(--s-2); align-items: center; text-align: left; padding: 22px 24px; background: var(--ink-2); border: 1px solid #26241F; font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem); letter-spacing: -0.01em; line-height: 1.35; transition: background-color .3s var(--ease), border-color .3s var(--ease), color .3s var(--ease), transform .35s var(--ease); }
.fitq__item:hover { border-color: #55504A; transform: translateX(6px); }
.fitq__box { width: 32px; height: 32px; display: grid; place-items: center; border: 1.5px solid #55504A; transition: background-color .3s var(--ease), border-color .3s var(--ease); }
.fitq__box svg { width: 20px; height: 20px; opacity: 0; transform: scale(.5); transition: opacity .25s var(--ease), transform .35s var(--ease); color: var(--ink); }
.fitq__item[aria-pressed="true"] { background: var(--ink-3); border-color: var(--coral); }
.fitq__item[aria-pressed="true"] .fitq__box { background: var(--coral); border-color: var(--coral); }
.fitq__item[aria-pressed="true"] .fitq__box svg { opacity: 1; transform: none; }
.fitq__side { display: grid; grid-template-rows: auto 1fr auto; gap: var(--s-3); padding: clamp(24px, 3vw, 40px); background: var(--ink-2); border-top: 2px solid var(--coral); }
.fitq__meter { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.fitq__meter i { height: 8px; background: #34312E; transition: background-color .4s var(--ease); }
.fitq__meter i.on { background: var(--coral); }
.fitq__verdict { display: grid; gap: 10px; align-content: start; }
.fitq__verdict .label { color: var(--on-dark-muted); }
.fitq__verdict h3 { font-size: clamp(1.625rem, 1.2rem + 1vw, 2.25rem); font-weight: 500; letter-spacing: -0.035em; line-height: 1.08; }
.fitq__verdict p { color: var(--on-dark-muted); }
.fitq__cta { justify-self: start; margin-top: 6px; opacity: 0; transform: translateY(8px); pointer-events: none; transition: opacity .4s var(--ease), transform .4s var(--ease), background-color .25s var(--ease), color .25s var(--ease); }
.fitq.is-fit .fitq__cta { opacity: 1; transform: none; pointer-events: auto; }
.fitq__not { display: grid; gap: 10px; padding-top: var(--s-3); border-top: 1px solid var(--ink-line); }
.fitq__not ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.strike { position: relative; color: var(--on-dark-muted); display: inline-block; }
.strike::after { content: ""; position: absolute; left: -2px; right: -2px; top: 55%; height: 1.5px; background: var(--coral); transform: scaleX(0); transform-origin: left; transition: transform .7s var(--ease); }
.fitq.in .strike::after, .fitq:not(.rv) .strike::after { transform: scaleX(1); }
.fitq__not li:nth-child(2) .strike::after { transition-delay: .12s; }
.fitq__not li:nth-child(3) .strike::after { transition-delay: .24s; }
.fitq__not li:nth-child(4) .strike::after { transition-delay: .36s; }
.fitq__not li:hover .strike { color: var(--on-dark); }
@media (max-width: 960px) { .fitq { grid-template-columns: 1fr; } }

/* Contact: founder cards, redesigned so addresses always fit */
.founder-contact { display: grid; grid-template-columns: 1fr; gap: var(--s-3); padding: var(--s-3) var(--s-3) var(--s-2); }
.founder-contact__top { display: grid; grid-template-columns: 64px 1fr; gap: var(--s-2); align-items: center; }
.founder-contact__top img { width: 64px; height: 80px; object-fit: cover; object-position: center 15%; }
.founder-contact__top h3 { font-size: 1.5rem; font-weight: 500; letter-spacing: -0.03em; margin-bottom: 4px; }
.founder-contact__links { list-style: none; margin: 0; padding: 0; display: grid; border-top: 1px solid var(--ink-line); }
.founder-contact__links li { border-bottom: 1px solid var(--ink-line); }
.founder-contact__links li:last-child { border-bottom: 0; }
.founder-contact__links a { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 12px; align-items: center; padding: 12px 0; font-size: 0.9375rem; transition: color .25s var(--ease); }
.founder-contact__links a:hover { color: var(--coral); }
.founder-contact__links svg { width: 16px; height: 16px; color: var(--coral); }
.fc-email { min-width: 0; display: flex; flex-wrap: wrap; line-height: 1.35; }
.fc-email > span { white-space: nowrap; }
@media (max-width: 420px) { .fc-email > span { white-space: normal; overflow-wrap: anywhere; } }
@media (max-width: 860px) {
  .cycle__scale { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: visible; margin-bottom: var(--s-2); border-top: 1px solid var(--ink-line); }
  .cycle__wk { padding: 12px 10px; border-left: 0; border-bottom: 1px solid var(--ink-line); min-height: 44px; }
  .cycle__wk:nth-child(3n+2), .cycle__wk:nth-child(3n+3) { border-left: 1px solid var(--ink-line); }
}

/* =========================================================
   Round 5: hero upgrades, marks on inner pages, footer
   ========================================================= */
[data-mark3d] { position: relative; }
[data-mark3d] canvas, [data-mark3d] img.hero__fallback { width: 100%; height: 100%; object-fit: contain; }
[data-mark3d][data-3d="on"] img.hero__fallback { display: none; }
[data-mark3d] canvas { cursor: grab; touch-action: pan-y; }

/* Home hero: forge sparks behind the mark, rising embers */
.hero__bg { position: absolute; top: 0; right: 0; bottom: 0; width: 58%; z-index: 0; pointer-events: none; }
.hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 70% 60%; opacity: .62;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 38%, #000 100%), linear-gradient(180deg, transparent 0%, #000 22%, #000 70%, transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0%, #000 38%, #000 100%), linear-gradient(180deg, transparent 0%, #000 22%, #000 70%, transparent 100%);
  -webkit-mask-composite: source-in; mask-composite: intersect; }
.hero__embers { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
.hero .container { position: relative; z-index: 2; }
.hero__meta { z-index: 3; }
@media (max-width: 960px) {
  .hero__bg { width: 100%; height: 70%; }
  .hero__bg img { opacity: .4; }
}

/* Inner page heroes with the mark */
.page-hero--mark .container { position: relative; }
.page-hero--mark .h-hero, .page-hero--mark .lead { grid-column: 1 / span 8; }
.page-hero__mark { position: absolute; right: var(--gutter); top: 50%; width: clamp(240px, 24vw, 380px); aspect-ratio: 1; transform: translateY(-46%); }
@media (max-width: 1100px) { .page-hero__mark { display: none; } .page-hero--mark .h-hero, .page-hero--mark .lead { grid-column: 1 / -1; } }
.contact-hero__mark { width: clamp(170px, 15vw, 240px); aspect-ratio: 1; margin: -20px 0 0 -24px; }
@media (max-width: 960px) { .contact-hero__mark { display: none; } }
.contact-hero__grid { align-items: center; }

/* About hero: three worlds */
.about-hero { padding-top: calc(var(--header-h) + clamp(40px, 5vw, 72px)); padding-bottom: clamp(56px, 7vw, 104px); }
.about-hero__grid { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--s-5) var(--s-3); align-items: end; }
.about-hero__copy { grid-column: 1 / span 5; display: grid; gap: var(--s-4); padding-bottom: var(--s-2); }
.about-hero__copy .h-hero { font-size: clamp(2.75rem, 1rem + 3.6vw, 4.75rem); }
.worlds { grid-column: 6 / span 7; display: flex; gap: 8px; height: clamp(440px, 46vw, 640px); }
.world { position: relative; flex: 1 1 0; min-width: 0; overflow: hidden; margin: 0; background: var(--ink-2); cursor: pointer; transition: flex-grow .9s var(--ease); }
.world.is-open { flex-grow: 3.6; }
.world img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(.85) brightness(.55); transform: scale(1.06); transition: filter .9s var(--ease), transform 1.2s var(--ease); }
.world.is-open img { filter: none; transform: scale(1); }
.world::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,14,13,0) 45%, rgba(15,14,13,.88) 100%); }
.world figcaption { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: var(--s-3); display: grid; gap: 6px; }
.world figcaption strong { font-family: var(--f-display); font-weight: 500; font-size: clamp(1.25rem, 1rem + .8vw, 1.875rem); letter-spacing: -0.03em; line-height: 1.05; white-space: nowrap; }
.world figcaption > span:last-child { color: #D8D2C9; font-size: var(--t-small); max-width: 32ch; opacity: 0; transform: translateY(8px); transition: opacity .5s var(--ease), transform .5s var(--ease); }
.world.is-open figcaption > span:last-child { opacity: 1; transform: none; transition-delay: .35s; }
.world:not(.is-open) figcaption strong { writing-mode: vertical-rl; transform: rotate(180deg); font-size: 1.125rem; }
.world:not(.is-open) figcaption { justify-items: start; }
.world:not(.is-open) figcaption > span:last-child { display: none; }
@media (max-width: 960px) {
  .about-hero__copy, .worlds { grid-column: 1 / -1; }
  .worlds { height: 420px; }
}
@media (max-width: 560px) {
  .worlds { flex-direction: column; height: 560px; }
  .world:not(.is-open) figcaption strong { writing-mode: horizontal-tb; transform: none; }
}

/* Footer: speak panel */
.footer-speak { display: grid; gap: var(--s-2); padding: var(--s-3); background: var(--ink-2); border: 1px solid #26241F; border-top: 2px solid var(--coral); transition: background-color .35s var(--ease), border-color .35s var(--ease); }
.footer-speak:hover { background: var(--ink-3); }
.footer-speak__faces { display: flex; }
.footer-speak__faces img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; object-position: center 18%; border: 2px solid var(--ink-2); }
.footer-speak__faces img + img { margin-left: -12px; }
.footer-speak__text { display: grid; gap: 4px; }
.footer-speak__text strong { font-family: var(--f-display); font-weight: 500; font-size: 1.25rem; letter-spacing: -0.02em; }
.footer-speak__text span { color: var(--on-dark-muted); font-size: 0.875rem; max-width: 32ch; }
.footer-speak__go { display: inline-flex; align-items: center; gap: 10px; color: var(--coral); font-size: 0.8125rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.footer-speak__go svg { width: 14px; height: 14px; transition: transform .3s var(--ease); }
.footer-speak:hover .footer-speak__go svg { transform: translateX(5px); }

/* =========================================================
   Round 6: headers everywhere
   ========================================================= */

/* ---- Home hero: cursor light + headline rise ---- */
.hero::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: radial-gradient(600px circle at var(--mx, 72%) var(--my, 45%), rgba(241, 90, 45, .13), transparent 60%);
  transition: background-position .2s; }
.hero__title .l { overflow: hidden; padding-bottom: .08em; margin-bottom: -.08em; }
.hero__title .li { display: inline-block; animation: rise 1.1s var(--ease) both; }
.hero__title .l + .l .li { animation-delay: .14s; }
.hero__copy .lead { animation: fadeup 1s var(--ease) .35s both; }
.hero__copy .btn-row { animation: fadeup 1s var(--ease) .5s both; }
@keyframes rise { from { transform: translateY(105%); } to { transform: none; } }
@keyframes fadeup { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .hero__title .li, .hero__copy .lead, .hero__copy .btn-row { animation: none; } }

/* ---- Inner page heroes with a graphic ---- */
.page-hero--art { overflow: hidden; }
.page-hero--art .container { position: relative; min-height: clamp(380px, 34vw, 520px); align-content: end; }
.page-hero--art .h-hero, .page-hero--art .lead, .page-hero--art .crumbs { grid-column: 1 / span 7; position: relative; z-index: 2; }
.page-hero__art { position: absolute; right: calc(var(--gutter) - 20px); top: 50%; transform: translateY(-50%); width: clamp(300px, 34vw, 520px); z-index: 1; }
.page-hero__art--wide { width: clamp(340px, 44vw, 660px); right: var(--gutter); }
@media (max-width: 1100px) {
  .page-hero--art .container { min-height: 0; }
  .page-hero__art { position: relative; right: auto; top: auto; transform: none; grid-column: 1 / -1; width: 100%; max-width: 460px; margin-top: var(--s-4); }
  .page-hero__art--wide { max-width: 620px; }
  .page-hero--art .h-hero, .page-hero--art .lead, .page-hero--art .crumbs { grid-column: 1 / -1; }
}

/* Depth rings (Programmes) */
.dr { position: relative; }
.dr svg { width: 100%; height: auto; overflow: visible; }
.dr__spin { transform-origin: 250px 250px; animation: spin linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.dr__track { fill: none; stroke: #2E2B28; stroke-width: 26; transition: stroke .4s var(--ease); }
.dr__hit { fill: none; stroke: transparent; stroke-width: 34; pointer-events: stroke; }
.dr__text { fill: #8A847B; font-family: var(--f-mono); font-size: 11px; letter-spacing: .14em; font-weight: 500; transition: fill .4s var(--ease); dominant-baseline: middle; }
.dr__node { fill: var(--coral); }
.dr__ring { cursor: pointer; outline: none; }
.dr__ring:hover .dr__track, .dr__ring:focus-visible .dr__track, .dr[data-active] .dr__ring.is-on .dr__track { stroke: var(--coral); }
.dr__ring:hover .dr__text, .dr__ring:focus-visible .dr__text, .dr[data-active] .dr__ring.is-on .dr__text { fill: var(--ink); }
.dr[data-active] .dr__ring:not(.is-on) { opacity: .45; }
.dr__ring { transition: opacity .4s var(--ease); }
.dr:hover .dr__spin { animation-play-state: paused; }
.dr__core circle { fill: var(--coral); }
.dr__core text { fill: var(--ink); font-family: var(--f-display); font-weight: 500; font-size: 34px; letter-spacing: -0.04em; }
.dr__core .dr__core-sub { font-family: var(--f-mono); font-size: 10px; letter-spacing: .16em; }
.dr__legend { position: absolute; left: 50%; bottom: -8px; transform: translateX(-50%); color: var(--on-dark-muted); white-space: nowrap; }
.dr__legend strong { color: var(--coral); font-weight: 500; }
@media (prefers-reduced-motion: reduce) { .dr__spin { animation: none; } }

/* Converging paths (Team) */
.cv svg { width: 100%; height: auto; overflow: visible; }
.cv__path { fill: none; stroke: #34312E; stroke-width: 2; }
.cv__path--hot { stroke: var(--coral); stroke-dasharray: 900; stroke-dashoffset: 900; animation: draw 2.4s var(--ease) .2s forwards; }
.cv__path--k { animation-delay: .5s; }
@keyframes draw { to { stroke-dashoffset: 0; } }
.cv__pulse { fill: #FFE3D6; }
.cv__pt circle { fill: var(--ink); stroke: var(--coral); stroke-width: 2; }
.cv__pt text { fill: var(--on-dark); font-family: var(--f-display); font-size: 14px; font-weight: 500; letter-spacing: -0.01em; }
.cv__pt { opacity: 0; animation: ptin .8s var(--ease) forwards; animation-delay: calc(var(--d) + .6s); }
@keyframes ptin { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.cv__who { fill: var(--coral); font-family: var(--f-mono); font-size: 11px; letter-spacing: .16em; font-weight: 500; }
.cv__end { opacity: 0; animation: ptin 1s var(--ease) 2.2s forwards; }
.cv__halo { fill: none; stroke: var(--coral); stroke-width: 1.5; transform-origin: 580px 220px; animation: halo 2.8s var(--ease) 2.6s infinite; }
@keyframes halo { 0% { transform: scale(1); opacity: .9; } 100% { transform: scale(2.2); opacity: 0; } }
.cv__forge { fill: var(--on-dark); font-family: var(--f-mono); font-size: 12px; letter-spacing: .2em; font-weight: 500; }
@media (prefers-reduced-motion: reduce) {
  .cv__path--hot { animation: none; stroke-dashoffset: 0; }
  .cv__pt, .cv__end { animation: none; opacity: 1; }
  .cv__halo { animation: none; }
  .cv__pulse { display: none; }
}

/* Beacon (Contact) */
.beacon { position: relative; width: 132px; height: 132px; display: grid; place-items: center; margin: 0 0 var(--s-2) -6px; }
.beacon img { position: relative; z-index: 2; width: 64px; height: 64px; }
.beacon__ring { position: absolute; inset: 0; border-radius: 50%; border: 1.5px solid var(--coral); opacity: 0; animation: beacon 3.6s cubic-bezier(.2,.6,.3,1) infinite; }
.beacon__ring:nth-child(2) { animation-delay: 1.2s; }
.beacon__ring:nth-child(3) { animation-delay: 2.4s; }
@keyframes beacon { 0% { transform: scale(.45); opacity: .9; } 100% { transform: scale(1.6); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .beacon__ring { animation: none; opacity: .3; } .beacon__ring:nth-child(2) { transform: scale(1.2); } .beacon__ring:nth-child(3) { transform: scale(1.45); } }

/* ---- Programme detail heroes ---- */
.prog-hero { position: relative; min-height: min(100svh, 940px); padding-top: var(--header-h); display: grid; grid-template-rows: 1fr auto; overflow: hidden; }
.prog-hero__media { position: absolute; top: 0; right: 0; bottom: 0; width: 62%; z-index: 0; }
.prog-hero__media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.06) translate3d(var(--px, 0), var(--py2, 0), 0); transition: transform .6s var(--ease);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.55) 22%, #000 55%); mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.55) 22%, #000 55%); }
.prog-hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,14,13,.25) 0%, rgba(15,14,13,0) 30%, rgba(15,14,13,.0) 60%, rgba(15,14,13,.9) 100%); }
.prog-hero__grid { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); align-content: center; gap: var(--s-4) var(--s-3); padding-block: clamp(40px, 6vw, 88px); }
.prog-hero__grid > * { grid-column: 1 / span 6; }
.prog-hero__grid .h-hero { font-size: clamp(3.25rem, 1.4rem + 5.6vw, 7.5rem); line-height: .9; }
.prog-hero__grid .h-hero .l { display: block; }
.prog-hero__grid .h-hero em { font-size: 1.08em; }
.prog-steps { display: flex; gap: 6px; flex-wrap: wrap; }
.prog-step { display: inline-flex; align-items: center; gap: 10px; padding: 9px 14px; border: 1px solid #34312E; font-family: var(--f-mono); font-size: var(--t-label); letter-spacing: .12em; text-transform: uppercase; color: var(--on-dark-muted); background: rgba(15,14,13,.6); transition: border-color .3s var(--ease), color .3s var(--ease), background-color .3s var(--ease); }
.prog-step:hover { color: var(--on-dark); border-color: #6B655D; }
.prog-step.is-current { color: var(--ink); background: var(--coral); border-color: var(--coral); }
.prog-step__bars { display: inline-flex; align-items: flex-end; gap: 2px; height: 12px; }
.prog-step__bars i { display: block; width: 3px; background: currentColor; opacity: .3; }
.prog-step__bars i:nth-child(1) { height: 5px; } .prog-step__bars i:nth-child(2) { height: 8px; } .prog-step__bars i:nth-child(3) { height: 12px; }
.prog-step__bars i.on { opacity: 1; }
.prog-facts { position: relative; z-index: 2; border-top: 1px solid rgba(245,242,237,.12); background: rgba(15,14,13,.72); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.prog-facts__row { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); }
.prog-facts__row > div { display: grid; gap: 8px; padding: var(--s-3) var(--s-3) var(--s-3) 0; }
.prog-facts__row > div + div { padding-left: var(--s-3); border-left: 1px solid rgba(245,242,237,.12); }
.prog-facts .label { color: var(--on-dark-muted); }
.prog-facts strong { font-family: var(--f-display); font-weight: 500; font-size: clamp(1.25rem, 1rem + .9vw, 1.875rem); letter-spacing: -0.03em; line-height: 1; }
.prog-facts strong small { font-size: .55em; color: var(--on-dark-muted); margin-left: 6px; letter-spacing: 0; }
.prog-facts__row > div:first-child strong { color: var(--coral); }
@media (max-width: 960px) {
  .prog-hero { min-height: 0; }
  .prog-hero__media { position: relative; width: 100%; height: 56vw; max-height: 420px; order: -1; }
  .prog-hero__media img { -webkit-mask-image: linear-gradient(180deg, #000 60%, transparent 100%); mask-image: linear-gradient(180deg, #000 60%, transparent 100%); }
  .prog-hero { grid-template-rows: auto auto auto; }
  .prog-hero__grid { padding-top: var(--s-3); }
  .prog-hero__grid > * { grid-column: 1 / -1; }
  .prog-facts__row { grid-template-columns: 1fr 1fr; }
  .prog-facts__row > div:nth-child(3) { padding-left: 0; border-left: 0; }
  .prog-facts__row > div:nth-child(n+3) { border-top: 1px solid rgba(245,242,237,.12); }
}

/* Footer: four link columns, back to top */
.footer-top-link:hover { color: var(--coral); }
.dr__core { pointer-events: none; }
.page-hero--art .h-hero { font-size: clamp(2.75rem, 1rem + 4.2vw, 5.25rem); }
@media (max-width: 1100px) { .page-hero__art { order: 10; } }

/* =========================================================
   Round 7: cinematic home, mark everywhere, polish
   ========================================================= */

/* Smooth fade between pages (supported browsers) */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .45s; animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1); }
@media (prefers-reduced-motion: reduce) { @view-transition { navigation: none; } }

/* Home hero: cinematic anvil */
.hero--cine .hero__bg { left: 46%; width: auto; -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 34%); mask-image: linear-gradient(90deg, transparent 0%, #000 34%); }
.hero--cine .hero__bg img { opacity: 1; object-position: 70% 50%; -webkit-mask-image: none; mask-image: none; animation: kenburns 24s ease-in-out infinite alternate; transform-origin: 66% 48%; }
.hero--cine .hero__bg::after { content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(15,14,13,.9) 0%, rgba(15,14,13,.45) 30%, rgba(15,14,13,.1) 70%, rgba(15,14,13,.2) 100%),
              linear-gradient(180deg, rgba(15,14,13,.55) 0%, rgba(15,14,13,0) 22%, rgba(15,14,13,0) 70%, rgba(15,14,13,.95) 100%); }
@keyframes kenburns { from { transform: scale(1.04); } to { transform: scale(1.14) translate(-1.5%, 1%); } }
.hero--cine .hero__copy { grid-column: 1 / span 8; }
.hero--cine > .container { min-height: calc(100svh - var(--header-h) - 80px); align-content: center; }
@media (prefers-reduced-motion: reduce) { .hero--cine .hero__bg img { animation: none; } }
@media (max-width: 960px) {
  .hero--cine .hero__bg { height: 100%; left: 0; -webkit-mask-image: none; mask-image: none; }
  .hero--cine .hero__bg img { object-position: 64% 50%; opacity: .7; }
  .hero--cine .hero__bg::after { background: linear-gradient(180deg, rgba(15,14,13,.5) 0%, rgba(15,14,13,.75) 45%, rgba(15,14,13,.96) 100%); }
  .hero--cine .hero__copy { grid-column: 1 / -1; grid-row: auto; padding-top: 30vh; }
  .hero--cine > .container { min-height: 0; }
}

/* Rotating seal */
.seal { position: absolute; right: var(--gutter); bottom: clamp(24px, 4vw, 56px); width: clamp(120px, 11vw, 168px); aspect-ratio: 1; display: grid; place-items: center; z-index: 3; }
.seal svg { position: absolute; inset: 0; width: 100%; height: 100%; animation: spin 22s linear infinite; transition: transform .6s var(--ease); }
.seal text { fill: var(--on-dark); font-family: var(--f-mono); font-size: 13px; font-weight: 500; }
.seal img { width: 36%; height: auto; transition: transform .6s var(--ease); }
.seal:hover svg { animation-duration: 6s; }
.seal:hover img { transform: rotate(-20deg) scale(1.08); }
@media (max-width: 960px) { .seal { display: none; } }
@media (prefers-reduced-motion: reduce) { .seal svg { animation: none; } }

/* Scroll cue */
.hero__scroll { display: inline-block; width: 1px; height: 22px; background: #3A3733; position: relative; overflow: hidden; margin-right: 6px; }
.hero__scroll::after { content: ""; position: absolute; left: 0; top: -100%; width: 1px; height: 100%; background: var(--coral); animation: cue 1.8s var(--ease) infinite; }
@keyframes cue { to { top: 100%; } }
@media (min-width: 961px) { .hero--cine .hero__meta .hero__hint { display: inline-flex; } }

/* Footer signature: FORGE + live mark */
.footer-mega { display: flex; align-items: center; gap: clamp(12px, 2vw, 32px); }
.footer-mega span { display: block; }
.footer-mark { flex: 0 0 auto; width: clamp(110px, 17vw, 270px); aspect-ratio: 1; margin-top: -2%; }
.footer-mark img.hero__fallback { opacity: .9; }

/* Contact: bigger 3D beacon */
.beacon--3d { width: clamp(220px, 20vw, 300px); height: auto; aspect-ratio: 1; margin: -24px 0 0 -30px; }
.beacon--3d .beacon__mark { position: relative; z-index: 2; width: 82%; aspect-ratio: 1; }
.beacon--3d .beacon__ring { inset: 12%; border-width: 1.5px; }
@media (max-width: 960px) { .beacon--3d { width: 200px; margin: 0 0 0 -20px; } }

/* Programme overview: key points */
.overview { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--s-5) var(--s-3); align-items: start; }
.overview__title { grid-column: 1 / span 6; position: sticky; top: calc(var(--header-h) + 40px); }
.keypoints { grid-column: 8 / span 5; list-style: none; margin: 0; padding: 0; display: grid; border-top: 1px solid var(--ink-line); }
.keypoint { position: relative; display: grid; grid-template-columns: 44px 1fr; gap: var(--s-2); padding: var(--s-4) 0 var(--s-4) var(--s-2); border-bottom: 1px solid var(--ink-line); transition: background-color .35s var(--ease), padding .45s var(--ease); }
.keypoint::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; background: var(--coral); transform: scaleY(0); transform-origin: top; transition: transform .5s var(--ease); }
.keypoint:hover { background: var(--ink-2); padding-left: var(--s-3); }
.keypoint:hover::before { transform: scaleY(1); }
.keypoint__n { color: var(--coral); padding-top: 4px; }
.keypoint p { color: var(--on-dark-muted); font-size: 1.0625rem; transition: color .3s var(--ease); }
.keypoint:hover p { color: var(--on-dark); }
.keypoint:first-child p { color: var(--on-dark); font-size: clamp(1.25rem, 1rem + .6vw, 1.5rem); letter-spacing: -0.015em; line-height: 1.35; }
@media (max-width: 960px) { .overview__title, .keypoints { grid-column: 1 / -1; position: static; } }

/* Buttons: coral sweep */
.btn { position: relative; overflow: hidden; isolation: isolate; }
.btn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--on-dark); transform: translateX(-101%); transition: transform .45s var(--ease); }
.btn:hover::before { transform: none; }
.btn:hover { --btn-bg: var(--coral); --btn-fg: var(--ink); color: var(--ink); }
.btn--ghost::before { background: var(--coral); }
.btn--ghost:hover { --btn-bg: transparent; color: var(--ink); border-color: var(--coral); }
.section--paper .btn::before { background: var(--ink); }
.section--paper .btn:hover { color: var(--paper); }
.section--coral .btn::before { background: var(--paper); }
.section--coral .btn:hover { color: var(--ink); }

/* ART letters on hover (home) */
.art__item { transition: background-color .4s var(--ease); }
.art__letter { transition: transform .6s var(--ease), color .4s var(--ease); transform-origin: left bottom; display: inline-block; }
.art__item:hover .art__letter { transform: scale(1.08) translateY(-4px); }
.art__item:hover { background: rgba(241, 90, 45, .06); }

/* Founder cards and quotes: gentle lift */
.founder__name h3 { transition: color .3s var(--ease); }
.founder:hover .founder__name h3 { color: var(--coral); }
.quote-small, .quote-grid > figure { transition: transform .5s var(--ease); }
.quote-grid > figure:hover { transform: translateY(-4px); }

/* =========================================================
   Round 8
   ========================================================= */
/* Home hero: tunnel walk-out */
.hero--cine .hero__bg img { object-position: 50% 58%; }
.hero--cine .hero__bg { left: 44%; }
.hero--cine .hero__bg::after { background: linear-gradient(90deg, rgba(15,14,13,.85) 0%, rgba(15,14,13,.2) 30%, rgba(15,14,13,0) 70%),
  linear-gradient(180deg, rgba(15,14,13,.5) 0%, rgba(15,14,13,0) 20%, rgba(15,14,13,0) 72%, rgba(15,14,13,.95) 100%); }
@media (max-width: 960px) { .hero--cine .hero__bg { left: 0; } .hero--cine .hero__bg img { object-position: 50% 62%; opacity: .75; } }

/* Contact: pulse sized to the mark */
.beacon--3d { width: clamp(260px, 24vw, 340px); margin: -36px 0 0 0; }
.beacon--3d .beacon__mark { width: 70%; }
.beacon--3d .beacon__ring { inset: 15%; border-width: 2px; animation-name: beacon3d; }
@keyframes beacon3d { 0% { transform: scale(1); opacity: .85; } 100% { transform: scale(1.75); opacity: 0; } }
@media (max-width: 960px) { .beacon--3d { width: 230px; margin: 0; } }

/* Closing CTA with the live mark */
.cta-close--mark .h2 { grid-column: 1 / span 7; grid-row: 1; }
.cta-close--mark .cta-close__side { grid-column: 1 / span 7; grid-row: 2; }
.cta-close--mark .cta-close__side p { max-width: 46ch; }
.cta-mark { grid-column: 9 / span 4; grid-row: 1 / span 2; align-self: center; justify-self: center; width: min(100%, 340px); aspect-ratio: 1; }
@media (max-width: 960px) { .cta-mark { display: none; } .cta-close--mark .h2, .cta-close--mark .cta-close__side { grid-column: 1 / -1; } }

/* ---------- Round 9: lineout hero + redesigned seal ---------- */
.hero--cine .hero__bg { left: 40%; }
.hero--cine .hero__bg img { object-position: 50% 30%; transform-origin: 50% 30%; filter: saturate(.8) contrast(1.05); }
.hero--cine .hero__bg::after { background:
  linear-gradient(90deg, rgba(15,14,13,.9) 0%, rgba(15,14,13,.25) 28%, rgba(15,14,13,0) 60%),
  linear-gradient(180deg, rgba(15,14,13,.55) 0%, rgba(15,14,13,0) 18%, rgba(15,14,13,0) 66%, rgba(15,14,13,.96) 100%),
  radial-gradient(60% 50% at 52% 26%, rgba(241,90,45,.14), transparent 70%); }

.seal { top: 50%; bottom: auto; right: calc(var(--gutter) + 1vw); transform: translateY(-62%); width: clamp(150px, 13vw, 196px); }
.seal__disc { position: absolute; inset: 21%; border-radius: 50%; background: rgba(15,14,13,.55); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  box-shadow: inset 0 0 0 1px rgba(245,242,237,.12); transition: background .5s var(--ease), box-shadow .5s var(--ease); }
.seal .seal__txt { animation: spin 26s linear infinite; }
.seal__txt text { fill: var(--on-dark); font-family: var(--f-mono); font-size: 12.5px; font-weight: 500; letter-spacing: .02em; }
.seal svg.seal__ticks { animation: spin 60s linear infinite reverse; }
.seal__ticks line { stroke: rgba(245,242,237,.32); stroke-width: 1; }
.seal__ticks line.seal__tk { stroke: var(--coral); stroke-width: 2; }
.seal__orbit { fill: none; stroke: rgba(245,242,237,.1); stroke-width: 1; }
.seal svg.seal__sat { animation: spin 7s linear infinite; }
.seal__sat circle { fill: var(--coral); filter: drop-shadow(0 0 4px rgba(241,90,45,.9)); }
.seal img { position: relative; width: 30%; }
.seal:hover .seal__disc { background: rgba(241,90,45,.92); box-shadow: 0 0 0 10px rgba(241,90,45,.12), 0 0 60px rgba(241,90,45,.35); }
.seal:hover .seal__txt { animation-duration: 8s; }
.seal:hover img { filter: brightness(0) invert(1); }
.seal:focus-visible { outline: 2px solid var(--coral); outline-offset: 6px; border-radius: 50%; }
@media (max-width: 1180px) { .seal { transform: translateY(-80%); } }
@media (prefers-reduced-motion: reduce) { .seal svg.seal__txt, .seal svg.seal__ticks, .seal svg.seal__sat { animation: none; } }
@media (max-width: 960px) {
  .hero--cine .hero__bg { left: 0; }
  .hero--cine .hero__bg img { object-position: 60% 20%; opacity: .6; }
}
@media (max-width: 960px) {
  .hero--cine .hero__bg::after { background: linear-gradient(180deg, rgba(15,14,13,.35) 0%, rgba(15,14,13,.55) 38%, rgba(15,14,13,.9) 58%, rgba(15,14,13,.97) 100%); }
}

/* ---------- Round 10: slim closing CTA, business photos ---------- */
.cta-band { padding-block: clamp(56px, 6vw, 88px); border-top: 1px solid #26241F; }
.cta-close--mark { align-items: center; gap: var(--s-3) var(--s-4); }
.cta-close--mark .h2 { grid-column: 1 / span 5; grid-row: 1; font-size: clamp(2rem, 1rem + 2.6vw, 3.4rem); line-height: 1.02; letter-spacing: -0.035em; }
.cta-close--mark .cta-close__side { grid-column: 6 / span 5; grid-row: 1; gap: var(--s-2); padding-left: var(--s-4); border-left: 1px solid #2E2B27; }
.cta-close--mark .cta-close__side p { max-width: 44ch; font-size: 1rem; }
.cta-mark { grid-column: 11 / span 2; grid-row: 1; justify-self: end; width: clamp(96px, 9vw, 132px); opacity: .92; transition: opacity .4s var(--ease); }
.cta-mark:hover { opacity: 1; }
@media (max-width: 1180px) {
  .cta-close--mark .h2 { grid-column: 1 / span 5; }
  .cta-close--mark .cta-close__side { grid-column: 6 / span 5; }
}
@media (max-width: 960px) {
  .cta-close--mark .h2, .cta-close--mark .cta-close__side { grid-column: 1 / -1; grid-row: auto; }
  .cta-close--mark .cta-close__side { padding-left: 0; border-left: 0; }
}

/* Home hero: dark meeting photo */
.hero--cine .hero__bg { left: 38%; }
.hero--cine .hero__bg img { object-position: 52% 45%; transform-origin: 52% 40%; filter: saturate(.9) contrast(1.05) brightness(.9); }
.hero--cine .hero__bg::after { background:
  linear-gradient(90deg, rgba(15,14,13,.95) 0%, rgba(15,14,13,.35) 30%, rgba(15,14,13,0) 62%),
  linear-gradient(180deg, rgba(15,14,13,.6) 0%, rgba(15,14,13,0) 20%, rgba(15,14,13,0) 64%, rgba(15,14,13,.96) 100%); }
@media (max-width: 960px) {
  .hero--cine .hero__bg { left: 0; }
  .hero--cine .hero__bg img { object-position: 55% 40%; opacity: .6; }
  .hero--cine .hero__bg::after { background: linear-gradient(180deg, rgba(15,14,13,.35) 0%, rgba(15,14,13,.55) 38%, rgba(15,14,13,.9) 58%, rgba(15,14,13,.97) 100%); }
}
@media (min-width: 961px) {
  .hero--cine .hero__bg img { object-position: 100% 45%; transform-origin: 80% 40%; }
}
.seal::before { content: ""; position: absolute; inset: -14%; border-radius: 50%; background: radial-gradient(closest-side, rgba(15,14,13,.62) 62%, rgba(15,14,13,0) 100%); pointer-events: none; }

/* ---------- Round 11: skyline hero, seal moves to the statement ---------- */
@media (min-width: 961px) {
  .hero--cine .hero__bg { left: 36%; }
  .hero--cine .hero__bg img { object-position: 30% 50%; transform-origin: 40% 50%; filter: saturate(.75) contrast(1.1) brightness(.78); }
}
.hero--cine .hero__bg::after { background:
  linear-gradient(90deg, rgba(15,14,13,.96) 0%, rgba(15,14,13,.4) 26%, rgba(15,14,13,.05) 58%, rgba(15,14,13,.25) 100%),
  linear-gradient(180deg, rgba(15,14,13,.6) 0%, rgba(15,14,13,0) 20%, rgba(15,14,13,0) 62%, rgba(15,14,13,.97) 100%),
  linear-gradient(0deg, rgba(241,90,45,.08), rgba(241,90,45,.08)); }
@media (max-width: 960px) {
  .hero--cine .hero__bg img { object-position: 32% 50%; opacity: .55; }
  .hero--cine .hero__bg::after { background: linear-gradient(180deg, rgba(15,14,13,.35) 0%, rgba(15,14,13,.55) 38%, rgba(15,14,13,.9) 58%, rgba(15,14,13,.97) 100%); }
}

.statement-wrap .statement-aside { align-self: stretch; grid-template-rows: auto 1fr auto auto; }
.statement-aside .seal { position: relative; top: auto; right: auto; bottom: auto; transform: none; display: grid; width: clamp(140px, 11vw, 168px); justify-self: start; margin-bottom: var(--s-3); }
.statement-aside .seal::before { display: none; }
.statement-aside .seal .seal__disc { background: var(--ink-2, #181716); -webkit-backdrop-filter: none; backdrop-filter: none; }
.statement-aside .seal + * { grid-row: 3; }
@media (max-width: 1180px) { .statement-aside .seal { transform: none; } }
@media (max-width: 960px) { .statement-aside .seal { display: grid; width: 132px; } }
.statement-wrap .statement-aside { display: flex; flex-direction: column; gap: var(--s-3); }
.statement-aside .seal { margin-bottom: auto; flex: none; }
.statement-aside .seal + * { grid-row: auto; margin-top: var(--s-5); }
@media (min-width: 961px) {
  .hero--cine .hero__bg img { filter: saturate(.6) contrast(1.15) brightness(.55); }
}
@media (max-width: 960px) { .statement-aside .seal { margin-bottom: 0; } .statement-aside .seal + * { margin-top: 0; } }

/* ---------- Round 12: depth rings rebuilt as orbits ---------- */
.dr__ticks line { stroke: #3A3632; stroke-width: 1; }
.dr__band { fill: none; stroke: var(--coral); stroke-width: 54; opacity: 0; transition: opacity .45s var(--ease); }
.dr__track { fill: none; stroke: #3E3A35; stroke-width: 1.25; transition: stroke .4s var(--ease), stroke-width .4s var(--ease); }
.dr__hit { fill: none; stroke: transparent; stroke-width: 56; pointer-events: stroke; }
.dr__orbit { transform-origin: 250px 250px; transform: rotate(var(--start)); animation: drorbit linear infinite; }
@keyframes drorbit { from { transform: rotate(var(--start)); } to { transform: rotate(calc(var(--start) + 360deg)); } }
.dr__trail { fill: none; stroke: var(--coral); stroke-width: 1.5; opacity: .45; stroke-linecap: round; }
.dr__node { fill: var(--coral); filter: drop-shadow(0 0 6px rgba(241,90,45,.85)); }
.dr__labels text { paint-order: stroke; stroke: var(--ink); stroke-width: 8px; stroke-linejoin: round; transition: fill .4s var(--ease); }
.dr__name { fill: var(--on-dark); font-family: var(--f-mono); font-size: 11px; letter-spacing: .2em; font-weight: 500; }
.dr__price { fill: #8A847B; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .08em; }
.dr__core circle { fill: var(--coral); }
.dr__core .dr__core-glow { fill: none; stroke: var(--coral); stroke-width: 1; opacity: .35; transform-origin: 250px 250px; animation: drpulse 3.2s ease-out infinite; }
@keyframes drpulse { 0% { transform: scale(.9); opacity: .6; } 100% { transform: scale(1.35); opacity: 0; } }
.dr__core text { fill: var(--ink); }
.dr__core .dr__core-main { font-family: var(--f-display); font-weight: 500; font-size: 30px; letter-spacing: -0.03em; }
.dr__core .dr__core-sub { font-family: var(--f-mono); font-size: 9.5px; letter-spacing: .16em; font-weight: 500; }
.dr__core.is-swap .dr__core-main { font-size: 19px; letter-spacing: -0.01em; }
.dr__ring.is-on .dr__band, .dr__ring:focus-visible .dr__band { opacity: .1; }
.dr__ring.is-on .dr__track, .dr__ring:focus-visible .dr__track { stroke: var(--coral); stroke-width: 2; }
.dr[data-active] .dr__ring:not(.is-on) { opacity: .4; }
.dr[data-active] .dr__labels text:not(.is-on) { opacity: .4; }
.dr__labels text { transition: opacity .4s var(--ease), fill .4s var(--ease); }
.dr__labels .dr__price.is-on { fill: var(--coral); }
.dr__legend { bottom: -14px; }
.dr__legend a { color: var(--coral); }
@media (prefers-reduced-motion: reduce) { .dr__orbit, .dr__core .dr__core-glow { animation: none; } }
.dr__labels, .dr__ticks, .dr__orbit { pointer-events: none; }
.dr__trail { opacity: .6; }

/* ---------- Round 12 QA fixes ---------- */
.strike { display: inline; background: linear-gradient(var(--coral), var(--coral)) no-repeat 0 58% / 0% 1.5px; -webkit-box-decoration-break: clone; box-decoration-break: clone; transition: background-size .7s var(--ease), color .3s; }
.strike::after { display: none; }
.fitq.in .strike, .fitq:not(.rv) .strike { background-size: 100% 1.5px; }
.fitq__not li:nth-child(2) .strike { transition-delay: .12s; }
.fitq__not li:nth-child(3) .strike { transition-delay: .24s; }
.fitq__not li:nth-child(4) .strike { transition-delay: .36s; }
@media (max-width: 600px) {
  .dr__name { font-size: 17px; letter-spacing: .14em; }
  .dr__price { font-size: 16px; }
  .dr__labels text { stroke-width: 12px; }
  .dr__core .dr__core-sub { font-size: 13px; }
  .dr__core .dr__core-main { font-size: 36px; }
  .dr__core.is-swap .dr__core-main { font-size: 24px; }
}
.mobile-nav > ul > li > a svg { width: 22px; height: 22px; flex: none; color: var(--on-dark-muted); transition: transform .3s var(--ease), color .3s; }
.mobile-nav > ul > li > a:hover svg, .mobile-nav > ul > li > a[aria-current="page"] svg { color: var(--coral); transform: translateX(4px); }
.mobile-nav svg { max-width: 24px; max-height: 24px; }
.mobile-nav__foot .btn svg { width: 18px; height: 18px; }
@media (max-width: 1180px) { .duo__name { flex-direction: column; align-items: flex-start; gap: 8px; } }

/* ---------- Round 13: footer rebuilt ---------- */
.sf { padding-top: clamp(64px, 7vw, 104px); overflow: hidden; }
.sf__top { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--s-5) var(--s-3); padding-bottom: clamp(48px, 6vw, 80px); }
.sf__brand { grid-column: 1 / span 4; display: grid; gap: var(--s-3); align-content: start; justify-items: start; }
.sf__brand img { width: 168px; height: auto; }
.sf__brand p { color: var(--on-dark-muted); max-width: 34ch; font-size: var(--t-small); margin: 0; }
.sf__cols { grid-column: 6 / -1; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: var(--s-4) var(--s-3); }
.sf__col h2 { font-family: var(--f-mono); font-size: var(--t-label); letter-spacing: .14em; text-transform: uppercase; color: var(--on-dark-muted); font-weight: 500; margin: 0 0 var(--s-3); padding-bottom: 12px; border-bottom: 1px solid #26241F; }
.sf__col ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 4px; }
.sf__col a { display: inline-block; padding: 6px 0; font-size: var(--t-small); color: var(--on-dark); transition: color .2s var(--ease), transform .25s var(--ease); }
.sf__col a:hover { color: var(--coral); transform: translateX(3px); }
.sf__bottom { display: flex; flex-wrap: wrap; gap: 8px var(--s-4); justify-content: space-between; align-items: center; padding-block: var(--s-3); border-top: 1px solid #26241F; color: var(--on-dark-muted); font-size: 0.8125rem; }
.sf__bottom nav { display: flex; gap: var(--s-3); }
.sf__bottom a { padding: 6px 0; }
.sf__bottom a:hover { color: var(--coral); }
.sf__mega { padding-top: var(--s-2); line-height: 0; }
.sf__mega svg { display: block; width: 100%; height: auto; }
.sf__mega text { fill: #1B1917; font-family: var(--f-display); font-weight: 600; font-size: 300px; letter-spacing: -0.02em; }
.sf .footer-mega, .sf .footer-mark { display: none; }
@media (max-width: 1180px) {
  .sf__brand { grid-column: 1 / span 4; }
  .sf__cols { grid-column: 5 / -1; }
}
@media (max-width: 960px) {
  .sf__brand { grid-column: 1 / -1; grid-template-columns: auto 1fr; column-gap: var(--s-4); align-items: center; }
  .sf__brand img { grid-row: span 2; width: 150px; }
  .sf__cols { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .sf__top { gap: var(--s-4); }
  .sf__brand { grid-template-columns: 1fr; row-gap: var(--s-2); }
  .sf__brand img { grid-row: auto; width: 140px; }
  .sf__cols { grid-template-columns: 1fr 1fr; row-gap: var(--s-4); }
  .sf__col--connect { grid-column: 1 / -1; }
  .sf__col--connect ul { grid-template-columns: 1fr 1fr; column-gap: var(--s-3); }
  .sf__bottom { flex-direction: column; align-items: flex-start; }
}

/* Phones: straight into the title on Contact and Programmes */
@media (max-width: 600px) {
  .contact-hero .beacon, .page-hero--art .page-hero__art .dr { display: none; }
}
@media (max-width: 600px) { .page-hero__art:has(.dr) { display: none; } }
.sf .link-arrow { white-space: nowrap; }

/* ---------- Round 13: mobile polish ---------- */
@media (max-width: 600px) {
  :root { --section: 64px; }
  .section--tight { padding-block: 52px; }
  .cv { display: none; }
}
@media (max-width: 600px) {
  /* Home hero: headline sits higher, no doubled label row */
  .hero--cine .hero__copy { padding-top: 20vh; }
  .hero--cine .hero__meta { display: none; }
  .hero--cine > .container { padding-bottom: 40px; }
  /* About hero worlds: swipeable cards, every caption visible */
  .worlds { flex-direction: row; height: auto; overflow-x: auto; scroll-snap-type: x mandatory; gap: 10px; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scrollbar-width: none; }
  .worlds::-webkit-scrollbar { display: none; }
  .world, .world.is-open { flex: 0 0 80%; height: 340px; scroll-snap-align: start; scroll-margin-left: var(--gutter); }
  .world img, .world.is-open img { filter: none; transform: none; }
  .world figcaption strong, .world:not(.is-open) figcaption strong { writing-mode: horizontal-tb; transform: none; font-size: 1.5rem; }
  .world figcaption > span:last-child, .world:not(.is-open) figcaption > span:last-child { display: block; opacity: 1; transform: none; }
  /* Fit check panel: no dead space */
  .fitq__side { grid-template-rows: auto; align-content: start; }
  .fitq__verdict { min-height: 0; }
  /* Experience figures: compact rows */
  .specs--stack .spec, .specs--stack .spec + .spec { grid-template-columns: 96px 1fr; align-items: center; padding: var(--s-3) 0; }
}
.cmp-pick { display: none; }
@media (max-width: 600px) {
  .cmp-pick { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid var(--ink-line); margin-bottom: var(--s-3); }
  .cmp-pick button { appearance: none; background: none; border: 0; color: var(--on-dark-muted); font: 600 0.8125rem/1 var(--f-display); letter-spacing: .12em; text-transform: uppercase; padding: 16px 8px; cursor: pointer; transition: background-color .3s var(--ease), color .3s var(--ease); }
  .cmp-pick button + button { border-left: 1px solid var(--ink-line); }
  .cmp-pick button[aria-pressed="true"] { background: var(--coral); color: var(--ink); }
  #compare .scroll-hint { display: none; }
  .compare-wrap { overflow: visible; }
  .compare { min-width: 0 !important; width: 100%; table-layout: fixed; }
  .compare[data-show="1"] tr > :nth-child(n+2):not(:nth-child(2)),
  .compare[data-show="2"] tr > :nth-child(n+2):not(:nth-child(3)),
  .compare[data-show="3"] tr > :nth-child(n+2):not(:nth-child(4)) { display: none; }
  .compare th[scope="row"] { width: 56%; }
  .compare tbody td { text-align: left; }
  .compare .col-elite { background: transparent; }
  #compare .btn-row { display: grid; grid-template-columns: 1fr; }
  #compare .btn-row .btn { justify-content: space-between; }
}
@media (max-width: 600px) {
  .btn-row { display: grid; grid-template-columns: 1fr; gap: 10px; }
  .btn-row .btn { width: 100%; justify-content: space-between; }
  .cyc__wk { font-size: 15px; }
}
@media (max-width: 600px) {
  .page-hero, .profile-hero, .contact-hero, .about-hero { padding-bottom: 48px; }
  .page-hero--art .page-hero__art:empty, .page-hero--art .page-hero__art:has(> .cv:only-child) { display: none; }
}
@media (max-width: 600px) {
  .profile-hero__role { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-top: 1px solid var(--ink-line); border-bottom: 1px solid var(--ink-line); margin-top: var(--s-2); }
  .profile-hero__role > * { padding: 14px 0; display: inline-flex; align-items: center; gap: 8px; }
  .profile-hero__role > span:first-child { grid-column: 1 / -1; border-bottom: 1px solid var(--ink-line); }
  .profile-hero__role > a + a { border-left: 1px solid var(--ink-line); padding-left: 16px; }
}
@media (max-width: 600px) {
  .sf__top { grid-template-columns: minmax(0, 1fr); }
  .sf__brand, .sf__cols { grid-column: 1 / -1; }
  .sf__cols { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  .sf__col--connect ul { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  .legal a { overflow-wrap: anywhere; }
}
@media (max-width: 600px) {
  .cta-close, .cta-close--mark { grid-template-columns: minmax(0, 1fr); }
  .cta-close--mark .h2, .cta-close--mark .cta-close__side { grid-column: 1; }
}
.cta-close__side p { overflow-wrap: anywhere; }
@media (max-width: 380px) {
  .tier { min-width: 0; padding-inline: 20px; }
  .tier__top { flex-wrap: wrap; row-gap: 10px; }
  .tiers { grid-template-columns: minmax(0, 1fr); }
}
.statement-wrap .statement-aside { display: grid; align-self: end; gap: var(--s-3); grid-template-rows: none; }

/* ---------- Round 14: Team hero timeline (converging careers) ---------- */
.cv2 { position: relative; }
.cv2 svg { display: block; width: 100%; height: auto; overflow: visible; }
.cv2__v { display: none; }
.cv2__grid { stroke: #24221F; stroke-width: 1; stroke-dasharray: 2 6; }
.cv2__grid.is-hot { stroke: rgba(241,90,45,.35); stroke-dasharray: none; }
.cv2__yr { fill: #6E6860; font-family: var(--f-mono); font-size: 11px; letter-spacing: .12em; }
.cv2__yr.is-hot { fill: var(--coral); }
.cv2__hit { fill: none; stroke: transparent; stroke-width: 70; pointer-events: stroke; }
.cv2__base { fill: none; stroke: #2E2B28; stroke-width: 1.5; }
.cv2__hot { fill: none; stroke: var(--coral); stroke-width: 1.5; stroke-dasharray: 1; stroke-dashoffset: 1; animation: cv2draw 2.2s var(--ease) .2s forwards; }
.cv2__lane--k .cv2__hot { animation-delay: .45s; }
@keyframes cv2draw { to { stroke-dashoffset: 0; } }
.cv2__band { stroke: var(--coral); stroke-width: 6; stroke-linecap: butt; opacity: 0; animation: cv2in .9s var(--ease) forwards; animation-delay: var(--d); }
.cv2__band--1 { stroke: #8A847B; stroke-width: 3; }
.cv2__band--2 { stroke-width: 6; }
.cv2__ms { opacity: 0; animation: cv2in .8s var(--ease) forwards; animation-delay: var(--d); }
.cv2__ms circle { fill: var(--ink); stroke: var(--coral); stroke-width: 2; transition: r .3s var(--ease), fill .3s var(--ease); }
.cv2__lbl { fill: var(--on-dark); font-family: var(--f-display); font-size: 14px; font-weight: 500; letter-spacing: -0.01em; }
.cv2__dates { fill: #8A847B; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; }
.cv2__who { fill: var(--coral); font-family: var(--f-mono); font-size: 11px; letter-spacing: .18em; font-weight: 500; }
.cv2__who-link:hover .cv2__who { fill: var(--on-dark); }
@keyframes cv2in { from { opacity: 0; } to { opacity: 1; } }
.cv2__pulse { fill: #FFE3D6; filter: drop-shadow(0 0 6px rgba(241,90,45,.95)); }
.cv2__node { opacity: 0; animation: cv2in 1s var(--ease) 2s forwards; }
.cv2__disc { fill: #1A1816; stroke: var(--coral); stroke-width: 1.5; }
.cv2__halo { fill: none; stroke: var(--coral); stroke-width: 1.2; transform-box: fill-box; transform-origin: center; animation: cv2halo 3.2s ease-out 2.4s infinite; opacity: 0; }
.cv2__halo--2 { animation-delay: 4s; }
@keyframes cv2halo { 0% { transform: scale(1); opacity: .7; } 100% { transform: scale(1.9); opacity: 0; } }
.cv2__forge { fill: var(--on-dark); font-family: var(--f-mono); font-size: 12px; letter-spacing: .22em; font-weight: 500; }
/* hover a career to focus it */
.cv2__lane { transition: opacity .4s var(--ease); }
.cv2:has(.cv2__lane:hover) .cv2__lane:not(:hover) { opacity: .28; }
.cv2__lane:hover .cv2__base { stroke: #4A453F; }
.cv2__lane:hover .cv2__ms circle { fill: var(--coral); }
.cv2__ms:hover circle { r: 8; }
@media (prefers-reduced-motion: reduce) {
  .cv2__hot { animation: none; stroke-dashoffset: 0; }
  .cv2__band, .cv2__ms, .cv2__node { animation: none; opacity: 1; }
  .cv2__halo, .cv2__pulse { display: none; }
}
@media (max-width: 600px) {
  .cv2__h { display: none; }
  .cv2__v { display: block; max-width: 400px; margin-inline: auto; }
  .cv2__lbl { font-size: 13.5px; }
  .cv { display: none; }
  .page-hero--art .page-hero__art:has(> .cv2) { display: block; }
}
.cv2 .cv2__v { display: none; }
.cv2 text { letter-spacing: 0; word-spacing: .08em; }
.cv2 .cv2__dates, .cv2 .cv2__yr { letter-spacing: .1em; }
.cv2 .cv2__who, .cv2 .cv2__forge { letter-spacing: .18em; }
@media (max-width: 600px) {
  .cv2 .cv2__h { display: none; }
  .cv2 .cv2__v { display: block; }
}
@media (max-width: 600px) { .page-hero__art--wide { margin-top: 8px; } }
