/* THE OPENING — shared overrides
   Canonical shared bundle — 2026-07-28.
*/

/* ===== intro.css ===== */

html.to-cover::before{content:'';position:fixed;inset:0;background:#000;z-index:10000}.to-intro{position:fixed;inset:0;z-index:10001;display:flex;align-items:center;justify-content:center;background:#000;opacity:1;transition:opacity .38s ease}.to-intro.to-out{opacity:0;pointer-events:none}.to-lockup{--D:2.1s;display:flex;align-items:flex-end;justify-content:center;color:var(--bone,#efebe1);text-transform:uppercase;font-family:var(--display,'Libre Franklin',sans-serif);font-weight:900;font-size:clamp(2.4rem,7vw,6rem);line-height:1;letter-spacing:-0.04em;white-space:nowrap}.to-dot{width:.13em;height:.13em;border-radius:50%;background:var(--signal,#FFC700);margin-right:.3em;align-self:center;opacity:0;animation:to-dot-in var(--D) forwards}.to-bracket{display:inline-block;position:relative;top:calc(var(--bk-lift,.05em) * -1)}.to-bracket.to-l{opacity:0;animation:to-fade var(--D) forwards;margin-right:.1em}.to-bracket.to-r{opacity:0;transform-origin:center center;animation:to-rot var(--D) forwards;margin-left:.14em}.to-wg{display:inline-flex;align-items:flex-end}.to-base{opacity:0;animation:to-fade var(--D) forwards}.to-reveal{display:inline-block;overflow:hidden;white-space:nowrap;max-width:0;opacity:0;animation:to-expand var(--D) cubic-bezier(.2,.8,.2,1) forwards}.to-space{display:inline-block;width:0;animation:to-space var(--D) cubic-bezier(.2,.8,.2,1) forwards}.to-lockup.to-quick{--D:1s}.to-lockup.to-quick .to-reveal{display:none}.to-lockup.to-quick .to-dot{display:none}.to-lockup.to-quick .to-space{animation:to-air var(--D) cubic-bezier(.2,.8,.2,1) forwards}.to-lockup.to-quick .to-bracket.to-l{animation:to-open-l var(--D) cubic-bezier(.2,.8,.2,1) forwards}.to-lockup.to-quick .to-bracket.to-r{animation:to-open-r var(--D) cubic-bezier(.2,.8,.2,1) forwards}@keyframes to-fade{0%{opacity:0}12%,100%{opacity:1}}@keyframes to-expand{0%,12%{max-width:0;opacity:0}50%,100%{max-width:4.6em;opacity:1}}@keyframes to-space{0%,12%{width:.04em}50%,100%{width:.2em}}@keyframes to-rot{0%{opacity:0}12%{opacity:1}54%{transform:rotate(0)}58%,100%{opacity:1;transform:rotate(6deg)}}@keyframes to-dot-in{0%,64%{opacity:0;transform:scale(.4)}76%,100%{opacity:1;transform:scale(1)}}@keyframes to-air{0%,22%{width:.04em}72%,100%{width:.18em}}@keyframes to-open-l{0%{opacity:0;margin-right:.02em}22%{opacity:1;margin-right:.02em}72%,100%{opacity:1;margin-right:.1em}}@keyframes to-open-r{0%{opacity:0;margin-left:.03em;transform:rotate(0)}22%{opacity:1;margin-left:.03em;transform:rotate(0)}66%{margin-left:.14em;transform:rotate(0)}72%,100%{opacity:1;margin-left:.14em;transform:rotate(6deg)}}


/* ===== audit-mode.css ===== */

html.audit-mode{scroll-behavior: auto;}html.audit-mode *,html.audit-mode *::before,html.audit-mode *::after{animation: none;transition: none;scroll-behavior: auto;}html.audit-mode :where(.rv,.rv-l,.rv-r,[data-reveal],[data-motion-layer]){opacity: 1;visibility: visible;transform: none;filter: none;}html.audit-mode :where(.vertical-cta,.progress){display: none;}html.audit-mode :where(.signal-marquee__track,.credits-track){animation: none;transform: none;}html.audit-mode .signal-marquee__group + .signal-marquee__group{display: none;}html.audit-mode body::after{display: none;}html.audit-mode .home-final .ep-entries.seq .ep-entry{opacity: 1;transform: none;}html.audit-mode .home-final .ep-entries::after{height: 100%;}html.audit-mode .home-final .ep-entry::before{border-color: var(--mark);background: var(--mark);}html.audit-mode .home-final .ep-entry::after{color: var(--mark);}html.audit-mode .operating-final .logic-scroll-container{height: auto;margin-block: clamp(3rem,7vw,7rem);}html.audit-mode .operating-final .logic-sticky{position: static;height: auto;min-height: 0;padding: 0;overflow: visible;}html.audit-mode .operating-final .logic-route{display: grid;gap: 0;}html.audit-mode .operating-final .logic-step,html.audit-mode .operating-final .logic-step.is-active,html.audit-mode .operating-final .logic-step.is-past,html.audit-mode .operating-final .logic-step.is-future{position: relative;inset: auto;display: grid;grid-template-columns: minmax(4.5rem,.18fr) minmax(0,1fr);align-items: baseline;gap: clamp(1.5rem,4vw,4.5rem);width: 100%;padding: clamp(1.8rem,3.4vw,3.5rem) 0;border-top: 1px solid rgba(239,235,225,.14);opacity: 1;visibility: visible;pointer-events: auto;text-align: left;transform: none;}html.audit-mode .operating-final .logic-step:first-child{border-top: 0;}html.audit-mode .operating-final .logic-no{margin: 0;color: var(--mark);font-size: clamp(1rem,1.5vw,1.35rem);}html.audit-mode .operating-final .logic-step h3{margin-bottom: .5rem;font-size: clamp(1.75rem,3.3vw,3.5rem);text-align: left;}html.audit-mode .operating-final .logic-step p{max-width: 64ch;margin: 0;}html.audit-mode .operating-final .credits-window{height: auto;overflow: visible;mask-image: none;-webkit-mask-image: none;}html.audit-mode .operating-final .credits-track,html.audit-mode .operating-final .credits-group{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: clamp(2rem,5vw,5rem);}html.audit-mode .operating-final .engagement{width: auto;margin: 0;padding: clamp(2rem,4vw,4rem) 0;}@media (max-width: 760px){html.audit-mode .operating-final .logic-step{grid-template-columns: 2.8rem minmax(0,1fr);gap: 1rem;}html.audit-mode .operating-final .credits-track,html.audit-mode .operating-final .credits-group{grid-template-columns: 1fr;}}@media print{*{animation: none;transition: none;-webkit-print-color-adjust: exact;print-color-adjust: exact;}:where(.rv,.rv-l,.rv-r,[data-reveal],[data-motion-layer]){opacity: 1;visibility: visible;transform: none;filter: none;}:where(.vertical-cta,.progress){display: none;}.signal-marquee__track,.credits-track{animation: none;transform: none;}.signal-marquee__group + .signal-marquee__group{display: none;}}


/* ===== accessibility.css ===== */

@layer accessibility{.topbar .brand-small,.topbar .nav-right a,.topbar .index-button,.index-close{min-height: 44px;}.topbar .brand-small,.topbar .nav-right a,.topbar .index-button,.index-close,.index-menu-foot a{display: inline-flex;align-items: center;}.topbar,.topbar .nav-right,.topbar .nav-right a,.topbar .index-button,.index-close,.index-menu-head,.index-menu-foot{font-size: 12px;line-height: 1.35;}.topbar .nav-right a{padding-block: 10px;}.index-menu-foot a{min-height: 32px;}.hero-field-note,.pb-meta,.rec,.rk,.rvl,.when,.wi-when,.outcome-no,.e-no,.fm-no,.fm-desc,.cover-fileline span,.manual-fileline span,.visual-interlude span,.visual-duo figcaption span,.text-link,.vertical-cta,.foot-label,.foot-meta,.foot-meta span,.foot-links,.foot-links a,.foot-socials,.foot-socials a,.foot .foot-email{font-size: 12px;line-height: 1.45;}.foot-links a,.foot-socials a,.foot .foot-email,.foot-meta a,.link-arrow,.text-link,.meta-email{min-height: 32px;display: inline-flex;align-items: center;}.vertical-cta{min-width: 44px;}.fm-field > label,.fm-status .tag{font-size: 12.5px;line-height: 1.4;}.fm-consent,.fm-alt,.fm-privacy,.fm-direct,.fm-status p{font-size: 12px;line-height: 1.55;}.fm-field .fm-opt{min-height: 44px;}.fm-field input:focus-visible,.fm-field textarea:focus-visible{outline: 2px solid var(--mark,#ffc700);outline-offset: 3px;}:where(a,button,input,textarea,select):focus-visible{scroll-margin: 96px;}@media (max-width: 980px){.topbar .nav-right .hide-sm{display: none;}}@media (max-width: 760px){.foot-links a,.foot-socials a,.foot .foot-email,.foot-meta a,.index-menu-foot a,.link-arrow,.text-link,.meta-email{min-height: 44px;}.hero-field-note,.pb-meta,.rec{font-size: 12px;line-height: 1.5;}}}footer.foot{display: grid;grid-template-columns: minmax(0,1.45fr) minmax(220px,0.8fr) minmax(220px,0.9fr);grid-template-areas: "identity links direct" "meta meta meta";gap: 0;margin: 0;padding: 0;border: 0;background: #050505;color: #f4f1ea;font-family: var(--mono,"IBM Plex Mono",monospace);font-size: 10px;font-weight: 500;letter-spacing: 0.1em;line-height: 1.4;text-transform: uppercase;}footer.foot .foot-identity,footer.foot .foot-links,footer.foot .foot-direct,footer.foot .foot-meta{box-sizing: border-box;min-width: 0;margin: 0;border: 0;background: transparent;}footer.foot .foot-identity{grid-area: identity;display: flex;flex-direction: column;justify-content: space-between;gap: 28px;min-height: 252px;padding: 34px 32px;border-right: 1px solid rgba(244,241,234,0.22);}footer.foot .brand-small{display: inline-flex;align-items: center;gap: 12px;width: fit-content;color: inherit;text-decoration: none;}footer.foot .brand-mark{display: block;width: 124px;max-width: 42vw;height: auto;filter: invert(1) grayscale(1) brightness(2);}footer.foot .foot-statement{max-width: 27ch;margin: 0;color: #f4f1ea;font-family: var(--type-human,var(--frank));font-size: clamp(1.25rem,2vw,1.85rem);font-style: normal;font-weight: 400;letter-spacing: -0.025em;line-height: 1.05;text-transform: none;}footer.foot .foot-links,footer.foot .foot-direct{display: flex;flex-direction: column;align-items: flex-start;justify-content: flex-start;gap: 14px;padding: 34px 30px;}footer.foot .foot-links{grid-area: links;border-right: 1px solid rgba(244,241,234,0.22);}footer.foot .foot-direct{grid-area: direct;}footer.foot a{color: #f4f1ea;text-decoration: none;}footer.foot .foot-links a{opacity: 0.72;}footer.foot .foot-links a.current,footer.foot .foot-links a[aria-current="page"],footer.foot a:hover,footer.foot a:focus-visible{opacity: 1;color: #f4f1ea;}footer.foot .foot-label{color: rgba(244,241,234,0.55);}footer.foot .foot-email{font-size: 12px;letter-spacing: 0.04em;text-transform: none;}footer.foot .foot-socials{display: flex;flex-wrap: wrap;gap: 12px 18px;margin-top: auto;}footer.foot .foot-socials a{display: inline-flex;gap: 5px;opacity: 0.72;}footer.foot .foot-meta{grid-area: meta;display: flex;align-items: center;justify-content: space-between;gap: 18px;padding: 16px 32px;border-top: 1px solid rgba(244,241,234,0.22);color: rgba(244,241,234,0.62);}@media (max-width: 820px){footer.foot{grid-template-columns: 1fr 1fr;grid-template-areas: "identity identity" "links direct" "meta meta";}footer.foot .foot-identity{min-height: 0;border-right: 0;border-bottom: 1px solid rgba(244,241,234,0.22);}}@media (max-width: 560px){footer.foot{display: block;}footer.foot .foot-identity,footer.foot .foot-links,footer.foot .foot-direct,footer.foot .foot-meta{padding: 28px 22px;border-right: 0;border-bottom: 1px solid rgba(244,241,234,0.22);}footer.foot .foot-links,footer.foot .foot-direct{gap: 16px;}footer.foot .foot-meta{flex-direction: column;align-items: flex-start;gap: 8px;border-bottom: 0;}}


/* ===== v19-layout-fixes.css ===== */

/* V19 layout correction layer — loaded last on every page. */

/* Desktop navigation: the overlay trigger belongs only to compact layouts. */
@media (min-width: 981px) {
  body .topbar .index-button {
    display: none !important;
  }

  body .topbar .nav-right .hide-sm {
    display: inline-flex !important;
  }
}

/* V19 motion recovery
   The cleanup bundle retained the animation declarations but dropped these
   shared keyframes. Keep them in the final, last-loaded component layer so
   English and Spanish pages use the same motion contract. */
@keyframes opening-marquee {
  to {
    transform: translate3d(-50%, 0, 0);
  }
}

@keyframes scrollCredits {
  0% {
    transform: translate3d(0, 0, 0);
  }

  100% {
    transform: translate3d(0, -50%, 0);
  }
}

@keyframes recordPulse {
  0%,
  100% {
    transform: scale(1);
    opacity: 1;
  }

  58% {
    transform: scale(0.72);
    opacity: 0.58;
  }
}

/* Restore the editorial entrances removed by the static cleanup rules.
   The head watchdog still makes everything visible if JavaScript fails. */
@media (prefers-reduced-motion: no-preference) {
  html.reveal-enhanced:not(.audit-mode)
    body
    :where(.rv, .rv-l, .rv-r):not(.in) {
    opacity: 0;
    transition:
      opacity 560ms cubic-bezier(0.16, 1, 0.3, 1),
      transform 560ms cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, transform;
  }

  html.reveal-enhanced:not(.audit-mode) body .rv:not(.in) {
    transform: translate3d(0, 22px, 0);
  }

  html.reveal-enhanced:not(.audit-mode) body .rv-l:not(.in) {
    transform: translate3d(-20px, 0, 0);
  }

  html.reveal-enhanced:not(.audit-mode) body .rv-r:not(.in) {
    transform: translate3d(20px, 0, 0);
  }

  html.reveal-enhanced:not(.audit-mode) body :where(.rv, .rv-l, .rv-r).in {
    opacity: 1;
    transform: none;
    transition:
      opacity 560ms cubic-bezier(0.16, 1, 0.3, 1),
      transform 560ms cubic-bezier(0.16, 1, 0.3, 1);
  }

  html.reveal-enhanced:not(.audit-mode) body .rv-d1 {
    transition-delay: 70ms;
  }

  html.reveal-enhanced:not(.audit-mode) body .rv-d2 {
    transition-delay: 140ms;
  }

  html.reveal-enhanced:not(.audit-mode) body .rv-d3 {
    transition-delay: 210ms;
  }

  html.reveal-enhanced:not(.audit-mode) body .rv-d4 {
    transition-delay: 280ms;
  }
}

@media (prefers-reduced-motion: reduce), print {
  .signal-marquee__track,
  .credits-track,
  .brand-small::before {
    animation: none;
    transform: none;
  }
}

/* Home hero field line: one deliberate line in both languages. */
.home-final .hero-side .signal-plate {
  display: inline-flex;
  width: max-content;
  max-width: none;
  white-space: nowrap !important;
  font-size: clamp(0.48rem, 0.72vw, 0.68rem);
  letter-spacing: 0.095em;
  line-height: 1;
}

@media (max-width: 760px) {
  .home-final .hero-side .signal-plate {
    font-size: clamp(0.43rem, 2.05vw, 0.58rem);
    letter-spacing: 0.055em;
  }
}

/* First Move: editorial correspondence, not a control-room interface. */
body.first-move-page .fm-grid {
  padding-block: clamp(76px, 9vw, 126px);
  background: #efebe1;
  color: #0a0a0a;
}

body.first-move-page .fm-grid .wrap {
  align-items: start;
  grid-template-columns: minmax(250px, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(46px, 7vw, 104px);
}

body.first-move-page .fm-aside {
  position: sticky;
  top: 110px;
  padding-top: 8px;
}

body.first-move-page .fm-aside > p {
  color: rgba(10, 10, 10, 0.76);
  font-family: var(--frank);
  font-size: clamp(1.1rem, 1.45vw, 1.34rem);
  line-height: 1.48;
}

body.first-move-page .fm-paths {
  margin-top: clamp(34px, 4vw, 52px);
  border-top: 1px solid rgba(10, 10, 10, 0.24);
}

body.first-move-page .fm-path {
  padding: 18px 0;
  border-bottom: 1px solid rgba(10, 10, 10, 0.16);
}

body.first-move-page .fm-path .t {
  color: #0a0a0a;
}

body.first-move-page .fm-path .d {
  color: rgba(10, 10, 10, 0.62);
}

body.first-move-page .fm-formwrap {
  position: relative;
  overflow: hidden;
  padding: clamp(30px, 4vw, 56px);
  border: 1px solid rgba(10, 10, 10, 0.2);
  border-radius: 0;
  background: #f8f7f2;
  color: #0a0a0a;
  box-shadow: 14px 14px 0 #ffc700;
}

body.first-move-page .fm-formwrap::after {
  display: none;
}

body.first-move-page .fm-spine {
  display: flex;
  justify-content: space-between;
  gap: 22px;
  margin: 0 0 clamp(34px, 4vw, 52px);
  padding: 0 0 16px;
  border: 0;
  border-bottom: 2px solid #0a0a0a;
  background: transparent;
}

body.first-move-page .fm-spine .fm-no {
  color: #0a0a0a;
}

body.first-move-page .fm-spine .fm-desc {
  color: rgba(10, 10, 10, 0.58);
  text-align: right;
}

body.first-move-page .fm-field {
  margin-bottom: clamp(26px, 3vw, 38px);
}

body.first-move-page .fm-field label {
  color: rgba(10, 10, 10, 0.72);
}

body.first-move-page .fm-field input,
body.first-move-page .fm-field textarea {
  padding: 13px 0 12px;
  border: 0;
  border-bottom: 1px solid rgba(10, 10, 10, 0.36);
  border-radius: 0;
  background: transparent;
  color: #0a0a0a;
  box-shadow: none;
}

body.first-move-page .fm-field input::placeholder,
body.first-move-page .fm-field textarea::placeholder {
  color: rgba(10, 10, 10, 0.42);
}

body.first-move-page .fm-field input:focus,
body.first-move-page .fm-field textarea:focus {
  border-color: #0a0a0a;
  background: transparent;
  box-shadow: 0 2px 0 #ffc700;
}

body.first-move-page .fm-opts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid rgba(10, 10, 10, 0.24);
}

body.first-move-page .fm-field .fm-opt {
  min-height: 74px;
  margin: 0;
  padding: 14px 14px 14px 0;
  border: 0;
  border-bottom: 1px solid rgba(10, 10, 10, 0.18);
  border-radius: 0;
  background: transparent;
}

body.first-move-page .fm-field .fm-opt:nth-child(odd) {
  padding-right: 22px;
  border-right: 1px solid rgba(10, 10, 10, 0.18);
}

body.first-move-page .fm-field .fm-opt:nth-child(even) {
  padding-left: 22px;
}

body.first-move-page .fm-opt::before {
  width: 12px;
  height: 12px;
  flex-basis: 12px;
  border: 1px solid rgba(10, 10, 10, 0.48);
  border-radius: 0;
}

body.first-move-page .fm-opt span {
  color: rgba(10, 10, 10, 0.72);
}

body.first-move-page .fm-opt:hover,
body.first-move-page .fm-opt:has(input:checked) {
  background: transparent;
  border-color: rgba(10, 10, 10, 0.18);
}

body.first-move-page .fm-opt:hover span,
body.first-move-page .fm-opt:has(input:checked) span {
  color: #0a0a0a;
}

body.first-move-page .fm-consent,
body.first-move-page .fm-alt {
  color: rgba(10, 10, 10, 0.58);
}

body.first-move-page .fm-consent {
  padding-left: 14px;
  border-left: 3px solid #ffc700;
}

body.first-move-page .fm-consent a,
body.first-move-page .fm-alt a {
  color: #0a0a0a;
  border-bottom-color: rgba(10, 10, 10, 0.4);
}

body.first-move-page .fm-submit {
  border: 1px solid #0a0a0a;
  border-radius: 0;
  background: #0a0a0a;
  color: #f8f7f2;
  box-shadow: none;
}

body.first-move-page .fm-submit:hover {
  border-color: #0a0a0a;
  background: #ffc700;
  color: #0a0a0a;
}

body.first-move-page .fm-error {
  padding: 16px 0;
  border-top: 1px solid #b64124;
  color: #8d2f1a;
}

body.first-move-page .fm-status.is-on {
  display: grid;
  min-height: 430px;
  align-content: center;
  padding: clamp(34px, 5vw, 68px) 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

body.first-move-page .fm-status .tag {
  color: rgba(10, 10, 10, 0.62);
}

body.first-move-page .fm-status .tag::before {
  width: 28px;
  height: 3px;
  border-radius: 0;
  background: #ffc700;
}

body.first-move-page .fm-status h2 {
  max-width: 9ch;
  margin-bottom: 28px;
  color: #0a0a0a;
  font-family: var(--frank);
  font-size: clamp(2.8rem, 6vw, 5.6rem);
  font-style: italic;
  font-weight: 500;
  line-height: 0.92;
  letter-spacing: -0.04em;
  text-transform: none;
}

body.first-move-page .fm-status p {
  max-width: 42ch;
  color: rgba(10, 10, 10, 0.72);
}

/* Practice cover: preserve the complete editorial composition. */
body.practice-final .manual-cover {
  min-height: 100svh;
  align-items: end;
  padding: clamp(108px, 12vh, 138px) 0 clamp(54px, 6vh, 76px);
}

body.practice-final .manual-grid {
  grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
  align-items: end;
  gap: clamp(38px, 6vw, 90px);
}

body.practice-final .manual-cover h1 {
  max-width: 10.8ch;
  font-size: clamp(3.45rem, 5.8vw, 6.35rem);
  line-height: 0.86;
}

body.practice-final .manual-sub {
  max-width: 52ch;
  margin-top: clamp(24px, 3vh, 38px);
  font-size: clamp(1rem, 1.18vw, 1.2rem);
  line-height: 1.48;
}

body.practice-final .manual-note {
  align-self: end;
  margin-bottom: 2px;
  padding: 22px 24px;
  border-left: 4px solid #ffc700;
  background: rgba(3, 3, 3, 0.78);
}

/* From Signal to Judgment: legible sequence instead of oversized overflow. */
body.practice-final .pressure-test {
  min-height: auto;
  padding-block: clamp(92px, 10vw, 144px);
}

body.practice-final .pressure-test .wrap {
  padding-block: 0;
}

body.practice-final .pressure-test .h-display {
  max-width: 14ch;
  font-size: clamp(2.8rem, 4.8vw, 5.25rem);
}

body.practice-final .pressure-copy {
  max-width: 58ch;
  font-size: clamp(1rem, 1.16vw, 1.16rem);
}

body.practice-final .conditions.conditions-composed {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 34px !important;
  max-width: 980px;
  margin: clamp(48px, 6vw, 78px) 0 0 !important;
  font-family: var(--display);
  font-size: clamp(1.35rem, 2.3vw, 2.35rem) !important;
  font-weight: 800;
  line-height: 1.02 !important;
  letter-spacing: -0.025em !important;
}

body.practice-final .conditions-composed .conditions-row {
  display: contents !important;
}

body.practice-final .conditions-composed span {
  display: block;
  min-width: 0;
  padding: 18px 0 20px;
  border-top: 1px solid rgba(239, 235, 225, 0.3);
  color: rgba(239, 235, 225, 0.72) !important;
  text-wrap: balance;
}

body.practice-final .conditions-composed .is-mark {
  color: #ffc700 !important;
}

body.practice-final .pressure-end {
  margin-top: clamp(42px, 5vw, 70px);
}

body.practice-final .field-reading .section-head {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(280px, 0.7fr);
  align-items: end;
  gap: clamp(42px, 7vw, 100px);
}

body.practice-final .field-reading .section-intro {
  margin: 0 0 4px;
}

body.practice-final .observation-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.practice-final .observation h3 {
  text-wrap: balance;
}

/* Dossier / origin: an editorial spread instead of a technical text box. */
body.dossier-final .origin {
  padding-block: clamp(108px, 12vw, 168px);
  overflow: hidden;
}

body.dossier-final .origin > .wrap {
  width: min(1320px, calc(100% - var(--pad) * 2));
}

body.dossier-final .origin-head {
  display: grid;
  width: 100%;
  max-width: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: clamp(58px, 7vw, 112px);
}

body.dossier-final .origin-head > :first-child {
  position: sticky;
  top: 112px;
  min-width: 0;
}

body.dossier-final .origin .kicker {
  margin-bottom: clamp(24px, 3vw, 36px);
}

body.dossier-final .origin h2 {
  max-width: none;
  margin: 0;
  padding: 0;
  font-size: clamp(3rem, 4vw, 4.75rem);
  line-height: 0.92;
  letter-spacing: -0.045em;
  text-wrap: initial;
}

body.dossier-final .origin-title-line {
  display: block;
  overflow: visible;
}

body.dossier-final .origin-title-line + .origin-title-line {
  margin-top: 0.08em;
}

body.dossier-final .origin-title-line--accent {
  max-width: 12ch;
  margin-top: 0.2em !important;
  color: #f8f7f2;
  font-size: 0.76em;
  line-height: 0.98;
  letter-spacing: -0.02em;
}

body.dossier-final .origin-axis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 600px;
  margin-top: clamp(42px, 5vw, 68px);
  border-top: 1px solid rgba(239, 235, 225, 0.24);
}

body.dossier-final .origin-axis span {
  display: grid;
  gap: 7px;
  padding: 16px 12px 0 0;
  color: rgba(239, 235, 225, 0.62);
  font: 600 10px/1.35 var(--mono);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body.dossier-final .origin-axis b {
  color: #ffc700;
  font-weight: 600;
}

body.dossier-final .origin-copy {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 clamp(30px, 3.4vw, 52px);
  min-width: 0;
  padding: clamp(54px, 5.4vw, 76px) clamp(38px, 4.6vw, 66px) 0;
  border: 0;
  border-radius: 0;
  background: #efebe1;
  color: #0a0a0a;
  box-shadow: 12px 12px 0 #ffc700;
}

body.dossier-final .origin-copy::before {
  content: "FIELD NOTE / 02";
  position: absolute;
  top: 22px;
  left: clamp(38px, 4.6vw, 66px);
  color: rgba(10, 10, 10, 0.52);
  font: 650 9px/1 var(--mono);
  letter-spacing: 0.18em;
}

html:where(:lang(es))[lang="es"] body.dossier-final .origin-copy::before {
  content: "NOTA DE CAMPO / 02";
}

body.dossier-final .origin-copy > p {
  margin: 0;
  color: rgba(10, 10, 10, 0.76);
  font: 450 clamp(0.95rem, 1vw, 1.08rem)/1.66 var(--mono);
  letter-spacing: 0;
}

body.dossier-final .origin-copy > p:first-child {
  grid-column: 1 / -1;
  margin-bottom: clamp(32px, 4vw, 52px);
  padding-bottom: clamp(28px, 3.4vw, 42px);
  border-bottom: 1px solid rgba(10, 10, 10, 0.18);
  color: #0a0a0a;
  font-family: var(--frank);
  font-size: clamp(1.3rem, 1.62vw, 1.7rem);
  font-style: normal;
  font-weight: 500;
  line-height: 1.42;
}

body.dossier-final .origin-copy > p:nth-child(2),
body.dossier-final .origin-copy > p:nth-child(3) {
  padding-bottom: clamp(34px, 4vw, 50px);
}

body.dossier-final .origin-copy .origin-pull {
  grid-column: 1 / -1;
  margin: 0 clamp(-66px, -4.6vw, -38px);
  padding: clamp(28px, 3.6vw, 44px) clamp(38px, 4.6vw, 66px);
  background: #0a0a0a;
  color: #efebe1;
  font-family: var(--frank);
  font-size: clamp(1.18rem, 1.5vw, 1.5rem);
  font-style: italic;
  font-weight: 450;
  line-height: 1.45;
}

body.dossier-final .origin-copy .origin-pull b {
  color: #ffc700;
  font-style: normal;
  font-weight: 700;
}

@media (max-width: 980px) {
  body.dossier-final .origin-head {
    grid-template-columns: 1fr;
    gap: 58px;
  }

  body.dossier-final .origin-head > :first-child {
    position: static;
  }

  body.dossier-final .origin h2 {
    max-width: 12ch;
  }
}

@media (max-width: 620px) {
  body.dossier-final .origin {
    padding-block: 86px;
  }

  body.dossier-final .origin h2 {
    max-width: 11ch;
    font-size: clamp(2.65rem, 12vw, 3.65rem);
    line-height: 0.95;
  }

  body.dossier-final .origin-title-line--accent {
    max-width: 10ch;
    font-size: 0.78em;
  }

  body.dossier-final .origin-axis {
    margin-top: 36px;
  }

  body.dossier-final .origin-axis span {
    padding-right: 6px;
    font-size: 8px;
    letter-spacing: 0.08em;
  }

  body.dossier-final .origin-copy {
    display: block;
    padding: 52px 24px 0;
    box-shadow: 7px 7px 0 #ffc700;
  }

  body.dossier-final .origin-copy::before {
    top: 19px;
    left: 24px;
  }

  body.dossier-final .origin-copy > p:first-child {
    margin-bottom: 28px;
    padding-bottom: 26px;
    font-size: 1.25rem;
  }

  body.dossier-final .origin-copy > p:nth-child(2),
  body.dossier-final .origin-copy > p:nth-child(3) {
    padding-bottom: 28px;
  }

  body.dossier-final .origin-copy .origin-pull {
    margin-inline: -24px;
    padding: 28px 24px 32px;
  }
}

/* Editorial footer system shared by every English and Spanish page. */
body footer.foot {
  --foot-black: #050505;
  --foot-bone: #efebe1;
  --foot-yellow: #ffc700;
  --foot-line: rgba(239, 235, 225, 0.16);
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 1.42fr) minmax(340px, 0.58fr);
  grid-template-areas:
    "identity direct"
    "links meta";
  width: 100%;
  min-height: 0;
  margin: 0;
  padding: 0;
  gap: 0;
  overflow: hidden;
  border: 0;
  border-top: 1px solid var(--foot-line);
  background: var(--foot-black);
  color: var(--foot-bone);
}

body footer.foot::before {
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  z-index: 3;
  width: clamp(74px, 9vw, 138px);
  height: 4px;
  background: var(--foot-yellow);
}

body footer.foot .foot-identity,
body footer.foot .foot-links,
body footer.foot .foot-direct,
body footer.foot .foot-meta {
  min-width: 0;
  margin: 0;
  box-sizing: border-box;
}

body footer.foot .foot-identity {
  position: relative;
  grid-area: identity;
  display: grid;
  align-content: space-between;
  gap: 0;
  min-height: clamp(145px, 10vw, 160px);
  padding: clamp(16px, 1.5vw, 20px) var(--pad) clamp(17px, 1.7vw, 22px);
  overflow: hidden;
  background: var(--foot-black);
}

body footer.foot .foot-identity::before {
  content: "THE OPENING / STRATEGIC BUREAU";
  display: block;
  margin-bottom: clamp(7px, 0.8vw, 10px);
  color: rgba(239, 235, 225, 0.48);
  font: 650 10px/1.3 var(--mono, "IBM Plex Mono", monospace);
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

body footer.foot .foot-identity::after {
  content: "[ FIELD NOTE / 2026 ]";
  position: absolute;
  right: clamp(28px, 4vw, 64px);
  bottom: clamp(17px, 1.7vw, 22px);
  color: rgba(239, 235, 225, 0.34);
  font: 600 9px/1.2 var(--mono, "IBM Plex Mono", monospace);
  letter-spacing: 0.14em;
}

html:lang(es) body footer.foot .foot-identity::before {
  content: "THE OPENING / BURÓ ESTRATÉGICO";
}

html:lang(es) body footer.foot .foot-identity::after {
  content: "[ NOTA DE CAMPO / 2026 ]";
}

body footer.foot .foot-identity .brand-small {
  display: none !important;
}

body footer.foot .foot-statement {
  position: relative;
  z-index: 1;
  max-width: 18ch;
  margin: 0;
  color: #f8f7f2;
  font: 820 clamp(1.45rem, 1.8vw, 2.1rem)/0.94 var(--display, "Libre Franklin", Arial, sans-serif);
  letter-spacing: -0.04em;
  text-wrap: balance;
  text-transform: uppercase;
}

body footer.foot .foot-direct {
  grid-area: direct;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 0;
  min-height: clamp(145px, 10vw, 160px);
  padding: clamp(17px, 1.7vw, 22px) clamp(30px, 4.2vw, 64px);
  background: var(--foot-yellow);
  color: var(--foot-black);
}

body footer.foot .foot-label {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: clamp(8px, 0.8vw, 10px);
  color: rgba(5, 5, 5, 0.62);
  font: 750 10px/1 var(--mono, "IBM Plex Mono", monospace);
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

body footer.foot .foot-label::before {
  content: "";
  width: 9px;
  height: 9px;
  flex: 0 0 9px;
  background: var(--foot-black);
}

body footer.foot .foot-email {
  display: inline-block;
  width: fit-content;
  max-width: 100%;
  margin: 0;
  padding-bottom: 0;
  color: var(--foot-black);
  background: none;
  font: 820 clamp(1.25rem, 1.65vw, 1.85rem)/1 var(--display, "Libre Franklin", Arial, sans-serif);
  letter-spacing: -0.035em;
  overflow-wrap: anywhere;
  text-decoration: none;
  text-transform: none;
  transition: opacity 160ms ease;
}

body footer.foot .foot-email:hover,
body footer.foot .foot-email:focus-visible {
  color: var(--foot-black);
  opacity: 0.58;
}

body footer.foot .foot-email::after {
  content: none;
  display: none;
}

body footer.foot .foot-socials {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  margin-top: clamp(10px, 1vw, 13px);
}

body footer.foot .foot-socials a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgba(5, 5, 5, 0.72);
  font: 750 10px/1.2 var(--mono, "IBM Plex Mono", monospace);
  letter-spacing: 0.1em;
  text-decoration: none;
  text-transform: uppercase;
  transition: opacity 160ms ease;
}

body footer.foot .foot-socials a::before {
  content: "";
  display: block;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  border: 0;
  background-color: currentColor;
  background-image: none;
  background-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}

body footer.foot .foot-socials a[href*="instagram"]::before {
  background-image: none;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='3' width='18' height='18' rx='5' fill='none' stroke='black' stroke-width='2'/%3E%3Ccircle cx='12' cy='12' r='4' fill='none' stroke='black' stroke-width='2'/%3E%3Ccircle cx='17.4' cy='6.6' r='1.2' fill='black'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='3' width='18' height='18' rx='5' fill='none' stroke='black' stroke-width='2'/%3E%3Ccircle cx='12' cy='12' r='4' fill='none' stroke='black' stroke-width='2'/%3E%3Ccircle cx='17.4' cy='6.6' r='1.2' fill='black'/%3E%3C/svg%3E");
}

body footer.foot .foot-socials a[href*="linkedin"]::before {
  background-image: none;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='5' cy='5' r='2.2' fill='black'/%3E%3Cpath fill='black' d='M3 9h4v12H3zM10 9h3.8v1.8c1.1-1.5 2.5-2.2 4.2-2.2 3.1 0 4.5 2 4.5 5.5V21h-4v-6.2c0-1.8-.6-2.8-2.1-2.8-1.6 0-2.4 1.1-2.4 3.2V21h-4z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='5' cy='5' r='2.2' fill='black'/%3E%3Cpath fill='black' d='M3 9h4v12H3zM10 9h3.8v1.8c1.1-1.5 2.5-2.2 4.2-2.2 3.1 0 4.5 2 4.5 5.5V21h-4v-6.2c0-1.8-.6-2.8-2.1-2.8-1.6 0-2.4 1.1-2.4 3.2V21h-4z'/%3E%3C/svg%3E");
}

body footer.foot .foot-socials a:hover,
body footer.foot .foot-socials a:focus-visible {
  color: var(--foot-black);
  opacity: 0.58;
}

body footer.foot .foot-socials a span {
  display: none;
}

body footer.foot .foot-links {
  grid-area: links;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  align-items: center;
  gap: 14px clamp(18px, 2.4vw, 38px);
  min-height: 46px;
  padding: 9px var(--pad);
  border-top: 1px solid var(--foot-line);
  background: var(--foot-black);
}

body footer.foot .foot-links a {
  position: relative;
  width: fit-content;
  padding-block: 2px;
  color: rgba(239, 235, 225, 0.58);
  font: 700 10px/1.2 var(--mono, "IBM Plex Mono", monospace);
  letter-spacing: 0.1em;
  text-decoration: none;
  text-transform: uppercase;
  transition: color 180ms ease;
}

body footer.foot .foot-links a::before {
  content: none;
  display: none;
}

body footer.foot .foot-links a:hover,
body footer.foot .foot-links a:focus-visible,
body footer.foot .foot-links a.current,
body footer.foot .foot-links a[aria-current="page"] {
  color: var(--foot-yellow);
}

body footer.foot .foot-meta {
  grid-area: meta;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 46px;
  padding: 9px clamp(30px, 4.2vw, 64px);
  border-top: 1px solid var(--foot-line);
  border-left: 1px solid var(--foot-line);
  background: var(--foot-black);
  color: rgba(239, 235, 225, 0.42);
  font: 600 9px/1.35 var(--mono, "IBM Plex Mono", monospace);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
}

body footer.foot .foot-meta span {
  white-space: nowrap;
}

body footer.foot .foot-meta span:first-child::after {
  content: "·";
  margin-left: 12px;
  color: var(--foot-yellow);
}

@media (max-width: 900px) {
  body.first-move-page .fm-grid .wrap,
  body.practice-final .manual-grid,
  body.practice-final .field-reading .section-head {
    grid-template-columns: 1fr;
  }

  body.first-move-page .fm-aside {
    position: static;
  }

  body.practice-final .manual-note {
    max-width: 520px;
  }

  body.practice-final .observation-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body footer.foot {
    grid-template-columns: 1fr;
    grid-template-areas:
      "identity"
      "direct"
      "links"
      "meta";
  }

  body footer.foot .foot-identity,
  body footer.foot .foot-direct {
    min-height: 0;
  }

  body footer.foot .foot-identity {
    padding-block: 18px 20px;
  }

  body footer.foot .foot-identity::before {
    margin-bottom: 8px;
  }

  body footer.foot .foot-direct {
    padding-block: 18px 20px;
  }

  body footer.foot .foot-links {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body footer.foot .foot-meta {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    padding-inline: var(--pad);
    border-left: 0;
  }
}

@media (max-width: 620px) {
  body.first-move-page .fm-formwrap {
    padding: 26px 20px;
    box-shadow: 7px 7px 0 #ffc700;
  }

  body.first-move-page .fm-opts,
  body.practice-final .conditions.conditions-composed,
  body.practice-final .observation-grid {
    grid-template-columns: 1fr;
  }

  body.first-move-page .fm-field .fm-opt:nth-child(odd),
  body.first-move-page .fm-field .fm-opt:nth-child(even) {
    padding-inline: 0;
    border-right: 0;
  }

  body.practice-final .manual-cover {
    padding-top: 104px;
  }

  body.practice-final .manual-cover h1 {
    font-size: clamp(2.75rem, 12vw, 4.1rem);
  }

  body footer.foot .foot-identity {
    padding: 18px 22px 20px;
  }

  body footer.foot .foot-identity::before {
    margin-bottom: 8px;
  }

  body footer.foot .foot-identity::after {
    display: none;
  }

  body footer.foot .foot-statement {
    max-width: 15ch;
    font-size: clamp(1.55rem, 7.6vw, 2.15rem);
  }

  body footer.foot .foot-direct {
    padding: 18px 22px 20px;
  }

  body footer.foot .foot-label {
    margin-bottom: 10px;
  }

  body footer.foot .foot-email {
    font-size: clamp(1.25rem, 6.4vw, 1.72rem);
  }

  body footer.foot .foot-socials {
    margin-top: 12px;
  }

  body footer.foot .foot-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px 18px;
    min-height: 0;
    padding: 14px 22px;
  }

  body footer.foot .foot-meta {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    min-height: 0;
    padding: 12px 22px;
    font-size: 8px;
    letter-spacing: 0.08em;
  }

  body footer.foot .foot-meta span:first-child::after {
    margin-left: 8px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body footer.foot .foot-email,
  body footer.foot .foot-socials a,
  body footer.foot .foot-links a,
  body footer.foot .foot-links a::before {
    transition: none;
  }
}

/* Section labels: compact pilot-style signal line. */
body main section:not(.hero) .kicker {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 11px;
}

body main section:not(.hero) .kicker::before {
  width: 17px;
  height: 2px;
  flex: 0 0 17px;
  border: 0;
  border-radius: 0;
  background: var(--mark, #ffc700);
  -webkit-mask: none;
  mask: none;
  animation: none;
  transform: none;
}

/* Human voice: larger handwritten accents, kept outside long-form copy. */
:root {
  --hand-accent-large: clamp(2rem, 2.8vw, 3rem);
  --hand-accent-medium: clamp(1.9rem, 2.45vw, 2.65rem);
  --hand-accent-long: clamp(1.55rem, 1.8vw, 2rem);
}

body.home-final .hero-hand,
body.home-final .ep-head::before,
body.dossier-final .cover-hand {
  font-family: var(--hand, "Nothing You Could Do", cursive);
  font-size: var(--hand-accent-large);
  font-weight: 400;
  letter-spacing: 0;
}

body.home-final .problem .hand-accent,
body.home-final .closing-tag,
body.operating-final.hybrid-brooklyn main .engagement-note,
body.practice-final.hybrid-brooklyn main .pressure-end {
  font-family: var(--hand, "Nothing You Could Do", cursive);
  font-size: var(--hand-accent-medium);
  font-style: normal;
  font-weight: 400;
  line-height: 1.16;
  letter-spacing: 0;
  text-transform: none;
}

body.home-final.hybrid-brooklyn main .friction-manifesto__note {
  font-family: var(--hand, "Nothing You Could Do", cursive);
  font-size: var(--hand-accent-long);
  font-style: normal;
  font-weight: 400;
  line-height: 1.22;
  letter-spacing: 0;
  text-transform: none;
}

@media (max-width: 760px) {
  :root {
    --hand-accent-large: clamp(1.9rem, 9vw, 2.45rem);
    --hand-accent-medium: clamp(1.7rem, 8vw, 2.2rem);
    --hand-accent-long: clamp(1.4rem, 6.5vw, 1.8rem);
  }
}

/* Editorial emphasis remains inside the Franklin system. */
body main :is(.serif-em, .serif-word, .display-serif, .editorial-hit),
body.hybrid-brooklyn main :is(.serif-em, .serif-word, .display-serif, .editorial-hit) {
  font-family: var(--frank, "Libre Franklin", Arial, sans-serif);
}

/* THE OPENING — final art-direction color system v1.
   Typography, layout, imagery and motion remain unchanged. */
:root {
  --to-bone: #efebe1;
  --to-soft-white: #f8f8f5;
  --to-black: #0a0a0a;
  --to-graphite: #171717;
  --to-utility-black: #000000;
  --to-signal-yellow: #ffc700;

  --to-text-on-light: var(--to-black);
  --to-text-on-dark: var(--to-soft-white);
  --to-text-editorial-on-dark: var(--to-bone);
  --to-rule-on-light: rgba(10, 10, 10, 0.16);
  --to-rule-on-dark: rgba(248, 248, 245, 0.18);
  --to-panel-on-light: rgba(10, 10, 10, 0.035);
  --to-panel-on-dark: rgba(248, 248, 245, 0.055);
  --to-focus-ring: var(--to-signal-yellow);

  /* Compatibility aliases for the existing component system. */
  --night: var(--to-black);
  --black: var(--to-black);
  --white: var(--to-soft-white);
  --white-premium: var(--to-soft-white);
  --bone: var(--to-bone);
  --paper: var(--to-bone);
  --ink: var(--to-black);
  --yellow: var(--to-signal-yellow);
  --mark: var(--to-signal-yellow);
  --signal: var(--to-signal-yellow);
  --decision: var(--to-signal-yellow);
  --muted: rgba(248, 248, 245, 0.72);
  --soft: rgba(248, 248, 245, 0.58);
  --line: var(--to-rule-on-dark);
  --paper-line: var(--to-rule-on-light);
  --oled: var(--to-utility-black);
  --to-oled: var(--to-utility-black);
  --to-white: var(--to-soft-white);
  --to-yellow: var(--to-signal-yellow);
}

body.site-final,
body.first-move-page {
  --final-black: var(--to-black);
  --final-ink: var(--to-black);
  --final-white: var(--to-soft-white);
  --final-bone: var(--to-bone);
  --final-yellow: var(--to-signal-yellow);
  --hybrid-black: var(--to-black);
  --hybrid-bone: var(--to-bone);
  --hybrid-yellow: var(--to-signal-yellow);
  --visual-black: var(--to-black);
  --visual-bone: var(--to-bone);
  --visual-yellow: var(--to-signal-yellow);
}

body.home-final {
  --narrative-black: var(--to-black);
  --narrative-deep-black: var(--to-graphite);
  --narrative-bone: var(--to-bone);
  --narrative-yellow: var(--to-signal-yellow);
  --restoration-black: var(--to-graphite);
  --restoration-bone: var(--to-bone);
  --restoration-mark: var(--to-signal-yellow);
  --home-polish-black: var(--to-black);
  --home-polish-bone: var(--to-bone);
  --home-polish-yellow: var(--to-signal-yellow);
}

:focus-visible {
  outline-color: var(--to-focus-ring);
}

/* Shared institutional darks. Absolute black remains limited to overlays. */
html,
body,
body footer.foot,
body footer.foot .foot-identity,
body footer.foot .foot-links,
body footer.foot .foot-meta {
  background-color: var(--to-black);
}

body footer.foot {
  color: var(--to-bone);
}

body footer.foot .foot-statement {
  color: var(--to-soft-white);
}

body footer.foot .foot-direct {
  background: var(--to-signal-yellow);
  color: var(--to-black);
}

body footer.foot :is(.foot-label, .foot-email, .foot-socials a) {
  color: var(--to-black);
}

body footer.foot :is(.foot-label::before, .foot-email::after) {
  background-color: var(--to-black);
}

body footer.foot .foot-socials a[href*="instagram"]::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%230A0A0A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='20' x='2' y='2' rx='5' ry='5'/%3E%3Cpath d='M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z'/%3E%3Cpath d='M17.5 6.5h.01'/%3E%3C/svg%3E");
}

body footer.foot .foot-socials a[href*="linkedin"]::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%230A0A0A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-4 0v7h-4v-7a6 6 0 0 1 6-6z'/%3E%3Crect width='4' height='12' x='2' y='9'/%3E%3Ccircle cx='4' cy='4' r='2'/%3E%3C/svg%3E");
}

/* HOME — intensity, humanity, clarity, construction, consequence. */
body.home-final :is(.hero, .problem, .build, .proof) {
  background-color: var(--to-black);
}

body.dossier-final .file-cover,
body.operating-final .operating-cover,
body.practice-final .manual-cover {
  background-color: var(--to-black);
}

body.home-final :is(.proofbar, .ep, .friction-manifesto, .waysin, .diag-strip) {
  background-color: var(--to-graphite);
}

body.home-final :is(.home-manifesto, .proof-credentials) {
  background-color: var(--to-bone);
  color: var(--to-black);
}

body.home-final .formats {
  background-color: var(--to-soft-white);
  background-image:
    linear-gradient(rgba(248, 248, 245, 0.96), rgba(248, 248, 245, 0.96)),
    url("../../../assets/img/final/texture-bone.webp");
  color: var(--to-black);
}

body.home-final .closing {
  background: var(--to-black);
  color: var(--to-soft-white);
  box-shadow: none;
}

body.home-final .closing::before {
  background:
    radial-gradient(ellipse at 76% 18%, rgba(248, 248, 245, 0.055), transparent 34%),
    linear-gradient(180deg, rgba(10, 10, 10, 0.35), rgba(10, 10, 10, 0.98));
}

body.home-final .closing :is(.kicker, .closing-head, .closing-head .serif-em, .closing-body) {
  color: var(--to-soft-white);
}

body.home-final .closing .closing-tag {
  color: var(--to-bone);
}

body.home-final .closing .kicker::before {
  background: var(--to-signal-yellow);
  opacity: 1;
}

body.home-final .closing .cta-big,
body.home-final .closing .cta-big:hover,
body.home-final .closing .cta-big:focus-visible {
  background: var(--to-signal-yellow);
  color: var(--to-black);
  box-shadow: none;
}

body.home-final .closing .cta-big span,
body.home-final .closing .cta-big:hover span,
body.home-final .closing .cta-big:focus-visible span {
  color: var(--to-black);
}

/* Reusable light-surface contrast rules. */
body :is(
  .dossier-final #origin,
  .dossier-final #training-record,
  .dossier-final #public-evidence,
  .operating-final #ways-in,
  .operating-final #what-we-build,
  .operating-final #executive-outcomes,
  .operating-final #engagement-models,
  .operating-final #how-to-start,
  .practice-final #field-reading,
  .practice-final #use-in-the-field,
  .first-move-page .fm-hero,
  .first-move-page .fm-grid
) {
  color: var(--to-black);
}

body :is(
  .dossier-final #origin,
  .dossier-final #training-record,
  .dossier-final #public-evidence,
  .operating-final #ways-in,
  .operating-final #what-we-build,
  .operating-final #executive-outcomes,
  .operating-final #engagement-models,
  .operating-final #how-to-start,
  .practice-final #field-reading,
  .practice-final #use-in-the-field,
  .first-move-page .fm-hero,
  .first-move-page .fm-grid
) :is(.h-display, h1, h2, h3, h4, .serif-em, .signal-plate) {
  color: var(--to-black);
  text-shadow: none;
}

body :is(
  .dossier-final #origin,
  .dossier-final #training-record,
  .dossier-final #public-evidence,
  .operating-final #ways-in,
  .operating-final #what-we-build,
  .operating-final #executive-outcomes,
  .operating-final #engagement-models,
  .operating-final #how-to-start,
  .practice-final #field-reading,
  .practice-final #use-in-the-field,
  .first-move-page .fm-hero,
  .first-move-page .fm-grid
) :is(p, li, dd, .section-intro, .origin-copy, .training-note, .e-body, .status-copy, .start-copy, .use-copy, .fm-lead) {
  color: rgba(10, 10, 10, 0.76);
  text-shadow: none;
}

body :is(
  .dossier-final #origin,
  .dossier-final #training-record,
  .dossier-final #public-evidence,
  .operating-final #ways-in,
  .operating-final #what-we-build,
  .operating-final #executive-outcomes,
  .operating-final #engagement-models,
  .operating-final #how-to-start,
  .practice-final #field-reading,
  .practice-final #use-in-the-field,
  .first-move-page .fm-hero,
  .first-move-page .fm-grid
) :is(.kicker, .fm-kicker, .e-meta, .e-names, .e-attribution, .when, .outcome-no, .engagement-for) {
  color: rgba(10, 10, 10, 0.62);
}

body :is(
  .dossier-final #origin,
  .dossier-final #training-record,
  .dossier-final #public-evidence,
  .operating-final #ways-in,
  .operating-final #what-we-build,
  .operating-final #executive-outcomes,
  .operating-final #engagement-models,
  .operating-final #how-to-start,
  .practice-final #field-reading,
  .practice-final #use-in-the-field,
  .first-move-page .fm-grid
) :is(.t-block, .record-entry, .svc-entry, .form-record, .outcome-row, .engagement, .instrument-part, .observation, .fm-path) {
  border-color: var(--to-rule-on-light);
}

/* DOSSIER — editorial and documented. */
body.dossier-final #origin,
body.dossier-final #public-evidence {
  background: var(--to-bone);
}

body.dossier-final #training-record {
  background: var(--to-soft-white);
}

body.dossier-final #record-status {
  background-color: var(--to-black);
  color: var(--to-soft-white);
}

body.dossier-final #public-evidence .record-entry {
  background: var(--to-panel-on-light);
}

body.dossier-final #public-evidence .record-entry:nth-child(even) {
  background: transparent;
}

