/* 3LA Signal Desk — component and template composition */
.template-home .hero :focus-visible,
.soul-band :focus-visible,
.band :focus-visible,
.lab-section :focus-visible,
.contact :focus-visible,
footer :focus-visible,
header :focus-visible { outline-color: var(--sys-color-focus-ring); }
.skip {
  position: fixed;
  z-index: 1000;
  top: 10px;
  left: 10px;
  min-height: var(--sys-control-target-min);
  padding: var(--ref-space-12) var(--ref-space-16);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--sys-radius-control);
  background: var(--sys-color-action-bg);
  color: var(--sys-color-action-text);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-label-size);
  text-decoration: none;
  transform: translateY(-160%);
}
.skip:focus { transform: translateY(0); }

/* Signal Lock entry sting. Hidden unless the head controller opts in before paint. */
.signal-lock {
  position: fixed;
  z-index: 900;
  inset: 0;
  display: none;
  overflow: hidden;
  background: var(--sys-color-canvas);
  pointer-events: none;
  contain: strict;
}
.preloader-active .signal-lock { display: block; }
.signal-lock::before,
.signal-lock::after {
  content: '';
  position: absolute;
  z-index: 1;
  left: 0;
  width: 100%;
  height: 50.5%;
  background: var(--sys-color-canvas);
  transform: translate3d(0, 0, 0);
  transition: transform var(--sys-motion-duration-reveal) var(--sys-motion-ease-out);
  will-change: transform;
}
.signal-lock::before { top: 0; }
.signal-lock::after { bottom: 0; }

.signal-lock__field,
.signal-lock__grid,
.signal-lock__axis,
.signal-lock__pulse,
.signal-lock__logo {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
}
.signal-lock__field { inset: 0; }
.signal-lock__fragment {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 18px;
  height: 2px;
  background: var(--sys-color-signal);
  opacity: 0;
  transform-origin: right center;
  transition:
    opacity var(--sys-motion-duration-hover) var(--sys-motion-ease-standard),
    transform var(--sys-motion-duration-expand) var(--sys-motion-ease-out);
  will-change: opacity, transform;
}
.signal-lock__fragment--02,
.signal-lock__fragment--07,
.signal-lock__fragment--11 { width: 10px; background: var(--sys-color-accent); }
.signal-lock__fragment--04,
.signal-lock__fragment--09 { width: 28px; }
.signal-lock__fragment--01 { transform: translate3d(-46vw, -112px, 0); }
.signal-lock__fragment--02 { transform: translate3d(-38vw, -84px, 0); }
.signal-lock__fragment--03 { transform: translate3d(-43vw, -58px, 0); }
.signal-lock__fragment--04 { transform: translate3d(-34vw, -34px, 0); }
.signal-lock__fragment--05 { transform: translate3d(-48vw, -14px, 0); }
.signal-lock__fragment--06 { transform: translate3d(-30vw, 8px, 0); }
.signal-lock__fragment--07 { transform: translate3d(-42vw, 30px, 0); }
.signal-lock__fragment--08 { transform: translate3d(-36vw, 52px, 0); }
.signal-lock__fragment--09 { transform: translate3d(-47vw, 76px, 0); }
.signal-lock__fragment--10 { transform: translate3d(-28vw, 98px, 0); }
.signal-lock__fragment--11 { transform: translate3d(-40vw, 122px, 0); }
.signal-lock__fragment--12 { transform: translate3d(-33vw, 146px, 0); }

.signal-lock__grid {
  width: 82px;
  height: min(34vh, 236px);
  border-inline: 1px solid var(--sys-color-border-subtle);
  opacity: 0;
  transform: translate(-50%, -50%);
  transition: opacity var(--sys-motion-duration-state) var(--sys-motion-ease-out);
}
.signal-lock__grid span,
.signal-lock__grid::before,
.signal-lock__grid::after {
  content: '';
  position: absolute;
  display: block;
  background: var(--sys-color-border-subtle);
}
.signal-lock__grid span { top: 0; bottom: 0; width: 1px; }
.signal-lock__grid span:nth-child(1) { left: 25%; }
.signal-lock__grid span:nth-child(2) { left: 50%; }
.signal-lock__grid span:nth-child(3) { left: 75%; }
.signal-lock__grid::before,
.signal-lock__grid::after { left: 0; right: 0; height: 1px; }
.signal-lock__grid::before { top: 34%; }
.signal-lock__grid::after { top: 66%; }

.signal-lock__axis {
  width: 100vw;
  height: 1px;
  background: var(--sys-color-text-secondary);
  opacity: 0;
  transform: translate(-50%, -50%) scaleX(0);
  transform-origin: center;
  transition:
    opacity var(--sys-motion-duration-state) var(--sys-motion-ease-standard),
    transform var(--sys-motion-duration-expand) var(--sys-motion-ease-out);
  will-change: opacity, transform;
}
.signal-lock__pulse {
  width: 12px;
  height: 3px;
  background: var(--sys-color-signal);
  opacity: 0;
  transform: translate3d(-8vw, -50%, 0);
  transition:
    opacity var(--sys-motion-duration-hover) var(--sys-motion-ease-standard),
    transform var(--sys-motion-duration-emphasis) var(--sys-motion-ease-out);
  will-change: opacity, transform;
}
.signal-lock__logo {
  width: 136px;
  background: var(--sys-color-canvas);
  opacity: 0;
  clip-path: inset(0 100% 0 0);
  transform: translate(-50%, -50%);
  transition:
    clip-path var(--sys-motion-duration-expand) var(--sys-motion-ease-out),
    opacity var(--sys-motion-duration-state) var(--sys-motion-ease-standard);
  will-change: clip-path, opacity;
}
.signal-lock__logo img { width: 100%; height: auto; display: block; }

.preloader-phase-acquisition .signal-lock__grid { opacity: .72; }
.preloader-phase-acquisition .signal-lock__fragment { opacity: .88; }
.preloader-phase-acquisition .signal-lock__fragment--01 { transform: translate3d(-82px, -112px, 0); }
.preloader-phase-acquisition .signal-lock__fragment--02 { transform: translate3d(-42px, -84px, 0); }
.preloader-phase-acquisition .signal-lock__fragment--03 { transform: translate3d(-72px, -58px, 0); }
.preloader-phase-acquisition .signal-lock__fragment--04 { transform: translate3d(-32px, -34px, 0); }
.preloader-phase-acquisition .signal-lock__fragment--05 { transform: translate3d(-66px, -14px, 0); }
.preloader-phase-acquisition .signal-lock__fragment--06 { transform: translate3d(-22px, 8px, 0); }
.preloader-phase-acquisition .signal-lock__fragment--07 { transform: translate3d(-54px, 30px, 0); }
.preloader-phase-acquisition .signal-lock__fragment--08 { transform: translate3d(-28px, 52px, 0); }
.preloader-phase-acquisition .signal-lock__fragment--09 { transform: translate3d(-76px, 76px, 0); }
.preloader-phase-acquisition .signal-lock__fragment--10 { transform: translate3d(-18px, 98px, 0); }
.preloader-phase-acquisition .signal-lock__fragment--11 { transform: translate3d(-48px, 122px, 0); }
.preloader-phase-acquisition .signal-lock__fragment--12 { transform: translate3d(-26px, 146px, 0); }

.preloader-phase-interpretation .signal-lock__fragment {
  opacity: .12;
  transform: translate3d(-4px, 0, 0) scaleX(.18);
}
.preloader-phase-interpretation .signal-lock__axis {
  opacity: .82;
  transform: translate(-50%, -50%) scaleX(.28);
}
.preloader-phase-interpretation .signal-lock__pulse { opacity: 1; }

.preloader-phase-identity .signal-lock__field { opacity: 0; transition: opacity var(--sys-motion-duration-state) var(--sys-motion-ease-standard); }
.preloader-phase-identity .signal-lock__grid { opacity: .22; }
.preloader-phase-identity .signal-lock__axis { opacity: 1; transform: translate(-50%, -50%) scaleX(.42); }
.preloader-phase-identity .signal-lock__pulse { opacity: 0; transform: translate3d(18vw, -50%, 0); }
.preloader-phase-identity .signal-lock__logo { opacity: 1; clip-path: inset(0 0 0 0); }

.preloader-phase-handoff .signal-lock::before { transform: translate3d(0, -101%, 0); }
.preloader-phase-handoff .signal-lock::after { transform: translate3d(0, 101%, 0); }
.preloader-phase-handoff .signal-lock__grid,
.preloader-phase-handoff .signal-lock__pulse,
.preloader-phase-handoff .signal-lock__logo { opacity: 0; }
.preloader-phase-handoff .signal-lock__axis {
  opacity: .9;
  transform: translate(-50%, -50%) scaleX(1);
  transition-duration: var(--sys-motion-duration-state), var(--sys-motion-duration-reveal);
}

@media (max-width: 680px) {
  .signal-lock__grid { width: 58px; height: min(28vh, 184px); }
  .signal-lock__logo { width: 112px; }
  .signal-lock__fragment--01 { transform: translate3d(-44vw, -86px, 0); }
  .signal-lock__fragment--02 { transform: translate3d(-36vw, -66px, 0); }
  .signal-lock__fragment--03 { transform: translate3d(-42vw, -46px, 0); }
  .signal-lock__fragment--04 { transform: translate3d(-32vw, -28px, 0); }
  .signal-lock__fragment--05 { transform: translate3d(-46vw, -10px, 0); }
  .signal-lock__fragment--06 { transform: translate3d(-30vw, 6px, 0); }
  .signal-lock__fragment--07 { transform: translate3d(-40vw, 24px, 0); }
  .signal-lock__fragment--08 { transform: translate3d(-34vw, 42px, 0); }
  .signal-lock__fragment--09 { transform: translate3d(-45vw, 60px, 0); }
  .signal-lock__fragment--10 { transform: translate3d(-28vw, 78px, 0); }
  .signal-lock__fragment--11 { transform: translate3d(-38vw, 96px, 0); }
  .signal-lock__fragment--12 { transform: translate3d(-31vw, 114px, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .signal-lock,
  .preloader-active .signal-lock { display: none !important; }
}

/* The canvas keeps settling under the planes; page copy begins only at handoff. */
.preloader-active .solv-site > header,
.preloader-active [data-reveal] {
  opacity: 0;
  transform: translateY(24px);
  will-change: opacity, transform;
}

/* Floating shared shell */
.solv-site > header {
  position: sticky;
  z-index: 100;
  top: var(--ref-space-16);
  width: min(calc(100% - 2 * var(--sys-space-page-gutter)), calc(var(--sys-layout-page-max) - 2 * var(--sys-space-page-gutter)));
  min-height: 64px;
  margin: var(--ref-space-16) auto -80px;
  padding: var(--ref-space-8);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  border: 1px solid var(--sys-color-border-subtle);
  border-radius: var(--sys-radius-control);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--sys-color-text-primary) 8%, transparent), color-mix(in srgb, var(--sys-color-text-primary) 1.5%, transparent) 48%, transparent),
    color-mix(in srgb, var(--sys-color-canvas) 58%, transparent);
  color: var(--sys-color-text-primary);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .18),
    inset 0 -1px 0 rgba(255, 255, 255, .05),
    0 12px 40px rgba(0, 0, 0, .18);
  -webkit-backdrop-filter: blur(24px) saturate(140%);
  backdrop-filter: blur(24px) saturate(140%);
}
.solv-site .logo-small {
  z-index: 2;
  grid-column: 2;
  min-width: 92px;
  min-height: var(--sys-control-target-min);
  display: grid;
  place-items: center;
}
.solv-site .logo-small img { width: auto; height: 30px; }
.solv-site #mainnav {
  position: absolute;
  inset: var(--ref-space-8);
  display: flex;
  align-items: center;
  gap: 2px;
  pointer-events: none;
}
.solv-site #mainnav a {
  min-height: var(--sys-control-target-min);
  padding: var(--ref-space-12) clamp(var(--ref-space-8), 1vw, var(--ref-space-16));
  display: inline-flex;
  align-items: center;
  border-radius: var(--sys-radius-control);
  color: var(--sys-color-text-primary);
  font-size: var(--sys-type-navigation-size);
  font-weight: 500;
  text-decoration: none;
  pointer-events: auto;
  white-space: nowrap;
  transition:
    color var(--sys-motion-duration-hover) var(--sys-motion-ease-standard),
    background var(--sys-motion-duration-hover) var(--sys-motion-ease-standard);
}
.solv-site #mainnav a:hover { color: var(--sys-color-hover-text); }
.solv-site nav a[aria-current],
.solv-site nav a.here,
.solv-site #mainnav a[aria-current],
.solv-site #mainnav a.here {
  color: var(--sys-color-active-text);
  background: var(--sys-color-active-bg);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .12),
    inset 0 0 0 1px rgba(191, 34, 73, .72);
}
.solv-site nav .btn {
  margin-left: auto;
  padding-inline: var(--ref-space-20);
  background: var(--sys-color-action-bg);
  color: var(--sys-color-action-text);
  font-weight: 600;
}
.solv-site nav .btn:hover { background: var(--sys-color-action-hover-bg); color: var(--sys-color-action-hover-text); }
.solv-site #mainnav .btn {
  background: var(--sys-color-action-bg);
  color: var(--sys-color-action-text);
  box-shadow: none;
}
.solv-site #mainnav .btn:hover,
.solv-site #mainnav .btn:focus-visible {
  background: var(--sys-color-action-hover-bg);
  color: var(--sys-color-action-hover-text);
}
.solv-site #mainnav a.btn[aria-current] {
  background: var(--sys-color-action-bg);
  color: var(--sys-color-action-text);
  box-shadow: none;
}
.solv-site #mainnav a.btn[aria-current]:hover,
.solv-site #mainnav a.btn[aria-current]:focus-visible {
  background: var(--sys-color-action-hover-bg);
  color: var(--sys-color-action-hover-text);
}
.footer-mark { min-width: var(--sys-control-target-min); min-height: var(--sys-control-target-min); display: inline-flex; align-items: center; flex: none; }
.nav-toggle {
  z-index: 2;
  display: none;
  min-width: 64px;
  height: var(--sys-control-target-min);
  padding: var(--ref-space-12) var(--ref-space-12);
  border: 1px solid var(--sys-color-border-subtle);
  border-radius: var(--sys-radius-control);
  background: transparent;
  color: var(--sys-color-text-primary);
  font-size: var(--sys-type-navigation-size);
  font-weight: 600;
  cursor: pointer;
}
.nav-toggle__close { display: none; }
.nav-toggle[aria-expanded='true'] .nav-toggle__open { display: none; }
.nav-toggle[aria-expanded='true'] .nav-toggle__close { display: inline; }

/* Explicit release-level target contracts. */
.solv-site .nav-toggle { min-height: var(--sys-control-target-min); }

/* Baseline contracts retained for shared semantic components. */
nav a { min-height: var(--sys-control-target-min); font-size: var(--sys-type-navigation-size); }
#mainnav a:not(.btn) {
  padding: var(--ref-space-8) var(--ref-space-12);
  border-radius: var(--sys-radius-control);
  transition:
    background var(--sys-motion-duration-hover) var(--sys-motion-ease-standard),
    color var(--sys-motion-duration-hover) var(--sys-motion-ease-standard);
}
#mainnav a:not(.btn):hover, #mainnav a:not(.btn):focus-visible { background: var(--sys-color-hover-bg); }
footer { font-size: var(--sys-type-caption-size); }

/* Shared text and actions */
.tag {
  color: var(--ref-color-signal-500);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-label-size);
  line-height: 1.45;
  margin-bottom: clamp(var(--ref-space-16), 1.6vw, var(--ref-space-20));
  letter-spacing: .075em;
  text-transform: uppercase;
}
.sb-btn {
  min-height: 50px;
  padding: var(--ref-space-12) var(--ref-space-16);
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ref-space-32);
  border: 1px solid var(--sys-color-action-bg);
  border-radius: var(--sys-radius-control);
  background: var(--sys-color-action-bg);
  color: var(--sys-color-action-text);
  font-size: var(--sys-type-control-size);
  font-weight: 500;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  transition:
    background var(--sys-motion-duration-state) var(--sys-motion-ease-standard),
    border-color var(--sys-motion-duration-state) var(--sys-motion-ease-standard),
    color var(--sys-motion-duration-state) var(--sys-motion-ease-standard),
    transform var(--sys-motion-duration-state) var(--sys-motion-ease-spring);
}
.sb-btn:hover { border-color: var(--sys-color-action-hover-bg); background: var(--sys-color-action-hover-bg); color: var(--sys-color-action-hover-text); transform: translateY(-2px); }
.sb-btn:active { transform: translateY(1px); }
.sb-btn:is(:disabled, [aria-disabled="true"]),
.nav-toggle:is(:disabled, [aria-disabled="true"]) {
  background: var(--sys-color-disabled-bg);
  color: var(--sys-color-disabled-text);
  opacity: var(--sys-opacity-disabled);
}
.sb-btn.ghost { border-color: var(--sys-color-border-strong); background: transparent; color: var(--sys-color-text-primary); }
.sb-btn.ghost:hover { background: var(--sys-color-hover-bg); color: var(--sys-color-hover-text); }
.text-link {
  min-height: var(--sys-control-target-min);
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ref-space-32);
  padding: var(--ref-space-12) 0 var(--ref-space-8);
  border-bottom: 2px solid currentColor;
  color: inherit;
  font-weight: 600;
  text-decoration: none;
}
.text-link__arrow {
  flex: none;
  font-family: var(--sys-type-body-family);
  font-variant-emoji: text;
  line-height: 1;
}
.solv-site .sb-btn { min-height: 50px; }
.solv-site .text-link { min-height: var(--sys-control-target-min); }

/* Local Phosphor icon system */
.visual-mark {
  width: 44px;
  height: 44px;
  display: grid;
  flex: none;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: var(--sys-radius-control);
  color: var(--ref-color-signal-700);
}
.visual-mark::before {
  width: 22px;
  height: 22px;
  display: block;
  background: currentColor;
  content: '';
  -webkit-mask: var(--visual-icon) center / contain no-repeat;
  mask: var(--visual-icon) center / contain no-repeat;
}
[data-icon="binoculars"] { --visual-icon: url('icons/binoculars.svg'); }
[data-icon="funnel"] { --visual-icon: url('icons/funnel.svg'); }
[data-icon="rocket-launch"] { --visual-icon: url('icons/rocket-launch.svg'); }
[data-icon="magnifying-glass"] { --visual-icon: url('icons/magnifying-glass.svg'); }
[data-icon="timer"] { --visual-icon: url('icons/timer.svg'); }
[data-icon="equals"] { --visual-icon: url('icons/equals.svg'); }
[data-icon="globe-hemisphere-west"] { --visual-icon: url('icons/globe-hemisphere-west.svg'); }
[data-icon="gauge"] { --visual-icon: url('icons/gauge.svg'); }
[data-icon="squares-four"] { --visual-icon: url('icons/squares-four.svg'); }
[data-icon="seal-check"] { --visual-icon: url('icons/seal-check.svg'); }

/* Homepage hero */
.hero {
  width: min(100%, var(--sys-layout-page-max));
  min-height: auto;
  margin: 0 auto;
  padding: clamp(var(--ref-space-56), 6vw, var(--ref-space-88)) var(--sys-space-page-gutter) clamp(var(--ref-space-48), 6vw, var(--ref-space-88));
  display: grid;
  align-items: start;
}
.hero-inner { position: relative; z-index: 2; max-width: 1120px; }
.hero .tag { max-width: 70ch; margin-bottom: clamp(var(--ref-space-20), 2vw, var(--ref-space-24)); }
.hero h1 {
  max-width: 15ch;
  font-family: var(--sys-type-heading-family);
  font-size: var(--sys-type-page-title-size);
  font-weight: var(--sys-type-page-title-weight);
  letter-spacing: var(--sys-type-page-title-tracking);
  line-height: var(--sys-type-page-title-leading);
  text-transform: none;
  text-wrap: balance;
}
.hero h1 > span { display: block; }
.hero h1 .signal {
  position: relative;
  z-index: 0;
  color: var(--ref-color-signal-500);
}
.hero-copy {
  max-width: 58ch;
  margin-top: var(--ref-space-24);
  color: var(--ref-color-ink-alpha-70);
  font-size: var(--sys-type-lead-size);
  line-height: 1.6;
  text-wrap: pretty;
}
.hero-actions { margin-top: var(--ref-space-24); display: flex; flex-wrap: wrap; gap: var(--ref-space-12); }

