/* =============================================================
   150 — The Programme page styles
   ============================================================= */

/* ---- 1 · HERO (light — matches the home landing field) ---- */
.phero{min-height:92svh;display:flex;align-items:center;padding-top:clamp(110px,14vh,170px);
  --fg:#1E2A1C;
  background:
    radial-gradient(46% 68% at 72% 46%, rgba(216,206,164,.55), rgba(216,206,164,0) 70%),
    radial-gradient(58% 78% at 10% 6%, rgba(164,172,138,.30), transparent 62%),
    linear-gradient(118deg,#F8F6EF 0%,#EFEDE2 55%,#E5E3D4 100%)}
/* hero text aligned with the nav logo (like home) — not the centered maxw inner */
.phero .sec__inner{max-width:none;margin:0}
.phero__h1{font-size:clamp(54px,7vw,104px);line-height:.98;margin:.3em 0 .5em;color:#1E2A1C}
/* headline words track the morphing particle field: the active phase's word
   deepens to forest green, the others soften back */
.phero__word{transition:color .7s ease,text-shadow .7s ease}
.phero__h1.is-cycling .phero__word{color:rgba(30,42,28,.26)}
.phero__h1.is-cycling .phero__word.is-active{color:#2E3B2A;text-shadow:0 1px 18px rgba(138,109,47,.35)}
.phero .lede{color:#525A48}
.phero .btn--primary{background:#2E3B2A;color:#F5F4EF;box-shadow:0 12px 30px -14px rgba(46,59,42,.5)}
.phero .btn--primary:hover{background:#26311F}

/* ---- particle stage (replaces the 3 static dials) ---- */
.phero__stage{display:flex;flex-direction:column;justify-content:center}
.phero__particles{display:block;width:100%;height:clamp(400px,48vw,640px)}
@media (max-width:860px){
  .phero__stage{margin-top:1.2em}
  .phero__particles{height:clamp(320px,76vw,420px)}
  /* on mobile the words stack normally — keep the active-word cue subtle */
  .phero__h1.is-cycling .phero__word{color:rgba(30,42,28,.4)}
}

/* ---- 2 · REVEAL ---- */
.reveal__grid{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch}
/* SPLIT-SCREEN (m21): the photo is flush to the section's left/top/bottom
   edges — not a card floating in padding */
.reveal__portrait{position:relative;border-radius:0;overflow:hidden;
  min-height:clamp(480px,78vh,760px);
  margin-left:calc(-1 * var(--pad-x));
  margin-top:calc(-1 * var(--sec-y));
  margin-bottom:calc(-1 * var(--sec-y))}
.reveal__cells{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#8E9772;opacity:.9}
.reveal__cells svg{width:74%;height:auto}
/* olive ink, not near-white — the orb's ring segments were invisible on the
   light portrait field (screen review: "logo lines barely visible") */
.reveal__orb{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:30%;color:#5F6849;z-index:2;
  filter:drop-shadow(0 0 14px rgba(231,206,143,.35))}
.reveal__orb .orb-sm{width:100%;height:100%}
.reveal__body{padding-left:clamp(28px,4vw,64px);display:flex;flex-direction:column;justify-content:center}
.reveal__body .statement{margin:.3em 0 .6em}
.reveal__list{list-style:none;margin-top:2em;display:flex;flex-direction:column;gap:0}
.reveal__list li{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--panel-line);border-radius:10px;margin-bottom:8px;background:var(--panel)}
.reveal__n{color:var(--muted);font-size:11px}
.reveal__ic{width:22px;height:22px;color:var(--tan)}
.reveal__lab{letter-spacing:.1em;text-transform:uppercase;font-size:12px;color:var(--fg);display:flex;align-items:center;gap:14px}
/* dotted leader line from each label out to its 100% (m21) */
.reveal__lab::after{content:"";flex:1;height:0;border-bottom:1px dotted var(--rule);opacity:.7;min-width:24px}
.reveal__pct{color:var(--olive);font-size:12px;justify-self:end}
@media (max-width:860px){.reveal__grid{grid-template-columns:1fr}.reveal__body{padding-left:0;margin-top:2em}
  .reveal__portrait{margin:calc(-1 * var(--sec-y)) calc(-1 * var(--pad-x)) 0;min-height:58vh}}

/* ---- 3 · DOMAINS (v162 · radial hub-and-spoke, per client mockup) ---- */
.domains .statement{text-align:center;margin:0 auto}
.domains__radial{display:grid;grid-template-columns:1fr auto 1fr;gap:clamp(18px,2.4vw,52px);
  align-items:center;margin-top:clamp(34px,4.5vw,64px)}
.domains__col{display:flex;flex-direction:column;gap:clamp(14px,1.5vw,24px)}

/* one domain card */
.domcard{position:relative;display:flex;align-items:center;gap:16px;
  background:rgba(255,255,255,.5);border:1px solid rgba(45,56,42,.1);border-radius:16px;
  padding:15px clamp(16px,1.5vw,22px);
  box-shadow:0 20px 44px -38px rgba(46,59,42,.4);
  transition:transform .5s var(--ease-settle),box-shadow .5s var(--ease-settle)}
.domcard--r{flex-direction:row-reverse}
.domcard:hover{transform:translateY(-5px);box-shadow:0 34px 60px -34px rgba(46,59,42,.42)}
.domcard__ic{width:46px;height:46px;flex:none;padding:11px;color:#8A6D2F;
  border:1px solid rgba(138,109,47,.4);border-radius:50%}
.domcard__ic svg{width:100%;height:100%}
.domcard__body{display:flex;flex-direction:column;min-width:0;flex:1}
.domcard__name{font-size:clamp(15px,1.15vw,18px);color:#22301F;line-height:1.2}
.domcard__n{align-self:flex-start;font-size:clamp(26px,2.3vw,36px);color:#22301F;line-height:1;
  margin:.14em 0 .28em;padding-bottom:.14em;border-bottom:1.5px solid rgba(138,109,47,.4)}
.domcard__what{font-size:11px;letter-spacing:.01em;color:#6E7561;line-height:1.4}

/* connector lines from cards to the hub ring are drawn by domainspokes.js
   into an SVG (.domains__spokes) computed from live layout so they align */
.domains__radial{position:relative}
.domcard{z-index:1}   /* cards paint above the spoke SVG */

/* the central total hub with radiating rings */
.domains__hub{position:relative;justify-self:center;width:clamp(210px,21vw,296px);aspect-ratio:1;
  display:grid;place-items:center;text-align:center;gap:0}
.domains__hub::before{content:"";position:absolute;inset:-40%;border-radius:50%;pointer-events:none;
  background:repeating-radial-gradient(circle at 50% 50%, rgba(138,109,47,.09) 0 1px, transparent 1px 15px);
  -webkit-mask:radial-gradient(circle at 50% 50%, #000 52%, transparent 70%);
  mask:radial-gradient(circle at 50% 50%, #000 52%, transparent 70%)}
.domhub__rings{position:absolute;inset:3%;border-radius:50%;pointer-events:none;
  border:1.5px solid rgba(138,109,47,.5);
  box-shadow:inset 0 0 0 7px rgba(244,242,239,.55), inset 0 0 0 8.5px rgba(138,109,47,.24),
             0 30px 60px -34px rgba(46,59,42,.4)}
.domhub__top{position:relative;color:#8A6D2F;letter-spacing:.28em}
.domhub__n{position:relative;font-size:clamp(46px,6vw,86px);color:#22301F;line-height:.9;margin:.05em 0}
.domhub__div{position:relative;width:9px;height:9px;transform:rotate(45deg);
  border:1px solid rgba(138,109,47,.6);margin:.15em 0 .45em}
.domhub__sub{position:relative;color:#8A6D2F;letter-spacing:.24em;line-height:1.55}

@media (max-width:900px){
  .domains__radial{grid-template-columns:1fr;gap:14px;max-width:460px;margin-inline:auto}
  .domains__hub{order:-1;width:min(64vw,240px);margin:0 auto .6em}
  .domcard--r{flex-direction:row}       /* icon back to the left when stacked */
}

/* ---- 4 · MEASURED BY ---- */
.measured__eyebrow{margin-bottom:1em}
.measured__rule{display:block;width:40px;height:1px;background:var(--rule);margin:1em auto 3em}
.measured__rail{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(10px,1.6vw,24px);align-items:start}
.measured__signal{position:absolute;left:0;right:0;top:64px;height:1px;background:linear-gradient(90deg,transparent,var(--tan),transparent);opacity:.5;z-index:0}
.mtile{display:flex;flex-direction:column;align-items:center;gap:1em;position:relative;z-index:1}
.mtile__face{width:100%;aspect-ratio:1;border-radius:8px;border:1px solid var(--panel-line);
  background:
    radial-gradient(circle at 14px 14px, rgba(36,30,21,.28) 0 1.3px, rgba(255,255,255,.55) 1.7px 2.6px, transparent 3px),
    radial-gradient(circle at calc(100% - 14px) 14px, rgba(36,30,21,.28) 0 1.3px, rgba(255,255,255,.55) 1.7px 2.6px, transparent 3px),
    radial-gradient(circle at 14px calc(100% - 14px), rgba(36,30,21,.28) 0 1.3px, rgba(255,255,255,.55) 1.7px 2.6px, transparent 3px),
    radial-gradient(circle at calc(100% - 14px) calc(100% - 14px), rgba(36,30,21,.28) 0 1.3px, rgba(255,255,255,.55) 1.7px 2.6px, transparent 3px),
    linear-gradient(160deg,#fbf7ec,#e6dcc8);
  display:grid;place-items:center;color:var(--tan);position:relative;
  box-shadow:0 16px 30px -22px rgba(36,30,21,.5),inset 0 1px 0 rgba(255,255,255,.6);padding:26%}
.mtile__face::before{content:"";position:absolute;inset:18%;border-radius:50%;
  box-shadow:inset 0 2px 6px rgba(36,30,21,.16),inset 0 -1px 0 rgba(255,255,255,.5);border:1px solid rgba(36,30,21,.06)}
.mtile__face svg{width:100%;height:100%}
.mtile figcaption{text-align:center;font-size:10px}
@media (max-width:860px){.measured__rail{grid-template-columns:repeat(2,1fr);gap:20px}.measured__signal{display:none}}

/* ---- 5 · REDUCE ---- */
.reduce__head{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(30px,5vw,70px);align-items:center}
.reduce__head .statement{margin:.3em 0 .6em}
.reduce__chart{background:var(--panel);border:1px solid var(--panel-line);border-radius:14px;padding:20px 22px}
.reduce__chartcap{display:block;margin-top:10px;opacity:.7}
.reduce__protocol{display:grid;grid-template-columns:1fr 2.4fr 1fr;gap:16px;margin-top:3em;align-items:stretch}
.proto{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--panel-line);border-radius:12px;padding:16px;background:var(--panel)}
.proto b{display:block;font-size:.95rem;margin-bottom:.2em;color:var(--fg)}
.proto span{font-size:.84rem;color:var(--muted)}
.proto__av{width:46px;height:46px;border-radius:50%;flex:none;overflow:hidden}
.proto__av--ic{display:grid;place-items:center;background:rgba(164,172,138,.14);color:var(--sand);padding:11px;overflow:visible}
.proto__av--ic svg{width:100%;height:100%}
.team__avatar--ic{display:grid;place-items:center;background:rgba(164,172,138,.12);color:var(--sand);padding:20px}
.team__avatar--ic svg{width:100%;height:100%}
.proto__orb{width:46px;height:46px;flex:none;color:var(--sand);background:var(--bark-deep);border-radius:50%;display:grid;place-items:center}.proto__orb .orb-sm{width:24px;height:24px}
.proto__cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.proto__card{border:1px solid var(--panel-line);border-radius:12px;padding:14px;background:var(--panel)}
.proto__ic{width:26px;height:26px;color:var(--sand);display:block;margin-bottom:10px}
.proto__card b{display:block;color:var(--fg);margin-bottom:.3em}
.proto__card span{font-size:.8rem;color:var(--muted)}
.reduce__tags{justify-content:center;margin-top:2.6em}
.reduce__tags .ico{color:var(--sand)}
@media (max-width:980px){.reduce__head{grid-template-columns:1fr}.reduce__protocol{grid-template-columns:1fr}.proto__cards{grid-template-columns:repeat(2,1fr)}}

/* ---- 6 · REPEAT ---- */
.repeat__copy .statement{margin:.3em 0 .6em}
.repeat__again{color:var(--fg);font-family:var(--sans);font-weight:460;font-size:1.15rem}
.repeat__viz{position:relative;display:flex;align-items:center;justify-content:center;gap:clamp(16px,2vw,30px)}
.repeat__feeds{display:flex;flex-direction:column;gap:24px}
/* live-signal wires feeding the dial, with EKG waveforms (m25) */
.repeat__wires{width:clamp(80px,11vw,130px);height:auto;color:var(--tan);flex:none;align-self:center}
@media (max-width:860px){.repeat__wires{display:none}}
.repeat__feed{display:flex;flex-direction:column;align-items:center;gap:6px}
.repeat__feedic{width:42px;height:42px;border:1px solid var(--rule);border-radius:50%;padding:10px;color:var(--tan);background:var(--panel)}
.repeat__dial{flex:none;width:clamp(220px,24vw,320px);color:var(--fg);position:relative}
.repeat__dial::after{content:"";position:absolute;inset:-6%;border-radius:50%;box-shadow:0 30px 60px -30px rgba(154,126,99,.5)}
.repeat__delta{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.repeat__delta>span{display:flex;flex-direction:column}
.repeat__delta .num{font-size:clamp(26px,3vw,38px);color:var(--fg)}
.repeat__d{align-self:center;background:var(--panel);border:1px solid var(--panel-line);border-radius:999px;padding:.3em .9em;font-family:var(--sans);font-weight:440;color:var(--ember)}
@media (max-width:860px){.repeat__viz{flex-direction:column}.repeat__feeds{flex-direction:row}.repeat__delta{flex-direction:row;align-items:center}}

/* ---- 7 · ONE THREAD ---- */
.onethread__row{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(30px,5vw,70px);align-items:center;margin-top:1em}
.onethread__copy .statement{margin-bottom:.5em}
.onethread__thread{justify-content:space-between;margin-top:0}
.onethread__thread .team__node{flex-direction:column;gap:10px}
.onethread__thread .team__avatar{width:84px;height:84px}
.onethread__pulse{display:flex;align-items:center;gap:10px;justify-content:flex-end;margin-top:2em}
@media (max-width:860px){.onethread__row{grid-template-columns:1fr}.onethread__thread{flex-wrap:wrap;justify-content:center;gap:20px}}

/* ---- 8 · APP ---- */
.app2__twice{color:var(--fg)}.app2__twice b{font-weight:600}

/* ---- 9 · END CTA ---- */
.endcta__copy .statement{margin:.3em 0}
.endcta__mark{color:var(--sand)}
@media (max-width:860px){.endcta__mark{margin-top:2em}}

/* a slow light sheen passes over each medallion plate — m23 stays alive
   even though comets are suppressed on light sections */
.mtile::after{content:"";position:absolute;top:0;left:0;width:100%;aspect-ratio:1;border-radius:8px;pointer-events:none;z-index:2;
  background:linear-gradient(115deg,transparent 40%,rgba(255,250,235,.45) 50%,transparent 60%) no-repeat;
  background-size:280% 100%;background-position:130% 0;animation:sheen-pass 7.5s ease-in-out infinite}
.mtile:nth-child(2)::after{animation-delay:.7s}
.mtile:nth-child(3)::after{animation-delay:1.4s}
.mtile:nth-child(4)::after{animation-delay:2.1s}
.mtile:nth-child(5)::after{animation-delay:2.8s}
@keyframes sheen-pass{0%,58%{background-position:130% 0}88%,100%{background-position:-80% 0}}

/* phase-wise explanations under the hero dials (doc, 2026-07-15) */
.phero__cta{margin-top:1.4em}
/* app section intro line */
.app2__lead{font-family:var(--serif);font-style:italic;font-size:1.05rem;color:var(--ember);margin-bottom:.5em}

/* ---- light nav on the programme page (hero is light now; the default
   cream nav text read as "turning white"). Same glass bar as home. ---- */
body[data-page="programme"] .nav{color:#22271F}
body[data-page="programme"] .nav__link{opacity:.85;font-weight:460}
body[data-page="programme"] .nav--solid{background:rgba(246,244,238,.55);
  backdrop-filter:blur(20px) saturate(1.2);
  -webkit-backdrop-filter:blur(20px) saturate(1.2);
  border-bottom:1px solid rgba(34,39,31,.08)}
body[data-page="programme"] .nav__apply:hover{background:#2E3B2A}
body[data-page="programme"] .nav__apply:hover span{color:#F5F4EF}

/* ============================================================
   FULL LIGHT REBRAND (client review round 2) — Programme
   ============================================================ */
/* domains: merged "see your body clearly" list w/ per-domain detail */
.dom__what{display:block;font-size:.78rem;color:var(--muted);margin-top:2px;letter-spacing:.01em}

/* stabilise: boxes -> clean minimalist lines on the light field */
.reduce__chart{background:none;border:none;border-radius:0;padding:0}
.reduce__protocol .proto{background:none;border:none;border-radius:0;
  border-bottom:1px solid var(--rule);padding:16px 4px}
.reduce .statement{color:#22301F}
.reduce .statement em{color:#90966E}

/* optimise dial: forest ink, gold-free */
.repeat__dial{color:#2E3B2A}

/* light endcta: forest orb, parity CTA */
.endcta__mark{color:#757C5C}
.endcta .statement{color:#22301F}

/* light-page statements match the landing's authority */
body[data-page="programme"] .statement{color:#22301F}
body[data-page="programme"] .statement em{color:#90966E}
body[data-page="programme"] .body{font-size:clamp(16px,1.15vw,18px);color:#4C5443}

/* v155 · SCIENTIFIC TEAM (moved from the landing page) — portrait cards in
   the onethread section, staggered entrance. .team__photo takes a real <img>
   (object-fit:cover) once portraits arrive; serif monogram placeholder now. */
.onethread .statement{margin-bottom:.4em}
.team__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.8vw,24px);margin-top:2em;max-width:1240px}  /* 7 people: 4 + 3 */
.team__card{background:rgba(255,255,255,.55);border:1px solid rgba(45,56,42,.1);border-radius:16px;
  padding:14px 14px 20px;
  transition:transform .55s var(--ease-settle),box-shadow .55s var(--ease-settle)}
.team__card:hover{transform:translateY(-8px);box-shadow:0 36px 68px -32px rgba(46,59,42,.4)}
.team__photo{position:relative;aspect-ratio:4/5;border-radius:10px;overflow:hidden;margin:0 0 1em;
  display:grid;place-items:center;
  background:
    radial-gradient(60% 50% at 50% 30%, rgba(216,206,164,.5), transparent 75%),
    linear-gradient(150deg,#EFEDE2,#DFDCCB)}
.team__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.team__mono{font-family:var(--serif);font-style:italic;font-size:clamp(36px,3.4vw,52px);color:rgba(117,124,92,.55)}
.team__name{font-size:1.05rem;font-weight:560;color:#22301F;margin-bottom:.35em}
.team__role{color:#8A6D2F;font-size:10px}
@media (max-width:860px){.team__grid{grid-template-columns:1fr 1fr;gap:14px}}