body.dossier-final #origin .origin-axis span,
body.dossier-final #origin .origin-axis b {
  color: rgba(10, 10, 10, 0.62);
}

body.dossier-final #origin .origin-pull b {
  color: var(--to-black);
}

body.dossier-final #training-record :is(.t-block, .t-desc),
body.dossier-final #public-evidence .record-entry {
  color: rgba(10, 10, 10, 0.76);
}

body.dossier-final #public-evidence .e-no {
  color: rgba(10, 10, 10, 0.62);
}

/* OPERATING MAP — clarity, warmth and visible system depth. */
body.operating-final #ways-in,
body.operating-final #executive-outcomes,
body.operating-final #how-to-start {
  background: var(--to-soft-white);
}

body.operating-final #what-we-build,
body.operating-final #engagement-models {
  background-color: var(--to-bone);
  color: var(--to-black);
}

body.operating-final #what-we-build {
  background-image:
    linear-gradient(rgba(239, 235, 225, 0.96), rgba(239, 235, 225, 0.96)),
    url("../../../assets/img/final/texture-bone.webp");
}

body.operating-final :is(#operating-logic, #diagnostic) {
  background-color: var(--to-graphite);
  color: var(--to-soft-white);
}

body.operating-final :is(#ways-in, #what-we-build, #executive-outcomes, #engagement-models, #how-to-start)
  :is(.svc-entry, .form-record, .outcome-row, .engagement, .start-sheet) {
  background: var(--to-panel-on-light);
  border-color: var(--to-rule-on-light);
}

body.operating-final #ways-in .svc-entry {
  color: var(--to-black);
}