/* Homepage narrative — the first viewport explains 3LA before asking for a click. */
.template-home main { background: var(--sys-color-surface); }
.template-home .hero {
  position: relative;
  overflow: clip;
  width: 100%;
  min-height: calc(100svh - var(--sys-layout-continuation-lip));
  margin: 0;
  padding: clamp(144px, 14vw, 210px) var(--sys-space-page-gutter) clamp(var(--ref-space-72), 9vw, var(--ref-space-128));
  display: grid;
  align-items: end;
  background: var(--sys-color-canvas);
  color: var(--sys-color-text-primary);
}
.template-home .hero-visual {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
}
.template-home .hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(to top, color-mix(in srgb, var(--sys-color-canvas) 78%, transparent), transparent 52%),
    linear-gradient(105deg, color-mix(in srgb, var(--sys-color-canvas) 55%, transparent) 0%, transparent 48%),
    radial-gradient(56% 52% at 94% 4%, color-mix(in srgb, var(--sys-color-canvas) 34%, transparent), transparent 62%);
}
.template-home .hero__fade {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 24%;
  z-index: 2;
  pointer-events: none;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  mask-image: linear-gradient(to bottom, transparent, #000 68%);
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 68%);
}
.template-home .hero__grid { position: relative; z-index: 3; }
.hero__grid {
  width: min(100%, var(--sys-layout-content-max));
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  align-items: end;
}
.hero__grid > * { min-width: 0; }
.template-home .hero-inner { width: 100%; max-width: 960px; margin-inline: 0; }
.template-home .hero .tag { width: fit-content; margin-left: calc(-1 * var(--ref-space-16)); padding: var(--ref-space-8) var(--ref-space-16); border-radius: var(--sys-radius-control); background: #000; color: var(--ref-color-brand-300); }
.template-home .hero h1 {
  max-width: 14ch;
  color: var(--ref-color-silver-500);
  font-size: var(--sys-type-display-size);
  font-weight: var(--sys-type-display-weight);
  line-height: var(--sys-type-display-leading);
  letter-spacing: var(--sys-type-display-tracking);
  text-transform: none;
}
.template-home .hero h1 .signal { color: var(--sys-color-text-primary); }
.template-home .hero-copy { color: var(--sys-color-text-secondary); font-size: var(--sys-type-lead-size); max-width: 54ch; }
.template-home .hero .sb-btn { border-color: var(--sys-color-action-bg); background: var(--sys-color-action-bg); color: var(--sys-color-action-text); }
.template-home .hero .sb-btn:hover { background: var(--sys-color-action-hover-bg); border-color: var(--sys-color-action-hover-bg); color: var(--sys-color-action-hover-text); }
.template-home .hero .sb-btn.ghost { border-color: var(--sys-color-border-subtle); background: transparent; color: var(--sys-color-text-primary); }
.template-home .hero .sb-btn.ghost:hover { border-color: var(--sys-color-border-strong); background: var(--sys-color-hover-bg); color: var(--sys-color-hover-text); }
.template-home .hero-pause {
  position: absolute;
  right: max(var(--sys-space-page-gutter), 20px);
  bottom: 22px;
  z-index: 3;
  width: var(--sys-control-target-min);
  height: var(--sys-control-target-min);
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid var(--sys-color-border-subtle);
  border-radius: var(--ref-radius-circle);
  background: color-mix(in srgb, var(--sys-color-surface) 38%, transparent);
  color: var(--sys-color-text-secondary);
  cursor: pointer;
}
.template-home .hero-pause:hover { color: var(--sys-color-hover-text); border-color: var(--sys-color-border-strong); }
.template-home .hero-pause::before {
  content: '';
  width: 3px;
  height: 12px;
  background: currentColor;
  box-shadow: 6px 0 0 currentColor;
  transform: translateX(-3px);
}
.template-home .hero-pause[aria-pressed="true"]::before {
  width: 0;
  height: 0;
  background: transparent;
  box-shadow: none;
  border-left: 11px solid currentColor;
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  transform: translateX(1px);
}
@media (prefers-reduced-motion: reduce) {
  .template-home .hero-pause { display: none; }
}

/* Signature: client strip */
.client-strip {
  container-type: inline-size;
  padding: clamp(var(--ref-space-16), 2svh, var(--ref-space-20)) 0 clamp(var(--ref-space-56), 6vw, 92px);
  background: var(--ref-color-warm-50);
}
.client-strip__label {
  width: fit-content;
  max-width: min(100% - 2 * var(--sys-space-page-gutter), 60ch);
  margin: 0 auto clamp(var(--ref-space-32), 3.4vw, var(--ref-space-48));
  padding: var(--ref-space-12) var(--ref-space-24);
  border: 0;
  border-radius: var(--sys-radius-control);
  background: var(--ref-color-white);
  text-align: center;
  color: var(--ref-color-ink-alpha-70);
  font-family: var(--sys-type-body-family);
  font-size: var(--sys-type-body-size);
  font-weight: 500;
  line-height: 1.4;
}
.client-strip__marquee { position: relative; overflow: visible; }
.client-strip__track { width: 100%; min-width: 0; }
.client-strip__set {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: var(--ref-space-8) var(--sys-space-page-gutter);
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--ref-space-32) clamp(var(--ref-space-24), 4vw, var(--ref-space-64));
  list-style: none;
}
.client-strip__set li {
  min-width: 0;
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.client-strip__set img {
  --logo-h: 30px;
  height: var(--logo-h);
  width: auto;
  max-width: 100%;
  object-fit: contain;
  filter: invert(1);
  opacity: .74;
  transition:
    opacity var(--sys-motion-duration-state) var(--sys-motion-ease-standard),
    transform var(--sys-motion-duration-hover) var(--sys-motion-ease-out);
}
.client-strip__set li:hover img { transform: scale(1.05); }
.client-strip__set img.client-logo--s { --logo-h: 24px; }
.client-strip__set img.client-logo--m { --logo-h: 38px; }
.client-strip__set img.client-logo--l { --logo-h: 44px; }
.client-strip__set li:hover img { opacity: 1; }

@container (min-width: 1800px) {
  .client-strip__set { grid-template-columns: repeat(12, minmax(0, 1fr)); }
}

/* Progressive motion stays opt-in so every page remains readable without JavaScript. */
.motion-ready [data-reveal] {
  opacity: 0;
  transform: translateY(24px);
  will-change: opacity, transform;
}
.motion-ready [data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity var(--sys-motion-duration-reveal) var(--sys-motion-ease-out) var(--runtime-reveal-delay, 0ms),
    transform var(--sys-motion-duration-reveal) var(--sys-motion-ease-out) var(--runtime-reveal-delay, 0ms);
  will-change: auto;
}
.motion-ready [data-reveal]:focus-within {
  opacity: 1;
  transform: translateY(0);
  transition: none;
}
.motion-ready .solv-site > header { animation: shell-enter var(--sys-motion-duration-reveal) var(--sys-motion-ease-out) var(--sys-motion-duration-hover) both; }
.motion-ready .template-collection :is(.card, .tool, .block)[data-reveal] { transform: translateY(30px) scale(.985); }
.motion-ready .template-collection :is(.card, .tool, .block)[data-reveal].is-visible { transform: translateY(0) scale(1); }
.motion-ready .template-proposition :is(.card, .block, .soul-card)[data-reveal],
.motion-ready .template-tool .task-surface[data-reveal] { transform: translateY(26px) scale(.99); }
.motion-ready .template-proposition :is(.card, .block, .soul-card)[data-reveal].is-visible,
.motion-ready .template-tool .task-surface[data-reveal].is-visible { transform: translateY(0) scale(1); }
@keyframes shell-enter {
  from { opacity: 0; transform: translateY(-18px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes arrow-reappear-left {
  0% { opacity: 1; transform: translateX(0); }
  40% { opacity: 0; transform: translateX(10px); }
  41% { opacity: 0; transform: translateX(-10px); }
  100% { opacity: 1; transform: translateX(0); }
}
.sb-btn:hover [aria-hidden='true'],
.text-link:hover .text-link__arrow,
.bench-tool:hover .bench-tool__action span {
  animation: arrow-reappear-left var(--sys-motion-duration-emphasis) var(--sys-motion-ease-out);
}
@media (hover: hover) and (pointer: fine) {
  .template-home .dispatch,
  .template-home .bench-tool,
  .template-collection :is(.card, .tool, .block),
  .template-proposition :is(.card, .block) {
    transition:
      background var(--sys-motion-duration-expand) var(--sys-motion-ease-standard),
      border-color var(--sys-motion-duration-expand) var(--sys-motion-ease-standard),
      box-shadow var(--sys-motion-duration-emphasis) var(--sys-motion-ease-out),
      color var(--sys-motion-duration-expand) var(--sys-motion-ease-standard),
      transform var(--sys-motion-duration-emphasis) var(--sys-motion-ease-out);
  }
.template-home .dispatch:hover,
  .template-home .bench-tool:hover,
  .template-collection :is(.card, .tool, .block):hover,
  .template-proposition :is(.card, .block):hover {
    box-shadow: var(--sys-elevation-raised);
    transform: translateY(-2px);
  }
  .visual-mark {
    transition:
      color var(--sys-motion-duration-expand) var(--sys-motion-ease-standard),
      transform var(--sys-motion-duration-emphasis) var(--sys-motion-ease-out);
  }
  :is(a, button):hover .visual-mark { transform: rotate(-4deg) scale(1.04); }
}

/* Signature: signal map */
.signal-process {
  width: min(100%, var(--sys-layout-page-max));
  margin: 0 auto;
  padding: clamp(var(--ref-space-72), 9vw, 132px) var(--sys-space-page-gutter);
}
#signal-map-title { scroll-margin-top: calc(var(--sys-layout-header-height) + var(--ref-space-24)); }
.template-home :is(.signal-map) { overflow: hidden; border: 0; border-radius: var(--sys-radius-panel); background: var(--ref-color-warm-50); box-shadow: none; }
.template-home :is(.signal-map__foot) { padding-inline: clamp(var(--ref-space-20), 3vw, var(--ref-space-32)); background: var(--ref-color-warm-50); }
.template-home :is(.signal-map__canvas) { gap: clamp(var(--ref-space-16), 2vw, var(--ref-space-32)); padding: clamp(var(--ref-space-20), 3vw, var(--ref-space-32)); background: var(--ref-color-warm-50); }
.template-home :is(.signal-stage) { min-height: 340px; border: 1px solid color-mix(in srgb, var(--ref-color-ink-900) 18%, var(--ref-color-warm-50)); border-radius: var(--sys-radius-panel); background: var(--ref-color-white); box-shadow: none; }
.template-home :is(.signal-stage--interpret) { background: color-mix(in srgb, var(--ref-color-brand-500) 14%, var(--ref-color-white)); }
.template-home :is(.signal-map__axis)::before { background: var(--ref-color-signal-500); }
.template-home :is(.signal-map__axis)::after { background: var(--ref-color-signal-500); }
.signal-map {
  position: relative;
  width: 100%;
  min-width: 0;
  margin: 0;
  border: 1px solid var(--ref-color-ink-900);
  background: var(--ref-color-warm-100);
  container-name: signal-map;
  container-type: inline-size;
}
.signal-map__foot {
  min-height: 43px;
  padding: var(--ref-space-12) var(--ref-space-16);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ref-space-20);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-label-size);
  letter-spacing: .075em;
  text-transform: uppercase;
}
.signal-map__foot {
  min-height: var(--sys-control-target-min);
  padding-block: 0;
  display: block;
  justify-content: flex-start;
  border-top: 1px solid var(--ref-color-ink-900);
  color: var(--ref-color-ink-alpha-70);
  font-family: var(--sys-type-body-family);
  font-size: var(--sys-type-body-size);
  line-height: 1.5;
  letter-spacing: 0;
  text-transform: none;
}
.signal-map__foot a {
  min-height: var(--sys-control-target-min);
  display: inline-flex;
  align-items: center;
  font-weight: 600;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .22em;
  vertical-align: middle;
}
.signal-map__canvas {
  position: relative;
  padding: clamp(var(--ref-space-20), 2.6cqi, var(--ref-space-32));
  display: grid;
  grid-template-columns: minmax(0, 1fr) 44px minmax(0, 1fr) 44px minmax(0, 1fr);
  align-items: stretch;
  background-color: var(--ref-color-warm-100);
  background-image: none;
}
.signal-stage {
  --signal-stage-pad: clamp(20px, 2cqi, 26px);
  min-width: 0;
  min-height: 300px;
  padding: var(--signal-stage-pad);
  display: grid;
  grid-template-rows: auto auto 1fr;
  align-content: start;
  border: 1px solid var(--ref-color-ink-900);
  background: color-mix(in srgb, var(--sys-color-surface) 94%, transparent);
}
.signal-stage--interpret {
  position: relative;
  z-index: 1;
  grid-template-rows: auto auto auto auto;
  background: color-mix(in srgb, var(--ref-color-brand-500) 14%, var(--ref-color-white));
}
.signal-stage--interpret img {
  width: 72px;
  height: auto;
  margin: 0;
  object-fit: contain;
}
.signal-stage__header {
  min-height: 1.1rem;
  margin-bottom: clamp(var(--ref-space-20), 1.8cqi, var(--ref-space-24));
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: var(--ref-space-16);
}
.signal-stage__step {
  color: var(--ref-color-ink-900);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-label-size);
  line-height: 1.35;
  letter-spacing: .075em;
  text-align: right;
  text-transform: uppercase;
}
.signal-stage h3 {
  max-width: 20ch;
  font-family: var(--sys-type-heading-family);
  font-size: var(--sys-type-card-title-size);
  font-weight: var(--sys-type-card-title-weight);
  line-height: var(--sys-type-card-title-leading);
  letter-spacing: var(--sys-type-card-title-tracking);
  text-transform: none;
  overflow-wrap: normal;
  word-break: normal;
}
.signal-stage__summary {
  max-width: 32ch;
  margin-top: var(--ref-space-16);
  color: var(--ref-color-ink-alpha-70);
  font-size: var(--sys-type-control-size);
  line-height: 1.55;
}
.signal-stage__list {
  margin: var(--ref-space-24) 0 0;
  padding: 0;
  align-self: start;
  display: grid;
  gap: var(--ref-space-12);
  list-style: none;
}
.signal-stage__list--domains,
.signal-stage__list--outputs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ref-space-8);
}
.signal-stage__list li {
  min-width: 0;
  line-height: 1.35;
}
.signal-stage__list--domains li,
.signal-stage__list--outputs a {
  min-height: var(--sys-control-target-min);
  padding: var(--ref-space-8) var(--ref-space-12);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid color-mix(in srgb, var(--ref-color-ink-900) 30%, transparent);
  border-radius: var(--sys-radius-control);
  background: transparent;
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-caption-size);
  line-height: 1.35;
  text-decoration: none;
  text-transform: uppercase;
}
.signal-stage--apply .signal-stage__list--outputs a {
  color: var(--ref-color-signal-700);
  border-color: color-mix(in srgb, var(--ref-color-signal-700) 45%, transparent);
}
.signal-stage__brand {
  margin-top: var(--ref-space-20);
  padding-block: var(--ref-space-12);
  align-self: start;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ref-space-16);
  border-top: 1px solid color-mix(in srgb, var(--ref-color-ink-900) 24%, transparent);
  border-bottom: 0;
  background: transparent;
}
.signal-stage__brand span {
  color: var(--ref-color-ink-900);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-label-size);
  line-height: 1.4;
  letter-spacing: .075em;
  text-transform: uppercase;
}
/* Interpret-stage funnel: scattered noise resolves into one signal line */
.signal-funnel {
  width: 100%;
  height: clamp(76px, 8.4cqi, 110px);
  min-height: 76px;
  max-height: 110px;
  margin-top: var(--ref-space-20);
  display: block;
  overflow: visible;
}
.signal-funnel path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}
.signal-funnel__ray {
  stroke: var(--ref-color-ink-900);
  stroke-width: 1.5;
  opacity: .3;
  stroke-dasharray: none;
}
.signal-funnel__ray--dropped { opacity: .15; }
.signal-funnel__signal {
  stroke: var(--ref-color-signal-500);
  stroke-width: 2;
  stroke-dasharray: none;
}
.signal-map__axis {
  --axis-anchor: 66%;
  position: relative;
  min-width: 44px;
  min-height: 0;
}
.signal-map__axis::before {
  content: '';
  position: absolute;
  inset: var(--axis-anchor) 7px auto 0;
  width: auto;
  height: 2px;
  background: var(--ref-color-signal-500);
  transform: translateY(-50%);
}
.signal-map__axis::after {
  content: '';
  position: absolute;
  top: var(--axis-anchor);
  right: 0;
  width: 9px;
  height: 12px;
  background: var(--ref-color-signal-500);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  transform: translateY(-50%);
}
.motion-ready .signal-map__axis::before {
  transform: translateY(-50%) scaleX(0);
  transform-origin: left center;
}
.motion-ready .signal-map__axis.is-signal-active::before {
  transform: translateY(-50%) scaleX(1);
  transition: transform var(--sys-motion-duration-reveal) var(--sys-motion-ease-out) var(--runtime-reveal-delay, 0ms);
}
@container (min-width: 721px) {
  .signal-stage__body { min-height: 134px; }
  .signal-map__axis {
    --axis-anchor: calc(clamp(20px, 2cqi, 26px) + 1.1rem + clamp(20px, 1.8cqi, 24px) + 134px + 18px + clamp(38px, 4.2cqi, 55px));
    min-width: 44px;
    min-height: 0;
  }
  .signal-map__axis::before {
    inset: var(--axis-anchor) 7px auto 0;
    width: auto;
    height: 2px;
    transform: translateY(-50%);
  }
  .signal-map__axis::after {
    top: var(--axis-anchor);
    right: 0;
    bottom: auto;
    left: auto;
    width: 9px;
    height: 12px;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
    transform: translateY(-50%);
  }
}

@container (max-width: 720px) {
  .signal-map__canvas {
    grid-template-columns: minmax(0, 1fr);
  }
  .template-home :is(.signal-stage) {
    min-height: auto;
  }
  .signal-funnel {
    height: clamp(76px, 15cqi, 110px);
    max-height: 110px;
  }
  .signal-map__axis {
    min-width: 0;
    min-height: 40px;
  }
  .signal-map__axis::before {
    inset: 0 auto 8px 50%;
    width: 2px;
    height: auto;
    transform: translateX(-50%);
  }
  .signal-map__axis::after {
    top: auto;
    right: auto;
    bottom: 0;
    left: 50%;
    width: 12px;
    height: 9px;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    transform: translateX(-50%);
  }
  .motion-ready .signal-map__axis::before {
    transform: translateX(-50%) scaleY(0);
    transform-origin: center top;
  }
  .motion-ready .signal-map__axis.is-signal-active::before {
    transform: translateX(-50%) scaleY(1);
  }
}


/* Soul Systems feature */
.soul-band {
  border-block: var(--sys-border-hairline);
  background: var(--ref-color-warm-100);
  color: var(--ref-color-ink-900);
}
.sb-inner {
  width: min(100%, var(--sys-layout-page-max));
  margin: 0 auto;
  padding: var(--sys-space-section-block) var(--sys-space-page-gutter);
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(480px, 1.15fr);
  gap: clamp(var(--ref-space-48), 6vw, var(--ref-space-96));
  align-items: end;
}
.soul-band h2 {
  max-width: 15ch;
  font-family: var(--sys-type-heading-family);
  font-size: var(--sys-type-section-title-size);
  font-weight: var(--sys-type-section-title-weight);
  line-height: var(--sys-type-section-title-leading);
  letter-spacing: var(--sys-type-section-title-tracking);
  text-transform: none;
}
.soul-band h2 span { color: var(--ref-color-signal-500); }
.soul-band__copy > p:not(.tag) {
  max-width: 65ch;
  margin-top: var(--ref-space-24);
  color: var(--ref-color-ink-alpha-70);
  font-size: var(--sys-type-body-size);
  line-height: 1.76;
}
.soul-band .text-link { margin-top: var(--ref-space-32); color: var(--sys-color-link); }
.soul-band__comparison { min-width: 0; align-self: stretch; display: flex; flex-direction: column; }
.soul-band__comparison-label {
  width: fit-content;
  margin: 0 0 var(--ref-space-16);
  padding: var(--ref-space-8) var(--ref-space-20);
  border-radius: var(--sys-radius-control);
  background: var(--ref-color-warm-100);
  color: var(--ref-color-ink-alpha-70);
  font-family: var(--sys-type-body-family);
  font-size: var(--sys-type-control-size);
  font-weight: 500;
  line-height: 1.35;
}
.soul-band__logic {
  flex: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 52px minmax(0, 1fr);
  border: 1px solid var(--ref-color-ink-900);
}
.soul-band__logic::before {
  content: 'VS';
  min-width: 0;
  display: grid;
  grid-column: 2;
  grid-row: 1;
  place-items: center;
  border-inline: 1px solid var(--ref-color-ink-900);
  background: var(--ref-color-warm-100);
  color: var(--ref-color-signal-700);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-label-size);
  font-weight: 500;
  letter-spacing: .075em;
}
.soul-band__logic > div {
  --comparison-pad: clamp(24px, 3vw, 36px);
  position: relative;
  min-width: 0;
  padding: var(--comparison-pad);
}
.soul-band__logic > div:first-child { grid-column: 1; grid-row: 1; }
.soul-band__logic > div:last-child {
  grid-column: 3;
  grid-row: 1;
  background: color-mix(in srgb, var(--ref-color-brand-500) 16%, var(--sys-color-surface));
}
.soul-band__logic dt {
  display: block;
  padding-inline-start: var(--ref-space-56);
  color: var(--ref-color-signal-700);
  font-family: var(--sys-type-body-family);
  font-size: clamp(1.25rem, 1.8vw, 1.5rem);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: 0;
  text-transform: none;
}
.soul-band__logic dt .visual-mark {
  position: absolute;
  inset-block-start: var(--comparison-pad);
  inset-inline-start: var(--comparison-pad);
}
.soul-band__logic dd {
  margin: 0;
  margin-top: var(--ref-space-12);
  margin-inline-start: var(--ref-space-56);
  color: var(--ref-color-ink-alpha-70);
  font-size: var(--sys-type-control-size);
  line-height: 1.6;
}

/* Editorial thinking */
.editorial-section {
  padding: var(--sys-space-section-block) var(--sys-space-page-gutter);
}
.lab-section {
  padding: var(--sys-space-section-block) var(--sys-space-page-gutter);
  border-top: var(--sys-border-hairline);
  background: var(--ref-color-warm-100);
  color: var(--ref-color-ink-900);
}
.editorial-section > *, .lab-section > * { width: min(100%, var(--sys-layout-content-max)); margin-inline: auto; }
.lab-section__scene { min-width: 0; }
.section-intro {
  display: block;
  padding-bottom: var(--ref-space-40);
}
.section-intro h2 {
  margin-top: var(--ref-space-12);
  font-family: var(--sys-type-heading-family);
  font-size: var(--sys-type-section-title-size);
  font-weight: var(--sys-type-section-title-weight);
  line-height: var(--sys-type-section-title-leading);
  letter-spacing: var(--sys-type-section-title-tracking);
  text-transform: none;
}
.section-intro > p { max-width: 58ch; margin-top: var(--ref-space-20); color: var(--ref-color-ink-alpha-70); font-size: var(--sys-type-body-size); line-height: 1.7; }
.dispatch-list { border-top: 1px solid var(--ref-color-ink-900); }
.dispatch {
  position: relative;
  padding: var(--ref-space-32) var(--ref-space-48) var(--ref-space-32) 0;
  display: grid;
  grid-template-columns: minmax(150px, .5fr) minmax(300px, 1.25fr) minmax(300px, 1.15fr);
  gap: clamp(var(--ref-space-24), 4vw, var(--ref-space-64));
  align-items: start;
  border-bottom: 1px solid var(--ref-color-ink-900);
  color: var(--ref-color-ink-900);
  text-decoration: none;
  transition:
    padding var(--sys-motion-duration-hover) var(--sys-motion-ease-standard),
    background var(--sys-motion-duration-hover) var(--sys-motion-ease-standard);
}
.dispatch__kind {
  display: grid;
  align-content: start;
  gap: var(--ref-space-12);
  color: var(--ref-color-signal-500);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-label-size);
  letter-spacing: .075em;
  text-transform: uppercase;
}
.dispatch h3 { font-family: var(--sys-type-heading-family); font-size: var(--sys-type-subsection-title-size); font-weight: var(--sys-type-subsection-title-weight); line-height: var(--sys-type-subsection-title-leading); letter-spacing: var(--sys-type-subsection-title-tracking); text-transform: none; }
.dispatch p { max-width: 50ch; color: var(--ref-color-ink-alpha-70); font-size: var(--sys-type-control-size); line-height: 1.62; }
.dispatch__go { position: absolute; top: 28px; right: 8px; color: var(--ref-color-signal-500); font-size: 1.3rem; }

/* Lab */
.tool-bench {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
  grid-template-rows: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--ref-color-ink-900);
  border-left: 1px solid var(--ref-color-ink-900);
}
.bench-tool {
  position: relative;
  min-height: 230px;
  padding: var(--ref-space-24);
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--sys-color-border-strong);
  border-bottom: 1px solid var(--sys-color-border-strong);
  background: var(--sys-color-surface);
  color: var(--sys-color-text-primary);
  text-decoration: none;
  transition:
    background var(--sys-motion-duration-hover) var(--sys-motion-ease-standard),
    color var(--sys-motion-duration-hover) var(--sys-motion-ease-standard);
}
.bench-tool:first-child { min-height: 0; grid-row: span 2; }
.bench-tool h3 { max-width: 100%; margin-top: 0; font-family: var(--sys-type-heading-family); font-size: var(--sys-type-subsection-title-size); font-weight: var(--sys-type-subsection-title-weight); line-height: var(--sys-type-subsection-title-leading); letter-spacing: var(--sys-type-subsection-title-tracking); text-transform: none; }
.bench-tool:not(:first-child) h3 { font-size: var(--sys-type-compact-title-size); font-weight: var(--sys-type-compact-title-weight); line-height: var(--sys-type-compact-title-leading); letter-spacing: var(--sys-type-compact-title-tracking); }
.bench-tool p { max-width: 34ch; margin-top: var(--ref-space-16); color: var(--sys-color-text-secondary); font-size: var(--sys-type-small-size); line-height: var(--sys-type-small-leading); }
.bench-tool__content {
  min-height: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: visible;
  opacity: 1;
  transform: none;
}
.bench-tool__action { margin-top: auto; padding-top: var(--ref-space-32); display: flex; justify-content: space-between; gap: var(--ref-space-20); font-size: var(--sys-type-caption-size); font-weight: 600; }

/* Advisory close */
.band {
  padding: var(--sys-space-band-block) var(--sys-space-page-gutter);
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(260px, .5fr);
  gap: clamp(var(--ref-space-56), 10vw, 160px);
  padding-inline: max(var(--sys-space-page-gutter), calc((100% - var(--sys-layout-page-max)) / 2 + var(--sys-space-page-gutter)));
  border-top: var(--sys-border-hairline);
  background: var(--sys-color-surface);
  color: var(--sys-color-text-primary);
}
.band > * { max-width: calc(var(--sys-layout-page-max) / 1.5); }
.band__proof { align-self: center; padding-top: var(--ref-space-8); }
.band__proof-mark { display: flex; align-items: flex-start; gap: var(--ref-space-16); }
.band__credential { max-width: 31ch; color: var(--sys-color-text-primary); font-size: var(--sys-type-body-size); font-weight: 600; line-height: 1.55; }
.band .proofline { max-width: 38ch; margin-top: var(--ref-space-24); color: var(--sys-color-text-secondary); font-family: var(--sys-type-body-family); font-size: var(--sys-type-control-size); line-height: 1.6; }
.band h2 {
  max-width: 17ch;
  font-family: var(--sys-type-heading-family);
  font-size: var(--sys-type-section-title-size);
  font-weight: var(--sys-type-section-title-weight);
  line-height: var(--sys-type-section-title-leading);
  letter-spacing: var(--sys-type-section-title-tracking);
  text-transform: none;
}
.band h2 .acc { color: var(--sys-color-accent); }
.band--statement { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
.band--statement h2 { max-width: 100%; font-size: var(--sys-type-subsection-title-size); font-weight: var(--sys-type-subsection-title-weight); line-height: var(--sys-type-subsection-title-leading); letter-spacing: var(--sys-type-subsection-title-tracking); text-wrap: balance; }
.band__close > p { max-width: 52ch; margin-top: var(--ref-space-24); color: var(--sys-color-text-secondary); font-size: var(--sys-type-body-size); line-height: 1.7; }
.band__close .sb-btn { margin-top: var(--ref-space-32); }
.statement-band__action { align-self: end; }
.statement-band__action .work-link {
  min-height: var(--sys-control-target-min);
  padding: var(--ref-space-12) var(--ref-space-20);
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--sys-color-action-bg);
  border-radius: var(--sys-radius-control);
  background: var(--sys-color-action-bg);
  color: var(--sys-color-action-text);
  font-size: var(--sys-type-small-size);
  font-weight: 600;
  text-decoration: none;
}
.statement-band__support {
  grid-column: 1 / -1;
  max-width: 62ch;
  color: var(--sys-color-text-secondary);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-label-size);
  line-height: 1.6;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.facts-rail {
  width: min(calc(100vw - 2 * var(--sys-space-page-gutter)), 1120px);
  margin: clamp(var(--ref-space-48), 6vw, var(--ref-space-72)) 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-block: 1px solid var(--ref-color-ink-alpha-16);
}
.prose .facts-rail p {
  min-width: 0;
  margin: 0;
  padding: var(--ref-space-24);
  display: flex;
  flex-direction: column;
  gap: var(--ref-space-8);
  border-right: 1px solid var(--ref-color-ink-alpha-16);
  background: var(--ref-color-warm-50);
}
.prose .facts-rail p:last-child { border-right: 0; }
.facts-rail strong { color: var(--ref-color-ink-900); font-size: var(--sys-type-small-size); }
.facts-rail :is(span, a) { color: var(--ref-color-ink-alpha-70); font-size: var(--sys-type-caption-size); line-height: 1.5; }
.facts-rail a { min-height: var(--sys-control-target-min); display: inline-flex; align-items: center; color: var(--ref-color-signal-700); font-weight: 600; }

/* Homepage bands share a bento rhythm while each keeps a clear thematic role. */
.template-home .soul-band {
  border: 0;
  background: var(--sys-color-surface);
  color: var(--sys-color-text-primary);
}
.template-home .soul-band h2 { color: var(--sys-color-text-primary); }
.template-home .soul-band h2 span { color: var(--ref-color-brand-400); }
.template-home .soul-band__copy > p:not(.tag) { color: var(--sys-color-text-secondary); }
.template-home .soul-band .text-link { color: var(--sys-color-link); border-bottom-color: var(--sys-color-border-subtle); }
.template-home .soul-band__comparison-label { background: var(--sys-color-surface-raised); color: var(--sys-color-text-secondary); }
.template-home .soul-band__logic { border: 0; border-radius: var(--ref-radius-0); overflow: visible; }
.template-home .soul-band__logic > div { border-radius: var(--sys-radius-panel); }
.template-home .soul-band__logic::before {
  place-self: center;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: var(--sys-radius-control);
  background: var(--ref-color-ink-850);
  color: var(--ref-color-silver-500);
}
.template-home .soul-band__logic > div:first-child { background: color-mix(in srgb, var(--ref-color-ink-900) 90%, white); }
.template-home .soul-band__logic > div:last-child { background: var(--ref-color-brand-500); }
.template-home .soul-band__logic dt { color: var(--sys-color-text-primary); }
.template-home .soul-band__logic > div:last-child dt { color: var(--ref-color-white); }
.template-home .soul-band__logic dd { color: var(--sys-color-text-secondary); }
.template-home .soul-band__logic > div:last-child dd { color: var(--ref-color-white); }
.template-home .soul-band .visual-mark { color: var(--ref-color-signal-500); }
.template-home .soul-band__logic > div:last-child .visual-mark { color: var(--ref-color-white); }
.template-home .editorial-section { background: var(--ref-color-white); }
.template-home :is(.signal-process, .editorial-section, .lab-section) .section-intro {
  max-width: none;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .42fr);
  align-items: end;
  gap: clamp(var(--ref-space-24), 4vw, var(--ref-space-64));
  padding-bottom: var(--ref-space-48);
}
.template-home :is(.signal-process, .editorial-section, .lab-section) .section-intro > p {
  justify-self: end;
  margin-top: 0;
  max-width: 34ch;
}
.template-home .dispatch-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ref-space-20); border: 0; }
.template-home .dispatch {
  min-height: 300px;
  padding: var(--ref-space-32);
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 0;
  border-radius: var(--sys-radius-panel);
  background: var(--ref-color-warm-50);
  box-shadow: var(--sys-elevation-card);
}

