/* 01-tokens.css */
/* indaba.co V2 · tokens. The palette and type are the live indaba.co brand system (Webflow export, 21 Oct 2026;
   docs/phase-0/SOURCES.md): Cormorant Garamond, IBM Plex Sans, IBM Plex Mono; ivory and charcoal. Sage and mineral
   are the Investor Book's quiet accents, used only for the material glyphs and small marks. */
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 300 500; font-display: swap; src: url("/assets/fonts/cormorant-garamond-300-500-normal-latin.woff2") format("woff2"); }
@font-face { font-family: "Cormorant Garamond"; font-style: italic; font-weight: 300 400; font-display: swap; src: url("/assets/fonts/cormorant-garamond-300-400-italic-latin.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 300 500; font-display: swap; src: url("/assets/fonts/ibm-plex-sans-300-500-normal-latin.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/ibm-plex-mono-400-normal-latin.woff2") format("woff2"); }

:root {
  --paper: #efede7;
  --paper-deep: #e1dcd5;
  --paper-light: #f7f7f2;
  --ink: #191818;
  --ink-2: #1e1c1b;
  --ink-3: #22201f;
  --ink-soft: #4d4945;
  --ink-mute: #625d57; /* ≥ 4.5:1 on --paper-deep, the darkest light surface (4.8:1) */
  --rule: rgba(25, 24, 24, 0.14);
  --rule-strong: rgba(25, 24, 24, 0.32);
  --rule-field: #77716a; /* form field borders: 3.3:1 on --paper-deep, 4.2:1 on --paper-light (WCAG 1.4.11) */
  --on-dark: #f7f7f2;
  --on-dark-soft: rgba(247, 247, 242, 0.72);
  --on-dark-mute: rgba(247, 247, 242, 0.52);
  --rule-dark: rgba(247, 247, 242, 0.16);
  --sage: #74847e;
  --mineral: #9b8d69;
  --forest: #2b3a32;
  --error: #b23a3a;
  --success: #3d7a57;
  --accent: var(--mineral);

  --font-display: "Cormorant Garamond", "Iowan Old Style", Georgia, serif;
  --font-body: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  --fs-display: clamp(2.75rem, 1.6rem + 5.2vw, 6.25rem);
  --fs-display-md: clamp(2.25rem, 1.5rem + 3.4vw, 4.25rem);
  --fs-h2: clamp(2rem, 1.4rem + 2.6vw, 3.5rem);
  --fs-h3: clamp(1.6rem, 1.3rem + 1.3vw, 2.4rem);
  --fs-h4: clamp(1.3rem, 1.15rem + 0.6vw, 1.65rem);
  --fs-lede: clamp(1.125rem, 1.03rem + 0.4vw, 1.375rem);
  --fs-body: 1.0625rem;
  --fs-small: 0.9375rem;
  --fs-mono: 0.75rem;

  --gutter: clamp(16px, 4vw, 48px);
  --max: 1320px;
  --space-sec: clamp(4.5rem, 3rem + 6vw, 9rem);
  --radius: 4px;
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --header-h: 68px;
}

/* 02-base.css */
/* Base: reset, type, links, utilities. Mobile first. */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font-body); font-weight: 300; font-size: var(--fs-body); line-height: 1.65; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
img, svg { display: block; max-width: 100%; }
[hidden] { display: none !important; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote { margin: 0; }
ul[role="list"], ol[role="list"] { list-style: none; padding: 0; }
strong, b { font-weight: 500; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; border-radius: 2px; }
::selection { background: var(--ink); color: var(--paper); }
p, li, figcaption, blockquote { text-wrap: pretty; }

/* Page transitions: same-origin navigations cross-fade and the header holds still. */
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
  .site-header { view-transition-name: site-header; }
  ::view-transition-old(root) { animation: vt-out 0.24s cubic-bezier(0.4, 0, 1, 1) both; }
  ::view-transition-new(root) { animation: vt-in 0.56s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
}
@keyframes vt-out { to { opacity: 0; } }
@keyframes vt-in { from { opacity: 0; transform: translateY(12px); } }

.wrap { width: 100%; max-width: var(--max); margin-inline: auto; padding-inline: var(--gutter); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 100; padding: 10px 16px; background: var(--ink); color: var(--paper); font-size: var(--fs-small); text-decoration: none; }
.skip:focus { top: 12px; }

/* Type scale */
.display { font-family: var(--font-display); font-weight: 300; font-size: var(--fs-display); line-height: 0.98; letter-spacing: -0.02em; text-wrap: balance; }
.display--md { font-size: var(--fs-display-md); line-height: 1.02; }
.display em, .h2 em, .h3 em { font-style: italic; }
.display-line { display: block; }
.h2 { font-family: var(--font-display); font-weight: 400; font-size: var(--fs-h2); line-height: 1.04; letter-spacing: -0.015em; text-wrap: balance; }
.h3 { font-family: var(--font-display); font-weight: 400; font-size: var(--fs-h3); line-height: 1.1; letter-spacing: -0.01em; text-wrap: balance; }
.h4 { font-family: var(--font-display); font-weight: 500; font-size: var(--fs-h4); line-height: 1.15; text-wrap: balance; }
.lede, .lede p { font-size: var(--fs-lede); line-height: 1.55; color: var(--ink-soft); }
.lede p + p { margin-top: 0.9em; }
.folio { display: flex; align-items: center; gap: 0.9rem; font-family: var(--font-mono); font-size: var(--fs-mono); font-weight: 400; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-soft); }
.folio::before { content: ""; flex: none; width: 2.25rem; height: 1px; background: currentColor; opacity: 0.7; }
.folio__num { color: var(--ink); }
.wrap > .fine, .wrap > * + .fine { margin-top: 1.5rem; }
.fine { font-size: 0.8125rem; line-height: 1.55; color: var(--ink-mute); max-width: 62ch; }
.ext { display: inline-block; margin-left: 0.2em; font-size: 0.85em; }
.arrow-link { font-weight: 400; text-decoration: none; border-bottom: 1px solid var(--rule-strong); padding-bottom: 2px; transition: border-color 200ms var(--ease); }
.arrow-link::after { content: " →"; }
.arrow-link:has(.ext)::after { content: ""; }
.arrow-link:hover { border-color: currentColor; }

/* Prose */
.prose { max-width: 64ch; }
.prose p + p { margin-top: 1em; }
.prose p { color: var(--ink-soft); }
.pull { margin: 2.25rem 0 0; padding: 0 0 0 1.25rem; border-left: 1px solid var(--ink); }
.pull p { font-family: var(--font-display); font-style: italic; font-weight: 400; font-size: var(--fs-h4); line-height: 1.3; color: var(--ink); }
.ticks { list-style: none; padding: 0; display: grid; gap: 0.6rem; }
.ticks li { position: relative; padding-left: 1.5rem; color: var(--ink-soft); }
.ticks li::before { content: ""; position: absolute; left: 0; top: 0.75em; width: 0.7rem; height: 1px; background: var(--ink); }

/* Status pill: what is available now vs in development (brief §06). */
.status { justify-self: start; display: inline-flex; align-items: center; gap: 0.55rem; margin-top: 1.25rem; padding: 0.35rem 0.8rem 0.35rem 0.65rem; border: 1px solid var(--rule-strong); border-radius: 100vw; font-family: var(--font-mono); font-size: 0.6875rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-soft); }
.status__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }

/* Glyph line art: currentColor strokes, accent fills (src/glyphs.mjs). */
.glyph { width: 100%; height: auto; fill: none; stroke: currentColor; stroke-width: 1.15; stroke-linecap: round; stroke-linejoin: round; overflow: visible; }
.glyph .g-faint { stroke-opacity: 0.35; }
.glyph .g-accent { fill: var(--accent); stroke: var(--accent); }
.glyph .g-soft { fill-opacity: 0.28; }
.glyph .g-letter { font-family: var(--font-display); font-style: italic; font-weight: 300; font-size: 104px; fill: none; stroke: currentColor; stroke-width: 1; }

@media (prefers-reduced-motion: no-preference) {
  .hero__copy > * { animation: rise 900ms var(--ease) both; }
  .hero__copy > :nth-child(2) { animation-delay: 80ms; }
  .hero__copy > :nth-child(3) { animation-delay: 160ms; }
  .hero__copy > :nth-child(n+4) { animation-delay: 240ms; }
  .hero__art { animation: settle 1400ms var(--ease) 200ms both; }
  @keyframes rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
  @keyframes settle { from { opacity: 0; transform: scale(0.97); } to { opacity: 1; transform: none; } }
}

/* 03-chrome.css */
/* GlobalHeader (mega-menu) and GlobalFooter. Desktop ≥ 1080px: inline menu, full-width panels. Below: a drawer with
   accordion groups. Without JavaScript the menu is simply shown open in the page flow (html lacks .js). The header
   CTA sits in the bar, outside the menu, so it stays visible at every width (brief §04 "persistent CTA", §14). */
.site-header { position: sticky; top: 0; z-index: 50; background: color-mix(in srgb, var(--paper) 92%, transparent); backdrop-filter: saturate(1.2) blur(10px); -webkit-backdrop-filter: saturate(1.2) blur(10px); border-bottom: 1px solid var(--rule); }
.theme-atelier .site-header { background: color-mix(in srgb, var(--ink-2) 94%, transparent); border-color: var(--rule-dark); color: var(--on-dark); }
.site-header__bar { display: flex; align-items: center; gap: 0.75rem 1rem; min-height: var(--header-h); flex-wrap: wrap; }
.brand { display: flex; align-items: center; margin-right: auto; text-decoration: none; }
/* The shared Indaba header (Ventures · Foundation · Institute, 28 Oct 2026): wordmark, then the unit after a hairline.
   The Foundation (public/css/site.css) and Institute (public/site.css) headers copy this bar. */
.brand__unit { margin-left: 0.8rem; padding-left: 0.8rem; border-left: 1px solid var(--rule-strong); font: 400 0.6875rem/1.1 var(--font-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-mute); }
.theme-atelier .brand__unit { border-color: var(--rule-dark); color: var(--on-dark-mute); }
@media (max-width: 479px) { .brand__unit { display: none; } }
.brand__word { font-family: var(--font-display); font-weight: 400; font-size: 1.85rem; letter-spacing: 0.01em; line-height: 1; }
.brand__word--lg { font-size: 2.6rem; }

.menu-toggle { display: none; align-items: center; gap: 0.6rem; min-height: 44px; padding: 0 0.25rem; background: none; border: 0; color: inherit; font: 400 var(--fs-mono)/1 var(--font-mono); letter-spacing: 0.14em; text-transform: uppercase; cursor: pointer; }
.menu-toggle__icon { position: relative; width: 22px; height: 10px; border-block: 1px solid currentColor; transition: transform 250ms var(--ease); }
.js .menu-toggle { display: inline-flex; }

.site-nav { order: 1; width: 100%; padding-bottom: 1rem; }
.js .site-nav { display: none; }
.js .menu-open .site-nav { display: block; max-height: calc(100dvh - var(--header-h)); overflow-y: auto; }
.menu-toggle__icon::before, .menu-toggle__icon::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 1px solid currentColor; opacity: 0; transition: transform 250ms var(--ease), opacity 150ms; }
.menu-open .menu-toggle__icon { border-color: transparent; }
.menu-open .menu-toggle__icon::before { opacity: 1; transform: rotate(45deg); }
.menu-open .menu-toggle__icon::after { opacity: 1; transform: rotate(-45deg); }
/* Below desktop the open menu is a full-height sheet under the bar: the bar never reflows and the page stays still.
   The header's backdrop-filter makes it the containing block, so the sheet sizes by height, not by bottom. */
@media (max-width: 1079px) {
  .js .menu-open .site-nav { position: fixed; left: 0; right: 0; top: var(--header-h); height: calc(100dvh - var(--header-h)); max-height: none; padding: 0.5rem var(--gutter) 2.5rem; background: var(--paper); border-top: 1px solid var(--rule); animation: sheet-in 0.32s var(--ease) both; }
  .theme-atelier.menu-open .site-nav, .theme-atelier .menu-open .site-nav { background: var(--ink-2); border-color: var(--rule-dark); }
  .menu-lock { overflow: hidden; }
  .mega__label.is-current { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.3em; }
}
@keyframes sheet-in { from { opacity: 0; transform: translateY(-8px); } }
@media (prefers-reduced-motion: reduce) { .js .menu-open .site-nav { animation: none; } .menu-toggle__icon::before, .menu-toggle__icon::after { transition: none; } }
.site-nav__list { display: grid; }
.site-nav__item { border-top: 1px solid var(--rule); }
.theme-atelier .site-nav__item { border-color: var(--rule-dark); }
.mega__label { display: flex; align-items: center; justify-content: space-between; min-height: 52px; font-family: var(--font-display); font-size: 1.6rem; cursor: pointer; list-style: none; }
.mega__label::-webkit-details-marker { display: none; }
.mega__chev { width: 9px; height: 9px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg) translateY(-3px); transition: transform 250ms var(--ease); }
.mega[open] .mega__chev { transform: rotate(-135deg) translateY(-1px); }
.mega__panel { padding: 0.25rem 0 1.25rem; }
.mega__panel .wrap { padding: 0; }
.mega__intro { display: none; }
.mega__links { display: grid; gap: 0.25rem; }
.mega__links a { display: grid; gap: 0.1rem; padding: 0.55rem 0; text-decoration: none; }
.mega__title { font-weight: 400; }
.mega__desc { font-size: var(--fs-small); color: var(--ink-mute); }
.theme-atelier .mega__desc { color: var(--on-dark-mute); }
.mega__links a[aria-current="page"] .mega__title { text-decoration: underline; text-underline-offset: 0.25em; }
.site-header__cta { flex: none; }
@media (max-width: 479px) {
  .site-header__cta { min-height: 40px; padding: 0.45rem 0.9rem; font-size: 0.8125rem; }
  .site-header__cta .btn__arrow { display: none; }
}
@media (max-width: 379px) {
  .site-header__bar { column-gap: 0.5rem; }
  .brand .brand__word { font-size: 1.6rem; }
  .menu-toggle { min-width: 44px; justify-content: center; }
  .menu-toggle__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

@media (min-width: 1080px) {
  .js .menu-toggle { display: none; }
  .site-nav, .js .site-nav { order: 0; display: flex; align-items: center; width: auto; padding: 0; }
  .site-header__bar { flex-wrap: nowrap; gap: 2rem; }
  .site-nav__list { display: flex; gap: 0.25rem; }
  .site-nav__item { border: 0; }
  .mega__label { min-height: 44px; padding: 0 0.85rem; font-family: var(--font-body); font-size: 0.9375rem; font-weight: 400; gap: 0.5rem; border-radius: 100vw; }
  .mega__label:hover, .mega[open] .mega__label { background: rgba(25, 24, 24, 0.06); }
  .theme-atelier .mega__label:hover, .theme-atelier .mega[open] .mega__label { background: rgba(247, 247, 242, 0.08); }
  .mega__label.is-current { text-decoration: underline; text-underline-offset: 0.5em; text-decoration-thickness: 1px; }
  .mega__chev { width: 6px; height: 6px; }
  .mega__panel { position: fixed; left: 0; right: 0; top: var(--header-h); padding: 2.5rem 0 3rem; background: var(--paper-light); color: var(--ink); border-bottom: 1px solid var(--rule); box-shadow: 0 24px 48px -32px rgba(25, 24, 24, 0.35); }
  .mega__panel .wrap { padding-inline: var(--gutter); }
  .mega__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 4rem; align-items: start; }
  .mega__intro { display: grid; grid-template-columns: 120px 1fr; gap: 1.75rem; align-items: center; }
  .mega__art { color: var(--ink); }
  .mega__line { font-family: var(--font-display); font-size: 1.85rem; line-height: 1.15; }
  .mega__links { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem 2.5rem; }
  .mega__links a { padding: 0.9rem 0; border-top: 1px solid var(--rule); }
  .mega__links a:hover .mega__title { text-decoration: underline; text-underline-offset: 0.25em; }
  .theme-atelier .mega__desc { color: var(--ink-mute); }
  /* A soft scrim settles the page behind an open panel; clicking it closes the panel (outside-click handler). */
  .site-header:has(.mega[open])::after { content: ""; position: fixed; left: 0; right: 0; top: var(--header-h); height: 100vh; z-index: -1; background: rgba(25, 24, 24, 0.22); }
}
/* No opening animation on the mega panel: an opacity fade on content inside <details> left Chrome's composited layer
   stuck part-transparent on desktop (23 Oct 2026: the open menu showed the hero through it; reduced motion was fine). */

/* Cookie choices (production only; public/assets/js/analytics.js). A bar, not a modal: the page stays usable. */
.consent { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; background: var(--paper-light); color: var(--ink); border-top: 1px solid var(--rule); box-shadow: 0 -16px 40px -28px rgba(25, 24, 24, 0.4); padding: 1rem 0 calc(1rem + env(safe-area-inset-bottom, 0px)); }
.consent[hidden] { display: none; }
.consent__inner { display: grid; gap: 0.85rem 2rem; align-items: center; }
.consent__text { font-size: var(--fs-small); max-width: 60rem; }
.consent__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
@media (min-width: 900px) { .consent__inner { grid-template-columns: minmax(0, 1fr) auto; } }

/* Footer */
.site-footer { background: var(--ink); color: var(--on-dark); border-top: 1px solid var(--rule-dark); padding: clamp(3.5rem, 6vw, 6rem) 0 2rem; }
.site-footer a { color: inherit; text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
.site-footer__top { display: grid; gap: 2.5rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.site-footer__brand { grid-column: 1 / -1; display: grid; gap: 0.75rem; max-width: 30rem; }
.site-footer__line { font-family: var(--font-display); font-size: 1.6rem; line-height: 1.2; }
.site-footer__sub { color: var(--on-dark-soft); font-size: var(--fs-small); }
.site-footer__title { font-family: var(--font-mono); font-size: var(--fs-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--on-dark-mute); margin-bottom: 1rem; }
.site-footer__col ul { display: grid; gap: 0.55rem; font-size: var(--fs-small); }
.site-footer__bottom { display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: center; justify-content: space-between; margin-top: 3.5rem; padding-top: 1.5rem; border-top: 1px solid var(--rule-dark); font-size: 0.8125rem; }
.site-footer__legal { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; }
.site-footer__muted { color: var(--on-dark-mute); }
@media (min-width: 900px) {
  .site-footer__top { grid-template-columns: minmax(0, 1.6fr) repeat(4, minmax(0, 1fr)); }
  .site-footer__brand { grid-column: auto; }
}

/* 04-components.css */
/* Components (src/components.mjs): buttons, hero, sections, product panels, tiles, stages, shifts, disclosures,
   facts, splits, evidence, cross-entity links, CTA band, subnav. */

/* Buttons */
.btn { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.25rem; min-height: 48px; padding: 0.75rem 1.25rem 0.75rem 1.4rem; border: 1px solid var(--ink); border-radius: 100vw; font: 400 0.9375rem/1.2 var(--font-body); text-decoration: none; cursor: pointer; transition: background-color 200ms var(--ease), color 200ms var(--ease), border-color 200ms var(--ease); }
.btn--primary { background: var(--ink); color: var(--paper-light); }
.btn--primary:hover { background: var(--ink-3); text-decoration: none; }
.btn--secondary { background: transparent; color: var(--ink); }
.btn--secondary:hover { background: var(--ink); color: var(--paper-light); text-decoration: none; }
.btn--small { min-height: 40px; padding: 0.5rem 1rem 0.5rem 1.15rem; font-size: 0.875rem; }
.btn__arrow { transition: transform 200ms var(--ease); }
.btn:hover .btn__arrow { transform: translateX(3px); }
.btn-row { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2rem; }
.theme-atelier .btn--primary, .sec--atelier .btn--primary, .cta--atelier .btn--primary, .hero--atelier .btn--primary { background: var(--paper-light); color: var(--ink); border-color: var(--paper-light); }
.theme-atelier .btn--primary:hover, .sec--atelier .btn--primary:hover, .cta--atelier .btn--primary:hover, .hero--atelier .btn--primary:hover { background: var(--paper); }
.theme-atelier .btn--secondary, .sec--atelier .btn--secondary, .cta--atelier .btn--secondary, .hero--atelier .btn--secondary { color: var(--on-dark); border-color: var(--on-dark-soft); }
.theme-atelier .btn--secondary:hover, .sec--atelier .btn--secondary:hover, .cta--atelier .btn--secondary:hover, .hero--atelier .btn--secondary:hover { background: var(--paper-light); color: var(--ink); }
/* Focus ring in the surface's contrast colour, never currentColor: a primary button's text is the page colour, so a
   currentColor ring would vanish against the page (WCAG 2.4.7, 1.4.11). */
.btn:focus-visible { outline-color: var(--ink); }
:is(.theme-atelier, .sec--atelier, .cta--atelier, .hero--atelier) .btn:focus-visible { outline-color: var(--on-dark); }
.theme-atelier :is(.sec--light, .sec--deep, .cta--deep) .btn:focus-visible { outline-color: var(--ink); }
/* A text link right after a row of buttons (e.g. a tertiary "Technology & Standards" link) keeps its distance. */
.btn-row + p { margin-top: 1.25rem; }

/* Hero */
.hero { padding: clamp(3rem, 2rem + 6vw, 8rem) 0 clamp(3.5rem, 2rem + 6vw, 7.5rem); border-bottom: 1px solid var(--rule); }
.hero--compact { padding-bottom: clamp(2.5rem, 2rem + 3vw, 4.5rem); }
.hero__grid { display: grid; gap: 3rem; align-items: center; }
.hero__copy { display: grid; gap: 1.5rem; max-width: 52rem; }
.hero__copy .btn-row { margin-top: 0.5rem; }
.hero__support { font-family: var(--font-display); font-style: italic; font-size: var(--fs-h4); line-height: 1.3; }
.hero__art { width: min(100%, 22rem); justify-self: center; color: var(--ink); }
.hero--atelier { background: var(--ink-2); color: var(--on-dark); border-color: var(--rule-dark); }
.hero--atelier .lede, .hero--atelier .lede p, .hero--atelier .folio { color: var(--on-dark-soft); }
.hero--atelier .hero__art { color: var(--on-dark); }
@media (min-width: 960px) {
  .hero__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: 5rem; }
  .hero__art { width: 100%; max-width: 26rem; }
}

/* Sections */
.sec { padding: var(--space-sec) 0; }
.sec + .sec { border-top: 1px solid var(--rule); }
.sec--deep { background: var(--paper-deep); }
.sec--light { background: var(--paper-light); }
.sec--atelier { background: var(--ink-2); color: var(--on-dark); --accent: #b8a47a; }
.sec--atelier + .sec, .sec + .sec--atelier { border-top: 0; }
.sec--atelier .folio, .sec--atelier .sec__intro p, .sec--atelier .prose p, .sec--atelier .lede p { color: var(--on-dark-soft); }
.sec--atelier .folio__num { color: var(--on-dark); }
/* Blocks stacked in one section breathe; the head already carries its own bottom margin. */
.sec > .wrap > :not(.sec__head) + :not(.fine) { margin-top: clamp(2rem, 1.5rem + 2vw, 3.5rem); }
.sec__head { display: grid; gap: 1.25rem; margin-bottom: clamp(2.5rem, 2rem + 2vw, 4rem); max-width: 60rem; }
.sec__intro p { font-size: var(--fs-lede); line-height: 1.55; color: var(--ink-soft); max-width: 60ch; }
.sec__intro p + p { margin-top: 0.8em; }
/* Narrow sections keep the page's left edge and limit only the measure. */
.sec--narrow .wrap > * { max-width: 55rem; }

/* Product showcase (brief §05): large alternating panels */
.showcase { display: grid; gap: clamp(1rem, 2vw, 1.5rem); }
.panel { display: grid; overflow: hidden; border-radius: var(--radius); background: var(--paper-light); border: 1px solid var(--rule); }
.panel__art { display: grid; place-items: center; padding: clamp(2rem, 6vw, 4rem); background: var(--paper-deep); color: var(--ink); }
.panel__art .glyph { width: min(100%, 16rem); }
.panel__copy { display: grid; align-content: center; gap: 1rem; padding: clamp(1.75rem, 4vw, 4rem); }
.panel__copy > p:not(.folio):not(.status):not(.panel__line) { color: var(--ink-soft); max-width: 52ch; }
.panel__line { font-family: var(--font-display); font-style: italic; font-size: var(--fs-h4); line-height: 1.25; }
.panel__copy .btn { justify-self: start; margin-top: 0.75rem; }
.panel__copy .status { justify-self: start; margin-top: 0; }
@media (min-width: 880px) {
  .panel { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); min-height: 28rem; }
  .panel--flip .panel__art { order: 2; }
}

/* Tiles */
.tiles { display: grid; gap: 1px; background: var(--rule); border: 1px solid var(--rule); border-radius: var(--radius); overflow: hidden; }
.tile { display: grid; align-content: start; gap: 0.8rem; padding: clamp(1.5rem, 3vw, 2.25rem); background: var(--paper); }
.sec--deep .tile { background: var(--paper-deep); }
.sec--light .tile { background: var(--paper-light); }
.sec--atelier .tiles { background: var(--rule-dark); border-color: var(--rule-dark); }
.sec--atelier .tile { background: var(--ink-2); }
.tile__art { width: 5.5rem; margin-bottom: 0.5rem; }
.tile__num, .tile__kicker { font-family: var(--font-mono); font-size: var(--fs-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-mute); }
.tile__line { font-family: var(--font-display); font-style: italic; font-size: 1.25rem; line-height: 1.3; }
.tile > p:not([class]) { color: var(--ink-soft); font-size: var(--fs-small); }
.tile__meta { display: grid; gap: 0.15rem; padding-top: 0.75rem; border-top: 1px solid var(--rule); font-size: var(--fs-small); color: var(--ink-soft); }
.tile__meta span { font-family: var(--font-mono); font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-mute); }
.tile__cta { margin-top: auto; padding-top: 0.5rem; font-size: var(--fs-small); }
.sec--atelier .tile > p:not([class]), .sec--atelier .tile__meta { color: var(--on-dark-soft); }
.sec--atelier .tile__num, .sec--atelier .tile__kicker, .sec--atelier .tile__meta span { color: var(--on-dark-mute); }
.sec--atelier .tile__meta { border-color: var(--rule-dark); }
.sec--atelier .arrow-link { border-color: var(--on-dark-mute); }
@media (min-width: 720px) {
  .tiles--2, .tiles--3, .tiles--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tiles > .tile:last-child:nth-child(odd) { grid-column: span 2; }
}
@media (min-width: 1080px) {
  .tiles--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tiles--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  /* No empty cells: a short last row stretches across the remaining columns. */
  .tiles > .tile:last-child:nth-child(odd) { grid-column: auto; }
  .tiles--3 > .tile:last-child:nth-child(3n + 1) { grid-column: span 3; }
  .tiles--3 > .tile:last-child:nth-child(3n + 2) { grid-column: span 2; }
  .tiles--4 > .tile:last-child:nth-child(4n + 1) { grid-column: span 4; }
  .tiles--4 > .tile:last-child:nth-child(4n + 2) { grid-column: span 3; }
  .tiles--4 > .tile:last-child:nth-child(4n + 3) { grid-column: span 2; }
}

/* Stages (DeploymentStageStepper) */
.stages { display: grid; gap: 0; }
.stages--3 { --n: 3; } .stages--4 { --n: 4; } .stages--5 { --n: 5; } .stages--6 { --n: 6; }
.stage { position: relative; display: grid; gap: 0.6rem; padding: 1.75rem 0 1.75rem 3.25rem; border-top: 1px solid var(--rule); }
.stage::before { content: ""; position: absolute; left: 0.85rem; top: 2.6rem; bottom: -0.2rem; width: 1px; background: var(--rule-strong); }
.stage:last-child::before { display: none; }
.stage__num { position: absolute; left: 0; top: 1.6rem; display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border: 1px solid var(--ink); border-radius: 50%; font-family: var(--font-mono); font-size: 0.625rem; background: var(--paper); }
.sec--deep .stage__num { background: var(--paper-deep); }
.sec--light .stage__num { background: var(--paper-light); }
.stage__title { font-family: var(--font-display); font-weight: 400; font-size: var(--fs-h4); line-height: 1.15; }
.stage > p:not([class]) { color: var(--ink-soft); font-size: var(--fs-small); max-width: 40ch; }
.stage__out { display: grid; gap: 0.15rem; font-size: var(--fs-small); }
.stage__out span { font-family: var(--font-mono); font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-mute); }
.sec--atelier .stage { border-color: var(--rule-dark); }
.sec--atelier .stage::before { background: var(--rule-dark); }
.sec--atelier .stage__num { background: var(--ink-2); border-color: var(--on-dark); }
.sec--atelier .stage > p:not([class]) { color: var(--on-dark-soft); }
.sec--atelier .stage__out span { color: var(--on-dark-mute); }
/* Horizontal only across a full-width section: inside a split column there is no room, so it stays vertical. */
@media (min-width: 1080px) {
  .stages:not(.split .stages) { grid-template-columns: repeat(var(--n, 6), minmax(0, 1fr)); gap: 1.5rem; }
  .stages:not(.split .stages) > .stage { padding: 3.25rem 0 0; border-top: 0; }
  .stages:not(.split .stages) > .stage::before { left: 2rem; right: -1.5rem; top: 0.875rem; bottom: auto; width: auto; height: 1px; }
  .stages:not(.split .stages) .stage__num { top: 0; }
  .stages:not(.split .stages) .stage__kicker { min-height: 2.6em; display: flex; align-items: flex-end; }
}

/* Shifts (from → to) */
.shifts { display: grid; border-top: 1px solid var(--rule-strong); max-width: 54rem; }
.shifts__row { display: grid; grid-template-columns: 1fr 2rem 1fr; gap: 0.75rem; align-items: baseline; padding: 1rem 0; border-bottom: 1px solid var(--rule); }
.shifts__row--head { font-family: var(--font-mono); font-size: var(--fs-mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-mute); padding: 0.75rem 0; }
.shifts__row span:first-child { color: var(--ink-mute); }
.shifts__row span:last-child { font-family: var(--font-display); font-size: 1.35rem; line-height: 1.2; }
.shifts__row--head span:last-child { font-family: var(--font-mono); font-size: var(--fs-mono); }
.shifts__arrow { text-align: center; }

/* Disclosures (accessible tabs/FAQ) */
.disclosures { border-top: 1px solid var(--rule-strong); }
.disc { border-bottom: 1px solid var(--rule); }
.disc summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 64px; padding: 1rem 0; cursor: pointer; list-style: none; }
.disc summary::-webkit-details-marker { display: none; }
.disc__title { font-family: var(--font-display); font-size: var(--fs-h4); line-height: 1.2; }
.disc__icon { position: relative; flex: none; width: 14px; height: 14px; }
.disc__icon::before, .disc__icon::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: currentColor; transition: transform 220ms var(--ease); }
.disc__icon::after { transform: rotate(90deg); }
.disc[open] .disc__icon::after { transform: rotate(0deg); }
.disc__body { display: grid; gap: 0.9rem; padding: 0 0 1.75rem; max-width: 62ch; color: var(--ink-soft); }
.sec--atelier .disclosures { border-color: var(--rule-dark); }
.sec--atelier .disc { border-color: var(--rule-dark); }
.sec--atelier .disc__body { color: var(--on-dark-soft); }

/* Facts (the seven questions) */
.facts { display: grid; border-top: 1px solid var(--rule-strong); }
.facts > div { display: grid; gap: 0.35rem; padding: 1.1rem 0; border-bottom: 1px solid var(--rule); }
.facts dt { font-family: var(--font-mono); font-size: var(--fs-mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-mute); }
.facts dd { color: var(--ink-soft); }
@media (min-width: 760px) { .facts > div { grid-template-columns: 14rem 1fr; gap: 2rem; } }

/* Split and art */
.split { display: grid; gap: 3rem; align-items: start; }
@media (min-width: 960px) { .split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 5rem; } .split--rev > :first-child { order: 2; } }
/* Material plate: a didactic material drawn large on a quiet plate (art() tightens the view so the drawing fills about
   70% of it); its lines draw themselves in when it enters view (pathLength="1"), the accent filling last. */
.art { position: relative; display: grid; gap: 1.75rem; justify-items: center; align-content: center; min-height: clamp(320px, 34vw, 480px); padding: clamp(2rem, 4vw, 3.5rem) clamp(1.25rem, 3vw, 2.5rem); background: var(--paper-deep); border-radius: var(--radius); color: var(--ink); }
.art .glyph { width: min(92%, 32rem); stroke-width: 1; }
.art figcaption { display: flex; align-items: center; gap: 0.75rem; font-family: var(--font-mono); font-size: 0.6875rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-mute); }
.art figcaption::before, .art figcaption::after { content: ""; width: 1.75rem; border-top: 1px solid currentColor; opacity: 0.5; }
@media (prefers-reduced-motion: no-preference) {
  .pt-js .art[data-pt-reveal] .glyph :is(path, rect, circle, ellipse, line, polyline, polygon, text) { stroke-dasharray: 720; stroke-dashoffset: 720; transition: stroke-dashoffset 2.6s cubic-bezier(0.45, 0, 0.2, 1) 0.35s, fill-opacity 1s ease 2s; }
  .pt-js .art[data-pt-reveal] .glyph [pathLength] { stroke-dasharray: 1 1.02; stroke-dashoffset: 1.01; }
  .pt-js .art[data-pt-reveal] .glyph .g-accent { fill-opacity: 0; }
  .pt-js .art[data-pt-reveal].is-in .glyph :is(path, rect, circle, ellipse, line, polyline, polygon, text) { stroke-dashoffset: 0; }
  .pt-js .art[data-pt-reveal].is-in .glyph .g-accent { fill-opacity: 1; }
  .pt-js .art[data-pt-reveal].is-in .glyph .g-accent.g-soft { fill-opacity: 0.28; }
}
.sec--deep .art { background: var(--paper-light); }
.sec--atelier .art { background: var(--ink-3); color: var(--on-dark); }
.sec--atelier .art figcaption { color: var(--on-dark-mute); }

/* Evidence */
.evidence { display: grid; gap: 1.5rem; }
.evidence__item { display: grid; gap: 0.75rem; align-content: start; padding: clamp(1.5rem, 3vw, 2.25rem); background: var(--paper-light); border: 1px solid var(--rule); border-radius: var(--radius); }
.evidence__item > p:not([class]) { color: var(--ink-soft); font-size: var(--fs-small); }
.evidence__label { font-family: var(--font-mono); font-size: var(--fs-mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-mute); }
.evidence__source { display: grid; gap: 0.15rem; padding-top: 0.75rem; border-top: 1px solid var(--rule); font-size: 0.8125rem; color: var(--ink-mute); }
.evidence__source span { font-family: var(--font-mono); font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; }
@media (min-width: 960px) { .evidence { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Cross-entity link */
.cross { display: flex; flex-direction: column; gap: 0.75rem; padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid var(--rule-strong); border-radius: var(--radius); }
/* Cards in a row stretch to one height: content stays at the top and the link sits on the bottom edge of each. */
.cross > p:last-child { margin-top: auto; }
.cross > p:not([class]) { color: var(--ink-soft); font-size: var(--fs-small); }
.cross__org { font-family: var(--font-mono); font-size: var(--fs-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-mute); }
.crosses { display: grid; gap: 1.5rem; }
@media (min-width: 880px) { .crosses { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* CTA band */
.cta { padding: clamp(4.5rem, 3rem + 6vw, 9rem) 0; }
@media (max-width: 480px) { .btn-row .btn { width: 100%; justify-content: space-between; } }
.cta--atelier { background: var(--ink-2); color: var(--on-dark); }
.cta--deep { background: var(--paper-deep); }
.cta__inner { display: grid; gap: 1.5rem; justify-items: start; }
.cta__body { max-width: 56ch; display: grid; gap: 0.8rem; }
.cta__body p { font-size: var(--fs-lede); line-height: 1.55; color: var(--ink-soft); }
.cta--atelier .cta__body p, .cta--atelier .folio { color: var(--on-dark-soft); }
.cta__line { font-family: var(--font-display); font-style: italic; font-size: var(--fs-h4) !important; color: inherit !important; }

/* In-page subnav */
.subnav { position: sticky; top: var(--header-h); z-index: 40; background: var(--paper-light); border-bottom: 1px solid var(--rule); }
.subnav ul { display: flex; gap: 1.75rem; overflow-x: auto; scrollbar-width: none; }
/* Below desktop the strip scrolls sideways: the right edge fades to show there is more, and the end padding lets the
   last item scroll clear of the fade. */
@media (max-width: 1079px) {
  .subnav ul { padding-right: 2.5rem; -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 2.5rem), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 2.5rem), transparent); }
}
.subnav a { display: block; padding: 0.95rem 0; white-space: nowrap; font-size: 0.875rem; text-decoration: none; color: var(--ink-soft); }
.subnav a:hover { color: var(--ink); text-decoration: underline; }
.theme-atelier .subnav { background: var(--ink-3); border-color: var(--rule-dark); }
.theme-atelier .subnav a { color: var(--on-dark-soft); }
.theme-atelier .subnav a:hover { color: var(--on-dark); }

/* Deploy page details */
.usecase { display: grid; gap: 1rem; padding: clamp(1.5rem, 3vw, 2.5rem); border-left: 1px solid var(--accent); background: rgba(155, 141, 105, 0.08); }
.usecase__text { font-family: var(--font-display); font-style: italic; font-size: var(--fs-h4); line-height: 1.3; }

/* Team portraits on the leadership tiles (supplied by Greg, 4 Nov 2026) */
.tile__portrait { margin: 0 0 0.6rem; width: min(12rem, 60%); }
.tile__portrait img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 28%; border-radius: var(--radius); background: var(--paper-deep); }

/* 05-forms.css */
/* Forms (src/forms.mjs) and the closing themes. */
.form { display: grid; gap: 1.5rem; max-width: 52rem; }
.form__grid { display: grid; gap: 1.25rem 1.5rem; }
@media (min-width: 760px) { .form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.field { display: grid; gap: 0.4rem; min-width: 0; margin: 0; padding: 0; border: 0; }
.field label, .field legend { font-family: var(--font-mono); font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-soft); padding: 0; }
.field__opt { text-transform: none; letter-spacing: 0; color: var(--ink-mute); }
.field__hint { font-size: 0.8125rem; color: var(--ink-mute); }
.field input, .field select, .field textarea { width: 100%; min-height: 48px; padding: 0.7rem 0.9rem; border: 1px solid var(--rule-field); border-radius: var(--radius); background: var(--paper-light); color: var(--ink); font: 300 1rem/1.4 var(--font-body); transition: border-color 160ms var(--ease), box-shadow 160ms var(--ease); }
.field textarea { resize: vertical; min-height: 7rem; }
.field select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 2.5rem; }
.field input:focus, .field select:focus, .field textarea:focus { outline: 2px solid var(--ink); outline-offset: 1px; border-color: var(--ink); }
.field [aria-invalid="true"] { border-color: var(--error); }
.field__error { font-size: 0.8125rem; color: var(--error); }
.choice { display: flex; gap: 0.7rem; align-items: flex-start; text-transform: none !important; letter-spacing: 0 !important; font-family: var(--font-body) !important; font-size: var(--fs-small) !important; color: var(--ink-soft); cursor: pointer; }
.choice input { flex: none; width: 1.15rem; height: 1.15rem; min-height: 0; margin: 0.2rem 0 0; accent-color: var(--ink); }
.choice a { color: var(--ink); }
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.form__actions { margin: 0; }
.form__status { min-height: 1.5em; font-size: var(--fs-small); color: var(--ink-soft); }
.form__status.is-error { color: var(--error); }
.form__done { display: grid; gap: 1rem; max-width: 52rem; padding: clamp(1.75rem, 4vw, 3rem); border: 1px solid var(--ink); border-radius: var(--radius); background: var(--paper-light); }
.form__done p:last-child { color: var(--ink-soft); }
.form-wrap { display: grid; gap: 3rem; }
@media (min-width: 1080px) { .form-wrap { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 5rem; } }
.form-aside { display: grid; gap: 1.5rem; align-content: start; }
.form-aside .prose p { font-size: var(--fs-small); }

/* Atelier theme: the whole Deploy family reads as one dark, industrial chapter. The dark-surface colours apply only
   on the dark surfaces (paper-tone sections, which turn charcoal here, the hero and the atelier CTA band), never
   page-wide: light and deep sections on an atelier page keep the paper palette of 02-base and 04-components. */
body.theme-atelier { background: var(--ink-2); color: var(--on-dark); --accent: #b8a47a; }
.theme-atelier .sec--paper { background: var(--ink-2); }
.theme-atelier .sec + .sec { border-color: var(--rule-dark); }
.theme-atelier .sec--paper + .cta--atelier, .sec--atelier + .cta--atelier { border-top: 1px solid var(--rule-dark); }
.theme-atelier .sec--paper .folio, .theme-atelier .sec--paper .sec__intro p, .theme-atelier .sec--paper .prose p { color: var(--on-dark-soft); }
.theme-atelier .sec--paper .folio__num { color: var(--on-dark); }
.theme-atelier .sec--paper .tiles { background: var(--rule-dark); border-color: var(--rule-dark); }
.theme-atelier .sec--paper .tile { background: var(--ink-2); }
.theme-atelier .sec--paper .tile > p:not([class]), .theme-atelier .sec--paper .tile__meta { color: var(--on-dark-soft); }
.theme-atelier .sec--paper .tile__num, .theme-atelier .sec--paper .tile__kicker, .theme-atelier .sec--paper .tile__meta span { color: var(--on-dark-mute); }
.theme-atelier .sec--paper .tile__meta { border-color: var(--rule-dark); }
.theme-atelier .sec--paper .stage { border-color: var(--rule-dark); }
.theme-atelier .sec--paper .stage::before { background: var(--rule-dark); }
.theme-atelier .sec--paper .stage__num { background: var(--ink-2); border-color: var(--on-dark); }
.theme-atelier .sec--paper .stage > p:not([class]), .theme-atelier .sec--paper .disc__body { color: var(--on-dark-soft); }
.theme-atelier .sec--paper .stage__out span { color: var(--on-dark-mute); }
.theme-atelier :is(.sec--paper, .hero, .cta--atelier) :is(.shifts__row--head, .shifts__row span:first-child) { color: var(--on-dark-mute); }
.theme-atelier :is(.sec--paper, .hero, .cta--atelier) :is(.shifts, .shifts__row, .disclosures, .disc, .facts, .facts > div) { border-color: var(--rule-dark); }
.theme-atelier :is(.sec--paper, .hero, .cta--atelier) .facts dt { color: var(--on-dark-mute); }
.theme-atelier :is(.sec--paper, .hero, .cta--atelier) .facts dd { color: var(--on-dark-soft); }
.theme-atelier :is(.sec--paper, .hero, .cta--atelier) .pull { border-color: var(--on-dark); }
.theme-atelier :is(.sec--paper, .hero, .cta--atelier) .pull p { color: var(--on-dark); }
.theme-atelier :is(.sec--paper, .hero, .cta--atelier) .arrow-link { border-color: var(--on-dark-mute); }
.theme-atelier :is(.sec--paper, .hero, .cta--atelier) .art { background: var(--ink-3); color: var(--on-dark); }
.theme-atelier :is(.sec--paper, .hero, .cta--atelier) :is(.art figcaption, .fine) { color: var(--on-dark-mute); }
.theme-atelier :is(.sec--paper, .hero, .cta--atelier) .cross { border-color: var(--rule-dark); }
.theme-atelier :is(.sec--paper, .hero, .cta--atelier) .cross > p:not([class]) { color: var(--on-dark-soft); }
.theme-atelier :is(.sec--paper, .hero, .cta--atelier) .cross__org { color: var(--on-dark-mute); }
.theme-atelier :is(.sec--paper, .hero, .cta--atelier) .ticks li { color: var(--on-dark-soft); }
.theme-atelier :is(.sec--paper, .hero, .cta--atelier) .ticks li::before { background: var(--on-dark); }
.theme-atelier :is(.sec--paper, .hero, .cta--atelier) .status { border-color: var(--rule-dark); color: var(--on-dark-soft); }
.theme-atelier .sec--light, .theme-atelier .sec--deep { color: var(--ink); }
.theme-atelier .sec--light .btn--primary, .theme-atelier .sec--deep .btn--primary { background: var(--ink); color: var(--paper-light); border-color: var(--ink); }
.theme-atelier .sec--light .btn--secondary, .theme-atelier .sec--deep .btn--secondary { color: var(--ink); border-color: var(--ink); }
.theme-atelier .evidence__item { color: var(--ink); }
.theme-atelier .hero { border-color: var(--rule-dark); }

/* Legal and long reading pages */
.legal { max-width: 46rem; }
.legal h2 { font-family: var(--font-display); font-weight: 400; font-size: var(--fs-h4); margin: 2.5rem 0 0.75rem; }
.legal p, .legal li { color: var(--ink-soft); }
.legal p + p, .legal ul { margin-top: 0.8rem; }
.legal ul { padding-left: 1.2rem; display: grid; gap: 0.4rem; }

@media print {
  .site-header, .site-footer, .subnav, .btn-row, .form { display: none !important; }
  body { background: #fff; }
}

/* 06-media.css */
/* Native-frame photography: no face/hand crops, no text overlay, no synthetic enlargement. */
.media-library { margin: 0; max-width: 100%; }
.media-library img { display: block; width: auto; max-width: 100%; height: auto; border-radius: 3px; }
.media-library figcaption { margin-top: 1rem; max-width: 48ch; font: 400 .8rem/1.5 var(--font-body, sans-serif); letter-spacing: .015em; color: inherit; opacity: .78; }
.media-library-strip { padding: clamp(2rem, 5vw, 5rem); max-width: 1280px; margin: auto; }
.media-library-strip h2 { margin-bottom: 2rem; }
.media-library-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: start; gap: 2rem; }
.media-library-grid figure { justify-self: center; }
@media(max-width: 700px) { .media-library-grid { grid-template-columns: 1fr; gap: 2.5rem; } }

.hero__photograph { width: 100%; justify-self: center; }
.hero__photograph .media-library { width: fit-content; margin: auto; }

.panel__art .media-library { width: 100%; text-align: left; }
.panel__art .media-library img { width: auto; max-width: 100%; height: auto; }

/* Image-led editorial sequences; intact frames and a staggered reading rhythm. */
.media-essay { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); align-items: start; gap: clamp(1.5rem,4vw,4rem); margin: clamp(2rem,5vw,5rem) 0; }
.media-essay > :nth-child(even) { margin-top: clamp(2rem,6vw,6rem); }
.media-essay img { width: 100%; height: auto; }
.media-essay .media-portrait { max-width: 520px; justify-self: center; }
.media-essay--1 { grid-template-columns: minmax(0,1fr); }
.media-essay--1 > figure { width: 100%; }
.media-essay figcaption { margin-top: .8rem; font-size: .75rem; }
@media(max-width:700px) { .media-essay { gap: 1.25rem; margin: 2.5rem 0; } .media-essay > :nth-child(even) { margin-top: 2rem; } }
@media(max-width:480px) { .media-essay { grid-template-columns: 1fr; } .media-essay > :nth-child(even) { margin-top: 0; } }

@media(min-width:960px){.hero--photographic .hero__grid { grid-template-columns: minmax(0,5fr) minmax(0,6fr); gap: clamp(2rem,4vw,4rem); } .hero--photographic .display { font-size: clamp(3.5rem,5.6vw,6rem); }}
.hero--photographic .hero__photograph .media-library { width: 100%; }
.hero--photographic .hero__photograph img { width: 100%; }
.panel__art--photo { padding: 0; align-self: center; background: transparent; }
.panel__art--photo .media-library { padding: 0; }
.panel__art--photo .media-library img { width: 100%; border-radius: 0; }
.panel__art--photo figcaption { padding: 0 1.25rem 1rem; }

/* BEGIN MEDIA NATIVE CAPS */
[data-media-id="6e3daf845d39"] { max-width: min(100%, 2160px); }
[data-media-id="8de71ee4b0a6"] { max-width: min(100%, 2160px); }
[data-media-id="c0a952fc4cba"] { max-width: min(100%, 1280px); }
[data-media-id="487fc87224d6"] { max-width: min(100%, 1363px); }
[data-media-id="bbf7bd9d94c5"] { max-width: min(100%, 333px); }
[data-media-id="2d5612ba1e21"] { max-width: min(100%, 249px); }
[data-media-id="ee533e1c9ce0"] { max-width: min(100%, 259px); }
[data-media-id="c804a6c97aa4"] { max-width: min(100%, 336px); }
[data-media-id="7023ad21cf18"] { max-width: min(100%, 2016px); }
[data-media-id="a433b24d668e"] { max-width: min(100%, 2016px); }
[data-media-id="4a0517bfcc08"] { max-width: min(100%, 2752px); }
[data-media-id="60f16e234184"] { max-width: min(100%, 1915px); }
[data-media-id="7420aa102679"] { max-width: min(100%, 1194px); }
[data-media-id="114ee244c5bc"] { max-width: min(100%, 2752px); }
[data-media-id="0499ead49cad"] { max-width: min(100%, 1024px); }
[data-media-id="ad3cfe7d848b"] { max-width: min(100%, 1672px); }
[data-media-id="ba600eadc3f5"] { max-width: min(100%, 1024px); }
[data-media-id="f03246c13c77"] { max-width: min(100%, 1024px); }
[data-media-id="cf137f799837"] { max-width: min(100%, 1024px); }
[data-media-id="e6a07760a07c"] { max-width: min(100%, 2164px); }
[data-media-id="f4fbf2d19c09"] { max-width: min(100%, 597px); }
[data-media-id="3b72e13e26df"] { max-width: min(100%, 336px); }
[data-media-id="a3dff61d0923"] { max-width: min(100%, 163px); }
[data-media-id="b7e8b2e47810"] { max-width: min(100%, 510px); }
[data-media-id="450a58e4886a"] { max-width: min(100%, 2268px); }
[data-media-id="db82326fcf61"] { max-width: min(100%, 285px); }
[data-media-id="eba9312d6b58"] { max-width: min(100%, 597px); }
[data-media-id="2767bde53ae8"] { max-width: min(100%, 333px); }
[data-media-id="37e3af84bcce"] { max-width: min(100%, 333px); }
[data-media-id="f0af8ab2d076"] { max-width: min(100%, 336px); }
[data-media-id="7a4634365c7a"] { max-width: min(100%, 333px); }
[data-media-id="b6e23e51b984"] { max-width: min(100%, 336px); }
[data-media-id="7d6d135a1d27"] { max-width: min(100%, 1193px); }
[data-media-id="9b8007fb19e3"] { max-width: min(100%, 1280px); }
[data-media-id="5b2f56e7e1ec"] { max-width: min(100%, 596px); }
[data-media-id="55514e5aacfe"] { max-width: min(100%, 248px); }
[data-media-id="62ee8c99e712"] { max-width: min(100%, 247px); }
[data-media-id="ea5f7a6b2ac7"] { max-width: min(100%, 248px); }
[data-media-id="9f456aaad778"] { max-width: min(100%, 333px); }
[data-media-id="1f9a66e859f5"] { max-width: min(100%, 283px); }
[data-media-id="d2ce7f5b8f4b"] { max-width: min(100%, 333px); }
[data-media-id="4914874da0a2"] { max-width: min(100%, 284px); }
[data-media-id="cb1132b96da4"] { max-width: min(100%, 1536px); }
[data-media-id="3d07a7aabf1b"] { max-width: min(100%, 1103px); }
[data-media-id="b4d6779d09c8"] { max-width: min(100%, 1193px); }
[data-media-id="73464333275f"] { max-width: min(100%, 1193px); }
[data-media-id="978a108c6b96"] { max-width: min(100%, 286px); }
[data-media-id="0de335aabc22"] { max-width: min(100%, 1280px); }
[data-media-id="2cd723d77089"] { max-width: min(100%, 1280px); }
[data-media-id="222f5ed9b35f"] { max-width: min(100%, 1074px); }
[data-media-id="fe85da5c2d21"] { max-width: min(100%, 1536px); }
[data-media-id="4a68a8344da8"] { max-width: min(100%, 1280px); }
[data-media-id="60c18a63bd03"] { max-width: min(100%, 2848px); }
[data-media-id="1f0d5da0d128"] { max-width: min(100%, 248px); }
[data-media-id="9aa9f541c04d"] { max-width: min(100%, 1148px); }
[data-media-id="6dc30069932f"] { max-width: min(100%, 242px); }
[data-media-id="5c4ae6362faf"] { max-width: min(100%, 1280px); }
[data-media-id="eba9139ce55f"] { max-width: min(100%, 1193px); }
[data-media-id="75d24b44a1d5"] { max-width: min(100%, 566px); }
[data-media-id="17c1b4fad7d2"] { max-width: min(100%, 1280px); }
[data-media-id="426670a3a5bf"] { max-width: min(100%, 248px); }
[data-media-id="37dbdfeffcb5"] { max-width: min(100%, 1288px); }
[data-media-id="e5fa05a0199f"] { max-width: min(100%, 500px); }
[data-media-id="06ef705e6479"] { max-width: min(100%, 500px); }
[data-media-id="7d00d36d6a02"] { max-width: min(100%, 1193px); }
[data-media-id="210ead6475c2"] { max-width: min(100%, 1024px); }
[data-media-id="ce7dcdce5b0e"] { max-width: min(100%, 1280px); }
[data-media-id="a9628aacc721"] { max-width: min(100%, 1280px); }
[data-media-id="92544668cbd9"] { max-width: min(100%, 1280px); }
[data-media-id="b47c154c729a"] { max-width: min(100%, 719px); }
[data-media-id="31c5f1935f6a"] { max-width: min(100%, 595px); }
[data-media-id="ebe7cb886252"] { max-width: min(100%, 1024px); }
[data-media-id="cc1be683d4a3"] { max-width: min(100%, 1024px); }
[data-media-id="1819bfeb3c88"] { max-width: min(100%, 2752px); }
/* END MEDIA NATIVE CAPS */

[data-media-id="359ba943f959"] { max-width: min(100%, 248px); }

/* 07-guide.css */
/* Guide product previews: the existing Indaba type and material palette. */
.g-hero{padding:clamp(48px,7vw,100px) 0 64px}.g-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:6%;align-items:center}.g-hero h1{font:400 clamp(48px,5.5vw,82px)/.98 var(--font-display);letter-spacing:-.025em;margin:24px 0}.g-hero .lede{max-width:42ch}.g-label,.g-kicker{font:400 11px/1.6 var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.g-label{color:var(--forest)}.g-note{font-size:14px;line-height:1.65;color:var(--ink-soft);max-width:60ch}.g-hero-media{position:relative;padding:0 70px 100px 0}.g-hero-media>.media-library{margin:0}.g-hero-media>.media-library img{width:100%;border-radius:18px}.g-screen-photo{position:relative}.g-screen-photo p{margin:0;padding:10px 0;font-size:10px}.g-screen-photo strong{font:400 21px/1.2 var(--font-display)}.g-play{position:absolute;top:40px;left:calc(50% - 25px);width:50px;height:50px;display:grid;place-items:center;border-radius:50%;background:#f8f6efdd;font-size:30px}.g-screen-row{border-bottom:1px solid #d4d9ce;padding:9px 0;display:flex;justify-content:space-between;gap:10px}.g-screen-row span{font-size:9px}.g-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.g-chip{display:inline-block;padding:6px 9px;border:1px solid #a3afa2;border-radius:20px;font-size:10px}.g-screen-tiles{display:grid;grid-template-columns:1fr 1fr;gap:9px}.g-screen-tiles>div{padding:14px 10px;min-height:80px;background:#e5e9df;font-size:13px}.g-screen-tiles span{display:block;font-size:10px;margin-bottom:10px}.g-faux-search{padding:12px;background:white;border:1px solid #a3afa2;border-radius:8px}.g-screen-quote{font:400 27px/1.3 var(--font-display)!important;padding:25px 0;border-block:1px solid #a3afa2}.g-idea-path{display:flex;flex-direction:column;gap:10px;padding:20px;background:#e5e9df;font-size:13px}.g-idea-path span+span:before{content:'↓ ';}.g-journey{padding-left:25px}.g-journey li{padding:16px 0;border-bottom:1px solid #ccd2c7}.g-screen-note{font-size:11px!important;color:#4d5d50}.g-rail{display:flex;gap:28px;overflow-x:auto;scroll-snap-type:x mandatory;padding:12px 2px 30px;margin:0;list-style:none;scrollbar-color:#718071 #e1dcd5}.g-preview-card{flex:0 0 calc((100% - 56px)/3);min-width:0;scroll-snap-align:start}.g-preview-card>h3{font:400 34px/1.1 var(--font-display);margin:10px 0}.g-preview-card>p:not(.g-label):not(.g-kicker){font-size:15px;min-height:52px}.g-rail-controls{display:flex;gap:12px;align-items:center;margin:20px 0}.g-rail-controls button,.g-explorer button{background:transparent;border:1px solid var(--rule-strong);padding:12px 18px;border-radius:30px;color:inherit;font:inherit}.g-rail-controls button:disabled{opacity:.5}.g-rail-status{font-size:13px}.g-format-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.g-format{padding:24px;border-top:1px solid var(--rule-strong)}.g-format h3{font:400 27px var(--font-display);margin:10px 0}.g-format p{font-size:15px}.g-role-grid,.g-triptych{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.g-role-grid h3{font:400 32px var(--font-display);margin:18px 0 8px}.g-role-grid p{font-size:16px}.g-role-grid figure{margin:0}.g-role-grid img{width:100%;height:240px;object-fit:cover}.g-feature{display:grid;grid-template-columns:1.15fr 1fr;gap:7%;align-items:center}.g-feature h2{font:400 clamp(36px,4vw,60px)/1.05 var(--font-display);margin:20px 0}.g-connections{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:28px 0}.g-connections a{padding:15px 20px;background:var(--paper-light);border:1px solid var(--rule);border-radius:40px}.g-context{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:30px 0;background:var(--rule)}.g-context div{background:var(--paper-light);padding:28px}.g-explorer-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:20px;align-items:end;margin:32px 0}.g-explorer label{display:block;font-size:14px}.g-explorer input,.g-explorer select{width:100%;padding:14px;margin-top:8px;border:1px solid var(--rule-field);background:var(--paper-light);font:inherit}.g-dimensions{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.g-dimension{padding:24px;background:var(--paper-light);border:1px solid var(--rule);border-radius:14px;align-self:start;scroll-margin-top:100px}.g-dimension summary{cursor:pointer;font:400 27px/1.2 var(--font-display)}.g-dimension summary small{display:block;font:400 10px/1.5 var(--font-mono);margin-bottom:15px;letter-spacing:.04em}.g-dimension p,.g-dimension li{font-size:15px}.g-dimension a{display:inline-block;margin:5px 12px 5px 0}.g-dimension[open]{grid-column:span 2}.g-chapters{display:grid;grid-template-columns:1fr 1fr;gap:32px}.g-chapter{border-top:1px solid var(--rule-strong);padding-top:20px;scroll-margin-top:100px}.g-chapter summary{cursor:pointer;font:400 32px var(--font-display);margin:20px 0}.g-chapter summary small{font:400 12px var(--font-mono);margin-right:15px}.g-chapter img{width:100%;height:260px;object-fit:cover}.g-chapter .g-label{margin-top:15px}.g-conversion{background:var(--forest);color:var(--paper-light);padding:clamp(40px,6vw,90px);border-radius:20px}.g-conversion .g-label,.g-conversion .g-note{color:inherit}.g-conversion .btn{background:var(--paper-light);color:var(--ink);border-color:var(--paper-light)}.g-conversion h2{font:400 clamp(38px,4.5vw,64px)/1.05 var(--font-display)}.g-form-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:9%}.g-form fieldset{padding:25px 0;margin:0;border:0;border-top:1px solid var(--rule)}.g-form legend{font:400 26px var(--font-display);padding:15px 0}.g-form label{display:block;margin:12px 0}.g-form input:not([type=checkbox]),.g-form select,.g-form textarea{display:block;width:100%;padding:13px 14px;border:1px solid var(--rule-field);border-radius:5px;background:var(--paper-light);font:inherit}.g-form input[type=checkbox]{margin-right:10px}.g-form .g-check{display:flex;align-items:flex-start;font-size:14px}.g-form .g-check input{margin-top:5px;flex-shrink:0}.g-form-status{font-size:16px;padding:15px 0}.g-form .is-error{color:var(--error)}.g-form-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:25px}.g-form-progress{font-family:var(--font-mono);font-size:12px}.g-form [aria-invalid=true]{border-color:var(--error)}.g-form .g-inline-error{color:var(--error);font-size:13px}.g-form [hidden],.g-explorer [hidden],.g-rail-controls[hidden]{display:none!important}.g-review-banner{font-size:13px;padding:12px 24px;background:#dce4d8;text-align:center}.g-triptych>article{border-top:1px solid var(--rule);padding-top:22px}.g-triptych h3{font:400 30px var(--font-display)}.g-form-done{scroll-margin-top:100px}.g-text-link{display:inline-block;margin-top:20px;text-underline-offset:5px}
@media(max-width:1000px){.g-hero-grid{gap:30px}.g-hero-media{padding-right:30px}.g-format-grid{grid-template-columns:repeat(2,1fr)}.g-preview-card{flex-basis:46%}.g-dimensions{grid-template-columns:1fr 1fr}.g-form-layout{gap:40px}.g-context{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.g-hero-grid,.g-feature,.g-form-layout{grid-template-columns:1fr}.g-hero h1{font-size:52px}.g-hero-media{padding:0;margin-top:20px}.g-hero-media>.media-library{max-width:100%}.g-hero-media>.media-library img{max-height:300px;object-fit:cover}.g-preview-card{flex-basis:86%}.g-preview-card>h3{font-size:32px}.g-role-grid,.g-triptych,.g-chapters{grid-template-columns:1fr}.g-role-grid img{height:auto;max-height:350px}.g-dimensions{grid-template-columns:1fr}.g-dimension[open]{grid-column:auto}.g-explorer-controls{grid-template-columns:1fr}.g-format{padding:18px 8px}.g-rail{gap:18px}.g-rail-controls{flex-wrap:wrap}.g-conversion{border-radius:12px}.g-hero .wrap{padding-inline:24px}.g-chapter img{height:220px}}
@media(prefers-reduced-motion:reduce){.g-rail{scroll-behavior:auto}}
/* Keep photo context legible beside the layered concept device. */
@media(min-width:1001px){.g-hero-media>figure figcaption{max-width:calc(100% - 220px)}}
/* Rails (guide-ui.mjs): full bleed to the screen edge with the first card on the grid line and a deliberate peek; round arrows and a progress line beneath. */
.sec:has(.g-rail),.st{overflow-x:clip}
.g-rail{--rail-pad:calc(max(0px,(100vw - var(--max))/2) + var(--gutter));gap:clamp(16px,2vw,28px);margin-inline:calc(-1*var(--rail-pad));padding:12px var(--rail-pad) 20px;scroll-padding-inline:var(--rail-pad);scrollbar-width:none}.g-rail::-webkit-scrollbar{display:none}
.g-preview-card{flex:0 0 min(84vw,388px)}.g-preview-card .ga{max-width:320px}
.g-rail-controls{gap:12px;margin:8px 0 0}.g-rail-controls.is-static{display:none}
.g-rail-progress{flex:1;max-width:280px;height:2px;margin-right:auto;border-radius:2px;background:var(--rule);overflow:hidden}.g-rail-progress span{display:block;width:calc(var(--rail-w,.3)*100%);height:100%;background:var(--ink);transform:translateX(calc(var(--rail-x,0)*(1/var(--rail-w,.3) - 1)*100%));transition:transform .15s linear}
.g-rail-controls .g-rail-btn{display:grid;place-items:center;width:44px;height:44px;padding:0;border-radius:50%;border:1px solid var(--rule-strong);background:var(--paper-light);color:var(--ink);font-size:18px;line-height:1;cursor:pointer;transition:background .2s,color .2s,border-color .2s,opacity .2s}
.g-rail-controls .g-rail-btn:hover:not(:disabled){background:var(--ink);border-color:var(--ink);color:var(--paper-light)}.g-rail-controls .g-rail-btn:disabled{opacity:.35;cursor:default}.g-rail-controls .g-rail-btn:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
@media(prefers-reduced-motion:reduce){.g-rail-progress span{transition:none}}
/* Roles: one frame for the three adults; the images are large enough to fill it. */
.g-role-grid img{height:auto;max-height:none;aspect-ratio:4/3;object-fit:cover}.g-role-grid article:nth-child(3) img{object-position:50% 22%}
.g-anchor{display:block;scroll-margin-top:calc(var(--header-h) + 80px)}
/* The Product Bar on Guide pages carries the product's status under its name. */
.pb--guide .pb-name{line-height:1}.pb--guide .pb-name::after{content:"In development";display:block;margin-top:5px;font:400 9.5px/1 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute)}
/* On a phone the header's action steps aside while the product bar (with the same action) is held beneath it (guide.js). */
@media(max-width:700px){.site-header__cta{transition:opacity .25s,visibility .25s}.pb-stuck .site-header__cta{opacity:0;visibility:hidden;pointer-events:none}}
/* Guide sections on the dark stage (atelier): notes and labels in the on-dark inks; a light panel inside keeps its own. */
.sec--atelier :is(.g-note,.g-label){color:var(--on-dark-soft)}
.sec--atelier .v2-ask{color:var(--ink)}.sec--atelier .v2-ask .g-note{color:var(--ink-soft)}.sec--atelier .v2-ask .g-label{color:var(--forest)}.sec--atelier .v2-ask .btn--primary{background:var(--ink);border-color:var(--ink);color:var(--paper-light)}.sec--atelier .v2-ask :is(a,button,select,summary):focus-visible{outline-color:var(--ink)}
.g-preview-card>h3{min-height:2.2em}

/* 08-guide-v2.css */
/* V2 extends the V1 system: ivory, botanical ink, restrained editorial diagrams. */
.v2-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px;margin-bottom:28px}.v2-controls label,.v2-ask label,.v2-translation label{display:block;font-size:14px}.v2-controls select,.v2-ask select,.v2-translation select{display:block;width:100%;min-height:48px;background:var(--paper,#f7f5ee);border:1px solid #809080;border-radius:6px;padding:10px;color:#25362d;font:inherit;margin:8px 0 16px}.v2-matrix{border:1px solid #c6ccbf;padding:clamp(20px,4vw,52px);border-radius:16px}.v2-matrix-result{border-top:1px solid #aeb8a8;border-bottom:1px solid #aeb8a8;padding:32px 0;margin:22px 0}.v2-matrix-result h3{font:400 clamp(30px,4vw,48px)/1.1 var(--font-display)}.v2-topic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin:36px 0}.v2-topic-grid article{border-top:1px solid #b9c3b1;padding:24px 0}.v2-topic-grid h3{font:400 30px/1.1 var(--font-display);margin:12px 0}.v2-number{font:12px var(--font-mono);letter-spacing:.12em;color:#5d6a59}.v2-feature,.v2-production-lead{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.v2-feature figure,.v2-production-lead figure,.v2-maker-grid figure{margin:0}.v2-feature img,.v2-production-lead img,.v2-maker-grid img{width:100%;border-radius:12px}.v2-recipe{background:#f8f6ef;border:1px solid #bcc5b4;border-radius:16px;padding:clamp(24px,4vw,48px)}.v2-recipe h3,.v2-production-lead h3{font:400 clamp(38px,4vw,60px)/1.02 var(--font-display);margin:18px 0 30px}.v2-recipe dt{font:12px var(--font-mono);text-transform:uppercase;letter-spacing:.06em;margin-top:22px}.v2-recipe dd{margin:8px 0 0;line-height:1.6}.v2-theory{display:grid;grid-template-columns:repeat(5,1fr);gap:26px;list-style:none;padding:0;counter-reset:idea}.v2-theory li{border-top:1px solid currentColor;padding-top:20px}.v2-theory li:before{counter-increment:idea;content:'0' counter(idea);font:12px var(--font-mono)}.v2-theory h3{font:400 30px var(--font-display)}.v2-ask{display:grid;grid-template-columns:1fr 1fr;gap:36px;background:#f8f6ef;border:1px solid #a8b6a0;border-radius:22px;padding:clamp(22px,5vw,64px)}.v2-ask-prompt h3{font:400 clamp(34px,4vw,56px)/1.05 var(--font-display);margin:20px 0 32px}.v2-answer{background:#e6eadd;border-radius:16px;padding:30px}.v2-answer h3{font:400 36px/1.15 var(--font-display)}.v2-answer article{padding:14px 0;border-top:1px solid #b9c5b0}.v2-answer h4{font:500 14px var(--font-body);margin-bottom:10px}.v2-answer p{font-size:16px}.v2-ask .v2-source{grid-column:1/-1}.v2-source{border-top:1px solid #a8b6a0;border-bottom:1px solid #a8b6a0;padding:18px 0;margin:24px 0}.v2-source summary{cursor:pointer;font-weight:500;min-height:28px}.v2-source p{max-width:72ch}.v2-ask-next{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:20px;align-items:center}.v2-ask-next a{font-size:15px}.v2-choice{border-block:1px solid #afbaa7;padding:28px 0}.v2-choice-controls{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:28px}.v2-choice-controls button,.g-enlarge{padding:12px 18px;border:1px solid #6e7e65;background:transparent;color:inherit;border-radius:40px;font:inherit;cursor:pointer;min-height:44px}.v2-choice-controls button[aria-pressed=true]{background:#2f4335;color:#fff}.v2-choice article{max-width:780px;padding:14px 0}.v2-choice h3{font:400 clamp(32px,4vw,48px)/1.1 var(--font-display);margin:12px 0}.v2-translation{display:grid;grid-template-columns:1fr 1fr;gap:30px}.v2-translation>div{background:#f8f6ef;border:1px solid #c0c9b7;border-radius:16px;padding:clamp(24px,4vw,48px)}.v2-translation h3{font:400 40px/1.1 var(--font-display)}.v2-translation dt{margin-top:20px;font:12px var(--font-mono);text-transform:uppercase}.v2-translation dd{margin:8px 0}.v2-workflow{margin-top:36px;line-height:2;max-width:75ch}.v2-pipeline{display:grid;grid-template-columns:repeat(5,1fr);gap:30px;list-style:none;padding:0;margin:60px 0}.v2-pipeline li{border-top:1px solid #9cab91;padding-top:20px}.v2-pipeline span{font:12px var(--font-mono)}.v2-pipeline h3{font:400 26px/1.15 var(--font-display);margin:16px 0}.v2-pipeline p{font-size:15px}.v2-makers-intro{display:grid;grid-template-columns:1fr 1fr;gap:6%;margin-bottom:48px}.v2-maker-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px 40px}.v2-maker-grid h3{font:400 40px/1.1 var(--font-display);margin:18px 0}.v2-maker-grid h4{font-size:16px;font-weight:500}.v2-maker-grid figure{min-height:0}.v2-maker-grid img{max-height:330px;object-fit:contain;object-position:left center}.v2-network{border:1px solid currentColor;border-radius:20px;padding:clamp(20px,4vw,48px)}.v2-network-art{display:block;width:100%;max-height:220px}.v2-network-art path{fill:none;stroke:#aabd9b;stroke-width:2}.v2-network-art circle{fill:#dce4d3;stroke:#708567;stroke-width:2}.v2-network-links{display:flex;flex-wrap:wrap;gap:12px;list-style:none;padding:0}.v2-network-links a{display:block;border:1px solid currentColor;padding:12px 18px;border-radius:30px;text-decoration:none;font-size:16px}.v2-network h3{font:400 36px var(--font-display)}.v2-question-route{padding-left:24px}.v2-question-route li{padding:10px 0}.v2-question-route p{margin:6px 0;font-size:16px}.v2-observed{font:400 clamp(32px,4vw,54px)/1.15 var(--font-display);max-width:28ch}.v2-observe .v2-topic-grid{grid-template-columns:1fr 1fr}.v2-room{background:#e6e8dd;border-radius:16px;padding:24px;color:#293e31}.v2-room svg{width:100%;height:auto}.v2-room svg path,.v2-room svg rect,.v2-room svg ellipse{stroke:#667b60;stroke-width:3;fill:none}.v2-room .v2-room-wall{fill:#f8f6ef}.v2-room .v2-room-floor{fill:#ddd3bc}.v2-room .v2-room-window{fill:#d8e3cf}.v2-room .v2-room-shelf,.v2-room .v2-room-table{fill:#c3b28d}.v2-room .v2-room-rug{fill:#e7e0ce}.v2-room text{font:16px sans-serif;fill:#293e31}.v2-room-notes{display:grid;grid-template-columns:1fr 1fr;gap:18px}.v2-room-notes details{border-top:1px solid #a8b69e;padding:16px}.v2-room-notes summary{cursor:pointer;font-weight:500}.v2-evidence-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.v2-evidence-grid h3{font:400 30px var(--font-display)}.v2-evidence-grid p{font-size:16px}.v2-evidence-grid a{font-size:15px}.v2-review-list{columns:2;column-gap:60px;padding-left:24px}.v2-review-list li{break-inside:avoid;padding:12px 0 12px 8px;border-bottom:1px solid #c1c9b8}.v2-screen-dialog{width:min(560px,94vw);max-height:92vh;padding:28px;border:1px solid #6a7e61;border-radius:20px;background:#efede6;color:#24362c}.v2-screen-dialog::backdrop{background:#17251dcc}.v2-close{display:block;margin:0 0 24px auto;min-height:44px;padding:10px 16px;border:1px solid #6a7e61;background:transparent;border-radius:30px;font:inherit;cursor:pointer}.g-enlarge{margin-top:20px;font-size:14px;width:100%}.g-measurement{padding-block:24px}.g-dimension [data-source-panel] summary{font:500 16px/1.5 var(--font-body);padding:8px 0}.g-dimension [data-source-panel]{grid-column:auto}.g-dimension>h3{margin-top:28px}
@media(max-width:1000px){.v2-topic-grid,.v2-evidence-grid{grid-template-columns:1fr 1fr}.v2-pipeline{grid-template-columns:repeat(3,1fr)}.v2-theory{grid-template-columns:repeat(3,1fr)}.v2-ask{gap:24px}.v2-ask .v2-controls{grid-template-columns:1fr}.v2-answer{padding:22px}}
@media(max-width:700px){.v2-feature,.v2-production-lead,.v2-ask,.v2-translation,.v2-makers-intro,.v2-maker-grid,.v2-evidence-grid,.v2-observe .v2-topic-grid{grid-template-columns:1fr;gap:28px}.v2-topic-grid{grid-template-columns:1fr;gap:10px}.v2-theory,.v2-pipeline{grid-template-columns:1fr 1fr;gap:24px}.v2-review-list{columns:1}.v2-room{padding:14px}.v2-room-notes{grid-template-columns:1fr;gap:6px}.v2-network-art{min-height:100px}.v2-network-links{display:grid;grid-template-columns:1fr}.v2-network-links a{border-radius:12px}.v2-network-links li+li:before{content:'↕';display:block;text-align:center}.v2-maker-grid img{max-height:320px}.v2-choice-controls button{font-size:14px}.v2-screen-dialog{padding:18px}.v2-theory h3{font-size:27px}.v2-translation h3{font-size:34px}}
@media(prefers-reduced-motion:reduce){.v2-screen-dialog{scroll-behavior:auto}}
.v2-network-art{max-height:330px}.v2-network-art text{font:16px var(--font-body);fill:currentColor}.v2-network-art a:hover circle,.v2-network-art a:focus circle{fill:#9fb58e;stroke:currentColor;stroke-width:4}.v2-network-art a:focus{outline:none}.v2-network-art a:focus text{text-decoration:underline}
@media(max-width:700px){.v2-network-art{display:none}}
/* Makers: one 4:3 frame for the four disciplines. */
.v2-maker-grid img{height:auto;max-height:none;aspect-ratio:4/3;object-fit:cover;object-position:50% 50%}
/* Room study: on a phone the labels give way to numbered markers keyed to the notes below. */
.v2-room-marks{display:none}.v2-room .v2-room-marks circle{fill:#293e31;stroke:#f8f6ef;stroke-width:4}.v2-room .v2-room-marks text{font:600 34px/1 var(--font-body);fill:#f8f6ef;text-anchor:middle}
@media(max-width:700px){.v2-room-labels{display:none}.v2-room-marks{display:inline}.v2-room-notes summary{display:flex;align-items:center;min-height:44px}}
/* Context Rings: the child at the centre of the adult, relationships, the environment, and culture and community. */
.cr{margin:0}.cr svg{display:block;width:100%;height:auto;overflow:visible}
.cr-ring circle{fill:color-mix(in srgb,var(--forest) 6%,transparent);stroke:color-mix(in srgb,var(--forest) 38%,transparent);stroke-width:1.3}.cr-ring--1 circle{fill:color-mix(in srgb,var(--forest) 3%,transparent);stroke-dasharray:3 7}
.cr-ring text{font:400 20px/1 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;fill:var(--ink-soft)}.cr-ring textPath{text-anchor:middle}
.cr-core circle{fill:var(--forest);stroke:none}.cr-core text{font:italic 400 31px/1 var(--font-display);letter-spacing:0;text-transform:none;fill:var(--paper-light);text-anchor:middle}
.cr-pair{display:grid;grid-template-columns:minmax(0,400px) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:center;margin-top:clamp(12px,2vw,24px)}.cr-pair .g-label{margin:0 0 4px}
.cr-pair--full{grid-template-columns:minmax(0,560px) minmax(0,1fr)}
.cr-legend ol{margin:0 0 24px;padding:0;list-style:none;border-top:1px solid var(--rule)}.cr-legend li{display:flex;align-items:baseline;gap:18px;padding:14px 0;border-bottom:1px solid var(--rule);font:400 clamp(22px,2vw,28px)/1.15 var(--font-display)}.cr-legend li span{font:400 11px/1 var(--font-mono);letter-spacing:.1em;color:var(--ink-mute)}.cr-legend p{max-width:40ch;color:var(--ink-soft)}
@media(prefers-reduced-motion:no-preference){.cr-js .cr-ring{opacity:0;transform:scale(.9);transform-origin:320px 320px;transition:opacity .8s var(--ease-out),transform 1.1s var(--ease-out)}.cr-js.is-in .cr-ring{opacity:1;transform:none}.cr-js [data-ring="1"]{transition-delay:.22s}.cr-js [data-ring="2"]{transition-delay:.44s}.cr-js [data-ring="3"]{transition-delay:.66s}.cr-js [data-ring="4"]{transition-delay:.88s}}
@media(max-width:800px){.cr-pair,.cr-pair--full{grid-template-columns:1fr}.cr-pair .cr{max-width:420px;width:100%;margin-inline:auto}}

/* 09-home-experience.css */
/* Homepage composition only; the moving parts are named patterns (12-patterns.css). */
.home-hero{padding:clamp(48px,7vw,104px) 0 clamp(40px,5vw,72px);text-align:center}.home-hero .folio{justify-content:center}.home-hero h1{font:400 clamp(54px,8.6vw,136px)/.94 var(--font-display);letter-spacing:-.02em;margin:22px auto 0;max-width:none;text-wrap:balance;animation:home-rise 1.2s var(--pt-ease) both}.home-hero h1 em{font-style:italic;color:var(--ink-soft)}.home-hero h1>span,.home-hero h1 em{display:block}
.home-hero-lede{font-size:var(--fs-lede);line-height:1.55;color:var(--ink-soft);max-width:60ch;margin:28px auto 0;animation:home-rise 1.2s var(--pt-ease) .15s both}.home-hero .btn-row{justify-content:center;margin-top:36px;animation:home-rise 1.2s var(--pt-ease) .3s both}.home-hero .pt-stage{margin-top:clamp(48px,6vw,88px);text-align:left;animation:home-rise 1.4s var(--pt-ease) .45s both}
@keyframes home-rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.home-bleed .sec__head{margin-bottom:0}.home-bleed .pt-rail{margin-top:clamp(32px,4vw,56px)}.home-bleed .pt-ribbon{margin-top:clamp(40px,5vw,72px)}
.home-tiles{display:grid;grid-template-columns:1fr 1fr;gap:24px}.home-tile{display:flex;flex-direction:column;align-items:center;overflow:hidden;padding:clamp(36px,4vw,64px) clamp(24px,3vw,48px) 0;background:var(--paper-light);border-radius:var(--pt-radius);text-align:center;color:inherit;text-decoration:none;transition:transform .6s var(--pt-ease),box-shadow .6s var(--pt-ease)}.home-tile:hover{transform:translateY(-4px);box-shadow:0 24px 48px -28px rgba(25,24,24,.35)}.home-tile:focus-visible{outline:2px solid var(--forest);outline-offset:4px}
.home-tile .folio{justify-content:center}.home-tile h3{font:400 clamp(36px,3.8vw,60px)/1.02 var(--font-display);margin:16px 0;max-width:14ch}.home-tile>p:not(.folio){margin:0;max-width:36ch;color:var(--ink-soft)}.home-tile-link{margin:22px 0 clamp(32px,3.5vw,52px);font-size:15px;border-bottom:1px solid currentColor}.home-tile-frame{width:100%;margin:auto 0 0}.home-tile-frame img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:6px 6px 0 0;transition:transform 1.4s var(--pt-ease)}.home-tile-frame figcaption{display:none}.home-tile:hover .home-tile-frame img{transform:scale(1.03)}
.home-conviction .folio{margin-bottom:clamp(24px,3vw,40px)}.home-conviction .pt-manifesto{min-height:clamp(480px,56vw,800px)}.home-steps-title{margin:clamp(64px,8vw,128px) 0 clamp(8px,2vw,24px);font:400 clamp(28px,3vw,44px)/1.1 var(--font-display);color:var(--on-dark-soft)}
.home-story{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:32px clamp(40px,6vw,112px);align-items:end;margin-top:clamp(32px,4vw,56px)}.home-mission .pt-waypoint{color:var(--forest)}.home-mission-line{margin:0;max-width:22ch;font:400 clamp(32px,3.6vw,56px)/1.08 var(--font-display);text-wrap:balance}.home-story-copy p{margin:0 0 24px;max-width:42ch;font-size:17px;line-height:1.6;color:var(--ink-soft)}.home-story-copy .btn-row{margin:0}
.home-begin{display:grid;grid-template-columns:1fr 1fr;gap:24px}.home-begin-panel{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--rule-strong);border-radius:var(--pt-radius);background:var(--paper-light)}.home-begin-media{aspect-ratio:16/8;overflow:hidden}.home-begin-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--pt-ease)}.home-begin-panel:hover .home-begin-media img{transform:scale(1.04)}
.home-begin-copy{display:flex;flex-direction:column;flex:1;padding:clamp(28px,3.4vw,48px)}.home-begin-panel h3{font:400 clamp(36px,3.6vw,56px)/1.02 var(--font-display);margin:16px 0}.home-begin-copy>p:not(.folio){max-width:44ch;margin:0}.home-begin .btn-row{margin-top:auto;padding-top:28px}
.home-begin-panel--dark{background:var(--forest);border-color:var(--forest);color:var(--on-dark)}.home-begin-panel--dark .folio,.home-begin-panel--dark .home-begin-copy>p{color:var(--on-dark-soft)}.home-begin-panel--dark .btn--primary{background:var(--paper-light);color:var(--ink);border-color:var(--paper-light)}.home-begin-panel--dark .btn--primary:hover{background:var(--paper)}.home-begin-panel--dark .btn--secondary{color:var(--on-dark);border-color:var(--on-dark-soft)}.home-begin-panel--dark .btn--secondary:hover{background:var(--paper-light);color:var(--ink)}.home-begin-panel--dark .btn:focus-visible{outline-color:var(--on-dark)}
@media(prefers-reduced-motion:reduce){.home-hero h1,.home-hero-lede,.home-hero .btn-row,.home-hero .pt-stage{animation:none}.home-tile,.home-tile-frame img,.home-begin-media img{transition:none}.home-tile:hover{transform:none}}
@media(max-width:800px){.home-tiles,.home-begin,.home-story{grid-template-columns:1fr}}
.home-brief{padding:clamp(28px,3.4vw,48px) 0;border-bottom:1px solid var(--rule)}.home-brief-title{margin:0 0 18px;font:400 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}.home-brief ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border-top:1px solid var(--rule-strong)}
.home-brief a{display:block;height:100%;padding:18px 20px 6px 0;color:var(--ink-soft);text-decoration:none;font-size:15px;line-height:1.5;transition:color .3s}.home-brief li+li a{padding-left:20px;border-left:1px solid var(--rule)}.home-brief a span{display:block;margin-bottom:8px;font:400 clamp(22px,1.9vw,28px)/1 var(--font-display);color:var(--ink)}.home-brief a span::after{content:" →";font:400 14px var(--font-body);opacity:0;transition:opacity .3s}.home-brief a:hover{color:var(--ink)}.home-brief a:hover span::after{opacity:1}.home-brief a:focus-visible{outline:2px solid var(--forest);outline-offset:2px}
.home-field-more{margin:clamp(8px,2vw,24px) 0 0}
@media(max-width:1000px){.home-brief ol{grid-template-columns:1fr}.home-brief li+li a{padding-left:0;border-left:0}.home-brief a{display:grid;grid-template-columns:84px minmax(0,1fr);gap:12px;padding:14px 0;border-bottom:1px solid var(--rule)}.home-brief a span{margin:0;font-size:22px}}
/* The hero hands the first screen to the photograph sooner, and the Scene Stage opens to its full width as it is
   scrolled into view (the Dark Turn's language). `scale` composes with the entrance's transform. */
@media(min-width:701px){.home-hero{padding-top:clamp(32px,4vw,64px)}.home-hero h1{font-size:clamp(54px,7.4vw,112px)}.home-hero-lede{margin-top:22px}.home-hero .btn-row{margin-top:28px}.home-hero .pt-stage{margin-top:clamp(36px,4vw,56px)}}
@supports (animation-timeline:view()){@media(min-width:701px) and (prefers-reduced-motion:no-preference){
 .home-hero .pt-stage{animation:home-rise 1.4s var(--pt-ease) .45s both,home-open linear both;animation-timeline:auto,view();animation-range:normal,entry 0% cover 42%}
 @keyframes home-open{from{scale:.9}to{scale:1}}
}}

/* 10-guide-atlas.css */
/* Explore atlas: six continents, 24 destinations. Hotel-collection rhythm; uniform card frames, full source frame when a destination opens. */
.g-atlas [hidden]{display:none!important}
.g-atlas-hero{padding:clamp(40px,6vw,88px) 0 clamp(56px,7vw,104px)}.g-atlas-hero-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:end}.g-atlas-hero-media img{width:100%;border-radius:2px}.g-atlas-hero-media figcaption{font-size:13px}.g-atlas-hero h1{font:400 clamp(44px,5vw,76px)/1 var(--font-display);letter-spacing:-.01em;margin:18px 0 24px}.g-atlas-hero .lede{font-size:var(--fs-lede);line-height:1.5;color:var(--ink-soft);margin:0 0 16px}.g-atlas-hero-copy p:not(.lede):not(.g-label){font-size:15px;color:var(--ink-soft)}.g-atlas-hero-copy .btn-row,.g-atlas-hero-copy .buttons{margin:28px 0 20px}
.g-atlas-controls{display:block;margin:40px 0 12px}.g-atlas-tabs{display:flex;flex-wrap:wrap;gap:0 32px;border-bottom:1px solid var(--rule)}.g-atlas-tabs button{background:none;border:0;border-bottom:1px solid transparent;margin-bottom:-1px;padding:14px 0;min-height:48px;font:400 12px/1.3 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);cursor:pointer;transition:color .3s var(--ease),border-color .3s var(--ease)}.g-atlas-tabs button:hover{color:var(--ink)}.g-atlas-tabs button[aria-pressed=true]{color:var(--ink);border-bottom-color:var(--ink)}.g-atlas-tabs button:focus-visible{outline:2px solid var(--forest);outline-offset:4px}
.g-atlas-search{display:flex;gap:16px;align-items:end;margin-top:24px;max-width:560px}.g-atlas-search label{flex:1;display:block;font-size:13px;color:var(--ink-soft)}.g-atlas-search input{width:100%;padding:12px 0;margin-top:4px;border:0;border-bottom:1px solid var(--rule-field);background:transparent;font:inherit;font-size:16px;color:var(--ink)}.g-atlas-search input:focus{outline:none;border-bottom-color:var(--ink)}.g-atlas-search button{background:none;border:0;padding:12px 0;min-height:44px;font:400 12px/1.3 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);cursor:pointer}
.g-atlas-count{font:400 11px/1.4 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);margin:20px 0 0}
.g-continent{padding-top:clamp(56px,7vw,104px)}.g-continent-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) auto;gap:14px clamp(24px,4vw,64px);align-items:end;border-top:1px solid var(--rule-strong);padding-top:24px;margin-bottom:clamp(28px,3vw,44px)}.g-continent-numeral{grid-column:1/-1;margin:0;font:400 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}.g-continent-head h3{font:400 clamp(34px,3.6vw,54px)/1.04 var(--font-display);margin:0}.g-continent-head p{margin:0;max-width:50ch;color:var(--ink-soft);font-size:15px;line-height:1.6}.g-continent-head .g-continent-count{font:400 11px/1.4 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);white-space:nowrap}
.g-destinations{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:56px 24px;align-items:start}.g-destination{display:flex;flex-direction:column;scroll-margin-top:100px}.g-destination-frame{overflow:hidden;width:100%}.g-destination-frame img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:50% 50%;border-radius:2px;transition:transform 1.2s var(--ease)}.g-destination:hover .g-destination-frame img{transform:scale(1.03)}.g-destination-frame figcaption{display:none}
.g-destination-place{margin:20px 0 10px;font:400 11px/1.4 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute)}.g-destination-body>h3,.g-destination-body>h4{font:400 clamp(24px,2vw,30px)/1.12 var(--font-display);margin:0 0 12px}.g-destination-lede{margin:0 0 14px;font-size:15px;line-height:1.6;color:var(--ink-soft)}
.g-destination-more summary{list-style:none;display:inline-flex;align-items:center;min-height:44px;cursor:pointer;font:400 12px/1.3 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}.g-destination-more summary::-webkit-details-marker{display:none}.g-destination-more summary span{border-bottom:1px solid currentColor;padding-bottom:4px}.g-destination-more summary:focus-visible{outline:2px solid var(--forest);outline-offset:4px}.g-destination-close{display:none}.g-destination-more[open]>summary .g-destination-open{display:none}.g-destination-more[open]>summary .g-destination-close{display:inline}
.g-destination-journey{margin-top:20px;border-top:1px solid var(--rule);padding-top:24px}.g-destination-journey :is(h4,h5){font:400 22px/1.2 var(--font-display);margin:28px 0 10px}.g-destination-journey p,.g-destination-journey li{font-size:15px;line-height:1.65}.g-destination-journey a{display:inline-block;margin:4px 16px 4px 0}.g-destination-journey .g-destination-question{font:italic 400 clamp(22px,2vw,28px)/1.3 var(--font-display);margin:16px 0}.g-destination-journey .g-destination-nearby,.g-destination-journey .g-label{margin:28px 0 4px;font:400 11px/1.4 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute)}
.g-destination:has(details[open]){grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:start;background:var(--paper);border:1px solid var(--rule);padding:clamp(20px,3vw,40px)}.g-destination:has(details[open]) .g-destination-frame{position:sticky;top:96px;overflow:visible}.g-destination:has(details[open]) .g-destination-frame img{width:auto;max-width:100%;max-height:78vh;aspect-ratio:auto;object-fit:contain;transform:none}.g-destination:has(details[open]) .g-destination-frame figcaption{display:block}.g-destination:has(details[open]) .g-destination-place{margin-top:0}.g-destination:has(details[open]) .g-destination-body>:is(h3,h4){font-size:clamp(34px,3.4vw,50px)}
.g-atlas-directory{margin-top:clamp(72px,9vw,128px);border-top:1px solid var(--rule-strong);padding-top:40px}.g-atlas-directory>h3{font:400 clamp(30px,3vw,42px)/1.1 var(--font-display);margin:0 0 32px}.g-atlas-directory>div{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:36px 24px}.g-atlas-directory h4{font:400 20px/1.2 var(--font-display);margin:8px 0 14px}.g-atlas-directory ul{list-style:none;padding:0;margin:0}.g-atlas-directory li{margin:0 0 10px;font-size:14px;line-height:1.45}.g-atlas-directory a{color:var(--ink-soft);text-decoration:none}.g-atlas-directory a:hover,.g-atlas-directory a:focus-visible{color:var(--ink);text-decoration:underline}.g-atlas>.g-note{margin-top:40px}
/* Focal points for the 4:3 card frame, checked against faces, hands and materials. */
#physical-health-growth img{object-position:50% 8%}#nutrition-nourishment img{object-position:50% 62%}#sleep-rest-rhythms img{object-position:58% 50%}#gross-movement img{object-position:50% 62%}#fine-motor-skills img{object-position:70% 50%}#sensory-development img{object-position:72% 50%}#executive-function-self-regulation img{object-position:62% 50%}#reasoning-mathematical-thinking img{object-position:56% 50%}#language-literacy img{object-position:36% 50%}#imagination-creativity img{object-position:50% 28%}#art-music-aesthetic-experience img{object-position:50% 60%}#communication-cultural-expression img{object-position:50% 22%}#emotional-development img{object-position:50% 30%}#attachment-secure-relationships img{object-position:50% 30%}#agency-identity-independence img{object-position:50% 42%}#nature-ecology-stewardship img{object-position:50% 62%}#community-society-the-wider-world img{object-position:50% 70%}
/* The inquiry source carries thin black bars at top and bottom; keep them outside the frame. */
#curiosity-inquiry .g-destination-frame img{transform:scale(1.035)}#curiosity-inquiry:hover .g-destination-frame img{transform:scale(1.06)}#curiosity-inquiry:has(details[open]) .g-destination-frame img{transform:none;clip-path:inset(1.5% 0)}
@media(prefers-reduced-motion:reduce){.g-destination-frame img{transition:none}.g-destination:hover .g-destination-frame img{transform:none}#curiosity-inquiry:hover .g-destination-frame img{transform:scale(1.035)}}
@media(max-width:1100px){.g-destinations{grid-template-columns:repeat(2,minmax(0,1fr))}.g-continent-head{grid-template-columns:1fr}.g-atlas-directory>div{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.g-atlas-hero-grid{grid-template-columns:1fr;gap:28px}.g-atlas-tabs{flex-wrap:nowrap;overflow-x:auto;gap:0 24px;scrollbar-width:none}.g-atlas-tabs button{white-space:nowrap}.g-destinations{grid-template-columns:1fr;gap:48px}.g-destination:has(details[open]){grid-template-columns:1fr;padding:16px;margin:0 -16px}.g-destination:has(details[open]) .g-destination-frame{position:static}.g-atlas-directory>div{grid-template-columns:1fr 1fr}}
/* The continent strip holds under the header and product bar while the atlas is read; edge fades show there is more to
   scroll and lift away at either end (guide.js toggles is-start / is-end). The controls box dissolves so the bar can stick.
   The bar, not the strip, is what sticks and carries the solid paper: the strip's fade only fades its own labels, so the
   destinations scrolling underneath never show through at the edges. */
.g-atlas .g-atlas-controls:not([hidden]){display:contents}
.g-atlas-tabbar{position:sticky;top:calc(var(--header-h) + 55px);z-index:20;margin-top:40px;background:var(--paper-light);box-shadow:inset 0 -1px var(--rule)}
/* Phone: the destination rails run to the screen edge, so the bar does too, and nothing shows beside it. */
@media(max-width:700px){.g-atlas-tabbar{margin-inline:calc(var(--gutter)*-1);padding-inline:var(--gutter)}}
.g-atlas-tabs{--fl:0px;--fr:0px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 var(--fl),#000 calc(100% - var(--fr)),transparent);mask-image:linear-gradient(90deg,transparent,#000 var(--fl),#000 calc(100% - var(--fr)),transparent)}
.g-atlas-tabs:not(.is-start){--fl:36px}.g-atlas-tabs:not(.is-end){--fr:44px}
.g-continent,.g-continent h3{scroll-margin-top:calc(var(--header-h) + 128px)}.g-destination{scroll-margin-top:calc(var(--header-h) + 128px)}
/* Phone: each continent's four destinations become a swipe rail, edge to edge, with the next card in view at the edge. */
@media(max-width:700px){
 .g-continent{padding-top:48px}.g-continent-head{margin-bottom:20px}
 .g-destinations{display:flex;gap:14px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;margin-inline:calc(-1*var(--gutter));padding:0 var(--gutter) 4px;scroll-padding-inline:var(--gutter);scrollbar-width:none}.g-destinations::-webkit-scrollbar{display:none}
 .g-destination{flex:0 0 80vw;min-width:0;scroll-snap-align:start}.g-destination-place{margin:16px 0 8px}.g-destination-body>h4{font-size:24px;margin-bottom:8px}
 .g-destination-lede{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin-bottom:6px}
 .g-destinations:has(details[open]){display:grid;overflow:visible;margin-inline:0;padding:0;gap:40px}.g-destination:has(details[open]) .g-destination-lede{display:block;overflow:visible}
 .g-atlas-directory{display:none}
}

/* 11-guide-collection.css */
/* Montessori Collection: cinematic hero, one large idea, a ten-chapter journey, five formats, two ways to join. */
.g-atlas-hero--wide .g-atlas-hero-grid{grid-template-columns:minmax(0,1fr);row-gap:clamp(32px,4vw,56px);align-items:start}.g-atlas-hero--wide .g-atlas-hero-media img{width:100%}.g-atlas-hero--wide .g-atlas-hero-copy{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:20px clamp(32px,5vw,96px);align-items:start}.g-atlas-hero--wide .g-atlas-hero-copy>.g-label{grid-column:1/-1;margin:0}.g-atlas-hero--wide h1{font-size:clamp(48px,6.2vw,100px);line-height:.98;margin:0}.g-atlas-hero-aside{margin:0 0 16px}.g-atlas-hero-aside a{font-size:15px}
#revelation .sec__head{max-width:none;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(32px,5vw,96px);align-items:start}#revelation .sec__head>.folio{grid-column:1/-1}#revelation h2{font-size:clamp(44px,6vw,96px);line-height:1;max-width:13ch}#revelation .sec__intro p{font:400 clamp(22px,2.3vw,34px)/1.35 var(--font-display);max-width:36ch;color:var(--ink-soft)}#revelation .sec__intro p+p{color:var(--ink);margin-top:1em}
.g-chapter-journey{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:64px 24px;align-items:start}.g-chapter-card--wide{grid-column:span 2}.g-chapter-card--wide .g-destination-frame img{aspect-ratio:11/4}
#the-child .g-destination-frame img{object-position:50% 45%}#relationships-community .g-destination-frame img{object-position:50% 30%}#the-absorbent-mind .g-destination-frame img{object-position:72% 50%}#freedom-within-limits .g-destination-frame img{object-position:50% 55%}#practical-life .g-destination-frame img{object-position:50% 42%}#movement-the-senses .g-destination-frame img{object-position:50% 62%}#language .g-destination-frame img{object-position:36% 50%}#nature-culture .g-destination-frame img{object-position:50% 62%}
.g-formats{list-style:none;padding:0;margin:0 0 clamp(56px,7vw,104px);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:32px;border-top:1px solid var(--rule-strong)}.g-formats li{padding-top:24px}.g-formats-n{font:400 11px/1.4 var(--font-mono);letter-spacing:.12em;color:var(--ink-mute)}.g-formats h3{font:400 clamp(30px,2.8vw,42px)/1.05 var(--font-display);margin:14px 0 12px}.g-formats p{margin:0;font-size:15px;line-height:1.6;color:var(--ink-soft)}
.g-join{display:grid;grid-template-columns:1fr 1fr;gap:24px}.g-join-panel{display:flex;flex-direction:column;padding:clamp(28px,4vw,56px);border:1px solid var(--rule-strong);border-radius:var(--radius)}.g-join-panel h3{font:400 clamp(38px,3.8vw,60px)/1.02 var(--font-display);margin:16px 0}.g-join-panel>p:not(.g-label){max-width:44ch}.g-join-panel .btn-row{margin:24px 0 8px}.g-join-panel .g-note{margin-top:auto;padding-top:16px}.g-join-panel--member{background:var(--forest);border-color:var(--forest);color:var(--on-dark)}.g-join-panel--member .g-label,.g-join-panel--member .g-note,.g-join-panel--member>p{color:var(--on-dark-soft)}.g-join-panel--member .btn--primary{background:var(--paper-light);color:var(--ink);border-color:var(--paper-light)}.g-join-panel--member .btn--primary:hover{background:var(--paper)}.g-join-roots{margin-top:32px;font-size:15px;color:var(--ink-soft)}
@media(max-width:1100px){.g-chapter-journey{grid-template-columns:repeat(2,minmax(0,1fr))}.g-formats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.g-join{grid-template-columns:1fr}}
@media(max-width:900px){#revelation .sec__head{grid-template-columns:1fr}}
@media(max-width:700px){.g-atlas-hero--wide .g-atlas-hero-copy{grid-template-columns:1fr}.g-chapter-journey{grid-template-columns:1fr;gap:48px}.g-chapter-card--wide{grid-column:auto}.g-chapter-card--wide .g-destination-frame img{aspect-ratio:4/3}.g-formats{grid-template-columns:1fr;gap:0}.g-formats li{display:grid;grid-template-columns:48px 1fr;column-gap:8px;padding:20px 0;border-bottom:1px solid var(--rule)}.g-formats li>*{grid-column:2}.g-formats-n{grid-column:1!important;grid-row:1/3;padding-top:12px}.g-formats h3{margin-top:0}}

/* 12-patterns.css */
/* Indaba patterns (src/patterns.mjs, docs/PATTERNS.md): Mosaic Six, Ribbon, Story Reel, Pillar Trio, Manifesto Frame, Constellation. */
:root{--pt-radius:14px;--pt-sand:#ddd6cb;--pt-veil:rgba(25,24,24,.5);--pt-ease:cubic-bezier(.22,.61,.36,1)}
.pt-waypoint{display:flex;align-items:center;gap:10px;margin:0 0 20px;font:400 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.pt-waypoint::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.7}
.pt-link{display:inline-block;padding-bottom:3px;border-bottom:1px solid currentColor;color:inherit;text-decoration:none;font-size:15px}.pt-link:hover{opacity:.8}
.pt-play{position:absolute;right:16px;bottom:16px;z-index:3;width:36px;height:36px;border:1px solid rgba(247,247,242,.35);border-radius:8px;background:rgba(25,24,24,.45);backdrop-filter:blur(6px);cursor:pointer}.pt-play-pause{display:block;width:10px;height:12px;margin:auto;border-inline:3px solid var(--on-dark)}.pt-play[aria-pressed=true] .pt-play-pause{width:0;height:0;border:0;border-left:11px solid var(--on-dark);border-block:7px solid transparent;margin-left:13px}.pt-play:focus-visible{outline:2px solid var(--on-dark);outline-offset:3px}

/* Mosaic Six */
.pt-mosaic{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:minmax(500px,auto);gap:12px}.pt-mosaic-card{position:relative;overflow:hidden;border-radius:var(--pt-radius);display:flex;flex-direction:column;isolation:isolate}.pt-mosaic-card:nth-child(1),.pt-mosaic-card:nth-child(5){grid-column:span 7}.pt-mosaic-card:nth-child(2),.pt-mosaic-card:nth-child(6){grid-column:span 5}.pt-mosaic-card:nth-child(3){grid-column:span 5}.pt-mosaic-card:nth-child(4){grid-column:span 7}
.pt-mosaic-copy{position:relative;z-index:2;padding:clamp(28px,3.4vw,48px);max-width:46ch}.pt-mosaic-num{margin:0 0 4px;font:400 22px/1 var(--font-display)}.pt-mosaic-card h3{margin:0 0 10px;font:400 clamp(28px,2.5vw,38px)/1.05 var(--font-display);letter-spacing:-.005em}.pt-mosaic-kicker{margin:0 0 18px;font-size:14px}.pt-mosaic-body{margin:0 0 14px;font-size:14px;line-height:1.6}
.pt-mosaic-card--immersive{color:var(--on-dark);background:var(--ink)}.pt-mosaic-card--immersive .pt-mosaic-kicker,.pt-mosaic-card--immersive .pt-mosaic-body{color:var(--on-dark-soft)}.pt-mosaic-media{position:absolute;inset:0;z-index:0}.pt-mosaic-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(25,24,24,.72),rgba(25,24,24,.32) 58%,rgba(25,24,24,.5))}.pt-mosaic-card--immersive .pt-mosaic-copy{text-shadow:0 1px 14px rgba(25,24,24,.35)}.pt-mosaic-media img,.pt-mosaic-media video{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--pt-ease)}.pt-mosaic-card:hover .pt-mosaic-media img{transform:scale(1.04)}
.pt-mosaic-card--framed{background:var(--pt-sand);color:var(--ink)}.pt-mosaic-card--framed .pt-mosaic-kicker,.pt-mosaic-card--framed .pt-mosaic-body{color:var(--ink-soft)}.pt-mosaic-inset{flex:none;height:clamp(220px,19vw,290px);margin:auto clamp(28px,3.4vw,48px) 0;overflow:hidden;border-radius:2px 2px 0 0}.pt-mosaic-inset img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--pt-ease)}.pt-mosaic-card:hover .pt-mosaic-inset img{transform:scale(1.03)}

/* Ribbon */
.pt-ribbon{width:100%;overflow:hidden;padding:4px 0}.pt-ribbon:focus-visible{outline:2px solid var(--forest);outline-offset:-2px}.pt-ribbon-track{display:flex;gap:10px;width:max-content;margin:0;padding:0;list-style:none}.pt-ribbon-item{flex:none;height:clamp(240px,27vw,400px);overflow:hidden;border-radius:12px}.pt-ribbon-item--tall{aspect-ratio:4/5}.pt-ribbon-item--mid{aspect-ratio:6/5}.pt-ribbon-item--wide{aspect-ratio:3/2}.pt-ribbon-item img{width:100%;height:100%;object-fit:cover}
.pt-ribbon.is-drifting .pt-ribbon-track{animation:pt-drift var(--pt-drift,90s) linear infinite}.pt-ribbon.is-drifting:hover .pt-ribbon-track,.pt-ribbon.is-drifting:focus-within .pt-ribbon-track,.pt-ribbon.is-paused .pt-ribbon-track{animation-play-state:paused}@keyframes pt-drift{to{transform:translateX(-50%)}}

/* Story Reel */
.pt-reel{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,112px);align-items:center}.pt-reel--reverse .pt-reel-copy{order:2}.pt-reel-copy h3{margin:0 0 20px;font:400 clamp(34px,3.4vw,52px)/1.05 var(--font-display)}.pt-reel-sub{margin:0 0 28px;font:400 clamp(20px,1.7vw,26px)/1.25 var(--font-display);color:var(--ink-soft)}.pt-reel-copy>p:not(.pt-waypoint):not(.pt-reel-sub){font-size:15px;line-height:1.65;color:var(--ink-soft);max-width:52ch}
.pt-reel-quote{display:grid;grid-template-columns:36px 1fr;gap:16px;align-items:start;margin:28px 0 0}.pt-reel-quote p{margin:0;font-size:15px;font-weight:500;line-height:1.55}.pt-quote-mark{width:36px;height:36px;border-radius:8px;background:var(--paper-deep);position:relative}.pt-quote-mark::after{content:"";position:absolute;left:14px;top:12px;border-left:10px solid var(--ink);border-block:6px solid transparent}
.pt-reel-frame{position:relative;overflow:hidden;border-radius:var(--pt-radius);background:var(--paper-deep)}.pt-reel-frame img,.pt-reel-frame video{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover}

/* Pillar Trio */
.pt-pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.pt-pillar{position:relative;display:block;min-height:clamp(340px,30vw,420px);overflow:hidden;border:1px solid var(--rule);border-radius:12px;background:#6d6a66;color:var(--on-dark);text-decoration:none;isolation:isolate}.pt-pillar:focus-visible{outline:2px solid var(--forest);outline-offset:4px}
.pt-pillar-media{position:absolute;inset:0;z-index:0}.pt-pillar-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(25,24,24,.34) 0%,rgba(25,24,24,.08) 30%,rgba(25,24,24,.55) 58%,rgba(25,24,24,.88) 100%);transition:opacity .9s var(--pt-ease)}.pt-pillar-media::before{content:"";position:absolute;inset:0;z-index:1;background:rgba(25,24,24,.22);opacity:0;transition:opacity .9s var(--pt-ease)}.pt-pillar:hover .pt-pillar-media::before,.pt-pillar:focus-within .pt-pillar-media::before{opacity:1}.pt-pillar .pt-concept{left:auto;right:16px;top:16px;bottom:auto}.pt-pillar-media img,.pt-pillar-media video{width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 1.6s var(--pt-ease)}.pt-pillar:hover .pt-pillar-media img{transform:scale(1)}
.pt-pillar-inner{position:relative;z-index:1;height:100%;min-height:inherit;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(24px,2.4vw,32px)}.pt-pillar-num{margin:0;font:400 26px/1 var(--font-display)}.pt-pillar h3{margin:0 0 10px;font:400 clamp(22px,1.8vw,28px)/1.15 var(--font-display)}.pt-pillar ul{list-style:none;margin:0;padding:0}.pt-pillar li{font-size:14px;line-height:1.6;color:rgba(247,247,242,.86)}.pt-pillar-inner>div{min-height:9.5em;display:flex;flex-direction:column;justify-content:flex-end}.pt-pillar li::before{content:"→ "}


/* Manifesto Frame */
.pt-manifesto{position:relative;margin:0;min-height:clamp(480px,64vw,880px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(24px,4vw,56px);padding:clamp(40px,6vw,96px) clamp(20px,6vw,120px);overflow:hidden;border-radius:clamp(16px,2vw,28px);color:var(--on-dark);text-align:center;isolation:isolate}.pt-manifesto-media{position:absolute;inset:0;z-index:-1}.pt-manifesto-media::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(25,24,24,.42),rgba(25,24,24,.68))}.pt-manifesto-media img,.pt-manifesto-media video{width:100%;height:100%;object-fit:cover}.pt-manifesto-media video{transform:scale(1.12)}
.pt-manifesto blockquote{margin:0}.pt-manifesto blockquote p{margin:0 auto .7em;max-width:30ch;font:400 clamp(24px,2.6vw,40px)/1.3 var(--font-display)}.pt-manifesto figcaption{max-width:60ch;font:400 clamp(11px,1vw,13px)/1.6 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark-soft)}

/* Constellation */
.pt-constellation{display:flex;align-items:flex-start;justify-content:center;gap:clamp(8px,1.2vw,18px);width:100%;overflow:hidden;padding:clamp(24px,4vw,64px) 0}.pt-star{flex:none;overflow:hidden;border-radius:clamp(10px,1.2vw,18px)}.pt-star img{display:block;width:100%;height:100%;object-fit:cover}
.pt-star--a{width:16vw;height:25vw;margin-top:9vw;margin-left:-4vw}.pt-star--b{width:16vw;height:16vw;margin-top:9vw}.pt-star--c{width:33vw;height:23vw;margin-top:3vw}.pt-star--d{width:14vw;height:16vw;margin-top:15vw}.pt-star--e{width:18vw;height:12vw;margin-top:19vw;margin-right:-6vw}

/* Shared reveal: a soft blur-in, skipped for reduced motion and without JavaScript. */
.pt-js [data-pt-reveal]{opacity:0;filter:blur(12px);transform:translateY(18px);transition:opacity 1.1s var(--pt-ease),filter 1.1s var(--pt-ease),transform 1.1s var(--pt-ease)}.pt-js [data-pt-reveal].is-in{opacity:1;filter:none;transform:none}
@media(prefers-reduced-motion:reduce){.pt-mosaic-media img,.pt-mosaic-inset img,.pt-pillar-media,.pt-pillar-media img{transition:none}.pt-mosaic-card:hover .pt-mosaic-media img,.pt-mosaic-card:hover .pt-mosaic-inset img{transform:none}.pt-ribbon{overflow-x:auto}}
@media(max-width:900px){.pt-mosaic{grid-template-columns:1fr;grid-auto-rows:minmax(440px,auto)}.pt-mosaic-card:nth-child(n){grid-column:auto}.pt-reel,.pt-reel--reverse{grid-template-columns:1fr}.pt-reel--reverse .pt-reel-copy{order:0}.pt-pillars{grid-template-columns:1fr}.pt-pillar{min-height:300px}}
@media(max-width:600px){.pt-constellation{gap:8px}.pt-star--a{width:24vw;height:38vw;margin-left:-10vw}.pt-star--b{display:none}.pt-star--c{width:52vw;height:38vw}.pt-star--d{width:24vw;height:28vw;margin-top:20vw}.pt-star--e{display:none}}

/* /patterns/ reference page only */
.pt-gallery-hero{padding:clamp(56px,7vw,112px) 0 clamp(24px,3vw,40px)}.pt-gallery-hero h1{margin:0 0 20px;font:400 clamp(48px,6vw,92px)/.98 var(--font-display)}.pt-gallery-hero p{max-width:60ch;color:var(--ink-soft);font-size:var(--fs-lede);line-height:1.5}.pt-gallery-index{display:flex;flex-wrap:wrap;gap:8px 28px;margin:32px 0 0;padding:16px 0 0;list-style:none;border-top:1px solid var(--rule)}.pt-gallery-index a{display:flex;gap:10px;align-items:baseline;color:var(--ink);text-decoration:none;font:400 22px/1.3 var(--font-display)}.pt-gallery-index span{font:400 11px/1 var(--font-mono);color:var(--ink-mute)}
.pt-gallery{padding-block:clamp(56px,7vw,112px)}.pt-gallery-tag{display:flex;gap:12px;align-items:baseline;margin:0 0 6px;font:400 clamp(26px,2.4vw,34px)/1.1 var(--font-display)}.pt-gallery-tag span{font:400 11px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--forest)}.pt-gallery-use{margin:0 0 clamp(32px,4vw,56px);max-width:70ch;font-size:14px;color:var(--ink-mute);padding-bottom:20px;border-bottom:1px dashed var(--rule-strong)}
.pt-gallery-head{margin-bottom:clamp(28px,3.5vw,48px)}.pt-gallery-head h2{margin:0;font:400 clamp(34px,3.6vw,56px)/1.04 var(--font-display);max-width:20ch}.pt-gallery-lede{margin:16px 0 0;max-width:50ch;font:400 clamp(20px,1.7vw,26px)/1.3 var(--font-display);color:var(--ink-soft)}.pt-gallery-head--centre{text-align:center}.pt-gallery-head--centre .pt-waypoint{justify-content:center}.pt-gallery-head--centre h2{margin-inline:auto}.pt-gallery-head--centre .btn-row{justify-content:center;margin-top:28px}
.pt-section{padding-block:clamp(48px,6vw,96px)}.pt-section .pt-gallery-head{margin-bottom:clamp(24px,3vw,40px)}
.pt-pillar-kicker{margin:0 0 8px;font:400 11px/1.4 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark-soft)}.pt-pillar-cta{display:inline-block;margin-top:14px;padding-bottom:3px;border-bottom:1px solid currentColor;font-size:14px}

/* Concept label for single large media (Manifesto Frame, Story Reel, Chapter Scroll) */
.pt-concept{position:absolute;left:16px;bottom:16px;z-index:3;padding:5px 10px;border-radius:999px;background:rgba(25,24,24,.45);backdrop-filter:blur(6px);color:var(--on-dark);font:400 10px/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase}
.pt-manifesto h2{margin:0 auto;max-width:22ch;font:400 clamp(36px,5.4vw,84px)/1.04 var(--font-display);color:var(--on-dark);text-wrap:balance}

/* Scene Stage */
.pt-stage{position:relative;width:min(100% - 32px,1720px);margin-inline:auto;color:var(--on-dark)}.pt-stage-frames{position:relative;aspect-ratio:21/9;overflow:hidden;border-radius:clamp(14px,1.6vw,24px);background:var(--ink)}
.pt-stage-scene{position:absolute;inset:0;margin:0;opacity:0;transition:opacity 1.4s var(--pt-ease)}.pt-stage-scene.is-active{opacity:1}.pt-stage-scene img{width:100%;height:100%;object-fit:cover;transform:scale(1.001)}.pt-stage-scene.is-active img{animation:pt-kenburns 9s var(--pt-ease) both}@keyframes pt-kenburns{from{transform:scale(1.07)}to{transform:scale(1)}}
.pt-stage-scene::after{content:"";position:absolute;inset:auto 0 0;height:46%;background:linear-gradient(180deg,transparent,rgba(25,24,24,.62))}.pt-stage-scene figcaption{position:absolute;right:clamp(16px,2vw,28px);top:clamp(14px,1.6vw,24px);z-index:2;padding:5px 10px;border-radius:999px;background:rgba(25,24,24,.4);backdrop-filter:blur(6px);font:400 10px/1.3 var(--font-mono);letter-spacing:.12em;text-transform:uppercase}
.pt-stage-bar{position:absolute;left:0;right:0;bottom:0;z-index:3;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:clamp(16px,2.2vw,32px)}.pt-stage-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:clamp(10px,1.6vw,24px);flex:1;max-width:1100px}
.pt-stage-tabs button{display:flex;flex-direction:column;gap:10px;min-height:44px;justify-content:flex-end;padding:0;border:0;background:none;color:var(--on-dark-soft);font:400 clamp(11px,.9vw,13px)/1.3 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;text-align:left;cursor:pointer;transition:color .4s var(--pt-ease)}.pt-stage-tabs button:hover,.pt-stage-tabs button[aria-pressed=true]{color:var(--on-dark)}.pt-stage-tabs button:focus-visible{outline:2px solid var(--on-dark);outline-offset:4px}
.pt-stage-tabs i{display:block;height:2px;border-radius:2px;background:rgba(247,247,242,.28);overflow:hidden}.pt-stage-tabs i::after{content:"";display:block;height:100%;width:100%;background:var(--on-dark);transform:scaleX(0);transform-origin:left}.pt-stage-tabs button[aria-pressed=true] i::after{transform:scaleX(1)}
.pt-stage.is-running .pt-stage-tabs button[aria-pressed=true] i::after{animation:pt-progress var(--pt-stage-dur,7s) linear both}.pt-stage.is-paused .pt-stage-tabs button[aria-pressed=true] i::after{animation-play-state:paused}@keyframes pt-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.pt-stage-toggle{position:static;flex:none}

/* Showcase Rail */
.pt-rail-controls{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:clamp(24px,3vw,40px)}.pt-rail-filters{display:flex;flex-wrap:wrap;gap:8px}.pt-rail-filters button{min-height:40px;padding:0 18px;border:1px solid var(--rule-strong);border-radius:999px;background:none;color:var(--ink-soft);font:400 13px/1 var(--font-body);cursor:pointer;transition:background .3s var(--pt-ease),color .3s var(--pt-ease),border-color .3s var(--pt-ease)}.pt-rail-filters button:hover{color:var(--ink);border-color:var(--ink)}.pt-rail-filters button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--on-dark)}
.pt-rail-arrows{display:flex;gap:8px;flex:none}.pt-rail-arrows button{width:48px;height:48px;border:1px solid var(--rule-strong);border-radius:50%;background:var(--paper-light);color:var(--ink);font-size:18px;cursor:pointer;transition:background .3s var(--pt-ease),opacity .3s}.pt-rail-arrows button:hover:not(:disabled){background:var(--ink);color:var(--on-dark)}.pt-rail-arrows button:disabled{opacity:.35;cursor:default}.pt-rail-filters button:focus-visible,.pt-rail-arrows button:focus-visible{outline:2px solid var(--forest);outline-offset:3px}
.pt-rail{--pt-inset:max(var(--gutter),calc((100% - var(--max))/2 + var(--gutter)))}.pt-rail-controls,.pt-rail-progress{margin-inline:var(--pt-inset)}.pt-rail-track{display:flex;gap:16px;margin:0;padding:4px var(--pt-inset) 8px;list-style:none;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pt-inset);scrollbar-width:none;overscroll-behavior-x:contain}.pt-rail-track::-webkit-scrollbar{display:none}.pt-rail-track:focus-visible{outline:2px solid var(--forest);outline-offset:-2px}
.pt-rail-item{flex:none;width:clamp(280px,26vw,380px);scroll-snap-align:start}.pt-rail-item[hidden]{display:none}.pt-rail-card{position:relative;display:flex;flex-direction:column;justify-content:flex-end;height:clamp(460px,40vw,560px);overflow:hidden;border-radius:var(--pt-radius);background:var(--ink);color:var(--on-dark);text-decoration:none;isolation:isolate}.pt-rail-card:focus-visible{outline:2px solid var(--forest);outline-offset:4px}
.pt-rail-media{position:absolute;inset:0;z-index:-1}.pt-rail-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(25,24,24,.05) 30%,rgba(25,24,24,.5) 55%,rgba(25,24,24,.86))}.pt-rail-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--pt-ease)}.pt-rail-card:hover .pt-rail-media img,.pt-rail-card:focus-visible .pt-rail-media img{transform:scale(1.05)}
.pt-rail-copy{padding:clamp(22px,2vw,30px)}.pt-rail-place{margin:0 0 10px;font:400 10px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-soft)}.pt-rail-card h3{margin:0 0 10px;font:400 clamp(28px,2.3vw,36px)/1.04 var(--font-display)}.pt-rail-body{margin:0 0 16px;font-size:14px;line-height:1.55;color:var(--on-dark-soft)}.pt-rail-card .status{margin:0 0 16px;font-size:11px;color:var(--on-dark);border-color:rgba(247,247,242,.3);background:rgba(25,24,24,.25)}
.pt-rail-more{display:inline-flex;gap:6px;padding-bottom:3px;border-bottom:1px solid currentColor;font:400 12px/1.3 var(--font-body);letter-spacing:.1em;text-transform:uppercase}
.pt-rail-progress{height:2px;margin-top:clamp(20px,2.4vw,32px);background:var(--rule);border-radius:2px;overflow:hidden}.pt-rail-progress i{display:block;height:100%;width:var(--pt-rail-w,30%);background:var(--ink);transform:translateX(var(--pt-rail-x,0));transition:transform .2s linear,width .3s}

/* Chapter Scroll */
.pt-chapters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,112px);align-items:start}.pt-chapters-stage{position:sticky;top:max(96px,calc(50vh - 30vw));aspect-ratio:4/5;max-height:calc(100vh - 140px);width:100%;overflow:hidden;border-radius:var(--pt-radius);background:var(--ink)}
.pt-chapters-frame{position:absolute;inset:0;opacity:0;transform:scale(1.04);transition:opacity 1s var(--pt-ease),transform 1.6s var(--pt-ease)}.pt-chapters-frame.is-active{opacity:1;transform:none}.pt-chapters-frame img{width:100%;height:100%;object-fit:cover}
.pt-chapters-steps{list-style:none;margin:0;padding:0}.pt-chapter{min-height:min(62vh,600px);display:flex;flex-direction:column;justify-content:center;padding:32px 0;opacity:.32;transition:opacity .6s var(--pt-ease)}.pt-chapter.is-active,.pt-chapters:not(.is-live) .pt-chapter{opacity:1}.pt-chapter-inline{display:none}
.pt-chapter-label{display:flex;gap:14px;align-items:baseline;margin:0 0 18px;font:400 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}.pt-chapter-label span{font:400 28px/1 var(--font-display);letter-spacing:0;color:var(--ink)}.pt-chapter h3{margin:0 0 18px;font:400 clamp(36px,4vw,64px)/1.02 var(--font-display);max-width:16ch}.pt-chapter p:not(.pt-chapter-label){margin:0 0 14px;max-width:46ch;font-size:16px;line-height:1.65;color:var(--ink-soft)}.pt-chapter .pt-link{align-self:flex-start;margin-top:10px}
:is(.sec--atelier,.theme-atelier .sec--paper) .pt-chapter-label{color:var(--on-dark-mute)}:is(.sec--atelier,.theme-atelier .sec--paper) .pt-chapter-label span,:is(.sec--atelier,.theme-atelier .sec--paper) .pt-chapter h3{color:var(--on-dark)}:is(.sec--atelier,.theme-atelier .sec--paper) .pt-chapter p:not(.pt-chapter-label){color:var(--on-dark-soft)}:is(.sec--atelier,.theme-atelier .sec--paper) .pt-chapter .pt-link{color:var(--on-dark)}

/* Shift Ledger */
.pt-shift-head{display:grid;grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);margin:0 0 8px;font:400 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}.pt-shift-head span:last-child{grid-column:3}
.pt-shift ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule-strong)}.pt-shift li{display:grid;grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);align-items:baseline;padding:clamp(18px,2.2vw,28px) 0;border-bottom:1px solid var(--rule)}
.pt-shift-from{font-size:clamp(16px,1.3vw,19px);color:var(--ink-mute)}.pt-shift-from s{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 55%/100% 1px no-repeat}.pt-shift-arrow{color:var(--ink-mute)}.pt-shift-to{font:400 clamp(24px,2.3vw,36px)/1.15 var(--font-display);color:var(--ink)}
.pt-js .pt-shift li[data-pt-reveal] .pt-shift-from s{background-size:0 1px;transition:background-size .9s var(--pt-ease) .5s}.pt-js .pt-shift li.is-in .pt-shift-from s{background-size:100% 1px}

/* Principle Index */
.pt-principles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(32px,5vw,96px);border-top:1px solid var(--rule-strong)}.pt-principles li{display:grid;align-content:start;grid-template-columns:56px minmax(0,1fr);column-gap:16px;padding:clamp(20px,2.4vw,32px) 0;border-bottom:1px solid var(--rule);transition:padding .5s var(--pt-ease)}.pt-principles li:hover{padding-left:10px}@media(min-width:901px){.pt-principles li:last-child:nth-child(odd){grid-column:1/-1}}
.pt-principle-n{grid-row:span 2;font:400 clamp(26px,2.4vw,36px)/1 var(--font-display);color:var(--ink-mute)}.pt-principles h3{margin:0 0 8px;font:400 clamp(24px,2.1vw,32px)/1.1 var(--font-display)}.pt-principles p{margin:0;max-width:44ch;font-size:15px;line-height:1.6;color:var(--ink-soft)}
.sec--atelier .pt-principles{border-color:var(--rule-dark)}.sec--atelier .pt-principles li{border-color:var(--rule-dark)}.sec--atelier .pt-principle-n,.sec--atelier .pt-principles p{color:var(--on-dark-soft)}.sec--atelier .pt-principles h3{color:var(--on-dark)}

@media(prefers-reduced-motion:reduce){.pt-stage-scene,.pt-chapters-frame,.pt-rail-media img,.pt-principles li{transition:none}.pt-stage-scene.is-active img{animation:none}.pt-chapters-frame{transform:none}}
@media(max-width:900px){.pt-chapters{grid-template-columns:1fr}.pt-chapters-stage{display:none}.pt-chapter{min-height:0;opacity:1;padding:0 0 48px}.pt-chapter-inline{display:block;position:relative;margin:0 0 24px;overflow:hidden;border-radius:12px}.pt-chapter-inline img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.pt-principles{grid-template-columns:1fr}.pt-mosaic-media::after{background:linear-gradient(180deg,rgba(25,24,24,.55),rgba(25,24,24,.2) 58%,rgba(25,24,24,.45))}}
@media(max-width:700px){.pt-stage{width:100%}.pt-stage-frames{border-radius:0}.pt-stage-frames{aspect-ratio:4/5}.pt-stage-bar{position:static;align-items:center;padding:16px var(--gutter) 0;color:var(--ink)}.pt-stage-tabs{display:flex;gap:20px;overflow-x:auto;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 82%,transparent);mask-image:linear-gradient(90deg,#000 82%,transparent)}.pt-stage-tabs::-webkit-scrollbar{display:none}.pt-stage-tabs button{flex:none;color:var(--ink-mute)}.pt-stage-tabs button:hover,.pt-stage-tabs button[aria-pressed=true]{color:var(--ink)}.pt-stage-tabs button:focus-visible{outline-color:var(--forest)}.pt-stage-tabs i{background:var(--rule-strong)}.pt-stage-tabs i::after{background:var(--ink)}.pt-stage-scene figcaption{right:auto;left:16px;max-width:calc(100% - 32px)}.pt-rail-controls{flex-direction:column;align-items:stretch}.pt-rail-filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.pt-rail-filters button{flex:none}.pt-rail-arrows{display:none}.pt-rail-item{width:82vw}.pt-shift li,.pt-shift-head{grid-template-columns:1fr}.pt-shift-head{display:none}.pt-shift-arrow{display:none}.pt-shift-from{margin-bottom:6px}}

/* Ripple */
.pt-ripple{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,112px);align-items:center}.pt-ripple-figure{margin:0}.pt-ripple-figure svg{display:block;width:100%;height:auto;max-width:620px;margin-inline:auto;overflow:visible}.pt-ripple-figure figcaption{margin-top:12px;text-align:center;font:400 10px/1.5 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}
.pt-ripple-band{fill:none;stroke:var(--rule-strong);stroke-width:1.5;transition:stroke .6s var(--pt-ease),fill .6s var(--pt-ease)}.pt-ripple-ring[data-ring="0"] .pt-ripple-band{fill:var(--paper-deep)}.pt-ripple-dot{fill:var(--ink-mute);transition:fill .6s var(--pt-ease),transform .8s var(--pt-ease)}.pt-ripple-ring text{paint-order:stroke;stroke:var(--paper);stroke-width:8px;stroke-linejoin:round;font:400 13px var(--font-mono);letter-spacing:.12em;text-transform:uppercase;fill:var(--ink-mute)}
.pt-ripple-ring{opacity:.28;transition:opacity .8s var(--pt-ease)}.pt-ripple-ring.is-lit{opacity:1}.pt-ripple-ring.is-lit .pt-ripple-dot{fill:var(--forest)}.pt-ripple-ring.is-active .pt-ripple-band{stroke:var(--forest);stroke-width:2.5}.pt-ripple-ring[data-ring="0"].is-lit .pt-ripple-band{fill:var(--forest)}.pt-ripple-ring[data-ring="0"] text{stroke:none}.pt-ripple-ring[data-ring="0"].is-lit text{fill:var(--on-dark)}.pt-ripple-ring.is-active text{fill:var(--ink)}.pt-ripple-ring[data-ring="0"].is-active text{fill:var(--on-dark)}
.pt-ripple-steps{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule-strong)}.pt-ripple-step{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:12px;width:100%;padding:20px 0;border:0;border-bottom:1px solid var(--rule);background:none;color:inherit;text-align:left;font:inherit;cursor:pointer}.pt-ripple-step:focus-visible{outline:2px solid var(--forest);outline-offset:4px}
.pt-ripple-n{grid-row:span 2;font:400 24px/1.1 var(--font-display);color:var(--ink-mute)}.pt-ripple-title{font:400 clamp(22px,1.9vw,28px)/1.15 var(--font-display);color:var(--ink-soft);transition:color .4s}.pt-ripple-body{max-height:0;overflow:hidden;opacity:0;font-size:15px;line-height:1.6;color:var(--ink-soft);transition:max-height .6s var(--pt-ease),opacity .6s var(--pt-ease),margin .6s}
.pt-ripple-step.is-active .pt-ripple-n,.pt-ripple-step.is-active .pt-ripple-title{color:var(--ink)}.pt-ripple-step.is-active .pt-ripple-body,.pt-ripple-step:hover .pt-ripple-body,.pt-ripple-step:focus-visible .pt-ripple-body{max-height:12em;opacity:1;margin-top:8px}

/* House Map */
.pt-house{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,112px);align-items:start}.pt-house-diagram{position:sticky;top:110px}.pt-house-diagram svg{display:block;width:100%;height:auto}.pt-house-node{cursor:pointer}.pt-house-node circle{fill:var(--paper-light);fill-opacity:.55;stroke:var(--rule-strong);stroke-width:1.5;transition:fill .6s var(--pt-ease),fill-opacity .6s,stroke .6s}.pt-house-node text{font:400 30px var(--font-display);fill:var(--ink-soft);transition:fill .6s}.pt-house-core circle{fill:var(--paper-light);stroke:var(--ink);stroke-width:1.5}.pt-house-core text{font:400 11px var(--font-mono);letter-spacing:.14em;text-transform:uppercase;fill:var(--ink)}
.pt-house[data-active="0"] [data-node="0"] circle,.pt-house[data-active="1"] [data-node="1"] circle,.pt-house[data-active="2"] [data-node="2"] circle{fill:var(--forest);fill-opacity:.88;stroke:var(--forest)}.pt-house[data-active="0"] [data-node="0"] text,.pt-house[data-active="1"] [data-node="1"] text,.pt-house[data-active="2"] [data-node="2"] text{fill:var(--on-dark)}
.pt-house-centre{margin:8px 0 0;text-align:center;font:400 11px/1.5 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}
.pt-house-tabs{display:flex;gap:6px;margin-bottom:28px;padding:4px;border:1px solid var(--rule-strong);border-radius:999px;width:max-content;max-width:100%}.pt-house-tabs button{min-height:44px;padding:0 18px;border:0;border-radius:999px;background:none;color:var(--ink-soft);font:400 14px/1 var(--font-body);cursor:pointer;transition:background .3s,color .3s}.pt-house-tabs button[aria-selected=true]{background:var(--ink);color:var(--on-dark)}.pt-house-tabs button:focus-visible{outline:2px solid var(--forest);outline-offset:3px}
.pt-house-panel+.pt-house-panel{margin-top:48px}.pt-house[data-active] .pt-house-panel+.pt-house-panel{margin-top:0}.pt-house-media{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:var(--pt-radius);margin-bottom:24px}.pt-house-media img{width:100%;height:100%;object-fit:cover}.pt-house-kicker{margin:0 0 8px;font:400 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}.pt-house-panel h3{margin:0 0 14px;font:400 clamp(32px,3.2vw,48px)/1.05 var(--font-display)}
.pt-house-role{margin:0 0 18px;max-width:44ch;font:400 clamp(19px,1.6vw,23px)/1.4 var(--font-display);color:var(--ink)}.pt-house-for{margin:0 0 22px;font-size:15px;color:var(--ink-soft)}.pt-house-for span{display:block;margin-bottom:4px;font:400 10px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}.pt-house-note{margin:32px 0 0;font-size:13px;color:var(--ink-mute)}
.pt-house[data-active] .pt-house-panel:not([hidden]){animation:pt-fade .6s var(--pt-ease)}@keyframes pt-fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* Evidence Lens */
.pt-lens-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.pt-lens-filters button{min-height:40px;padding:0 18px;border:1px solid var(--rule-strong);border-radius:999px;background:none;color:var(--ink-soft);font:400 13px/1 var(--font-body);cursor:pointer}.pt-lens-filters button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--on-dark)}.pt-lens-filters button:focus-visible{outline:2px solid var(--forest);outline-offset:3px}
.pt-lens-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.pt-lens-item{display:flex;flex-direction:column;padding:clamp(24px,2.6vw,36px);border:1px solid var(--rule-strong);border-radius:var(--pt-radius);background:var(--paper-light)}.pt-lens-item[hidden]{display:none}
.pt-lens-kind{align-self:flex-start;margin:0 0 18px;padding:5px 12px;border-radius:999px;font:400 10px/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;background:var(--paper-deep);color:var(--ink)}.pt-lens-kind--assessed{background:var(--forest);color:var(--on-dark)}.pt-lens-kind--review{background:none;border:1px dashed var(--rule-strong);color:var(--ink-soft)}.pt-lens-kind--prior{background:none;border:1px solid var(--rule-strong);color:var(--ink-soft)}
.pt-lens-label{margin:0 0 8px;font:400 11px/1.5 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute)}.pt-lens-item h3{margin:0 0 18px;font:400 clamp(26px,2.2vw,34px)/1.08 var(--font-display)}.pt-lens-item dl{margin:0 0 18px}.pt-lens-item dl div{padding:12px 0;border-top:1px solid var(--rule)}.pt-lens-item dt{margin-bottom:4px;font:400 10px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}.pt-lens-item dd{margin:0;font-size:15px;line-height:1.6;color:var(--ink-soft)}.pt-lens-item .pt-link{margin-top:auto;align-self:flex-start}

/* Door Finder */
.pt-doors{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(24px,5vw,88px);align-items:start}.pt-doors-list{display:flex;flex-direction:column;border-top:1px solid var(--rule-strong)}.pt-doors-list button{display:flex;justify-content:space-between;align-items:center;min-height:56px;padding:12px 0;border:0;border-bottom:1px solid var(--rule);background:none;color:var(--ink-mute);font:400 clamp(20px,1.7vw,25px)/1.2 var(--font-display);text-align:left;cursor:pointer;transition:color .3s,padding .4s var(--pt-ease)}.pt-doors-list button::after{content:"→";font:400 16px var(--font-body);opacity:0;transition:opacity .3s}
.pt-doors-list button:hover{color:var(--ink)}.pt-doors-list button[aria-selected=true]{color:var(--ink);padding-left:10px}.pt-doors-list button[aria-selected=true]::after{opacity:1}.pt-doors-list button:focus-visible{outline:2px solid var(--forest);outline-offset:2px}
.pt-door{padding:clamp(28px,4vw,56px);border-radius:var(--pt-radius);background:var(--forest);color:var(--on-dark)}.pt-door+.pt-door{margin-top:16px}.pt-doors[data-active] .pt-door+.pt-door{margin-top:0}.pt-doors[data-active] .pt-door:not([hidden]){animation:pt-fade .6s var(--pt-ease)}
.pt-door-for{margin:0 0 18px;font:400 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-soft)}.pt-door-line{margin:0 0 32px;max-width:26ch;font:400 clamp(28px,3vw,44px)/1.12 var(--font-display);text-wrap:balance}.pt-door-links{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule-dark)}.pt-door-links a{display:flex;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--rule-dark);color:var(--on-dark);text-decoration:none;font-size:16px;transition:padding .4s var(--pt-ease)}.pt-door-links a:hover{padding-left:8px}.pt-door-links a:focus-visible{outline:2px solid var(--on-dark);outline-offset:2px}.pt-door-note{margin:20px 0 0;font-size:13px;line-height:1.6;color:var(--on-dark-soft)}

/* Field Story */
.pt-field{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,6vw,112px);align-items:start}.pt-field-frame{position:sticky;top:110px;margin:0;overflow:hidden;border-radius:var(--pt-radius);background:var(--ink)}.pt-field-frame img,.pt-field-frame video{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}.pt-field-frame video{transform:scale(1.16)}.pt-field-frame figcaption{position:absolute;left:16px;bottom:16px;right:64px;color:var(--on-dark);font:400 10px/1.4 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;text-shadow:0 1px 8px rgba(25,24,24,.6)}
.pt-field-steps{list-style:none;margin:0;padding:0;border-left:1px solid var(--rule-strong)}.pt-field-steps li{position:relative;padding:0 0 clamp(40px,5vw,72px) clamp(24px,3vw,44px)}.pt-field-steps li::before{content:"";position:absolute;left:-6px;top:6px;width:11px;height:11px;border-radius:50%;background:var(--forest);box-shadow:0 0 0 5px var(--paper)}.sec--light .pt-field-steps li::before{box-shadow:0 0 0 5px var(--paper-light)}
.pt-field-when{margin:0 0 10px;font:400 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--forest)}.pt-field-steps h3{margin:0 0 14px;font:400 clamp(28px,2.6vw,40px)/1.08 var(--font-display)}.pt-field-steps p{margin:0 0 12px;max-width:52ch;font-size:16px;line-height:1.65;color:var(--ink-soft)}.pt-field-steps .pt-field-limits{padding-left:14px;border-left:2px solid var(--rule-strong);font-size:14px;color:var(--ink-mute)}.pt-field-steps .pt-field-source{font:400 11px/1.5 var(--font-mono);letter-spacing:.04em;color:var(--ink-mute)}

@media(prefers-reduced-motion:reduce){.pt-ripple-band,.pt-ripple-dot,.pt-ripple-ring,.pt-ripple-body,.pt-house-node circle{transition:none}.pt-house[data-active] .pt-house-panel:not([hidden]),.pt-doors[data-active] .pt-door:not([hidden]){animation:none}}
@media(max-width:900px){.pt-ripple,.pt-house,.pt-doors,.pt-field{grid-template-columns:1fr}.pt-ripple-figure svg{max-width:420px}.pt-ripple-ring text{font-size:24px}.pt-house-diagram{position:static;max-width:420px;margin-inline:auto}.pt-field-frame{position:relative;top:0}.pt-field-frame img,.pt-field-frame video{aspect-ratio:4/3}.pt-lens-list{grid-template-columns:1fr}.pt-doors-list{flex-direction:row;flex-wrap:wrap;gap:8px;border:0}.pt-doors-list button{flex:none;min-height:44px;padding:0 16px;border:1px solid var(--rule-strong);border-radius:999px;font:400 14px/1 var(--font-body)}.pt-doors-list button::after{display:none}.pt-doors-list button[aria-selected=true]{padding-left:16px;background:var(--ink);border-color:var(--ink);color:var(--on-dark)}.pt-house-tabs{width:100%}.pt-house-tabs button{flex:1;padding:0 8px}}

/* Deploy solutions and models: a sticky captioned photograph beside the copy */
.sol-media{position:sticky;top:110px}.sol-media .media-library{margin:0}.sol-media .media-library img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--pt-radius)}.split .prose+.usecase{margin-top:clamp(28px,3vw,40px)}
.sol-media [data-media-id="37dbdfeffcb5"] img{object-position:50% 82%}@media(max-width:900px){.sol-media{position:static}.sol-media .media-library img{aspect-ratio:4/3}}

/* Letterboxed sources: a quiet scale hides the black edges baked into a few stills (see TRIM in src/patterns.mjs). */
img.trim,.media-library:is([data-media-id="2cd723d77089"],[data-media-id="0de335aabc22"],[data-media-id="db613cf8cb19"],[data-media-id="94bef032802a"]) img{scale:1.075}.media-library:is([data-media-id="2cd723d77089"],[data-media-id="0de335aabc22"],[data-media-id="db613cf8cb19"],[data-media-id="94bef032802a"]){overflow:hidden}

/* Scene Stage on phones: the current scene named once, five equal segments, an outlined pause control (no sideways strip) */
.pt-stage-now{display:none}
@media(max-width:700px){.pt-stage-bar{flex-wrap:wrap;gap:4px 16px}.pt-stage-now{display:block;flex:0 0 100%;margin:0;font:400 11px/1.3 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}.pt-stage-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;overflow:visible;-webkit-mask-image:none;mask-image:none}.pt-stage-tabs button{justify-content:center;gap:0}.pt-stage-tabs button span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.pt-stage-toggle{width:44px;height:44px;border-color:var(--ink);border-radius:50%;background:transparent;backdrop-filter:none}.pt-stage-toggle .pt-play-pause{border-color:var(--ink)}.pt-stage-toggle[aria-pressed=true] .pt-play-pause{border-color:transparent;border-left-color:var(--ink);margin-left:17px}.pt-stage-toggle:focus-visible{outline-color:var(--forest)}}
/* Join Indaba: the two kinds of joining as two contrasting cards, one primary action each */
.join-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.join-card{display:flex;flex-direction:column;min-height:clamp(320px,30vw,420px);padding:clamp(28px,3.4vw,52px);border-radius:clamp(16px,2vw,28px);border:1px solid var(--rule-strong);background:var(--paper-light)}
.join-card-k{margin:0 0 auto;padding-bottom:40px;font:400 11px/1.3 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute)}
.join-card h3{margin:0;font:300 clamp(32px,3.2vw,50px)/1.02 var(--font-display);letter-spacing:-.015em;text-wrap:balance}.join-card p{max-width:44ch;margin:16px 0 0;line-height:1.55;color:var(--ink-soft)}
.join-card-go{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:28px!important}
.join-card--learning{border-color:var(--forest);background:var(--forest);color:var(--on-dark)}.join-card--learning .join-card-k{color:var(--on-dark-mute)}.join-card--learning p{color:var(--on-dark-soft)}
.join-card--learning .btn--primary{background:var(--paper-light);border-color:var(--paper-light);color:var(--ink)}.join-card--learning .arrow-link{color:var(--on-dark);border-color:rgba(247,247,242,.45)}.join-card--learning :is(a):focus-visible{outline-color:var(--on-dark)}
@media(max-width:800px){.join-two{grid-template-columns:1fr}.join-card{min-height:0}.join-card-k{padding-bottom:24px}}

/* 13-about.css */
/* About and Team: the ambition statement (content/canon.mjs). */
.ambition{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:32px clamp(40px,6vw,112px);align-items:end}.ambition-line{margin:0;font:400 clamp(30px,3.4vw,52px)/1.12 var(--font-display);color:var(--on-dark);text-wrap:balance}.ambition-copy p{margin:0 0 18px;max-width:44ch;font-size:16px;line-height:1.65;color:var(--on-dark-soft)}.ambition-copy .ambition-note{margin:0;padding-top:16px;border-top:1px solid var(--rule-dark);font:400 11px/1.6 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--on-dark-mute)}
@media(max-width:800px){.ambition{grid-template-columns:1fr}}

/* 14-signature.css */
/* Indaba signature components (src/signature.mjs): Contents, The Window, The Human Circle, The Living Ecosystem, The
   Learning Collection, The Facilitator Multiplier, The Evidence Story, The Expansion Journey, The Institutional Invitation.
   Same tokens as the rest of the site; motion only after reveal (.pt-js … .is-in) and never for reduced motion. */
.sec{--sig-bg:var(--paper)}.sec--light{--sig-bg:var(--paper-light)}.sec--deep{--sig-bg:var(--paper-deep)}.sec--atelier,.theme-atelier .sec--paper{--sig-bg:var(--ink-2)}
.sig-source{margin:12px 0 0;font:400 11px/1.55 var(--font-mono);letter-spacing:.04em;color:var(--ink-mute)}.sig-source span{margin-right:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.sig-tag{align-self:flex-start;margin:0;padding:5px 11px;border:1px dashed var(--mineral);border-radius:999px;font:400 10px/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}

/* Hero signature line and Contents */
.home-hero-signature{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 0;margin:clamp(24px,3vw,36px) 0 0;font:400 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}.home-hero-signature span+span::before{content:"";display:inline-block;width:4px;height:4px;margin:0 18px;border-radius:50%;background:var(--mineral);vertical-align:middle}
.sig-contents{border-block:1px solid var(--rule);background:var(--paper)}.sig-contents .wrap{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:stretch;gap:clamp(16px,3vw,40px)}.sig-contents-title{align-self:center;margin:0;font:400 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}
.sig-contents ol{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));list-style:none;margin:0;padding:0}.sig-contents a{display:flex;flex-direction:column;gap:6px;height:100%;padding:18px 14px;border-left:1px solid var(--rule);color:var(--ink-soft);font-size:14px;line-height:1.3;text-decoration:none;transition:color .3s,background .3s}.sig-contents a:hover{background:var(--paper-light)}.sig-contents a span{font:italic 400 17px/1 var(--font-display);color:var(--mineral)}.sig-contents a:hover{color:var(--ink)}.sig-contents a:focus-visible{outline:2px solid var(--forest);outline-offset:-4px}

/* The Window */
.sig-window-frame{position:relative;margin:0;aspect-ratio:21/9;overflow:hidden;border-radius:clamp(16px,2vw,28px);background:var(--ink);isolation:isolate}.sig-window-frame img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 2.6s var(--pt-ease)}.pt-js .sig-window-frame img{transform:scale(1.05)}.pt-js .sig-window-frame.is-in img{transform:none}
.sig-window-frame::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(25,24,24,0) 30%,rgba(25,24,24,.74))}.sig-window-frame figcaption{position:absolute;inset:auto 0 0;z-index:2;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:clamp(24px,4vw,64px);color:var(--on-dark)}
.sig-window-statement{margin:0;max-width:21ch;font:400 clamp(30px,4.1vw,62px)/1.04 var(--font-display);letter-spacing:-.01em;text-wrap:balance}.sig-window-cap{flex:none;max-width:26ch;font:400 10px/1.5 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;text-align:right;color:var(--on-dark-soft)}.sig-window-frame .pt-concept{top:16px;bottom:auto}
.sig-window-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,7vw,120px);align-items:start;margin-top:clamp(48px,6vw,96px)}@media(min-width:901px){.sig-window-copy{position:sticky;top:calc(var(--header-h) + 48px)}}.sig-window-copy p{margin:0 0 1em;max-width:40ch;font-size:var(--fs-lede);line-height:1.55;color:var(--ink-soft)}.sig-window-copy .sig-window-turn{font:italic 400 clamp(24px,2.2vw,32px)/1.25 var(--font-display);color:var(--ink)}
.sig-lifeline{margin:clamp(32px,4vw,56px) 0 0}.sig-lifeline svg{display:block;width:100%;height:auto}.sig-lifeline rect{fill:var(--rule-strong)}.sig-lifeline rect.is-early{fill:var(--forest)}.pt-js .sig-lifeline rect{transform:scaleY(0);transform-box:fill-box;transform-origin:50% 100%;transition:transform .7s var(--pt-ease) calc(var(--i,0)*14ms)}.pt-js .sig-lifeline.is-in rect{transform:none}
.sig-lifeline-scale{position:relative;height:18px;margin-top:10px;font:400 10px/1.6 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}.sig-lifeline-scale span{position:absolute;top:0;left:0}.sig-lifeline-scale span:last-child{left:auto;right:0}.sig-lifeline figcaption{margin-top:14px;font-size:13px;line-height:1.5;color:var(--ink-mute)}
.sig-ledger{margin:0;border-top:1px solid var(--rule-strong)}.sig-ledger>div{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:24px;padding:clamp(22px,2.6vw,34px) 0;border-bottom:1px solid var(--rule)}.sig-ledger dt{font:300 clamp(48px,5.2vw,84px)/.9 var(--font-display);letter-spacing:-.02em;color:var(--ink)}.sig-ledger dt span{display:block;margin-top:.12em;font:italic 400 .36em/1.1 var(--font-display);letter-spacing:0;color:var(--ink-soft)}.sig-ledger dd{margin:0}.sig-ledger dd>p:first-child{margin:0;font-size:17px;line-height:1.55;color:var(--ink-soft)}

/* The Human Circle */
.sig-circle{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,6vw,96px);align-items:center}.sig-circle-figure{position:relative;width:100%;max-width:640px;margin:0;justify-self:center}.sig-circle-figure svg{display:block;width:100%;height:auto;overflow:visible}
.sig-ring{cursor:pointer}.sig-ring-hit{fill:none;stroke:transparent;stroke-width:34;pointer-events:stroke}.sig-ring-line{fill:none;stroke:var(--rule-strong);stroke-width:1.2;transition:stroke .5s,stroke-width .5s}.sig-arc{fill:none;stroke:none}
.sig-person{fill:var(--sig-bg,var(--paper-light));stroke:var(--ink-mute);stroke-width:1.4;transition:fill .5s,stroke .5s}.sig-thread{stroke:var(--forest);stroke-width:1;opacity:0;transition:opacity .6s}
.sig-ring-label,.sig-ring-halo{font:400 12px var(--font-mono);letter-spacing:.16em;text-transform:uppercase}.sig-ring-label{fill:var(--ink-mute);transition:fill .4s}.sig-ring-halo{fill:none;stroke:var(--sig-bg,var(--paper-light));stroke-width:10px;stroke-linejoin:round}
.sig-ring:hover .sig-ring-line{stroke:var(--ink-soft)}.sig-ring.is-active .sig-ring-line{stroke:var(--forest);stroke-width:2.2}.sig-ring.is-active .sig-person{fill:var(--forest);stroke:var(--forest)}.sig-ring.is-active .sig-thread{opacity:.32}.sig-ring.is-active .sig-ring-label{fill:var(--ink)}
.pt-js .sig-circle-figure .sig-ring-line{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.8s var(--pt-ease),stroke .5s,stroke-width .5s}.pt-js .sig-circle-figure.is-in .sig-ring-line{stroke-dashoffset:0}.pt-js .sig-circle-figure .sig-ring:nth-child(4) .sig-ring-line{transition-delay:.15s}.pt-js .sig-circle-figure .sig-ring:nth-child(3) .sig-ring-line{transition-delay:.3s}.pt-js .sig-circle-figure .sig-ring:nth-child(2) .sig-ring-line{transition-delay:.45s}.pt-js .sig-circle-figure .sig-ring:nth-child(1) .sig-ring-line{transition-delay:.6s}
.pt-js .sig-circle-figure .sig-person,.pt-js .sig-circle-figure :is(.sig-ring-label,.sig-ring-halo){opacity:0;transition:opacity .8s .9s,fill .5s,stroke .5s}.pt-js .sig-circle-figure.is-in .sig-person,.pt-js .sig-circle-figure.is-in :is(.sig-ring-label,.sig-ring-halo){opacity:1}
.sig-circle-child{position:absolute;left:50%;top:50%;width:26.9%;aspect-ratio:1;overflow:hidden;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 6px var(--sig-bg,var(--paper-light)),0 0 0 7px var(--rule-strong)}.sig-circle-child img{display:block;width:100%;height:100%;object-fit:cover}.sig-circle-child span{position:absolute;left:50%;bottom:11%;transform:translateX(-50%);padding:3px 8px;border-radius:999px;background:rgba(25,24,24,.5);font:400 9px/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;color:var(--on-dark)}
.sig-circle-tabs{display:flex;flex-direction:column;margin-bottom:32px;border-top:1px solid var(--rule-strong)}.sig-circle-tabs button{display:flex;align-items:baseline;gap:14px;width:100%;min-height:48px;padding:12px 0;border:0;border-bottom:1px solid var(--rule);background:none;text-align:left;font:400 clamp(20px,1.7vw,24px)/1.2 var(--font-display);color:var(--ink-mute);cursor:pointer;transition:color .3s,padding .4s var(--pt-ease)}
.sig-circle-tabs button span{font:400 11px var(--font-mono);letter-spacing:.14em;color:var(--ink-mute)}.sig-circle-tabs button:hover{color:var(--ink-soft)}.sig-circle-tabs button[aria-selected="true"]{padding-left:12px;color:var(--ink)}.sig-circle-tabs button[aria-selected="true"] span{color:var(--forest)}.sig-circle-tabs button:focus-visible,.sig-eco-tabs button:focus-visible{outline:2px solid var(--forest);outline-offset:2px}
.sig-circle-kicker,.sig-eco-kicker{margin:0;font:400 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}.sig-circle-panel h3{margin:8px 0 14px;font:400 clamp(28px,2.6vw,38px)/1.08 var(--font-display)}.sig-circle-gives{margin:0;font-size:17px;line-height:1.55;color:var(--ink-soft)}
.sig-circle-helps{margin:20px 0 24px;padding-left:16px;border-left:2px solid var(--forest);font:400 clamp(19px,1.6vw,22px)/1.4 var(--font-display);color:var(--ink)}.sig-circle-helps span{display:block;margin-bottom:6px;font:400 10px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}
.sig-circle-panel+.sig-circle-panel,.sig-eco-panel+.sig-eco-panel{margin-top:48px}.sig-circle[data-active] .sig-circle-panel+.sig-circle-panel,.sig-eco[data-active] .sig-eco-panel+.sig-eco-panel{margin-top:0}.sig-circle[data-active] .sig-circle-panel:not([hidden]),.sig-eco[data-active] .sig-eco-panel:not([hidden]){animation:pt-fade .6s var(--pt-ease)}
.home-pull{max-width:42ch;margin:clamp(64px,8vw,128px) auto 0;text-align:center}.home-pull p{margin:0;font:italic 300 clamp(26px,2.8vw,40px)/1.3 var(--font-display);color:var(--ink);text-wrap:balance}.home-pull footer{margin-top:18px;font:400 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}

/* The Living Ecosystem */
.sig-eco{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,6vw,96px);align-items:center}.sig-eco-figure{margin:0}.sig-eco-figure svg{display:block;width:100%;max-width:720px;height:auto;margin-inline:auto;overflow:visible}
.sig-spoke{stroke:var(--rule-strong);stroke-width:1;stroke-dasharray:3 6}.sig-edge-line{fill:none;stroke:var(--ink-mute);stroke-width:1.2}.sig-edge-flow{fill:none;stroke:var(--forest);stroke-width:2.6;stroke-linecap:round;stroke-dasharray:1 13;opacity:0;transition:opacity .5s}
.sig-edge text{font:400 12px var(--font-mono);letter-spacing:.14em;fill:var(--ink-mute);transition:fill .4s}
.sig-eco[data-active="0"] .sig-edge:is([data-a="0"],[data-b="0"]) .sig-edge-flow,.sig-eco[data-active="1"] .sig-edge:is([data-a="1"],[data-b="1"]) .sig-edge-flow,.sig-eco[data-active="2"] .sig-edge:is([data-a="2"],[data-b="2"]) .sig-edge-flow{opacity:1;animation:sig-flow 1.4s linear infinite}
.sig-eco[data-active="0"] .sig-edge:is([data-a="0"],[data-b="0"]) text,.sig-eco[data-active="1"] .sig-edge:is([data-a="1"],[data-b="1"]) text,.sig-eco[data-active="2"] .sig-edge:is([data-a="2"],[data-b="2"]) text{fill:var(--ink)}
@keyframes sig-flow{to{stroke-dashoffset:-28}}
.sig-node{cursor:pointer}.sig-node circle{fill:var(--paper-light);stroke:var(--ink);stroke-width:1.2;transition:fill .5s,stroke .5s}.sig-node:hover circle{fill:var(--paper-deep)}.sig-node-name{font:400 34px var(--font-display);fill:var(--ink);transition:fill .4s}.sig-node-forces{font:400 11.5px var(--font-mono);letter-spacing:.14em;fill:var(--ink-mute);transition:fill .4s}
.sig-node.is-active circle{fill:var(--forest);stroke:var(--forest)}.sig-node.is-active .sig-node-name{fill:var(--on-dark)}.sig-node.is-active .sig-node-forces{fill:var(--on-dark-soft)}.sig-eco-core circle{fill:var(--ink)}.sig-eco-core text{font:italic 400 16px var(--font-display);fill:var(--on-dark)}
.pt-js .sig-eco-figure .sig-node,.pt-js .sig-eco-figure .sig-edge{opacity:0;transition:opacity .9s var(--pt-ease)}.pt-js .sig-eco-figure.is-in .sig-node,.pt-js .sig-eco-figure.is-in .sig-edge{opacity:1}.pt-js .sig-eco-figure .sig-node:nth-of-type(2){transition-delay:.15s}.pt-js .sig-eco-figure .sig-node:nth-of-type(3){transition-delay:.3s}.pt-js .sig-eco-figure .sig-edge{transition-delay:.5s}
.sig-eco-tabs{display:flex;gap:4px;width:max-content;max-width:100%;margin-bottom:28px;padding:4px;border:1px solid var(--rule-strong);border-radius:999px}.sig-eco-tabs button{min-height:44px;padding:0 20px;border:0;border-radius:999px;background:none;font:400 15px var(--font-body);color:var(--ink-soft);cursor:pointer;transition:background .3s,color .3s}.sig-eco-tabs button:hover{color:var(--ink)}.sig-eco-tabs button[aria-selected="true"]{background:var(--ink);color:var(--on-dark)}
.sig-eco-panel h3{margin:8px 0 6px;font:400 clamp(32px,3vw,44px)/1.05 var(--font-display)}.sig-eco-verb{margin:0 0 18px;font:italic 400 clamp(22px,2vw,28px)/1.25 var(--font-display);color:var(--forest)}.sig-eco-role{margin:0 0 24px;font-size:17px;line-height:1.55;color:var(--ink-soft)}
.sig-eco-gives-title{margin:0 0 8px;font:400 10px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}.sig-eco-gives{list-style:none;margin:0 0 26px;padding:0;border-top:1px solid var(--rule)}.sig-eco-gives li{padding:11px 0 11px 22px;border-bottom:1px solid var(--rule);font-size:15px;line-height:1.45;color:var(--ink);position:relative}.sig-eco-gives li::before{content:"";position:absolute;left:2px;top:1.15em;width:8px;height:1px;background:var(--forest)}
.sig-eco-links{display:flex;flex-wrap:wrap;gap:12px 24px;margin:0}.sig-eco-note{margin:32px 0 0;max-width:52ch;font-size:13px;line-height:1.55;color:var(--ink-mute)}

/* The Learning Collection */
.sig-collection{display:grid;gap:clamp(56px,7vw,104px)}.sig-shelf-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;margin-bottom:clamp(24px,3vw,40px);padding-bottom:16px;border-bottom:1px solid var(--rule-strong)}.sig-shelf-label{display:flex;align-items:center;gap:12px;margin:0;font:400 clamp(24px,2.2vw,32px)/1.1 var(--font-display)}.sig-shelf-head p{margin:0;font-size:15px;color:var(--ink-mute)}
.sig-stage{display:inline-block;flex:none;width:10px;height:10px;border-radius:50%;border:1.5px solid var(--forest);background:var(--forest)}.sig-stage--built{background:linear-gradient(90deg,var(--forest) 50%,transparent 50%)}
.sig-shelf-items{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3vw,48px)}.sig-plate{display:flex;flex-direction:column}.sig-plate-media{position:relative;aspect-ratio:5/4;overflow:hidden;border-radius:var(--pt-radius);background:var(--ink)}.sig-plate-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--pt-ease)}.sig-plate:hover .sig-plate-media img{transform:scale(1.035)}
.sig-plate-no{position:absolute;top:16px;left:16px;padding:6px 10px;border-radius:999px;background:rgba(247,247,242,.9);font:400 10px/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.sig-plate-body{padding-top:clamp(22px,2.4vw,32px)}.sig-plate-line{margin:0 0 10px;font:400 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}.sig-plate h3{margin:0 0 14px;font:400 clamp(36px,3.6vw,56px)/1 var(--font-display);letter-spacing:-.01em}.sig-plate-prop{margin:0 0 22px;max-width:40ch;font:400 clamp(19px,1.5vw,22px)/1.45 var(--font-display);color:var(--ink)}
.sig-plate-meta{margin:0 0 22px;border-top:1px solid var(--rule)}.sig-plate-meta div{display:grid;grid-template-columns:88px minmax(0,1fr);gap:16px;padding:12px 0;border-bottom:1px solid var(--rule)}.sig-plate-meta dt{padding-top:4px;font:400 10px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}.sig-plate-meta dd{margin:0;font-size:15px;line-height:1.5;color:var(--ink-soft)}.sig-plate-meta dd .sig-stage{margin-right:10px;transform:translateY(1px)}
.sig-plate-links{display:flex;flex-wrap:wrap;gap:12px 24px;margin:0}.sig-plate-fine{margin:16px 0 0;font-size:13px;line-height:1.5;color:var(--ink-mute)}
.sig-also{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:16px 24px;align-items:start;padding-top:24px;border-top:1px solid var(--rule-strong)}.sig-also-title{margin:6px 0 0;font:400 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}.sig-also ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:0;padding:0}
.sig-also a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;height:100%;padding:4px 20px;border-left:1px solid var(--rule);color:var(--ink);text-decoration:none}.sig-also-name{font:400 22px/1.15 var(--font-display)}.sig-also-note{grid-column:1;font-size:13px;color:var(--ink-mute)}.sig-also a>span:last-child{grid-column:2;grid-row:1/3;align-self:center;transition:transform .3s}.sig-also a:hover>span:last-child{transform:translateX(4px)}.sig-also a:focus-visible{outline:2px solid var(--forest);outline-offset:2px}

/* The Facilitator Multiplier */
.sig-badge{display:inline-flex;align-items:center;gap:10px;margin:0 0 clamp(28px,3vw,44px);padding:7px 14px;border:1px dashed var(--ink-mute);border-radius:999px;font:400 11px/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.sig-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--mineral)}
.sig-engine-flow{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1fr) minmax(0,1.45fr) minmax(0,1.1fr);list-style:none;margin:0;padding:0;border-block:1px solid var(--rule-strong)}.sig-station{position:relative;display:flex;flex-direction:column;padding:clamp(24px,2.6vw,36px) clamp(18px,2vw,32px);border-left:1px solid var(--rule)}.sig-station:first-child{padding-left:0;border-left:0}
.sig-station+.sig-station::before{content:"";position:absolute;left:-7px;top:50%;width:12px;height:12px;border-top:1px solid var(--ink-mute);border-right:1px solid var(--ink-mute);background:var(--sig-bg,var(--paper));transform:translateY(-50%) rotate(45deg)}
.sig-station-dots{display:flex;align-items:flex-end;height:clamp(110px,10vw,150px);margin-bottom:20px}.sig-station-dots svg{display:block;width:auto;max-width:100%;height:100%}.sig-station-dots--one svg{height:60px}.sig-dot{fill:var(--forest)}.sig-station:nth-child(3) .sig-dot{fill:var(--sage)}.sig-one-ring{fill:none;stroke:var(--forest);stroke-width:1.2;stroke-dasharray:2 4}
.pt-js .sig-station .sig-dot{opacity:0;transition:opacity .35s calc(var(--d,0)*5ms)}.pt-js .sig-station.is-in .sig-dot{opacity:1}
.sig-station-fig{margin:0;font:300 clamp(48px,5vw,80px)/.9 var(--font-display);letter-spacing:-.02em}.sig-station-label{margin:12px 0 0;max-width:24ch;font-size:15px;line-height:1.45;color:var(--ink-soft)}
.sig-station--projection{justify-content:flex-end;background:repeating-linear-gradient(135deg,transparent 0 10px,rgba(155,141,105,.09) 10px 11px)}.sig-station--projection .sig-tag{margin-bottom:auto}.sig-station--projection .sig-station-fig{margin-top:24px;font-size:clamp(32px,3vw,50px)}.sig-station:last-child{padding-right:clamp(18px,2vw,28px)}
.sig-engine-years{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,80px);align-items:center;margin-top:clamp(48px,6vw,88px)}.sig-cohorts-figure{margin:0}.sig-cohorts{list-style:none;margin:0;padding:0}.sig-cohort{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--rule)}.sig-cohort span{font:400 10px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}.sig-cohort svg{display:block;width:100%;height:auto}.sig-cohort circle{fill:var(--forest)}.sig-cohort:last-child circle{fill:var(--sage)}.sig-cohorts-figure figcaption{margin-top:12px;font-size:13px;color:var(--ink-mute)}
.pt-js .sig-engine-years .sig-cohort{opacity:0;transform:translateX(-14px);transition:opacity .7s var(--pt-ease) calc(var(--y,0)*.3s),transform .7s var(--pt-ease) calc(var(--y,0)*.3s)}.pt-js .sig-engine-years.is-in .sig-cohort{opacity:1;transform:none}
.sig-engine-copy h3{margin:0 0 14px;font:400 clamp(30px,2.8vw,42px)/1.05 var(--font-display)}.sig-engine-copy>p{margin:0;font-size:17px;line-height:1.55;color:var(--ink-soft)}.sig-projection{display:flex;flex-direction:column;margin-top:24px;padding:20px 22px;border:1px dashed var(--ink-mute);border-radius:12px}.sig-projection-fig{margin:14px 0 6px;font:300 clamp(30px,2.8vw,44px)/1 var(--font-display)}.sig-projection p:last-child{margin:0;font-size:15px;color:var(--ink-soft)}
.sig-engine-today{margin:clamp(32px,4vw,48px) 0 0;font:italic 400 clamp(20px,1.8vw,26px)/1.3 var(--font-display);color:var(--ink)}.sig-engine .sig-source{max-width:80ch}div.sig-engine-today{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px 32px;align-items:center;padding:20px 0;border-block:1.5px solid var(--forest)}.sig-engine-today-label{margin:0;font:400 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--forest)}div.sig-engine-today ul{display:flex;flex-wrap:wrap;gap:12px 40px;list-style:none;margin:0;padding:0;font:400 15px/1.4 var(--font-body);color:var(--ink-soft)}div.sig-engine-today li{display:flex;align-items:baseline;gap:12px}div.sig-engine-today li span{font:300 clamp(34px,3vw,44px)/1 var(--font-display);color:var(--ink)}
:is(.sec--atelier,.theme-atelier .sec--paper) div.sig-engine-today{border-color:var(--accent)}

/* The Evidence Story (on atelier) */
.sig-case-frame{position:relative;margin:0;aspect-ratio:21/9;overflow:hidden;border-radius:clamp(16px,2vw,28px);background:#000;isolation:isolate}.sig-case-frame video,.sig-case-frame img{display:block;width:100%;height:100%;object-fit:cover}.sig-case-frame::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(25,24,24,0) 12%,rgba(25,24,24,.35) 45%,rgba(25,24,24,.85))}
.sig-case-frame figcaption{position:absolute;left:0;right:72px;bottom:0;z-index:2;padding:clamp(24px,4vw,56px)}.sig-case-place{margin:0 0 12px;font:400 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-soft)}.sig-case-head{margin:0;max-width:22ch;font:400 clamp(30px,3.6vw,56px)/1.05 var(--font-display);color:var(--on-dark);text-wrap:balance}.sig-case-cap{display:block;margin-top:14px;font:400 10px/1.4 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark-mute)}
.sig-case-indicators{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:clamp(40px,5vw,72px) 0 0;padding:0;border-top:1px solid var(--rule-dark)}.sig-case-indicators li{padding:28px clamp(16px,2vw,28px) 0;border-left:1px solid var(--rule-dark)}.sig-case-indicators li:first-child{padding-left:0;border-left:0}
.sig-ind-fig{margin:0 0 16px;font:300 clamp(52px,5vw,84px)/.9 var(--font-display);letter-spacing:-.02em;color:var(--on-dark)}.sig-ind-fig span{margin-left:10px;font:400 11px var(--font-mono);letter-spacing:.14em;text-transform:uppercase;vertical-align:middle;color:var(--on-dark-soft)}.sig-ind-label{margin:0 0 16px;font-size:15px;line-height:1.5;color:var(--on-dark-soft)}
.sig-ind-limit{margin:0;font-size:14px;line-height:1.5;color:var(--on-dark)}.sig-ind-limit span{display:block;margin-bottom:4px;font:400 10px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.sec--atelier .sig-source{color:var(--on-dark-soft)}.sec--atelier .sig-source span{color:var(--accent)}
.sig-case-voices{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,80px);align-items:end;margin-top:clamp(56px,7vw,104px)}.sig-case-voices blockquote{margin:0}.sig-case-quote p{margin:0;font:300 clamp(24px,2.5vw,36px)/1.32 var(--font-display);color:var(--on-dark)}.sig-case-voices footer{margin-top:20px;font:400 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-soft)}
.sig-case-voice{padding-left:24px;border-left:1px solid var(--accent)}.sig-case-voice p{margin:0;font:italic 400 clamp(20px,1.7vw,24px)/1.4 var(--font-display);color:var(--on-dark-soft)}
.sig-case-foot{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:16px 32px;margin-top:clamp(48px,6vw,80px);padding-top:24px;border-top:1px solid var(--rule-dark)}.sig-case-next{margin:0;max-width:56ch;font-size:15px;line-height:1.5;color:var(--on-dark-soft)}.sig-case-links{display:flex;flex-wrap:wrap;gap:12px 28px;margin:0}.sec--atelier .pt-link{color:var(--on-dark)}
.home-interlude{padding:clamp(32px,4vw,56px) 0;background:var(--paper)}

/* The Expansion Journey */
.sig-journey-legend{display:flex;flex-wrap:wrap;gap:12px 28px;margin:0 0 clamp(28px,3vw,44px);font:400 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.sig-key::before{content:"";display:inline-block;width:28px;margin-right:10px;border-top:1.5px solid var(--forest);vertical-align:middle}.sig-key--proposed::before{border-top:1.5px dashed var(--ink-mute)}
.sig-journey-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;margin:0;padding:0}.sig-step{position:relative;padding-right:clamp(16px,2vw,28px)}.sig-step-glyph{position:relative;display:flex;align-items:center;height:clamp(120px,11vw,160px);margin-bottom:24px}
.sig-step-glyph::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1.5px solid var(--forest)}.sig-step--proposed .sig-step-glyph::before{border-top-style:dashed;border-top-color:var(--ink-mute)}.sig-step:last-child .sig-step-glyph::before{right:auto;width:50%}
.sig-step-glyph svg{position:relative;z-index:1;height:100%;width:auto;border-radius:50%;background:var(--sig-bg,var(--paper))}
.sig-step--done+.sig-step--proposed .sig-step-glyph::after{content:"Today";position:absolute;z-index:2;left:0;top:4px;transform:translateX(-50%);padding:3px 9px;border-radius:999px;background:var(--ink);font:400 9px/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark)}
.sig-draw{fill:none;stroke:var(--forest);stroke-width:1.4}.sig-draw--faint{opacity:.45}.sig-draw--dash{stroke-dasharray:.02 .014}.sig-step--proposed .sig-draw{stroke:var(--ink-mute);stroke-dasharray:.022 .016}.sig-pt{fill:var(--forest)}.sig-pt--ring{fill:var(--sig-bg,var(--paper));stroke:var(--forest);stroke-width:1.6}.sig-step--proposed .sig-pt{fill:var(--ink-mute)}.sig-step--proposed .sig-pt--ring{fill:var(--sig-bg,var(--paper));stroke:var(--ink-mute)}
.pt-js .sig-step--done .sig-draw{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.8s var(--pt-ease) .2s}.pt-js .sig-step--done.is-in .sig-draw{stroke-dashoffset:0}.pt-js .sig-step .sig-pt{opacity:0;transition:opacity .8s .6s}.pt-js .sig-step.is-in .sig-pt{opacity:1}
.sig-step-n{margin:0 0 10px;font:400 10.5px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}.sig-step--done .sig-step-n{color:var(--forest)}.sig-step h3{margin:0 0 10px;font:400 clamp(24px,2vw,30px)/1.1 var(--font-display)}.sig-step-copy>p:not(.sig-step-n):not(.sig-step-ev){margin:0;font-size:15px;line-height:1.5;color:var(--ink-soft)}
.sig-step-ev{margin:14px 0 0;padding-top:10px;border-top:1px solid var(--rule);font-size:13px;line-height:1.45;color:var(--ink)}

/* The Institutional Invitation */
.sig-invite{position:relative;isolation:isolate;overflow:hidden;padding:clamp(96px,12vw,200px) 0;background:var(--ink);color:var(--on-dark)}.sig-invite-media{position:absolute;inset:0;z-index:-1}.sig-invite-media img{display:block;width:100%;height:100%;object-fit:cover;opacity:.6}.sig-invite-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(25,24,24,.9) 0%,rgba(25,24,24,.62) 55%,rgba(25,24,24,.8) 100%)}
.sig-invite-inner{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(40px,6vw,112px);align-items:end}.sig-invite .folio{color:var(--on-dark-soft)}.sig-invite .folio__num{color:var(--on-dark)}.sig-invite h2{margin:22px 0 24px;max-width:13ch;font:400 clamp(44px,5.6vw,88px)/.98 var(--font-display);letter-spacing:-.015em;text-wrap:balance}
.sig-invite-copy>p:not(.folio):not(.btn-row){margin:0 0 32px;max-width:46ch;font-size:var(--fs-lede);line-height:1.55;color:var(--on-dark-soft)}.sig-invite .btn-row{margin:0}.sig-invite .btn--primary{background:var(--paper-light);border-color:var(--paper-light);color:var(--ink)}.sig-invite .btn--primary:hover{background:var(--paper)}.sig-invite .btn:focus-visible{outline-color:var(--on-dark)}
.sig-invite-or{margin:0 0 12px;font:400 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-soft)}.sig-invite-routes ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule-dark)}.sig-invite-routes a{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:2px 12px;padding:16px 0;border-bottom:1px solid var(--rule-dark);color:var(--on-dark);text-decoration:none;transition:padding .4s var(--pt-ease),background .3s}
.sig-route-n{grid-row:1/3;padding-top:6px;font:400 10px var(--font-mono);letter-spacing:.14em;color:var(--on-dark-mute)}.sig-route-t{font:400 22px/1.2 var(--font-display)}.sig-route-d{grid-column:2;font-size:13px;color:var(--on-dark-soft)}.sig-route-a{grid-column:3;grid-row:1/3;align-self:center;transition:transform .3s}.sig-invite-routes a:hover{padding-left:8px}.sig-invite-routes a:hover .sig-route-a{transform:translateX(4px)}.sig-invite-routes a:focus-visible{outline:2px solid var(--on-dark);outline-offset:2px}

/* On dark sections (atelier pages such as Deploy) */
:is(.sec--atelier,.theme-atelier .sec--paper) :is(.sig-journey-legend,.sig-step-n,.sig-step-copy>p:not(.sig-step-n):not(.sig-step-ev),.sig-station-label,.sig-engine-copy>p,.sig-cohorts-figure figcaption,.sig-badge){color:var(--on-dark-soft)}:is(.sec--atelier,.theme-atelier .sec--paper) :is(.sig-step h3,.sig-step-ev,.sig-station-fig,.sig-engine-today,.sig-engine-copy h3,.sig-projection-fig){color:var(--on-dark)}
:is(.sec--atelier,.theme-atelier .sec--paper) .sig-step-ev{border-top-color:var(--rule-dark)}:is(.sec--atelier,.theme-atelier .sec--paper) .sig-draw{stroke:var(--accent)}:is(.sec--atelier,.theme-atelier .sec--paper) :is(.sig-key::before,.sig-step-glyph::before){border-top-color:var(--accent)}:is(.sec--atelier,.theme-atelier .sec--paper) .sig-step--done .sig-step-n{color:var(--accent)}
:is(.sec--atelier,.theme-atelier .sec--paper) .sig-step--proposed .sig-draw{stroke:var(--on-dark-mute)}:is(.sec--atelier,.theme-atelier .sec--paper) :is(.sig-step--proposed .sig-step-glyph::before,.sig-key--proposed::before){border-top-color:var(--on-dark-mute)}
:is(.sec--atelier,.theme-atelier .sec--paper) .sig-pt{fill:var(--accent)}:is(.sec--atelier,.theme-atelier .sec--paper) .sig-pt--ring{stroke:var(--accent)}:is(.sec--atelier,.theme-atelier .sec--paper) .sig-step--proposed .sig-pt{fill:var(--on-dark-mute)}:is(.sec--atelier,.theme-atelier .sec--paper) .sig-step--proposed .sig-pt--ring{stroke:var(--on-dark-mute)}
:is(.sec--atelier,.theme-atelier .sec--paper) .sig-step--done+.sig-step--proposed .sig-step-glyph::after{background:var(--paper-light);color:var(--ink)}
@media(max-width:1000px){:is(.sec--atelier,.theme-atelier .sec--paper) .sig-step::before{border-left-color:var(--accent)}:is(.sec--atelier,.theme-atelier .sec--paper) .sig-step--proposed::before{border-left-color:var(--on-dark-mute)}}
@media(prefers-reduced-motion:reduce){.sig-window-frame img,.sig-lifeline rect,.sig-ring-line,.sig-person,.sig-ring-label,.sig-thread,.sig-node,.sig-edge,.sig-dot,.sig-cohort,.sig-draw,.sig-pt,.sig-plate-media img,.sig-invite-routes a,.sig-circle-tabs button{transition:none!important}.pt-js .sig-window-frame img,.pt-js .sig-lifeline rect,.pt-js .sig-engine-years .sig-cohort{transform:none}.pt-js .sig-circle-figure .sig-ring-line,.pt-js .sig-step--done .sig-draw{stroke-dashoffset:0}.pt-js .sig-circle-figure .sig-person,.pt-js .sig-circle-figure :is(.sig-ring-label,.sig-ring-halo),.pt-js .sig-eco-figure .sig-node,.pt-js .sig-eco-figure .sig-edge,.pt-js .sig-station .sig-dot,.pt-js .sig-engine-years .sig-cohort,.pt-js .sig-step .sig-pt{opacity:1}.sig-edge-flow{animation:none!important}.sig-circle[data-active] .sig-circle-panel:not([hidden]),.sig-eco[data-active] .sig-eco-panel:not([hidden]){animation:none}}
@media(max-width:1100px){.sig-contents .wrap{display:block;padding-top:14px}.sig-contents ol{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(var(--gutter)*-1);padding-inline:var(--gutter);-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent)}.sig-contents ol::-webkit-scrollbar{display:none}.sig-contents a{flex-direction:row;align-items:baseline;white-space:nowrap;padding:14px 16px}.sig-contents li:first-child a{padding-left:0;border-left:0}}
@media(max-width:1000px){.sig-engine-flow{grid-template-columns:1fr 1fr}.sig-station:nth-child(3){padding-left:0;border-left:0}.sig-station:nth-child(n+3){border-top:1px solid var(--rule)}.sig-station:nth-child(3)::before{display:none}.sig-case-indicators{grid-template-columns:1fr 1fr}.sig-case-indicators li:nth-child(3){padding-left:0;border-left:0}.sig-case-indicators li:nth-child(n+3){margin-top:28px}
 .sig-journey-steps{grid-template-columns:1fr;gap:0}.sig-step{display:grid;grid-template-columns:96px minmax(0,1fr);gap:20px;padding:0 0 36px}.sig-step::before{content:"";position:absolute;left:48px;top:0;bottom:0;border-left:1.5px solid var(--forest)}.sig-step--proposed::before{border-left-style:dashed;border-left-color:var(--ink-mute)}.sig-step:last-child::before{bottom:auto;height:48px}.sig-step-glyph{height:96px;margin:0}.sig-step-glyph::before{display:none}.sig-step--done+.sig-step--proposed .sig-step-glyph::after{left:48px;top:-24px}}
@media(max-width:900px){.sig-window-grid,.sig-circle,.sig-eco,.sig-engine-years,.sig-case-voices,.sig-invite-inner{grid-template-columns:1fr}.sig-window-frame,.sig-case-frame{aspect-ratio:4/5}.sig-window-frame figcaption{flex-direction:column;align-items:flex-start}.sig-window-cap{text-align:left}.sig-case-frame figcaption{right:56px}
 .sig-circle-figure{max-width:520px}:is(.sig-ring-label,.sig-ring-halo){font-size:19px}.sig-ring-halo{stroke-width:12px}.sig-eco-figure svg{max-width:560px}.sig-edge text{font-size:19px}.sig-node-forces{font-size:15px}.sig-node-name{font-size:38px}.sig-eco-core text{font-size:20px}.sig-also{grid-template-columns:1fr}.sig-also ul{grid-template-columns:1fr}.sig-also a{padding:12px 0;border-left:0;border-bottom:1px solid var(--rule)}}
@media(max-width:800px){.sig-shelf-items{grid-template-columns:1fr;gap:56px}}
@media(max-width:600px){div.sig-engine-today{grid-template-columns:1fr}.sig-ledger>div{grid-template-columns:1fr;gap:10px}.sig-engine-flow{grid-template-columns:1fr}.sig-station{padding-left:0;padding-right:0;border-left:0}.sig-station+.sig-station{border-top:1px solid var(--rule)}.sig-station+.sig-station::before{left:50%;top:-7px;transform:translateX(-50%) rotate(135deg)}.sig-station:nth-child(3)::before{display:block}.sig-station-dots{height:auto;max-height:150px}.sig-station-dots svg{width:100%;height:auto;max-height:150px}.sig-station-dots--one svg{width:60px}
 .sig-case-indicators{grid-template-columns:1fr}.sig-case-indicators li{padding-left:0;border-left:0}.sig-case-indicators li+li{margin-top:28px}.home-hero-signature span+span::before{margin:0 10px}.sig-plate-meta div{grid-template-columns:72px minmax(0,1fr)}}
@media(max-width:600px){.home-hero>.wrap>.folio{font-size:10px;letter-spacing:.12em;text-align:center}.home-hero>.wrap>.folio::before{display:none}}

/* The Transformation Journey: one drawn line, four stations lighting in turn as it scrolls in (--p, experience.js) */
.sig-tj{margin:clamp(72px,9vw,144px) 0 0}
.sig-tj-steps{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(24px,3vw,56px);list-style:none;margin:0;padding:0}
.sig-tj-steps::before,.sig-tj-steps::after{content:"";position:absolute;left:52px;right:calc(25% - 24px);top:52px;border-top:1px solid var(--rule-strong)}
.sig-tj-steps::after{border-top:1.5px solid var(--forest);transform-origin:left;transform:scaleX(clamp(0,var(--p,1)*1.25 - .1,1))}
.sig-tj-step{--a:clamp(0,(var(--p,1)*1.15 - var(--i,0)*.25)*4,1);position:relative;opacity:calc(.3 + var(--a)*.7)}
.sig-tj-step--2{--i:1}.sig-tj-step--3{--i:2}.sig-tj-step--4{--i:3}
.sig-tj-mark{position:relative;z-index:1;display:block;width:104px;height:104px;margin:0 0 clamp(24px,2.4vw,36px);border-radius:50%;background:var(--sig-bg,var(--paper-light));transform:scale(calc(.82 + var(--a)*.18));transform-origin:52px 52px}
.sig-tj-ring{fill:none;stroke:var(--ink-mute);stroke-width:1;stroke-dasharray:2 4}
.sig-tj-room{fill:none;stroke:var(--mineral);stroke-width:1.2}
.sig-tj-tie{fill:none;stroke:var(--sage);stroke-width:1;stroke-dasharray:1 5}
.sig-tj-core,.sig-tj-pt{fill:var(--forest)}.sig-tj-child{fill:var(--mineral)}
.sig-tj-pt{opacity:var(--a)}
.sig-tj-n{display:flex;gap:12px;margin:0 0 12px;font:400 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.sig-tj-n span{color:var(--mineral)}
.sig-tj h3{margin:0 0 12px;font:400 clamp(24px,2.1vw,32px)/1.12 var(--font-display);letter-spacing:-.005em;text-wrap:balance}
.sig-tj-body{margin:0;max-width:34ch;font-size:15.5px;line-height:1.6;color:var(--ink-soft)}
.sig-tj figcaption{display:flex;align-items:center;gap:12px;margin:clamp(32px,4vw,56px) 0 0;font:400 11px/1.5 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute)}.sig-tj figcaption::before{content:"";width:28px;border-top:1px dashed var(--ink-mute)}
@media(max-width:1000px){.sig-tj-steps{grid-template-columns:1fr 1fr;row-gap:56px}.sig-tj-steps::before,.sig-tj-steps::after{display:none}}
@media(max-width:600px){.sig-tj-steps{grid-template-columns:1fr;row-gap:44px}.sig-tj-step{display:grid;grid-template-columns:72px minmax(0,1fr);column-gap:20px}.sig-tj-mark{grid-row:span 3;width:72px;height:72px;margin:0;transform-origin:36px 36px}}
/* Living Ecosystem on phones: the panel beside the figure already names each part's forces, so the figure keeps only what reads at 11px+ */
@media(max-width:600px){.sig-node-forces{display:none}.sig-edge text{font-size:24px;letter-spacing:.1em}.sig-eco-core text{font-size:24px}.sig-node-name{font-size:44px}}
/* The chapter marker (patterns.js): a slim bar under the header naming the chapter being read, with the story's progress */
.sig-now{position:fixed;left:0;right:0;top:var(--header-h);z-index:45;display:flex;align-items:center;gap:14px;height:40px;padding:0 max(var(--gutter),calc((100% - var(--max))/2 + var(--gutter)));background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:saturate(1.2) blur(10px);-webkit-backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid var(--rule);color:var(--ink);font:400 11px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;opacity:0;transform:translateY(-100%);pointer-events:none;transition:opacity .4s var(--pt-ease),transform .5s var(--pt-ease)}
.sig-now.is-on{opacity:1;transform:none;pointer-events:auto}.sig-now-n{min-width:3.2em;color:var(--forest)}.sig-now-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sig-now-k{color:var(--ink-mute)}.sig-now:hover .sig-now-k{color:var(--ink)}
.sig-now::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--forest);transform:scaleX(var(--k,0));transform-origin:left}
@media(max-width:700px){.sig-now{height:36px;font-size:10px}.sig-now-k{display:none}}
@media(prefers-reduced-motion:reduce){.sig-now{transition:none}}
/* The Facilitator Multiplier on phones: each station is one row, its dots beside its figure, so the chain reads in half the height */
@media(max-width:600px){.sig-station:not(.sig-station--projection){display:grid;grid-template-columns:104px minmax(0,1fr);column-gap:20px;align-items:center;padding:22px 0}.sig-station:not(.sig-station--projection) .sig-station-dots{grid-row:1/3;justify-content:flex-start;margin:0}.sig-station:not(.sig-station--projection) .sig-station-dots svg{max-height:104px}.sig-station:not(.sig-station--projection) .sig-station-fig{align-self:end;font-size:44px}.sig-station:not(.sig-station--projection) .sig-station-label{align-self:start;margin-top:6px;font-size:14px}.sig-station+.sig-station::before{left:52px}.sig-station--projection{padding:22px 16px}}
@media(max-width:600px){.pt-js .sig-engine-flow .sig-station:nth-child(n){--sd:0s}}

/* 15-launch.css */
/* The Launch (src/launch.mjs): homepage chapter IV and the Launch Hero on product pages. The still layout is the
   default; .xp-js (experience.js, not for reduced motion) turns each act into a pinned stage driven by --p, the
   act's scroll progress from 0 to 1. Amber marks something in development; sage marks something delivered today. */
.ln,.ln-hero{--ln-amber:#e3b363;--ln-sage:#9fbaa8;--ln-pin:calc(100svh - var(--header-h))}
.ln{padding-bottom:clamp(72px,9vw,144px)}

/* Status chip */
.ln-status{display:inline-flex;align-items:center;gap:10px;margin:0;padding:6px 13px 6px 11px;border:1px solid rgba(247,247,242,.28);border-radius:999px;background:rgba(25,24,24,.35);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font:400 10.5px/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark)}
.ln-status span{flex:none;width:8px;height:8px;border-radius:50%}.ln-status--today span{background:var(--ln-sage);box-shadow:0 0 0 4px rgba(159,186,168,.22)}.ln-status--built span{border:1.5px solid var(--ln-amber);box-shadow:0 0 0 4px rgba(227,179,99,.16)}

/* Overture */
.ln-overture{padding:clamp(40px,6vw,96px) 0}
.ln-overture-stage{max-width:1180px;margin:0 auto;padding-inline:var(--gutter);text-align:center}
.ln-ov-line{margin:0 0 .25em;font:300 clamp(34px,5.4vw,84px)/1.04 var(--font-display);letter-spacing:-.015em;color:var(--on-dark);text-wrap:balance}.ln-ov-line+.ln-ov-line{color:var(--on-dark-soft)}
.ln-ov-turn{margin:.9em 0 0;font:italic 400 clamp(26px,3.2vw,48px)/1.2 var(--font-display);color:var(--ln-amber);text-wrap:balance}

/* Acts: the still layout */
.ln-act{position:relative;color:var(--on-dark)}
.ln-stage{position:relative;padding:clamp(48px,6vw,96px) 0 0}
.ln-gap{max-width:26ch;margin:0 auto clamp(24px,3vw,40px);padding-inline:var(--gutter);font:italic 300 clamp(28px,3.4vw,52px)/1.18 var(--font-display);text-align:center;color:var(--on-dark-soft);text-wrap:balance}
.ln-media{position:relative;width:calc(100% - 2*var(--gutter));max-width:1320px;margin:0 auto;aspect-ratio:16/9;overflow:hidden;border-radius:clamp(16px,2vw,28px);background:#0f0e0e}
.ln-media img,.ln-media video{display:block;width:100%;height:100%;object-fit:cover}
/* The act's own labels and pause button (.ln-chrome) sit over the frame and above the veil, so they stay clear and clickable */
.ln-stage{display:grid;grid-template-areas:"gap" "media" "copy"}.ln-gap{grid-area:gap}.ln-media{grid-area:media}.ln-veil{grid-area:media}.ln-copy{grid-area:copy}
.ln-chrome{grid-area:media;position:relative;z-index:4;width:calc(100% - 2*var(--gutter));max-width:1320px;margin:0 auto;pointer-events:none}
.ln-chrome>*{pointer-events:auto}.ln-chrome .pt-concept{top:16px;bottom:auto;left:16px}.ln-chrome .pt-play{top:16px;right:16px;bottom:auto}
.ln-veil{display:none}
.ln-copy{width:calc(100% - 2*var(--gutter));max-width:1320px;margin:clamp(24px,3vw,40px) auto 0}
.ln-count{margin:0 0 18px;font:400 11px/1 var(--font-mono);letter-spacing:.2em;color:var(--on-dark-mute)}
.ln-name{margin:20px 0 0;font:300 clamp(60px,10vw,168px)/.88 var(--font-display);letter-spacing:-.03em;color:var(--on-dark)}
.ln-name span{display:block;margin-top:18px;font:400 12px/1.3 var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--on-dark-soft)}
.ln-tag{margin:14px 0 0;font:italic 300 clamp(26px,2.8vw,44px)/1.15 var(--font-display);color:var(--on-dark)}
.ln-detail{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:12px clamp(32px,5vw,80px);align-items:start;margin-top:clamp(20px,2.6vw,36px);padding-top:clamp(20px,2.4vw,32px);border-top:1px solid rgba(247,247,242,.22)}
.ln-body{margin:0;max-width:44ch;font-size:clamp(16px,1.2vw,18px);line-height:1.55;color:var(--on-dark-soft)}
.ln-specs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0}.ln-specs dt{margin-bottom:6px;font:400 10px/1.3 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark-mute)}.ln-specs dd{margin:0;font-size:14.5px;line-height:1.45;color:var(--on-dark)}
.ln-links{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin:8px 0 0}
.ln .btn--primary,.ln-hero .btn--primary{background:var(--paper-light);border-color:var(--paper-light);color:var(--ink)}.ln .btn--primary:hover,.ln-hero .btn--primary:hover{background:var(--paper)}
.ln-hero .btn--secondary{border-color:rgba(247,247,242,.6);color:var(--on-dark)}.ln-hero .btn--secondary:hover{background:var(--on-dark);color:var(--ink)}
.ln-link{color:var(--on-dark);font-size:15px;text-decoration:underline;text-decoration-color:rgba(247,247,242,.4);text-underline-offset:5px}.ln-link:hover{text-decoration-color:var(--on-dark)}
.ln :is(a,button):focus-visible,.ln-hero :is(a,button):focus-visible{outline:2px solid var(--on-dark);outline-offset:3px}

/* Acts: pinned and scrubbed */
.xp-js .ln-overture{height:140vh;padding:0}
.xp-js .ln-overture-stage{position:sticky;top:var(--header-h);height:var(--ln-pin);display:flex;flex-direction:column;justify-content:center}
.xp-js .ln-ov-line{opacity:clamp(.2,var(--p,0)*6 + .3,1)}
.xp-js .ln-ov-line+.ln-ov-line{opacity:clamp(.08,(var(--p,0) - .14)*5,1)}
.xp-js .ln-ov-turn{--k:clamp(0,(var(--p,0) - .36)*5,1);opacity:var(--k);transform:translateY(calc((1 - var(--k))*28px))}
.xp-js .ln-act{--m:clamp(0,(var(--p,0) - .16)/.34,1);--t:clamp(0,(var(--p,0) - .36)*6,1);--d:clamp(0,(var(--p,0) - .58)*6,1);height:230vh}
.xp-js .ln-stage{display:block;position:sticky;top:var(--header-h);height:var(--ln-pin);padding:0;overflow:hidden}
.xp-js .ln-gap{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;max-width:none;margin:0;font-size:clamp(32px,4.4vw,68px);opacity:clamp(0,1 - (var(--p,0) - .1)*8,1);transform:translateY(calc(clamp(0,(var(--p,0) - .1)*8,1)*-48px));text-shadow:0 2px 28px rgba(16,14,13,.7);pointer-events:none}
.xp-js .ln-media{position:absolute;inset:0;width:auto;max-width:none;margin:0;aspect-ratio:auto;border-radius:calc((1 - var(--m))*72px);opacity:clamp(0,(var(--p,0) - .05)*8,1);transform:scale(calc(.34 + .66*var(--m)));will-change:transform}
.xp-js .ln-chrome{position:absolute;inset:0;width:auto;max-width:none;margin:0;opacity:clamp(0,(var(--p,0) - .3)*6,1)}
/* below the homepage chapter marker (14-signature.css, .sig-now) */
.xp-js .ln-chrome .pt-concept{top:64px;left:max(var(--gutter),calc((100% - var(--max))/2 + var(--gutter)))}.xp-js .ln-chrome .pt-play{top:58px;right:max(var(--gutter),calc((100% - var(--max))/2 + var(--gutter)))}
.xp-js .ln-media img{transform:scale(calc(1.18 - .18*var(--m)))}
.xp-js .ln-veil{display:block;position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(25,24,24,.36) 0%,rgba(25,24,24,0) 22%,rgba(25,24,24,.42) 48%,rgba(25,24,24,.95) 100%),linear-gradient(90deg,rgba(25,24,24,.5) 0%,rgba(25,24,24,0) 58%);opacity:calc(var(--t)*.6 + var(--d)*.4);pointer-events:none}
.xp-js .ln-copy{position:absolute;left:0;right:0;bottom:0;z-index:3;width:auto;max-width:none;margin:0;padding:0 max(var(--gutter),calc((100% - var(--max))/2 + var(--gutter))) clamp(28px,5vh,64px);pointer-events:none}
.xp-js .ln-copy :is(a,button){pointer-events:auto}
.xp-js .ln-copy>:is(.ln-count,.ln-status,.ln-name,.ln-tag){opacity:var(--t);transform:translateY(calc((1 - var(--t))*36px))}
.xp-js .ln-detail{opacity:var(--d);transform:translateY(calc((1 - var(--d))*28px))}
.xp-js .ln-act:focus-within{--t:1;--d:1}
.xp-js .ln-name{font-size:clamp(56px,9vw,150px)}

/* A small photograph as a print over a wash of its own colours (launch.mjs, `print`) */
.ln--print :is(.ln-media,.ln-hero-media) .ln-wash{position:absolute;inset:-12%;width:124%;height:124%;object-fit:cover;filter:blur(40px) saturate(.85) brightness(.6);transform:none;animation:none}
.ln-print{position:absolute;z-index:1;top:clamp(24px,6vh,64px);right:max(var(--gutter),calc((100% - var(--max))/2 + var(--gutter)));overflow:hidden;border-radius:clamp(10px,1.2vw,16px);box-shadow:0 30px 80px -30px rgba(0,0,0,.6),0 0 0 1px rgba(247,247,242,.08)}
.ln--print :is(.ln-media,.ln-hero-media) .ln-print img{transform:none;animation:none}
.ln-hero .ln-print{width:clamp(168px,21vw,300px)}.ln-hero .ln-print img{width:100%;height:auto}
.ln-act .ln-print{top:clamp(64px,9vh,96px);height:min(44%,420px);right:max(var(--gutter),calc((100% - var(--max))/2 + var(--gutter)))}.ln-act .ln-print img{width:auto;height:100%}
.ln-act:not(.xp-js *) .ln-print{top:50%;right:50%;transform:translate(50%,-50%);height:78%}
@media (max-width:700px){.ln-hero .ln-print{top:20px;right:auto;left:var(--gutter)}.ln-act .ln-print{height:min(30%,240px)}}

/* Lineup */
.ln-skip{margin:18px 0 0;font:400 11px/1.3 var(--font-mono);letter-spacing:.16em;text-transform:uppercase}.ln-skip a{display:inline-block;padding-block:6px;color:var(--on-dark-soft);text-decoration:none}.ln-skip a:hover{color:var(--on-dark)}
.ln-lineup{padding-top:clamp(48px,5vw,80px);scroll-margin-top:calc(var(--header-h) + 24px)}
.ln-lineup-title{margin:0 0 clamp(32px,4vw,56px);font:300 clamp(40px,4.6vw,72px)/1 var(--font-display);text-align:center;color:var(--on-dark)}
.ln-lineup-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:0;padding:0;border-top:1px solid var(--rule-dark)}
.ln-model{display:flex;flex-direction:column;padding:clamp(24px,2.6vw,36px) clamp(16px,2vw,28px) 8px;border-left:1px solid var(--rule-dark)}.ln-model:first-child{border-left:0}
.ln-model-glyph{width:72px;height:72px;margin-bottom:20px;color:var(--on-dark)}.ln-model-glyph svg{width:100%;height:100%}
.ln-model h4{margin:0 0 20px;font:400 clamp(26px,2.2vw,34px)/1.05 var(--font-display);color:var(--on-dark)}
.ln-model dl{margin:0 0 24px;flex:1}.ln-model dl div{padding:12px 0;border-top:1px solid var(--rule-dark)}.ln-model dt{margin-bottom:4px;font:400 10px/1.3 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark-mute)}.ln-model dd{margin:0;font-size:14.5px;line-height:1.45;color:var(--on-dark-soft)}
.ln-also{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px 32px;margin:clamp(32px,4vw,48px) 0 0;padding-top:20px;border-top:1px solid var(--rule-dark);font-size:15px}.ln-also>span{font:400 10px/1.3 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark-mute)}.ln-also a{color:var(--on-dark);text-underline-offset:4px}.ln-also em{margin-left:10px;font:400 10px/1.3 var(--font-mono);font-style:normal;letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark-mute)}

/* The Launch Hero */
.ln-hero{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;min-height:min(var(--ln-pin),980px);overflow:hidden;background:var(--ink);color:var(--on-dark)}
.ln-hero-media{position:absolute;inset:0;z-index:-2;overflow:hidden}.ln-hero-media img,.ln-hero-media video{display:block;width:100%;height:100%;object-fit:cover;animation:ln-settle 3.2s var(--pt-ease) both}
.ln-hero-media .pt-concept{top:16px;bottom:auto;left:var(--gutter)}.ln-hero-media .pt-play{position:absolute;right:var(--gutter);top:16px;z-index:4}
.ln-hero-veil{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(25,24,24,.18) 0%,rgba(25,24,24,.06) 34%,rgba(25,24,24,.82) 100%),linear-gradient(90deg,rgba(25,24,24,.55) 0%,rgba(25,24,24,0) 64%)}
.ln-hero-copy{padding-block:clamp(120px,16vh,200px) clamp(48px,8vh,96px)}
.ln-hero h1{margin:22px 0 0;font-weight:inherit}
.ln-hero-name{display:block;font:300 clamp(60px,10.5vw,176px)/.86 var(--font-display);letter-spacing:-.03em;animation:ln-rise 1.4s var(--pt-ease) .15s both}
.ln-hero-sub{display:block;margin-top:16px;font:400 12px/1.3 var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--on-dark-soft)}
.ln-hero-tag{display:block;max-width:24ch;margin-top:18px;font:italic 300 clamp(26px,2.8vw,44px)/1.12 var(--font-display);text-wrap:balance;animation:ln-rise 1.4s var(--pt-ease) .35s both}
.ln-hero-body{max-width:48ch;margin:22px 0 30px;font-size:var(--fs-lede);line-height:1.55;color:var(--on-dark-soft);animation:ln-rise 1.4s var(--pt-ease) .5s both}
.ln-hero .btn-row{margin:0;animation:ln-rise 1.4s var(--pt-ease) .6s both}
.ln-hero-cue{position:absolute;right:var(--gutter);bottom:clamp(48px,8vh,96px);margin:0;font:400 10px/1 var(--font-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--on-dark-mute);writing-mode:vertical-rl}
.ln-hero-cue::after{content:"";display:inline-block;width:1px;height:48px;margin-top:12px;background:linear-gradient(var(--on-dark-mute),transparent)}
.xp-js .ln-hero-media{transform:scale(calc(1 + var(--p,0)*.08))}
.xp-js .ln-hero-copy{opacity:clamp(0,1 - var(--p,0)*1.6,1);transform:translateY(calc(var(--p,0)*-64px))}
@keyframes ln-settle{from{transform:scale(1.1)}to{transform:none}}
@keyframes ln-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

@media (max-width:1000px){
 .ln-detail{grid-template-columns:1fr}.ln-specs{grid-template-columns:1fr 1fr 1fr;gap:14px}
 /* Tablet: the four products sit two by two, so nothing scrolls sideways and no cell is cut off. */
 .ln-lineup-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ln-model:nth-child(odd){border-left:0}.ln-model:nth-child(n+3){border-top:1px solid var(--rule-dark)}
}
@media (max-width:700px){
 .ln-specs{grid-template-columns:1fr;gap:0}.ln-specs div{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:8px 0;border-top:1px solid rgba(247,247,242,.14)}.ln-specs dt{margin:2px 0 0}
 .xp-js .ln-body{display:none}
 .xp-js .ln-detail{margin-top:14px;padding-top:12px}.xp-js .ln-tag{font-size:24px}.xp-js .ln-name{font-size:clamp(48px,14vw,72px)}.xp-js .ln-name span{margin-top:10px}
 .xp-js .ln-specs div:nth-child(n+3){display:none}
 .xp-js .ln-act{height:190vh}
 /* Phone: one card per product, stacked, each with its glyph and name on one line above its answers. */
 .ln-lineup-grid{grid-template-columns:1fr;gap:16px;border-top:0}
 .ln-model,.ln-model:nth-child(n+3){display:grid;grid-template-columns:48px minmax(0,1fr);column-gap:16px;align-items:center;padding:20px 20px 4px;border:1px solid var(--rule-dark);border-radius:16px}
 .ln-model-glyph{width:48px;height:48px;margin:0}.ln-model h4{margin:0;font-size:28px}
 .ln-model dl,.ln-model .ln-link{grid-column:1/-1}.ln-model dl{margin:18px 0 12px}.ln-model dl div{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;padding:10px 0}.ln-model dt{margin:3px 0 0}
 .ln-model .ln-link{justify-self:start;padding-block:10px 14px}
 .ln-also{display:grid;gap:14px}
 .ln-hero-cue{display:none}.ln-hero-copy{padding-block:96px 40px}
 .ln-hero-veil{background:linear-gradient(180deg,rgba(25,24,24,.2) 0%,rgba(25,24,24,.35) 30%,rgba(25,24,24,.88) 62%,rgba(25,24,24,.94) 100%)}
}
@media (prefers-reduced-motion:reduce){.ln-hero-media img,.ln-hero-media video,.ln-hero-name,.ln-hero-tag,.ln-hero-body,.ln-hero .btn-row{animation:none}}
/* Launch-day pacing (3 Nov 2026): each act's line now hands over to its film instead of fading to black first; the overture
   opens legible. A 1px rounding overflow at some phone widths is clipped at the page edge (clip keeps sticky working). */
body{overflow-x:clip}

/* 16-infrastructure.css */
/* Human Capability Infrastructure (src/infrastructure.mjs): the light-grid language of Indaba Deploy. Warm ivory and
   charcoal, fine lines, amber light, sage for the people; no neon, no blue. Each component reads in light and dark
   sections through the --ix tokens. Motion is slow, scrubbed or stepped, and absent for reduced motion. */
.sec{--ix-fg:var(--ink);--ix-soft:var(--ink-soft);--ix-mute:var(--ink-mute);--ix-rule:var(--rule);--ix-rule-strong:var(--rule-strong);--ix-amber:#a8782f;--ix-line:#b98a3a;--ix-node:#6e675f;--ix-panel:var(--paper-deep)}
:is(.sec--atelier,.theme-atelier .sec--paper){--ix-fg:var(--on-dark);--ix-soft:var(--on-dark-soft);--ix-mute:var(--on-dark-mute);--ix-rule:var(--rule-dark);--ix-rule-strong:rgba(247,247,242,.3);--ix-amber:#e3b363;--ix-line:#e3b363;--ix-node:rgba(247,247,242,.6);--ix-panel:var(--ink-3)}
.ix-planning{display:inline-flex;align-items:center;gap:10px;margin:24px 0 0;padding:6px 13px;border:1px dashed var(--ix-amber);border-radius:999px;font:400 10px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ix-soft)}.ix-planning span{width:7px;height:7px;border:1.5px solid var(--ix-amber);border-radius:50%}
.ix-node-h{margin:0 0 12px;font:400 10.5px/1.4 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ix-mute)}
.ix-sector-n{margin:0 0 14px;font:400 11px/1 var(--font-mono);letter-spacing:.18em;color:var(--ix-amber)}
.ix-pipe{fill:none;stroke:var(--ix-rule-strong);stroke-width:1.2}.ix-flow{fill:none;stroke:var(--ix-line);stroke-width:2;stroke-linecap:round;stroke-dasharray:.04 .06;animation:ix-flow 7s linear infinite}
.ix-st{fill:var(--sig-bg);stroke:var(--ix-fg);stroke-width:1.3}.ix-user{fill:var(--ix-node)}
@keyframes ix-flow{to{stroke-dashoffset:-1}}

/* The Category Reveal */
.ix-sectors{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;margin:0;padding:0;border-top:1px solid var(--ix-rule-strong)}
.ix-sector{padding:clamp(22px,2.4vw,32px) clamp(14px,1.6vw,24px) 8px;border-left:1px solid var(--ix-rule)}.ix-sector:first-child{border-left:0;padding-left:0}
.ix-sector h3{margin:0;font:400 clamp(30px,2.6vw,40px)/1 var(--font-display);color:var(--ix-fg)}.ix-sector-has{margin:4px 0 18px;font:italic 400 18px/1.2 var(--font-display);color:var(--ix-mute)}
.ix-sector svg{display:block;width:100%;height:auto;overflow:visible}
.ix-sector-flow{display:flex;justify-content:space-between;gap:6px;margin:6px 0 18px;font:400 9px/1.3 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ix-mute)}.ix-sector-flow span:nth-child(2){text-align:center}.ix-sector-flow span:last-child{text-align:right}
.ix-sector-unit{margin:0 0 6px;font:400 11px/1.3 var(--font-mono);letter-spacing:.1em;color:var(--ix-amber)}.ix-sector-line{margin:0;font-size:15px;line-height:1.5;color:var(--ix-soft)}
.ix-human{margin-top:clamp(56px,7vw,112px)}
.ix-human-copy{display:grid;justify-items:start}.ix-human-name{margin:0;font:300 clamp(44px,5.8vw,92px)/.98 var(--font-display);letter-spacing:-.02em;color:var(--ix-fg)}
.ix-human-frag{max-width:46ch;margin:18px 0 0;font-size:var(--fs-lede);line-height:1.55;color:var(--ix-soft)}
.ix-human-reveal{margin:18px 0 0;font:italic 400 clamp(32px,3.8vw,60px)/1.05 var(--font-display);color:var(--ix-amber)}
.ix-human-figure{position:relative;margin:clamp(24px,3vw,40px) 0 0}.ix-human-figure svg{display:block;width:100%;height:auto;overflow:visible}
.ix-human .ix-halo{fill:url(#ix-glow-cat)}.ix-mesh{fill:none;stroke:var(--ix-line);stroke-width:1.4;stroke-linecap:round;stroke-dasharray:1;opacity:.85}
.ix-thing path,.ix-thing circle,path.ix-thing{fill:var(--sig-bg);stroke:var(--ix-fg);stroke-width:1.4;stroke-linejoin:round}g.ix-thing path,g.ix-thing circle{fill:var(--ix-node);stroke:none}
.ix-thing-label{font:400 13px var(--font-mono);letter-spacing:.14em;text-transform:uppercase;fill:var(--ix-mute)}
.ix-human-named{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:8px 22px;margin-top:clamp(16px,2vw,28px);text-align:center}
.ix-human-mark{font:400 clamp(28px,3vw,44px)/1 var(--font-display);letter-spacing:.32em;text-transform:uppercase;color:var(--ix-fg)}.ix-human-named span+span{font:400 11px/1.4 var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ix-amber)}
.ix-cat-close{max-width:56ch;margin:clamp(40px,5vw,72px) auto 0;font:400 clamp(21px,1.8vw,26px)/1.45 var(--font-display);text-align:center;color:var(--ix-fg);text-wrap:balance}
.xp-js .ix-human{height:210vh;margin-top:clamp(24px,3vw,48px)}
.xp-js .ix-human-stage{position:sticky;top:var(--header-h);height:calc(100svh - var(--header-h));display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.xp-js .ix-human-copy{grid-template-areas:"n" "name" "swap"}.xp-js .ix-human-copy .ix-sector-n{grid-area:n}.xp-js .ix-human-name{grid-area:name;font-size:clamp(40px,4.6vw,76px)}
.xp-js .ix-human-frag,.xp-js .ix-human-reveal{grid-area:swap;align-self:start}
.xp-js .ix-human-frag{opacity:clamp(0,1 - (var(--p,0) - .26)*6,1)}
.xp-js .ix-human-reveal{--k:clamp(0,(var(--p,0) - .32)*6,1);opacity:var(--k);transform:translateY(calc((1 - var(--k))*20px))}
.xp-js .ix-human-figure{width:min(100%,calc((100svh - var(--header-h) - 340px)*2.3));margin:20px auto 0}
.xp-js .ix-mesh{stroke-dashoffset:calc(1 - clamp(0,(var(--p,0) - .4 - var(--i,0)*.005)*5,1))}
.xp-js .ix-human .ix-halo{opacity:clamp(0,(var(--p,0) - .5)*3,1)}
.xp-js .ix-thing{opacity:calc(.45 + .55*clamp(0,(var(--p,0) - .45)*4,1))}
.xp-js .ix-human-named{--k:clamp(0,(var(--p,0) - .72)*6,1);opacity:var(--k);transform:translateY(calc((1 - var(--k))*16px))}

/* The Living Capability Grid */
.cg{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,5vw,88px);align-items:start}
.cg-figure{grid-column:2;grid-row:1;position:sticky;top:calc(var(--header-h) + 32px);margin:0}
.cg-frame{position:relative;aspect-ratio:1200/760;overflow:hidden;border:1px solid var(--rule-dark);border-radius:clamp(14px,1.6vw,24px);background:radial-gradient(ellipse 70% 70% at 50% 46%,#2b2723 0%,#1b1a19 62%,#151414 100%)}
.cg-frame svg{position:absolute;inset:0;display:block;width:100%;height:100%}
.cg-note{margin-top:14px;font-size:13px;line-height:1.5;color:var(--on-dark-mute)}
.cg-steps{grid-column:1;grid-row:1;list-style:none;margin:0;padding:0}
.cg-step{padding:28px 0;border-top:1px solid var(--rule-dark)}.cg-step h3{margin:0 0 12px;font:400 clamp(28px,2.6vw,40px)/1.08 var(--font-display);color:var(--on-dark);text-wrap:balance}.cg-step>p:not([class]){margin:0;max-width:40ch;font-size:17px;line-height:1.55;color:var(--on-dark-soft)}
.cg-step-n{display:flex;gap:14px;margin:0 0 14px;font:400 10.5px/1.3 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark-mute)}.cg-step-n span{color:#e3b363}
.cg-close{margin:0;font:italic 300 clamp(26px,2.4vw,36px)/1.25 var(--font-display);color:#e3b363;text-wrap:balance}
.cg-ladder{display:flex;margin:14px 0 0;flex-wrap:wrap;gap:6px 18px;list-style:none;padding:0;font:400 9.5px/1.3 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:rgba(247,247,242,.38)}
.cg-ladder li{display:flex;align-items:center;gap:8px;transition:color .6s}.cg-ladder li::before{content:"";width:6px;height:6px;border:1px solid currentColor;border-radius:50%;transition:background .6s}.cg-ladder li.is-active{color:#f3cf87}.cg-ladder li.is-active::before{background:#f3cf87}
.cg-live .cg-step{min-height:60vh;display:flex;flex-direction:column;justify-content:center;border-top:0;opacity:.4;transition:opacity .7s var(--pt-ease)}.cg-live .cg-step.is-active{opacity:1}.cg-live .cg-step--close{min-height:60vh;opacity:1}
.cg-scene{transform-origin:0 0;transition:transform 1.6s cubic-bezier(.6,.05,.25,1),opacity 1.1s var(--pt-ease)}.cg-scene.is-off{opacity:0;pointer-events:none}
.cg .ix-halo{fill:url(#cg-glow)}
.cg-edge{fill:none;stroke:#e3b363;stroke-opacity:.6;stroke-width:1.4;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:0}
.cg-edge--soft{stroke-opacity:.38;stroke-width:1.1}.cg-edge--lead{stroke:#f3e1b8;stroke-opacity:.42;stroke-width:1}.cg-edge--peer{stroke:#cfc3a3;stroke-opacity:.5;stroke-width:1;stroke-dasharray:.012 .02}
.cg-fac{fill:#f3cf87}.cg-lead{fill:#fff4dc}.cg-prac{fill:#e9dcc0}.cg-hub{fill:none;stroke:#f3cf87;stroke-width:2;vector-effect:non-scaling-stroke}
.cg-building{fill:rgba(227,179,99,.3);stroke:#f3cf87;stroke-width:1.3;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:fill 1.2s,stroke 1.2s}
.cg-ring{fill:none;stroke:rgba(247,247,242,.3);stroke-width:1;stroke-dasharray:.004 .007;vector-effect:non-scaling-stroke}
.cg-label{font:400 20px var(--font-mono);letter-spacing:.22em;text-transform:uppercase;fill:rgba(247,247,242,.62)}.cg-label--std{fill:#f3cf87}
.cg-standards{fill:none;stroke:#f3cf87;stroke-opacity:.3;stroke-width:1.2;vector-effect:non-scaling-stroke}.cg-standards--flow{stroke-opacity:.9;stroke-width:1.6;stroke-dasharray:4 22;animation:cg-flow 9s linear infinite}
.cg-breathe{animation:cg-breathe 4.8s ease-in-out infinite}
.cg [class*="cg-k"]{transition:opacity 1s var(--pt-ease),stroke-dashoffset 1.8s var(--pt-ease)}
.cg-live:not(.at-1) .cg-k1,.cg-live:not(.at-2) .cg-k2,.cg-live:not(.at-3) .cg-k3,.cg-live:not(.at-4) .cg-k4,.cg-live:not(.at-5) .cg-k5,.cg-live:not(.at-6) .cg-k6{opacity:0}
.cg-live:not(.at-1) .cg-edge.cg-k1,.cg-live:not(.at-2) .cg-edge.cg-k2,.cg-live:not(.at-3) .cg-edge.cg-k3:not(.cg-edge--peer),.cg-live:not(.at-4) .cg-edge.cg-k4:not(.cg-edge--peer){stroke-dashoffset:1}
.cg-live:not(.at-2) .cg-building{fill:rgba(247,247,242,.05);stroke:rgba(247,247,242,.5)}.cg-envglow{transition:opacity 1.2s}.cg-live:not(.at-2) .cg-envglow{opacity:0}
@keyframes cg-breathe{50%{opacity:.4}}
@keyframes cg-flow{to{stroke-dashoffset:-260}}

/* The Infrastructure Stack */
.ix-stack{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,104px);align-items:start}
.ix-stack-figure{position:sticky;top:calc(var(--header-h) + 40px);margin:0}.ix-stack-figure svg{display:block;width:100%;max-width:440px;height:auto;margin-inline:auto;overflow:visible}
.ix-plate{transition:transform .7s var(--pt-ease),opacity .9s var(--pt-ease)}.ix-plate-top{fill:var(--paper-light);stroke:var(--ix-rule-strong);stroke-width:1;transition:fill .5s,stroke .5s}.ix-plate-side{fill:var(--paper-deep);stroke:var(--ix-rule-strong);stroke-width:1}.ix-plate-side--r{fill:#d3cbc0}.ix-plate-dot{fill:var(--forest)}
.ix-plate.is-active{transform:translateY(-12px)}.ix-plate.is-active .ix-plate-top{fill:#f2e2bf;stroke:var(--ix-line)}
.pt-js .ix-stack-figure .ix-plate{opacity:0;transform:translateY(-36px)}.pt-js .ix-stack-figure.is-in .ix-plate{opacity:1;transform:none}.pt-js .ix-stack-figure.is-in .ix-plate.is-active{transform:translateY(-12px)}
.pt-js .ix-stack-figure .ix-plate[data-plate="5"]{transition-delay:0s}.pt-js .ix-stack-figure .ix-plate[data-plate="4"]{transition-delay:.12s}.pt-js .ix-stack-figure .ix-plate[data-plate="3"]{transition-delay:.24s}.pt-js .ix-stack-figure .ix-plate[data-plate="2"]{transition-delay:.36s}.pt-js .ix-stack-figure .ix-plate[data-plate="1"]{transition-delay:.48s}.pt-js .ix-stack-figure .ix-plate[data-plate="0"]{transition-delay:.6s}
.ix-stack-figure.is-hovered .ix-plate{transition-delay:0s}
.ix-layers{list-style:none;margin:0;padding:0;border-top:1px solid var(--ix-rule-strong)}
.ix-layer{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;padding:22px 12px;border-bottom:1px solid var(--ix-rule);outline:0;transition:background .35s,padding .45s var(--pt-ease)}
.ix-layer.is-active{padding-left:20px;background:color-mix(in srgb,var(--ix-line) 9%,transparent)}.ix-layer:focus-visible{outline:2px solid var(--forest);outline-offset:-2px}
.ix-layer-n{margin:6px 0 0;font:400 11px/1 var(--font-mono);letter-spacing:.16em;color:var(--ix-amber)}
.ix-layer h3{margin:0 0 6px;font:400 clamp(24px,2vw,30px)/1.1 var(--font-display);color:var(--ix-fg)}.ix-layer p{margin:0;font-size:15.5px;line-height:1.5;color:var(--ix-soft)}
.ix-layer-links{display:flex;flex-wrap:wrap;gap:8px 22px;list-style:none;margin:4px 0 0;padding:0}.ix-layer-links li{display:flex;flex-direction:column;gap:2px}.ix-layer-links a{color:var(--ix-fg);font-size:15.5px;text-underline-offset:4px}.ix-layer-links span{font:400 9.5px/1.3 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ix-mute)}
.ix-stack-close{max-width:30ch;margin:clamp(40px,5vw,72px) 0 0;font:italic 300 clamp(26px,2.6vw,38px)/1.25 var(--font-display);color:var(--ix-fg);text-wrap:balance}

/* The Node Architecture */
.ix-nodes{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,104px);align-items:center}
.ix-nodes-figure svg{display:block;width:100%;max-width:480px;height:auto;margin-inline:auto;overflow:visible}
.ix-nest-ring{fill:none;stroke:var(--ix-rule-strong);stroke-width:1.2;transition:stroke .5s,stroke-width .5s,fill .5s}.ix-nest-link{stroke:var(--ix-rule);stroke-width:1;transition:stroke .5s}.ix-nest-node{fill:var(--ix-node);transition:fill .5s}.ix-nest-hub{fill:var(--ix-fg)}
.ix-nodes [data-node]{cursor:pointer}
.ix-nodes [data-node].is-active .ix-nest-ring{stroke:var(--ix-amber);stroke-width:2.2;fill:color-mix(in srgb,var(--ix-amber) 9%,transparent)}.ix-nodes [data-node].is-active .ix-nest-link{stroke:color-mix(in srgb,var(--ix-amber) 60%,transparent)}.ix-nodes [data-node].is-active .ix-nest-node{fill:var(--ix-amber)}
.ix-node-tabs{display:inline-flex;flex-wrap:wrap;gap:4px;margin-bottom:32px;padding:4px;border:1px solid var(--ix-rule-strong);border-radius:999px}
.ix-node-tabs button{min-height:44px;padding:8px 18px;border:0;border-radius:999px;background:none;font:400 14px/1.2 var(--font-body);color:var(--ix-soft);cursor:pointer;transition:background .3s,color .3s}.ix-node-tabs button:hover{color:var(--ix-fg)}.ix-node-tabs button[aria-selected="true"]{background:var(--ix-fg);color:var(--sig-bg)}.ix-node-tabs button:focus-visible{outline:2px solid var(--ix-amber);outline-offset:2px}
.ix-node-panel+.ix-node-panel{margin-top:48px}.ix-nodes[data-active] .ix-node-panel+.ix-node-panel{margin-top:0}.ix-nodes[data-active] .ix-node-panel:not([hidden]){animation:pt-fade .6s var(--pt-ease)}
.ix-node-kicker{margin:0;font:400 10.5px/1.4 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ix-amber)}.ix-node-panel h3{margin:8px 0 12px;font:400 clamp(30px,2.8vw,42px)/1.06 var(--font-display);color:var(--ix-fg)}.ix-node-body{max-width:48ch;margin:0 0 28px;font-size:17px;line-height:1.55;color:var(--ix-soft)}
.ix-node-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px clamp(24px,3vw,48px)}
.ix-figs{margin:0;border-top:1px solid var(--ix-rule-strong)}.ix-figs div{display:grid;grid-template-columns:1fr;gap:6px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--ix-rule)}.ix-figs dt{font:300 clamp(26px,2.4vw,36px)/1 var(--font-display);color:var(--ix-fg);white-space:nowrap}.ix-figs dd{margin:0;font-size:14.5px;line-height:1.45;color:var(--ix-soft)}
.ix-cascade{margin:clamp(56px,7vw,104px) 0 0}.ix-cascade ol{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;list-style:none;margin:0;padding:0}
.ix-cascade li{position:relative;padding:18px 16px;border:1px solid var(--ix-rule-strong);border-radius:12px;font:400 clamp(18px,1.5vw,22px)/1.2 var(--font-display);color:var(--ix-fg)}.ix-cascade li span{display:block;margin-bottom:8px;font:400 10px/1 var(--font-mono);letter-spacing:.16em;color:var(--ix-amber)}
.ix-cascade li+li::before{content:"→";position:absolute;left:-12px;top:50%;width:12px;text-align:center;transform:translateY(-50%);font:400 13px/1 var(--font-body);color:var(--ix-mute)}
.ix-cascade li:last-child{border-color:var(--ix-amber);background:color-mix(in srgb,var(--ix-amber) 10%,transparent)}
.ix-cascade figcaption{position:relative;margin-top:6px;text-align:center}.ix-cascade figcaption svg{display:block;width:100%;height:28px}.ix-cascade figcaption path{fill:none;stroke:var(--ix-amber);stroke-width:1.2;vector-effect:non-scaling-stroke;stroke-dasharray:4 5}
.ix-cascade figcaption span{display:inline-block;margin-top:6px;font:400 10.5px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ix-amber)}.ix-cascade figcaption span::before{content:"↺  "}

/* The Capacity Instrument */
.ix-measures{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:0;padding:0;border-top:1px solid var(--ix-rule-strong)}.ix-measures li{padding:24px clamp(14px,1.8vw,28px) 4px;border-left:1px solid var(--ix-rule)}.ix-measures li:first-child{border-left:0;padding-left:0}
.ix-measures h3{margin:0 0 8px;font:400 clamp(24px,2vw,30px)/1.1 var(--font-display);color:var(--ix-fg)}.ix-measures p:not(.ix-sector-n){margin:0;font-size:15.5px;line-height:1.5;color:var(--ix-soft)}
.ix-util{--u:78;margin-top:clamp(48px,6vw,88px);padding:clamp(24px,3vw,44px);border:1px solid var(--ix-rule-strong);border-radius:clamp(14px,1.6vw,22px);background:var(--paper-light)}
.ix-util-head{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:16px 40px;align-items:baseline;margin-bottom:28px}
.ix-util label{font:400 11px/1.4 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ix-mute)}
.ix-util output{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 18px;align-items:center;font-size:17px;line-height:1.5;color:var(--ix-soft)}.ix-util output strong{grid-row:span 2;font:300 clamp(40px,4vw,60px)/1 var(--font-display);color:var(--ix-fg)}.ix-util output span{color:var(--ix-fg)}
.ix-util-track{position:relative;display:flex;height:58px;border-radius:10px;overflow:visible}
.ix-band{position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:0 10px 8px;border-left:1px solid rgba(25,24,24,.18);transition:filter .4s}.ix-band:first-child{border-left:0;border-radius:10px 0 0 10px}.ix-band:last-child{border-radius:0 10px 10px 0}
.ix-band--0{flex:50;background:#e7e1d6}.ix-band--1{flex:20;background:#e6d5b2}.ix-band--2{flex:15;background:#c7d3c3}.ix-band--3{flex:15;background:#e7c487}
.ix-band em{position:absolute;top:-20px;left:-1px;font:400 10px/1 var(--font-mono);font-style:normal;color:var(--ix-mute)}.ix-band:first-child em{left:0}
.ix-band b{position:absolute;top:calc(100% + 10px);left:10px;right:4px;font:400 10.5px/1.25 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:rgba(25,24,24,.62)}.ix-band.is-active b{color:var(--ink)}.ix-band.is-active{box-shadow:inset 0 -3px 0 var(--ink)}
.ix-util-mark{position:absolute;z-index:2;top:-8px;bottom:-8px;left:calc(var(--u)*1%);width:2px;margin-left:-1px;background:var(--ink);transition:left .2s}.ix-util-mark::before{content:"";position:absolute;top:-6px;left:50%;width:12px;height:12px;border-radius:50%;background:var(--ink);transform:translateX(-50%)}
.ix-util-range{display:block;width:100%;height:32px;margin:48px 0 0;accent-color:var(--forest);cursor:pointer}
.ix-util-full{display:flex;gap:14px;align-items:baseline;margin:10px 0 0;font-size:14.5px;line-height:1.5;color:var(--ix-soft)}.ix-util-full span{flex:none;font:400 11px/1 var(--font-mono);color:var(--ix-fg)}
.ix-twin{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:clamp(16px,2vw,32px);align-items:stretch;margin-top:clamp(48px,6vw,88px)}
.ix-twin-card{padding:clamp(22px,2.6vw,36px);border:1px solid var(--ix-rule-strong);border-radius:clamp(14px,1.6vw,22px)}.ix-twin-card svg{display:block;width:160px;height:48px;margin-bottom:18px;overflow:visible}
.ix-twin-card h3{margin:0 0 8px;font:400 clamp(26px,2.2vw,34px)/1.1 var(--font-display);color:var(--ix-fg)}.ix-twin-card p{margin:0;font-size:16px;line-height:1.55;color:var(--ix-soft)}
.ix-twin-card--loop{background:color-mix(in srgb,var(--forest) 7%,transparent);border-color:color-mix(in srgb,var(--forest) 40%,transparent)}
.ix-twin-arrow{align-self:center;margin:0;font:400 10px/1 var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ix-mute)}.ix-twin-arrow::after{content:"→";display:block;margin-top:8px;font:300 32px/1 var(--font-display);text-align:center;color:var(--ix-amber)}
.ix-loop{transform-origin:80px 24px;transform-box:view-box;animation:ix-spin 14s linear infinite}.ix-loop-ring{fill:none;stroke:var(--forest);stroke-width:1.4;stroke-dasharray:.82 .18}.ix-loop-head{fill:none;stroke:var(--forest);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.ix-pool{fill:var(--forest);opacity:.8}
@keyframes ix-spin{to{transform:rotate(360deg)}}
.ix-maxim{max-width:24ch;margin:clamp(56px,7vw,112px) auto 0;font:300 clamp(34px,4vw,62px)/1.08 var(--font-display);letter-spacing:-.01em;text-align:center;color:var(--ix-fg);text-wrap:balance}.ix-maxim em{color:var(--ix-amber)}

/* The Capability Contract and the Unit */
.ix-contract{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,1.6vw,24px);list-style:none;margin:0;padding:0}
.ix-contract>li{position:relative;padding:28px clamp(18px,2vw,28px) 24px;border:1px solid var(--ix-rule-strong);border-radius:16px;background:var(--ix-panel)}
.ix-contract>li+li::before{content:"";position:absolute;top:50%;left:calc(-1*clamp(12px,1.6vw,24px));width:clamp(12px,1.6vw,24px);height:1px;background:var(--ix-amber)}
.ix-contract>li:last-child{border-color:var(--ix-amber)}
.ix-contract-n{margin:0 0 14px;font:400 10px/1.3 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ix-amber)}
.ix-contract h3{margin:0 0 16px;font:400 clamp(26px,2.2vw,34px)/1.05 var(--font-display);color:var(--ix-fg)}
.ix-contract ul{list-style:none;margin:0;padding:0}.ix-contract ul li{padding:8px 0;border-top:1px solid var(--ix-rule);font-size:15px;line-height:1.4;color:var(--ix-soft)}
.pt-js .ix-contract>li[data-pt-reveal]{transition-delay:calc(var(--i,0)*140ms)}
.ix-contract-line{max-width:40ch;margin:clamp(40px,5vw,64px) auto 0;font:400 clamp(24px,2.2vw,32px)/1.35 var(--font-display);text-align:center;color:var(--ix-fg);text-wrap:balance}
.ix-unit{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,88px);margin-top:clamp(56px,7vw,112px);padding:clamp(28px,4vw,64px);border:1px solid var(--ix-rule-strong);border-radius:clamp(16px,2vw,28px)}
.ix-unit-kind{margin:0;font:400 10.5px/1.4 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ix-amber)}
.ix-unit-name span{white-space:nowrap}.ix-unit-name{margin:10px 0 18px;font:300 clamp(44px,5vw,84px)/.95 var(--font-display);letter-spacing:-.02em;color:var(--ix-fg)}
.ix-unit-def{max-width:34ch;margin:0;font:italic 400 clamp(22px,2vw,30px)/1.35 var(--font-display);color:var(--ix-fg)}
.ix-unit-note{max-width:52ch;margin:22px 0 0;font-size:14.5px;line-height:1.55;color:var(--ix-mute)}
.ix-analogues{margin:0 0 32px;border-top:1px solid var(--ix-rule-strong)}.ix-analogues div{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--ix-rule)}.ix-analogues dt{font:400 10.5px/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ix-mute)}.ix-analogues dd{margin:0;font:400 22px/1.1 var(--font-display);color:var(--ix-soft)}
.ix-analogues .is-ours dt,.ix-analogues .is-ours dd{color:var(--ix-amber)}
.ix-related{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}.ix-related li{padding:6px 12px;border:1px solid var(--ix-rule-strong);border-radius:999px;font-size:13px;color:var(--ix-soft)}

/* The Partnership Stair */
.ix-stair{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(10px,1.2vw,16px);align-items:end;list-style:none;margin:0;padding:0}
.ix-stair-step{display:flex;flex-direction:column;padding:24px clamp(18px,2vw,28px);border-radius:16px 16px 0 0;background:var(--paper-deep);color:var(--ink)}
.ix-stair li:nth-child(1) .ix-stair-step{min-height:230px}.ix-stair li:nth-child(2) .ix-stair-step{min-height:290px;background:#d9d1c4}.ix-stair li:nth-child(3) .ix-stair-step{min-height:350px;background:#cbbfa9}.ix-stair li:nth-child(4) .ix-stair-step{min-height:410px;background:var(--ink-2);color:var(--on-dark)}
.ix-stair h3{margin:0 0 12px;font:400 clamp(26px,2.2vw,34px)/1.05 var(--font-display)}.ix-stair p:not(.ix-contract-n){margin:auto 0 0;font-size:15.5px;line-height:1.5;opacity:.82}
.ix-stair li:nth-child(4) .ix-contract-n{color:#e3b363}
.ix-philosophy{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 14px;margin:clamp(28px,3vw,44px) 0 0;padding:18px;border-block:1px solid var(--ix-rule-strong);font:400 12px/1.3 var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ix-fg)}.ix-philosophy .ix-arrow{color:var(--ix-amber);letter-spacing:0}
.ix-audiences{margin-top:clamp(48px,6vw,88px)}.ix-audiences ul{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;margin:0;padding:0;border-top:1px solid var(--ix-rule-strong)}.ix-audiences li{padding:20px clamp(12px,1.4vw,22px) 0;border-left:1px solid var(--ix-rule)}.ix-audiences li:first-child{border-left:0;padding-left:0}
.ix-audiences h3{margin:0 0 8px;font:400 clamp(21px,1.7vw,25px)/1.1 var(--font-display);color:var(--ix-fg)}.ix-audiences p{margin:0;font-size:14.5px;line-height:1.5;color:var(--ix-soft)}

/* Value heading */
.ix-value-h{margin:clamp(56px,7vw,104px) 0 20px;color:var(--ix-fg)}

/* Journey: stage kickers and the deployment philosophy */
.stage__kicker{margin:0 0 6px;font:400 10px/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ix-amber)}

/* The Exchange */
.ix-exchange{position:relative;isolation:isolate;overflow:hidden;padding:clamp(96px,12vw,200px) 0;background:var(--ink);color:var(--on-dark)}
.ix-exchange-media{position:absolute;inset:0;z-index:-1}.ix-exchange-media img{display:block;width:100%;height:100%;object-fit:cover;opacity:.7}.ix-exchange-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(25,24,24,.92) 0%,rgba(25,24,24,.72) 52%,rgba(25,24,24,.35) 100%)}
.ix-exchange .folio{color:var(--on-dark-soft)}.ix-exchange h2{max-width:14ch;margin:20px 0 clamp(32px,4vw,56px);font:400 clamp(42px,5.4vw,84px)/.98 var(--font-display);letter-spacing:-.015em;text-wrap:balance}
.ix-exchange-cols{display:grid;grid-template-columns:repeat(2,minmax(0,280px));gap:clamp(24px,4vw,64px)}.ix-exchange .ix-node-h{color:#e3b363}.ix-exchange ul{list-style:none;margin:0;padding:0}.ix-exchange li{padding:8px 0;border-top:1px solid var(--rule-dark);font:400 clamp(19px,1.5vw,22px)/1.25 var(--font-display);color:var(--on-dark)}
.ix-exchange-close{margin:clamp(40px,5vw,72px) 0 32px;font:italic 300 clamp(28px,3vw,46px)/1.2 var(--font-display);color:var(--on-dark)}
.ix-exchange .btn-row{margin:0}.ix-exchange .btn--primary{background:var(--paper-light);border-color:var(--paper-light);color:var(--ink)}.ix-exchange .btn--secondary{border-color:rgba(247,247,242,.6);color:var(--on-dark)}.ix-exchange .btn--secondary:hover{background:var(--on-dark);color:var(--ink)}.ix-exchange .btn:focus-visible{outline:2px solid var(--on-dark);outline-offset:3px}

@media (max-width:1100px){
 .ix-sectors{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:minmax(220px,36%);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px}.ix-sector{scroll-snap-align:start}
 .ix-audiences ul{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:24px}.ix-audiences li:nth-child(4){border-left:0;padding-left:0}
 .ix-contract{grid-template-columns:repeat(2,minmax(0,1fr))}.ix-contract>li:nth-child(3)::before{display:none}
}
@media (max-width:900px){
 .cg{grid-template-columns:1fr;gap:0}.cg-figure{grid-column:1;grid-row:1;top:var(--header-h);z-index:2;padding:12px 0;background:var(--sig-bg)}.cg-steps{grid-column:1;grid-row:2}.cg-note{display:none}
 .cg-live .cg-step{min-height:62vh}.cg-ladder{margin-top:8px;gap:4px 12px;font-size:8.5px}
 .ix-stack,.ix-nodes,.ix-unit{grid-template-columns:1fr}.ix-stack-figure{position:static;max-width:340px;margin-inline:auto}
 .ix-cascade ol{grid-template-columns:1fr;gap:10px}.ix-cascade li+li::before{content:"↓";left:50%;top:-10px;transform:translateX(-50%)}.ix-cascade figcaption svg{display:none}
 .ix-measures{grid-template-columns:1fr 1fr}.ix-measures li:nth-child(3){border-left:0;padding-left:0}
 .ix-util-head{grid-template-columns:1fr}.ix-band b{font-size:8.5px;letter-spacing:0}
 .ix-twin{grid-template-columns:1fr}.ix-twin-arrow::after{content:"↓"}
 .ix-stair{grid-template-columns:1fr 1fr;align-items:stretch}.ix-stair li .ix-stair-step{min-height:220px!important;border-radius:16px}
 .ix-exchange-cols{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
 .ix-sectors{grid-auto-columns:78%}
 .ix-contract,.ix-stair,.ix-measures{grid-template-columns:1fr}.ix-contract>li::before{display:none}.ix-measures li{border-left:0;padding-left:0}
 .ix-audiences ul{grid-template-columns:1fr}.ix-audiences li{border-left:0;padding-left:0}
 .ix-band b{display:none}.ix-band em{font-size:9px}
 .ix-human-mark{letter-spacing:.2em}
 .ix-node-tabs{display:flex;width:100%;flex-wrap:nowrap}.ix-node-tabs button{flex:1;padding:8px 6px;font-size:13px}
}
@media (prefers-reduced-motion:reduce){.ix-flow,.ix-loop,.cg-standards--flow,.cg-breathe{animation:none}.cg-scene,.cg [class*="cg-k"],.ix-plate,.cg-step{transition:none!important}}

/* 17-guide-app.css */
/* The Guide app (src/guide-app.mjs): a phone frame and the screens inside it, drawn as finished product design.
   .ga is a size container; inside it every length is a multiple of --u (1/414 of the phone's width), so a screen
   keeps its exact layout from 220px to 480px wide. */
.ga{--u:calc(100cqw/414);--app-bg:#f6f3ec;--app-ink:#1d1b19;--app-soft:#5f5a53;--app-mute:#8b857c;--app-rule:#e3ddd2;--app-card:#fffdf8;--app-sage:#6d8676;--app-sage-l:#e2e9e1;--app-sand:#efe5d3;--app-amber:#e0b062;--app-forest:#2b3a32;
 container-type:inline-size;position:relative;width:100%;max-width:390px;margin:0 auto;font-family:var(--font-body);text-align:left;color:var(--app-ink)}
.ga *{box-sizing:border-box}
.ga-body{position:relative;aspect-ratio:414/868;padding:calc(12*var(--u));border-radius:calc(68*var(--u));background:linear-gradient(145deg,#5b5852,#262421 38%,#3c3a36 62%,#1b1a18);box-shadow:inset 0 0 0 calc(1.5*var(--u)) rgba(255,255,255,.16),inset 0 0 0 calc(4*var(--u)) #11100f,0 calc(30*var(--u)) calc(60*var(--u)) rgba(25,22,18,.22)}
.ga-body::before,.ga-body::after{content:"";position:absolute;left:calc(-2.5*var(--u));width:calc(3*var(--u));border-radius:2px;background:#2b2926}
.ga-body::before{top:20%;height:7%}.ga-body::after{top:30%;height:11%}
.ga-screen{position:relative;height:100%;overflow:hidden;border-radius:calc(56*var(--u));background:var(--app-bg);color:var(--app-ink);display:flex;flex-direction:column;isolation:isolate}
.ga-screen--dark{--app-bg:#141312;--app-ink:#f4f1ea;--app-soft:#b9b3a9;--app-mute:#8a847a;--app-rule:#2e2b28;--app-card:#1e1c1a;background:var(--app-bg);color:var(--app-ink)}
.ga-cap{display:flex;flex-direction:column;gap:4px;margin:16px auto 0;max-width:40ch;text-align:center;font:400 10.5px/1.45 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-mute)}
.ga-cap span+span{text-transform:none;letter-spacing:.01em;font-family:var(--font-body);font-size:12px}

/* Status bar, island, tab bar, home indicator */
.ga-status{position:relative;z-index:5;flex:none;display:flex;align-items:center;justify-content:space-between;height:calc(54*var(--u));padding:calc(6*var(--u)) calc(30*var(--u)) 0 calc(42*var(--u));font:600 calc(16*var(--u))/1 -apple-system,"SF Pro Text","Helvetica Neue",var(--font-body);letter-spacing:-.01em}
.ga-island{position:absolute;left:50%;top:calc(12*var(--u));width:calc(122*var(--u));height:calc(35*var(--u));transform:translateX(-50%);border-radius:99px;background:#050505}
.ga-sys{display:flex;align-items:center;gap:calc(6*var(--u))}.ga-sys svg{height:calc(12*var(--u));width:auto;fill:currentColor}
.ga-screen--flush .ga-status,.ga-screen--dark.ga-screen--flush .ga-status{position:absolute;inset:0 0 auto;color:#fff}
.ga-view{position:relative;flex:1;min-height:0;overflow:hidden;padding:calc(6*var(--u)) calc(20*var(--u)) 0}
.ga-screen--flush .ga-view{padding:0}
.ga-tabs{flex:none;display:grid;grid-template-columns:repeat(4,1fr);padding:calc(9*var(--u)) calc(10*var(--u)) calc(30*var(--u));border-top:1px solid var(--app-rule);background:color-mix(in srgb,var(--app-bg) 86%,transparent);backdrop-filter:blur(12px)}
.ga-tabs span{display:flex;flex-direction:column;align-items:center;gap:calc(3*var(--u));font:500 calc(10.5*var(--u))/1 var(--font-body);color:var(--app-mute)}
.ga-tabs svg{width:calc(25*var(--u));height:calc(25*var(--u))}.ga-tabs .is-on{color:var(--app-ink)}.ga-tabs .is-on svg{stroke-width:2}
.ga-home{position:absolute;left:50%;bottom:calc(8*var(--u));z-index:6;width:calc(140*var(--u));height:calc(5*var(--u));transform:translateX(-50%);border-radius:99px;background:var(--app-ink);opacity:.85}
.ga-screen--flush .ga-tabs{position:absolute;inset:auto 0 0}
.ga svg{flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ga .ga-sys svg{fill:currentColor;stroke:none}.ga .ga-sys .o{fill:none;stroke:currentColor;stroke-width:1;opacity:.45}

/* Type */
.ga p{margin:0}
.ga-head{margin:calc(6*var(--u)) 0 calc(16*var(--u))}.ga-head>p{font:500 calc(13*var(--u))/1.2 var(--font-body);color:var(--app-mute)}
.ga-head>div{display:flex;align-items:center;justify-content:space-between}
.ga-large{font:400 calc(40*var(--u))/1.05 var(--font-display);letter-spacing:-.01em}
.ga-display{margin:calc(6*var(--u)) 0 calc(10*var(--u))!important;font:400 calc(38*var(--u))/1.02 var(--font-display);letter-spacing:-.015em}
.ga-title{margin:calc(4*var(--u)) 0 calc(6*var(--u))!important;font:400 calc(29*var(--u))/1.06 var(--font-display);letter-spacing:-.01em}
.ga-dek{font:300 calc(15*var(--u))/1.45 var(--font-body);color:var(--app-soft)}
.ga-text,.ga-meta{font:400 calc(13.5*var(--u))/1.5 var(--font-body);color:var(--app-soft)}
.ga-meta{font-size:calc(12.5*var(--u));color:var(--app-mute)}
.ga-tag{font:500 calc(10*var(--u))/1.2 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--app-sage)}
.ga-tag--light{color:rgba(255,255,255,.82)}.ga-tag--amber{color:var(--app-amber)}
.ga-sec{display:flex;justify-content:space-between;align-items:baseline;margin:calc(20*var(--u)) 0 calc(10*var(--u))!important;font:500 calc(15*var(--u))/1.2 var(--font-body)}
.ga-sec span{font-size:calc(13*var(--u));font-weight:400;color:var(--app-sage)}

/* Controls */
.ga-avatar,.ga-icon-btn{display:grid;place-items:center;width:calc(38*var(--u));height:calc(38*var(--u));border-radius:50%;background:var(--app-sand);color:var(--app-soft)}
.ga-avatar svg,.ga-icon-btn svg{width:calc(20*var(--u));height:calc(20*var(--u))}
.ga-btn{display:inline-flex;align-items:center;gap:calc(7*var(--u));height:calc(40*var(--u));padding:0 calc(18*var(--u));border-radius:99px;font:500 calc(14*var(--u))/1 var(--font-body)}
.ga-btn svg{width:calc(15*var(--u));height:calc(15*var(--u))}
.ga-btn--ink{background:var(--app-ink);color:var(--app-bg)}.ga-btn--light{background:#fff;color:#1d1b19}.ga-btn--ghost{border:1px solid var(--app-rule);color:var(--app-ink);background:rgba(255,255,255,.06)}
.ga-cta{display:flex;align-items:center;justify-content:center;height:calc(52*var(--u));margin-top:calc(22*var(--u));border-radius:calc(16*var(--u));background:var(--app-ink);color:var(--app-bg);font:500 calc(15.5*var(--u))/1 var(--font-body)}
.ga-nav{display:grid;grid-template-columns:calc(32*var(--u)) 1fr calc(32*var(--u));align-items:center;margin:0 calc(-4*var(--u)) calc(14*var(--u));min-height:calc(40*var(--u))}
.ga-nav svg{width:calc(23*var(--u));height:calc(23*var(--u))}.ga-nav>svg:last-child{justify-self:end}
.ga-nav span{text-align:center;font:600 calc(15*var(--u))/1.2 var(--font-body)}.ga-nav small{display:block;margin-top:calc(2*var(--u));font:400 calc(11*var(--u))/1.2 var(--font-body);color:var(--app-mute)}
.ga-search{display:flex;align-items:center;gap:calc(9*var(--u));height:calc(44*var(--u));padding:0 calc(14*var(--u));border-radius:calc(13*var(--u));background:#ebe6dc;color:var(--app-mute);font:400 calc(15*var(--u))/1 var(--font-body)}
.ga-search svg{width:calc(18*var(--u));height:calc(18*var(--u))}
.ga-seg{display:flex;gap:calc(4*var(--u));padding:calc(3*var(--u));margin:0 0 calc(14*var(--u));border-radius:calc(11*var(--u));background:#ebe6dc}
.ga-seg span{flex:1;padding:calc(8*var(--u)) 0;border-radius:calc(8*var(--u));text-align:center;font:500 calc(12.5*var(--u))/1 var(--font-body);color:var(--app-soft)}
.ga-seg .is-on{background:var(--app-card);color:var(--app-ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.ga-seg--dark{background:#24221f}.ga-seg--dark .is-on{background:#3a3733;box-shadow:none}
.ga-chips{display:flex;flex-wrap:wrap;gap:calc(8*var(--u))}
.ga-chips span{display:inline-flex;align-items:center;gap:calc(5*var(--u));padding:calc(9*var(--u)) calc(14*var(--u));border:1px solid var(--app-rule);border-radius:99px;background:var(--app-card);font:400 calc(13.5*var(--u))/1 var(--font-body)}
.ga-chips .is-on{border-color:var(--app-forest);background:var(--app-forest);color:#f4f1ea}.ga-chips svg{width:calc(14*var(--u));height:calc(14*var(--u));stroke-width:2.2}
.ga-progress{display:flex;gap:calc(6*var(--u));margin:calc(8*var(--u)) 0 calc(18*var(--u))!important}
.ga-progress i{flex:1;height:calc(4*var(--u));border-radius:99px;background:var(--app-rule)}.ga-progress .is-on{background:var(--app-forest)}

/* Cards and rows */
.ga-feature{position:relative;height:calc(300*var(--u));overflow:hidden;border-radius:calc(22*var(--u));background:#2a2622;color:#fff}
.ga-feature--short{height:calc(200*var(--u))}
.ga-feature img,.ga-journey img,.ga-poster img,.ga-cover img,.ga-player img,.ga-inline img,.ga-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ga-feature::after,.ga-journey::after,.ga-poster::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 30%,rgba(12,10,8,.78))}
.ga-feature>div,.ga-journey>div{position:absolute;inset:auto 0 0;z-index:1;padding:calc(20*var(--u))}
.ga-feature-title{margin:calc(8*var(--u)) 0 calc(4*var(--u))!important;font:400 calc(30*var(--u))/1.02 var(--font-display);letter-spacing:-.01em;color:#fff}
.ga-feature-meta{margin-bottom:calc(14*var(--u))!important;font:400 calc(12.5*var(--u))/1.3 var(--font-body);color:rgba(255,255,255,.78)}
.ga-feature .ga-btn{height:calc(36*var(--u))}
.ga-hscroll{display:flex;gap:calc(10*var(--u));margin-right:calc(-20*var(--u))}
.ga-q{flex:none;width:calc(150*var(--u));min-height:calc(118*var(--u));padding:calc(14*var(--u));border-radius:calc(18*var(--u));background:var(--app-card);border:1px solid var(--app-rule);display:flex;flex-direction:column;justify-content:space-between}
.ga-q span{display:flex;align-items:center;gap:calc(5*var(--u));font:500 calc(10*var(--u))/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--app-soft)}.ga-q span svg{width:calc(14*var(--u));height:calc(14*var(--u))}
.ga-q p{font:400 calc(19*var(--u))/1.12 var(--font-display)}
.ga-q--sage{background:var(--app-sage-l);border-color:transparent}.ga-q--sand{background:var(--app-sand);border-color:transparent}
.ga-row{display:flex;align-items:center;gap:calc(12*var(--u));padding:calc(10*var(--u)) 0;border-bottom:1px solid var(--app-rule)}
.ga-row>div{flex:1;min-width:0}.ga-row>svg{width:calc(18*var(--u));height:calc(18*var(--u));color:var(--app-mute)}
.ga-row span{font:500 calc(9.5*var(--u))/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--app-sage)}
.ga-row p{margin-top:calc(4*var(--u))!important;font:400 calc(18*var(--u))/1.15 var(--font-display)}
.ga-row small{display:block;margin-top:calc(2*var(--u));font:400 calc(12*var(--u))/1.3 var(--font-body);color:var(--app-mute)}
.ga-thumb{flex:none;width:calc(58*var(--u));height:calc(58*var(--u));border-radius:calc(12*var(--u));object-fit:cover}
.ga-list p{display:flex;align-items:center;gap:calc(12*var(--u));padding:calc(13*var(--u)) 0;border-bottom:1px solid var(--app-rule);font:400 calc(15*var(--u))/1.2 var(--font-body)}
.ga-list svg{width:calc(19*var(--u));height:calc(19*var(--u));color:var(--app-soft)}.ga-list svg:last-child{margin-left:auto;width:calc(16*var(--u));color:var(--app-mute)}
.ga-hint{display:flex;gap:calc(10*var(--u));align-items:center;margin-top:calc(18*var(--u));padding:calc(14*var(--u));border-radius:calc(14*var(--u));background:var(--app-sage-l);font:400 calc(13*var(--u))/1.4 var(--font-body);color:var(--app-forest)}
.ga-hint svg{width:calc(20*var(--u));height:calc(20*var(--u))}

/* Player, cover, poster */
.ga-player{position:relative;height:calc(300*var(--u));background:#000;overflow:hidden}
.ga-player--tall{height:calc(410*var(--u))}
.ga-player::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.55),rgba(0,0,0,0) 30%,rgba(0,0,0,0) 65%,rgba(0,0,0,.6))}
.ga-player-top{position:absolute;inset:calc(58*var(--u)) calc(18*var(--u)) auto;z-index:2;display:flex;align-items:center;justify-content:space-between;color:#fff;font:500 calc(12.5*var(--u))/1 var(--font-body)}
.ga-player-top svg{width:calc(22*var(--u));height:calc(22*var(--u))}
.ga-play{position:absolute;left:50%;top:55%;z-index:2;display:grid;place-items:center;width:calc(64*var(--u));height:calc(64*var(--u));transform:translate(-50%,-50%);border-radius:50%;background:rgba(255,255,255,.22);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.ga-play svg{width:calc(26*var(--u));height:calc(26*var(--u));margin-left:calc(3*var(--u))}
.ga-scrub{position:absolute;inset:auto calc(18*var(--u)) calc(16*var(--u));z-index:2;height:calc(3*var(--u));border-radius:99px;background:rgba(255,255,255,.3)}
.ga-scrub i{position:absolute;inset:0 62% 0 0;border-radius:inherit;background:#fff}
.ga-scrub i::after{content:"";position:absolute;right:calc(-6*var(--u));top:50%;width:calc(12*var(--u));height:calc(12*var(--u));transform:translateY(-50%);border-radius:50%;background:#fff}
.ga-sub{position:absolute;inset:auto calc(26*var(--u)) calc(44*var(--u));z-index:2;text-align:center;font:500 calc(16*var(--u))/1.3 var(--font-body);color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.7)}
.ga-pad{padding:calc(18*var(--u)) calc(20*var(--u)) 0}
.ga-actions{display:flex;gap:calc(10*var(--u));margin:calc(14*var(--u)) 0}
.ga-actions .ga-btn{flex:1;justify-content:center}
.ga-cover{position:relative;height:calc(330*var(--u));overflow:hidden}
.ga-cover-nav{position:absolute;inset:calc(58*var(--u)) calc(16*var(--u)) auto;z-index:2;display:flex;justify-content:space-between}
.ga-cover-nav i{display:grid;place-items:center;width:calc(38*var(--u));height:calc(38*var(--u));border-radius:50%;background:rgba(255,255,255,.75);backdrop-filter:blur(8px);color:#1d1b19}
.ga-cover-nav svg{width:calc(19*var(--u));height:calc(19*var(--u))}
.ga-sheet{position:relative;z-index:2;margin-top:calc(-26*var(--u));padding:calc(22*var(--u)) calc(20*var(--u)) 0;border-radius:calc(26*var(--u)) calc(26*var(--u)) 0 0;background:var(--app-bg)}
.ga-kit{display:grid;grid-template-columns:repeat(4,1fr);gap:calc(8*var(--u))}
.ga-kit span{display:flex;flex-direction:column;align-items:center;gap:calc(6*var(--u));padding:calc(12*var(--u)) 0 calc(10*var(--u));border-radius:calc(14*var(--u));background:var(--app-card);border:1px solid var(--app-rule);font:400 calc(11.5*var(--u))/1 var(--font-body);color:var(--app-soft)}
.ga-kit svg{width:calc(26*var(--u));height:calc(26*var(--u));color:var(--app-forest);stroke-width:1.3}
.ga-num{margin:0;padding:0;list-style:none;counter-reset:n}
.ga-num li{counter-increment:n;display:grid;grid-template-columns:calc(28*var(--u)) 1fr;column-gap:calc(10*var(--u));padding:calc(7*var(--u)) 0;font:400 calc(13.5*var(--u))/1.4 var(--font-body);color:var(--app-soft)}
.ga-num li::before{content:counter(n);grid-row:span 2;display:grid;place-items:center;width:calc(26*var(--u));height:calc(26*var(--u));border-radius:50%;background:var(--app-sand);font:500 calc(12*var(--u))/1 var(--font-mono);color:var(--app-ink)}
.ga-num b{display:block;font-weight:500;color:var(--app-ink)}
.ga-callout{display:flex;gap:calc(10*var(--u));align-items:flex-start;margin-top:calc(12*var(--u));padding:calc(12*var(--u)) calc(14*var(--u));border-radius:calc(14*var(--u));background:var(--app-sage-l);color:var(--app-forest);font:400 calc(13.5*var(--u))/1.4 var(--font-body)}
.ga-callout svg{width:calc(19*var(--u));height:calc(19*var(--u))}.ga-callout b{display:block;font-weight:500}
.ga-poster{position:relative;height:calc(500*var(--u));overflow:hidden}
.ga-poster::after{background:linear-gradient(180deg,rgba(20,19,18,0) 35%,rgba(20,19,18,.7) 70%,#141312)}
.ga-poster>div{position:absolute;inset:auto 0 0;z-index:1;padding:0 calc(22*var(--u)) calc(6*var(--u));text-align:center;color:#fff}
.ga-original{font:500 calc(10*var(--u))/1 var(--font-mono);letter-spacing:.32em;text-transform:uppercase;color:var(--app-amber)}
.ga-poster-title{margin:calc(8*var(--u)) 0 calc(4*var(--u))!important;font:300 calc(58*var(--u))/.95 var(--font-display);letter-spacing:-.02em}
.ga-poster-sub{margin-bottom:calc(16*var(--u))!important;font:italic 400 calc(17*var(--u))/1.2 var(--font-display);color:rgba(255,255,255,.82)}
.ga-chapters>div{display:flex;align-items:center;gap:calc(12*var(--u));padding:calc(9*var(--u)) 0;border-bottom:1px solid var(--app-rule)}
.ga-chapters p{font:400 calc(18*var(--u))/1.15 var(--font-display)}.ga-chapters span{display:block;font:500 calc(10*var(--u))/1 var(--font-mono);letter-spacing:.14em;color:var(--app-amber);margin-bottom:calc(4*var(--u))}
.ga-chapters small{display:block;margin-top:calc(2*var(--u));font:400 calc(12*var(--u))/1.3 var(--font-body);color:var(--app-mute)}

/* Editorial */
.ga-inline{position:relative;height:calc(150*var(--u));margin:calc(16*var(--u)) 0;overflow:hidden;border-radius:calc(18*var(--u))}
.ga-quote{display:flex;gap:calc(8*var(--u));margin:0 0 calc(16*var(--u));font:italic 400 calc(21*var(--u))/1.2 var(--font-display);color:var(--app-forest)}
.ga-quote svg{width:calc(22*var(--u));height:calc(22*var(--u));color:var(--app-sage)}
.ga-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:0;padding:0;list-style:none;position:relative}
.ga-steps::before{content:"";position:absolute;left:16%;right:16%;top:calc(7*var(--u));height:1px;background:var(--app-sage)}
.ga-steps li{position:relative;text-align:center;padding-top:calc(22*var(--u))}
.ga-steps li::before{content:"";position:absolute;left:50%;top:0;width:calc(14*var(--u));height:calc(14*var(--u));transform:translateX(-50%);border-radius:50%;background:var(--app-bg);border:calc(2*var(--u)) solid var(--app-sage)}
.ga-steps li:first-child::before{background:var(--app-sage)}
.ga-steps b{display:block;font:500 calc(13.5*var(--u))/1.2 var(--font-body)}.ga-steps span{display:block;margin-top:calc(3*var(--u));padding:0 calc(4*var(--u));font:400 calc(11*var(--u))/1.35 var(--font-body);color:var(--app-mute)}
.ga-trail{margin:calc(20*var(--u)) 0 0;padding:0;list-style:none;counter-reset:n;position:relative}
.ga-trail::before{content:"";position:absolute;left:calc(13*var(--u));top:calc(14*var(--u));bottom:calc(30*var(--u));border-left:1px dashed var(--app-sage)}
.ga-trail li{counter-increment:n;position:relative;padding:0 0 calc(18*var(--u)) calc(42*var(--u))}
.ga-trail li::before{content:counter(n);position:absolute;left:0;top:0;display:grid;place-items:center;width:calc(27*var(--u));height:calc(27*var(--u));border-radius:50%;background:var(--app-forest);color:#f4f1ea;font:500 calc(11.5*var(--u))/1 var(--font-mono)}
.ga-trail b{display:block;font:400 calc(20*var(--u))/1.15 var(--font-display)}.ga-trail span{display:block;margin-top:calc(2*var(--u));font:400 calc(13*var(--u))/1.35 var(--font-body);color:var(--app-soft)}

/* Choices, journey, journal */
.ga-choices{display:grid;gap:calc(8*var(--u))}
.ga-choices span{display:flex;align-items:center;gap:calc(12*var(--u));padding:calc(13*var(--u)) calc(14*var(--u));border:1px solid var(--app-rule);border-radius:calc(14*var(--u));background:var(--app-card);font:400 calc(15*var(--u))/1 var(--font-body)}
.ga-choices b{flex:1;font-weight:400}.ga-choices svg{width:calc(21*var(--u));height:calc(21*var(--u));color:var(--app-soft)}
.ga-choices .is-on{border-color:var(--app-forest);box-shadow:inset 0 0 0 1px var(--app-forest)}.ga-choices .is-on svg:last-child{color:var(--app-forest);stroke-width:2.2}
.ga-journey{position:relative;height:calc(210*var(--u));overflow:hidden;border-radius:calc(22*var(--u));margin-bottom:calc(18*var(--u));color:#fff}
.ga-journey .ga-feature-title{font-size:calc(26*var(--u))}
.ga-ring{position:absolute;right:calc(18*var(--u));bottom:calc(18*var(--u));width:calc(52*var(--u));height:calc(52*var(--u));display:grid;place-items:center}
.ga-ring svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.ga-ring circle{stroke:rgba(255,255,255,.28);stroke-width:3}.ga-ring circle+circle{stroke:#fff}
.ga-ring b{font:500 calc(12*var(--u))/1 var(--font-mono)}
.ga-path{margin:0;padding:0;list-style:none;position:relative}
.ga-path li{position:relative;padding:0 0 calc(16*var(--u)) calc(40*var(--u))}
.ga-path li::before{content:"";position:absolute;left:calc(12.5*var(--u));top:calc(26*var(--u));bottom:0;border-left:calc(2*var(--u)) solid var(--app-rule)}
.ga-path li:last-child::before{display:none}.ga-path li.is-done::before{border-color:var(--app-sage)}
.ga-path i{position:absolute;left:0;top:0;display:grid;place-items:center;width:calc(27*var(--u));height:calc(27*var(--u));border-radius:50%;border:calc(2*var(--u)) solid var(--app-rule);background:var(--app-bg)}
.ga-path .is-done i{background:var(--app-sage);border-color:var(--app-sage);color:#fff}.ga-path i svg{width:calc(14*var(--u));height:calc(14*var(--u));stroke-width:2.4}
.ga-path .is-now i{border-color:var(--app-forest);box-shadow:0 0 0 calc(5*var(--u)) var(--app-sage-l)}.ga-path .is-now i::after{content:"";width:calc(9*var(--u));height:calc(9*var(--u));border-radius:50%;background:var(--app-forest)}
.ga-path b{display:block;font:400 calc(19*var(--u))/1.2 var(--font-display)}.ga-path span{display:block;margin-top:calc(2*var(--u));font:400 calc(12.5*var(--u))/1.3 var(--font-body);color:var(--app-mute)}
.ga-path .is-now span{color:var(--app-sage);font-weight:500}
.ga-path--compact li{padding-bottom:calc(12*var(--u))}
.ga-field{margin-top:calc(10*var(--u));padding:calc(13*var(--u)) calc(15*var(--u));border-radius:calc(14*var(--u));background:var(--app-card);border:1px solid var(--app-rule)}
.ga-field span{font:500 calc(10*var(--u))/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--app-mute)}
.ga-field p{margin-top:calc(6*var(--u))!important;font:400 calc(19*var(--u))/1.2 var(--font-display)}
.ga-field--struck p{color:var(--app-mute);text-decoration:line-through;text-decoration-color:#b2554a}
.ga-field--sage{background:var(--app-sage-l);border-color:transparent}.ga-field--sage span{color:var(--app-forest)}
.ga-field+.ga-chips{margin-top:calc(14*var(--u))}

/* Chat */
.ga-screen--chat .ga-view{display:flex;flex-direction:column}
.ga-chat{flex:1;display:flex;flex-direction:column;gap:calc(12*var(--u))}
.ga-me{align-self:flex-end;max-width:80%;padding:calc(11*var(--u)) calc(15*var(--u));border-radius:calc(20*var(--u)) calc(20*var(--u)) calc(6*var(--u)) calc(20*var(--u));background:var(--app-forest);color:#f4f1ea;font:400 calc(14.5*var(--u))/1.4 var(--font-body)}
.ga-answer{padding:calc(16*var(--u));border-radius:calc(20*var(--u));background:var(--app-card);border:1px solid var(--app-rule);font:400 calc(13.5*var(--u))/1.5 var(--font-body);color:var(--app-soft)}
.ga-answer-h{display:flex;align-items:center;gap:calc(7*var(--u));margin-bottom:calc(6*var(--u))!important;font:400 calc(21*var(--u))/1.15 var(--font-display);color:var(--app-ink)}
.ga-answer-h svg{width:calc(18*var(--u));height:calc(18*var(--u));color:var(--app-amber);fill:var(--app-amber);stroke:none}
.ga-answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:calc(8*var(--u));margin:calc(12*var(--u)) 0}
.ga-answer-grid p{padding:calc(10*var(--u));border-radius:calc(12*var(--u));background:var(--app-bg);font-size:calc(12.5*var(--u));line-height:1.35}
.ga-answer-grid b{display:block;margin-bottom:calc(3*var(--u));font:500 calc(10*var(--u))/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--app-sage)}
.ga-source{display:flex;align-items:center;gap:calc(7*var(--u));padding-top:calc(10*var(--u));border-top:1px solid var(--app-rule);font-size:calc(12.5*var(--u))}
.ga-source svg{width:calc(16*var(--u));height:calc(16*var(--u))}.ga-source span{font-weight:500;color:var(--app-ink)}.ga-source em{margin-left:auto;padding:calc(3*var(--u)) calc(8*var(--u));border-radius:99px;background:var(--app-sand);font-style:normal;font-size:calc(11*var(--u))}
.ga-suggest{display:flex;flex-wrap:wrap;gap:calc(6*var(--u))}.ga-suggest span{padding:calc(8*var(--u)) calc(12*var(--u));border-radius:99px;border:1px solid var(--app-rule);font:400 calc(12.5*var(--u))/1 var(--font-body);color:var(--app-soft)}
.ga-composer{flex:none;display:flex;align-items:center;gap:calc(10*var(--u));margin:calc(10*var(--u)) calc(-6*var(--u)) calc(34*var(--u));padding:calc(6*var(--u)) calc(6*var(--u)) calc(6*var(--u)) calc(16*var(--u));border-radius:99px;background:var(--app-card);border:1px solid var(--app-rule);font:400 calc(14.5*var(--u))/1 var(--font-body);color:var(--app-mute)}
.ga-composer span{flex:1}.ga-composer>svg{width:calc(20*var(--u));height:calc(20*var(--u))}
.ga-composer i{display:grid;place-items:center;width:calc(34*var(--u));height:calc(34*var(--u));border-radius:50%;background:var(--app-ink);color:var(--app-bg)}.ga-composer i svg{width:calc(17*var(--u));height:calc(17*var(--u));stroke-width:2.2}

/* Languages */
.ga-langs p{display:flex;flex-wrap:wrap;align-items:center;gap:0 calc(10*var(--u));padding:calc(12*var(--u)) 0;border-bottom:1px solid var(--app-rule);font:500 calc(15*var(--u))/1.2 var(--font-body)}
.ga-langs svg{width:calc(19*var(--u));height:calc(19*var(--u));color:var(--app-mute)}.ga-langs .is-on svg{color:var(--app-amber);stroke-width:2.2}
.ga-langs span{flex-basis:100%;padding-left:calc(29*var(--u));font:400 calc(12.5*var(--u))/1.4 var(--font-body);color:var(--app-mute)}
.ga-gloss{display:grid;grid-template-columns:1fr 1fr;gap:calc(8*var(--u))}
.ga-gloss p{padding:calc(12*var(--u));border-radius:calc(14*var(--u));background:var(--app-card);font:400 calc(12*var(--u))/1.35 var(--font-body);color:var(--app-soft)}.ga-gloss b{display:block;margin-bottom:calc(3*var(--u));font:400 calc(16*var(--u))/1.15 var(--font-display);color:var(--app-ink)}

/* Atlas */
.ga-atlas{margin:calc(14*var(--u)) 0 0}
.ga-atlas-svg{display:block;width:100%;height:auto}
.ga-orbit{fill:none;stroke:var(--app-sage);stroke-width:.25;stroke-dasharray:1 1.2}
.ga-core{fill:var(--app-amber);stroke:none}
.ga-cont circle{fill:var(--app-card);stroke:var(--app-rule);stroke-width:.35}.ga-cont .ga-dest{fill:var(--app-sage);stroke:none}
.ga-cont.is-on>circle:first-child{fill:var(--app-forest);stroke:var(--app-forest)}.ga-cont.is-on .ga-dest{fill:var(--app-amber)}
.ga-cont text{font:500 3.6px/1 var(--font-mono);fill:var(--app-ink);text-anchor:middle;stroke:none}.ga-cont.is-on text{fill:#f4f1ea}
.ga-grid2{display:grid;grid-template-columns:1fr 1fr;gap:calc(10*var(--u))}
.ga-tile{position:relative;height:calc(118*var(--u));overflow:hidden;border-radius:calc(16*var(--u));color:#fff}
.ga-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,.65))}
.ga-tile span,.ga-tile p{position:absolute;z-index:1;left:calc(12*var(--u))}
.ga-tile span{top:calc(10*var(--u));font:500 calc(10*var(--u))/1 var(--font-mono);letter-spacing:.14em}.ga-tile p{bottom:calc(10*var(--u));font:400 calc(18*var(--u))/1.1 var(--font-display)}
.ga-mapview{position:relative;height:calc(440*var(--u));padding:calc(70*var(--u)) calc(10*var(--u)) 0;background:radial-gradient(circle at 50% 45%,#efe8da,#e3dccd 70%)}
.ga-search--float{position:absolute;inset:calc(58*var(--u)) calc(18*var(--u)) auto;background:rgba(255,253,248,.92);box-shadow:0 4px 20px rgba(0,0,0,.08)}
.ga-mapview .ga-atlas-svg{margin-top:calc(14*var(--u))}
.ga-sheet--map{margin-top:calc(-30*var(--u));box-shadow:0 -6px 24px rgba(0,0,0,.08)}
.ga-grip{display:block;width:calc(40*var(--u));height:calc(5*var(--u));margin:calc(-12*var(--u)) auto calc(12*var(--u));border-radius:99px;background:var(--app-rule)}

/* Legacy concept screens, set in the same kit */
.ga-legacy .g-label{margin:calc(4*var(--u)) 0 calc(8*var(--u));font:500 calc(10*var(--u))/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--app-sage)}
.ga-legacy h4{margin:calc(6*var(--u)) 0 calc(14*var(--u));font:400 calc(36*var(--u))/1.03 var(--font-display);letter-spacing:-.015em}
.ga-legacy h5{margin:calc(18*var(--u)) 0 calc(8*var(--u));font:500 calc(15*var(--u))/1.2 var(--font-body)}
.ga-legacy p,.ga-legacy li{font:400 calc(14*var(--u))/1.5 var(--font-body);color:var(--app-soft)}
.ga-legacy img{display:block;width:100%;height:calc(170*var(--u));object-fit:cover;border-radius:calc(18*var(--u));margin:calc(4*var(--u)) 0 calc(8*var(--u))}
.ga-legacy .g-screen-row{display:flex;align-items:center;justify-content:space-between;gap:calc(10*var(--u));padding:calc(13*var(--u)) calc(2*var(--u));border-bottom:1px solid var(--app-rule);font:400 calc(15*var(--u))/1.3 var(--font-body);color:var(--app-ink)}
.ga-legacy .g-screen-row::after{content:"";flex:none;width:calc(7*var(--u));height:calc(7*var(--u));border-top:1.5px solid var(--app-mute);border-right:1.5px solid var(--app-mute);transform:rotate(45deg)}
.ga-legacy .g-screen-row span{margin-left:auto;font:500 calc(9.5*var(--u))/1 var(--font-mono);letter-spacing:.12em;color:var(--app-sage)}
.ga-legacy .g-chips{display:flex;flex-wrap:wrap;gap:calc(7*var(--u));margin:calc(10*var(--u)) 0}
.ga-legacy .g-chip{padding:calc(8*var(--u)) calc(13*var(--u));border-radius:99px;border:1px solid var(--app-rule);background:var(--app-card);font:400 calc(13*var(--u))/1 var(--font-body)}
.ga-legacy ol{padding-left:calc(20*var(--u))}

/* Shared stage for several phones (hero fan, theatre) */
.ga-shadow{filter:drop-shadow(0 30px 50px rgba(20,16,12,.28))}

/* Concept screens */
.ga-pad--lift{position:relative;z-index:2;margin-top:calc(-70*var(--u))}
.ga-lessons p{display:flex;align-items:center;gap:calc(12*var(--u));padding:calc(14*var(--u)) 0;border-bottom:1px solid var(--app-rule);font:400 calc(15*var(--u))/1.25 var(--font-body)}
.ga-lessons b{font:500 calc(11*var(--u))/1 var(--font-mono);color:var(--app-amber)}.ga-lessons svg{margin-left:auto;width:calc(16*var(--u));height:calc(16*var(--u));color:var(--app-mute)}
.ga-board{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(6*var(--u));margin:calc(14*var(--u)) 0 calc(16*var(--u))}
.ga-board span{position:relative;height:calc(120*var(--u));overflow:hidden;border-radius:calc(12*var(--u))}
.ga-board img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.9)}
.ga-board .f1 img{object-position:20% 40%}.ga-board .f2 img{object-position:55% 55%}.ga-board .f3 img{object-position:85% 45%}
.ga-board b{position:absolute;left:calc(8*var(--u));bottom:calc(7*var(--u));font:500 calc(10*var(--u))/1 var(--font-mono);color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.6)}
.ga-cover--short{height:calc(250*var(--u))}
.ga-group{margin-top:calc(16*var(--u));border-radius:calc(16*var(--u));background:var(--app-card);border:1px solid var(--app-rule)}
.ga-group p{display:flex;align-items:center;gap:calc(13*var(--u));padding:calc(13*var(--u)) calc(14*var(--u));border-top:1px solid var(--app-rule);font:400 calc(13*var(--u))/1.35 var(--font-body);color:var(--app-soft)}
.ga-group p:first-child{border-top:0}.ga-group svg{width:calc(21*var(--u));height:calc(21*var(--u));color:var(--app-forest)}
.ga-group b{display:block;font:500 calc(14.5*var(--u))/1.2 var(--font-body);color:var(--app-ink)}
.ga-display--xl{font-size:calc(54*var(--u));line-height:.98}
.ga-lens{display:grid;gap:calc(8*var(--u));margin:calc(18*var(--u)) 0 0}
.ga-lens p{padding:calc(13*var(--u)) calc(14*var(--u));border-radius:calc(14*var(--u));background:var(--app-card);border:1px solid var(--app-rule);font:400 calc(17*var(--u))/1.2 var(--font-display)}
.ga-lens span{display:block;margin-bottom:calc(4*var(--u));font:500 calc(10*var(--u))/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--app-sage)}
.ga-paths{display:grid;gap:calc(8*var(--u));margin-top:calc(18*var(--u))}
.ga-paths p{display:grid;grid-template-columns:1fr auto;align-items:center;padding:calc(15*var(--u)) calc(16*var(--u));border-radius:calc(16*var(--u));background:var(--app-card);border:1px solid var(--app-rule)}
.ga-paths b{font:400 calc(21*var(--u))/1.1 var(--font-display)}.ga-paths span{grid-column:1;font:400 calc(12.5*var(--u))/1.3 var(--font-body);color:var(--app-mute)}
.ga-paths svg{grid-row:1/span 2;grid-column:2;width:calc(18*var(--u));height:calc(18*var(--u));color:var(--app-mute)}
.ga-paths .is-on{background:var(--app-forest);border-color:var(--app-forest);color:#f4f1ea}.ga-paths .is-on span{color:rgba(244,241,234,.7)}
.ga-paths em{grid-row:1/span 2;grid-column:2;padding:calc(5*var(--u)) calc(9*var(--u));border-radius:99px;background:rgba(255,255,255,.14);font:500 calc(10*var(--u))/1 var(--font-mono);font-style:normal;letter-spacing:.08em;text-transform:uppercase}
.ga-graph svg{display:block;width:100%;height:auto;margin:calc(10*var(--u)) 0}
.ga-graph line{stroke:var(--app-sage);stroke-width:.5;stroke-dasharray:1.5 1.2}
.ga-graph circle{fill:var(--app-card);stroke:var(--app-sage);stroke-width:.6}.ga-graph .is-on circle{fill:var(--app-forest);stroke:var(--app-forest)}
.ga-graph text{font:400 4.6px/1 var(--font-body);fill:var(--app-ink);text-anchor:middle;stroke:none}
.ga-bands{display:grid;grid-template-columns:repeat(4,1fr);gap:calc(4*var(--u));margin:calc(16*var(--u)) 0}
.ga-bands span{padding:calc(11*var(--u)) 0;border-radius:calc(10*var(--u));background:#ebe6dc;text-align:center;font:500 calc(13*var(--u))/1 var(--font-mono);color:var(--app-soft)}
.ga-bands .is-on{background:var(--app-forest);color:#f4f1ea}
.ga-age{padding:calc(16*var(--u));margin-bottom:calc(6*var(--u));border-radius:calc(16*var(--u));background:var(--app-sage-l)}
.ga-search--q{color:var(--app-ink);margin-top:calc(8*var(--u))}
.ga-results{display:grid;gap:calc(8*var(--u))}
.ga-results p{padding:calc(12*var(--u)) calc(14*var(--u));border-radius:calc(14*var(--u));background:var(--app-card);border:1px solid var(--app-rule);font:400 calc(17*var(--u))/1.2 var(--font-display)}
.ga-results span{display:block;margin-bottom:calc(4*var(--u));font:500 calc(10*var(--u))/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--app-sage)}
.ga-venn svg{display:block;width:88%;height:auto;margin:calc(4*var(--u)) auto calc(6*var(--u))}
.ga-venn circle{fill:var(--app-sage);fill-opacity:.16;stroke:var(--app-sage);stroke-width:.5}.ga-venn circle:nth-child(2){fill:var(--app-amber);stroke:var(--app-amber)}.ga-venn circle:nth-child(3){fill:var(--app-forest);stroke:var(--app-forest);fill-opacity:.1}
.ga-venn text{font:400 6px/1 var(--font-display);fill:var(--app-ink);text-anchor:middle;stroke:none}
.v2-screen-dialog .ga{max-width:400px}
.ga-quote--small{font-size:calc(18*var(--u))}

/* 18-product-stage.css */
/* Product stage (src/product-stage.mjs): Guide and the Pathways presented as products. Dark stages for the reveals,
   ivory for the reading; amber marks what is being built, sage what is delivered. The still layout is the default:
   .xp-js (experience.js, never for reduced motion) adds the scroll-driven motion through --p. */
.pb,.gx-hero,.gx-atlas,.gx-premiere,.st,.pl-lineup,.mc,.lp{--amber:#e3b363;--sage-l:#9fbaa8}

/* Product Bar */
.pb{position:sticky;top:var(--header-h);z-index:40;background:color-mix(in srgb,var(--paper-light) 90%,transparent);backdrop-filter:saturate(1.2) blur(12px);-webkit-backdrop-filter:saturate(1.2) blur(12px);border-bottom:1px solid var(--rule)}
.pb-in{display:flex;align-items:center;gap:28px;min-height:54px}
.pb-name{margin:0;flex:none;font:400 21px/1 var(--font-display);letter-spacing:-.005em}
.pb ul{display:flex;gap:22px;flex:1;margin:0;padding:0;overflow-x:auto;scrollbar-width:none;list-style:none}
.pb a{white-space:nowrap}
.pb li a{display:block;padding:17px 0 15px;border-bottom:2px solid transparent;font-size:13.5px;color:var(--ink-soft);text-decoration:none;transition:color .2s,border-color .2s}
.pb li a:hover{color:var(--ink)}.pb li a[aria-current="true"]{color:var(--ink);border-bottom-color:var(--ink)}
.pb-cta{flex:none;margin-left:auto;padding:9px 16px;border-radius:999px;background:var(--ink);color:var(--paper-light);font-size:13px;text-decoration:none;transition:background .2s}
.pb-cta:hover{background:var(--ink-3)}
.pb :is(a):focus-visible{outline:2px solid var(--ink);outline-offset:2px}
@media(max-width:860px){.pb ul{display:none}.pb-name{font-size:19px}}

/* Shared dark stage */
.gx-hero,.gx-atlas,.gx-premiere{position:relative;isolation:isolate;overflow:hidden;background:#121110;color:var(--on-dark)}
.gx-hero .btn--primary,.gx-atlas .btn--primary,.gx-premiere .btn--primary{background:var(--paper-light);border-color:var(--paper-light);color:var(--ink)}
.gx-hero .btn--primary:hover,.gx-atlas .btn--primary:hover,.gx-premiere .btn--primary:hover{background:var(--paper)}
.gx-hero .btn--secondary,.gx-atlas .btn--secondary,.gx-premiere .btn--secondary{border-color:rgba(247,247,242,.55);color:var(--on-dark)}
.gx-hero .btn--secondary:hover,.gx-atlas .btn--secondary:hover,.gx-premiere .btn--secondary:hover{background:var(--on-dark);color:var(--ink)}
:is(.gx-hero,.gx-atlas,.gx-premiere) :is(a,button):focus-visible{outline:2px solid var(--on-dark);outline-offset:3px}
:is(.gx-hero,.gx-atlas,.gx-premiere) a:not(.btn){color:var(--on-dark)}
.gx-glow{position:absolute;inset:auto -20% -30% -20%;z-index:-1;height:80%;background:radial-gradient(50% 55% at 50% 70%,rgba(227,179,99,.30),rgba(227,179,99,.08) 45%,transparent 70%);pointer-events:none}
.gx-glow--cool{inset:-10% -10% -10% 30%;height:auto;background:radial-gradient(45% 45% at 60% 50%,rgba(159,186,168,.22),rgba(159,186,168,.05) 50%,transparent 72%)}
.gx-title{margin:.16em auto .3em;max-width:17ch;font:300 clamp(46px,6.6vw,104px)/.94 var(--font-display);letter-spacing:-.03em;text-wrap:balance}
.gx-title--left{margin-left:0;max-width:13ch;font-size:clamp(44px,5.6vw,88px)}
.gx-lede{max-width:46ch;margin:0 auto;font-size:clamp(17px,1.35vw,20px);line-height:1.55;color:var(--on-dark-soft)}
.gx-support{max-width:46ch;margin:14px 0 0;font-size:15px;line-height:1.55;color:var(--on-dark-mute)}
.gx-note{display:flex;flex-direction:column;gap:6px;align-items:center;margin:0 auto;padding-bottom:clamp(36px,4vw,56px);max-width:62ch;text-align:center;font-size:13px;line-height:1.5;color:var(--on-dark-mute)}
.gx-note span{font:400 10.5px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase}
.gx-note--left{align-items:flex-start;text-align:left;margin:22px 0 0;padding:0}

/* Guide Reveal */
.gx-hero{padding-top:clamp(44px,5vw,80px)}
.gx-copy{text-align:center}
.gx-copy .ln-status{margin:0 auto}
.gx-name{margin:22px 0 0;font:italic 300 clamp(22px,2.2vw,32px)/1 var(--font-display);color:var(--amber)}
.gx-copy .btn-row{justify-content:center;margin-top:30px}
.gx-fan{position:relative;height:clamp(400px,42vw,620px);margin:clamp(28px,3vw,48px) auto 0;max-width:1200px;clip-path:inset(-200px -100vw 0 -100vw)}
.gx-phone{position:absolute;left:50%;top:0;width:clamp(230px,23vw,350px);transform:translateX(-50%);transition:transform .2s linear}
.gx-phone .ga{max-width:none;filter:drop-shadow(0 40px 60px rgba(0,0,0,.55))}
.gx-phone--l,.gx-phone--r{width:clamp(200px,20vw,305px);top:14%;z-index:-1}
.gx-phone--l{transform:translateX(calc(-50% - 82% - var(--p,0)*30%)) rotate(calc(-6deg - var(--p,0)*5deg))}
.gx-phone--r{transform:translateX(calc(-50% + 82% + var(--p,0)*30%)) rotate(calc(6deg + var(--p,0)*5deg))}
.gx-phone--c{transform:translateX(-50%) translateY(calc(var(--p,0)*-6%))}
.gx-hero .gx-note{position:relative;margin-top:-1px;padding-top:24px;background:linear-gradient(180deg,rgba(18,17,16,0),#121110 40%)}
.xp-js .gx-copy{opacity:calc(1 - var(--p,0)*1.4);transform:translateY(calc(var(--p,0)*-40px))}
@media(prefers-reduced-motion:no-preference){
 .gx-phone .ga{animation:gx-rise 1.4s cubic-bezier(.2,.7,.2,1) both}.gx-phone--l .ga{animation-delay:.18s}.gx-phone--r .ga{animation-delay:.3s}
 .gx-copy>*{animation:gx-in 1s cubic-bezier(.2,.7,.2,1) both}.gx-copy>:nth-child(2){animation-delay:.08s}.gx-copy>:nth-child(3){animation-delay:.16s}.gx-copy>:nth-child(4){animation-delay:.26s}.gx-copy>:nth-child(5){animation-delay:.36s}
}
@keyframes gx-rise{from{opacity:0;transform:translateY(22%)}to{opacity:1;transform:none}}
@keyframes gx-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media(max-width:700px){.gx-fan{height:104vw}.gx-phone{width:58vw}.gx-phone--l,.gx-phone--r{width:46vw;top:12%}.gx-phone--l{transform:translateX(calc(-50% - 74%)) rotate(-7deg)}.gx-phone--r{transform:translateX(calc(-50% + 74%)) rotate(7deg)}}

/* Statement */
.gx-statement{padding:clamp(88px,11vw,180px) 0}
.gx-kicker{margin:0 0 28px;font:400 11px/1.3 var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute)}
.gx-words{max-width:22em;margin:0;font:300 clamp(30px,3.7vw,58px)/1.16 var(--font-display);letter-spacing:-.012em;color:var(--ink);text-wrap:pretty}
.gx-words .w{transition:opacity .35s ease}
.xp-js .gx-words .w{opacity:.16}.xp-js .gx-words .w.is-lit{opacity:1}

/* Screen Theatre */
.st-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,420px);gap:clamp(40px,6vw,110px);margin-top:clamp(24px,3vw,48px)}
.st-steps{margin:0;padding:0;list-style:none}
.st-step{display:flex;flex-direction:column;justify-content:center;min-height:min(78vh,760px);padding:24px 0;transition:opacity .5s ease}
.st-live .st-step{opacity:.28}.st-live .st-step.is-active{opacity:1}
.st-kicker{display:flex;align-items:center;gap:14px;margin:0 0 18px;font:400 11px/1 var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute)}
.st-kicker span{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--rule-strong);border-radius:50%;letter-spacing:.04em;color:var(--ink)}
.st-step.is-active .st-kicker span{background:var(--ink);border-color:var(--ink);color:var(--paper-light)}
.st-title{margin:0;max-width:14ch;font:300 clamp(36px,4vw,62px)/1.02 var(--font-display);letter-spacing:-.02em;text-wrap:balance}
.st-body{max-width:40ch;margin:20px 0 0;font-size:clamp(16px,1.25vw,19px);line-height:1.6;color:var(--ink-soft)}
.st-status{display:inline-flex;align-items:center;gap:9px;margin:22px 0 0;font:400 10.5px/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}
.st-status::before{content:"";width:8px;height:8px;border-radius:50%;border:1.5px solid #c4913c}
.st-inline{display:none}
.st-stick{position:sticky;top:calc(var(--header-h) + 54px + 3vh);align-self:start;height:calc(100svh - var(--header-h) - 54px - 6vh);display:flex;align-items:center;justify-content:center}
.st-stack{position:relative;width:min(100%,calc((100svh - var(--header-h) - 54px - 6vh - 90px)*414/868))}
.st-screen{position:absolute;inset:0 0 auto;opacity:0;transform:translateY(24px) scale(.985);transition:opacity .55s ease,transform .7s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.st-screen:first-child{position:relative}
.st-screen.is-active{opacity:1;transform:none}
.st-stack .ga{max-width:none}.st-stack .ga-body{box-shadow:0 30px 70px rgba(30,24,18,.22)}
/* Below 900px the chapters become a swipe rail, edge to edge: each slide its words above its own phone (phones share a baseline). */
@media(max-width:900px){.st-grid{grid-template-columns:1fr}.st-stick{display:none}.st .st-steps{display:flex;gap:16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;margin-inline:calc(-1*var(--gutter));padding:0 var(--gutter) 4px;scroll-padding-inline:var(--gutter);scrollbar-width:none}.st-steps::-webkit-scrollbar{display:none}.st-step{flex:0 0 min(82vw,400px);min-height:0;padding:24px 0 0;opacity:1!important;border-top:1px solid var(--rule);scroll-snap-align:start;justify-content:flex-start}.st-step .st-kicker span{background:var(--ink);border-color:var(--ink);color:var(--paper-light)}.st-title{font-size:clamp(30px,8vw,40px)}.st-body{font-size:16px}.st-inline{display:block;max-width:250px;margin:28px auto 0;margin-top:auto;padding-top:28px;width:72%}}
@media(min-width:901px){.st .g-rail-controls{display:none!important}}

/* Atlas hero */
.gx-atlas{background:#0f1413;padding:clamp(48px,6vw,96px) 0 clamp(40px,5vw,72px)}
.gx-atlas-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(24px,4vw,64px);align-items:center}
.gx-atlas-copy .ln-status{margin-bottom:18px}
.gx-atlas-copy .gx-lede{margin:0}
.gx-atlas-copy .btn-row{margin-top:28px}
.as{margin:0}.as svg{display:block;width:100%;height:auto;overflow:visible}
.as figcaption{margin-top:10px;text-align:center;font:400 10.5px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-mute)}
.as-orbit{fill:none;stroke:rgba(247,247,242,.16);stroke-width:1;stroke-dasharray:2 7}.as-orbit--in{stroke:rgba(247,247,242,.08)}
.as-threads path{fill:none;stroke:rgba(227,179,99,.14);stroke-width:.7}
.as-cont line{stroke:rgba(247,247,242,.28);stroke-width:.8}
.as-halo{fill:rgba(159,186,168,.07);stroke:rgba(159,186,168,.18)}
.as-node{fill:#9fbaa8;stroke:#0f1413;stroke-width:3}
.as-dest{fill:var(--on-dark)}
.as-num{font:400 11px/1 var(--font-mono);letter-spacing:.18em;fill:var(--amber);text-anchor:middle}
.as-name{font:400 19px/1 var(--font-display);fill:var(--on-dark);text-anchor:middle;paint-order:stroke;stroke:#0f1413;stroke-width:5px}
.as-core{fill:var(--amber)}.as-core-glow{fill:rgba(227,179,99,.14)}
.as-core-label{font:italic 400 17px/1 var(--font-display);fill:var(--on-dark-soft);text-anchor:middle}
/* Each continent is a link to its destinations: the halo answers hover and focus. */
.as-cont{cursor:pointer;outline:none}.as-halo{transition:fill .3s,stroke .3s}.as-cont:is(:hover,:focus-visible) .as-halo{fill:rgba(159,186,168,.2);stroke:var(--on-dark);stroke-width:1.5}.as-cont:focus-visible .as-halo{stroke-width:3}.as-cont:is(:hover,:focus-visible) .as-node{fill:var(--amber)}
@media(prefers-reduced-motion:no-preference){
 .as-threads path{stroke-dasharray:1 1;animation:as-draw 2.6s cubic-bezier(.45,0,.2,1) .6s both}.as-threads path:nth-child(3n+1){animation-delay:.9s}.as-threads path:nth-child(3n+2){animation-delay:1.2s}
 .as-dest{animation:as-twinkle 4.8s ease-in-out infinite}
 .as-cont--2 .as-dest{animation-delay:-.8s}.as-cont--3 .as-dest{animation-delay:-1.6s}.as-cont--4 .as-dest{animation-delay:-2.4s}.as-cont--5 .as-dest{animation-delay:-3.2s}.as-cont--6 .as-dest{animation-delay:-4s}
 .as-core-glow{animation:as-breathe 5s ease-in-out infinite;transform-origin:center;transform-box:fill-box}
 .as-cont{animation:gx-in 1.2s cubic-bezier(.2,.7,.2,1) both}.as-cont--2{animation-delay:.1s}.as-cont--3{animation-delay:.2s}.as-cont--4{animation-delay:.3s}.as-cont--5{animation-delay:.4s}.as-cont--6{animation-delay:.5s}
}
@keyframes as-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes as-twinkle{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes as-breathe{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.25);opacity:.5}}
@media(max-width:900px){.gx-atlas-grid{grid-template-columns:1fr}.as{max-width:560px;margin:8px auto 0}}
@media(max-width:700px){.as-num{font-size:20px}.as-name{font-size:23px;stroke-width:6px}.as-core-label{font-size:21px}}

/* Premiere */
.gx-premiere{display:flex;align-items:flex-end;min-height:min(calc(100svh - var(--header-h)),1000px)}
.gx-premiere-media{position:absolute;inset:0;z-index:-2;overflow:hidden}
.gx-premiere-media img,.gx-premiere-media video{display:block;width:100%;height:100%;object-fit:cover;transform:scale(calc(1.04 + var(--p,0)*.08));transform-origin:60% 40%}
.gx-premiere-media .pt-concept{top:16px;bottom:auto;left:var(--gutter)}
.gx-premiere-media .pt-play{right:var(--gutter);top:16px;bottom:auto}
.gx-premiere-veil{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(14,13,12,.86) 0%,rgba(14,13,12,.55) 46%,rgba(14,13,12,.12) 100%),linear-gradient(180deg,rgba(14,13,12,0) 50%,rgba(14,13,12,.85) 100%)}
.gx-premiere-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:clamp(32px,5vw,80px);align-items:end;width:100%;padding-top:clamp(80px,10vw,160px);padding-bottom:clamp(40px,5vw,72px)}
.gx-original{display:flex;align-items:center;gap:14px;margin:0;font:400 11px/1 var(--font-mono);letter-spacing:.34em;text-transform:uppercase;color:var(--amber)}
.gx-original span{width:36px;height:1px;background:currentColor;opacity:.6}
.gx-premiere-title{margin:22px 0 0;font:300 clamp(64px,9.6vw,156px)/.86 var(--font-display);letter-spacing:-.035em}
.gx-premiere-title span{display:block;margin-top:.12em;font:italic 300 clamp(32px,4.2vw,68px)/1 var(--font-display);letter-spacing:-.01em;color:var(--on-dark-soft)}
.gx-facts{display:flex;flex-wrap:wrap;gap:8px 0;margin:26px 0 22px;padding:0;list-style:none;font:400 11px/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-soft)}
.gx-facts li+li::before{content:"·";margin:0 12px;color:var(--amber)}
.gx-premiere .gx-lede{margin:0;max-width:44ch}
.gx-premiere .btn-row{margin-top:28px}
.gx-aside{margin:16px 0 0;font-size:15px}
.gx-premiere-phone .ga-cap{color:var(--on-dark-mute)}
.gx-premiere-phone .ga{filter:drop-shadow(0 40px 60px rgba(0,0,0,.6))}
.xp-js .gx-premiere-copy{transform:translateY(calc(var(--p,0)*-50px));opacity:calc(1 - var(--p,0)*.9)}
.xp-js .gx-premiere-phone{transform:translateY(calc(var(--p,0)*-110px))}
@media(prefers-reduced-motion:no-preference){.gx-premiere-copy>*{animation:gx-in 1.1s cubic-bezier(.2,.7,.2,1) both}.gx-premiere-copy>:nth-child(2){animation-delay:.1s}.gx-premiere-copy>:nth-child(3){animation-delay:.22s}.gx-premiere-copy>:nth-child(n+4){animation-delay:.34s}.gx-premiere-phone .ga{animation:gx-rise 1.5s .3s cubic-bezier(.2,.7,.2,1) both}}
@media(max-width:900px){.gx-premiere-grid{grid-template-columns:1fr}.gx-premiere-phone{max-width:280px;width:78%;margin:8px auto 0}}

/* Pathway Lineup */
.pl-lineup{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none}
.pl-card a{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:clamp(480px,42vw,620px);overflow:hidden;border-radius:22px;background:var(--ink);color:var(--on-dark);text-decoration:none;isolation:isolate;transition:transform .6s cubic-bezier(.2,.7,.2,1),box-shadow .6s}
.pl-media{position:absolute;inset:0;z-index:-2}
.pl-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.pl-media .pt-concept{top:16px;bottom:auto;right:16px;left:auto}
.pl-card a::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(18,17,16,.1) 0%,rgba(18,17,16,.15) 35%,rgba(18,17,16,.88) 78%)}
.pl-copy{padding:22px 22px 24px}
.pl-n{position:absolute;top:18px;left:20px;margin:0;font:400 11px/1 var(--font-mono);letter-spacing:.18em;color:var(--on-dark-soft)}
.pl-copy .ln-status{font-size:9.5px;letter-spacing:.1em;padding:5px 11px 5px 9px}
.pl-name{margin:14px 0 0;font:300 clamp(30px,2.6vw,42px)/1 var(--font-display);letter-spacing:-.015em}
.pl-line{margin:8px 0 0;font:italic 400 clamp(18px,1.4vw,22px)/1.2 var(--font-display);color:var(--on-dark-soft)}
.pl-for{margin:12px 0 0;font-size:14px;line-height:1.5;color:var(--on-dark-mute)}
.pl-cta{display:inline-block;margin-top:18px;font-size:14px;border-bottom:1px solid rgba(247,247,242,.45);padding-bottom:2px}
.pl-card a:hover,.pl-card a:focus-visible{transform:translateY(-6px);box-shadow:0 30px 60px rgba(25,20,15,.25)}
.pl-card a:hover img,.pl-card a:focus-visible img{transform:scale(1.06)}
.pl-card a:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
@media(max-width:1000px){.pl-lineup{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.pl-lineup{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin-right:calc(-1*var(--gutter));padding-right:var(--gutter);scrollbar-width:none}.pl-card{flex:0 0 80%;scroll-snap-align:start}.pl-card a{min-height:460px}}

/* Mastery Curve */
.mc{max-width:1040px;margin:0}
.mc-stage{padding:clamp(18px,3vw,40px);border-radius:24px;background:var(--paper-light);border:1px solid var(--rule)}
.mc svg{display:block;width:100%;height:auto;overflow:visible}
.mc-grid line{stroke:var(--rule)}.mc-axis{stroke:var(--rule-strong)}
.mc-ax{font:400 11px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;fill:var(--ink-mute)}
.mc-ax:first-of-type{text-anchor:end}
.mc-watch{fill:none;stroke:var(--ink-mute);stroke-width:2;stroke-dasharray:.012 .012}
.mc-path{fill:none;stroke:#2b3a32;stroke-width:3.5;stroke-linecap:round}
.mc-st circle{fill:var(--paper-light);stroke:#2b3a32;stroke-width:2.5}.mc-st line{stroke:#2b3a32;stroke-opacity:.18;stroke-dasharray:3 4}
.mc-st text{font:400 19px/1 var(--font-display);fill:var(--ink)}
.mc-label{font:400 11px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase}
.mc-label--watch{fill:var(--ink-mute);text-anchor:end}.mc-label--path{fill:#2b3a32;text-anchor:end}
.mc figcaption{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:baseline;margin-top:14px;max-width:72ch;font-size:14px;line-height:1.5;color:var(--ink-mute)}
.mc-badge{font:400 10.5px/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.xp-js .mc-path{stroke-dasharray:1 1;stroke-dashoffset:calc(1 - min(1,var(--p,0)*1.15))}
.xp-js .mc-st{opacity:0;transition:opacity .5s}
.xp-js .mc-st--1{opacity:clamp(0,(var(--p,0) - .18)*8,1)}.xp-js .mc-st--2{opacity:clamp(0,(var(--p,0) - .38)*8,1)}.xp-js .mc-st--3{opacity:clamp(0,(var(--p,0) - .56)*8,1)}.xp-js .mc-st--4{opacity:clamp(0,(var(--p,0) - .74)*8,1)}

/* Practice Loop */
.lp{display:grid;grid-template-columns:minmax(260px,420px) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:center}
.lp-figure{position:relative}
.lp-figure svg{display:block;width:100%;height:auto}
.lp-ring{fill:none;stroke:var(--rule-strong);stroke-width:1.2;stroke-dasharray:2 6}
.lp-arc{fill:none;stroke:var(--amber);stroke-width:3;stroke-linecap:round;stroke-dasharray:1 100;transition:stroke-dasharray .8s cubic-bezier(.2,.7,.2,1)}
.lp-st circle{fill:var(--paper-light);stroke:var(--rule-strong);stroke-width:1.2;transition:fill .4s,stroke .4s}
.lp-st text{font:400 11px/1 var(--font-mono);letter-spacing:.06em;fill:var(--ink-soft);text-anchor:middle;transition:fill .4s}
.lp-st.is-active circle{fill:var(--ink);stroke:var(--ink)}.lp-st.is-active text{fill:var(--paper-light)}
.lp-centre{position:absolute;inset:28%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.lp-label{margin:0 0 10px;font:400 10.5px/1.3 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute)}
.lp-now{display:none;margin:0;font:300 clamp(28px,3vw,44px)/1 var(--font-display);letter-spacing:-.015em}
.lp-now.is-active{display:block;animation:gx-in .6s cubic-bezier(.2,.7,.2,1) both}
.lp-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--rule)}
.lp-item{border-bottom:1px solid var(--rule)}
.lp-item button{display:flex;align-items:baseline;gap:18px;width:100%;padding:20px 0 6px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.lp-n{font:400 11px/1 var(--font-mono);letter-spacing:.1em;color:var(--ink-mute)}
.lp-t{font:400 clamp(22px,2vw,30px)/1.1 var(--font-display);transition:color .3s}
.lp-item p{margin:0;padding:0 0 18px 38px;max-width:46ch;color:var(--ink-soft);line-height:1.55}
.lp-item button:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.lp-live .lp-item:not(.is-active) .lp-t{color:var(--ink-mute)}
.lp-live .lp-item:not(.is-active) p{display:none}
.lp-live .lp-item.is-active .lp-n{color:#8a5220}
.sec--deep .lp-st:not(.is-active) circle,.sec--light .lp-st:not(.is-active) circle{fill:var(--paper)}
@media(max-width:820px){.lp{grid-template-columns:1fr}.lp-figure{max-width:340px;margin:0 auto;width:86%}}

/* Phone feature */
.pf{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,340px);gap:clamp(32px,6vw,96px);align-items:center}
@media(max-width:820px){.pf{grid-template-columns:1fr}.pf-phone{max-width:300px;width:80%;margin:0 auto}}
.mc-st text,.mc-label{paint-order:stroke;stroke:var(--paper-light);stroke-width:7px;stroke-linejoin:round}
@media(max-width:700px){.mc-stage{padding:14px 10px}.mc-st text{font-size:27px}.mc-label,.mc-ax{font-size:17px}}

/* Poster */
.gx-poster{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:clamp(28px,5vw,72px);align-items:end;min-height:clamp(520px,46vw,680px);padding:clamp(28px,4vw,56px);overflow:hidden;border-radius:28px;background:#121110;color:var(--on-dark);--amber:#e3b363}
.gx-poster-media{position:absolute;inset:0;z-index:-2}
.gx-poster-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.6s cubic-bezier(.2,.7,.2,1)}
.gx-poster:hover .gx-poster-media img{transform:scale(1.04)}
.gx-poster-media .pt-concept{top:16px;bottom:auto}
.gx-poster::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(14,13,12,.88),rgba(14,13,12,.5) 55%,rgba(14,13,12,.2)),linear-gradient(180deg,rgba(14,13,12,0) 40%,rgba(14,13,12,.6))}
.gx-poster-title{margin:18px 0 18px;font:300 clamp(44px,5.4vw,84px)/.92 var(--font-display);letter-spacing:-.025em}
.gx-poster-title span{display:block;font-style:italic;color:var(--on-dark-soft)}
.gx-poster .gx-lede{margin:0 0 26px;max-width:40ch}
.gx-poster .btn--primary{background:var(--paper-light);border-color:var(--paper-light);color:var(--ink)}
.gx-poster-phone .ga-cap{color:var(--on-dark-mute)}
.gx-poster-phone .ga{filter:drop-shadow(0 30px 50px rgba(0,0,0,.55))}
.gx-poster :is(a,button):focus-visible{outline:2px solid var(--on-dark);outline-offset:3px}
/* One column on a phone: the copy starts at the top, so it starts below the Concept tag (16px + the tag) instead of under it. */
@media(max-width:900px){.gx-poster{grid-template-columns:1fr;padding-top:60px}.gx-poster-phone{max-width:260px;width:76%;margin:0 auto}}

/* 19-product-demos.css */
/* Product demos (src/product-demos.mjs). Without JavaScript each is a still, complete layout; experience.js wakes the
   controls (they render hidden or disabled) and the hotspots of the Prototype. */
.pr,.dd,.ob,.rp,.gt,.rs{--amber:#e3b363;--forest:#2b3a32}

/* Shared: a stack of phones that changes screen */
.pr-stack{position:relative}
.pr-screen{position:absolute;inset:0 0 auto;opacity:0;visibility:hidden;transform:translateX(18px);transition:opacity .45s ease,transform .55s cubic-bezier(.2,.7,.2,1),visibility 0s .55s}
.pr-screen:first-child{position:relative}
.pr-screen.is-active{opacity:1;visibility:visible;transform:none;transition:opacity .45s ease,transform .55s cubic-bezier(.2,.7,.2,1)}
.pr-screen .ga{max-width:none}

/* Prototype */
.pr{display:grid;grid-template-columns:minmax(260px,380px) minmax(0,1fr);gap:clamp(36px,6vw,96px);align-items:start}
.pr-device{position:relative;width:100%}
.pr-hots{position:absolute;left:0;top:0;width:100%;aspect-ratio:414/868;container-type:inline-size;--u:calc(100cqw/414)}
.pr-hot{position:absolute;padding:0;border:0;border-radius:calc(18*var(--u));background:transparent;cursor:pointer;transition:background .2s,box-shadow .2s}
.pr-hot:hover{background:rgba(227,179,99,.08)}
.pr-hot:focus-visible{outline:none;box-shadow:0 0 0 3px var(--amber)}
.pr-hot[hidden]{display:none}
.pr-hot--feature{left:calc(32*var(--u));top:calc(152*var(--u));width:calc(350*var(--u));height:calc(300*var(--u));border-radius:calc(22*var(--u))}
.pr-hot--q1,.pr-hot--q2{top:calc(500*var(--u));width:calc(150*var(--u));height:calc(118*var(--u))}
.pr-hot--q1{left:calc(32*var(--u))}.pr-hot--q2{left:calc(192*var(--u))}
.pr-hot--row{left:calc(32*var(--u));top:calc(664*var(--u));width:calc(350*var(--u));height:calc(80*var(--u));border-radius:calc(12*var(--u))}
.pr-hot--begin{left:calc(110*var(--u));top:calc(462*var(--u));width:calc(194*var(--u));height:calc(48*var(--u));border-radius:99px}
.pr-hot--back{left:calc(18*var(--u));top:calc(62*var(--u));width:calc(54*var(--u));height:calc(54*var(--u));border-radius:50%}
.pr-tabbar{position:absolute;left:calc(22*var(--u));right:calc(22*var(--u));top:calc(778*var(--u));height:calc(58*var(--u));display:grid;grid-template-columns:repeat(4,1fr)}
.pr-hot--tab{position:static;border-radius:calc(14*var(--u))}
.pr-side{position:sticky;top:calc(var(--header-h) + 80px)}
.pr-hint{display:flex;align-items:center;gap:10px;margin:0 0 18px;font:400 11px/1.3 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute)}
.pr-hint svg{width:16px;height:16px;fill:#c4913c;stroke:none}
.pr-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--rule)}
.pr-list button{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:baseline;gap:6px 14px;width:100%;padding:15px 0;border:0;border-bottom:1px solid var(--rule);background:none;color:var(--ink-soft);font:inherit;text-align:left;cursor:pointer;transition:color .2s}
.pr-list button:disabled{cursor:default}
.pr-n{font:400 11px/1 var(--font-mono);color:var(--ink-mute)}
.pr-l{font:400 clamp(20px,1.8vw,26px)/1.15 var(--font-display)}
.pr-s{font:400 10px/1.3 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);text-align:right}
.pr-list button:not(:disabled):hover,.pr-list button[aria-pressed="true"]{color:var(--ink)}
.pr-list button[aria-pressed="true"] .pr-n{color:#b07f2e}
.pr-list button[aria-pressed="true"] .pr-l::after{content:" ←";color:#b07f2e}
.pr-list button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
@media(max-width:860px){.pr{grid-template-columns:1fr}.pr-device{max-width:330px;margin:0 auto}.pr-side{position:static}.pr-s{display:none}}

/* A Day, Reimagined */
.dd{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,350px);gap:clamp(36px,6vw,96px);align-items:start}
.dd-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--rule)}
.dd-item{border-bottom:1px solid var(--rule)}
.dd-item button{display:grid;grid-template-columns:76px minmax(0,1fr) auto;align-items:baseline;gap:16px;width:100%;padding:18px 0 8px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.dd-item button:disabled{cursor:default}
.dd-time{font:400 13px/1 var(--font-mono);letter-spacing:.06em;color:#8a5220}
.dd-title{font:400 clamp(22px,2vw,30px)/1.1 var(--font-display)}
.dd-kicker{font:400 10px/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}
.dd-body{margin:0;padding:0 0 18px 92px;max-width:52ch;color:var(--ink-soft);line-height:1.55}
.dd-live .dd-item:not(.is-active) .dd-title{color:var(--ink-mute)}
.dd-live .dd-item:not(.is-active) .dd-body{display:none}
.dd-item button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.dd-phone{position:sticky;top:calc(var(--header-h) + 76px)}
.dd-live .dd-phone .pr-screen:not(.is-active){visibility:hidden}
.dd:not(.dd-live) .dd-phone .pr-screen:not(:first-child){display:none}
@media(max-width:860px){.dd{grid-template-columns:1fr}.dd-phone{position:static;max-width:300px;width:80%;margin:0 auto;order:-1}.dd-item button{grid-template-columns:62px minmax(0,1fr)}.dd-kicker{display:none}.dd-body{padding-left:78px}}

/* See Before You Respond */
.ob{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,72px);align-items:start}
.ob-scene{position:relative;margin:0}
.ob-scene img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:22px}
.ob-scene figcaption{margin-top:14px;font:italic 400 clamp(19px,1.6vw,23px)/1.35 var(--font-display);color:var(--ink)}
.ob-scene .pt-concept{position:absolute;top:14px;left:14px;bottom:auto}
.ob-q{margin:0 0 18px;font:300 clamp(28px,2.8vw,40px)/1.1 var(--font-display);letter-spacing:-.01em}
.ob-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--rule)}
.ob-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 20px;align-items:center;padding:16px 0;border-bottom:1px solid var(--rule)}
.ob-text{margin:0;font-size:17px;line-height:1.45}
.ob-n{margin-right:14px;font:400 11px/1 var(--font-mono);color:var(--ink-mute)}
.ob-picks{display:flex;gap:6px}
.ob-picks button{padding:8px 15px;border:1px solid var(--rule-strong);border-radius:999px;background:var(--paper-light);color:var(--ink);font:400 13px/1 var(--font-body);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.ob-picks button:hover{border-color:var(--ink)}
.ob-picks button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.ob-picks button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper-light)}
.ob-why{grid-column:1/-1;margin:0;padding-left:30px;font-size:14.5px;line-height:1.5;color:var(--ink-soft)}
.ob-why b{font-weight:500;color:var(--ink)}
.ob-live .ob-why{display:none}
.ob-live .ob-item.is-answered .ob-why{display:block;animation:gx-in .4s ease both}
.ob-item.is-right .ob-why b{color:var(--success)}.ob-item.is-wrong .ob-why b{color:#a0662a}
.ob-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;margin-top:16px}
.ob-score{margin:0;font:300 22px/1.2 var(--font-display)}
.ob-reset{padding:9px 16px;border:1px solid var(--rule-strong);border-radius:999px;background:none;font:400 13px/1 var(--font-body);cursor:pointer}
.ob-note{margin:14px 0 0;font-size:13.5px;line-height:1.5;color:var(--ink-mute)}
@media(max-width:820px){.ob{grid-template-columns:1fr}.ob-scene img{aspect-ratio:16/10}.ob-item{grid-template-columns:1fr}.ob-why{padding-left:0}}

/* Preparing the Room */
.rp{max-width:940px;margin:clamp(40px,5vw,72px) 0 0}
.rp-stage{padding:clamp(16px,2.6vw,36px);border-radius:24px;background:var(--paper-light);border:1px solid var(--rule)}
.rp svg{display:block;width:100%;height:auto;overflow:hidden}
.rp-floor{fill:#f1ebdf;stroke:var(--rule-strong);stroke-width:2}
.rp-door{stroke:var(--paper-light);stroke-width:6}.rp-window{stroke:#9fbaa8;stroke-width:5}
.rp-it rect{stroke:rgba(25,24,24,.35);stroke-width:1}
.rp-it--shelf rect{fill:#b98d5a}.rp-it--table rect{fill:#d9c3a0}.rp-it--mat rect{fill:#c9d6cb}.rp-it--rug rect{fill:#e8c98f;fill-opacity:.7}
.rp-it--basket rect{fill:#8a6a43}.rp-it--book rect{fill:#2b3a32}.rp-it--plant rect{fill:#74847e}.rp-it--cupboard rect{fill:#5f564c}
.rp-label{font:400 13px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;fill:var(--ink-soft);paint-order:stroke;stroke:#f1ebdf;stroke-width:5px}
.rp-labels--before .rp-label{fill:#8a5220}
.rp-labels--before{opacity:0}
.rp-controls{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;margin-top:18px;font:400 11px/1.3 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute)}
.rp-controls input{width:100%;accent-color:var(--forest)}
.rp figcaption{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:baseline;margin-top:14px;max-width:80ch;font-size:14px;line-height:1.5;color:var(--ink-mute)}
.rp-badge{font:400 10.5px/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.rp-controls input{height:44px;margin:0;cursor:pointer}
@media(max-width:700px){.rp-controls{grid-template-columns:1fr 1fr}.rp-controls input{grid-column:1/-1;grid-row:1}}

/* Visit Companion (tablet) */
.gt{--t:calc(100cqw/1100);container-type:inline-size;width:100%;max-width:1040px;margin:clamp(40px,5vw,72px) auto 0;font-family:var(--font-body)}
.gt-body{aspect-ratio:1100/760;padding:calc(22*var(--t));border-radius:calc(44*var(--t));background:linear-gradient(145deg,#4f4c47,#22201d 40%,#35332f);box-shadow:inset 0 0 0 calc(2*var(--t)) rgba(255,255,255,.14),0 40px 80px rgba(25,20,15,.22)}
.gt-screen{display:grid;grid-template-columns:calc(270*var(--t)) 1fr;height:100%;overflow:hidden;border-radius:calc(24*var(--t));background:#f6f3ec;color:#1d1b19}
.gt p,.gt ul,.gt ol{margin:0}
.gt svg{width:calc(18*var(--t));height:calc(18*var(--t));fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.gt-side{padding:calc(30*var(--t)) calc(22*var(--t));background:#ece6da;border-right:1px solid #e0d9cc}
.gt-brand{margin-bottom:calc(30*var(--t))!important;font:400 calc(24*var(--t))/1 var(--font-display)}.gt-brand span{font-style:italic;color:#6d8676}
.gt-k{margin-bottom:calc(10*var(--t))!important;font:500 calc(10.5*var(--t))/1.2 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:#8b857c}
.gt-side ul{padding:0;list-style:none;margin-bottom:calc(26*var(--t))!important}
.gt-side li{padding:calc(12*var(--t)) calc(14*var(--t));border-radius:calc(12*var(--t));margin-bottom:calc(4*var(--t))}
.gt-side li.is-on{background:#fffdf8;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.gt-side b{display:block;font:500 calc(14.5*var(--t))/1.2 var(--font-body)}.gt-side span{display:block;margin-top:calc(3*var(--t));font:400 calc(12*var(--t))/1.3 var(--font-body);color:#8b857c}
.gt-main{display:flex;flex-direction:column;padding:calc(30*var(--t)) calc(34*var(--t))}
.gt-head{display:flex;align-items:flex-end;justify-content:space-between;gap:calc(20*var(--t));margin-bottom:calc(22*var(--t))}
.gt-title{font:400 calc(40*var(--t))/1.05 var(--font-display);letter-spacing:-.01em}
.gt-pill{display:inline-flex;align-items:center;gap:calc(7*var(--t));padding:calc(8*var(--t)) calc(14*var(--t));border-radius:99px;background:#2b3a32;color:#f4f1ea;font:500 calc(12.5*var(--t))/1 var(--font-body)}
.gt-grid{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:calc(14*var(--t))}
.gt-card{padding:calc(20*var(--t));border-radius:calc(18*var(--t));background:#fffdf8;border:1px solid #e3ddd2;font:400 calc(14.5*var(--t))/1.5 var(--font-body);color:#5f5a53}
.gt-card--sage{background:#e2e9e1;border-color:transparent}
.gt-tags{display:flex;flex-wrap:wrap;gap:calc(6*var(--t));margin-top:calc(12*var(--t))!important}
.gt-tags span{padding:calc(6*var(--t)) calc(11*var(--t));border-radius:99px;background:#efe5d3;font-size:calc(12*var(--t));color:#1d1b19}
.gt-steps{padding:0;list-style:none}
.gt-steps li{position:relative;padding:calc(6*var(--t)) 0 calc(6*var(--t)) calc(28*var(--t))}
.gt-steps li::before{content:"";position:absolute;left:0;top:calc(9*var(--t));width:calc(16*var(--t));height:calc(16*var(--t));border-radius:50%;border:calc(2*var(--t)) solid #d6cfc2}
.gt-steps li.is-done::before{background:#6d8676;border-color:#6d8676}
.gt-quote{font:italic 400 calc(26*var(--t))/1.2 var(--font-display);color:#2b3a32}
.gt-meta{display:flex;align-items:center;gap:calc(8*var(--t));margin-top:calc(14*var(--t))!important;font-size:calc(12.5*var(--t));color:#6d8676}
.gt-foot{display:flex;justify-content:space-between;gap:calc(16*var(--t));margin-top:calc(16*var(--t));font:400 calc(12*var(--t))/1.3 var(--font-body);color:#8b857c}
.gt-foot span{display:flex;align-items:center;gap:calc(7*var(--t))}
.gt .ga-cap{max-width:60ch}

/* Role Stair */
.rs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end;margin:0;padding:0;list-style:none}
.rs-step{position:relative}
.rs-tread{display:flex;flex-direction:column;justify-content:flex-start;padding:24px 22px;border-radius:20px 20px 4px 4px;background:var(--paper-light);border:1px solid var(--rule);border-bottom:4px solid var(--forest)}
.rs-step--1 .rs-tread{min-height:230px}.rs-step--2 .rs-tread{min-height:290px}.rs-step--3 .rs-tread{min-height:350px}.rs-step--4 .rs-tread{min-height:410px;background:var(--forest);color:var(--on-dark);border-color:var(--forest)}
.rs-n{margin:0 0 14px;font:400 10.5px/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}
.rs-step--4 .rs-n{color:var(--amber)}
.rs-title{margin:0 0 10px;font:400 clamp(24px,2.1vw,32px)/1.08 var(--font-display)}
.rs-body{margin:0;font-size:15px;line-height:1.55;color:var(--ink-soft)}
.rs-step--4 .rs-body{color:var(--on-dark-soft)}
.rs-start{position:absolute;left:0;bottom:-30px;margin:0;font:400 10.5px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:#8a5220}
@media(max-width:900px){.rs{grid-template-columns:1fr 1fr}.rs-tread{min-height:0!important}.rs-start{position:static;margin:0 0 10px}}
@media(max-width:560px){.rs{grid-template-columns:1fr}}
.pl-finder-title{margin:clamp(56px,7vw,96px) 0 24px;font:300 clamp(28px,3vw,44px)/1.1 var(--font-display);letter-spacing:-.01em}

/* 20-craft.css */
/* Craft layer: the site's motion language and the small interactions that carry it. Loaded last so it can refine
   earlier components without rewriting them. Every movement here is transform, opacity or clip-path, and all of it
   stands down under prefers-reduced-motion.

   Motion tokens
   --t-micro   hover, press, focus feedback            ~180ms
   --t-std     state changes: fills, underlines, tabs  ~360ms
   --t-reveal  editorial entrances                     ~760ms
   --t-cinema  hero photography settling               ~1400ms
   --ease-out  arrivals (fast start, long settle); --ease-inout for things that travel and stop. */
:root {
  --t-micro: 180ms;
  --t-std: 360ms;
  --t-reveal: 760ms;
  --t-cinema: 1400ms;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-inout: cubic-bezier(0.65, 0, 0.35, 1);
  --stagger: 90ms;
  --rise: 20px;
}

/* ------------------------------------------------------------------ buttons
   Secondary buttons fill from the left like ink drawn across paper; primary buttons answer with the arrow alone.
   Both settle a fraction on press, so a click is felt before the page changes. */
.btn { --btn-fill: var(--ink); transition: background-color var(--t-micro) var(--ease-out), color var(--t-std) var(--ease-out), border-color var(--t-std) var(--ease-out), background-size var(--t-std) var(--ease-out), transform var(--t-micro) var(--ease-out); }
:is(.theme-atelier, .sec--atelier, .cta--atelier, .hero--atelier) .btn { --btn-fill: var(--paper-light); }
.theme-atelier :is(.sec--light, .sec--deep, .cta--deep) .btn { --btn-fill: var(--ink); }
.btn--secondary { background-image: linear-gradient(var(--btn-fill), var(--btn-fill)); background-repeat: no-repeat; background-position: 0 0; background-size: 0% 100%; }
.btn--secondary:hover, :is(.theme-atelier, .sec--atelier, .cta--atelier, .hero--atelier) .btn--secondary:hover, .theme-atelier :is(.sec--light, .sec--deep, .cta--deep) .btn--secondary:hover { background-color: transparent; background-image: linear-gradient(var(--btn-fill), var(--btn-fill)); background-size: 100% 100%; }
.btn__arrow { display: inline-block; transition: transform var(--t-std) var(--ease-out); }
.btn:hover .btn__arrow, .btn:focus-visible .btn__arrow { transform: translateX(4px); }
.btn:active { transform: scale(0.98); }

/* ------------------------------------------------------------------ text links
   The resting hairline stays; on hover a second line draws over it from the left and the arrow steps forward. */
:is(.arrow-link, .pt-link, .pt-pillar-cta, .sig-link) { background-image: linear-gradient(currentColor, currentColor); background-repeat: no-repeat; background-position: 0 100%; background-size: 0% 1px; transition: background-size var(--t-std) var(--ease-out), border-color var(--t-std) var(--ease-out); }
:is(.arrow-link, .pt-link, .sig-link):hover, a:hover .pt-pillar-cta, .pt-pillar:focus-visible .pt-pillar-cta { background-size: 100% 1px; text-decoration: none; }
.arrow-link::after { display: inline-block; margin-left: 0.3em; transition: transform var(--t-std) var(--ease-out); }
.arrow-link:hover::after { transform: translateX(3px); }
:is(.pt-link, .pt-pillar-cta, .sig-link) > span[aria-hidden] { display: inline-block; transition: transform var(--t-std) var(--ease-out); }
:is(.pt-link, .sig-link):hover > span[aria-hidden], a:hover .pt-pillar-cta > span[aria-hidden] { transform: translateX(3px); }

/* ------------------------------------------------------------------ the opening
   Interior heroes arrive as one composed sequence: folio, headline (rising out of a mask, its italic line a beat
   later), lede, actions, then the photograph opening from a held crop and settling into place. */
@keyframes craft-rise { from { opacity: 0; transform: translateY(var(--rise)); } to { opacity: 1; transform: none; } }
@keyframes craft-mask { from { opacity: 0; transform: translateY(0.35em); clip-path: inset(-0.5em -0.5em 100% -0.5em); } to { opacity: 1; transform: none; clip-path: inset(-0.5em -0.5em -0.5em -0.5em); } }
@keyframes craft-open { from { clip-path: inset(7% 7% 7% 7% round 18px); } to { clip-path: inset(0 0 0 0 round 0); } }
@keyframes craft-settle { from { transform: scale(1.12); } to { transform: scale(1); } }
@keyframes craft-fade { from { opacity: 0; } to { opacity: 1; } }

@media (prefers-reduced-motion: no-preference) {
  .hero .folio { animation: craft-fade var(--t-reveal) var(--ease-out) both; }
  .hero h1 { animation: craft-mask 1s var(--ease-out) 80ms both; }
  .hero h1 .display-line { animation: craft-mask 1s var(--ease-out) 260ms both; }
  .hero :is(.hero__body, .lede) { animation: craft-rise var(--t-reveal) var(--ease-out) 380ms both; }
  .hero .btn-row { animation: craft-rise var(--t-reveal) var(--ease-out) 500ms both; }
  .hero__photograph .media-library { animation: craft-open var(--t-cinema) var(--ease-out) 120ms both; overflow: hidden; }
  .hero__photograph .media-library img { animation: craft-settle 2.2s var(--ease-out) 120ms both; }
  .hero__photograph figcaption { animation: craft-fade var(--t-reveal) var(--ease-out) 900ms both; }
}

/* ------------------------------------------------------------------ section entrances
   Where the browser can tie animation to scroll, section heads rise into place as they enter: folio first, then the
   heading, then the intro. No script and no observers; elsewhere they simply appear. */
@keyframes craft-enter { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes craft-rule { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .sec__head > *, .sec__intro, .sig-chapter-head > * { animation: craft-enter linear both; animation-timeline: view(); animation-range: entry 5% entry 55%; }
    .sec__head > :nth-child(2), .sig-chapter-head > :nth-child(2) { animation-range: entry 10% entry 62%; }
    .sec__head > :nth-child(n + 3), .sec__intro { animation-range: entry 15% entry 70%; }
    .folio::before { transform-origin: left; animation: craft-rule linear both; animation-timeline: view(); animation-range: entry 0% entry 50%; }
    /* The turn into a dark chapter: where a light section gives way to an atelier one, the dark arrives as an inset
       panel with rounded corners and widens to the full page as it rises, so the reader passes into it rather than
       across a hard edge. Only at that join, so it stays a moment rather than a habit. */
    .theme-paper :is(.sec, .hero):not(.sec--atelier) + :is(.sec--atelier, .cta--atelier) { animation: craft-panel linear both; animation-timeline: view(); animation-range: entry 0% entry 85%; }
    /* The footer's wordmark rises the last few pixels into place as the page ends. */
    .site-footer__mark { animation: craft-enter linear both; animation-timeline: view(); animation-range: entry 0% entry 100%; }
  }
}
@keyframes craft-panel { from { clip-path: inset(0 clamp(10px, 3.2vw, 56px) round clamp(18px, 2.4vw, 40px)); } to { clip-path: inset(0 0 round 0); } }

/* ------------------------------------------------------------------ the footer's sign-off
   The name set once more, very large and nearly tone-on-tone, as the last line of every page. Decorative only. */
.site-footer { overflow: hidden; }
.site-footer__mark { margin: clamp(2rem, 4vw, 3.5rem) 0 -0.3em -0.04em; font: 300 min(33vw, 480px)/0.8 var(--font-display); letter-spacing: -0.035em; color: rgba(247, 247, 242, 0.075); white-space: nowrap; user-select: none; }

/* ------------------------------------------------------------------ cards and photographs
   Frames that hold photographs settle their image slowly on hover; the frame itself never jumps. */
:is(.pt-rail-media, .home-tile-frame, .sol-media .media-library, .pt-mosaic-inset) { overflow: hidden; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .pt-rail-item:hover .pt-rail-media img { transform: scale(1.035); }
  .pt-rail-media img { transition: transform var(--t-cinema) var(--ease-out); }
}

/* ------------------------------------------------------------------ forms
   Fields answer focus with a drawn underline of colour rather than a jump in border width. */
:is(input, select, textarea):not([type=checkbox], [type=radio], [type=range]) { transition: border-color var(--t-std) var(--ease-out), box-shadow var(--t-std) var(--ease-out), background-color var(--t-std) var(--ease-out); }
:is(input, select, textarea):not([type=checkbox], [type=radio], [type=range]):focus-visible { box-shadow: 0 2px 0 0 var(--ink); }

@media (prefers-reduced-motion: reduce) {
  .btn, .btn__arrow, :is(.arrow-link, .pt-link, .pt-pillar-cta, .sig-link), :is(.arrow-link, .pt-link, .pt-pillar-cta, .sig-link) > span[aria-hidden], .arrow-link::after { transition: none; }
  .btn:active { transform: none; }
}

/* ------------------------------------------------------------------ small-screen precision (320–430px)
   Found by the multi-width audit: nothing may run past the screen edge, and touch targets keep a usable height. */
.gx-hero { overflow-x: clip; }
.pb-name { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Prototype screens wait off to the right; on the narrowest phones that 18px would widen the page, so they wait in place. */
@media (max-width: 400px) { .pr-screen:not(.is-active) { transform: none; } }
@media (max-width: 480px) {
  .pb-in { gap: 14px; }
  .sig-eco-tabs { width: 100%; }
  .sig-eco-tabs button { flex: 1 1 0; padding: 0 8px; font-size: 14px; }
}
.site-footer li a { display: inline-block; padding-block: 6px; margin-block: -6px; }
.rp-controls input[type=range] { min-height: 32px; }
/* Touch targets reach 24px (WCAG 2.2, 2.5.8) without changing the rhythm of the lists they sit in. */
.g-atlas-directory li { margin-bottom: 4px; }
.g-atlas-directory a { display: inline-block; padding-block: 3px; }
:is(.v2-recipe, .v2-source, .v2-choice article) > a:not(.btn) { display: inline-block; padding-block: 2px; }
/* The Guide's own measurement choice (guide.js; privacy notice): a labelled setting in a band on top of the footer,
   so it reads as a site setting, not as stray page content. */
.g-measurement { padding-block: 20px; background: var(--ink); color: var(--on-dark-soft); }
.g-measurement-inner { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px 32px; align-items: start; }
.g-measurement-title { margin: 0; padding-top: 4px; font-family: var(--font-mono); font-size: var(--fs-mono); line-height: 1.4; letter-spacing: 0.14em; text-transform: uppercase; color: var(--on-dark-mute); }
.g-measurement-toggle { display: flex; gap: 12px; align-items: flex-start; min-height: 44px; max-width: 82ch; font-size: 14px; line-height: 1.6; cursor: pointer; }
.g-measurement-toggle strong { display: block; margin-bottom: 2px; font-weight: 500; color: var(--on-dark); }
.g-measurement-toggle a { color: var(--on-dark); text-underline-offset: 3px; }
.g-measurement input[type=checkbox] { flex: none; width: 24px; height: 24px; margin: 0; accent-color: var(--paper-light); }
.g-measurement :focus-visible { outline: 2px solid var(--on-dark); outline-offset: 2px; }
@media (max-width: 700px) { .g-measurement-inner { grid-template-columns: 1fr; } }
/* Agreement tick boxes on every form: a 24px box (WCAG 2.2, 2.5.8) in a label row at least 44px tall, so the whole
   line is an easy target on a phone. */
.choice { min-height: 44px; }
.choice input, .g-form .g-check input { width: 24px; height: 24px; margin: 0; accent-color: var(--ink); }
.g-form .g-check { gap: 12px; min-height: 44px; padding-block: 4px; cursor: pointer; }

/* ------------------------------------------------------------------ the Facilitator Multiplier
   The stations light in order (one facilitator, then the teachers, then the caregivers, then the projection), each
   dot growing from a point, so the multiplication reads as a sequence rather than a table. */
@media (prefers-reduced-motion: no-preference) {
  .pt-js .sig-station:nth-child(2) { --sd: 0.45s; }
  .pt-js .sig-station:nth-child(3) { --sd: 1.05s; }
  .pt-js .sig-station:nth-child(4) { --sd: 1.9s; }
  .pt-js .sig-station[data-pt-reveal] { transition-delay: var(--sd, 0s); }
  .pt-js .sig-station .sig-dot { transform-box: fill-box; transform-origin: 50% 50%; transform: scale(0.2); transition: opacity 0.5s var(--ease-out) calc(var(--sd, 0s) + var(--d, 0) * 4ms), transform 0.8s var(--ease-out) calc(var(--sd, 0s) + var(--d, 0) * 4ms); }
  .pt-js .sig-station.is-in .sig-dot { transform: none; }
}
@media (max-width: 700px) { .g-context { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 400px) { .g-context div { padding: 18px 16px; } .g-context .h4 { hyphens: auto; } }

/* ------------------------------------------------------------------ editorial details (third pass)
   Lining figures throughout: Cormorant's old-style "1" reads as a roman "I" beside the chapter numerals. */
/* Important, and on every element, because each `font:` shorthand in the system resets the figure style. */
*, ::before, ::after { font-variant-numeric: lining-nums !important; }
/* Legal text keeps a reading measure; a paragraph after a list gets the same air as one after a paragraph. */
.sec--narrow .wrap > .legal { max-width: 68ch; }
.legal :is(ul, ol) + p { margin-top: 0.8rem; }
/* On a phone every primary action spans the column, including the closing band and form submissions. */
@media (max-width: 480px) {
  .cta__inner .btn-row { justify-self: stretch; }
  form .btn[type=submit] { width: 100%; justify-content: space-between; }
  .ln-also em { display: block; margin: 4px 0 0; }
}
/* Pillar Trio below 900px: the copy covers the whole card, so the photograph sits under an even veil, not a bottom fade. */
@media (max-width: 900px) {
  .pt-pillar-media::after { background: linear-gradient(180deg, rgba(25, 24, 24, 0.66) 0%, rgba(25, 24, 24, 0.74) 55%, rgba(25, 24, 24, 0.9) 100%); }
}
/* Shift tables on a phone: each row reads as the "before" line, then the arrow leading into what replaces it. */
@media (max-width: 560px) {
  .shifts__row { grid-template-columns: 1.5rem minmax(0, 1fr); grid-template-areas: "from from" "arrow to"; row-gap: 0.35rem; column-gap: 0.5rem; }
  .shifts__row > :first-child { grid-area: from; }
  .shifts__row > :nth-child(2) { grid-area: arrow; text-align: left; }
  .shifts__row > :last-child { grid-area: to; }
  .shifts__row--head > :nth-child(2) { display: none; }
  .shifts__row--head > :last-child { grid-column: 1 / -1; }
}
/* In the four-up Pathway Lineup the longer statuses wrap; set as a dotted line of text rather than a pill, a second line
   reads as intended. The name keeps two lines' room, so the four names share a baseline. */
.pl-card .ln-status { align-items: flex-start; padding: 0; border: 0; border-radius: 0; background: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
.pl-card .ln-status span { margin-top: 0.3em; }
@media (min-width: 1001px) { .pl-name { min-height: 2em; display: flex; align-items: flex-end; } }
/* A hero's line drawing is a companion to the headline, not a second hero: on a phone it shrinks beside the text
   column so the page (on /contact/ and /register/, the form) begins within the first screen. */
@media (max-width: 700px) {
  .hero__art { width: 7.5rem; justify-self: start; margin-top: -0.5rem; }
}
/* Crop focus for landscape photographs whose subject sits off-centre (patterns.mjs, FOCUS). */
img.focus-l { object-position: 22% 50%; }
img.focus-cl { object-position: 40% 35%; }
img.focus-r { object-position: 72% 50%; }
/* Guide v2: standalone links in question routes, features and evidence cards reach a 24px target */
:is(.v2-question-route li,.v2-feature div,.v2-evidence-grid article)>a:not(.btn){display:inline-block;padding-block:4px}

/* 21-solutions.css */
/* Deploy Solutions (src/solutions.mjs): the Solution Index, the Solution Chapter and the Solution Composer, in the
   light-grid language of Deploy. Colours come from the --ix tokens (16-infrastructure.css), so every part reads on
   light and dark sections. The reach line and the frame's settle are scrubbed (--p from experience.js); without
   JavaScript or with reduced motion everything rests complete. */

/* ------------------------------------------------------------------ The Solution Index */
.so-index{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:0;padding:0;border-top:1px solid var(--ix-rule-strong);border-bottom:1px solid var(--ix-rule)}
.so-index li{display:flex;min-width:0;border-left:1px solid var(--ix-rule)}.so-index li:first-child{border-left:0}
.so-index a{display:flex;flex-direction:column;gap:10px;width:100%;padding:26px clamp(16px,1.8vw,28px) 28px;color:var(--ix-fg);text-decoration:none;transition:background-color var(--t-std) var(--ease-out)}
.so-index a:hover{background:color-mix(in srgb,var(--ix-line) 7%,transparent)}.so-index a:focus-visible{outline:2px solid var(--ix-amber);outline-offset:-2px}
.so-index-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}
.so-index-n{font:400 11px/1 var(--font-mono);letter-spacing:.18em;color:var(--ix-amber)}
.so-mark{width:60px;height:60px;overflow:visible;transition:transform var(--t-reveal) var(--ease-out)}.so-index a:hover .so-mark{transform:translateY(-4px)}
.so-line{fill:none;stroke:var(--ix-fg);stroke-width:1.3;stroke-linejoin:round}.so-line--warm{stroke:var(--ix-line);stroke-width:1.6}.so-line--dash{stroke:var(--ix-mute);stroke-dasharray:2 3}
.so-fill{fill:var(--ix-fg)}.so-fill--child{fill:var(--ix-line)}
.so-index-k{font:400 10.5px/1.4 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ix-mute)}
.so-index-name{font:400 clamp(26px,2.2vw,34px)/1.04 var(--font-display);text-wrap:balance}
.so-index-line{font-size:15.5px;line-height:1.5;color:var(--ix-soft)}
.so-index-status{margin-top:auto;padding-top:18px;font:400 10px/1.45 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ix-mute)}
.so-index-go{font-size:15px}.so-index-go span{display:inline-block;transition:transform var(--t-std) var(--ease-out)}.so-index a:hover .so-index-go span{transform:translateX(4px)}

/* ------------------------------------------------------------------ The Solution Chapter */
.so-ch-head{display:flex;flex-direction:column;align-items:flex-start;gap:24px;margin-bottom:clamp(28px,3.5vw,48px)}
.so-ch-head .sec__head{margin-bottom:0}
.so-products{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0}
.so-products a{display:flex;flex-direction:column;gap:4px;padding:12px 18px 13px;border:1px solid var(--ix-rule-strong);border-radius:14px;color:var(--ix-fg);text-decoration:none;transition:border-color var(--t-std) var(--ease-out),background-color var(--t-std) var(--ease-out)}
.so-products a:hover{border-color:var(--ix-fg);background:color-mix(in srgb,var(--ix-fg) 4%,transparent)}
.so-products b{font:400 21px/1.1 var(--font-display)}.so-products span{font:400 9.5px/1.35 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ix-mute)}
.so-frame{margin:0}
.so-frame-media{position:relative;overflow:hidden;aspect-ratio:21/9;border-radius:var(--pt-radius);background:var(--ix-panel)}
.so-frame-media img{display:block;width:100%;height:100%;object-fit:cover}
.so-frame-media::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,19,18,.82) 0%,rgba(20,19,18,.32) 34%,rgba(20,19,18,0) 58%);pointer-events:none}
.so-frame figcaption{margin-top:12px;font-size:13px;line-height:1.5;color:var(--ix-mute)}.so-frame figcaption b{font-weight:400;color:var(--ix-soft)}
.so-reach{position:absolute;z-index:1;left:0;right:0;bottom:0;padding:0 clamp(20px,3vw,48px) clamp(22px,2.8vw,40px);color:#f7f7f2}
.so-reach-h{margin:0 0 16px;font:400 10px/1.4 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:rgba(247,247,242,.74)}
.so-reach ol{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:0;padding:0}
.so-reach ol::before,.so-reach ol::after{content:"";position:absolute;left:6px;top:6px;width:66.667%;height:1px;background:rgba(247,247,242,.34)}
.so-reach ol::after{height:1.5px;background:#e3b363;transform-origin:0 50%;transform:scaleX(var(--k,1))}
.so-reach-step{position:relative;display:flex;flex-direction:column;gap:14px;padding-right:20px;font:400 clamp(19px,1.7vw,26px)/1.12 var(--font-display);text-wrap:balance}
.so-reach-step--2{--i:1}.so-reach-step--3{--i:2}
.so-reach-dot{position:relative;z-index:1;flex:none;width:13px;height:13px;border-radius:50%;background:#f7f7f2;box-shadow:0 0 0 4px rgba(247,247,242,.16)}
.so-reach-step--3 .so-reach-dot{background:#e3b363;box-shadow:0 0 0 5px rgba(227,179,99,.26)}
.xp-js .so-frame{--k:clamp(0,(var(--p,1) - .3)*2.4,1)}
.xp-js .so-reach-step{opacity:clamp(.22,(var(--p,1) - .26 - var(--i,0)*.17)*5,1)}
.xp-js .so-frame-media img{transform:scale(calc(1.07 - .07*clamp(0,var(--p,1),1)))}
.so-ch-body{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,5vw,88px);margin-top:clamp(40px,5vw,72px)}
.so-ch-copy p{max-width:46ch;margin:0 0 16px;font-size:16.5px;line-height:1.65;color:var(--ix-soft)}
.so-ch-copy p.so-lede{max-width:36ch;margin-bottom:20px;font:400 clamp(21px,1.65vw,25px)/1.4 var(--font-display);color:var(--ix-fg)}
/* Actions stack as one aligned column in every chapter, whatever the label lengths. */
.so-ch-copy .btn-row{flex-direction:column;align-items:flex-start;margin-top:28px}.so-ch-copy .btn{min-width:min(100%,300px);justify-content:space-between}
.so-spec{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:32px clamp(24px,3vw,44px);align-content:start}
.so-spec-h{margin:0;padding-bottom:12px;border-bottom:1px solid var(--ix-rule-strong);font:400 10.5px/1.4 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ix-amber)}
.so-spec ul{list-style:none;margin:0;padding:0}.so-spec li{padding:11px 0;border-bottom:1px solid var(--ix-rule);font-size:15.5px;line-height:1.45;color:var(--ix-fg)}

/* ------------------------------------------------------------------ Local leaders and trainers */
.so-leaders{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,88px);align-items:center}
.so-leaders-media{margin:0}.so-leaders-media img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--pt-radius)}
.so-leaders-media figcaption{margin-top:12px;font-size:13px;color:var(--ix-mute)}
.so-verbs{list-style:none;margin:0;padding:0;counter-reset:so-verb;border-bottom:1px solid var(--ix-rule)}
.so-verbs li{display:grid;grid-template-columns:52px minmax(0,1fr);gap:6px 12px;padding:22px 0;border-top:1px solid var(--ix-rule)}
.so-verbs li::before{counter-increment:so-verb;content:counter(so-verb,decimal-leading-zero);grid-row:span 2;font:400 11px/2.6 var(--font-mono);letter-spacing:.16em;color:var(--ix-amber)}
.so-verbs h3{margin:0;font:400 clamp(26px,2.3vw,36px)/1.05 var(--font-display);color:var(--ix-fg)}.so-verbs p{margin:0;font-size:15.5px;line-height:1.5;color:var(--ix-soft)}
.so-maxim{max-width:28ch;margin:clamp(64px,8vw,120px) auto clamp(56px,7vw,104px);font:400 clamp(28px,3.1vw,48px)/1.14 var(--font-display);text-align:center;color:var(--ix-fg);text-wrap:balance}.so-maxim em{color:var(--ix-amber)}
:is(.sec--atelier,.theme-atelier .sec--paper) .rs-step:not(.rs-step--4) .rs-tread{color:var(--ink)}
.so-today{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 32px;margin:clamp(64px,7vw,96px) 0 32px;padding-top:24px;border-top:1px solid var(--ix-rule)}
.so-today p{margin:0;font-size:15.5px;color:var(--ix-soft)}.so-today strong{margin-right:12px;font:400 44px/1 var(--font-display);color:var(--ix-fg)}
.so-today p.so-today-note{max-width:44ch;font:400 10.5px/1.6 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ix-mute)}

/* ------------------------------------------------------------------ The ecosystem and the engine */
.so-engine{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,88px);margin-top:clamp(64px,8vw,120px);padding-top:clamp(32px,4vw,48px);border-top:1px solid var(--ix-rule-strong)}
.so-engine-k{margin:0 0 14px;font:400 10.5px/1.4 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ix-amber)}
.so-engine-line{margin:0;font:400 clamp(34px,3.6vw,56px)/1.02 var(--font-display);color:var(--ix-fg);text-wrap:balance}.so-engine-line em{color:var(--forest)}
.so-engine p:not([class]){max-width:58ch;margin:0 0 16px;font-size:16.5px;line-height:1.65;color:var(--ix-soft)}.so-engine .btn-row{margin-top:24px}

/* ------------------------------------------------------------------ The Solution Composer */
.so-comp{margin:0;border-top:1px solid var(--ix-rule-strong)}
.so-comp-hint{margin:20px 0 4px;font:400 10.5px/1.5 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ix-amber)}
.so-comp-rows{list-style:none;margin:0;padding:0}
.so-comp-row{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:16px clamp(24px,4vw,64px);padding:28px 0;border-bottom:1px solid var(--ix-rule)}
.so-comp-n{margin:0 0 8px;font:400 11px/1 var(--font-mono);letter-spacing:.18em;color:var(--ix-amber)}
.so-comp-label h3{margin:0 0 6px;font:400 clamp(24px,2vw,30px)/1.1 var(--font-display);color:var(--ix-fg)}.so-comp-label p:last-child{max-width:34ch;margin:0;font-size:15px;line-height:1.5;color:var(--ix-soft)}
.so-comp-tokens{display:flex;flex-wrap:wrap;align-content:flex-start;align-items:flex-start;gap:10px;list-style:none;margin:0;padding:0}
.so-tok{display:inline-flex;flex-direction:column;gap:3px;padding:11px 18px;border:1px solid var(--ix-fg);border-radius:18px;background:color-mix(in srgb,var(--ix-fg) 5%,transparent);color:var(--ix-fg);font-size:15.5px;line-height:1.3;transition:background-color var(--t-std) var(--ease-out),color var(--t-std) var(--ease-out),border-color var(--t-std) var(--ease-out),opacity var(--t-std) var(--ease-out),transform var(--t-micro) var(--ease-out)}
.so-tok small{font:400 9.5px/1.35 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;opacity:.72}
.so-tok.is-off{border-style:dashed;border-color:var(--ix-rule-strong);background:transparent;color:var(--ix-mute);opacity:.7}
.so-tok--pick{flex-direction:row;align-items:center;gap:10px;min-height:46px;padding-inline:16px 20px;background:var(--ix-fg);color:var(--sig-bg);font:inherit;font-size:16px;cursor:pointer}.so-tok--pick:disabled{cursor:default}
.so-tok--pick:not(:disabled):hover{transform:translateY(-1px)}.so-tok--pick:active{transform:scale(.98)}.so-tok--pick:focus-visible{outline:2px solid var(--ix-amber);outline-offset:3px}
.so-tok-tick{position:relative;width:16px;height:16px;border:1.5px solid currentColor;border-radius:50%}.so-tok-tick::after{content:"";position:absolute;inset:3px;border-radius:50%;background:currentColor;transition:transform var(--t-std) var(--ease-out)}
.so-tok--pick[aria-pressed=false]{border-style:dashed;border-color:var(--ix-rule-strong);background:transparent;color:var(--ix-soft)}.so-tok--pick[aria-pressed=false] .so-tok-tick::after{transform:scale(0)}
.so-comp-note{margin:18px 0 28px;font-size:13px;line-height:1.5;color:var(--ix-mute)}

@media(max-width:1000px){
 .so-index{grid-template-columns:repeat(2,minmax(0,1fr))}.so-index li:nth-child(3){border-left:0}.so-index li:nth-child(n+3){border-top:1px solid var(--ix-rule)}
 .so-ch-body,.so-engine,.so-leaders{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:700px){
 .so-frame-media{aspect-ratio:4/5}
 .so-reach ol{grid-template-columns:minmax(0,1fr);gap:16px}
 .so-reach ol::before,.so-reach ol::after{width:1px;height:calc(100% - 22px)}.so-reach ol::after{width:1.5px;transform-origin:50% 0;transform:scaleY(var(--k,1))}
 .so-reach-step{flex-direction:row;align-items:center;padding-right:0}
 .so-comp-row{grid-template-columns:minmax(0,1fr)}
 .so-products{width:100%}
}
@media(max-width:560px){.so-index{grid-template-columns:minmax(0,1fr)}.so-index li{border-left:0}.so-index li+li{border-top:1px solid var(--ix-rule)}.so-today strong{font-size:36px}}
@media(prefers-reduced-motion:reduce){.so-index a,.so-mark,.so-index-go span,.so-products a,.so-tok,.so-tok-tick::after{transition:none}}

/* 22-pathways.css */
/* The Pathways family (content/pages/pathways.mjs): each pathway's own accent, the editorial essays (section() with
   essay: 'editorial' | 'bleed', src/components.mjs), the Room Plan's pins and legend, and the phone forms of the
   product demos. Pathway-only rules are scoped through body[data-path] so the shared patterns keep their defaults. */

/* Accent: one restrained colour per pathway, on small details only. --pw-accent reads on every light ground
   (≥4.6:1 on --paper-deep); --pw-glow is its light form for the dark hero. The index keeps the house colours. */
body[data-path^="/pathways/"]{--pw-accent:var(--ink);--pw-glow:#9fbaa8}
body[data-path="/pathways/parents/"]{--pw-accent:#96452a;--pw-glow:#eba98a}
body[data-path="/pathways/care/"]{--pw-accent:#8a3f5c;--pw-glow:#e9aec6}
body[data-path="/pathways/core/"]{--pw-accent:#2e6a50;--pw-glow:#a3d4b8}
body[data-path="/pathways/facilitators/"]{--pw-accent:#34557a;--pw-glow:#aec8e6}
body[data-path^="/pathways/"]:not([data-path="/pathways/"]) .ln-hero .ln-status--today span{background:var(--pw-glow);box-shadow:0 0 0 4px color-mix(in srgb,var(--pw-glow) 26%,transparent)}
body[data-path^="/pathways/"]:not([data-path="/pathways/"]) .ln-hero .ln-status--built span{border-color:var(--pw-glow);box-shadow:0 0 0 4px color-mix(in srgb,var(--pw-glow) 20%,transparent)}
body[data-path^="/pathways/"] :is(.shifts__arrow,.folio__num,.rs-start,.dd-time){color:var(--pw-accent)}
body[data-path^="/pathways/"] .stage__num{border-color:var(--pw-accent);color:var(--pw-accent)}
body[data-path^="/pathways/"] .lp-arc{stroke:var(--pw-accent)}
body[data-path^="/pathways/"] .lp-live .lp-item.is-active .lp-n{color:var(--pw-accent)}
body[data-path^="/pathways/"] .pb li a[aria-current="true"]{border-bottom-color:var(--pw-accent)}
/* The index introduces the family: each lineup card carries its pathway's mark. */
.pl-card{--pw-glow:#eba98a}.pl-card:nth-child(2){--pw-glow:#e9aec6}.pl-card:nth-child(3){--pw-glow:#a3d4b8}.pl-card:nth-child(4){--pw-glow:#aec8e6}
.pl-copy::before{content:"";display:block;width:28px;height:2px;margin-bottom:16px;border-radius:2px;background:var(--pw-glow)}

/* Editorial essay: a 3:2 lead across eight of twelve columns, a second photograph across the last five, overlapping its lower right on a
   border of the section's own paper. Gentle drift through --p (experience.js; never for reduced motion). */
.ed-essay{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;margin:clamp(2.5rem,5vw,5rem) 0 clamp(4.5rem,9vw,8.5rem)}
:where(.ed-essay,.ed-bleed) figure{margin:0}
.ed-frame{position:relative;overflow:hidden;--ed-paper:var(--paper)}
.sec--deep .ed-frame{--ed-paper:var(--paper-deep)}.sec--light .ed-frame{--ed-paper:var(--paper-light)}
.ed-frame img{display:block;width:100%;height:100%;object-fit:cover}
.ed-lead{grid-column:1/span 8;grid-row:1}
.ed-lead .ed-frame{aspect-ratio:3/2;border-radius:6px}
.ed-inset{grid-column:8/span 5;grid-row:1;margin-bottom:clamp(-6rem,-6vw,-2.5rem);z-index:1}
.ed-inset .ed-frame{aspect-ratio:4/3;border:clamp(6px,.8vw,12px) solid var(--ed-paper);border-radius:8px;background:var(--ed-paper);box-shadow:0 30px 60px rgba(25,20,15,.16)}
.ed-portrait .ed-frame{aspect-ratio:4/5}
.ed-essay figcaption,.ed-bleed figcaption{margin-top:.8rem;max-width:34ch;font:italic 400 clamp(1.05rem,1.3vw,1.25rem)/1.35 var(--font-display);color:var(--ink-soft)}
.ed-lead figcaption{max-width:min(34ch,70%)}
.ed-frame .pt-concept{left:12px;bottom:12px}
.ed-bleed{margin:clamp(2.5rem,5vw,5rem) 0 clamp(2.5rem,5vw,4.5rem)}
.ed-bleed .ed-frame{aspect-ratio:21/9;max-height:80vh;width:100%}
.ed-bleed figcaption{max-width:var(--max);margin:14px auto 0;padding-inline:var(--gutter)}
.ed-bleed .pt-concept{left:max(var(--gutter),calc((100% - var(--max))/2 + var(--gutter)));bottom:18px}
@media(prefers-reduced-motion:no-preference){
 .xp-js .ed-lead img{transform:scale(calc(1.07 - var(--p,1)*.07))}
 .xp-js .ed-inset{transform:translate3d(0,calc((1 - var(--p,1))*72px),0)}
 .xp-js .ed-bleed img{transform:translate3d(0,calc((var(--p,1) - 1)*6%),0) scale(1.09)}
}
@media(max-width:700px){
 .ed-essay{grid-template-columns:repeat(12,minmax(0,1fr));margin:2rem 0 3rem}
 .ed-lead{grid-column:1/-1}
 .ed-lead .ed-frame{aspect-ratio:4/3}
 .ed-lead figcaption{max-width:44%}
 .ed-inset{grid-column:6/-1;grid-row:2;margin:-22vw 0 0}
 .ed-bleed .ed-frame{aspect-ratio:4/3}
}

/* Mosaic Six on phones, pathway pages only: a sideways rail of cards with the next one peeking, not six screens of
   scrolling. experience.js makes the rail a keyboard stop while it scrolls. */
@media(max-width:700px){
 body[data-path^="/pathways/"] .pt-mosaic{display:flex;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;margin-inline:calc(-1*var(--gutter));padding:0 var(--gutter) 6px;scroll-padding-inline:var(--gutter);scrollbar-width:none}
 body[data-path^="/pathways/"] .pt-mosaic::-webkit-scrollbar{display:none}
 body[data-path^="/pathways/"] .pt-mosaic-card{flex:0 0 84%;min-height:440px;scroll-snap-align:start}
 body[data-path^="/pathways/"] .pt-mosaic:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
 body[data-path="/pathways/care/"] #method .tiles--4{grid-template-columns:repeat(2,minmax(0,1fr))}
 body[data-path="/pathways/care/"] #method .tile{gap:.45rem;padding:1.1rem 1rem 1.25rem}
 body[data-path="/pathways/care/"] #method .tile .h4{font-size:1.15rem;line-height:1.15}
 body[data-path="/pathways/care/"] #method .tile__line{font-size:1.02rem;line-height:1.3}
}

/* Practice Loop on phones: the list carries the rhythm; the ring (one word in a large circle) stands down. Every
   station's line stays open, so the travelling highlight never moves the page. */
@media(max-width:700px){
 .lp{display:block}
 .lp-figure{display:none}
 .lp-item{position:relative}
 .lp-item::before{content:"";position:absolute;left:-10px;top:20px;bottom:20px;width:2px;border-radius:2px;background:var(--pw-accent,#8a5220);transform:scaleY(0);transform-origin:top;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
 .lp-live .lp-item.is-active::before{transform:none}
 .lp-live .lp-item:not(.is-active) p{display:block}
 .lp-live .lp-item:not(.is-active) .lp-t{color:var(--ink-soft)}
 .lp-item button{min-height:44px}
}
@media(max-width:700px) and (prefers-reduced-motion:reduce){.lp-item::before{transition:none}}

/* Room Plan: on phones the words in the drawing give way to numbered pins and the legend below it. On wide screens
   the legend stays for screen readers only (the drawing itself is decorative). */
.rp-pin{display:none}
.rp-pin circle{fill:var(--ink)}
.rp-labels--before .rp-pin circle{fill:#8a5220}
.rp-pin text{font:500 24px/1 var(--font-mono);fill:var(--paper-light);text-anchor:middle}
.rp-legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.rp-legend p{margin:0 0 8px;font:400 11px/1.3 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}
.rp-legend ol{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin:0;padding:0;list-style:none}
.rp-legend li{display:flex;align-items:center;gap:9px;font-size:14.5px;line-height:1.3;color:var(--ink)}
.rp-legend li span{flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--ink);color:var(--paper-light);font:500 11px/1 var(--font-mono)}
.rp-legend--before li span{background:#8a5220}
@media(max-width:700px){
 .rp-label{display:none}
 .rp-pin{display:inline}
 .rp-legend{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;margin-top:16px}
 .rp-legend--before,.rp.is-before .rp-legend--after{display:none}
 .rp.is-before .rp-legend--before{display:block}
}
.rp + .shifts{margin-top:clamp(2.5rem,5vw,4.5rem)}

/* Device mockups on phones: the Parents screens lose the bezel and show the screen at a readable size (--u fixed at
   1.2px, so the smallest text is 12px); the facilitator's tablet shows its main pane alone, unscaled, in one column. */
@media(max-width:700px){
 :is(.dd-phone,.pf-phone) .ga{--u:1.2px;container-type:normal;max-width:none}
 :is(.dd-phone,.pf-phone) .ga-body{aspect-ratio:auto;padding:0;border-radius:0;background:none;box-shadow:none}
 :is(.dd-phone,.pf-phone) .ga-body::before,:is(.dd-phone,.pf-phone) .ga-body::after,:is(.dd-phone,.pf-phone) :is(.ga-status,.ga-tabs,.ga-home){display:none}
 :is(.dd-phone,.pf-phone) .ga-screen{height:auto;border-radius:18px;border:1px solid var(--rule);box-shadow:0 18px 40px rgba(25,20,15,.1)}
 :is(.dd-phone,.pf-phone) .ga-view{flex:none;overflow:visible;padding-bottom:18px}
 :is(.dd-phone,.pf-phone) .ga-cover-nav{inset:12px 12px auto}
 .pf-phone,.dd .dd-phone{width:100%;max-width:none}
 .dd-phone .pr-stack{display:grid}
 .dd-phone .pr-screen{grid-area:1/1;position:relative}
 /* A Day, Reimagined: the moments become a row of times above the screen, which carries each moment in full. */
 .dd-live{display:flex;flex-direction:column;align-items:stretch;gap:18px}
 .dd-live .dd-phone{order:0}
 .dd-live .dd-list{display:flex;gap:8px;overflow-x:auto;margin-inline:calc(-1*var(--gutter));padding:4px var(--gutter);border:0;scroll-padding-inline:var(--gutter);scrollbar-width:none}
 .dd-live .dd-list::-webkit-scrollbar{display:none}
 .dd-live .dd-item{flex:none;border:0}
 .dd-live .dd-item button{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-height:44px;padding:10px 14px;border:1px solid var(--rule-strong);border-radius:14px;background:var(--paper-light)}
 .dd-live .dd-item .dd-title{font-size:17px;color:var(--ink)}
 .dd-live .dd-item.is-active button{background:var(--ink);border-color:var(--ink)}
 .dd-live .dd-item.is-active :is(.dd-time,.dd-title){color:var(--paper-light)}
 .dd-live .dd-body{display:none}
 .gt{--t:1.1px;container-type:normal;margin-top:36px}
 .gt-body{aspect-ratio:auto;padding:0;border-radius:0;background:none;box-shadow:none}
 .gt-screen{display:block;height:auto;border-radius:18px;border:1px solid var(--rule);box-shadow:0 18px 40px rgba(25,20,15,.1)}
 .gt-side{display:none}
 .gt-main{padding:22px 18px 20px}
 .gt-head{flex-direction:column;align-items:flex-start;gap:12px}
 .gt-title{font-size:30px}
 .gt-grid{grid-template-columns:1fr}
 .gt-k,.gt-tags span,.gt-foot{font-size:12px}
 .gt-foot{flex-direction:column;gap:8px}
}