body.operating-final #what-we-build .text-link {
  color: var(--to-black);
}

body.operating-final #executive-outcomes dt,
body.operating-final #executive-outcomes .outcome-proof dt {
  color: rgba(10, 10, 10, 0.62);
}

body.operating-final #how-to-start .cta-line {
  background: var(--to-signal-yellow);
  color: var(--to-black);
}

body.operating-final #how-to-start .cta-line span {
  color: var(--to-black);
}

/* PRACTICE — observation to decision. */
body.practice-final #field-reading {
  background-color: var(--to-soft-white);
  background-image:
    linear-gradient(rgba(248, 248, 245, 0.965), rgba(248, 248, 245, 0.965)),
    url("../../../assets/img/final/texture-bone.webp");
}

body.practice-final #pressure-test,
body.practice-final #operating-limits {
  background-color: var(--to-black);
}

body.practice-final #field-code {
  background-color: var(--to-graphite);
  color: var(--to-soft-white);
}

body.practice-final #use-in-the-field {
  background-color: var(--to-soft-white);
  color: var(--to-black);
}

body.practice-final #use-in-the-field::before {
  background:
    linear-gradient(rgba(248, 248, 245, 0.965), rgba(248, 248, 245, 0.965)),
    url("../../../assets/img/final/texture-bone.webp") center / cover;
  filter: none;
  opacity: 1;
}