.template-home .bench-tool:first-child:focus-visible { outline-color: var(--sys-color-focus-ring); }
.template-home .dispatch__kind { grid-template-columns: 44px minmax(0, 1fr); align-items: center; }
.template-home .dispatch h3 { min-height: 2lh; margin-top: var(--ref-space-32); font-size: var(--sys-type-subsection-title-size); }
.template-home .dispatch p { margin-top: var(--ref-space-16); }
.template-home .dispatch__go { top: auto; right: 28px; bottom: 28px; }

.template-home .lab-section { border: 0; background: var(--sys-color-surface); }
.template-home .lab-section .section-intro h2 { color: var(--sys-color-text-primary); }
.template-home .lab-section .section-intro > p { color: var(--sys-color-text-primary); }
.template-home .lab-section .section-intro .tag { color: var(--sys-color-accent); }
.template-home .lab-section ::selection, .template-home .soul-band__logic > div:last-child ::selection, .template-article blockquote ::selection, .principle .hl::selection, .template-proposition .soul-comparison > *:last-child ::selection, .prose .soul-cards--diagnostic > *:last-child ::selection, .contact ::selection { background: var(--sys-color-selection-bg); color: var(--sys-color-selection-text); }
.template-home .tool-bench { gap: var(--ref-space-20); border: 0; }
.template-home .bench-tool { border: 0; border-radius: var(--sys-radius-panel); background: var(--sys-color-surface); color: var(--sys-color-text-primary); box-shadow: var(--sys-elevation-raised); }
.template-home .bench-tool:first-child { background: var(--sys-color-surface); color: var(--sys-color-text-primary); }
.template-home .bench-tool:first-child h3,
.template-home .bench-tool:first-child p,
.template-home .bench-tool:first-child .bench-tool__action { color: var(--sys-color-text-primary); }
.template-home .bench-tool:first-child p { max-width: 30ch; color: var(--sys-color-text-secondary); font-size: var(--sys-type-lead-size); line-height: var(--sys-type-lead-leading); }
/* The feature card is twice its neighbours' height, so it has to carry a
   headline at feature scale - at 34px it was only one step above theirs and
   the card read hollow rather than important. */
.template-home .bench-tool:first-child h3 { max-width: 12ch; font-size: var(--sys-type-feature-title-size); font-weight: var(--sys-type-feature-title-weight); line-height: var(--sys-type-feature-title-leading); letter-spacing: var(--sys-type-feature-title-tracking); }
.template-home .bench-tool:hover { background: var(--sys-color-hover-bg); color: var(--sys-color-hover-text); }
.template-home .bench-tool:first-child:hover { background: var(--sys-color-hover-bg); }
.template-home .band { border: 0; background: var(--sys-color-surface); color: var(--sys-color-text-primary); }
.template-home .band h2 { color: var(--sys-color-text-primary); }
.template-home .band h2 .acc { color: var(--ref-color-signal-500); }
.template-home .band__close > p { color: var(--sys-color-text-secondary); }
.template-home .band__credential { color: var(--sys-color-text-primary); }
.template-home .band .proofline { color: var(--ref-color-silver-500); }
.template-home .band .visual-mark { color: var(--ref-color-brand-400); }
.template-home .band .sb-btn { border-color: var(--sys-color-action-bg); background: var(--sys-color-action-bg); color: var(--sys-color-action-text); }

/* Footer */
.solv-site > footer {
  width: 100%;
  margin: 0;
  padding-block: clamp(var(--ref-space-32), 5vw, var(--ref-space-64));
  padding-inline: max(var(--sys-space-page-gutter), calc((100% - var(--sys-layout-page-max)) / 2 + var(--sys-space-page-gutter)));
  display: grid;
  grid-template-columns: minmax(220px, .8fr) minmax(320px, 1.1fr) minmax(220px, .7fr);
  gap: var(--ref-space-40) clamp(var(--ref-space-40), 5vw, var(--ref-space-80));
  align-items: start;
  border-radius: 0;
  background: var(--sys-color-surface);
  color: var(--sys-color-text-primary);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-caption-size);
  line-height: 1.65;
}
.footer-brand { display: grid; gap: var(--ref-space-20); }
.footer-mark img { width: auto; height: 30px; }
.footer-meta {
  display: grid;
  gap: var(--ref-space-4);
  color: var(--sys-color-text-secondary);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-caption-size);
  line-height: 1.55;
}
.footer-meta strong { color: var(--sys-color-text-primary); font-family: var(--sys-type-body-family); font-size: var(--sys-type-control-size); font-weight: 600; }
.footer-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--ref-space-32); }
.footer-nav a {
  min-height: 48px;
  display: flex;
  align-items: center;
  border-top: 1px solid var(--sys-color-border-subtle);
  color: var(--sys-color-text-primary);
  font-family: var(--sys-type-body-family);
  font-size: var(--sys-type-control-size);
  font-weight: 600;
  text-decoration: none;
}
.footer-contact {
  min-height: 96px;
  padding: var(--ref-space-16) 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--ref-space-12);
  border-block: 1px solid var(--sys-color-border-subtle);
  color: var(--sys-color-accent);
  font-family: var(--sys-type-body-family);
  font-size: var(--sys-type-control-size);
  text-decoration: none;
}
.footer-contact span { color: var(--sys-color-text-secondary); font-family: var(--sys-type-body-family); font-size: var(--sys-type-control-size); font-weight: 500; }
.footer-contact strong { overflow-wrap: anywhere; font-weight: 600; }
.solv-site > footer a:hover {
  color: var(--sys-color-text-primary);
  text-decoration-line: underline;
  text-decoration-color: var(--ref-color-signal-500);
  text-decoration-thickness: 2px;
  text-underline-offset: 5px;
}
.copyright { grid-column: 1 / -1; padding-top: var(--ref-space-24); border-top: 1px solid var(--sys-color-border-subtle); color: var(--sys-color-text-secondary); }
.footer-contact { border-bottom: 0; }
.solv-site .copyright { color: var(--ref-color-silver-500); }

/* Secondary page opening */
.page-hero,
.tool-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(var(--ref-space-56), 7vw, 100px) var(--sys-space-page-gutter);
  border-bottom: 1px solid var(--sys-color-border-strong);
  background: var(--sys-color-surface);
}
.page-hero::after,
.tool-hero::after {
  content: '';
  position: absolute;
  inset: 0 0 0 auto;
  width: var(--sys-space-page-gutter);
  background: color-mix(in srgb, var(--sys-color-text-primary) 8%, transparent);
  pointer-events: none;
}
.page-inner { position: relative; z-index: 1; width: min(100%, var(--sys-layout-content-max)); margin: 0 auto; }
.page-hero h1,
.tool-hero h1 {
  max-width: 18ch;
  font-family: var(--sys-type-heading-family);
  font-size: var(--sys-type-page-title-size);
  font-weight: var(--sys-type-page-title-weight);
  line-height: var(--sys-type-page-title-leading);
  letter-spacing: var(--sys-type-page-title-tracking);
  text-transform: none;
}
.page-hero h1 .acc, .tool-hero h1 .acc { color: var(--sys-color-accent); }
.page-hero .stand, .tool-hero p {
  max-width: 58ch;
  margin-top: var(--ref-space-32);
  color: var(--sys-color-text-secondary);
  font-size: var(--sys-type-lead-size);
  line-height: 1.65;
}
.tool-hero .back { min-height: var(--sys-control-target-min); margin-bottom: var(--ref-space-24); display: inline-flex; align-items: center; color: var(--sys-color-link); font-family: var(--sys-type-mono-family); font-size: var(--sys-type-label-size); letter-spacing: .075em; text-decoration: none; text-transform: uppercase; }

/* Reading pages */
.prose-wrap { padding-block: clamp(var(--ref-space-64), 8vw, 116px); padding-inline: max(var(--sys-space-page-gutter), calc((100% - var(--sys-layout-page-max)) / 2 + var(--sys-space-page-gutter))); }
.prose { width: min(100%, 68ch); }
.prose > :first-child { margin-top: 0; }
.article-toc {
  min-width: 0;
  margin: 0 0 var(--ref-space-48);
  padding: clamp(var(--ref-space-20), 2.4vw, var(--ref-space-32));
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 0;
  border-radius: var(--sys-radius-panel);
  background: var(--ref-color-warm-50);
  box-shadow: var(--sys-elevation-raised);
}
.article-toc > * { min-width: 0; }
.article-toc__label {
  grid-column: 1 / -1;
  width: fit-content;
  margin: 0 0 var(--ref-space-8);
  padding: var(--ref-space-8) var(--ref-space-20);
  border-radius: var(--sys-radius-control);
  background: var(--ref-color-warm-100);
  color: var(--ref-color-ink-alpha-70);
  font-family: var(--sys-type-body-family);
  font-size: var(--sys-type-control-size);
  font-weight: 500;
}
.article-toc a {
  color: var(--ref-color-ink-900);
  font-weight: 500;
  min-width: 0;
  min-height: var(--sys-control-target-min);
  padding: var(--ref-space-12) var(--ref-space-16) var(--ref-space-12) 0;
  display: flex;
  align-items: center;
  border-bottom: var(--sys-border-hairline);
  color: var(--ref-color-ink-900);
  font-family: var(--sys-type-body-family);
  font-size: var(--sys-type-control-size);
  font-weight: 600;
  text-decoration: none;
  overflow-wrap: anywhere;
  white-space: normal;
}
.article-toc a:nth-of-type(odd) { margin-right: var(--ref-space-20); }
.article-toc a:hover { color: var(--ref-color-signal-500); }
.prose h1, .prose .panel-title {
  max-width: 18ch;
  margin: 0 0 var(--ref-space-32);
  padding-top: var(--ref-space-20);
  border-top: 8px solid var(--ref-color-signal-500);
  font-family: var(--sys-type-heading-family);
  font-size: var(--sys-type-section-title-size);
  font-weight: var(--sys-type-section-title-weight);
  line-height: var(--sys-type-section-title-leading);
  letter-spacing: var(--sys-type-section-title-tracking);
  text-transform: none;
}
.prose h1 .acc, .prose .panel-title .acc { color: var(--ref-color-signal-500); }
.prose h2, .prose .section-title {
  margin: clamp(var(--ref-space-56), 8vw, var(--ref-space-96)) 0 var(--ref-space-20);
  padding-top: var(--ref-space-20);
  border-top: 3px solid var(--ref-color-signal-500);
  font-family: var(--sys-type-heading-family);
  font-size: var(--sys-type-feature-title-size);
  font-weight: var(--sys-type-feature-title-weight);
  line-height: var(--sys-type-feature-title-leading);
  letter-spacing: var(--sys-type-feature-title-tracking);
  text-transform: none;
}
.prose .chapter-heading--wide { font-size: var(--sys-type-feature-title-size); }
.prose h2 .n, .prose .section-title .n { display: block; margin-bottom: var(--ref-space-8); color: var(--ref-color-signal-500); font-family: var(--sys-type-mono-family); font-size: var(--sys-type-label-size); font-weight: 400; letter-spacing: .075em; text-transform: uppercase; }
.prose h3 { margin: var(--ref-space-32) 0 var(--ref-space-12); font-family: var(--sys-type-heading-family); font-size: var(--sys-type-compact-title-size); font-weight: var(--sys-type-compact-title-weight); line-height: var(--sys-type-compact-title-leading); letter-spacing: var(--sys-type-compact-title-tracking); text-transform: none; }
.prose p, .prose li { color: var(--ref-color-ink-alpha-70); font-size: var(--sys-type-reading-size); line-height: 1.72; }
.prose p { margin-bottom: var(--ref-space-20); }
.prose ul, .prose ol { margin: 0 0 var(--ref-space-24); padding-left: var(--ref-space-24); }
.prose li { margin-bottom: var(--ref-space-8); }
.compendium-list {
  margin: 0 0 var(--ref-space-32);
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--ref-color-ink-900);
  list-style: none;
}
.prose .compendium-list { margin: 0 0 var(--ref-space-32); padding: 0; }
.prose .compendium-list li {
  margin: 0;
  padding: var(--ref-space-16) var(--ref-space-20) var(--ref-space-16) 0;
  display: grid;
  gap: var(--ref-space-4);
  border-bottom: var(--sys-border-hairline);
  color: var(--ref-color-ink-alpha-70);
  font-size: var(--sys-type-control-size);
  line-height: 1.55;
}
.prose .compendium-list li:nth-child(odd) { margin-right: var(--ref-space-20); }
.compendium-list strong { color: var(--ref-color-ink-900); }
.prose a:not(.action) { color: var(--sys-color-link); text-decoration-color: var(--sys-color-accent); text-underline-offset: 4px; }
.prose ul { padding-left: var(--ref-space-24); }
.prose ul > li::marker { color: var(--ref-color-signal-500); }
.prose a:not(.action):hover { color: var(--sys-color-link-hover); }
.prose > p > a:only-child { min-height: var(--sys-control-target-min); display: inline-flex; align-items: center; }
.prose .back-link { margin-top: var(--ref-space-48); }
.prose .pull {
  margin: var(--ref-space-40) 0;
  padding: var(--ref-space-32) var(--ref-space-32);
  border-left: 6px solid var(--ref-color-signal-500);
  border-radius: 0 var(--sys-radius-card) var(--sys-radius-card) 0;
  background: color-mix(in srgb, var(--ref-color-brand-500) 12%, var(--ref-color-white));
  color: var(--ref-color-ink-900);
  font-size: clamp(1.25rem, 2vw, 1.55rem);
  font-weight: 500;
  line-height: 1.5;
}
.prose .pull .hl { color: var(--ref-color-signal-500); }
.art-meta, .qualifier, .proofline, .tier-line {
  color: var(--ref-color-ink-alpha-70);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-label-size);
  line-height: 1.65;
  letter-spacing: .075em;
  text-transform: uppercase;
}
.qualifier { max-width: 65ch; margin-top: var(--ref-space-20); font-family: var(--sys-type-body-family); font-size: var(--sys-type-body-size); letter-spacing: 0; text-transform: none; }
.proofline { max-width: 65ch; margin-top: var(--ref-space-16); font-family: var(--sys-type-body-family); font-size: var(--sys-type-body-size); letter-spacing: 0; text-transform: none; line-height: 1.6; }
.definition { margin: var(--ref-space-24) 0; padding: var(--ref-space-24) var(--ref-space-24); border-left: 6px solid var(--ref-color-signal-500); border-radius: 0 var(--sys-radius-card) var(--sys-radius-card) 0; background: var(--ref-color-warm-100); color: var(--ref-color-ink-alpha-70); line-height: 1.7; }
/* The system-of-record map was drawn in box-characters, whose rules overshot
   their verticals at every corner and read as a rendering fault. Same content,
   drawn with real borders so it holds at any width. */
.record-map {
  margin: var(--ref-space-32) 0;
  padding: clamp(var(--ref-space-24), 3vw, var(--ref-space-32));
  display: grid;
  justify-items: center;
  gap: var(--ref-space-12);
  border-radius: var(--sys-radius-card);
  background: var(--ref-color-ink-900);
  color: var(--ref-color-brand-400);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-caption-size);
  line-height: 1.6;
  text-align: center;
}
.prose .record-map p, .record-map p { margin: 0; color: var(--ref-color-brand-400); }
.prose .record-map .record-map__tier { color: var(--ref-color-brand-400); }
.prose .record-map .record-map__flow { color: var(--ref-color-silver-500); letter-spacing: .075em; text-transform: uppercase; font-size: var(--sys-type-label-size); }
.record-map__core {
  width: min(100%, 46ch);
  padding: var(--ref-space-16) var(--ref-space-20);
  display: grid;
  gap: var(--ref-space-4);
  border: 1px solid var(--ref-color-brand-400);
  border-radius: var(--sys-radius-card);
  color: var(--ref-color-white);
}
.prose .record-map .record-map__core p { color: var(--ref-color-white); }
.prose .record-map .record-map__title { margin-bottom: var(--ref-space-8); color: var(--ref-color-white); font-weight: 500; letter-spacing: .075em; text-transform: uppercase; }

.diagram { margin: var(--ref-space-32) 0; padding: var(--ref-space-24); overflow-x: auto; border: 1px solid var(--ref-color-ink-900); background: var(--ref-color-ink-900); color: var(--ref-color-brand-400); font-family: var(--sys-type-mono-family); font-size: var(--sys-type-label-size); line-height: 1.55; white-space: pre; }
.blocks { margin-top: var(--ref-space-40); border-top: 1px solid var(--ref-color-ink-900); }
.blocks.flush { margin-top: 0; }
.block {
  display: block;
  padding: var(--ref-space-24) var(--ref-space-40) var(--ref-space-24) 0;
  border-bottom: 1px solid var(--ref-color-ink-900);
  color: var(--ref-color-ink-900);
  text-decoration: none;
}
.block .kind { color: var(--ref-color-signal-500); font-family: var(--sys-type-mono-family); font-size: var(--sys-type-label-size); letter-spacing: .075em; text-transform: uppercase; }
.block h2, .block h3 { margin: var(--ref-space-12) 0 var(--ref-space-8); font-family: var(--sys-type-heading-family); font-size: var(--sys-type-card-title-size); font-weight: var(--sys-type-card-title-weight); line-height: var(--sys-type-card-title-leading); letter-spacing: var(--sys-type-card-title-tracking); text-transform: none; }
.block p { max-width: 74ch; color: var(--ref-color-ink-alpha-70); font-size: var(--sys-type-control-size); line-height: 1.65; }
.block .go { display: inline-block; margin-top: var(--ref-space-16); color: var(--ref-color-signal-500); font-family: var(--sys-type-mono-family); font-size: var(--sys-type-label-size); letter-spacing: .075em; text-transform: uppercase; }

/* Shared grids on index pages */
.grid, .tools {
  width: min(100%, var(--sys-layout-page-max));
  margin: 0 auto;
  padding: 0 var(--sys-space-page-gutter) var(--ref-space-88);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 0 !important;
}
.grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.card, .tool {
  position: relative;
  min-height: 290px;
  padding: var(--ref-space-24);
  display: flex;
  flex-direction: column;
  border: 1px solid var(--sys-color-border-strong);
  background: var(--sys-color-surface);
  color: var(--sys-color-text-primary);
  text-decoration: none;
  transition: background var(--sys-motion-duration-hover) var(--sys-motion-ease-standard);
}
.card .motif {
  position: absolute;
  top: 26px;
  right: 26px;
  width: 50px;
  height: 50px;
  display: block;
  color: var(--ref-color-brand-500);
  pointer-events: none;
}
.card .motif::before {
  content: '';
  position: absolute;
  inset: 0;
  display: block;
  background: currentColor;
}
.card .motif-bar::before { inset: 20px 0; }
.card .motif-circle::before { border-radius: var(--ref-radius-circle); }
.card .motif-quarter::before { border-radius: 50% 0 0; }
.card .motif-ring::before { border: 8px solid currentColor; border-radius: var(--ref-radius-circle); background: transparent; }
.card .idx, .tool .status, .card-meta { color: var(--ref-color-signal-500); font-family: var(--sys-type-mono-family); font-size: var(--sys-type-label-size); letter-spacing: .075em; text-transform: uppercase; }
.card h2, .card h3, .tool h2, .tool h3, .block h2, .block h3 { max-width: 100%; margin: var(--ref-space-40) 0 var(--ref-space-16); font-family: var(--sys-type-heading-family); font-size: var(--sys-type-card-title-size); font-weight: var(--sys-type-card-title-weight); line-height: var(--sys-type-card-title-leading); letter-spacing: var(--sys-type-card-title-tracking); text-transform: none; }
.card p, .tool p { color: var(--sys-color-text-secondary); font-size: var(--sys-type-control-size); line-height: 1.62; }
.card .go, .tool .go { margin-top: auto; padding-top: var(--ref-space-24); color: var(--ref-color-signal-500); font-family: var(--sys-type-mono-family); font-size: var(--sys-type-label-size); letter-spacing: .075em; text-transform: uppercase; }
.tool .status { position: absolute; top: 26px; right: 26px; }

/* Shared component anatomy. Route-specific layouts can change composition,
   but labels, titles, summaries and actions keep one contract. */
.card-title { text-wrap: balance; }
.card-summary { max-width: 58ch; }
.card-action {
  min-height: var(--sys-control-target-min);
  margin-top: auto;
  padding-top: var(--ref-space-20);
  display: inline-flex;
  align-items: center;
  color: var(--sys-color-link);
  font-size: var(--sys-type-control-size);
  font-weight: 600;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}
.action {
  width: fit-content;
  min-height: var(--sys-control-target-min);
  padding: var(--ref-space-12) var(--ref-space-20);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: var(--sys-radius-control);
  font-size: var(--sys-type-control-size);
  font-weight: 600;
  line-height: 1.25;
  text-decoration: none;
  transition:
    background var(--sys-motion-duration-state) var(--sys-motion-ease-standard),
    border-color var(--sys-motion-duration-state) var(--sys-motion-ease-standard),
    color var(--sys-motion-duration-state) var(--sys-motion-ease-standard);
}
.action--primary { border-color: var(--sys-color-action-bg); background: var(--sys-color-action-bg); color: var(--sys-color-action-text); }
.action--primary:hover { border-color: var(--sys-color-action-hover-bg); background: var(--sys-color-action-hover-bg); color: var(--sys-color-action-hover-text); }
.action--secondary { border-color: var(--sys-color-border-subtle); background: transparent; color: var(--sys-color-text-primary); }
.action--secondary:hover { border-color: var(--sys-color-border-strong); background: var(--sys-color-hover-bg); color: var(--sys-color-hover-text); }
.action--text { padding-inline: 0; border-radius: 0; color: var(--sys-color-link); text-decoration: underline; text-underline-offset: 5px; }
.action--text:hover, .card-action:hover { color: var(--sys-color-link-hover); }

/* Collection template — a shared masthead and scan-first card system. */
.template-collection main { background: var(--sys-color-canvas); }
.template-collection .collection-hero {
  min-height: clamp(480px, 62svh, 760px);
  padding: clamp(150px, 14vw, 210px) var(--sys-space-page-gutter) clamp(var(--ref-space-64), 8vw, 112px);
  display: grid;
  align-items: end;
  border-bottom: 0;
  background: var(--sys-color-surface);
  color: var(--sys-color-text-primary);
}
.template-collection .collection-hero .page-inner { min-width: 0; }
.template-collection .collection-hero .tag { color: var(--sys-color-accent); }
.template-collection .page-hero h1 {
  max-width: 14ch;
  font-size: var(--sys-type-page-title-size);
  font-weight: var(--sys-type-page-title-weight);
  line-height: var(--sys-type-page-title-leading);
  letter-spacing: var(--sys-type-page-title-tracking);
  text-transform: none;
}
.template-collection .page-hero .stand { color: var(--sys-color-text-secondary); }
.template-collection .collection-rail {
  min-height: 64px;
  padding: var(--ref-space-16) max(var(--sys-space-page-gutter), calc((100% - var(--sys-layout-page-max)) / 2 + var(--sys-space-page-gutter)));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ref-space-24);
  border-bottom: 1px solid var(--ref-color-ink-alpha-16);
  color: var(--ref-color-signal-500);
  font-size: var(--sys-type-caption-size);
  font-weight: 600;
  letter-spacing: .04em;
}
.template-collection :is(.grid, .tools, .blocks) {
  width: min(100%, var(--sys-layout-page-max));
  margin-inline: auto;
  padding: clamp(var(--ref-space-56), 7vw, 104px) var(--sys-space-page-gutter);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(var(--ref-space-16), 2vw, var(--ref-space-32));
}
.template-collection .resource-band { grid-template-columns: 1fr; padding-top: var(--ref-space-0); }
.template-collection .resource-band .tool { min-height: 220px; background: var(--sys-color-surface-raised); }
.template-collection .blocks {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 0;
  border-top: 0;
}
.template-collection :is(.card, .tool, .block) {
  min-width: 0;
  min-height: 280px;
  padding: clamp(var(--ref-space-24), 3vw, var(--ref-space-40));
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  border: 0;
  border-radius: var(--sys-radius-panel);
  background: var(--sys-color-surface-raised);
  box-shadow: var(--sys-elevation-raised);
  transition:
    border-color var(--sys-motion-duration-state) var(--sys-motion-ease-standard),
    transform var(--sys-motion-duration-state) var(--sys-motion-ease-out),
    background var(--sys-motion-duration-state) var(--sys-motion-ease-standard);
}
.template-collection :is(.card, .tool, .block) > * { min-width: 0; }
/* Full-width link cards kept every element in the left column, leaving ~44% of
   the card empty. Give the action its own column so the card uses its width -
   the same label-left / action-right grammar as the Continue trays. */
@media (min-width: 961px) {
  .template-proposition .blocks .block {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    /* three explicit rows (kicker / title / copy) so the action can span them
       and centre - `1 / -1` resolves against the explicit grid, not implicit */
    grid-template-rows: repeat(3, auto);
    column-gap: clamp(var(--ref-space-32), 5vw, var(--ref-space-72));
  }
  .template-proposition .blocks .block > :not(.go) { grid-column: 1; }
  .template-proposition .blocks .block > .go {
    grid-column: 2;
    grid-row: 1 / -1;
    margin-top: 0;
    align-self: center;
    white-space: nowrap;
  }
}

.template-collection :is(.card, .tool, .block) :is(h2, h3) {
  max-width: 16ch;
  margin-top: clamp(var(--ref-space-32), 4vw, var(--ref-space-48));
  font-size: var(--sys-type-card-title-size);
  font-weight: var(--sys-type-card-title-weight);
  line-height: var(--sys-type-card-title-leading);
  letter-spacing: var(--sys-type-card-title-tracking);
}
.template-collection .block h2 { margin-bottom: var(--ref-space-16); }
.template-collection :is(.card, .tool, .block) :is(p, .go) { overflow-wrap: anywhere; }
.template-collection :is(.card, .tool, .block) .go { margin-top: auto; padding-top: var(--ref-space-24); }
.template-collection :is(.card, .tool, .block):hover {
  padding-left: clamp(var(--ref-space-24), 3vw, var(--ref-space-40));
  background: var(--sys-color-hover-bg);
}
@media (min-width: 961px) {
  .template-collection .grid.two { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .template-collection .grid.two > .card--featured { grid-column: span 8; min-height: 360px; }
  .template-collection .grid.two > .card:nth-child(2) { grid-column: span 4; }
  .template-collection .grid.two > .card:nth-child(n + 3) { grid-column: span 6; }
  .template-proposition main > .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Components used by tools and long-form pages */
.contact {
  max-width: 680px;
  margin-top: var(--ref-space-40);
  padding: clamp(var(--ref-space-32), 3vw, var(--ref-space-40));
  border: 0;
  border-radius: var(--sys-radius-panel);
  background: var(--sys-color-surface);
  box-shadow: var(--sys-elevation-raised);
}
.contact .mono-line { width: fit-content; margin-bottom: var(--ref-space-16); padding: var(--ref-space-8) var(--ref-space-20); border-radius: var(--sys-radius-control); background: var(--sys-color-surface-raised); color: var(--sys-color-text-primary); font-family: var(--sys-type-body-family); font-size: var(--sys-type-control-size); font-weight: 500; }
.contact .mail {
  min-height: var(--sys-control-target-min);
  display: inline-flex;
  align-items: center;
  color: var(--sys-color-text-primary);
  font-size: clamp(1.3rem, 1.8vw, 1.7rem);
  font-weight: 600;
  letter-spacing: -.015em;
  text-underline-offset: 6px;
}
.principles { max-width: min(100%, 1120px); border-top: 1px solid var(--ref-color-ink-900); }
.principle { padding: clamp(var(--ref-space-32), 3.4vw, var(--ref-space-48)) 0; display: grid; grid-template-columns: 76px 1fr; gap: var(--ref-space-32); border-bottom: 1px solid var(--ref-color-ink-900); }
.principle .num { color: var(--ref-color-signal-500); font-family: var(--sys-type-mono-family); font-size: var(--sys-type-label-size); }
.principle h2, .principle h3 { font-family: var(--sys-type-heading-family); font-size: var(--sys-type-compact-title-size); font-weight: var(--sys-type-compact-title-weight); line-height: var(--sys-type-compact-title-leading); letter-spacing: var(--sys-type-compact-title-tracking); text-transform: none; }
.principle h2 .hl, .principle h3 .hl { padding: .02em .14em; background: var(--ref-color-brand-500); background-repeat: no-repeat; background-size: 100% 100%; color: var(--ref-color-white); -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.motion-ready .principle[data-reveal] .hl { background-image: linear-gradient(var(--ref-color-brand-500), var(--ref-color-brand-500)); background-color: transparent; background-size: 0% 100%; color: var(--ref-color-ink-900); transition: color var(--sys-motion-duration-state) var(--sys-motion-ease-standard) var(--sys-motion-duration-state); }
.motion-ready .principle[data-reveal].is-visible .hl { animation: hl-sweep 420ms var(--sys-motion-ease-out) both; color: var(--ref-color-white); }
@keyframes hl-sweep { from { background-size: 0% 100%; } to { background-size: 100% 100%; } }
.soul-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1px; margin: var(--ref-space-32) 0; background: var(--ref-color-ink-900); border: 1px solid var(--ref-color-ink-900); }
/* Tier cards size to their own content so the one with a CTA does not stretch
   its neighbours. The diagnostic band is a single banded surface and must
   keep its cards full-height, so it is excluded. */
.soul-cards:not(.soul-cards--diagnostic) { align-items: start; }
.soul-card { padding: var(--ref-space-24); background: var(--sys-color-surface); }
.template-proposition .prose .soul-cards:not(.soul-cards--diagnostic) .soul-card h4 {
  margin: 0 0 var(--ref-space-8);
  color: var(--ref-color-ink-900);
  font-family: var(--sys-type-heading-family);
  font-size: var(--sys-type-compact-title-size);
  font-weight: var(--sys-type-compact-title-weight);
  line-height: var(--sys-type-compact-title-leading);
  letter-spacing: var(--sys-type-compact-title-tracking);
  text-transform: none;
}
.template-proposition .prose .soul-cards:not(.soul-cards--diagnostic) .soul-card .tier-line {
  margin-bottom: var(--ref-space-16);
  color: var(--ref-color-signal-700);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-label-size);
  letter-spacing: .075em;
  text-transform: uppercase;
}
.soul-card h3, .soul-card h4 {
  margin: 0 0 var(--ref-space-12);
  color: var(--ref-color-signal-500);
  font-family: var(--sys-type-heading-family);
  font-size: var(--sys-type-compact-title-size);
  font-weight: var(--sys-type-compact-title-weight);
  line-height: var(--sys-type-compact-title-leading);
  letter-spacing: var(--sys-type-compact-title-tracking);
  text-transform: none;
}
.soul-card p { font-size: var(--sys-type-control-size); }
.soul-cards--diagnostic {
  width: min(calc(100vw - 2 * var(--sys-space-page-gutter)), 1120px);
  margin: var(--ref-space-32) 0 var(--ref-space-40);
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid var(--ref-color-ink-900);
  list-style: none;
}
.prose .soul-cards--diagnostic { margin: var(--ref-space-32) 0 var(--ref-space-40); padding: 0; }
.prose .soul-cards--diagnostic > .soul-card {
  position: relative;
  min-width: 0;
  min-height: 340px;
  margin: 0;
  padding: clamp(var(--ref-space-24), 2.7vw, var(--ref-space-40));
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--ref-color-ink-900);
  background: var(--sys-color-surface);
  color: var(--ref-color-ink-900);
}
.prose .soul-cards--diagnostic > .soul-card:last-child { border-right: 0; }
.prose .soul-cards--diagnostic > .soul-card--consequence { background: color-mix(in srgb, var(--ref-color-brand-500) 18%, var(--sys-color-surface)); }
.soul-cards--diagnostic > .soul-card:not(:last-child)::after {
  content: '→';
  position: absolute;
  z-index: 2;
  inset-block-start: 30px;
  inset-inline-end: -18px;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 1px solid var(--ref-color-signal-700);
  border-radius: var(--sys-radius-control);
  background: var(--sys-color-surface);
  color: var(--ref-color-signal-700);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-small-size);
}
.soul-cards--diagnostic > .soul-card:not(:last-child) { z-index: 1; }
.soul-card__meta {
  min-height: 36px;
  display: flex;
  align-items: center;
  gap: var(--ref-space-12);
  color: var(--ref-color-signal-700);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-label-size);
  letter-spacing: .075em;
  text-transform: uppercase;
}
.soul-card__step {
  width: 36px;
  height: 36px;
  display: grid;
  flex: 0 0 36px;
  place-items: center;
  border: 1px solid var(--ref-color-signal-700);
  border-radius: var(--sys-radius-control);
  font-weight: 500;
  letter-spacing: 0;
}
.prose .soul-cards--diagnostic .soul-card h3 {
  max-width: 16ch;
  margin: var(--ref-space-32) 0 var(--ref-space-16);
  color: var(--ref-color-ink-900);
  font-family: var(--sys-type-heading-family);
  font-size: var(--sys-type-compact-title-size);
  font-weight: var(--sys-type-compact-title-weight);
  line-height: var(--sys-type-compact-title-leading);
  letter-spacing: var(--sys-type-compact-title-tracking);
  text-transform: none;
}
.prose .soul-card__summary {
  max-width: 26ch;
  margin: 0 0 var(--ref-space-40);
  color: var(--ref-color-ink-alpha-70);
  font-size: var(--sys-type-body-size);
  line-height: 1.6;
}
.prose .soul-card__evidence {
  margin: auto 0 0;
  padding: 0;
  border-top: 1px solid var(--ref-color-ink-900);
  list-style: none;
}
.prose .soul-card__evidence li {
  margin: 0;
  padding: var(--ref-space-12) 0;
  display: flex;
  align-items: baseline;
  gap: var(--ref-space-12);
  border-bottom: var(--sys-border-hairline);
  color: var(--ref-color-ink-alpha-70);
  font-size: var(--sys-type-small-size);
  line-height: 1.35;
}

.prose .soul-card__evidence--risk li {
  color: var(--ref-color-ink-900);
  font-weight: 600;
}
.subnav { position: sticky; z-index: 40; top: var(--sys-layout-header-height); display: none; gap: var(--ref-space-8); overflow-x: auto; padding-block: var(--ref-space-12); padding-inline: max(var(--sys-space-page-gutter), calc((100% - var(--sys-layout-page-max)) / 2 + var(--sys-space-page-gutter))); border-bottom: var(--sys-border-hairline); background: var(--sys-color-surface); }
.soul-tabs-ready .subnav { display: flex; }
.subnav button { min-height: var(--sys-control-target-min); padding: var(--ref-space-8) var(--ref-space-20); border: 0; border-radius: var(--sys-radius-control); background: transparent; color: var(--sys-color-text-secondary); font-family: var(--sys-type-body-family); font-size: var(--sys-type-control-size); font-weight: 500; white-space: nowrap; cursor: pointer; transition: background var(--sys-motion-duration-hover) var(--sys-motion-ease-standard), color var(--sys-motion-duration-hover) var(--sys-motion-ease-standard); }
.subnav button:hover { background: var(--sys-color-hover-bg); color: var(--sys-color-hover-text); }
.subnav button.active { background: var(--sys-color-active-bg); color: var(--sys-color-active-text); }
.subnav__cue { display: none; }
.panel .sb-btn:not(.ghost) { border-color: var(--sys-color-action-bg); background: var(--sys-color-action-bg); color: var(--sys-color-action-text); }
.panel .sb-btn:not(.ghost):hover { border-color: var(--sys-color-action-hover-bg); background: var(--sys-color-action-hover-bg); color: var(--sys-color-action-hover-text); }
.panel { display: block; }
.soul-tabs-ready .panel { display: none; }
.soul-tabs-ready .panel.visible { display: block; animation: panel-in var(--sys-motion-duration-state) var(--sys-motion-ease-out); }
@keyframes panel-in { from { opacity: 0; transform: translateY(8px); } }
.exchange { margin: var(--ref-space-24) 0; border: 0; border-radius: var(--sys-radius-card); background: var(--ref-color-warm-50); }
.exchange .xtag { display: block; min-height: 3lh; padding: var(--ref-space-24) var(--ref-space-24) 0; color: var(--ref-color-signal-500); font-family: var(--sys-type-mono-family); font-size: var(--sys-type-label-size); letter-spacing: .075em; text-transform: uppercase; }
.exchange .xbody { padding: var(--ref-space-16) var(--ref-space-24) var(--ref-space-24); }
.soul-table { width: 100%; border-collapse: collapse; margin: var(--ref-space-32) 0; }
.soul-table th { padding: var(--ref-space-12) var(--ref-space-12) var(--ref-space-12) 0; border-bottom: 2px solid var(--ref-color-ink-900); color: var(--ref-color-ink-alpha-70); font-family: var(--sys-type-mono-family); font-size: var(--sys-type-label-size); letter-spacing: .075em; text-align: left; text-transform: uppercase; }
.soul-table td:first-child { white-space: nowrap; }
.soul-table td { padding: var(--ref-space-16) var(--ref-space-12) var(--ref-space-16) 0; border-bottom: var(--sys-border-hairline); color: var(--ref-color-ink-alpha-70); font-size: var(--sys-type-small-size); line-height: 1.5; vertical-align: top; }
.qa dt { margin-top: var(--ref-space-32); font-family: var(--sys-type-heading-family); font-size: 1.45rem; font-weight: 600; letter-spacing: -.01em; text-transform: none; }
.qa dd { margin: var(--ref-space-8) 0 0; color: var(--ref-color-ink-alpha-70); line-height: 1.7; }
.next { margin-top: var(--ref-space-40); padding: var(--ref-space-20) var(--ref-space-20) var(--ref-space-20) var(--ref-space-24); display: flex; align-items: center; justify-content: space-between; gap: var(--ref-space-20); border: 0; border-radius: var(--sys-radius-card); background: var(--ref-color-warm-50); }
.next .lbl { color: var(--ref-color-ink-alpha-70); font-family: var(--sys-type-mono-family); font-size: var(--sys-type-label-size); letter-spacing: .075em; text-transform: uppercase; }
.next button, .link-btn { min-height: var(--sys-control-target-min); padding: var(--ref-space-12) var(--ref-space-24); border: 0; border-radius: var(--sys-radius-control); background: var(--sys-color-action-bg); color: var(--sys-color-action-text); font-family: var(--sys-type-body-family); font-size: var(--sys-type-control-size); font-weight: 500; cursor: pointer; transition: background var(--sys-motion-duration-hover) var(--sys-motion-ease-standard), color var(--sys-motion-duration-hover) var(--sys-motion-ease-standard); }
.next button:hover { background: var(--sys-color-action-hover-bg); color: var(--sys-color-action-hover-text); }
.link-btn { border: 1px solid var(--sys-color-border-strong); background: transparent; color: var(--sys-color-text-primary); text-align: left; }
.link-btn:hover { background: var(--sys-color-hover-bg); color: var(--sys-color-hover-text); }
.soul-note { max-width: 65ch; margin-top: var(--ref-space-32); color: var(--ref-color-ink-alpha-70); font-family: var(--sys-type-body-family); font-size: var(--sys-type-control-size); line-height: 1.6; }
.soul-close, .soul-end { margin-top: var(--ref-space-48); }
.soul-close {
  max-width: 26ch;
  margin-top: var(--ref-space-72);
  padding-top: var(--ref-space-24);
  border-top: 3px solid var(--ref-color-signal-500);
  font-family: var(--sys-type-heading-family);
  font-size: clamp(1.5rem, 2.4vw, 2.1rem);
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: -.02em;
}
.soul-close strong { font-weight: 600; }
.panel .stand { margin-bottom: var(--ref-space-32); }
.creds .work-link { color: var(--sys-color-link); text-decoration: none; }

/* Proposition pages keep their argument in a small set of repeatable evidence modules. */
.template-proposition .proposition-hero {
  min-height: clamp(520px, 68svh, 820px);
  padding: clamp(150px, 14vw, 210px) var(--sys-space-page-gutter) clamp(var(--ref-space-72), 9vw, var(--ref-space-128));
  display: grid;
  align-items: end;
  border-bottom: 0;
  background: var(--sys-color-canvas);
  color: var(--sys-color-text-primary);
}
.template-proposition .proposition-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(115% 88% at 8% 0%, color-mix(in srgb, var(--sys-color-surface-raised) 82%, var(--sys-color-text-secondary)), transparent 50%),
    radial-gradient(circle at 82% 22%, color-mix(in srgb, var(--sys-color-signal) 14%, transparent), transparent 32%);
  pointer-events: none;
}
.template-proposition .proposition-hero .page-inner { min-width: 0; }
.template-proposition .proposition-hero .tag { color: var(--sys-color-accent); }
.template-proposition .page-hero h1 {
  max-width: 15ch;
  color: var(--sys-color-text-primary);
  font-size: var(--sys-type-page-title-size);
  font-weight: var(--sys-type-page-title-weight);
  line-height: var(--sys-type-page-title-leading);
  letter-spacing: var(--sys-type-page-title-tracking);
  text-transform: none;
}
.template-proposition .page-hero h1 .acc { color: var(--sys-color-accent); }
.template-proposition .proposition-hero .stand { color: var(--sys-color-text-secondary); }
.template-proposition .proposition-hero :is(.qualifier, .proofline) { color: var(--ref-color-silver-500); }
.template-proposition :is(.prose-wrap, .grid, .blocks) { border-radius: var(--sys-radius-card); }
.template-proposition .grid {
  width: min(100%, var(--sys-layout-page-max));
  margin-inline: auto;
  padding: clamp(var(--ref-space-56), 7vw, 104px) var(--sys-space-page-gutter);
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: clamp(var(--ref-space-16), 2vw, var(--ref-space-32));
}
.template-proposition .grid .card,
.template-proposition .blocks .block {
  min-width: 0;
  border: 0;
  border-radius: var(--sys-radius-panel);
  background: var(--sys-color-surface-raised);
  box-shadow: var(--sys-elevation-raised);
}
.template-proposition .grid .card:hover { background: var(--sys-color-hover-bg); }
.template-proposition .blocks .block:hover { padding-left: clamp(var(--ref-space-24), 3vw, var(--ref-space-40)); background: var(--sys-color-hover-bg); }
.template-proposition .blocks { border-top: 0; }
.template-proposition .blocks .block { padding: clamp(var(--ref-space-24), 3vw, var(--ref-space-40)); }
.template-proposition .blocks .block + .block { margin-top: 0; }
.template-proposition .soul-comparison {
  /* The worked example is the page's centrepiece but inherited the reading
     column, which gave each of its two panels a 26-character measure. Break it
     out to the content column the diagnostic band already uses. */
  width: min(calc(100% - 2 * var(--sys-space-page-gutter)), var(--sys-layout-content-max));
  margin: var(--ref-space-32) 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 0;
  border-radius: var(--sys-radius-panel);
  overflow: clip;
  background: var(--sys-color-surface);
  box-shadow: var(--sys-elevation-raised);
}
.template-proposition .soul-comparison > * { min-width: 0; margin: 0; border: 0; border-radius: 0; background: var(--sys-color-surface); color: var(--sys-color-text-primary); }
.template-proposition .soul-comparison > *:last-child { background: var(--sys-color-surface); color: var(--sys-color-text-primary); }
.template-proposition .soul-comparison .xtag { color: var(--sys-color-accent); }
.template-proposition .soul-comparison .xbody :is(p, em, strong) { color: var(--sys-color-text-secondary); }
.template-proposition .soul-comparison .xbody { padding: clamp(var(--ref-space-20), 2.4vw, var(--ref-space-32)); }
.template-proposition .soul-comparison .xbody p:last-child { margin-bottom: 0; }
.template-proposition .soul-diagnostic {
  width: min(calc(100vw - 2 * var(--sys-space-page-gutter)), 1080px);
  margin: var(--ref-space-40) 0 var(--ref-space-48);
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 0;
  border-radius: var(--sys-radius-panel);
  background: var(--sys-color-surface);
  color: var(--sys-color-text-primary);
  overflow: clip;
  box-shadow: var(--sys-elevation-raised);
}
.template-proposition .prose .soul-diagnostic > .soul-card {
  min-height: 0;
  padding: clamp(var(--ref-space-32), 3.4vw, var(--ref-space-48));
  display: flex;
  flex-direction: column;
  border: 0;
  border-left: 1px solid var(--sys-color-border-subtle);
  background: var(--sys-color-surface);
  color: var(--sys-color-text-primary);
}
.template-proposition .prose .soul-diagnostic > .soul-card:first-child { border-left: 0; }
.template-proposition .prose .soul-diagnostic > .soul-card:last-child { background: var(--sys-color-surface); color: var(--sys-color-text-primary); }
.template-proposition .prose .soul-cards:not(.soul-cards--diagnostic) { gap: var(--ref-space-12); border: 0; background: transparent; }
.template-proposition .prose .soul-cards:not(.soul-cards--diagnostic) .soul-card { border: 0; border-radius: var(--sys-radius-card); background: var(--ref-color-warm-50); box-shadow: var(--sys-elevation-raised); }
.template-proposition .prose .soul-diagnostic .soul-card h3 { color: var(--sys-color-text-primary); }
.template-proposition .prose .soul-diagnostic .soul-card__meta,
.template-proposition .prose .soul-diagnostic .soul-card__step { border-color: var(--sys-color-accent); color: var(--sys-color-accent); }
.template-proposition .prose .soul-diagnostic .soul-card__summary,
.template-proposition .prose .soul-diagnostic .soul-card__evidence li { color: var(--sys-color-text-secondary); }
.template-proposition .prose .soul-diagnostic .soul-card__evidence,
.template-proposition .prose .soul-diagnostic .soul-card__evidence li { border-color: var(--sys-color-border-subtle); }
.template-proposition .soul-diagnostic .soul-card__evidence li::before { color: var(--sys-color-signal); }
.template-proposition .diagram { max-width: 100%; border-radius: var(--ref-radius-2); border-color: var(--ref-color-white-alpha-14); }
.embed-wrap { position: relative; width: 100%; border: 1px solid var(--ref-color-ink-900); background: var(--ref-color-warm-100); }
.embed-wrap iframe { width: 100%; min-height: clamp(640px, 80svh, 900px); display: block; border: 0; }
.embed-wrap.embed-focus { outline: 3px solid var(--ref-color-signal-500); outline-offset: 2px; }
.embed-wrap [data-tf-live] { position: relative; display: block; min-height: clamp(640px, 80svh, 900px); }
.embed-fallback { min-height: var(--sys-control-target-min); padding: var(--ref-space-12) var(--sys-space-page-gutter); display: flex; width: 100%; align-items: center; justify-content: flex-start; border-bottom: 1px solid var(--sys-color-border-subtle); color: var(--sys-color-link); font-family: var(--sys-type-mono-family); font-size: var(--sys-type-label-size); text-align: left; text-underline-offset: 4px; }
.solv-site .embed-fallback { min-height: var(--sys-control-target-min); }

/* Tools keep the task visible first; vendor experiences remain inside their original boundaries. */
.template-tool main { background: var(--sys-color-canvas); color: var(--sys-color-text-primary); }
.template-tool .task-hero {
  min-height: clamp(380px, 46svh, 540px);
  padding: clamp(144px, 13vw, 196px) var(--sys-space-page-gutter) clamp(var(--ref-space-48), 7vw, 92px);
  display: grid;
  align-items: end;
  border-bottom: 0;
  background: var(--sys-color-canvas);
  color: var(--sys-color-text-primary);
}
.template-tool .task-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(115% 88% at 8% 0%, color-mix(in srgb, var(--sys-color-surface-raised) 82%, var(--sys-color-text-secondary)), transparent 50%),
    radial-gradient(circle at 80% 22%, color-mix(in srgb, var(--sys-color-signal) 12%, transparent), transparent 32%);
  pointer-events: none;
}
.template-tool .task-hero .page-inner { min-width: 0; }
.template-tool .task-hero h1 {
  max-width: 16ch;
  color: var(--sys-color-text-primary);
  font-size: var(--sys-type-page-title-size);
  font-weight: var(--sys-type-page-title-weight);
  line-height: var(--sys-type-page-title-leading);
  letter-spacing: var(--sys-type-page-title-tracking);
  text-transform: none;
  text-wrap: balance;
}
.template-tool .task-hero h1 .acc { color: var(--sys-color-accent); }
.template-tool .task-hero :is(.stand, p) { color: var(--sys-color-text-secondary); }
.template-tool .task-hero .tag { color: var(--sys-color-accent); }
.template-tool .task-hero .art-meta { margin-top: var(--ref-space-20); color: var(--ref-color-silver-500); }
.template-tool .task-hero .back { color: var(--sys-color-link); }
.template-tool .task-surface {
  width: min(calc(100% - 2 * var(--sys-space-page-gutter)), var(--sys-layout-content-max));
  margin: 0 auto clamp(var(--ref-space-56), 8vw, var(--ref-space-128));
  padding: clamp(var(--ref-space-20), 3vw, var(--ref-space-40));
  border-radius: var(--sys-radius-panel);
  background: var(--sys-color-surface);
  color: var(--sys-color-text-primary);
  box-shadow: var(--sys-elevation-overlay);
}
.template-tool .task-surface.prose-wrap {
  padding-block: clamp(var(--ref-space-64), 8vw, 116px);
}
.template-tool .embed-wrap {
  position: relative;
  min-height: 520px;
  border: 0;
  border-top: 4px solid var(--ref-color-brand-500);
  background: var(--ref-color-warm-100);
}
.template-tool .embed-toolbar {
  position: relative;
  z-index: 2;
  min-height: 68px;
  padding: var(--ref-space-12) var(--ref-space-16) var(--ref-space-12) var(--ref-space-20);
  display: grid;
  grid-template-columns: auto minmax(120px, 1fr) auto;
  align-items: center;
  gap: var(--ref-space-16);
  border-bottom: var(--sys-border-hairline);
  background: var(--ref-color-white);
}
.template-tool .embed-toolbar--duo {
  grid-template-columns: minmax(0, 1fr) auto;
}
.template-tool .embed-toolbar--duo .embed-direct {
  justify-self: start;
}
.template-tool .embed-provenance,
.template-tool .embed-status {
  color: var(--ref-color-ink-alpha-70);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-label-size);
  line-height: 1.45;
  letter-spacing: .065em;
  text-transform: uppercase;
}
.template-tool .embed-status {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: var(--ref-space-8);
}
.template-tool .embed-status::before {
  content: '';
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  border-radius: var(--ref-radius-circle);
  background: var(--ref-color-brand-500);
}
.template-tool .embed-wrap.is-ready .embed-status::before { background: var(--ref-color-ink-900); }
.template-tool .embed-wrap.is-stalled .embed-status { color: var(--ref-color-signal-700); }
.template-tool .embed-wrap iframe { position: relative; z-index: 1; background: var(--ref-color-white); }
.template-tool .embed-direct,
.template-tool .embed-fallback {
  width: auto;
  min-height: var(--sys-control-target-min);
  padding: var(--ref-space-12) var(--ref-space-16);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--sys-color-action-bg);
  border-radius: var(--sys-radius-control);
  background: var(--sys-color-action-bg);
  color: var(--sys-color-action-text);
  font-weight: 600;
  text-align: center;
  text-decoration: none;
  transition:
    background var(--sys-motion-duration-state) var(--sys-motion-ease-standard),
    border-color var(--sys-motion-duration-state) var(--sys-motion-ease-standard),
    color var(--sys-motion-duration-state) var(--sys-motion-ease-standard);
}
.template-tool .embed-direct:hover,
.template-tool .embed-direct:focus-visible,
.template-tool .embed-fallback:hover,
.template-tool .embed-fallback:focus-visible {
  border-color: var(--sys-color-action-hover-bg);
  background: var(--sys-color-action-hover-bg);
  color: var(--sys-color-action-hover-text);
}
.template-tool .task-surface.prose-wrap .prose {
  width: min(100%, var(--sys-layout-reading-measure));
  margin-inline: auto;
}
.template-tool .task-surface.prose-wrap .blocks { margin-top: clamp(var(--ref-space-40), 6vw, var(--ref-space-72)); }