body.practice-final #use-in-the-field .cta-line {
  background: var(--to-signal-yellow);
  color: var(--to-black);
  box-shadow: none;
}

body.practice-final #use-in-the-field .cta-line span {
  color: var(--to-black);
}

/* FIRST MOVE — the clearest and quietest page in the system. */
body.first-move-page {
  background: var(--to-soft-white);
  color: var(--to-black);
}

body.first-move-page .fm-hero,
body.first-move-page .fm-grid {
  background: var(--to-soft-white);
  color: var(--to-black);
}

body.first-move-page .fm-hero .fm-head,
body.first-move-page .fm-hero .fm-head .serif-em {
  color: var(--to-black);
  text-shadow: none;
}

body.first-move-page .fm-hero :is(.fm-kicker, .fm-lead) {
  color: rgba(10, 10, 10, 0.68);
}

body.first-move-page .fm-formwrap {
  background: var(--to-bone);
  border-color: var(--to-rule-on-light);
}

body.first-move-page :is(.fm-path, .fm-field input, .fm-field textarea, .fm-field .fm-opt) {
  border-color: var(--to-rule-on-light);
}

body.first-move-page .fm-field :is(input, textarea) {
  background: rgba(248, 248, 245, 0.52);
  color: var(--to-black);
}

body.first-move-page .fm-submit {
  background: var(--to-signal-yellow);
  color: var(--to-black);
}