/* Long-form resources use a quiet reading surface below an ink masthead. */
.template-article .article-hero {
  min-height: clamp(420px, 56svh, 660px);
  padding: clamp(144px, 13vw, 196px) var(--sys-space-page-gutter) clamp(var(--ref-space-56), 7vw, var(--ref-space-96));
  display: grid;
  align-items: end;
  border-bottom: 0;
  background: var(--sys-color-canvas);
  color: var(--sys-color-text-primary);
}
.template-article .article-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(115% 88% at 8% 0%, color-mix(in srgb, var(--sys-color-surface-raised) 82%, var(--sys-color-text-secondary)), transparent 50%),
    radial-gradient(circle at 80% 22%, color-mix(in srgb, var(--sys-color-signal) 12%, transparent), transparent 32%);
  pointer-events: none;
}
.template-article .article-hero .page-inner { min-width: 0; }
.template-article .article-hero .tag { color: var(--sys-color-accent); }
.template-article .article-hero h1 {
  max-width: 16ch;
  color: var(--sys-color-text-primary);
  font-size: var(--sys-type-page-title-size);
  font-weight: var(--sys-type-page-title-weight);
  line-height: var(--sys-type-page-title-leading);
  letter-spacing: var(--sys-type-page-title-tracking);
  text-transform: none;
  text-wrap: balance;
}
.template-article .article-hero h1 .acc { color: var(--sys-color-accent); }
.template-article .article-hero .stand { color: var(--sys-color-text-secondary); }
.article-meta {
  margin-top: var(--ref-space-24);
  display: flex;
  flex-wrap: wrap;
  gap: var(--ref-space-8) var(--ref-space-20);
  color: var(--ref-color-silver-500);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-label-size);
  line-height: 1.5;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.article-meta > * { display: inline-flex; align-items: center; white-space: nowrap; }
.article-meta > * + *::before { content: '·'; margin-right: var(--ref-space-20); color: var(--ref-color-brand-400); }
.article-chapter {
  position: sticky;
  z-index: 35;
  top: calc(var(--sys-layout-header-height) + 16px);
  min-height: 48px;
  padding: var(--ref-space-8) max(var(--sys-space-page-gutter), calc((100% - var(--sys-layout-page-max)) / 2 + var(--sys-space-page-gutter)));
  display: flex;
  align-items: center;
  gap: var(--ref-space-12);
  border-bottom: 1px solid var(--ref-color-ink-alpha-16);
  background: color-mix(in srgb, var(--ref-color-white) 92%, transparent);
  color: var(--ref-color-ink-alpha-70);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-label-size);
  line-height: 1.4;
  letter-spacing: .055em;
  text-transform: uppercase;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}
.article-chapter strong { min-width: 0; overflow: hidden; color: var(--ref-color-ink-900); font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.template-article .article-hero .art-meta { margin-top: var(--ref-space-20); color: var(--ref-color-silver-500); }
.template-article .prose-wrap {
  padding-block: clamp(var(--ref-space-56), 8vw, var(--ref-space-128));
  background: var(--sys-color-surface);
}
.template-article .prose {
  width: 100%;
  max-width: var(--sys-layout-reading-measure);
  margin-inline: auto;
}
.template-article .prose :is(p, li, dd, blockquote) { text-wrap: pretty; }
/* A stat-dense paper gives a scanner nothing if every figure is the same grey
   as the prose around it. Lift the numbers only - same size, same face. */
.template-article .prose .stat {
  color: var(--ref-color-ink-900);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.template-article .prose :is(h2, h3) { text-wrap: balance; }
/* A 45-minute read needs more rhythm than one pull quote. Where the copy is
   already enumerated - "Principle Two", "Protocol Four" - the sequence marker
   is set as the eyebrow above its title, exactly as `.prose h2 .n` already does
   for numbered sections, so the reader can see where they are in the series
   without the title leaving the page's left edge. */
.template-article .prose .enum__label {
  display: block;
  margin-bottom: var(--ref-space-8);
  color: var(--ref-color-signal-500);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-label-size);
  font-weight: 400;
  letter-spacing: .075em;
  text-transform: uppercase;
}
.template-article .prose .enum__title { display: block; }

.template-article .prose h3 {
  font-size: var(--sys-type-compact-title-size);
  font-weight: var(--sys-type-compact-title-weight);
  line-height: var(--sys-type-compact-title-leading);
  letter-spacing: var(--sys-type-compact-title-tracking);
  text-transform: none;
}
.template-article .article-toc {
  margin-bottom: clamp(var(--ref-space-56), 7vw, var(--ref-space-88));
  padding: clamp(var(--ref-space-24), 3vw, var(--ref-space-40));
  border: 1px solid var(--sys-color-border-subtle);
  border-radius: var(--sys-radius-card);
  background: var(--sys-color-surface);
}

.template-article .article-toc a {
  color: var(--ref-color-ink-900);
  font-weight: 500;
}
.template-article .article-toc a:hover { color: var(--ref-color-signal-500); }
.template-article blockquote {
  margin-inline: 0;
  padding: clamp(var(--ref-space-24), 4vw, var(--ref-space-48));
  border: 0;
  border-radius: var(--sys-radius-card);
  background: var(--ref-color-brand-500);
  color: var(--ref-color-white);
  font-size: clamp(1.2rem, 2.2vw, 1.75rem);
  font-weight: 500;
  line-height: 1.35;
}
.template-article .back-link { border-top: 1px solid var(--sys-color-border-subtle); padding-top: var(--ref-space-24); }
.article-next {
  margin-top: clamp(var(--ref-space-64), 9vw, var(--ref-space-112));
  padding-top: var(--ref-space-32);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: var(--ref-space-12);
  align-items: center;
  border-top: 1px solid var(--ref-color-ink-alpha-16);
}

.article-sources {
  margin-top: clamp(var(--ref-space-64), 9vw, var(--ref-space-112));
  padding-top: var(--ref-space-32);
  border-top: 2px solid var(--ref-color-ink-900);
}
.article-sources ol { margin: var(--ref-space-20) 0 0; padding-left: var(--ref-space-24); }
.article-sources li { padding: var(--ref-space-8) 0; color: var(--ref-color-ink-alpha-70); font-size: var(--sys-type-small-size); line-height: 1.6; }
.article-sources a { color: var(--ref-color-signal-700); text-underline-offset: 4px; }
.source-ref { color: var(--ref-color-signal-700); font-family: var(--sys-type-mono-family); font-size: .72em; font-weight: 500; text-decoration: none; vertical-align: super; }

/* Editorial evidence uses the brand's existing signal palette and type faces;
   each figure turns one abstract argument into a quick, inspectable model. */
.evidence-figure,
.game-board {
  position: relative;
  left: 50%;
  width: min(calc(100vw - 2 * var(--sys-space-page-gutter)), 960px);
  margin: clamp(var(--ref-space-40), 6vw, var(--ref-space-72)) 0;
  padding: clamp(var(--ref-space-24), 4vw, var(--ref-space-48));
  border: 0;
  border-radius: var(--sys-radius-panel);
  background: var(--sys-color-surface);
  color: var(--sys-color-text-primary);
  box-shadow: var(--sys-elevation-overlay);
  translate: -50% 0;
}
.evidence-figure figcaption,
.game-board figcaption {
  margin-bottom: var(--ref-space-24);
  color: var(--sys-color-accent);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-label-size);
  line-height: 1.5;
  letter-spacing: .075em;
  text-transform: uppercase;
}
.evidence-figure ol { margin: 0; padding-left: var(--ref-space-20); display: grid; gap: var(--ref-space-12); }
.evidence-figure li { padding: var(--ref-space-20); border-radius: var(--ref-radius-1); background: var(--sys-color-surface-raised); }
.evidence-figure li::marker { color: var(--sys-color-signal); font-family: var(--sys-type-mono-family); }
.evidence-figure li strong,
.evidence-figure li span { display: block; }
.evidence-figure li strong { color: var(--sys-color-text-primary); font-size: var(--sys-type-body-size); }
.evidence-figure li span { margin-top: var(--ref-space-8); color: var(--sys-color-text-secondary); font-size: var(--sys-type-small-size); line-height: 1.55; }
.template-article .prose .evidence-figure p { margin: 0; color: var(--sys-color-text-secondary); }
.template-article .prose .evidence-figure .stat { color: var(--sys-color-text-primary); }
.evidence-figure .source-ref,
.evidence-figure .source-ref a { color: var(--sys-color-accent); }
.evidence-timeline ol { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.human-ai-loop ol { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.human-ai-loop li { position: relative; }
.human-ai-loop li:not(:last-child)::after { content: '→'; position: absolute; z-index: 2; top: 18px; right: -11px; color: var(--sys-color-signal); }
.anchor-overview ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.comparison-matrix { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ref-space-12); }
.comparison-matrix section { padding: clamp(var(--ref-space-24), 3vw, var(--ref-space-32)); background: var(--sys-color-surface-raised); }
.comparison-matrix section:last-child { background: var(--sys-color-surface); }
.comparison-matrix h3 { margin: 0 0 var(--ref-space-12); color: var(--sys-color-text-primary); font-family: var(--sys-type-heading-family); font-size: var(--sys-type-compact-title-size); font-weight: var(--sys-type-compact-title-weight); line-height: var(--sys-type-compact-title-leading); letter-spacing: var(--sys-type-compact-title-tracking); }
.comparison-matrix p { margin: 0; color: var(--sys-color-text-secondary); }
.comparison-matrix section:last-child p { color: var(--sys-color-text-secondary); }
.moat-replacement { overflow-x: auto; }
.moat-replacement table { width: 100%; min-width: 660px; border-collapse: collapse; }
.moat-replacement caption { margin-bottom: var(--ref-space-24); color: var(--ref-color-brand-300); font-family: var(--sys-type-mono-family); font-size: var(--sys-type-label-size); letter-spacing: .075em; text-align: left; text-transform: uppercase; }
.moat-replacement :is(th, td) { padding: var(--ref-space-16); border-bottom: 1px solid var(--sys-color-border-subtle); color: var(--sys-color-text-secondary); font-size: var(--sys-type-small-size); line-height: 1.5; text-align: left; vertical-align: top; }
.moat-replacement th { color: var(--sys-color-text-primary); font-family: var(--sys-type-mono-family); font-size: var(--sys-type-label-size); letter-spacing: .055em; text-transform: uppercase; }
.moat-replacement td:last-child { color: var(--sys-color-text-primary); font-weight: 600; }

.game-board__schematic {
  position: relative;
  min-height: 420px;
  padding: var(--ref-space-40);
  display: grid;
  grid-template-columns: minmax(260px, 1.1fr) minmax(190px, .72fr);
  gap: var(--ref-space-40);
  align-items: center;
  overflow: clip;
  border: 1px solid var(--sys-color-border-subtle);
  background: var(--sys-color-surface-raised);
}
.game-board__schematic::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 28%;
  width: min(48%, 360px);
  aspect-ratio: 1;
  border-radius: var(--ref-radius-circle);
  background:
    radial-gradient(circle, transparent 0 15%, var(--ref-color-brand-400) 15.3% 15.8%, transparent 16.1% 31%, var(--ref-color-white-alpha-32) 31.3% 31.8%, transparent 32.1% 47%, var(--ref-color-brand-400) 47.3% 47.8%, transparent 48.1% 63%, var(--ref-color-white-alpha-32) 63.3% 63.8%, transparent 64.1% 79%, var(--ref-color-brand-400) 79.3% 79.8%, transparent 80.1%);
  transform: translate(-50%, -50%);
}
.game-board__challenge { position: absolute; z-index: 1; top: 50%; left: 28%; width: 9ch; color: var(--sys-color-text-primary); font-family: var(--sys-type-mono-family); font-size: var(--sys-type-label-size); text-align: center; text-transform: uppercase; transform: translate(-50%, -50%); }
.game-board__schematic ol { position: relative; z-index: 1; grid-column: 2; margin: 0; padding-left: var(--ref-space-20); display: grid; gap: var(--ref-space-8); }
.game-board__schematic li { padding: var(--ref-space-8) var(--ref-space-12); color: var(--sys-color-text-primary); font-family: var(--sys-type-mono-family); font-size: var(--sys-type-label-size); line-height: 1.35; background: color-mix(in srgb, var(--sys-color-surface) 72%, transparent); }
.game-board__schematic li::marker { color: var(--sys-color-signal); }
.game-board__schematic small { color: var(--sys-color-text-secondary); font-size: 1em; }
.game-board__schematic > strong { position: relative; z-index: 1; grid-column: 2; color: var(--sys-color-accent); font-family: var(--sys-type-mono-family); font-size: var(--sys-type-label-size); letter-spacing: .055em; text-transform: uppercase; }
.game-board > figcaption { margin: var(--ref-space-20) 0 0; color: var(--sys-color-text-secondary); text-transform: none; }
.template-article article { counter-reset: deck-sample; }
.deck-sample {
  position: relative;
  left: 50%;
  width: min(calc(100vw - 2 * var(--sys-space-page-gutter)), 860px);
  margin: var(--ref-space-12) 0;
  padding: var(--ref-space-24) var(--ref-space-24);
  display: grid;
  grid-template-columns: minmax(140px, .42fr) minmax(0, 1fr);
  gap: var(--ref-space-24);
  border: 1px solid var(--ref-color-ink-alpha-16);
  background: var(--ref-color-warm-50);
  counter-increment: deck-sample;
  translate: -50% 0;
}
.deck-sample::before { content: 'Deck 0' counter(deck-sample); grid-column: 1 / -1; color: var(--ref-color-signal-700); font-family: var(--sys-type-mono-family); font-size: var(--sys-type-label-size); letter-spacing: .075em; text-transform: uppercase; }
.template-article .prose .deck-sample h4 { margin: 0; color: var(--ref-color-ink-900); font-family: var(--sys-type-heading-family); font-size: var(--sys-type-compact-title-size); font-weight: var(--sys-type-compact-title-weight); line-height: var(--sys-type-compact-title-leading); letter-spacing: var(--sys-type-compact-title-tracking); text-transform: none; }
.template-article .prose .deck-sample p { margin: 0; color: var(--ref-color-ink-alpha-70); font-size: var(--sys-type-small-size); }

/* Homepage tool bench: JavaScript opts eligible desktop viewports into the
   pinned scene. The unqualified rules above remain the no-JS fallback. */
@media (min-width: 961px) and (prefers-reduced-motion: no-preference) {
  .tool-bench-ready .template-home .lab-section {
    min-height: 300vh;
    padding-top: 0;
    padding-bottom: var(--sys-space-section-block);
  }
  .tool-bench-ready .template-home .lab-section__scene {
    --bench-scene-top: calc(var(--sys-layout-header-height) + 16px);
    --bench-top-inset: var(--sys-space-section-block);
    position: sticky;
    top: var(--bench-scene-top);
    height: calc(100svh - var(--sys-layout-header-height) - 32px);
    display: grid;
    grid-template-columns: minmax(280px, .72fr) minmax(0, 1fr);
    gap: clamp(var(--ref-space-48), 7vw, var(--ref-space-112));
    align-items: start;
    overflow: clip;
  }
  .tool-bench-ready .template-home .lab-section .section-intro {
    align-self: start;
    display: block;
    padding: var(--bench-top-inset) 0 0;
  }
  .tool-bench-ready .template-home .lab-section .section-intro > p {
    justify-self: auto;
    max-width: 34ch;
    margin-top: var(--ref-space-20);
  }
  .tool-bench-ready .template-home .tool-bench {
    align-self: start;
    width: 100%;
    min-width: 0;
    padding-top: var(--bench-top-inset);
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: none;
    gap: var(--ref-space-20);
    border: 0;
    transform: translate3d(0, calc(var(--runtime-bench-stack-y, 0) * 1px), 0);
    will-change: transform;
  }
  .tool-bench-ready .template-home .bench-tool,
  .tool-bench-ready .template-home .bench-tool:first-child {
    width: 100%;
    min-height: 0;
    height: calc(var(--runtime-bench-height, 144) * 1px);
    padding: var(--ref-space-24) var(--ref-space-24);
    grid-row: auto;
    overflow: clip;
  }
  .tool-bench-ready .template-home .bench-tool h3,
  .tool-bench-ready .template-home .bench-tool:first-child h3,
  .tool-bench-ready .template-home .bench-tool:not(:first-child) h3 {
    font-size: var(--sys-type-compact-title-size);
    font-weight: var(--sys-type-compact-title-weight);
    line-height: var(--sys-type-compact-title-leading);
    letter-spacing: var(--sys-type-compact-title-tracking);
  }
  .tool-bench-ready .template-home .bench-tool__content {
    overflow: clip;
    opacity: var(--runtime-bench-content-opacity, 1);
    transform: translateY(calc(var(--runtime-bench-content-y, 0) * 1px));
    transform-origin: top;
    will-change: opacity, transform;
  }
}

@media (min-width: 961px) and (max-height: 839px) and (prefers-reduced-motion: no-preference) {
  .tool-bench-ready .template-home .bench-tool,
  .tool-bench-ready .template-home .bench-tool:first-child {
    padding-block: var(--ref-space-20);
  }
}

/* Responsive */
@media (max-width: 960px) {
  .solv-site > header {
    top: 12px;
    width: min(calc(100% - 2 * var(--sys-space-page-gutter)), calc(var(--sys-layout-page-max) - 2 * var(--sys-space-page-gutter)));
    min-height: 60px;
    margin: var(--ref-space-12) auto -76px;
    grid-template-columns: 1fr auto;
  }
  .motion-ready .solv-site.menu-open > header { animation: none; }
  .solv-site .logo-small { grid-column: 1; justify-self: start; }
  .nav-ready .nav-toggle { grid-column: 2; display: block; }
  .nav-ready header nav { visibility: hidden; }
  .nav-ready .nav-toggle[aria-expanded='true'] + nav { overflow-y: auto; visibility: visible; }
  .nav-ready .solv-site #mainnav {
    position: fixed;
    inset: 0;
    left: calc(-1 * var(--sys-space-page-gutter) - 1px);
    right: auto;
    width: 100vw;
    max-height: 0;
    padding: 0 var(--sys-space-page-gutter);
    display: grid;
    overflow: hidden;
    background: var(--ref-color-ink-900);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
      max-height var(--sys-motion-duration-expand) var(--sys-motion-ease-standard),
      opacity var(--sys-motion-duration-state) var(--sys-motion-ease-standard),
      padding var(--sys-motion-duration-expand) var(--sys-motion-ease-standard),
      visibility var(--sys-motion-duration-none) var(--sys-motion-ease-linear) var(--sys-motion-duration-expand);
  }
  .nav-ready .nav-toggle[aria-expanded='true'] + #mainnav {
    height: 100svh;
    max-height: 100svh;
    padding-block: calc(var(--ref-space-80) + var(--ref-space-4) + env(safe-area-inset-top)) var(--ref-space-24);
    overflow-y: auto;
    overscroll-behavior: contain;
    align-content: start;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: var(--sys-motion-duration-none);
  }
  .solv-site #mainnav a {
    min-height: 56px;
    padding: var(--ref-space-16) var(--ref-space-4);
    border-radius: 0;
    border-bottom: 1px solid var(--sys-color-border-subtle);
    color: var(--sys-color-text-primary);
    font-size: var(--sys-type-body-size);
  }
  .solv-site #mainnav .btn {
    margin: var(--ref-space-16) 0 0;
    padding: var(--ref-space-16) var(--ref-space-20);
    justify-content: center;
    border-radius: var(--sys-radius-control);
    border-bottom: 0;
    text-align: center;
  }
  html:not(.nav-ready) .solv-site > header {
    position: relative;
    margin-bottom: 0;
    border-radius: var(--sys-radius-card);
  }
  html:not(.nav-ready) .solv-site #mainnav {
    position: static;
    grid-column: 1 / -1;
    margin-top: var(--ref-space-8);
    padding-top: var(--ref-space-8);
    display: flex;
    overflow-x: auto;
    border-top: 1px solid var(--ref-color-white-alpha-14);
    visibility: visible;
    pointer-events: auto;
    scrollbar-width: thin;
  }
  html:not(.nav-ready) .solv-site #mainnav a {
    min-width: var(--sys-control-target-min);
    min-height: var(--sys-control-target-min);
    flex: 0 0 auto;
    border: 0;
    font-size: var(--sys-type-navigation-size);
  }
  html:not(.nav-ready) .solv-site #mainnav .btn {
    margin: 0;
    padding: var(--ref-space-12) var(--ref-space-20);
  }
  .hero { min-height: auto; }
  .hero h1 {
    max-width: 100%;
    font-size: var(--sys-type-page-title-size);
    line-height: var(--sys-type-page-title-leading);
  }
  .template-home .hero { min-height: auto; padding-top: clamp(112px, 16vw, 144px); align-items: start; }
  .hero__grid { grid-template-columns: minmax(0, 1fr); }
  .client-strip__set { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .template-home .dispatch-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .signal-map { width: min(100%, 680px); margin-inline: auto; }
  .sb-inner, .band { grid-template-columns: 1fr; }
  .soul-band__comparison { max-width: 760px; }
  .prose .soul-cards--diagnostic {
    width: 100%;
    grid-template-columns: 1fr;
  }
  .prose .soul-cards--diagnostic > .soul-card {
    min-height: 0;
    border-right: 0;
    border-bottom: 1px solid var(--ref-color-ink-900);
  }
  .prose .soul-cards--diagnostic > .soul-card:last-child { border-bottom: 0; }
  .soul-cards--diagnostic > .soul-card:not(:last-child)::after {
    content: '↓';
    inset-block: auto -18px;
    inset-inline: auto 30px;
  }
  .template-proposition .proposition-hero { min-height: clamp(480px, 62svh, 680px); }
  .template-proposition .soul-comparison,
  .template-proposition .soul-diagnostic { grid-template-columns: 1fr; }
  .template-proposition .soul-comparison > * + * { border-top: 1px solid var(--sys-color-border-subtle); }
  .template-proposition .prose .soul-diagnostic > .soul-card {
    border-top: 1px solid var(--sys-color-border-subtle);
    border-left: 0;
  }
  .template-proposition .prose .soul-diagnostic > .soul-card:first-child { border-top: 0; }
  .template-proposition .soul-diagnostic > .soul-card:not(:last-child)::after { display: none; }
  .dispatch { grid-template-columns: minmax(130px, .5fr) 1.2fr; }
  .dispatch p { grid-column: 2; }
  .tool-bench { grid-template-columns: 1fr; grid-template-rows: auto; }
  .bench-tool, .bench-tool:first-child { min-height: 280px; grid-row: auto; }
  .template-home .bench-illustration {
    flex: none;
    height: clamp(100px, 22.5vw, 140px);
    min-height: 0;
    margin-top: var(--ref-space-16);
  }
  .card h2, .card h3, .tool h2, .tool h3 { font-size: var(--sys-type-card-title-size); }
  .grid, .tools { grid-template-columns: 1fr 1fr; }
  .grid.two { grid-template-columns: 1fr 1fr; }
  .card, .tool { border-right-width: 1px; }
  .template-collection .blocks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .solv-site > footer { grid-template-columns: minmax(220px, .75fr) minmax(0, 1.25fr); }
  .footer-contact { min-height: 76px; grid-column: 1 / -1; }
}

@media (min-width: 681px) and (max-width: 960px) {
  .template-home .tool-bench { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .template-home .bench-tool:first-child { grid-column: 1 / -1; }
  .prose .soul-cards--diagnostic > .soul-card {
    padding: var(--ref-space-32);
    display: grid;
    grid-template-columns: 100px minmax(0, 1fr) minmax(210px, 1.1fr);
    grid-template-rows: auto auto;
    column-gap: var(--ref-space-24);
    row-gap: var(--ref-space-12);
  }
  .soul-cards--diagnostic .soul-card__meta {
    grid-column: 1;
    grid-row: 1 / 3;
    align-self: start;
    align-items: flex-start;
    flex-direction: column;
  }
  .prose .soul-cards--diagnostic .soul-card h3 {
    max-width: 13ch;
    margin: 0;
    grid-column: 2;
    grid-row: 1;
    font-size: var(--sys-type-compact-title-size);
  }
  .prose .soul-cards--diagnostic .soul-card__summary {
    margin: 0;
    grid-column: 2;
    grid-row: 2;
  }
  .prose .soul-cards--diagnostic .soul-card__evidence {
    margin: 0;
    grid-column: 3;
    grid-row: 1 / 3;
    align-self: stretch;
  }
  .template-proposition .prose .soul-diagnostic > .soul-card {
    padding: var(--ref-space-32);
    display: grid;
    grid-template-columns: 100px minmax(0, 1fr) minmax(210px, 1.1fr);
    grid-template-rows: auto auto;
    column-gap: var(--ref-space-24);
    row-gap: var(--ref-space-12);
  }
}

@media (max-width: 680px) {
  .template-home .hero { min-height: calc(100svh - var(--sys-layout-continuation-lip)); align-items: end; }
  .template-home :is(.signal-process, .editorial-section, .lab-section) .section-intro { grid-template-columns: 1fr; align-items: start; gap: var(--ref-space-16); padding-bottom: var(--ref-space-40); }
  .template-home :is(.signal-process, .editorial-section, .lab-section) .section-intro > p { justify-self: start; }
  .hero { padding-top: var(--ref-space-48); padding-bottom: var(--ref-space-56); }
  .hero h1 { font-size: var(--sys-type-page-title-size); line-height: var(--sys-type-page-title-leading); }
  .template-home .hero { padding-top: var(--ref-space-112); padding-bottom: var(--ref-space-64); }
  .template-home .hero h1 { max-width: 14ch; font-size: var(--sys-type-display-size); line-height: var(--sys-type-display-leading); }
  .hero h1 > span { white-space: normal; }
  .hero-copy { margin-top: var(--ref-space-16); }
  .hero-actions { display: grid; }
  .sb-btn { width: 100%; }
  .client-strip__set { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ref-space-24) var(--ref-space-32); }
  .client-strip__set img { height: calc(var(--logo-h) * .78); }
  .signal-process { padding-top: var(--ref-space-64); padding-bottom: var(--ref-space-64); }
  .template-home :is(.signal-map__canvas) { gap: var(--ref-space-16); }
  .template-home :is(.signal-stage) { min-height: auto; }
  .template-home .dispatch-list { grid-template-columns: 1fr; }
  .template-home .dispatch { min-height: 0; }
  .template-home .tool-bench { grid-template-columns: 1fr; }
  .template-home .bench-tool:first-child { grid-column: auto; }
  .signal-map__foot { padding: var(--ref-space-16); font-size: var(--sys-type-body-size); }
  .sb-inner { grid-template-columns: 1fr; }
  .soul-band__logic { grid-template-columns: 1fr; }
  .soul-band__logic::before {
    min-height: 42px;
    grid-column: 1;
    grid-row: 2;
    border-block: 1px solid var(--ref-color-ink-900);
    border-inline: 0;
  }
  .soul-band__logic > div:first-child { grid-column: 1; grid-row: 1; }
  .soul-band__logic > div:last-child { grid-column: 1; grid-row: 3; }
  .soul-band h2, .band h2, .section-intro h2 { font-size: var(--sys-type-section-title-size); }
  .dispatch { padding-right: var(--ref-space-40); grid-template-columns: 1fr; gap: var(--ref-space-12); }
  .dispatch h3 { font-size: var(--sys-type-subsection-title-size); }
  .dispatch__kind { grid-template-columns: 44px minmax(0, 1fr); align-items: center; }
  .dispatch p { grid-column: auto; }
  .dispatch__go { top: 25px; }
  .bench-tool { min-height: 300px; }
  .bench-tool h3, .bench-tool:not(:first-child) h3 { max-width: 100%; font-size: var(--sys-type-compact-title-size); font-weight: var(--sys-type-compact-title-weight); line-height: var(--sys-type-compact-title-leading); letter-spacing: var(--sys-type-compact-title-tracking); }
  .band { gap: var(--ref-space-48); }
  .band--statement { grid-template-columns: 1fr; }
  .statement-band__action { grid-column: 1; }
  .page-hero h1, .tool-hero h1 { max-width: 100%; font-size: var(--sys-type-page-title-size); line-height: var(--sys-type-page-title-leading); text-wrap: balance; }
  .template-article .article-hero h1 { font-size: var(--sys-type-page-title-size); line-height: var(--sys-type-page-title-leading); }
  .prose-wrap { padding-top: var(--ref-space-56); }
  .prose h1, .prose .panel-title { max-width: 100%; font-size: var(--sys-type-section-title-size); text-wrap: balance; }
  .prose h2, .prose .section-title { font-size: var(--sys-type-feature-title-size); text-wrap: balance; }
  .prose .chapter-heading--wide { font-size: var(--sys-type-feature-title-size); }
  .prose h3 { font-size: var(--sys-type-compact-title-size); text-wrap: balance; }
  .prose h3.heading--no-orphan { font-size: var(--sys-type-compact-title-size); }
  .prose .soul-cards { grid-template-columns: 1fr; }
  .prose .pull { margin-inline: calc(-1 * var(--sys-space-page-gutter)); padding-inline: var(--sys-space-page-gutter); }
  .article-toc { grid-template-columns: minmax(0, 1fr); }
  .article-toc a:nth-of-type(odd) { margin-right: 0; }
  .compendium-list { grid-template-columns: 1fr; }
  .prose .compendium-list li:nth-child(odd) { margin-right: 0; }
  .grid, .tools, .grid.two { grid-template-columns: 1fr; }
  .card, .tool { min-height: 250px; padding: var(--ref-space-24); }
  .card h2, .card h3, .tool h2, .tool h3 { max-width: 100%; font-size: var(--sys-type-card-title-size); text-wrap: balance; }
  .template-collection .collection-hero { min-height: 480px; padding-top: clamp(132px, 28vw, 168px); }
  .template-collection .page-hero h1 { max-width: 15ch; font-size: var(--sys-type-page-title-size); line-height: var(--sys-type-page-title-leading); }
  .template-collection .collection-rail { align-items: flex-start; flex-wrap: wrap; }
  .template-collection :is(.grid, .tools, .blocks) { grid-template-columns: 1fr; }
  .template-collection :is(.card, .tool, .block) { min-height: 260px; }
  .template-collection :is(.card, .tool, .block) :is(h2, h3) { max-width: 18ch; font-size: var(--sys-type-card-title-size); }
  .template-proposition .proposition-hero {
    min-height: auto;
    padding-top: clamp(132px, 28vw, 168px);
  }
  .template-proposition .page-hero h1 { max-width: 15ch; font-size: var(--sys-type-page-title-size); line-height: var(--sys-type-page-title-leading); }
  .template-proposition .grid { grid-template-columns: 1fr; }
  .template-proposition .soul-comparison .xbody { padding: var(--ref-space-20); }
  .template-tool .task-hero {
    min-height: auto;
    padding-top: clamp(var(--ref-space-128), 30vw, 152px);
    padding-bottom: var(--ref-space-48);
  }
  .template-tool .task-hero h1 { max-width: 15ch; font-size: var(--sys-type-page-title-size); line-height: var(--sys-type-page-title-leading); }
  .template-tool .task-surface { width: 100%; margin-bottom: 0; padding: var(--ref-space-12); border-radius: 0; }
  .template-tool .task-surface.prose-wrap {
    padding-top: var(--ref-space-56);
    padding-bottom: var(--ref-space-64);
  }
  .template-tool .embed-wrap { min-height: 0; }
  .template-tool .embed-toolbar { grid-template-columns: minmax(0, 1fr) auto; padding: var(--ref-space-12); gap: var(--ref-space-8) var(--ref-space-12); }
  .template-tool .embed-status { justify-self: end; }
  .template-tool .embed-direct,
  .template-tool .embed-fallback { width: 100%; grid-column: 1 / -1; }
  .block h2, .block h3 { font-size: var(--sys-type-card-title-size); text-wrap: balance; }
  .band--statement h2 { font-family: var(--sys-type-heading-family); font-size: var(--sys-type-compact-title-size); font-weight: var(--sys-type-compact-title-weight); line-height: var(--sys-type-compact-title-leading); letter-spacing: var(--sys-type-compact-title-tracking); text-transform: none; text-wrap: pretty; }
  .prose .soul-cards--diagnostic > .soul-card { padding: var(--ref-space-24); }
  .prose .soul-cards--diagnostic .soul-card h3 { max-width: 15ch; margin-top: var(--ref-space-24); font-size: var(--sys-type-compact-title-size); }
  .principle { grid-template-columns: 1fr; gap: var(--ref-space-12); }
  .principle h2, .principle h3 { font-family: var(--sys-type-heading-family); font-size: var(--sys-type-compact-title-size); line-height: var(--sys-type-compact-title-leading); text-transform: none; text-wrap: pretty; }
  .soul-table, .soul-table tbody, .soul-table tr, .soul-table td { display: block; width: 100%; }
  .soul-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .soul-table tr { padding: var(--ref-space-20) 0; border-bottom: var(--sys-border-hairline); }
  .soul-table tr:last-child { border-bottom: 0; }
  .soul-table td { padding: 0 0 var(--ref-space-12); border: 0; }
  .soul-table td:last-child { padding-bottom: 0; }
  .soul-table td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: var(--ref-space-4);
    color: var(--ref-color-signal-700);
    font-family: var(--sys-type-mono-family);
    font-size: var(--sys-type-label-size);
    letter-spacing: .075em;
    text-transform: uppercase;
  }
  .facts-rail { grid-template-columns: 1fr; }
  .prose .facts-rail p { border-right: 0; border-bottom: 1px solid var(--ref-color-ink-alpha-16); }
  .prose .facts-rail p:last-child { border-bottom: 0; }
  .article-meta { gap: var(--ref-space-8) var(--ref-space-12); }
  .article-meta > * + *::before { display: none; }
  .article-chapter { top: calc(var(--sys-layout-header-height) + 12px); }
  .article-next { grid-template-columns: 1fr; }
  .article-next .action { width: 100%; }
  .evidence-figure,
  .game-board { left: auto; width: 100%; margin-inline: 0; padding: var(--ref-space-24); translate: none; }
  .evidence-timeline ol,
  .human-ai-loop ol,
  .anchor-overview ol,
  .comparison-matrix { grid-template-columns: 1fr; }
  .human-ai-loop li:not(:last-child)::after { content: '↓'; top: auto; right: 18px; bottom: -12px; }
  .game-board__schematic { min-height: 560px; padding: var(--ref-space-32) var(--ref-space-20); grid-template-columns: 1fr; grid-template-rows: 300px auto auto; gap: var(--ref-space-20); }
  .game-board__schematic::before { top: 168px; left: 50%; width: min(82%, 290px); }
  .game-board__challenge { top: 168px; left: 50%; }
  .game-board__schematic ol { grid-column: 1; grid-row: 2; }
  .game-board__schematic > strong { grid-column: 1; grid-row: 3; }
  .deck-sample { left: auto; width: 100%; margin-inline: 0; grid-template-columns: 1fr; gap: var(--ref-space-12); translate: none; }
  .subnav__cue {
    margin: 0;
    padding: var(--ref-space-12) var(--sys-space-page-gutter);
    display: block;
    border-bottom: var(--sys-border-hairline);
    background: var(--ref-color-warm-50);
    color: var(--ref-color-ink-alpha-70);
    font-family: var(--sys-type-mono-family);
    font-size: var(--sys-type-label-size);
    line-height: 1.45;
    letter-spacing: .045em;
    text-transform: uppercase;
  }
  .sb-btn { justify-content: center; gap: var(--ref-space-12); }
  .next { align-items: flex-start; flex-direction: column; }
  .soul-end { display: grid; gap: var(--ref-space-12); }
  .solv-site > footer { grid-template-columns: 1fr; gap: var(--ref-space-32); }
  .footer-brand { gap: var(--ref-space-16); }
  .footer-contact { grid-column: auto; }
  .copyright { grid-column: auto; }
}

/* The first proposition module is the continuation affordance. Keep its
   actual content close enough to the hero edge to enter the first viewport. */
.template-proposition .page-hero--continuation + :is(.prose-wrap, .grid, .blocks) {
  padding-top: var(--ref-space-40);
}
.viewport-continuation {
  position: absolute;
  z-index: 4;
  top: calc(100svh - var(--ref-space-56));
  right: var(--sys-space-page-gutter);
  width: var(--sys-control-target-min);
  height: var(--sys-control-target-min);
  display: none;
  place-items: center;
  border: 1px solid var(--sys-color-border-subtle);
  border-radius: var(--sys-radius-control);
  background: color-mix(in srgb, var(--sys-color-surface) 72%, transparent);
  color: var(--sys-color-accent);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-reading-size);
  line-height: 1;
}

/* A first viewport should end with a real continuation surface, not a false
   bottom. Only the content-heavy landing heroes need their vertical padding
   compressed on short screens; roomier viewports keep the authored rhythm. */
@media (min-width: 681px) and (max-height: 820px) {
  .template-home .hero {
    min-height: calc(100svh - var(--sys-layout-continuation-lip));
    padding-top: calc(var(--sys-layout-header-height) + var(--ref-space-56));
    padding-bottom: var(--ref-space-48);
  }
  .template-collection .page-hero--continuation,
  .template-proposition .page-hero--continuation {
    min-height: auto;
    padding-top: calc(var(--sys-layout-header-height) + var(--ref-space-56));
    padding-bottom: var(--ref-space-56);
  }
  .template-proposition .page-hero--continuation + :is(.prose-wrap, .grid, .blocks) {
    padding-top: var(--ref-space-32);
  }
}

@media (max-width: 680px) and (max-height: 720px) {
  .template-home .hero {
    min-height: calc(100svh - var(--sys-layout-continuation-lip));
    padding-top: calc(var(--sys-layout-header-height) + var(--ref-space-32));
    padding-bottom: var(--ref-space-40);
  }
  .template-collection .page-hero--continuation,
  .template-proposition .page-hero--continuation {
    min-height: auto;
    padding-top: calc(var(--sys-layout-header-height) + var(--ref-space-32));
    padding-bottom: var(--ref-space-32);
  }
  .template-proposition .page-hero--continuation + :is(.prose-wrap, .grid, .blocks) {
    padding-top: var(--ref-space-32);
  }
  .viewport-continuation--short { display: grid; }
}

@media (max-width: 680px) and (max-height: 620px) {
  .viewport-continuation {
    position: absolute;
    top: calc(100svh - var(--ref-space-56));
    display: grid;
  }
}

@media (max-width: 680px) {
  html:not(.nav-ready) .viewport-continuation {
    top: calc(100svh - var(--ref-space-56) - var(--sys-layout-header-height-no-js-mobile));
    display: grid;
  }
}

/* Reading progress (articles) — scroll-driven, no JS; direct-manipulation
   feedback, deliberately exempt from the reduced-motion kill-list. */
@supports (animation-timeline: scroll()) {
  .read-progress {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    z-index: 120;
    background: var(--ref-color-brand-500);
    transform-origin: left center;
    transform: scaleX(0);
    animation: read-progress linear both;
    animation-timeline: scroll(root);
  }
  @keyframes read-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
}

.status.live {
  display: inline-flex;
  align-items: center;
  gap: var(--ref-space-8);
}
.status.live::before {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: var(--sys-radius-control);
  background: var(--ref-color-brand-400);
}

/* Soul comparison: six lines from one origin, in two states.
   LEFT  every line fires off on its own trajectory and keeps changing it -
         each AI inventing the organisation again, nothing agreeing.
   RIGHT the same six as an even fan that scales as one piece: the whole
         figure grows and settles while every angle holds, which is exactly
         "intelligence scales without dissolving character".
   Un-animated values ARE the static frame, so reduced motion still reads
   scattered-vs-ordered. */
.template-home .soul-band__logic > div { display: flex; flex-direction: column; }
.template-home .soul-band__logic dt { padding-inline-start: 0; }
.template-home .soul-band__logic dd {
  flex: 1 1 auto;
  margin-inline-start: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(var(--ref-space-24), 3.5vw, var(--ref-space-40));
}
.soul-band__claim { display: block; max-width: 30ch; }

.fan {
  flex: 1 1 auto;
  width: 100%;
  min-height: clamp(150px, 40vw, 220px);
  margin-top: auto;
  display: block;
  overflow: visible;
}
.fan__ray {
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
  transform-box: view-box;
  transform-origin: 10px 170px;
}
.template-home .soul-band__logic > div:first-child .fan { color: var(--ref-color-brand-300); }
.template-home .soul-band__logic > div:last-child .fan { color: var(--ref-color-white); }
.fan--scatter .fan__ray { opacity: .85; stroke-dasharray: 100 100; stroke-dashoffset: 0; }
.fan--proportional .fan__rays { transform-box: view-box; transform-origin: 10px 170px; }

/* left: every line is perpetually re-firing out of the corner and being pulled
   back, each at its own point in the cycle - the card is never in agreement with
   itself. One shared period with irregular phases: even spacing reads as a wave,
   and mixed durations drift into alignment and empty the card. */
.motion-ready .fan--scatter .fan__ray { animation: ray-fire 6.4s cubic-bezier(.55, 0, .2, 1) infinite; }
.motion-ready .fan--scatter .fan__ray:nth-child(2) { animation-delay: -0.4s; }
.motion-ready .fan--scatter .fan__ray:nth-child(3) { animation-delay: -0.7s; }
.motion-ready .fan--scatter .fan__ray:nth-child(4) { animation-delay: -2.1s; }
.motion-ready .fan--scatter .fan__ray:nth-child(5) { animation-delay: -2.5s; }
.motion-ready .fan--scatter .fan__ray:nth-child(6) { animation-delay: -3.9s; }
.motion-ready .fan--scatter .fan__ray:nth-child(7) { animation-delay: -4.9s; }
.motion-ready .fan--scatter .fan__ray:nth-child(8) { animation-delay: -5.2s; }
.motion-ready .fan--scatter .fan__ray:nth-child(9) { animation-delay: -6.1s; }
@keyframes ray-fire {
  0%   { stroke-dashoffset: 100; }
  26%  { stroke-dashoffset: 0; }
  74%  { stroke-dashoffset: 0; }
  100% { stroke-dashoffset: -100; }
}
/* right: the whole fan scales as one - angles never change */
.motion-ready .fan--proportional .fan__rays { animation: fan-scale 6.4s cubic-bezier(.4, 0, .2, 1) infinite; }
@keyframes fan-scale {
  0%,  10% { transform: scale(.7); }
  42%, 58% { transform: scale(1); }
  90%,100% { transform: scale(.7); }
}

/* Bench-card diagrams share one enlarged footprint. Card padding remains
   unchanged; static cards and the active desktop card absorb the extra height. */
.bench-illustration {
  flex: 1 1 105px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 105px;
  margin-top: var(--ref-space-16);
  display: block;
  overflow: visible;
  pointer-events: none;
}

/* GEO: the crawl trace. The faint track is the structure that exists; the lit
   line is how far a machine reader actually got. */
.bench-trace__track,
.bench-trace__line {
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}
.bench-trace__track { stroke: var(--ref-color-white-alpha-14); }
.bench-trace__nodes circle { fill: var(--ref-color-white-alpha-32); }
.bench-trace__line { stroke: var(--ref-color-brand-400); }
.bench-trace__wipe {
  transform-box: view-box;
  transform-origin: 0 0;
}
.motion-ready .bench-trace__wipe { transform: scaleX(0); }
.motion-ready .bench-tool[data-reveal].is-visible .bench-trace__wipe {
  animation: bench-trace-draw 1700ms var(--sys-motion-ease-out) 240ms both;
}
@keyframes bench-trace-draw { to { transform: scaleX(1); } }

/* AIR: a five-axis readiness radar. The uneven profile makes maturity legible
   as a system of strengths and gaps rather than a single vanity score. */
.bench-air__grid,
.bench-air__profile {
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}
.bench-air__grid {
  fill: none;
  stroke: var(--ref-color-ink-alpha-16);
  stroke-width: 1.25;
}
.bench-air__profile {
  fill: color-mix(in srgb, var(--ref-color-brand-500) 12%, transparent);
  stroke: var(--ref-color-brand-500);
  stroke-width: 2;
}
.bench-air__nodes circle {
  fill: var(--ref-color-white);
  stroke: var(--ref-color-brand-500);
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
}
.bench-air__nodes .bench-air__core {
  fill: var(--ref-color-brand-500);
  stroke: none;
}

/* LAB: six connected modules make the catalogue literal while the signal path
   shows them operating as one bench rather than six unrelated destinations. */
.bench-lab__network,
.bench-lab__signal,
.bench-lab__module path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}
.bench-lab__network {
  stroke: var(--ref-color-ink-alpha-16);
  stroke-width: 1.5;
}
.bench-lab__signal {
  stroke: var(--ref-color-brand-500);
  stroke-width: 2;
}
.bench-lab__junctions circle { fill: var(--ref-color-brand-500); }
.bench-lab__module rect {
  fill: var(--ref-color-warm-50);
  stroke: var(--ref-color-ink-alpha-16);
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
}
.bench-lab__module path {
  stroke: var(--ref-color-brand-600);
  stroke-width: 1.6;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  header nav { transition: none; }
  .motion-ready .solv-site > header { animation: none; }
  .sb-btn:hover { transform: none; }
  .template-home .dispatch:hover,
  .template-home .bench-tool:hover,
  .template-collection :is(.card, .tool, .block):hover,
  .template-proposition :is(.card, .block, .soul-card):hover,
  :is(a, button):hover .visual-mark {
    box-shadow: none;
    transform: none;
  }
  .dispatch, .block, .bench-tool, .card, .tool, .visual-mark { transition-property: background, color, border-color; }
  .motion-ready [data-reveal],
  .motion-ready [data-reveal].is-visible,
  .motion-ready .template-collection :is(.card, .tool, .block)[data-reveal],
  .motion-ready .template-collection :is(.card, .tool, .block)[data-reveal].is-visible,
  .motion-ready .template-proposition :is(.card, .block, .soul-card)[data-reveal],
  .motion-ready .template-proposition :is(.card, .block, .soul-card)[data-reveal].is-visible,
  .motion-ready .template-tool .task-surface[data-reveal],
  .motion-ready .template-tool .task-surface[data-reveal].is-visible {
    opacity: 1;
    filter: none;
    transform: none;
    transition: none;
    will-change: auto;
  }
  .soul-tabs-ready .panel.visible,
  .motion-ready .principle[data-reveal].is-visible .hl,
  .read-progress,
  .motion-ready .fan--scatter .fan__ray,
  .motion-ready .fan--proportional .fan__rays,
  .motion-ready .bench-tool[data-reveal].is-visible .bench-trace__wipe,
  .sb-btn:hover [aria-hidden='true'],
  .text-link:hover .text-link__arrow,
  .bench-tool:hover .bench-tool__action span { animation: none; }
  .client-strip__set li:hover img { transform: none; }
  .motion-ready .bench-trace__wipe { transform: none; }
  .tool-bench-ready .template-home .lab-section { min-height: auto; }
  .tool-bench-ready .template-home .lab-section__scene {
    position: static;
    height: auto;
    display: block;
    overflow: visible;
  }
  .tool-bench-ready .template-home .tool-bench {
    transform: none;
    will-change: auto;
  }
  .tool-bench-ready .template-home .bench-tool {
    height: auto;
    overflow: visible;
  }
  .tool-bench-ready .template-home .bench-tool__content {
    overflow: visible;
    opacity: 1;
    transform: none;
    will-change: auto;
  }
  .motion-ready .signal-map__axis::before,
  .motion-ready .signal-map__axis.is-signal-active::before {
    transform: translateY(-50%) scaleX(1);
    transition: none;
  }
  @container (max-width: 720px) {
    .motion-ready .signal-map__axis::before,
    .motion-ready .signal-map__axis.is-signal-active::before {
      transform: translateX(-50%) scaleY(1);
    }
  }
}

/* Homepage advisory close — a focused final conversion moment. */
.template-home #advisory.band {
  padding: 0;
  display: block;
  border: 0;
  background: var(--sys-color-surface);
}
.template-home #advisory > .advisory-close { max-width: none; }

.template-home .advisory-close {
  min-height: 100svh;
  padding: clamp(var(--ref-space-80), 10vh, 104px) var(--sys-space-page-gutter);
  padding-inline: max(var(--sys-space-page-gutter), calc((100vw - var(--sys-layout-page-max)) / 2 + var(--sys-space-page-gutter)));
  display: grid;
  grid-template-columns: minmax(0, 1.62fr) minmax(320px, .68fr);
  gap: clamp(var(--ref-space-72), 8.5vw, 132px);
  align-items: start;
  align-content: center;
  overflow: hidden;
  border-block: 1px solid var(--sys-color-border-subtle);
  background: var(--sys-color-surface);
  color: var(--sys-color-text-primary);
}

.template-home .advisory-close > * { max-width: none; }

.template-home .advisory-close__message { max-width: 890px; }

.template-home .advisory-close h2 {
  max-width: 17.2ch;
  margin: 0;
  color: var(--sys-color-text-primary);
  font-family: var(--sys-type-heading-family);
  font-size: var(--sys-type-display-size);
  font-weight: var(--sys-type-display-weight);
  line-height: var(--sys-type-display-leading);
  letter-spacing: var(--sys-type-display-tracking);
  text-wrap: balance;
}

.template-home .advisory-close h2 .acc { color: var(--ref-color-signal-500); }
.template-home .advisory-close .keep-together { white-space: nowrap; }

.template-home .advisory-close__deck,
.template-home .band__close > .advisory-close__deck {
  max-width: 59ch;
  margin: clamp(var(--ref-space-32), 3vw, var(--ref-space-40)) 0 0;
  color: var(--sys-color-text-secondary);
  font-family: var(--sys-type-body-family);
  font-size: var(--sys-type-lead-size);
  line-height: var(--sys-type-lead-leading);
  letter-spacing: var(--sys-type-lead-tracking);
}

.template-home .advisory-close__action {
  width: auto;
  min-height: 58px;
  margin-top: clamp(var(--ref-space-32), 3.5vw, var(--ref-space-48));
  padding: var(--ref-space-8) var(--ref-space-8) var(--ref-space-8) var(--ref-space-24);
  gap: var(--ref-space-24);
  border: 1px solid var(--sys-color-action-bg);
  border-radius: var(--sys-radius-control);
  background: var(--sys-color-action-bg);
  color: var(--sys-color-action-text);
  font-size: var(--sys-type-control-size);
  font-weight: 600;
  line-height: 1;
  transition:
    color var(--sys-motion-duration-state) var(--sys-motion-ease-standard),
    background var(--sys-motion-duration-state) var(--sys-motion-ease-standard),
    border-color var(--sys-motion-duration-state) var(--sys-motion-ease-standard),
    transform var(--sys-motion-duration-state) var(--sys-motion-ease-out);
}

.template-home .advisory-close__action svg {
  width: 42px;
  height: 42px;
  padding: var(--ref-space-12);
  flex: 0 0 42px;
  border-radius: var(--ref-radius-circle);
  background: var(--sys-color-action-text);
  color: var(--sys-color-action-bg);
  transition:
    background var(--sys-motion-duration-state) var(--sys-motion-ease-standard),
    transform var(--sys-motion-duration-expand) var(--sys-motion-ease-out);
}

.template-home .advisory-close__action:hover {
  border-color: var(--sys-color-action-hover-bg);
  background: var(--sys-color-action-hover-bg);
  color: var(--sys-color-action-hover-text);
  transform: translateY(-2px);
}

.template-home .advisory-close__action:hover svg {
  animation: none;
  background: var(--ref-color-signal-500);
  transform: translateX(2px);
}

.template-home .advisory-close__action:active { transform: translateY(0); }

.template-home .advisory-close__action:focus-visible {
  outline: 3px solid var(--sys-color-focus-ring);
  outline-offset: 5px;
}

.template-home .advisory-close__evidence {
  min-height: 100%;
  padding: var(--ref-space-8) 0 var(--ref-space-8) var(--ref-space-48);
  position: relative;
  align-self: stretch;
}

.template-home :is(.advisory-close__spine, .advisory-close__signal) {
  width: 1px;
  position: absolute;
  left: 7px;
  top: 7px;
  bottom: 7px;
}

.template-home .advisory-close__spine { background: var(--sys-color-border-subtle); }
.template-home .advisory-close__signal {
  background: var(--ref-color-signal-500);
  transform-origin: top;
}

.template-home .advisory-close__evidence-item { position: relative; }

.template-home .advisory-close__evidence-item + .advisory-close__evidence-item {
  margin-top: clamp(var(--ref-space-48), 5vw, var(--ref-space-64));
  padding-top: clamp(var(--ref-space-40), 4vw, var(--ref-space-48));
  border-top: 1px solid var(--sys-color-border-subtle);
}