body.first-move-page .fm-submit span {
  color: var(--to-black);
}

body.first-move-page .fm-field label .req {
  color: rgba(10, 10, 10, 0.62);
}

/* ============================================================
   FINAL ART CLEANUP — surfaces after the approved color system
   Removes decorative containers that became visible against the
   new light fields. Operational records and form controls remain.
   ============================================================ */

body.operating-final :is(.svc-waysin, .build-taxonomy) {
  border: 0;
}

body.operating-final :is(.svc-entry-grid, .taxonomy) {
  border: 0;
  background: transparent;
}

body.operating-final :is(.svc-entry, .form-record) {
  padding: clamp(1.25rem, 2.4vw, 2.2rem) 0;
  border: 0;
  border-radius: 0;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none;
}

body.operating-final :is(.svc-entry, .form-record)::before,
body.operating-final :is(.svc-entry, .form-record)::after {
  display: none;
}

body.operating-final .svc-entry-grid {
  gap: clamp(1.75rem, 4vw, 4.5rem);
}

body.operating-final .taxonomy {
  gap: clamp(1.5rem, 3.5vw, 3.75rem) clamp(2rem, 5vw, 6rem);
}

body.first-move-page .fm-paths {
  display: none;
}

body.first-move-page .fm-formwrap {
  border: 1px solid rgba(10, 10, 10, 0.12);
  box-shadow: none;
}

body.first-move-page .fm-formwrap::before,
body.first-move-page .fm-formwrap::after {
  display: none;
}

@media (max-width: 760px) {
  body.operating-final :is(.svc-entry, .form-record) {
    padding-block: 1.1rem;
  }
}