.template-home .advisory-close__evidence-item::before {
  content: "";
  width: 13px;
  height: 13px;
  position: absolute;
  left: -47px;
  top: 4px;
  border: 3px solid var(--sys-color-surface);
  border-radius: var(--ref-radius-circle);
  background: var(--ref-color-signal-500);
  box-shadow: 0 0 0 1px var(--ref-color-signal-500);
}

.template-home .advisory-close__evidence-item + .advisory-close__evidence-item::before {
  top: calc(clamp(36px, 4vw, 48px) + 4px);
}

.template-home .advisory-close__meta {
  margin: 0 0 var(--ref-space-12);
  color: var(--sys-color-disabled-text);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-label-size);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.template-home .advisory-close__proof {
  max-width: 30ch;
  margin: 0;
  color: var(--sys-color-text-primary);
  font-family: var(--sys-type-body-family);
  font-size: clamp(1.32rem, 1.8vw, 1.7rem);
  font-weight: 500;
  line-height: 1.23;
  letter-spacing: -.026em;
  text-wrap: balance;
}

.template-home .advisory-close__proof em {
  color: var(--sys-color-text-secondary);
  font-style: normal;
  font-weight: 400;
}

@media (prefers-reduced-motion: no-preference) {
  .motion-ready .template-home .advisory-close__evidence[data-reveal] .advisory-close__signal {
    transform: scaleY(0);
  }
  .motion-ready .template-home .advisory-close__evidence[data-reveal].is-visible .advisory-close__signal {
    animation: advisory-signal-resolve 760ms var(--sys-motion-duration-state) var(--sys-motion-ease-out) both;
  }
  .motion-ready .template-home .advisory-close__evidence[data-reveal] .advisory-close__evidence-item::before {
    opacity: .45;
    transform: scale(.6);
  }
  .motion-ready .template-home .advisory-close__evidence[data-reveal].is-visible .advisory-close__evidence-item::before {
    animation: advisory-marker-resolve 440ms 520ms var(--sys-motion-ease-out) both;
  }
  .motion-ready .template-home .advisory-close__evidence[data-reveal].is-visible .advisory-close__evidence-item + .advisory-close__evidence-item::before {
    animation-delay: 720ms;
  }
  @keyframes advisory-signal-resolve {
    from { transform: scaleY(0); }
    to { transform: scaleY(1); }
  }
  @keyframes advisory-marker-resolve {
    from { opacity: .45; transform: scale(.6); }
    to { opacity: 1; transform: scale(1); }
  }
}

@media (max-width: 960px) {
  .template-home .advisory-close {
    grid-template-columns: 1fr;
    gap: clamp(var(--ref-space-64), 10vw, var(--ref-space-88));
    align-content: start;
  }
  .template-home .advisory-close__message { max-width: 800px; }
  .template-home .advisory-close h2 { max-width: 18ch; }
  .template-home .advisory-close__evidence { width: 100%; max-width: 720px; }
}

@media screen and (max-width: 680px) {
  .template-home .advisory-close {
    min-height: 100svh;
    padding: var(--ref-space-40) var(--ref-space-24) var(--ref-space-32);
    gap: var(--ref-space-48);
    align-content: start;
    border-top: 0;
  }
  .template-home .advisory-close h2 {
    max-width: 11.8ch;
    font-size: var(--sys-type-display-size);
    line-height: var(--sys-type-display-leading);
    letter-spacing: var(--sys-type-display-tracking);
    text-wrap: pretty;
  }
  .template-home .advisory-close__deck,
  .template-home .band__close > .advisory-close__deck {
    max-width: 34ch;
    margin-top: var(--ref-space-24);
    font-size: var(--sys-type-body-size);
    line-height: 1.5;
  }
  .template-home .advisory-close__action {
    width: 100%;
    min-height: 56px;
    margin-top: var(--ref-space-32);
    justify-content: space-between;
  }
  .template-home .advisory-close__evidence {
    min-height: 0;
    padding: var(--ref-space-32) 0 0;
    border-top: 1px solid var(--sys-color-border-subtle);
  }
  .template-home :is(.advisory-close__spine, .advisory-close__signal) {
    left: 6px;
    top: 36px;
    bottom: 0;
  }
  .template-home .advisory-close__evidence-item { padding-left: var(--ref-space-40); }
  .template-home .advisory-close__evidence-item + .advisory-close__evidence-item {
    margin-top: var(--ref-space-32);
    padding-top: var(--ref-space-32);
    border-top: 0;
  }
  .template-home .advisory-close__evidence-item::before { left: 0; top: 4px; }
  .template-home .advisory-close__evidence-item + .advisory-close__evidence-item::before { top: 32px; }
  .template-home .advisory-close__meta { margin-bottom: var(--ref-space-8); }
  .template-home .advisory-close__proof {
    max-width: 18ch;
    font-size: 1.3rem;
    line-height: 1.22;
  }
}

@media print {
  .template-home .advisory-close {
    min-height: 0;
    padding-block: var(--ref-space-40);
  }
}

/* Soul Systems: the Start panel resolves into one dominant chapter gateway. */
.template-proposition #panel-start .chapter-transition {
  min-height: 100dvh;
  padding-block: var(--sys-space-section-block);
  padding-inline: var(--sys-space-page-gutter);
  display: grid;
  align-content: center;
  background: var(--sys-color-canvas);
}

#panel-start .chapter-transition__inner {
  width: 100%;
  max-width: var(--sys-layout-content-max);
  margin-inline: auto;
}

#panel-start .chapter-transition__intro {
  max-width: 58ch;
  margin: 0;
  color: var(--sys-color-text-secondary);
  font-family: var(--sys-type-body-family);
  font-size: var(--sys-type-lead-size);
  font-weight: var(--sys-type-lead-weight);
  line-height: var(--sys-type-lead-leading);
  letter-spacing: var(--sys-type-lead-tracking);
  text-wrap: balance;
}

#panel-start .chapter-gateway {
  width: 100%;
  min-height: clamp(
    calc(var(--ref-space-128) + var(--ref-space-128) + var(--ref-space-72)),
    30vw,
    calc(var(--ref-space-128) + var(--ref-space-128) + var(--ref-space-96) + var(--ref-space-80))
  );
  margin-top: clamp(var(--ref-space-40), 5.5vw, var(--ref-space-72));
  padding: clamp(var(--ref-space-32), 5vw, var(--ref-space-72));
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .34fr);
  grid-template-rows: auto 1fr auto;
  gap: var(--ref-space-32) clamp(var(--ref-space-48), 7vw, var(--ref-space-112));
  position: relative;
  isolation: isolate;
  overflow: hidden;
  appearance: none;
  border: 0;
  border-radius: var(--sys-radius-panel);
  background: var(--sys-color-surface);
  box-shadow: var(--sys-elevation-overlay);
  color: var(--sys-color-text-primary);
  font-family: var(--sys-type-body-family);
  text-align: left;
  cursor: pointer;
  transition:
    background-color var(--sys-motion-duration-state) var(--sys-motion-ease-standard),
    transform var(--sys-motion-duration-emphasis) var(--sys-motion-ease-out);
}

#panel-start .chapter-gateway::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0 auto 0 0;
  width: var(--ref-space-4);
  background: var(--ref-color-signal-500);
  transform: scaleX(.25);
  transform-origin: left;
  transition: transform var(--sys-motion-duration-emphasis) var(--sys-motion-ease-out);
}

#panel-start .chapter-gateway > * { position: relative; z-index: 1; }

#panel-start .chapter-gateway__title {
  grid-column: 1;
  grid-row: 1;
  align-self: start;
  font-family: var(--sys-type-heading-family);
  font-size: var(--sys-type-section-title-size);
  font-weight: var(--sys-type-section-title-weight);
  line-height: var(--sys-type-section-title-leading);
  letter-spacing: var(--sys-type-section-title-tracking);
  text-wrap: balance;
}

#panel-start .chapter-gateway__statement {
  max-width: 24ch;
  grid-column: 1;
  grid-row: 3;
  align-self: end;
  color: var(--sys-color-text-secondary);
  font-size: var(--sys-type-lead-size);
  font-weight: var(--sys-type-lead-weight);
  line-height: var(--sys-type-lead-leading);
  letter-spacing: var(--sys-type-lead-tracking);
  text-wrap: balance;
}

#panel-start .chapter-gateway__action {
  min-height: var(--sys-control-target-min);
  padding-top: var(--ref-space-24);
  grid-column: 2;
  grid-row: 3;
  align-self: end;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ref-space-24);
  border-top: 1px solid var(--sys-color-border-subtle);
  color: var(--sys-color-text-primary);
  font-size: var(--sys-type-control-size);
  font-weight: var(--sys-type-control-weight);
  line-height: var(--sys-type-control-leading);
  white-space: nowrap;
}

#panel-start .chapter-gateway__arrow {
  width: var(--sys-control-target-min);
  height: var(--sys-control-target-min);
  flex: 0 0 var(--sys-control-target-min);
  display: inline-grid;
  place-items: center;
  border-radius: var(--ref-radius-circle);
  background: var(--sys-color-action-bg);
  color: var(--sys-color-action-text);
  transition:
    background-color var(--sys-motion-duration-state) var(--sys-motion-ease-standard),
    color var(--sys-motion-duration-state) var(--sys-motion-ease-standard),
    transform var(--sys-motion-duration-expand) var(--sys-motion-ease-out);
}

#panel-start .chapter-gateway__arrow svg { width: var(--ref-space-20); height: var(--ref-space-20); fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

#panel-start .chapter-gateway:hover {
  background: var(--sys-color-surface-raised);
  transform: translateY(calc(-1 * var(--ref-space-4)));
}

#panel-start .chapter-gateway:hover::before { transform: scaleX(1); }
#panel-start .chapter-gateway:hover .chapter-gateway__arrow {
  background: var(--ref-color-signal-500);
  color: var(--ref-color-white);
  transform: translateX(var(--ref-space-4));
}
#panel-start .chapter-gateway:active { transform: translateY(0); }
#panel-start .chapter-gateway:focus-visible,
#panel-start .audit-link:focus-visible { outline: 3px solid var(--ref-color-signal-500); outline-offset: var(--ref-space-8); }

#panel-start .chapter-transition__secondary {
  margin: 0;
  padding: clamp(var(--ref-space-24), 3vw, var(--ref-space-32)) 0 0;
  display: flex;
  align-items: baseline;
  gap: var(--ref-space-12);
  color: var(--sys-color-text-secondary);
  font-family: var(--sys-type-body-family);
  font-size: var(--sys-type-control-size);
  line-height: 1.5;
}

#panel-start .audit-link {
  min-height: var(--sys-control-target-min);
  display: inline-flex;
  align-items: center;
  color: var(--sys-color-link);
  font-weight: 600;
  text-decoration-line: underline;
  text-decoration-color: var(--sys-color-accent);
  text-decoration-thickness: 1px;
  text-underline-offset: var(--ref-space-8);
  transition: color var(--sys-motion-duration-state) var(--sys-motion-ease-standard);
}
#panel-start .audit-link:hover { color: var(--sys-color-link-hover); }

@media (max-width: 720px) {
  .template-proposition #panel-start .chapter-transition {
    padding: var(--ref-space-48) var(--sys-space-page-gutter) var(--ref-space-40);
    align-content: start;
  }
  #panel-start .chapter-transition__intro { max-width: 32ch; text-wrap: pretty; }
  #panel-start .chapter-gateway {
    min-height: calc(var(--ref-space-128) + var(--ref-space-128) + var(--ref-space-128) + var(--ref-space-96));
    margin-top: var(--ref-space-40);
    padding: var(--ref-space-32) var(--ref-space-24) var(--ref-space-24);
    grid-template-columns: 1fr;
    grid-template-rows: auto 1fr auto;
    gap: var(--ref-space-32);
    border-radius: var(--sys-radius-card);
  }
  #panel-start .chapter-gateway__title {
    grid-column: 1;
    grid-row: 1;
    font-size: var(--sys-type-section-title-size);
  }
  #panel-start .chapter-gateway__statement {
    max-width: 18ch;
    grid-column: 1;
    grid-row: 2;
    align-self: start;
  }
  #panel-start .chapter-gateway__action { grid-column: 1; grid-row: 3; }
  #panel-start .chapter-transition__secondary {
    padding-top: var(--ref-space-24);
    align-items: flex-start;
    flex-direction: column;
    gap: var(--ref-space-4);
  }
}

/* Homepage signal instrument: one continuous path from change to action. */
.template-home .signal-process {
  padding: clamp(var(--ref-space-64), 7vw, var(--ref-space-96)) var(--sys-space-page-gutter);
}

.template-home .signal-instrument {
  width: 100%;
  margin: 0;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid var(--sys-color-border-subtle);
  border-radius: var(--sys-radius-panel);
  background: var(--sys-color-surface-raised);
  box-shadow: var(--sys-elevation-raised);
  container: none;
}

.signal-map__caption {
  width: 1px;
  height: 1px;
  margin: 0;
  padding: 0;
  position: absolute;
  overflow: hidden;
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.template-home .signal-instrument__stages {
  min-height: clamp(500px, 35vw, 550px);
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(360px, 1.35fr) minmax(0, .9fr);
  gap: 0;
  position: relative;
  align-items: stretch;
  background: var(--sys-color-surface-raised);
  list-style: none;
}

.template-home .signal-instrument .signal-stage {
  min-width: 0;
  min-height: 0;
  padding: clamp(var(--ref-space-32), 3vw, var(--ref-space-40));
  display: grid;
  grid-template-rows: auto auto minmax(112px, 1fr) auto;
  align-content: normal;
  align-items: start;
  position: relative;
  border: 0;
  border-radius: var(--ref-radius-0);
  background: var(--sys-color-surface);
  box-shadow: none;
  color: var(--sys-color-text-primary);
}

.template-home .signal-instrument .signal-stage + .signal-stage {
  border-left: 1px solid var(--ref-color-ink-alpha-16);
}

.template-home .signal-instrument .signal-stage--interpret {
  z-index: 1;
  grid-template-rows: auto auto auto minmax(160px, 1fr) auto;
  border-color: transparent;
  background: var(--sys-color-surface);
  box-shadow: none;
  color: var(--sys-color-text-primary);
}

.signal-stage__meta {
  min-height: var(--ref-space-24);
  display: flex;
  align-items: baseline;
  gap: var(--ref-space-12);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-label-size);
  font-weight: var(--sys-type-label-weight);
  line-height: var(--sys-type-label-leading);
  letter-spacing: var(--sys-type-label-tracking);
  text-transform: uppercase;
}

.signal-stage__index {
  color: var(--sys-color-signal);
  font-variant-numeric: tabular-nums;
}

.signal-stage--interpret .signal-stage__index { color: var(--sys-color-accent); }

.template-home .signal-instrument .signal-title {
  max-width: 16ch;
  margin: clamp(var(--ref-space-20), 2vw, var(--ref-space-24)) 0 0;
  color: var(--sys-color-text-primary);
  font-family: var(--sys-type-heading-family);
  font-size: var(--sys-type-card-title-size);
  font-weight: var(--sys-type-card-title-weight);
  line-height: var(--sys-type-card-title-leading);
  letter-spacing: var(--sys-type-card-title-tracking);
  overflow-wrap: normal;
  text-wrap: balance;
  word-break: normal;
}

.template-home .signal-instrument .signal-stage--interpret .signal-title { max-width: 13ch; }

.template-home .signal-instrument .signal-stage__summary {
  max-width: 31ch;
  margin: clamp(var(--ref-space-16), 1.6vw, var(--ref-space-20)) 0 0;
  color: var(--sys-color-text-secondary);
  font-size: var(--sys-type-control-size);
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: -.01em;
}

.signal-sources {
  margin: clamp(var(--ref-space-24), 2.5vw, var(--ref-space-32)) 0 calc(var(--ref-space-64) + var(--ref-space-40));
  padding: 0;
  align-self: end;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 var(--ref-space-24);
  position: relative;
  list-style: none;
}

.signal-sources::after {
  content: '';
  width: clamp(var(--ref-space-32), 3vw, var(--ref-space-40));
  height: 1px;
  position: absolute;
  top: 23px;
  right: calc(-1 * clamp(var(--ref-space-32), 3vw, var(--ref-space-40)));
  background: var(--sys-color-signal);
  opacity: .72;
}

.signal-source {
  min-height: 46px;
  padding-block: var(--ref-space-12);
  display: flex;
  align-items: center;
  gap: var(--ref-space-12);
  position: relative;
  border-top: 1px solid var(--sys-color-border-subtle);
  color: var(--sys-color-text-secondary);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-caption-size);
  line-height: var(--sys-type-caption-leading);
  letter-spacing: .055em;
  text-transform: uppercase;
}

.signal-source::before {
  content: '';
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  border-radius: var(--ref-radius-circle);
  background: var(--sys-color-signal);
  opacity: .64;
}

.signal-aperture {
  min-height: 160px;
  margin-top: clamp(var(--ref-space-20), 2vw, var(--ref-space-24));
  align-self: end;
  display: grid;
  align-items: center;
  position: relative;
}

.signal-visual {
  width: 100%;
  height: auto;
  display: block;
  overflow: visible;
}

.signal-visual__noise path {
  fill: none;
  stroke: var(--sys-color-border-strong);
  stroke-width: 1.35;
  opacity: .82;
  vector-effect: non-scaling-stroke;
}

.signal-visual__noise path:nth-child(2n) { opacity: .54; }
.signal-visual__noise path:nth-child(3n) { opacity: .34; }

.signal-visual__signal {
  fill: none;
  stroke: var(--ref-color-signal-500);
  stroke-width: 2.5;
  vector-effect: non-scaling-stroke;
}

.signal-visual__aperture {
  fill: var(--sys-color-surface);
  stroke: var(--sys-color-accent);
  stroke-width: 1.25;
  vector-effect: non-scaling-stroke;
}

.signal-visual__core { fill: var(--ref-color-signal-500); }

.signal-visual__pulse {
  fill: var(--sys-color-text-primary);
  filter: drop-shadow(0 0 6px rgb(231 96 131 / .8));
  opacity: 0;
}

.signal-visual__vertical { display: none; }

.motion-ready .signal-instrument:not(.is-signal-active) :is(.signal-visual__noise path, .signal-visual__signal) {
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}

.motion-ready .signal-instrument.is-signal-active .signal-visual__noise path {
  stroke-dasharray: 1;
  stroke-dashoffset: 0;
  transition: stroke-dashoffset var(--sys-motion-duration-reveal) var(--sys-motion-ease-out);
}

.motion-ready .signal-instrument.is-signal-active .signal-visual__noise path:nth-child(2) { transition-delay: var(--sys-motion-duration-hover); }
.motion-ready .signal-instrument.is-signal-active .signal-visual__noise path:nth-child(3) { transition-delay: var(--sys-motion-duration-state); }
.motion-ready .signal-instrument.is-signal-active .signal-visual__noise path:nth-child(4) { transition-delay: var(--sys-motion-duration-expand); }
.motion-ready .signal-instrument.is-signal-active .signal-visual__noise path:nth-child(5) { transition-delay: var(--sys-motion-duration-emphasis); }
.motion-ready .signal-instrument.is-signal-active .signal-visual__noise path:nth-child(6) { transition-delay: var(--sys-motion-duration-emphasis); }

.motion-ready .signal-instrument.is-signal-active .signal-visual__signal {
  stroke-dasharray: 1;
  stroke-dashoffset: 0;
  transition: stroke-dashoffset var(--sys-motion-duration-reveal) var(--sys-motion-ease-out) var(--sys-motion-duration-reveal);
}

.motion-ready .signal-instrument.is-signal-active .signal-visual__pulse {
  animation: signal-instrument-pulse var(--sys-motion-duration-reveal) var(--sys-motion-ease-out) var(--sys-motion-duration-reveal) 1 both;
}

@keyframes signal-instrument-pulse {
  0% { opacity: 0; transform: translateX(-118px); }
  18% { opacity: 1; }
  76% { opacity: 1; }
  100% { opacity: 0; transform: translateX(0); }
}

.interpret-brand {
  min-height: var(--ref-space-48);
  margin-top: var(--ref-space-12);
  padding-top: var(--ref-space-12);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ref-space-20);
  border-top: 1px solid var(--sys-color-border-subtle);
}

.interpret-brand span {
  color: var(--sys-color-text-secondary);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-caption-size);
  line-height: var(--sys-type-caption-leading);
  letter-spacing: var(--sys-type-label-tracking);
  text-transform: uppercase;
}

.template-home .signal-instrument .interpret-brand img {
  width: clamp(64px, 6.5vw, 90px);
  height: auto;
  margin: 0;
  display: block;
  object-fit: contain;
}

.signal-outputs {
  margin-top: clamp(var(--ref-space-24), 2.2vw, var(--ref-space-32));
  margin-bottom: var(--ref-space-16);
  padding-left: var(--ref-space-20);
  align-self: end;
  display: grid;
  position: relative;
}

.signal-outputs::before {
  content: '';
  width: calc(clamp(var(--ref-space-32), 3vw, var(--ref-space-40)) + var(--ref-space-20));
  height: 1px;
  position: absolute;
  top: 31px;
  left: calc(-1 * (clamp(var(--ref-space-32), 3vw, var(--ref-space-40)) + var(--ref-space-20)));
  background: var(--sys-color-signal);
}

.signal-outputs::after {
  content: '';
  width: 1px;
  position: absolute;
  top: 31px;
  bottom: 31px;
  left: 0;
  background: var(--sys-color-signal);
  opacity: .72;
}

.signal-output {
  min-height: max(var(--sys-control-target-min), 62px);
  padding: var(--ref-space-8) 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ref-space-20);
  position: relative;
  border-top: 1px solid var(--sys-color-border-subtle);
  color: var(--sys-color-text-primary);
  font-family: var(--sys-type-heading-family);
  font-size: var(--sys-type-lead-size);
  font-weight: 500;
  line-height: 1.2;
  text-decoration: none;
  transition:
    color var(--sys-motion-duration-state) var(--sys-motion-ease-standard),
    padding-inline var(--sys-motion-duration-emphasis) var(--sys-motion-ease-out);
}

.signal-output::before {
  content: '';
  width: var(--ref-space-20);
  height: 1px;
  position: absolute;
  top: 50%;
  left: calc(-1 * var(--ref-space-20));
  background: var(--sys-color-signal);
  opacity: .72;
}

.signal-output::after {
  content: '';
  width: 7px;
  height: 7px;
  position: absolute;
  top: calc(50% - 3.5px);
  left: calc(-1 * var(--ref-space-20) - 3px);
  border-radius: var(--ref-radius-circle);
  background: var(--sys-color-signal);
  opacity: .32;
}

.motion-ready .signal-instrument.is-signal-active .signal-output::after {
  animation: signal-output-node var(--sys-motion-duration-emphasis) var(--sys-motion-ease-out) calc(var(--sys-motion-duration-reveal) * 2) 1 both;
}

.motion-ready .signal-instrument.is-signal-active .signal-output:nth-child(2)::after {
  animation: signal-output-node var(--sys-motion-duration-emphasis) var(--sys-motion-ease-out) calc(var(--sys-motion-duration-reveal) * 2 + var(--sys-motion-duration-hover)) 1 both;
}
.motion-ready .signal-instrument.is-signal-active .signal-output:nth-child(3)::after {
  animation: signal-output-node var(--sys-motion-duration-emphasis) var(--sys-motion-ease-out) calc(var(--sys-motion-duration-reveal) * 2 + var(--sys-motion-duration-expand)) 1 both;
}

@keyframes signal-output-node {
  0% { opacity: .2; transform: scale(.65); }
  44% { opacity: 1; transform: scale(1.5); }
  100% { opacity: .54; transform: scale(1); }
}

.signal-output svg {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform var(--sys-motion-duration-emphasis) var(--sys-motion-ease-out);
}

.signal-output:hover {
  padding-inline: var(--ref-space-8) var(--ref-space-4);
  color: var(--sys-color-link-hover);
}

.signal-output:hover svg { transform: translateX(var(--ref-space-4)); }

.signal-output:focus-visible {
  outline: 3px solid var(--sys-color-focus-ring);
  outline-offset: 5px;
  border-radius: var(--ref-radius-1);
}

@media (max-width: 980px) {
  .template-home .signal-instrument__stages {
    grid-template-columns: minmax(0, .82fr) minmax(320px, 1.2fr) minmax(0, .82fr);
  }
  .template-home .signal-instrument .signal-stage { padding: var(--ref-space-32) var(--ref-space-24); }
}

@media (max-width: 840px) {
  .template-home .signal-process {
    padding: var(--ref-space-56) var(--ref-space-20) var(--ref-space-72);
  }

  .template-home .signal-process .signal-process__intro {
    padding-bottom: var(--ref-space-40);
    grid-template-columns: 1fr;
    align-items: start;
    gap: var(--ref-space-16);
  }

  .template-home .signal-process .signal-process__intro > p {
    max-width: 32ch;
    justify-self: start;
  }

  .template-home .signal-instrument { width: 100%; border-radius: var(--sys-radius-card); }

  .template-home .signal-instrument::before {
    content: '';
    width: 1px;
    position: absolute;
    z-index: 3;
    top: 38px;
    bottom: 38px;
    left: 24px;
    background: var(--sys-color-signal);
    opacity: .45;
    pointer-events: none;
  }

  .template-home .signal-instrument__stages {
    width: 100%;
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
  }

  .template-home .signal-instrument .signal-stage,
  .template-home .signal-instrument .signal-stage--interpret {
    min-height: 0;
    padding: var(--ref-space-32) var(--ref-space-24) var(--ref-space-40) var(--ref-space-56);
    grid-template-rows: auto auto auto auto;
  }

  .template-home .signal-instrument .signal-stage + .signal-stage {
    border-top: 1px solid var(--sys-color-border-subtle);
    border-left: 0;
  }

  .template-home .signal-instrument .signal-stage--interpret { border-top-color: transparent; box-shadow: none; }

  .signal-stage__meta { position: relative; }
  .signal-stage__meta::before {
    content: '';
    width: 9px;
    height: 9px;
    position: absolute;
    top: 4px;
    left: -32.5px;
    border: 2px solid currentColor;
    border-radius: var(--ref-radius-circle);
    background: var(--sys-color-surface);
  }

  .template-home .signal-instrument .signal-title {
    max-width: 13ch;
    margin-top: var(--ref-space-24);
    font-size: var(--sys-type-card-title-size);
  }

  .template-home .signal-instrument .signal-stage__summary { max-width: 28ch; }

  .signal-sources {
    margin: var(--ref-space-32) 0 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .signal-sources::after,
  .signal-outputs::before,
  .signal-outputs::after,
  .signal-output::before,
  .signal-output::after { display: none; }

  .signal-aperture {
    min-height: 226px;
    margin-top: var(--ref-space-24);
  }

  .signal-visual__horizontal { display: none; }
  .signal-visual__vertical { display: block; }
  .interpret-brand { margin-top: var(--ref-space-8); }
  .signal-outputs { margin: var(--ref-space-32) 0 0; padding-left: 0; }
  .signal-output { min-height: max(var(--sys-control-target-min), 58px); }
}

@media (max-width: 340px) {
  .template-home .signal-process { padding-inline: var(--ref-space-16); }
  .template-home .signal-instrument .signal-stage,
  .template-home .signal-instrument .signal-stage--interpret { padding-right: var(--ref-space-20); }
  .signal-sources { grid-template-columns: 1fr; }
  .signal-source { min-height: var(--sys-control-target-min); }
}

/* Homepage thinking — one continuous editorial reading board. */
.template-home .dispatch-list.editorial-board {
  min-height: clamp(420px, 34vw, 480px);
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(360px, .85fr);
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--sys-color-border-subtle);
  border-radius: var(--ref-radius-2);
  background: var(--ref-color-warm-50);
}

.template-home .editorial-board .editorial-item {
  min-width: 0;
  min-height: 0;
  position: relative;
  isolation: isolate;
  grid-template-columns: minmax(0, 1fr);
  margin: 0;
  border: 0;
  border-radius: var(--ref-radius-0);
  box-shadow: none;
  color: var(--sys-color-text-primary);
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}

.template-home .editorial-board .editorial-item::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: transparent;
  transition: background var(--sys-motion-duration-state) var(--sys-motion-ease-out);
}

.template-home .editorial-board .editorial-item:hover {
  box-shadow: none;
  transform: none;
}

.template-home .editorial-board .editorial-item:focus-visible {
  z-index: 3;
  outline: 3px solid var(--sys-color-focus-ring);
  outline-offset: -7px;
}

.template-home .editorial-board .editorial-item__meta {
  display: flex;
  align-content: normal;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--ref-space-24);
  color: var(--sys-color-signal);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-label-size);
  font-weight: var(--sys-type-label-weight);
  line-height: var(--sys-type-label-leading);
  letter-spacing: var(--sys-type-label-tracking);
  text-transform: uppercase;
}

.template-home .editorial-board .editorial-item__index {
  color: currentColor;
  font-variant-numeric: tabular-nums;
}

.template-home .editorial-board .editorial-item__body {
  min-width: 0;
  align-self: center;
  position: relative;
  z-index: 1;
}

.template-home .editorial-board .editorial-item h3 {
  min-height: 0;
  margin: 0;
  font-family: var(--sys-type-heading-family);
  text-wrap: balance;
}

.template-home .editorial-board .editorial-item__summary {
  display: block;
  margin: 0;
  grid-column: auto;
  text-wrap: pretty;
}

.template-home .editorial-board .editorial-item__action {
  min-height: var(--sys-control-target-min);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ref-space-24);
  font-size: var(--sys-type-control-size);
  font-weight: var(--sys-type-control-weight);
  line-height: var(--sys-type-control-leading);
}

.template-home .editorial-board .editorial-item__action svg {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform var(--sys-motion-duration-expand) var(--sys-motion-ease-out);
}

.template-home .editorial-board .editorial-item:hover .editorial-item__action svg {
  transform: translateX(5px);
}

.template-home .editorial-board .editorial-item--flagship {
  min-height: 100%;
  padding: clamp(var(--ref-space-40), 3.5vw, var(--ref-space-56));
  grid-column: 1;
  grid-row: 1 / span 2;
  display: grid;
  grid-template-rows: auto 1fr auto;
  overflow: hidden;
  background: var(--sys-color-surface);
  color: var(--sys-color-text-primary);
}

.template-home .editorial-board .editorial-item--flagship::after {
  background: var(--ref-color-white-alpha-08);
  opacity: 0;
  transition: opacity var(--sys-motion-duration-state) var(--sys-motion-ease-out);
}

.template-home .editorial-board .editorial-item--flagship:hover::after { opacity: 1; }
.template-home .editorial-board .editorial-item--flagship .editorial-item__meta { color: var(--sys-color-signal); }

.template-home .editorial-board .editorial-item--flagship .editorial-item__body {
  max-width: 600px;
  padding-block: clamp(var(--ref-space-40), 3.4vw, var(--ref-space-48));
}

.template-home .editorial-board .editorial-item--flagship h3 {
  max-width: 11ch;
  font-size: var(--sys-type-feature-title-size);
  font-weight: var(--sys-type-feature-title-weight);
  line-height: var(--sys-type-feature-title-leading);
  letter-spacing: var(--sys-type-feature-title-tracking);
}

.template-home .editorial-board .editorial-item--flagship .editorial-item__summary {
  max-width: 42ch;
  margin-top: var(--ref-space-24);
  color: var(--sys-color-text-secondary);
  font-size: var(--sys-type-lead-size);
  font-weight: var(--sys-type-lead-weight);
  line-height: var(--sys-type-lead-leading);
  letter-spacing: var(--sys-type-lead-tracking);
}

.template-home .editorial-board .editorial-item--flagship .editorial-item__action {
  max-width: 260px;
  padding-top: var(--ref-space-16);
  position: relative;
  z-index: 1;
  border-top: 1px solid var(--sys-color-border-subtle);
}

.template-home .editorial-board .feature-signal {
  width: min(48%, 390px);
  height: auto;
  position: absolute;
  right: clamp(-40px, -2vw, -16px);
  bottom: clamp(var(--ref-space-24), 2.5vw, var(--ref-space-40));
  z-index: 0;
  overflow: visible;
  opacity: .62;
  pointer-events: none;
}

.template-home .editorial-board .feature-signal path {
  fill: none;
  stroke: var(--ref-color-white-alpha-32);
  stroke-width: 1.2;
  vector-effect: non-scaling-stroke;
}

.template-home .editorial-board .feature-signal__resolved {
  stroke: var(--sys-color-signal);
  stroke-width: 1.7;
}

.template-home .editorial-board .feature-signal__pulse {
  fill: var(--sys-color-signal);
  opacity: 1;
}

.template-home .editorial-board .editorial-item--supporting {
  padding: clamp(var(--ref-space-24), 2.2vw, var(--ref-space-32));
  grid-column: 2;
  display: grid;
  grid-template-rows: auto 1fr auto;
  border-left: 1px solid var(--sys-color-border-subtle);
  background: var(--ref-color-warm-50);
}

.template-home .editorial-board .editorial-item--supporting:nth-child(2) { grid-row: 1; }
.template-home .editorial-board .editorial-item--supporting:nth-child(3) { grid-row: 2; }
.template-home .editorial-board .editorial-item--supporting + .editorial-item--supporting { border-top: 1px solid var(--sys-color-border-subtle); }
.template-home .editorial-board .editorial-item--supporting:hover::after { background: var(--ref-color-white); }

.template-home .editorial-board .editorial-item--supporting .editorial-item__body {
  padding-block: clamp(var(--ref-space-16), 1.8vw, var(--ref-space-24));
}

.template-home .editorial-board .editorial-item--supporting h3 {
  max-width: 14ch;
  font-size: var(--sys-type-compact-title-size);
  font-weight: var(--sys-type-compact-title-weight);
  line-height: var(--sys-type-compact-title-leading);
  letter-spacing: var(--sys-type-compact-title-tracking);
}

.template-home .editorial-board .editorial-item--supporting .editorial-item__summary {
  max-width: 38ch;
  margin-top: var(--ref-space-12);
  color: var(--sys-color-text-secondary);
  font-size: var(--sys-type-small-size);
  line-height: var(--sys-type-small-leading);
}

.template-home .editorial-board .editorial-item--supporting .editorial-item__action {
  padding-top: var(--ref-space-12);
  border-top: 1px solid var(--sys-color-border-subtle);
}

.template-home .editorial-board .editorial-item--supporting .editorial-item__action span:first-child {
  color: var(--sys-color-link);
}

@media (prefers-reduced-motion: no-preference) {
  .motion-ready .editorial-item--flagship .feature-signal__pulse { opacity: 0; }

  .motion-ready .editorial-item--flagship .feature-signal path {
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
  }

  .motion-ready .editorial-item--flagship.is-visible .feature-signal path {
    stroke-dashoffset: 0;
    transition: stroke-dashoffset var(--sys-motion-duration-reveal) var(--sys-motion-ease-out);
  }

  .motion-ready .editorial-item--flagship.is-visible .feature-signal__pulse { animation: editorial-signal-resolve var(--sys-motion-duration-emphasis) var(--sys-motion-ease-out) both; }

  @keyframes editorial-signal-resolve {
    from { opacity: 0; transform: translateX(-34px); }
    to { opacity: 1; transform: translateX(0); }
  }
}

@media (max-width: 960px) {
  .template-home .dispatch-list.editorial-board {
    min-height: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: auto minmax(280px, auto);
  }

  .template-home .editorial-board .editorial-item--flagship {
    min-height: 390px;
    grid-column: 1 / -1;
    grid-row: 1;
  }

  .template-home .editorial-board .editorial-item--supporting {
    grid-row: 2;
    border-top: 1px solid var(--sys-color-border-subtle);
    border-left: 0;
  }

  .template-home .editorial-board .editorial-item--supporting:nth-child(2) {
    grid-column: 1;
    grid-row: 2;
  }
  .template-home .editorial-board .editorial-item--supporting:nth-child(3) {
    grid-column: 2;
    grid-row: 2;
    border-left: 1px solid var(--sys-color-border-subtle);
  }
}

@media (width <= 680px) {
  .template-home .dispatch-list.editorial-board {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
  }

  .template-home .editorial-board .editorial-item--flagship {
    min-height: 390px;
    padding: var(--ref-space-32) var(--ref-space-24);
    grid-column: 1;
    grid-row: 1;
  }

  .template-home .editorial-board .editorial-item--flagship .editorial-item__body { padding-block: var(--ref-space-40); }
  .template-home .editorial-board .editorial-item--flagship h3 { max-width: 9ch; }
  .template-home .editorial-board .editorial-item--flagship .editorial-item__summary {
    max-width: 31ch;
    margin-top: var(--ref-space-20);
    font-size: var(--sys-type-body-size);
    font-weight: var(--sys-type-body-weight);
    line-height: var(--sys-type-body-leading);
  }

  .template-home .editorial-board .feature-signal {
    width: 74%;
    right: -28%;
    bottom: var(--ref-space-32);
    opacity: .44;
  }

  .template-home .editorial-board .editorial-item--supporting,
  .template-home .editorial-board .editorial-item--supporting:nth-child(2),
  .template-home .editorial-board .editorial-item--supporting:nth-child(3) {
    min-height: 250px;
    padding: var(--ref-space-24);
    grid-column: 1;
    border-top: 1px solid var(--sys-color-border-subtle);
    border-left: 0;
  }

  .template-home .editorial-board .editorial-item--supporting:nth-child(2) { grid-row: 2; }
  .template-home .editorial-board .editorial-item--supporting:nth-child(3) { grid-row: 3; }

  .template-home .editorial-board .editorial-item--supporting h3 {
    max-width: 13ch;
  }
}

/* Lab instrument library */
.template-lab main { background: var(--ref-color-white); }

.template-lab .lab-masthead {
  position: relative;
  overflow: hidden;
  min-height: clamp(420px, 46svh, 520px);
  padding-top: clamp(var(--ref-space-112), 10vw, var(--ref-space-128));
  padding-bottom: clamp(var(--ref-space-40), 5vw, var(--ref-space-56));
  background:
    radial-gradient(circle at 86% 24%, var(--ref-color-brand-alpha-18), transparent 34%),
    var(--sys-color-surface);
}

.template-lab .lab-masthead .page-inner {
  width: min(100%, 1180px);
  margin-inline: auto;
}

.template-lab .lab-masthead h1 { max-width: 12.5ch; }
.template-lab .lab-masthead .stand { max-width: 52ch; }

.template-lab .collection-rail {
  min-height: 72px;
  display: grid;
  grid-template-columns: repeat(3, max-content);
  justify-content: flex-start;
  gap: 0;
  background: var(--ref-color-warm-50);
  color: var(--ref-color-ink-alpha-70);
  font-family: var(--sys-type-mono-family);
  font-size: var(--sys-type-caption-size);
  font-weight: 400;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.template-lab .collection-rail span {
  padding-inline: var(--ref-space-24);
  display: inline-flex;
  align-items: baseline;
  gap: var(--ref-space-8);
  border-right: 1px solid var(--sys-color-border-subtle);
}

.template-lab .collection-rail span:first-child { padding-left: 0; }
.template-lab .collection-rail strong {
  color: var(--ref-color-signal-500);
  font-family: var(--sys-type-heading-family);
  font-size: var(--sys-type-lead-size);
  font-weight: 600;
  letter-spacing: -.02em;
}

.template-lab .lab-instruments {
  padding-top: clamp(var(--ref-space-56), 6vw, var(--ref-space-80));
  padding-bottom: clamp(var(--ref-space-72), 8vw, var(--ref-space-112));
  grid-template-columns: minmax(0, 1.18fr) minmax(360px, .82fr);
  grid-template-rows: repeat(3, minmax(210px, auto));
  column-gap: var(--ref-space-20);
  row-gap: 0;
}

.template-lab .lab-instrument,
.template-lab .lab-shelf__item {
  position: relative;
  min-height: 0;
  border: 1px solid var(--sys-color-border-subtle);
  box-shadow: none;
}

.template-lab .lab-instrument:hover,
.template-lab .lab-shelf__item:hover {
  padding-left: clamp(var(--ref-space-24), 3vw, var(--ref-space-40));
  box-shadow: none;
  transform: none;
}

.template-lab :is(.lab-instrument, .lab-shelf__item):has(.card-action:focus-visible) {
  outline: 3px solid var(--sys-color-focus-ring);
  outline-offset: 4px;
}

.template-lab :is(.lab-instrument, .lab-shelf__item) .card-action {
  width: 100%;
  padding-top: var(--ref-space-20);
  justify-content: space-between;
  gap: var(--ref-space-24);
  border-top: 1px solid var(--sys-color-border-subtle);
  text-decoration: none;
}

.template-lab :is(.lab-instrument, .lab-shelf__item) .card-action::after {
  position: absolute;
  inset: 0;
  content: '';
}

.template-lab :is(.lab-instrument, .lab-shelf__item) .card-action span:last-child {
  transition: transform var(--sys-motion-duration-emphasis) var(--sys-motion-ease-out);
}

.template-lab :is(.lab-instrument, .lab-shelf__item):hover .card-action span:last-child {
  transform: translateX(var(--ref-space-8));
}

.template-lab .lab-instrument--feature {
  min-height: 650px;
  padding: clamp(var(--ref-space-32), 4vw, var(--ref-space-48));
  grid-column: 1;
  grid-row: 1 / 4;
  border: 0;
  border-radius: var(--sys-radius-panel);
  background: var(--sys-color-surface);
  color: var(--sys-color-text-primary);
}

.template-lab .lab-instrument--feature:hover {
  padding-left: clamp(var(--ref-space-32), 4vw, var(--ref-space-48));
  background: var(--ref-color-ink-850);
}

.template-lab .lab-instrument--feature .card-meta { color: var(--sys-color-accent); }
.template-lab .lab-instrument--feature .card-title {
  max-width: 10ch;
  margin: clamp(var(--ref-space-48), 6vw, var(--ref-space-72)) 0 var(--ref-space-24);
  color: var(--sys-color-text-primary);
  font-size: var(--sys-type-feature-title-size);
  font-weight: var(--sys-type-feature-title-weight);
  line-height: var(--sys-type-feature-title-leading);
  letter-spacing: var(--sys-type-feature-title-tracking);
}

.template-lab .lab-instrument--feature .card-summary {
  max-width: 38ch;
  color: var(--sys-color-text-secondary);
  font-size: var(--sys-type-lead-size);
  line-height: var(--sys-type-lead-leading);
}

.template-lab .lab-instrument--feature .card-action { color: var(--sys-color-link); }
.template-lab .lab-instrument--feature .card-action:hover { color: var(--sys-color-link-hover); }

.template-lab .lab-instrument__trace {
  width: 100%;
  height: 176px;
  margin-top: auto;
  overflow: visible;
}

.template-lab .lab-instrument__trace :is(path, circle) { vector-effect: non-scaling-stroke; }
.template-lab .lab-instrument__trace-track {
  fill: none;
  stroke: var(--sys-color-border-subtle);
  stroke-width: 1.5;
}
.template-lab .lab-instrument__trace-signal {
  fill: none;
  stroke: var(--sys-color-signal);
  stroke-width: 2;
}
.template-lab .lab-instrument__trace-nodes circle { fill: var(--sys-color-signal); }

.template-lab .lab-instrument--row {
  padding: clamp(var(--ref-space-24), 2.5vw, var(--ref-space-32));
  grid-column: 2;
  border-bottom: 0;
  border-radius: 0;
  background: var(--ref-color-warm-50);
}

.template-lab .lab-instrument--row:nth-child(2) {
  border-radius: var(--sys-radius-panel) var(--sys-radius-panel) 0 0;
}
.template-lab .lab-instrument--row:nth-child(4) {
  border-bottom: 1px solid var(--sys-color-border-subtle);
  border-radius: 0 0 var(--sys-radius-panel) var(--sys-radius-panel);
}

.template-lab .lab-instrument--row:hover { background: var(--ref-color-white); }

.template-lab .lab-instrument__mark,
.template-lab .lab-shelf__mark {
  position: absolute;
  top: var(--ref-space-24);
  right: var(--ref-space-24);
}

.template-lab .lab-instrument--row .card-title {
  max-width: 14ch;
  margin: var(--ref-space-32) 0 var(--ref-space-12);
  padding-right: var(--ref-space-48);
  font-size: var(--sys-type-compact-title-size);
  font-weight: var(--sys-type-compact-title-weight);
  line-height: var(--sys-type-compact-title-leading);
  letter-spacing: var(--sys-type-compact-title-tracking);
}

.template-lab .lab-instrument--row .card-summary {
  max-width: 42ch;
  font-size: var(--sys-type-small-size);
  line-height: var(--sys-type-small-leading);
}

.template-lab .lab-secondary {
  padding: 0 var(--sys-space-page-gutter) clamp(var(--ref-space-80), 9vw, var(--ref-space-128));
}

.template-lab .lab-secondary__intro,
.template-lab .lab-shelf {
  width: min(100%, calc(var(--sys-layout-page-max) - 2 * var(--sys-space-page-gutter)));
  margin-inline: auto;
}

.template-lab .lab-secondary__intro {
  padding-top: clamp(var(--ref-space-56), 7vw, var(--ref-space-88));
  border-top: 1px solid var(--sys-color-border-strong);
}

.template-lab .lab-secondary__intro h2 {
  max-width: 16ch;
  font-family: var(--sys-type-heading-family);
  font-size: var(--sys-type-section-title-size);
  font-weight: var(--sys-type-section-title-weight);
  line-height: var(--sys-type-section-title-leading);
  letter-spacing: var(--sys-type-section-title-tracking);
}

.template-lab .lab-secondary__intro p {
  max-width: 44ch;
  margin-top: var(--ref-space-20);
  color: var(--sys-color-text-secondary);
  font-size: var(--sys-type-body-size);
  line-height: var(--sys-type-body-leading);
}

.template-lab .lab-shelf {
  padding: var(--ref-space-40) 0 0;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  gap: var(--ref-space-20);
}

.template-lab .lab-shelf__item {
  min-height: 360px;
  padding: clamp(var(--ref-space-24), 3vw, var(--ref-space-40));
  border-radius: var(--sys-radius-panel);
  background: var(--ref-color-warm-50);
}

.template-lab .lab-shelf__item:hover { background: var(--ref-color-white); }
.template-lab .lab-shelf__item--development {
  background: color-mix(in srgb, var(--ref-color-brand-500) 11%, var(--ref-color-white));
}
.template-lab .lab-shelf__item--development:hover {
  background: color-mix(in srgb, var(--ref-color-brand-500) 15%, var(--ref-color-white));
}

.template-lab .lab-shelf__item .card-title {
  max-width: 13ch;
  margin: clamp(var(--ref-space-48), 5vw, var(--ref-space-64)) 0 var(--ref-space-16);
  padding-right: var(--ref-space-48);
  font-size: var(--sys-type-subsection-title-size);
  font-weight: var(--sys-type-subsection-title-weight);
  line-height: var(--sys-type-subsection-title-leading);
  letter-spacing: var(--sys-type-subsection-title-tracking);
}

@media (prefers-reduced-motion: no-preference) {
  .motion-ready .template-lab .lab-instrument__trace-wipe {
    transform: scaleX(0);
    transform-origin: left center;
  }

  .motion-ready .template-lab .lab-instrument--feature.is-visible .lab-instrument__trace-wipe {
    transform: scaleX(1);
    transition: transform var(--sys-motion-duration-reveal) var(--sys-motion-ease-out) var(--sys-motion-duration-state);
  }

  .motion-ready .template-lab .lab-instrument__trace-nodes {
    opacity: 0;
    transition: opacity var(--sys-motion-duration-emphasis) var(--sys-motion-ease-out) var(--sys-motion-duration-reveal);
  }

  .motion-ready .template-lab .lab-instrument--feature.is-visible .lab-instrument__trace-nodes { opacity: 1; }
}

@media (max-width: 960px) {
  .template-lab .lab-instruments {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
    row-gap: var(--ref-space-20);
  }

  .template-lab .lab-instrument--feature {
    min-height: 540px;
    grid-column: 1;
    grid-row: auto;
  }

  .template-lab .lab-instrument--row {
    min-height: 220px;
    grid-column: 1;
  }

  .template-lab .lab-shelf { grid-template-columns: minmax(0, 1fr); }
}

@media (width <= 680px) {
  .template-lab .lab-masthead {
    min-height: auto;
    padding-top: clamp(var(--ref-space-112), 34vw, var(--ref-space-128));
    padding-bottom: var(--ref-space-48);
  }

  .template-lab .lab-masthead h1 { max-width: 13ch; }
  .template-lab .lab-masthead .stand {
    margin-top: var(--ref-space-24);
    font-size: var(--sys-type-body-size);
  }

  .template-lab .collection-rail {
    min-height: 76px;
    padding-inline: var(--sys-space-page-gutter);
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .template-lab .collection-rail span {
    min-width: 0;
    padding-inline: var(--ref-space-12);
    display: grid;
    align-content: center;
    gap: var(--ref-space-4);
    line-height: 1.35;
  }

  .template-lab .collection-rail span:first-child { padding-left: 0; }
  .template-lab .collection-rail span:last-child { padding-right: 0; border-right: 0; }

  .template-lab .lab-instruments {
    padding-top: var(--ref-space-48);
    padding-bottom: var(--ref-space-80);
  }

  .template-lab .lab-instrument--feature {
    min-height: 500px;
    padding: var(--ref-space-32) var(--ref-space-24);
  }

  .template-lab .lab-instrument--feature:hover { padding-left: var(--ref-space-24); }
  .template-lab .lab-instrument--feature .card-title {
    margin-top: var(--ref-space-48);
    font-size: var(--sys-type-section-title-size);
    font-weight: var(--sys-type-section-title-weight);
    line-height: var(--sys-type-section-title-leading);
    letter-spacing: var(--sys-type-section-title-tracking);
  }
  .template-lab .lab-instrument--feature .card-summary {
    font-size: var(--sys-type-body-size);
    line-height: var(--sys-type-body-leading);
  }
  .template-lab .lab-instrument__trace { height: 120px; }

  .template-lab .lab-instrument--row {
    min-height: 238px;
    padding: var(--ref-space-24);
  }

  .template-lab .lab-instrument--row:hover { padding-left: var(--ref-space-24); }
  .template-lab .lab-instrument--row .card-title {
    max-width: 13ch;
    margin-top: var(--ref-space-32);
  }

  .template-lab .lab-secondary { padding-inline: var(--sys-space-page-gutter); }
  .template-lab .lab-secondary__intro { padding-top: var(--ref-space-56); }
  .template-lab .lab-secondary__intro h2 {
    font-size: var(--sys-type-feature-title-size);
    font-weight: var(--sys-type-feature-title-weight);
    line-height: var(--sys-type-feature-title-leading);
    letter-spacing: var(--sys-type-feature-title-tracking);
  }
  .template-lab .lab-shelf { padding-top: var(--ref-space-32); }
  .template-lab .lab-shelf__item {
    min-height: 320px;
    padding: var(--ref-space-24);
  }
  .template-lab .lab-shelf__item:hover { padding-left: var(--ref-space-24); }
  .template-lab .lab-shelf__item .card-title { margin-top: var(--ref-space-48); }
}

@media print {
  .feature-signal { display: none !important; }
}

/* Print: browsers omit backgrounds by default, so every ink band (home hero,
   soul band, closing band, footer, tool/proposition/article mastheads) would
   otherwise print its white-on-ink text invisibly on white paper. Flatten
   every surface to ink on paper, reveal deferred content, and drop
   screen-only chrome. */
@media print {
  * {
    background: transparent !important;
    border-color: var(--ref-color-ink-alpha-16) !important;
    color: var(--ref-color-ink-900) !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  *::before {
    background: transparent !important;
    box-shadow: none !important;
  }
  *::after {
    background: transparent !important;
    box-shadow: none !important;
  }
  .visual-mark::before { background: currentColor !important; }
  .template-home .hero,
  .template-article .article-hero,
  .template-proposition .proposition-hero,
  .template-collection .collection-hero,
  .template-tool .task-hero {
    min-height: 0;
    padding-top: var(--ref-space-128);
    padding-bottom: var(--ref-space-32);
  }
  .motion-ready [data-reveal] {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
  }
  .solv-site > header { position: static; }
  .skip,
  .nav-toggle,
  .template-home .hero-visual,
  .bench-illustration { display: none !important; }
}

/* Final reduced-motion cascade guard. */
@media (prefers-reduced-motion: reduce) {
  :where(*, *::before, *::after) {
    animation: none !important;
    scroll-behavior: auto !important;
    transition: none !important;
  }
}
