:root {
  --zn-indigo: #1B2A4A;
  --zn-indigo-deep: #0F1D33;
  --zn-gold: #5C84B6;
  --zn-bone: #F2F5F8;
  --zn-ink: #253246;
  --zn-stone: #5D7793;
  --zn-heading: "Source Serif 4", Georgia, serif;
  --zn-body: "Source Sans 3", Arial, sans-serif;
  --zn-mono: "IBM Plex Mono", monospace;
  --zn-page: #F2F5F8;
  --zn-surface: #F2F5F8;
  --zn-heading-color: #1B2A4A;
  --zn-copy: #253246;
  --zn-muted: #5D7793;
  --zn-rule: rgba(27, 42, 74, .22);
  --zn-header: rgba(242, 245, 248, .94);
  --zn-on-dark: #F2F5F8;
  --content-width: 1240px;
  --page-gutter: clamp(1.25rem, 4vw, 4rem);
  --space-section: clamp(5rem, 8vw, 8rem);
  color-scheme: light;
}

:root[data-theme="dark"] {
  --zn-page: #0F1D33;
  --zn-surface: #1B2A4A;
  --zn-heading-color: #F2F5F8;
  --zn-copy: #F2F5F8;
  --zn-muted: rgba(242, 245, 248, .72);
  --zn-rule: rgba(242, 245, 248, .2);
  --zn-header: rgba(22, 35, 63, .94);
  color-scheme: dark;
}

html { scroll-padding-top: 6rem; }
body {
  background: var(--zn-page);
  color: var(--zn-copy);
  font-family: var(--zn-body);
  font-size: 1.04rem;
  line-height: 1.68;
}
h1, h2, h3 { text-wrap: balance; }
.container { width: min(var(--content-width), calc(100% - (var(--page-gutter) * 2))); }

.scroll-progress {
  position: fixed;
  inset: 0 auto auto 0;
  z-index: 100;
  width: 0;
  height: 2px;
  background: var(--zn-gold);
  pointer-events: none;
}

.site-header {
  background: var(--zn-header);
  border-color: var(--zn-rule);
  backdrop-filter: blur(16px);
}
.nav {
  min-height: 5.7rem;
  grid-template-columns: minmax(15rem, 1fr) auto auto;
  gap: clamp(1.25rem, 2.5vw, 2.5rem);
}
.brand .brand-lockup { width: clamp(15rem, 18vw, 17.5rem); }
:root[data-theme="dark"] .site-header .brand-lockup img { filter: brightness(0) invert(1); }
.nav-links {
  gap: clamp(1rem, 1.55vw, 1.65rem);
  font-family: var(--zn-body);
  font-size: .79rem;
  font-weight: 600;
  letter-spacing: .01em;
  text-transform: none;
}
.nav-links a { color: var(--zn-heading-color); }
.nav-links a::after { bottom: -.55rem; }
.nav-cta { padding-left: 1.1rem; }

.theme-switch {
  position: relative;
  width: 2.75rem;
  height: 2.75rem;
  display: grid;
  place-items: center;
  padding: 0;
  color: var(--zn-heading-color);
  background: transparent;
  border: 1px solid var(--zn-rule);
  border-radius: 0;
  cursor: pointer;
}
.theme-switch:hover { border-color: var(--zn-gold); }
.theme-switch svg { position: absolute; width: 1.08rem; height: 1.08rem; fill: none; stroke: currentColor; stroke-width: 1.6; }
.theme-switch .sun { opacity: 0; transform: rotate(-30deg) scale(.7); transition: 180ms ease; }
.theme-switch .moon { opacity: 1; transition: 180ms ease; }
:root[data-theme="dark"] .theme-switch .sun { opacity: 1; transform: none; }
:root[data-theme="dark"] .theme-switch .moon { opacity: 0; transform: rotate(25deg) scale(.7); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.hero { min-height: auto; color: var(--zn-on-dark); background: var(--zn-indigo-deep); }
.hero::before { right: -7%; width: min(48vw, 42rem); opacity: .045; }
.hero-grid {
  min-height: clamp(39rem, 75svh, 48rem);
  grid-template-columns: minmax(0, 1.15fr) minmax(23rem, .85fr);
  align-items: center;
  gap: clamp(4rem, 8vw, 9rem);
  padding-block: clamp(6.5rem, 9vw, 9rem) clamp(4.5rem, 7vw, 6.5rem);
}
.hero-copy { max-width: 45rem; padding-right: 0; }
.hero h1 {
  max-width: 44rem;
  font-family: var(--zn-heading);
  font-size: clamp(3.6rem, 5.8vw, 6rem);
  line-height: 1;
  letter-spacing: -.035em;
  text-wrap: pretty;
}
.hero .lead { max-width: 38rem; margin: 2rem 0 2rem; font-size: clamp(1.08rem, 1.4vw, 1.24rem); line-height: 1.6; }
.button { font-family: var(--zn-body); font-size: .79rem; font-weight: 600; letter-spacing: .025em; text-transform: none; }
.text-link { font-family: var(--zn-body); font-size: .82rem; font-weight: 600; letter-spacing: .02em; text-transform: none; }

.hero-instrument { position: relative; align-self: stretch; display: grid; grid-template-rows: auto 1fr auto; min-height: 30rem; border-left: 1px solid rgba(242,245,248,.18); }
.instrument-label { margin: 0; padding: .8rem 0 0 1.4rem; color: rgba(242,245,248,.72); font-family: var(--zn-mono); font-size: .75rem; letter-spacing: .09em; text-transform: uppercase; }
.evidence-map { position: relative; min-height: 20rem; margin: 1rem 0 1.5rem 1.4rem; border-top: 1px solid rgba(242,245,248,.16); border-bottom: 1px solid rgba(242,245,248,.16); }
.evidence-map::before, .evidence-map::after { content: ""; position: absolute; background: rgba(242,245,248,.09); }
.evidence-map::before { left: 50%; top: 0; bottom: 0; width: 1px; }
.evidence-map::after { top: 50%; left: 0; right: 0; height: 1px; }
.evidence-node { position: absolute; z-index: 2; display: grid; place-items: center; width: 5rem; aspect-ratio: 1; color: rgba(242,245,248,.88); border: 1px solid rgba(242,245,248,.3); background: var(--zn-indigo-deep); font-family: var(--zn-mono); font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.node-source { left: 4%; top: 12%; }.node-record { right: 8%; top: 8%; }.node-context { left: 17%; bottom: 9%; }.node-finding { right: 5%; bottom: 12%; color: var(--zn-on-dark); border-color: var(--zn-gold); }
.evidence-line { position: absolute; z-index: 1; height: 1px; background: linear-gradient(90deg, rgba(92,132,182,.15), rgba(92,132,182,.9), rgba(92,132,182,.15)); transform-origin: left center; animation: evidenceSignal 4.8s ease-in-out infinite; }
.line-a { left: 17%; top: 30%; width: 64%; transform: rotate(-5deg); }.line-b { left: 28%; top: 67%; width: 55%; transform: rotate(4deg); animation-delay: -1.7s; }.line-c { left: 48%; top: 24%; width: 37%; transform: rotate(52deg); animation-delay: -3.1s; }
.instrument-principle { padding: 1.4rem 0 0 1.4rem; border-top: 1px solid rgba(92,132,182,.7); }
.instrument-principle span { display: block; margin-bottom: .75rem; color: var(--zn-gold); font-family: var(--zn-mono); font-size: .75rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.instrument-principle strong { display: block; max-width: 22rem; font-family: var(--zn-heading); font-size: 1.4rem; font-weight: 400; line-height: 1.3; }
@keyframes evidenceSignal { 0%,100% { opacity: .24; transform-origin: left; } 50% { opacity: .95; } }

.section { padding-block: var(--space-section); background: var(--zn-page); border-color: var(--zn-rule); }
.section.white, .section.soft { background: var(--zn-page); }
.section.dark { color: var(--zn-on-dark); background: var(--zn-indigo-deep); }
:root[data-theme="dark"] .section.soft { background: var(--zn-surface); }
.section-head { grid-template-columns: minmax(18rem, .9fr) minmax(22rem, 1.1fr); gap: clamp(3rem, 7vw, 7rem); margin-bottom: clamp(3.5rem, 6vw, 5.5rem); }
.section h2, .cta-strip h2 { color: var(--zn-heading-color); font-family: var(--zn-heading); font-size: clamp(2.55rem, 4.2vw, 4.35rem); line-height: 1.05; letter-spacing: -.03em; }
.section-head p, .card p, .prose p, .cta-note { color: var(--zn-muted); }
.cards { border-color: var(--zn-rule); }
.card { border-color: var(--zn-rule); transition: background-color 220ms ease, transform 220ms ease; }
.card:hover { background: rgba(92,132,182,.055); }
.practice-card { min-height: 22rem; }
.practice-card::before { transition: width 250ms ease; }
.practice-card:hover::before { width: 8rem; }
.card h3 { color: var(--zn-heading-color); font-family: var(--zn-heading); font-size: clamp(2rem, 2.8vw, 2.8rem); }

.evidence-field { position: relative; overflow: hidden; background: var(--zn-surface); }
.evidence-field::after { content: ""; position: absolute; right: -6rem; bottom: -10rem; width: 26rem; aspect-ratio: 1; background: url('/assets/zemi-north-mark.svg') center/contain no-repeat; opacity: .025; pointer-events: none; }
.evidence-field-grid { display: grid; grid-template-columns: minmax(19rem,.8fr) minmax(0,1.35fr); gap: clamp(4rem, 9vw, 9rem); }
.evidence-field-intro { position: sticky; top: 8rem; align-self: start; }
.evidence-field-intro h2 { margin-bottom: 1.5rem; }
.evidence-field-intro > p:last-child { max-width: 28rem; color: var(--zn-muted); }
.evidence-explorer { border-top: 1px solid var(--zn-rule); }
.evidence-tabs { display: grid; grid-template-columns: repeat(4,1fr); border-bottom: 1px solid var(--zn-rule); }
.evidence-tabs button { min-height: 4rem; padding: .75rem .5rem; color: var(--zn-muted); background: transparent; border: 0; border-right: 1px solid var(--zn-rule); font-family: var(--zn-body); font-size: .76rem; font-weight: 600; cursor: pointer; }
.evidence-tabs button:last-child { border-right: 0; }
.evidence-tabs button[aria-selected="true"] { color: var(--zn-heading-color); box-shadow: inset 0 -2px var(--zn-gold); }
.evidence-panels article { min-height: 25rem; padding: clamp(2.5rem,5vw,4.5rem); border-bottom: 1px solid var(--zn-rule); }
.evidence-panels article > span { color: var(--zn-gold); font-family: var(--zn-mono); font-size: .75rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.evidence-panels h3 { max-width: 34rem; margin: 2.5rem 0 1.25rem; color: var(--zn-heading-color); font-family: var(--zn-heading); font-size: clamp(2.25rem,3.6vw,3.75rem); font-weight: 400; line-height: 1.06; }
.evidence-panels p { max-width: 38rem; color: var(--zn-muted); }

.page-hero { color: var(--zn-on-dark); background: var(--zn-indigo-deep); padding-block: clamp(6.5rem,10vw,9.5rem) clamp(4rem,7vw,6rem); }
.page-hero h1 { max-width: 58rem; font-size: clamp(3.25rem,5.4vw,5.6rem); line-height: 1.02; }
.content-grid { gap: clamp(3rem,8vw,8rem); }
.prose h2, .prose h3, .legal h1, .legal h2 { color: var(--zn-heading-color); }
.service-list, .article-list, .training-record { border-color: var(--zn-rule); }
.service-list li, .article, .training-record div { border-color: var(--zn-rule); transition: background-color 180ms ease; }
.service-list li:hover, .article:hover { background: rgba(92,132,182,.05); }

.cta-strip { background: var(--zn-page); border-color: var(--zn-rule); }
.cta-strip h2 { color: var(--zn-heading-color); }
.footer { background: var(--zn-indigo-deep); }

.contact-card { position: relative; border-color: var(--zn-rule); }
.contact-card input, .contact-card select, .contact-card textarea { color: var(--zn-copy); background: transparent; border-color: var(--zn-rule); border-radius: 0; }
.contact-card .form-trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.turnstile-space { min-height: 4.25rem; margin-top: .75rem; }
.form-status { min-height: 1.7em; margin: .35rem 0 0; color: var(--zn-muted); font-size: .9rem; }
.form-status[data-state="success"], .form-status[data-state="error"] { padding-left: .85rem; color: var(--zn-heading-color); border-left: 2px solid var(--zn-gold); }
.contact-card button:disabled { cursor: wait; opacity: .55; }

[data-motion] { opacity: 0; transform: translateY(18px); transition: opacity 650ms ease, transform 650ms cubic-bezier(.2,.7,.2,1); }
[data-motion].is-visible { opacity: 1; transform: none; }

@media (max-width: 1050px) {
  .nav { grid-template-columns: 1fr auto auto; }
  .menu-button { display: block; font-family: var(--zn-body); font-size: .8rem; font-weight: 600; letter-spacing: .01em; text-transform: none; }
  .nav-links { top: 5.7rem; font-size: .96rem; }
  .hero-grid { grid-template-columns: 1fr; gap: 4.5rem; }
  .hero-copy { max-width: 50rem; }
  .hero-instrument { min-height: 27rem; max-width: 42rem; }
  .section-head, .evidence-field-grid { grid-template-columns: 1fr; }
  .evidence-field-intro { position: static; }
}

@media (max-width: 700px) {
  body { font-size: 1rem; }
  .nav { min-height: 5rem; gap: .75rem; }
  .brand .brand-lockup { width: min(13rem,52vw); }
  .nav-links { top: 5rem; }
  .theme-switch { width: 2.35rem; height: 2.35rem; }
  .hero-grid { min-height: auto; padding-block: 7rem 4.5rem; }
  .hero h1 { font-size: clamp(3rem,14vw,4.4rem); }
  .hero-instrument { min-height: 25rem; border-left: 0; }
  .instrument-label, .instrument-principle { padding-left: 0; }
  .evidence-map { margin-left: 0; }
  .evidence-tabs { grid-template-columns: 1fr 1fr; }
  .evidence-tabs button:nth-child(2) { border-right: 0; }
  .evidence-tabs button:nth-child(-n+2) { border-bottom: 1px solid var(--zn-rule); }
  .evidence-panels article { min-height: 23rem; padding-inline: 0; }
  .section h2, .cta-strip h2 { font-size: clamp(2.4rem,11vw,3.5rem); }
}

/* V2 visibility, iconography and motion corrections */
:root {
  --zn-page: #FFFFFF;
  --zn-surface: #FFFFFF;
  --zn-muted: #5D7793;
  --color-background: #FFFFFF;
  --color-text: #253246;
  --color-text-secondary: #5D7793;
}
:root[data-theme="dark"] {
  --zn-page: #0F1D33;
  --zn-surface: #1B2A4A;
  --zn-heading-color: #F2F5F8;
  --zn-copy: #F2F5F8;
  --zn-muted: rgba(242,245,248,.82);
  --color-primary: #F2F5F8;
  --color-background: #0F1D33;
  --color-text: #F2F5F8;
  --color-text-secondary: rgba(242,245,248,.82);
}
body, .section.white, .section.soft, .evidence-field, .cta-strip { background: #FFFFFF; }
:root[data-theme="dark"] body,
:root[data-theme="dark"] .section.white,
:root[data-theme="dark"] .cta-strip { background: #0F1D33; }
:root[data-theme="dark"] .section.soft,
:root[data-theme="dark"] .evidence-field { background: #1B2A4A; }
.hero, .page-hero, .section.dark, .footer { color: #F2F5F8; }
.hero h1, .page-hero h1, .section.dark h2, .section.dark h3, .footer h3 { color: #F2F5F8; }
.hero .button, .page-hero .button, .section.dark .button { color: #F2F5F8; }
.section.dark p, .section.dark li { color: rgba(242,245,248,.82); }
.method-mark { color: #253246; background: #FFFFFF; }
.method-mark .artifact-head, .method-mark .artifact-title span { color: #5D7793; }
.method-mark .artifact-title, .method-mark .artifact-title strong { color: #1B2A4A; }
.method-meta dd, .credential strong { color: #F2F5F8; }
.credential > span { color: rgba(242,245,248,.78); }
.section .bio-panel { color: #F2F5F8; background: #0F1D33; }
.section .bio-panel h2 { color: #F2F5F8; }
.section .bio-panel p { color: #F2F5F8; }
.section .bio-panel li { color: rgba(242,245,248,.86); }
.section .bio-panel .text-link { color: #F2F5F8; border-bottom-color: #5C84B6; }
.section .bio-panel .text-link:hover,
.section .bio-panel .text-link:focus-visible { color: #5C84B6; }

.nav-links { font-size: .84rem; line-height: 1.3; }
.eyebrow, .side-label, .card .kicker, .training-feature .kicker, .article small {
  color: var(--zn-heading-color);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .1em;
}
.hero .eyebrow, .page-hero .eyebrow, .section.dark .eyebrow { color: #5C84B6; }
.hero-grid::before { font-size: .72rem; color: rgba(242,245,248,.72); }
.instrument-label, .instrument-principle span, .evidence-panels article > span {
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .09em;
}
.instrument-label { color: rgba(242,245,248,.72); }
.evidence-node { width: 5.35rem; color: rgba(242,245,248,.88); font-size: .7rem; font-weight: 600; }
.button, .text-link { font-size: .84rem; }
.evidence-tabs button { min-height: 4.25rem; color: var(--zn-muted); font-size: .86rem; }
.evidence-tabs button[aria-selected="true"] { color: var(--zn-heading-color); }
.form-note, .footer-bottom, .footer-nav h3, .status, .cta-ref, .bio-record dt, .method-meta dt,
.accountability-label, .training-record dt, .artifact-head, .artifact-title small {
  font-size: .76rem;
  line-height: 1.55;
}
.footer a { color: rgba(242,245,248,.84); font-size: .92rem; }
.footer-bottom { color: rgba(242,245,248,.7); }

.icon-label { display: inline-flex; align-items: center; gap: .55rem; }
.icon-label svg, .label-icon, .credential-icon, .num svg {
  fill: none;
  stroke: currentColor;
  stroke-linecap: square;
  stroke-linejoin: miter;
  stroke-width: 1.5;
}
.icon-label svg, .label-icon { width: 1.12rem; height: 1.12rem; flex: 0 0 auto; color: var(--zn-gold); vertical-align: -.22em; }
.evidence-panels article > span { display: inline-flex; align-items: center; gap: .6rem; color: var(--zn-heading-color); }
.credential::before { display: none; content: none !important; }
.credential-icon { width: 1.55rem; height: 1.55rem; margin-bottom: 1.25rem; color: var(--zn-gold); }
.credential > span { font-size: .9rem; }
.service-list .num {
  width: 2.7rem;
  height: 2.7rem;
  display: grid;
  place-items: center;
  color: var(--zn-gold);
  border: 1px solid var(--zn-rule);
}
.service-list .num svg { width: 1.25rem; height: 1.25rem; }
.training-record dt { display: flex; align-items: center; gap: .7rem; }
.training-record dt > span { display: grid; place-items: center; width: 2.45rem; height: 2.45rem; flex: 0 0 auto; color: var(--zn-gold); border: 1px solid var(--zn-rule); }
.training-record dt > span svg { width: 1.18rem; height: 1.18rem; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: square; stroke-linejoin: miter; }
.footer-nav-practice h3::before, .footer-nav-firm h3::before, .footer-nav-legal h3::before { content: ""; }

.site-header { transition: background-color 220ms ease, border-color 220ms ease, box-shadow 220ms ease; }
.site-header.is-scrolled { box-shadow: 0 10px 30px rgba(22,35,63,.08); }
.hero-instrument::after {
  content: "";
  position: absolute;
  z-index: 3;
  left: 1.4rem;
  right: 0;
  top: 20%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(92,132,182,.9), transparent);
  animation: scanField 6s cubic-bezier(.4,0,.2,1) infinite;
  pointer-events: none;
}
.node-source { animation: nodeDriftA 7s ease-in-out infinite; }
.node-record { animation: nodeDriftB 8s ease-in-out infinite; }
.node-context { animation: nodeDriftB 7.5s ease-in-out -2s infinite reverse; }
.node-finding { animation: findingPulse 5s ease-in-out infinite; }
.evidence-panels article:not([hidden]) { animation: panelEnter 360ms cubic-bezier(.2,.7,.2,1); }
.card:hover, .service-list li:hover, .article:hover { transform: translateY(-4px); }
.card, .service-list li, .article { transition: transform 220ms ease, background-color 220ms ease, border-color 220ms ease; }
@keyframes scanField { 0%,100% { top: 17%; opacity: 0; } 15% { opacity: .7; } 80% { opacity: .7; } 92% { top: 78%; opacity: 0; } }
@keyframes nodeDriftA { 0%,100% { transform: translate(0,0); } 50% { transform: translate(6px,-5px); } }
@keyframes nodeDriftB { 0%,100% { transform: translate(0,0); } 50% { transform: translate(-5px,6px); } }
@keyframes findingPulse { 0%,100% { border-color: rgba(92,132,182,.6); } 50% { border-color: #5C84B6; box-shadow: 0 0 0 5px rgba(92,132,182,.08); } }
@keyframes panelEnter { from { opacity: 0; transform: translateX(14px); } to { opacity: 1; transform: none; } }

@media (max-width: 700px) {
  .hero-instrument::after { left: 0; }
  .nav-links { font-size: 1rem; }
  .eyebrow, .side-label, .card .kicker, .training-feature .kicker, .article small { font-size: .76rem; }
}

@media (prefers-reduced-motion: reduce) {
  .evidence-line, .hero-instrument::after, .evidence-node, .evidence-panels article:not([hidden]) { animation: none; }
  .evidence-line { opacity: .6; }
  [data-motion] { opacity: 1; transform: none; }
}

/* V4 refined homepage evidence record */
.hero-grid::before { content: none; display: none; }
.evidence-console {
  position: relative;
  align-self: center;
  padding: 1.25rem 0 0 1.5rem;
  border-top: 1px solid rgba(242,245,248,.3);
  border-left: 1px solid rgba(242,245,248,.18);
}
.console-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
  color: rgba(242,245,248,.72);
  font-family: var(--zn-mono);
  font-size: .76rem;
  font-weight: 600;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.console-status { display: inline-flex; align-items: center; gap: .55rem; color: #F2F5F8; }
.console-status::before {
  width: .48rem;
  height: .48rem;
  background: #5C84B6;
  transform: rotate(45deg);
  animation: statusSignal 3.6s ease-in-out infinite;
  content: "";
}
.case-record { position: relative; overflow: hidden; background: rgba(242,245,248,.035); border: 1px solid rgba(242,245,248,.22); }
.case-record-head {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 1rem;
  padding: 1.25rem;
  border-bottom: 1px solid rgba(242,245,248,.18);
}
.case-record small, .record-row small, .finding-register small {
  display: block;
  margin-bottom: .32rem;
  color: rgba(242,245,248,.64);
  font-family: var(--zn-mono);
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.case-record-head strong { color: #F2F5F8; font-size: .94rem; font-weight: 600; }
.record-sequence { position: relative; }
.record-row {
  position: relative;
  display: grid;
  grid-template-columns: 2.4rem 1fr auto;
  align-items: center;
  gap: .9rem;
  min-height: 5.2rem;
  padding: .9rem 1.25rem;
  border-bottom: 1px solid rgba(242,245,248,.13);
}
.record-row svg, .finding-register svg { width: 1.35rem; height: 1.35rem; fill: none; stroke: #5C84B6; stroke-width: 1.45; stroke-linecap: square; stroke-linejoin: miter; }
.record-row strong { color: #F2F5F8; font-family: var(--zn-heading); font-size: 1.12rem; font-weight: 400; }
.record-state {
  color: rgba(242,245,248,.74);
  font-family: var(--zn-mono);
  font-size: .69rem;
  font-style: normal;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.record-scan {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  left: 0;
  height: 1px;
  background: rgba(92,132,182,.9);
  box-shadow: 0 7px 18px rgba(92,132,182,.12);
  animation: recordScan 6.5s cubic-bezier(.45,0,.2,1) infinite;
  pointer-events: none;
}
.finding-register {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.35rem 1.25rem;
  background: rgba(92,132,182,.07);
  border-left: 3px solid #5C84B6;
}
.finding-register strong { color: #F2F5F8; font-family: var(--zn-heading); font-size: 1.45rem; font-weight: 400; }
.finding-register svg { width: 2rem; height: 2rem; }
.console-principle { max-width: 27rem; margin: 1.15rem 0 0; color: rgba(242,245,248,.84); font-family: var(--zn-heading); font-size: 1.12rem; line-height: 1.45; }
@keyframes recordScan { 0%,12% { transform: translateY(0); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 92%,100% { transform: translateY(15.55rem); opacity: 0; } }
@keyframes statusSignal { 0%,100% { opacity: .45; } 50% { opacity: 1; } }

@media (max-width: 1050px) {
  .evidence-console { width: min(100%, 42rem); }
}
@media (max-width: 700px) {
  .evidence-console { padding-left: 0; border-left: 0; }
  .console-head { align-items: flex-start; font-size: .7rem; }
  .case-record-head { grid-template-columns: 1fr; }
  .record-row { grid-template-columns: 2rem 1fr; }
  .record-state { grid-column: 2; }
  @keyframes recordScan { 0%,12% { transform: translateY(0); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 92%,100% { transform: translateY(19.4rem); opacity: 0; } }
}
@media (prefers-reduced-motion: reduce) {
  .record-scan, .console-status::before { animation: none; }
  .record-scan { display: none; }
}

/* V5 meaningful interactive hero and dark-mode rhythm */
.hero { position: relative; isolation: isolate; }
.hero::before { display: none; }
.hero-evidence-field { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; opacity: .82; pointer-events: none; }
.hero-grid { position: relative; z-index: 2; grid-template-columns: minmax(0,1.1fr) minmax(22rem,.9fr); }
.hero-copy { position: relative; }
.hero-overline {
  margin: 0 0 1.2rem;
  color: #5C84B6;
  font-family: var(--zn-mono);
  font-size: .84rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.hero-practices { display: flex; flex-wrap: wrap; gap: .7rem 2rem; margin-bottom: 2.2rem; }
.hero-practices a {
  display: inline-flex;
  align-items: center;
  gap: .72rem;
  padding: .55rem 0 .65rem;
  color: #F2F5F8;
  border-bottom: 1px solid rgba(92,132,182,.72);
  font-size: clamp(.98rem,1.15vw,1.1rem);
  font-weight: 600;
  text-decoration: none;
  transition: color 180ms ease, border-color 180ms ease, transform 180ms ease;
}
.hero-practices a:hover, .hero-practices a:focus-visible { color: #5C84B6; border-color: #5C84B6; transform: translateX(3px); }
.hero-practices svg { width: 1.18rem; height: 1.18rem; fill: none; stroke: #5C84B6; stroke-width: 1.5; stroke-linecap: square; stroke-linejoin: miter; }
.hero-orientation { position: relative; display: grid; min-height: 31rem; place-items: center; }
.orientation-rings {
  position: relative;
  display: grid;
  width: min(29vw,24rem);
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid rgba(242,245,248,.2);
  transform: rotate(45deg);
}
.orientation-rings::before, .orientation-rings::after { position: absolute; border: 1px solid rgba(92,132,182,.3); content: ""; }
.orientation-rings::before { inset: 15%; }
.orientation-rings::after { inset: 32%; border-color: rgba(242,245,248,.22); }
.orientation-rings img { width: 34%; transform: rotate(-45deg); opacity: .94; }
.orientation-path {
  position: absolute;
  right: 0;
  bottom: .4rem;
  left: 0;
  display: grid;
  grid-template-columns: repeat(3,1fr);
  border-top: 1px solid rgba(242,245,248,.22);
}
.orientation-path span { padding: .9rem .6rem 0; color: #F2F5F8; font-family: var(--zn-heading); font-size: 1rem; }
.orientation-path span + span { border-left: 1px solid rgba(242,245,248,.16); }
.orientation-path small { display: block; margin-bottom: .28rem; color: #5C84B6; font-family: var(--zn-mono); font-size: .68rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }

:root[data-theme="dark"] #practices,
:root[data-theme="dark"] .cta-strip {
  --zn-heading-color: #1B2A4A;
  --zn-copy: #253246;
  --zn-muted: #5D7793;
  --color-primary: #1B2A4A;
  --color-text: #253246;
  --color-text-secondary: #5D7793;
  --color-background: #F2F5F8;
  background: #F2F5F8;
}
:root[data-theme="dark"] #practices .eyebrow,
:root[data-theme="dark"] #practices h2,
:root[data-theme="dark"] #practices h3,
:root[data-theme="dark"] .cta-strip h2 { color: #1B2A4A; }
:root[data-theme="dark"] #practices p,
:root[data-theme="dark"] .cta-strip p { color: #5D7793; }
:root[data-theme="dark"] .cta-strip .button.primary { color: #1B2A4A; }
:root[data-theme="dark"] .evidence-field { background: #1B2A4A; }
:root[data-theme="dark"] .experience-section { background: #1B2A4A; }
:root[data-theme="dark"] .experience-section::after {
  position: absolute;
  right: var(--page-gutter);
  bottom: 0;
  width: 9rem;
  height: 1px;
  background: #5C84B6;
  content: "";
}

@media (max-width: 1050px) {
  .hero-grid { grid-template-columns: 1fr; }
  .hero-orientation { width: min(100%,42rem); min-height: 27rem; }
  .orientation-rings { width: min(55vw,20rem); }
}
@media (max-width: 700px) {
  .hero-practices { display: grid; gap: .35rem; }
  .hero-practices a { width: fit-content; }
  .hero-orientation { min-height: 24rem; }
  .orientation-rings { width: min(68vw,17rem); }
  .orientation-path { grid-template-columns: 1fr; position: relative; margin-top: 2.5rem; }
  .orientation-path span { display: flex; gap: .7rem; align-items: baseline; }
  .orientation-path span + span { border-left: 0; border-top: 1px solid rgba(242,245,248,.14); }
}

/* V5 refinement pass: density, legibility, actions and light-surface accent */
:root { --zn-gold-on-light: #3F6FA2; }
body { font-size: 1.04rem; }
.nav-links { font-size: .9rem; }
.nav-cta { padding-bottom: .38rem; border-bottom: 2px solid #5C84B6; }
.hero-grid {
  min-height: clamp(38rem, calc(100svh - 5.5rem), 45rem);
  padding-block: clamp(4rem,6vw,6rem) clamp(3.5rem,5vw,5rem);
}
.hero-practices { margin-bottom: 1.55rem; }
.hero .lead { font-size: clamp(1.12rem,1.5vw,1.3rem); }
.hero-evidence-field { opacity: .96; }
.orientation-path small { font-size: .74rem; }

.section { padding-block: clamp(5.25rem,7.5vw,7.75rem); }
.section-head { margin-bottom: clamp(2.75rem,4.5vw,4.5rem); }
.section-head > p, .card p, .training-feature p, .prose p, .prose li, .cta-note { font-size: 1rem; line-height: 1.68; }
.practice-card { min-height: 18.5rem; }
.card { padding-block: clamp(2.25rem,4vw,3.5rem); }
.card .kicker, .training-feature .kicker, .eyebrow, .side-label, .article small,
.accountability-label, .bio-record dt, .method-meta dt, .cta-ref {
  font-size: .82rem;
  line-height: 1.45;
  letter-spacing: .075em;
}
.experience-index span { max-width: 18rem; font-size: .8rem; letter-spacing: .055em; }
.bio-record dd { font-size: .96rem; }
.bio-heading { min-height: auto; }
.experience-index { margin-top: clamp(2.5rem,5vw,4rem); }
.accountability { margin-top: 2.5rem; }

.button {
  min-height: 2.85rem;
  padding: .72rem 1rem;
  border: 1px solid currentColor;
  font-size: .9rem;
  font-weight: 700;
  letter-spacing: .015em;
}
.button.light { color: #1B2A4A; background: #F2F5F8; border-color: #F2F5F8; }
.button.secondary { color: #F2F5F8; background: rgba(242,245,248,.03); border-color: rgba(242,245,248,.48); }
.button.primary { color: #F2F5F8; background: #1B2A4A; border-color: #1B2A4A; }
.button:hover, .button:focus-visible { transform: translateY(-2px); box-shadow: 0 5px 0 rgba(92,132,182,.24); }
.text-link {
  padding: .28rem .12rem .36rem;
  color: var(--zn-heading-color);
  border-bottom: 2px solid var(--zn-gold-on-light);
  font-size: .9rem;
  font-weight: 700;
  letter-spacing: .01em;
  text-transform: none;
  transition: color 180ms ease, background-color 180ms ease, padding 180ms ease;
}
.text-link:hover, .text-link:focus-visible { padding-inline: .42rem; color: #1B2A4A; background: rgba(63,111,162,.1); }
.section.dark .text-link, .footer .text-link { color: #F2F5F8; border-bottom-color: #5C84B6; }

:root:not([data-theme="dark"]) .section:not(.dark) .eyebrow,
:root:not([data-theme="dark"]) .section:not(.dark) .kicker,
:root:not([data-theme="dark"]) .section:not(.dark) .accountability-label,
:root:not([data-theme="dark"]) .cta-strip .eyebrow,
:root[data-theme="dark"] #practices .eyebrow,
:root[data-theme="dark"] #practices .kicker,
:root[data-theme="dark"] .cta-strip .eyebrow { color: var(--zn-gold-on-light); }
:root:not([data-theme="dark"]) .section:not(.dark) .icon-label svg,
:root[data-theme="dark"] #practices .icon-label svg { color: var(--zn-gold-on-light); }

.cta-strip { padding-block: clamp(4.75rem,7vw,7rem); }
.cta-strip::after { display: none; }
.cta-grid { grid-template-columns: minmax(0,1.35fr) minmax(14rem,.65fr); align-items: center; gap: clamp(3rem,7vw,7rem); }
.cta-action { min-height: auto; align-items: flex-start; justify-content: center; }

@media (max-width: 1050px) {
  .hero-grid { min-height: auto; padding-top: 5rem; }
  .hero-orientation { min-height: 24rem; }
}
@media (max-width: 700px) {
  body { font-size: 1rem; }
  .hero-grid { padding-block: 4.25rem 3.75rem; }
  .hero-practices { margin-bottom: 1.25rem; }
  .hero h1 { font-size: clamp(2.85rem,13vw,4rem); }
  .hero-orientation { min-height: 21rem; }
  .section { padding-block: 4.5rem; }
  .cta-grid { grid-template-columns: 1fr; gap: 2rem; }
  .cta-action { padding-left: 0; border-left: 0; }
  .button { width: fit-content; }
}

/* V5 dark palette revision */
.accountability {
  padding: 1.75rem 2rem;
  border: 1px solid var(--zn-rule);
  border-left: 3px solid var(--zn-gold-on-light);
}
:root[data-theme="dark"] {
  --zn-page: #081321;
  --zn-surface: #0F1D33;
  --zn-indigo: #1B2A4A;
  --zn-indigo-deep: #081321;
  --zn-heading-color: #F2F5F8;
  --zn-copy: #F2F5F8;
  --zn-muted: #C6D4E1;
  --zn-on-dark: #F2F5F8;
  --zn-rule: rgba(170,180,192,.25);
  --color-primary: #F2F5F8;
  --color-primary-deep: #081321;
  --color-background: #081321;
  --color-text: #F2F5F8;
  --color-text-secondary: #C6D4E1;
  --color-border: rgba(170,180,192,.25);
}
:root[data-theme="dark"] body { color: #F2F5F8; background: #081321; }
:root[data-theme="dark"] .site-header { color: #F2F5F8; background: #0F1D33; border-color: rgba(170,180,192,.24); }
:root[data-theme="dark"] .nav-links a { color: #F2F5F8; }
:root[data-theme="dark"] .theme-switch { color: #F2F5F8; border-color: rgba(170,180,192,.32); }
:root[data-theme="dark"] .hero,
:root[data-theme="dark"] .page-hero,
:root[data-theme="dark"] .section.dark { color: #F2F5F8; background: #081321; }
:root[data-theme="dark"] .hero h1,
:root[data-theme="dark"] .page-hero h1,
:root[data-theme="dark"] .section.dark h2,
:root[data-theme="dark"] .section.dark h3 { color: #F2F5F8; }
:root[data-theme="dark"] .hero .lead,
:root[data-theme="dark"] .page-hero .lead,
:root[data-theme="dark"] .section.dark p { color: #C6D4E1; }

:root[data-theme="dark"] #practices {
  --zn-heading-color: #F2F5F8;
  --zn-copy: #F2F5F8;
  --zn-muted: #C6D4E1;
  --color-primary: #F2F5F8;
  --color-text: #F2F5F8;
  --color-text-secondary: #C6D4E1;
  --color-background: #1B2A4A;
  color: #F2F5F8;
  background: #1B2A4A;
}
:root[data-theme="dark"] #practices .eyebrow,
:root[data-theme="dark"] #practices h2,
:root[data-theme="dark"] #practices h3 { color: #F2F5F8; }
:root[data-theme="dark"] #practices p { color: #C6D4E1; }
:root[data-theme="dark"] #practices .cards { gap: 1px; background: rgba(170,180,192,.25); border-color: rgba(170,180,192,.25); }
:root[data-theme="dark"] #practices .card { background: #0F1D33; border-color: rgba(170,180,192,.18); }
:root[data-theme="dark"] #practices .card:hover { background: #0F1D33; }
:root[data-theme="dark"] #practices .training-feature { border-color: rgba(170,180,192,.28); }
:root[data-theme="dark"] #practices .text-link { color: #F2F5F8; border-color: #C6D4E1; }

:root[data-theme="dark"] .evidence-field,
:root[data-theme="dark"] .section.soft.institutional-section { color: #F2F5F8; background: #0F1D33; }
:root[data-theme="dark"] .evidence-field h2,
:root[data-theme="dark"] .evidence-field h3,
:root[data-theme="dark"] .section.soft.institutional-section h2,
:root[data-theme="dark"] .section.soft.institutional-section h3 { color: #F2F5F8; }
:root[data-theme="dark"] .evidence-field p,
:root[data-theme="dark"] .section.soft.institutional-section p,
:root[data-theme="dark"] .section.soft.institutional-section li { color: #C6D4E1; }
:root[data-theme="dark"] .evidence-tabs button { color: #C6D4E1; border-color: rgba(170,180,192,.24); }
:root[data-theme="dark"] .evidence-tabs button[aria-selected="true"] { color: #F2F5F8; }

:root[data-theme="dark"] .section.white { color: #F2F5F8; background: #1B2A4A; }
:root[data-theme="dark"] .section.white h2,
:root[data-theme="dark"] .section.white h3 { color: #F2F5F8; }
:root[data-theme="dark"] .section.white p,
:root[data-theme="dark"] .section.white li { color: #C6D4E1; }
:root[data-theme="dark"] .section.soft,
:root[data-theme="dark"] .experience-section { color: #F2F5F8; background: #0F1D33; }
:root[data-theme="dark"] .experience-section h2,
:root[data-theme="dark"] .experience-section .bio-intro,
:root[data-theme="dark"] .experience-section .accountability strong,
:root[data-theme="dark"] .experience-section .bio-record dd { color: #F2F5F8 !important; }
:root[data-theme="dark"] .experience-section p,
:root[data-theme="dark"] .experience-section .experience-index span,
:root[data-theme="dark"] .experience-section .bio-record dt { color: #C6D4E1; }
:root[data-theme="dark"] .experience-section .experience-index strong { color: #F2F5F8; }
:root[data-theme="dark"] .experience-section .accountability { background: #0F1D33; border-color: rgba(170,180,192,.34); border-left-color: #5C84B6; }

:root[data-theme="dark"] .cta-strip {
  --zn-heading-color: #F2F5F8;
  --zn-copy: #F2F5F8;
  --zn-muted: #C6D4E1;
  --color-primary: #F2F5F8;
  --color-text: #F2F5F8;
  --color-text-secondary: #C6D4E1;
  color: #F2F5F8;
  background: #1B2A4A;
}
:root[data-theme="dark"] .cta-strip h2 { color: #F2F5F8; }
:root[data-theme="dark"] .cta-strip p { color: #C6D4E1; }
:root[data-theme="dark"] .footer { color: #C6D4E1; background: #081321; border-color: rgba(170,180,192,.25); }
:root[data-theme="dark"] .footer a,
:root[data-theme="dark"] .footer h3 { color: #F2F5F8; }
:root[data-theme="dark"] .footer-bottom { color: #C6D4E1; }

:root[data-theme="dark"] .button.primary { color: #F2F5F8; background: #1B2A4A; border-color: #C6D4E1; }
:root[data-theme="dark"] .button.primary:hover,
:root[data-theme="dark"] .button.primary:focus-visible { background: #263C69; }
:root[data-theme="dark"] .cta-strip .button.primary { color: #F2F5F8; background: #081321; border-color: #C6D4E1; }
:root[data-theme="dark"] .cta-strip .button.primary:hover,
:root[data-theme="dark"] .cta-strip .button.primary:focus-visible { background: #263C69; }
:root[data-theme="dark"] .button.secondary { color: #F2F5F8; border-color: #C6D4E1; }
:root[data-theme="dark"] .text-link { color: #F2F5F8; border-color: #C6D4E1; }

/* Content remains readable even when a reveal observer is delayed. */
[data-motion] { opacity: 1 !important; transform: none; }
[data-motion]:not(.is-visible) { opacity: 1 !important; transform: translateY(8px); }

/* Consistent internal spacing for every visibly bounded component. */
:root { --zn-panel-pad: clamp(1.5rem,3vw,3rem); }
.cards { border: 1px solid var(--zn-rule); }
.cards .card,
.cards .card:nth-child(odd),
.cards .card:nth-child(even) {
  padding: clamp(2.25rem,4vw,3.5rem) var(--zn-panel-pad);
}
.practice-card::before { left: var(--zn-panel-pad); }
.evidence-tabs button { padding: .9rem 1rem; }
.evidence-panels article { padding-inline: var(--zn-panel-pad); }
.method-meta div,
.method-meta div + div { padding: 1.15rem 1.25rem; }
.credentials .credential,
.credentials .credential + .credential { padding: 2rem 1.5rem 1.5rem; }
.bio-record div,
.bio-record div + div { padding: 1rem 1.15rem; }
.training-record div { padding: 1.75rem 1rem; }
.institution-groups section,
.institution-groups section + section { padding: clamp(2rem,4vw,3.5rem); }
.notice {
  padding: 1.8rem 2rem;
  border-right: 1px solid var(--zn-rule);
}
.footer-nav { padding-right: clamp(1.25rem,2.5vw,2.5rem); }

@media (max-width: 700px) {
  :root { --zn-panel-pad: 1.35rem; }
  .menu-button { min-height: 2.75rem; padding-inline: .55rem; }
  .nav-links a { padding-block: .55rem; }
  .cards .card,
  .cards .card:nth-child(odd),
  .cards .card:nth-child(even) { padding: 2.5rem var(--zn-panel-pad); }
  .evidence-panels article { padding-inline: var(--zn-panel-pad); }
  .institution-groups section,
  .institution-groups section + section { padding: 2rem 1.35rem; }
  .training-record div { padding-inline: .75rem; }
  .notice { padding: 1.5rem; }
  .credentials .credential,
  .credentials .credential + .credential { padding-inline: 1.25rem; }
  .footer-nav,
  .footer-nav:nth-of-type(even),
  .footer-nav:last-child { padding-inline: 1.15rem; }
}

/* V5 warm editorial light palette */
:root:not([data-theme="dark"]) {
  --zn-page: #F7F9FC;
  --zn-surface: #FFFFFF;
  --zn-indigo: #1B2A4A;
  --zn-indigo-deep: #1B2A4A;
  --zn-heading-color: #1B2A4A;
  --zn-copy: #20262D;
  --zn-muted: #5C6570;
  --zn-rule: rgba(93,102,112,.3);
  --zn-gold: #5C84B6;
  --zn-gold-on-light: #3F6FA2;
  --color-primary: #1B2A4A;
  --color-primary-deep: #1B2A4A;
  --color-background: #F7F9FC;
  --color-text: #20262D;
  --color-text-secondary: #5C6570;
  --color-accent: #5C84B6;
  --color-border: rgba(93,102,112,.3);
}
:root:not([data-theme="dark"]) body { color: #20262D; background: #F7F9FC; }
:root:not([data-theme="dark"]) .site-header { color: #20262D; background: #F7F9FC; border-color: rgba(93,102,112,.28); }
:root:not([data-theme="dark"]) .nav-links a { color: #1B2A4A; }
:root:not([data-theme="dark"]) .theme-switch { color: #1B2A4A; background: #FFFFFF; border-color: rgba(93,102,112,.34); }

:root:not([data-theme="dark"]) .hero,
:root:not([data-theme="dark"]) .page-hero,
:root:not([data-theme="dark"]) .section.dark { color: #F2F5F8; background: #1B2A4A; }
:root:not([data-theme="dark"]) .hero h1,
:root:not([data-theme="dark"]) .page-hero h1,
:root:not([data-theme="dark"]) .section.dark h2,
:root:not([data-theme="dark"]) .section.dark h3 { color: #F2F5F8; }
:root:not([data-theme="dark"]) .hero .lead,
:root:not([data-theme="dark"]) .page-hero .lead,
:root:not([data-theme="dark"]) .section.dark p { color: rgba(242,244,247,.82); }

:root:not([data-theme="dark"]) .section.white,
:root:not([data-theme="dark"]) #practices { color: #20262D; background: #F7F9FC; }
:root:not([data-theme="dark"]) .section.white h2,
:root:not([data-theme="dark"]) .section.white h3,
:root:not([data-theme="dark"]) #practices h2,
:root:not([data-theme="dark"]) #practices h3 { color: #1B2A4A; }
:root:not([data-theme="dark"]) .section.white p,
:root:not([data-theme="dark"]) .section.white li,
:root:not([data-theme="dark"]) #practices p { color: #5C6570; }
:root:not([data-theme="dark"]) #practices .cards { background: rgba(93,102,112,.25); }
:root:not([data-theme="dark"]) #practices .card { background: #FFFFFF; }
:root:not([data-theme="dark"]) #practices .card:hover { background: #E8EEF4; }
:root:not([data-theme="dark"]) #practices .training-feature {
  margin-top: clamp(4rem,7vw,6rem);
  padding: clamp(2rem,4vw,3.5rem);
  background: #E8EEF4;
  border: 1px solid rgba(93,102,112,.28);
  border-top: 3px solid #5C84B6;
}

:root:not([data-theme="dark"]) .evidence-field,
:root:not([data-theme="dark"]) .section.soft.institutional-section { color: #20262D; background: #E8EEF4; }
:root:not([data-theme="dark"]) .evidence-field h2,
:root:not([data-theme="dark"]) .evidence-field h3,
:root:not([data-theme="dark"]) .section.soft.institutional-section h2,
:root:not([data-theme="dark"]) .section.soft.institutional-section h3 { color: #1B2A4A; }
:root:not([data-theme="dark"]) .evidence-field p,
:root:not([data-theme="dark"]) .section.soft.institutional-section p,
:root:not([data-theme="dark"]) .section.soft.institutional-section li { color: #5C6570; }
:root:not([data-theme="dark"]) .evidence-tabs button { color: #5C6570; border-color: rgba(93,102,112,.3); }
:root:not([data-theme="dark"]) .evidence-tabs button[aria-selected="true"] { color: #1B2A4A; }

:root:not([data-theme="dark"]) .section.soft,
:root:not([data-theme="dark"]) .experience-section { color: #20262D; background: #E8EEF4; }
:root:not([data-theme="dark"]) .experience-section h2,
:root:not([data-theme="dark"]) .experience-section .bio-intro,
:root:not([data-theme="dark"]) .experience-section .accountability strong,
:root:not([data-theme="dark"]) .experience-section .bio-record dd { color: #1B2A4A !important; }
:root:not([data-theme="dark"]) .experience-section p,
:root:not([data-theme="dark"]) .experience-section .experience-index span,
:root:not([data-theme="dark"]) .experience-section .bio-record dt { color: #5C6570; }
:root:not([data-theme="dark"]) .experience-section .accountability { background: #E8EEF4; border-color: rgba(93,102,112,.38); border-left-color: #5C84B6; }

:root:not([data-theme="dark"]) .notice { color: #5C6570; background: #E8EEF4; }
:root:not([data-theme="dark"]) .method-mark { color: #20262D; background: #FFFFFF; }
:root:not([data-theme="dark"]) .bio-panel { color: #F2F5F8; background: #1B2A4A; }
:root:not([data-theme="dark"]) .bio-panel h2,
:root:not([data-theme="dark"]) .bio-panel p { color: #F2F5F8; }
:root:not([data-theme="dark"]) .bio-panel li { color: rgba(242,244,247,.82); }

:root:not([data-theme="dark"]) .cta-strip {
  --zn-heading-color: #F2F5F8;
  --zn-copy: #F2F5F8;
  --zn-muted: #C6D4E1;
  --color-primary: #F2F5F8;
  --color-text: #F2F5F8;
  --color-text-secondary: #C6D4E1;
  color: #F2F5F8;
  background: #1B2A4A;
}
:root:not([data-theme="dark"]) .cta-strip h2 { color: #F2F5F8; }
:root:not([data-theme="dark"]) .cta-strip p { color: #C6D4E1; }
:root:not([data-theme="dark"]) .cta-strip .button.primary { color: #1B2A4A; background: #FFFFFF; border-color: #FFFFFF; }
:root:not([data-theme="dark"]) .footer { color: #C6D4E1; background: #20262D; }
:root:not([data-theme="dark"]) .footer a,
:root:not([data-theme="dark"]) .footer h3 { color: #F2F5F8; }

:root:not([data-theme="dark"]) .eyebrow,
:root:not([data-theme="dark"]) .kicker,
:root:not([data-theme="dark"]) .accountability-label,
:root:not([data-theme="dark"]) .delivery-label,
:root:not([data-theme="dark"]) .institution-groups span { color: #3F6FA2; }
:root:not([data-theme="dark"]) .text-link { color: #1B2A4A; border-color: #3F6FA2; }
:root:not([data-theme="dark"]) .icon-label svg,
:root:not([data-theme="dark"]) .label-icon,
:root:not([data-theme="dark"]) .service-list .num { color: #3F6FA2; }
:root:not([data-theme="dark"]) .hero .eyebrow,
:root:not([data-theme="dark"]) .page-hero .eyebrow,
:root:not([data-theme="dark"]) .section.dark .eyebrow,
:root:not([data-theme="dark"]) .cta-strip .eyebrow { color: #5C84B6; }
:root:not([data-theme="dark"]) .orientation-path small { color: #5C84B6; }

/* V6 enhanced forensic field */
.hero-evidence-field { opacity: 1; }
.orientation-rings::before { animation: orientationOrbit 18s linear infinite; }
.orientation-rings::after { animation: orientationOrbitReverse 13s linear infinite; }
.orientation-rings img { animation: orientationMark 5.5s ease-in-out infinite; }
@keyframes orientationOrbit { to { transform: rotate(360deg); } }
@keyframes orientationOrbitReverse { to { transform: rotate(-360deg); } }
@keyframes orientationMark { 0%,100% { opacity: .9; } 50% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .orientation-rings::before,
  .orientation-rings::after,
  .orientation-rings img { animation: none; }
}

/* V8 contact-form clarity and platform-native dropdown contrast. */
.contact-card input,
.contact-card select,
.contact-card textarea {
  box-sizing: border-box;
  width: 100%;
  padding: .9rem .85rem;
  border: 1px solid var(--zn-rule);
  background: var(--zn-surface);
}
.contact-card select { cursor: pointer; }
.field-requirement {
  display: block;
  margin-top: .28rem;
  color: var(--zn-muted);
  font-family: var(--font-mono);
  font-size: .72rem;
  font-weight: 400;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.character-count {
  margin: .45rem 0 0;
  color: var(--zn-muted);
  font-family: var(--font-mono);
  font-size: .78rem;
  letter-spacing: .035em;
}
.character-count[data-state="valid"] { color: #31705c; }
:root[data-theme="dark"] .character-count[data-state="valid"] { color: #8dd4b8; }
.contact-card input:focus,
.contact-card select:focus,
.contact-card textarea:focus {
  outline: 2px solid var(--zn-gold);
  outline-offset: 2px;
  border-color: transparent;
}
:root[data-theme="dark"] .contact-card input,
:root[data-theme="dark"] .contact-card select,
:root[data-theme="dark"] .contact-card textarea {
  color: #F2F5F8;
  background: #0F1D33;
  border-color: rgba(170,180,192,.4);
}
:root[data-theme="dark"] .contact-card select { color-scheme: dark; }
:root[data-theme="dark"] .contact-card select option {
  color: #F2F5F8;
  background: #0F1D33;
}
:root:not([data-theme="dark"]) .contact-card input,
:root:not([data-theme="dark"]) .contact-card select,
:root:not([data-theme="dark"]) .contact-card textarea {
  color: #20262D;
  background: #FFFFFF;
  border-color: rgba(93,102,112,.42);
}
:root:not([data-theme="dark"]) .contact-card select { color-scheme: light; }
:root:not([data-theme="dark"]) .contact-card select option {
  color: #20262D;
  background: #FFFFFF;
}
.turnstile-space,
[data-turnstile-container] { max-width: 100%; overflow: hidden; }
.contact-card button:disabled { cursor: not-allowed; opacity: .66; }
.contact-card[aria-busy="true"] button:disabled { cursor: wait; }
.form-status[data-state="error"] { color: #b84f43; }
.form-status[data-state="success"] { color: #31705c; }
:root[data-theme="dark"] .form-status[data-state="error"] { color: #ff9c8f; }
:root[data-theme="dark"] .form-status[data-state="success"] { color: #8dd4b8; }

/* Mobile and touch screens use a quieter, self-moving examination lens. */
@media (max-width: 700px), (pointer: coarse) {
  .hero[data-hero-field] { touch-action: pan-y pinch-zoom; }
  .hero-evidence-field { opacity: .56; }
}

/* V10 compact, stateful contact-form feedback. */
.form-feedback {
  min-height: 1.35rem;
  margin: .5rem 0 .3rem;
  transition: color 180ms ease, background-color 180ms ease, padding 180ms ease;
}
.form-feedback[data-state="error"],
.form-feedback[data-state="success"] {
  padding: .65rem .75rem;
  border-left: 2px solid var(--zn-gold);
  background: color-mix(in srgb, var(--zn-surface) 72%, transparent);
}
.form-feedback[data-state="error"] { color: #b84f43; }
.form-feedback[data-state="success"] { color: #31705c; }
:root[data-theme="dark"] .form-feedback[data-state="error"] { color: #ff9c8f; }
:root[data-theme="dark"] .form-feedback[data-state="success"] { color: #8dd4b8; }
.contact-card .form-note { margin: .65rem 0; }
.turnstile-space {
  min-height: 0;
  height: 0;
  margin: 0;
  overflow: visible;
}
[data-turnstile-container] { max-width: 100%; overflow: visible; }
.contact-card.is-verifying .turnstile-space {
  height: auto;
  margin: .65rem 0;
}
.contact-card .button[type="submit"] { margin-top: .55rem; }

/* V11 tighter hero entry and clearer wrapped mobile display type. */
.hero-grid {
  padding-block: clamp(2.75rem, 4vw, 4.25rem) clamp(3.5rem, 5vw, 5rem);
}

/* V13 evidence-examination field: quiet until inspected, precise when active. */
.hero::after {
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(48%, 52rem);
  background: rgba(16,47,52,.34);
  clip-path: polygon(18% 0,100% 0,100% 100%,0 100%,9% 62%);
  content: "";
  pointer-events: none;
}
.hero-evidence-field { z-index: 1; opacity: 1; }
.hero-grid { z-index: 2; }
.orientation-rings {
  background: rgba(11,15,20,.12);
  border-color: rgba(242,244,247,.27);
  box-shadow: inset 0 0 0 1px rgba(16,47,52,.34);
}
.orientation-rings::before { border-color: rgba(92,132,182,.42); }
.orientation-rings::after { border-color: rgba(242,244,247,.28); }

@media (max-width: 700px), (pointer: coarse) {
  .hero::after {
    top: 48%;
    width: 100%;
    clip-path: polygon(0 15%,100% 0,100% 100%,0 100%);
    background: rgba(16,47,52,.28);
  }
  .hero-evidence-field { opacity: .78; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-evidence-field { opacity: .72; }
}
@media (min-width: 1051px) {
  .hero-grid {
    min-height: clamp(35rem, calc(100svh - 5.5rem), 41rem);
    align-items: start;
  }
}

/* V46 — About hero: the name expressed as artifact, examination, and orientation. */
.about-hero-grid {
  grid-template-columns: minmax(0, 1fr) minmax(32rem, 1fr);
  gap: clamp(3rem, 5vw, 5.75rem);
}

.about-hero-copy h1 {
  max-width: 13ch;
  font-size: clamp(3.7rem, 5vw, 5.65rem);
  line-height: .98;
  text-wrap: pretty;
}

.about-name-field {
  position: relative;
  margin: 0;
  color: var(--zn-ice-white);
  background: color-mix(in srgb, var(--zn-midnight-evidence) 92%, transparent);
  border: 1px solid var(--zn-trace-line);
  border-top: 2px solid var(--zn-signal-blue);
  box-shadow: 1rem 1rem 0 rgba(8, 19, 33, .16);
}

.about-name-field figcaption {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .85rem 1rem;
  color: var(--zn-forensic-steel);
  font-family: var(--zn-mono);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .065em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--zn-trace-line);
}

.about-name-field figcaption strong { color: var(--zn-ice-white); }

.name-field-stage {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 8.75rem minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
  min-height: 19.5rem;
  padding: 1.6rem 1.4rem;
  overflow: hidden;
  background-image: linear-gradient(var(--zn-trace-line) 1px, transparent 1px), linear-gradient(90deg, var(--zn-trace-line) 1px, transparent 1px);
  background-size: 4rem 4rem;
}

.name-field-stage::before {
  content: "";
  position: absolute;
  left: 8%;
  right: 8%;
  top: 50%;
  height: 1px;
  background: var(--zn-trace-line);
}

.name-field-node {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: .45rem .7rem;
  align-content: start;
  min-height: 9.35rem;
  padding: 1rem;
  background: color-mix(in srgb, var(--zn-deep-night) 94%, transparent);
  border: 1px solid var(--zn-trace-line);
}

.name-field-node::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 2.75rem;
  height: 2px;
  background: var(--zn-signal-blue);
}

.name-field-node > span {
  grid-column: 1 / -1;
  color: var(--zn-forensic-steel);
  font-family: var(--zn-mono);
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .055em;
}

.name-field-node svg {
  position: absolute;
  right: .9rem;
  top: 2.6rem;
  width: 1.35rem;
  height: 1.35rem;
  fill: none;
  stroke: var(--zn-signal-blue);
  stroke-width: 1.35;
}

.name-field-node strong {
  grid-column: 1;
  padding-right: 1.7rem;
  color: var(--zn-ice-white);
  font-family: var(--zn-heading);
  font-size: 1.45rem;
  font-weight: 400;
  line-height: 1.1;
}

.name-field-node small {
  grid-column: 1;
  color: var(--zn-cold-mist);
  font-size: .72rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
  text-wrap: pretty;
}

.name-field-examination {
  position: relative;
  z-index: 5;
  display: grid;
  place-items: center;
  width: 7.75rem;
  height: 7.75rem;
  background: var(--zn-midnight-evidence);
  border: 1px solid var(--zn-forensic-steel);
  transform: rotate(45deg);
}

.name-field-examination img {
  position: relative;
  z-index: 2;
  width: 4rem;
  height: 4rem;
  object-fit: contain;
  transform: rotate(-45deg);
}

.name-field-examination > small {
  position: absolute;
  z-index: 3;
  left: 50%;
  bottom: -.95rem;
  width: 10rem;
  padding: .25rem .35rem;
  color: var(--zn-forensic-steel);
  background: var(--zn-midnight-evidence);
  font-family: var(--zn-mono);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .045em;
  text-align: center;
  transform: translateX(-50%) rotate(-45deg);
}

.name-field-orbit {
  position: absolute;
  inset: -1.35rem;
  border: 1px dashed var(--zn-signal-blue);
  border-radius: 50%;
  opacity: .7;
  animation: aboutNameOrbit 18s linear infinite;
}

.name-field-route {
  position: absolute;
  z-index: 2;
  left: 15%;
  right: 15%;
  top: 50%;
  height: 1px;
  overflow: visible;
  background: linear-gradient(90deg, transparent, var(--zn-signal-blue) 18%, var(--zn-signal-blue) 82%, transparent);
}

.name-field-route::before,
.name-field-route::after {
  content: "";
  position: absolute;
  top: -.28rem;
  width: .55rem;
  height: .55rem;
  background: var(--zn-signal-blue);
  transform: rotate(45deg);
}

.name-field-route::before { left: 0; }
.name-field-route::after { right: 0; }
.name-field-route i {
  position: absolute;
  left: 0;
  top: -.2rem;
  width: .42rem;
  height: .42rem;
  background: var(--zn-ice-white);
  border-radius: 50%;
  box-shadow: 0 0 .7rem var(--zn-signal-blue);
  animation: aboutNameSignal 5.5s ease-in-out infinite;
}

.name-field-application {
  display: grid;
  grid-template-columns: minmax(10rem, .8fr) minmax(0, 1.2fr);
  gap: 1rem;
  align-items: center;
  padding: .7rem 1rem;
  border-top: 1px solid var(--zn-trace-line);
  border-bottom: 1px solid var(--zn-trace-line);
}

.name-field-application > span {
  color: var(--zn-forensic-steel);
  font-family: var(--zn-mono);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .055em;
}

.name-field-application ol {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: name-field-step;
}

.name-field-application li {
  counter-increment: name-field-step;
  padding: .35rem .65rem;
  color: var(--zn-ice-white);
  font-family: var(--zn-heading);
  font-size: .78rem;
  line-height: 1.3;
  border-left: 1px solid var(--zn-trace-line);
}

.name-field-application li::before {
  content: "0" counter(name-field-step) " / ";
  color: var(--zn-forensic-steel);
  font-family: var(--zn-mono);
  font-size: .56rem;
}

.about-name-field > p {
  margin: 0;
  padding: .72rem 1rem;
  color: var(--zn-cold-mist);
  font-size: .8rem;
  line-height: 1.55;
}

@keyframes aboutNameOrbit { to { transform: rotate(360deg); } }
@keyframes aboutNameSignal { 0%, 12% { left: 0; opacity: 0; } 25%, 75% { opacity: 1; } 88%, 100% { left: calc(100% - .42rem); opacity: 0; } }

@media (max-width: 1100px) {
  .about-hero-grid { grid-template-columns: 1fr; }
  .about-name-field { width: min(100%, 48rem); }
}

@media (max-width: 700px) {
  .about-hero-copy h1 { max-width: 12ch; font-size: clamp(2.95rem, 12.4vw, 3.65rem); line-height: 1.02; }
  .about-name-field { box-shadow: .55rem .55rem 0 rgba(8, 19, 33, .14); }
  .about-name-field figcaption { align-items: flex-start; font-size: .61rem; }
  .name-field-stage { grid-template-columns: 1fr; gap: 2.2rem; min-height: 36rem; padding: 2rem 1.15rem; }
  .name-field-stage::before { left: 50%; right: auto; top: 8%; bottom: 8%; width: 1px; height: auto; }
  .name-field-node { width: min(100%, 17rem); min-height: 8.75rem; }
  .name-field-artifact { justify-self: start; }
  .name-field-north { justify-self: end; }
  .name-field-examination { justify-self: center; width: 7.75rem; height: 7.75rem; }
  .name-field-examination img { width: 4rem; height: 4rem; }
  .name-field-route { left: 50%; right: auto; top: 12%; bottom: 12%; width: 1px; height: auto; background: linear-gradient(180deg, transparent, var(--zn-signal-blue) 18%, var(--zn-signal-blue) 82%, transparent); }
  .name-field-route::before, .name-field-route::after { left: -.27rem; top: auto; }
  .name-field-route::before { top: 0; }
  .name-field-route::after { top: auto; bottom: 0; }
  .name-field-route i { left: -.2rem; top: 0; animation-name: aboutNameSignalMobile; }
  .name-field-application { grid-template-columns: 1fr; }
  .name-field-application ol { grid-template-columns: 1fr; }
  .name-field-application li { padding: .55rem 0; border-left: 0; border-top: 1px solid var(--zn-trace-line); }
}

@keyframes aboutNameSignalMobile { 0%, 12% { top: 0; opacity: 0; } 25%, 75% { opacity: 1; } 88%, 100% { top: calc(100% - .42rem); opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
  .name-field-orbit,
  .name-field-route i { animation: none; }
}

/* V12 light-mode biography panel contrast on its indigo surface. */
:root:not([data-theme="dark"]) .section.white .bio-panel {
  --zn-heading-color: #F2F5F8;
  --zn-copy: #F2F5F8;
  --zn-muted: #D7DDE5;
  color: #F2F5F8;
  background: #1B2A4A;
}
:root:not([data-theme="dark"]) .section.white .bio-panel h2,
:root:not([data-theme="dark"]) .section.white .bio-panel p {
  color: #F2F5F8;
}
:root:not([data-theme="dark"]) .section.white .bio-panel li {
  color: #D7DDE5;
}
:root:not([data-theme="dark"]) .section.white .bio-panel .text-link {
  color: #F2F5F8;
  border-bottom-color: #5C84B6;
}
:root:not([data-theme="dark"]) .section.white .bio-panel .text-link:hover,
:root:not([data-theme="dark"]) .section.white .bio-panel .text-link:focus-visible {
  color: #F2F5F8;
  background: rgba(242,244,247,.08);
}
@media (max-width: 1050px) {
  .hero-grid {
    align-items: start;
    padding-top: 3rem;
  }
}
@media (max-width: 700px) {
  .hero-grid {
    gap: 3rem;
    padding-block: 2.25rem 3.75rem;
  }
  .hero h1 {
    line-height: 1.08;
    letter-spacing: -.03em;
  }
}

/* V15 forensic blue colour system. This final layer is the authoritative palette. */
:root {
  --zn-evidence-white: #F7F9FC;
  --zn-case-file: #E8EEF4;
  --zn-indigo: #1B2A4A;
  --zn-slate-ink: #253246;
  --zn-analyst-blue: #3F6FA2;
  --zn-steel-blue: #5D7793;
  --zn-chain-grey: #B8C5D2;
  --zn-frost-white: #FFFFFF;
  --zn-midnight-evidence: #081321;
  --zn-deep-night: #0F1D33;
  --zn-ice-white: #F2F5F8;
  --zn-signal-blue: #5C84B6;
  --zn-forensic-steel: #84A3C0;
  --zn-trace-line: #2A3B54;
  --zn-cold-mist: #C6D4E1;
}

:root:not([data-theme="dark"]) {
  --zn-page: var(--zn-evidence-white);
  --zn-surface: var(--zn-frost-white);
  --zn-indigo-deep: var(--zn-deep-night);
  --zn-heading-color: var(--zn-indigo);
  --zn-copy: var(--zn-slate-ink);
  --zn-muted: var(--zn-analyst-blue);
  --zn-rule: rgba(184,197,210,.78);
  --zn-header: rgba(247,249,252,.96);
  --zn-on-dark: var(--zn-ice-white);
  --zn-gold: var(--zn-analyst-blue);
  --zn-gold-on-light: var(--zn-analyst-blue);
  --color-primary: var(--zn-indigo);
  --color-primary-deep: var(--zn-deep-night);
  --color-background: var(--zn-evidence-white);
  --color-text: var(--zn-slate-ink);
  --color-text-secondary: var(--zn-analyst-blue);
  --color-accent: var(--zn-analyst-blue);
  --color-border: var(--zn-chain-grey);
}

:root:not([data-theme="dark"]) body {
  color: var(--zn-slate-ink);
  background: var(--zn-evidence-white);
}
:root:not([data-theme="dark"]) .site-header {
  color: var(--zn-slate-ink);
  background: rgba(247,249,252,.96);
  border-color: var(--zn-chain-grey);
}
:root:not([data-theme="dark"]) .nav-links a { color: var(--zn-indigo); }
:root:not([data-theme="dark"]) .theme-switch {
  color: var(--zn-indigo);
  background: var(--zn-frost-white);
  border-color: var(--zn-chain-grey);
}

:root:not([data-theme="dark"]) .hero,
:root:not([data-theme="dark"]) .page-hero,
:root:not([data-theme="dark"]) .section.dark {
  color: var(--zn-ice-white);
  background: var(--zn-indigo);
}
:root:not([data-theme="dark"]) .hero h1,
:root:not([data-theme="dark"]) .page-hero h1,
:root:not([data-theme="dark"]) .section.dark h2,
:root:not([data-theme="dark"]) .section.dark h3 { color: var(--zn-ice-white); }
:root:not([data-theme="dark"]) .hero .lead,
:root:not([data-theme="dark"]) .page-hero .lead,
:root:not([data-theme="dark"]) .section.dark p { color: var(--zn-cold-mist); }

:root:not([data-theme="dark"]) .section.white,
:root:not([data-theme="dark"]) #practices {
  color: var(--zn-slate-ink);
  background: var(--zn-evidence-white);
}
:root:not([data-theme="dark"]) .section.white h1,
:root:not([data-theme="dark"]) .section.white h2,
:root:not([data-theme="dark"]) .section.white h3,
:root:not([data-theme="dark"]) #practices h2,
:root:not([data-theme="dark"]) #practices h3 { color: var(--zn-indigo); }
:root:not([data-theme="dark"]) .section.white p,
:root:not([data-theme="dark"]) .section.white li,
:root:not([data-theme="dark"]) #practices p { color: var(--zn-slate-ink); }
:root:not([data-theme="dark"]) #practices .cards {
  background: var(--zn-chain-grey);
  border-color: var(--zn-chain-grey);
}
:root:not([data-theme="dark"]) #practices .card { background: var(--zn-frost-white); }
:root:not([data-theme="dark"]) #practices .card:hover { background: var(--zn-case-file); }
:root:not([data-theme="dark"]) #practices .training-feature {
  background: var(--zn-case-file);
  border-color: var(--zn-chain-grey);
  border-top-color: var(--zn-analyst-blue);
}

:root:not([data-theme="dark"]) .evidence-field,
:root:not([data-theme="dark"]) .section.soft.institutional-section,
:root:not([data-theme="dark"]) .section.soft,
:root:not([data-theme="dark"]) .experience-section {
  color: var(--zn-slate-ink);
  background: var(--zn-case-file);
}
:root:not([data-theme="dark"]) .evidence-field h2,
:root:not([data-theme="dark"]) .evidence-field h3,
:root:not([data-theme="dark"]) .section.soft h2,
:root:not([data-theme="dark"]) .section.soft h3,
:root:not([data-theme="dark"]) .experience-section h2,
:root:not([data-theme="dark"]) .experience-section .bio-intro,
:root:not([data-theme="dark"]) .experience-section .accountability strong,
:root:not([data-theme="dark"]) .experience-section .bio-record dd {
  color: var(--zn-indigo) !important;
}
:root:not([data-theme="dark"]) .evidence-field p,
:root:not([data-theme="dark"]) .section.soft p,
:root:not([data-theme="dark"]) .section.soft li,
:root:not([data-theme="dark"]) .experience-section p,
:root:not([data-theme="dark"]) .experience-section .experience-index span,
:root:not([data-theme="dark"]) .experience-section .bio-record dt { color: var(--zn-slate-ink); }
:root:not([data-theme="dark"]) .experience-section .accountability,
:root:not([data-theme="dark"]) .notice {
  color: var(--zn-slate-ink);
  background: var(--zn-frost-white);
  border-color: var(--zn-chain-grey);
  border-left-color: var(--zn-analyst-blue);
}
:root:not([data-theme="dark"]) .method-mark { color: var(--zn-slate-ink); background: var(--zn-frost-white); }
:root:not([data-theme="dark"]) .bio-panel,
:root:not([data-theme="dark"]) .section.white .bio-panel {
  --zn-heading-color: var(--zn-ice-white);
  --zn-copy: var(--zn-ice-white);
  --zn-muted: var(--zn-cold-mist);
  color: var(--zn-ice-white);
  background: var(--zn-indigo);
}
:root:not([data-theme="dark"]) .section.white .bio-panel h2,
:root:not([data-theme="dark"]) .section.white .bio-panel p,
:root:not([data-theme="dark"]) .section.white .bio-panel .text-link { color: var(--zn-ice-white); }
:root:not([data-theme="dark"]) .section.white .bio-panel li { color: var(--zn-cold-mist); }
:root:not([data-theme="dark"]) .section.white .bio-panel .text-link { border-bottom-color: var(--zn-forensic-steel); }

:root:not([data-theme="dark"]) .cta-strip {
  --zn-heading-color: var(--zn-ice-white);
  --zn-copy: var(--zn-ice-white);
  --zn-muted: var(--zn-cold-mist);
  color: var(--zn-ice-white);
  background: var(--zn-indigo);
}
:root:not([data-theme="dark"]) .cta-strip h2 { color: var(--zn-ice-white); }
:root:not([data-theme="dark"]) .cta-strip p { color: var(--zn-cold-mist); }
:root:not([data-theme="dark"]) .cta-strip .button.primary {
  color: var(--zn-ice-white);
  background: var(--zn-analyst-blue);
  border-color: var(--zn-analyst-blue);
}
:root:not([data-theme="dark"]) .footer { color: var(--zn-cold-mist); background: var(--zn-midnight-evidence); }
:root:not([data-theme="dark"]) .footer a,
:root:not([data-theme="dark"]) .footer h3 { color: var(--zn-ice-white); }

:root:not([data-theme="dark"]) .eyebrow,
:root:not([data-theme="dark"]) .kicker,
:root:not([data-theme="dark"]) .accountability-label,
:root:not([data-theme="dark"]) .delivery-label,
:root:not([data-theme="dark"]) .institution-groups span,
:root:not([data-theme="dark"]) .side-label,
:root:not([data-theme="dark"]) .article small { color: var(--zn-analyst-blue); }
:root:not([data-theme="dark"]) .hero .eyebrow,
:root:not([data-theme="dark"]) .page-hero .eyebrow,
:root:not([data-theme="dark"]) .section.dark .eyebrow,
:root:not([data-theme="dark"]) .cta-strip .eyebrow { color: var(--zn-forensic-steel); }
:root:not([data-theme="dark"]) .text-link {
  color: var(--zn-indigo);
  border-color: var(--zn-analyst-blue);
}
:root:not([data-theme="dark"]) .text-link:hover,
:root:not([data-theme="dark"]) .text-link:focus-visible {
  color: var(--zn-indigo);
  background: rgba(63,111,162,.12);
}
:root:not([data-theme="dark"]) .icon-label svg,
:root:not([data-theme="dark"]) .label-icon,
:root:not([data-theme="dark"]) .service-list .num { color: var(--zn-analyst-blue); }

:root:not([data-theme="dark"]) .button.primary {
  color: var(--zn-frost-white);
  background: var(--zn-analyst-blue);
  border-color: var(--zn-analyst-blue);
}
:root:not([data-theme="dark"]) .button.light {
  color: var(--zn-indigo);
  background: var(--zn-frost-white);
  border-color: var(--zn-frost-white);
}
:root:not([data-theme="dark"]) .button:hover,
:root:not([data-theme="dark"]) .button:focus-visible { box-shadow: 0 5px 0 rgba(63,111,162,.24); }
:root:not([data-theme="dark"]) .nav-cta { border-bottom-color: var(--zn-analyst-blue); }
:root:not([data-theme="dark"]) .contact-card input,
:root:not([data-theme="dark"]) .contact-card select,
:root:not([data-theme="dark"]) .contact-card textarea {
  color: var(--zn-slate-ink);
  background: var(--zn-frost-white);
  border-color: var(--zn-chain-grey);
}

:root[data-theme="dark"] {
  --zn-page: var(--zn-midnight-evidence);
  --zn-surface: var(--zn-deep-night);
  --zn-indigo-deep: var(--zn-midnight-evidence);
  --zn-heading-color: var(--zn-ice-white);
  --zn-copy: var(--zn-ice-white);
  --zn-muted: var(--zn-cold-mist);
  --zn-rule: var(--zn-trace-line);
  --zn-header: rgba(15,29,51,.96);
  --zn-on-dark: var(--zn-ice-white);
  --zn-gold: var(--zn-signal-blue);
  --zn-gold-on-light: var(--zn-signal-blue);
  --color-primary: var(--zn-ice-white);
  --color-primary-deep: var(--zn-midnight-evidence);
  --color-background: var(--zn-midnight-evidence);
  --color-text: var(--zn-ice-white);
  --color-text-secondary: var(--zn-cold-mist);
  --color-accent: var(--zn-signal-blue);
  --color-border: var(--zn-trace-line);
}
:root[data-theme="dark"] body { color: var(--zn-ice-white); background: var(--zn-midnight-evidence); }
:root[data-theme="dark"] .site-header {
  color: var(--zn-ice-white);
  background: var(--zn-deep-night);
  border-color: var(--zn-trace-line);
}
:root[data-theme="dark"] .theme-switch {
  color: var(--zn-ice-white);
  background: var(--zn-midnight-evidence);
  border-color: var(--zn-trace-line);
}
:root[data-theme="dark"] .hero { color: var(--zn-ice-white); background: var(--zn-midnight-evidence); }
:root[data-theme="dark"] .page-hero { color: var(--zn-ice-white); background: var(--zn-indigo); }
:root[data-theme="dark"] .section.dark { color: var(--zn-ice-white); background: var(--zn-midnight-evidence); }
:root[data-theme="dark"] .hero h1,
:root[data-theme="dark"] .page-hero h1,
:root[data-theme="dark"] .section.dark h2,
:root[data-theme="dark"] .section.dark h3 { color: var(--zn-ice-white); }
:root[data-theme="dark"] .hero .lead,
:root[data-theme="dark"] .page-hero .lead,
:root[data-theme="dark"] .section.dark p { color: var(--zn-cold-mist); }

:root[data-theme="dark"] .section.white,
:root[data-theme="dark"] #practices {
  color: var(--zn-ice-white);
  background: var(--zn-deep-night);
}
:root[data-theme="dark"] .section.white h1,
:root[data-theme="dark"] .section.white h2,
:root[data-theme="dark"] .section.white h3,
:root[data-theme="dark"] #practices h2,
:root[data-theme="dark"] #practices h3 { color: var(--zn-ice-white); }
:root[data-theme="dark"] .section.white p,
:root[data-theme="dark"] .section.white li,
:root[data-theme="dark"] #practices p { color: var(--zn-cold-mist); }
:root[data-theme="dark"] #practices .cards {
  background: var(--zn-trace-line);
  border-color: var(--zn-trace-line);
}
:root[data-theme="dark"] #practices .card {
  color: var(--zn-ice-white);
  background: var(--zn-indigo);
  border-color: var(--zn-trace-line);
}
:root[data-theme="dark"] #practices .card:hover { background: var(--zn-trace-line); }
:root[data-theme="dark"] #practices .training-feature {
  background: var(--zn-midnight-evidence);
  border-color: var(--zn-trace-line);
  border-top-color: var(--zn-signal-blue);
}
:root[data-theme="dark"] .evidence-field,
:root[data-theme="dark"] .section.soft.institutional-section {
  color: var(--zn-ice-white);
  background: var(--zn-indigo);
}
:root[data-theme="dark"] .section.soft,
:root[data-theme="dark"] .experience-section {
  color: var(--zn-ice-white);
  background: var(--zn-deep-night);
}
:root[data-theme="dark"] .evidence-field h2,
:root[data-theme="dark"] .evidence-field h3,
:root[data-theme="dark"] .section.soft h2,
:root[data-theme="dark"] .section.soft h3,
:root[data-theme="dark"] .experience-section h2,
:root[data-theme="dark"] .experience-section .bio-intro,
:root[data-theme="dark"] .experience-section .accountability strong,
:root[data-theme="dark"] .experience-section .bio-record dd { color: var(--zn-ice-white) !important; }
:root[data-theme="dark"] .evidence-field p,
:root[data-theme="dark"] .section.soft p,
:root[data-theme="dark"] .section.soft li,
:root[data-theme="dark"] .experience-section p,
:root[data-theme="dark"] .experience-section .experience-index span,
:root[data-theme="dark"] .experience-section .bio-record dt { color: var(--zn-cold-mist); }
:root[data-theme="dark"] .experience-section .accountability,
:root[data-theme="dark"] .notice {
  color: var(--zn-cold-mist);
  background: var(--zn-indigo);
  border-color: var(--zn-trace-line);
  border-left-color: var(--zn-signal-blue);
}
:root[data-theme="dark"] .bio-panel {
  color: var(--zn-ice-white);
  background: var(--zn-midnight-evidence);
}
:root[data-theme="dark"] .bio-panel h2,
:root[data-theme="dark"] .bio-panel p,
:root[data-theme="dark"] .bio-panel .text-link { color: var(--zn-ice-white); }
:root[data-theme="dark"] .bio-panel li { color: var(--zn-cold-mist); }
:root[data-theme="dark"] .cta-strip { color: var(--zn-ice-white); background: var(--zn-indigo); }
:root[data-theme="dark"] .cta-strip h2 { color: var(--zn-ice-white); }
:root[data-theme="dark"] .cta-strip p { color: var(--zn-cold-mist); }
:root[data-theme="dark"] .cta-strip .button.primary {
  color: var(--zn-midnight-evidence);
  background: var(--zn-signal-blue);
  border-color: var(--zn-signal-blue);
}
:root[data-theme="dark"] .footer {
  color: var(--zn-cold-mist);
  background: var(--zn-midnight-evidence);
  border-color: var(--zn-trace-line);
}
:root[data-theme="dark"] .footer a,
:root[data-theme="dark"] .footer h3 { color: var(--zn-ice-white); }
:root[data-theme="dark"] .eyebrow,
:root[data-theme="dark"] .kicker,
:root[data-theme="dark"] .accountability-label,
:root[data-theme="dark"] .delivery-label,
:root[data-theme="dark"] .institution-groups span,
:root[data-theme="dark"] .side-label,
:root[data-theme="dark"] .article small { color: var(--zn-forensic-steel); }
:root[data-theme="dark"] .text-link {
  color: var(--zn-ice-white);
  border-color: var(--zn-signal-blue);
}
:root[data-theme="dark"] .text-link:hover,
:root[data-theme="dark"] .text-link:focus-visible { background: rgba(92,132,182,.18); }
:root[data-theme="dark"] .icon-label svg,
:root[data-theme="dark"] .label-icon,
:root[data-theme="dark"] .service-list .num { color: var(--zn-forensic-steel); }
:root[data-theme="dark"] .button.primary {
  color: var(--zn-midnight-evidence);
  background: var(--zn-signal-blue);
  border-color: var(--zn-signal-blue);
}
:root[data-theme="dark"] .button.light {
  color: var(--zn-midnight-evidence);
  background: var(--zn-ice-white);
  border-color: var(--zn-ice-white);
}
:root[data-theme="dark"] .button:hover,
:root[data-theme="dark"] .button:focus-visible { box-shadow: 0 5px 0 rgba(92,132,182,.3); }
:root[data-theme="dark"] .nav-cta { border-bottom-color: var(--zn-signal-blue); }
:root[data-theme="dark"] .contact-card input,
:root[data-theme="dark"] .contact-card select,
:root[data-theme="dark"] .contact-card textarea {
  color: var(--zn-ice-white);
  background: var(--zn-deep-night);
  border-color: var(--zn-trace-line);
}
:root[data-theme="dark"] .contact-card select option {
  color: var(--zn-ice-white);
  background: var(--zn-deep-night);
}

.record-row svg,
.finding-register svg { stroke: var(--zn-gold); }
.console-dot,
.finding-register::before { background: var(--zn-gold); }
.finding-register { border-left-color: var(--zn-gold); }
.orientation-rings::before { border-color: color-mix(in srgb, var(--zn-gold) 52%, transparent); }
.hero::after { background: rgba(15,29,51,.62); }
@media (max-width: 700px), (pointer: coarse) {
  .hero::after { background: rgba(15,29,51,.5); }
}

/* V16 training feature boundary: keep both columns inside the panel in every theme. */
#practices .training-feature {
  box-sizing: border-box;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: clamp(2rem, 6vw, 6rem);
  padding: clamp(2rem, 4vw, 3.5rem);
}
@media (max-width: 900px) {
  #practices .training-feature {
    grid-template-columns: 1fr;
    gap: 1.25rem;
    padding: clamp(1.5rem, 5vw, 2.5rem);
  }
  #practices .training-feature p { margin-top: 0; }
}

/* V17 evidence convergence: two practices, one shared examination discipline. */
#practices .section-head {
  align-items: start;
  margin-bottom: clamp(2.25rem, 3.5vw, 3.5rem);
}
.practice-intro > p { margin-top: .35rem; }
.practice-convergence {
  --convergence-line: var(--zn-chain-grey);
  --convergence-signal: var(--zn-analyst-blue);
  --convergence-text: var(--zn-indigo);
  --convergence-muted: var(--zn-analyst-blue);
  margin: clamp(1.75rem, 3vw, 2.5rem) 0 0;
  padding-top: 1rem;
  border-top: 1px solid var(--convergence-line);
}
.practice-convergence figcaption {
  margin: 0 0 .75rem;
  color: var(--convergence-muted);
  font-family: var(--zn-mono);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.convergence-stage {
  position: relative;
  display: grid;
  grid-template: 1fr 1fr / minmax(8.5rem, .95fr) minmax(9rem, 1fr) minmax(8.5rem, .95fr);
  align-items: center;
  min-height: 15rem;
  overflow: hidden;
  border-bottom: 1px solid var(--convergence-line);
}
.convergence-stage::before {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, color-mix(in srgb, var(--convergence-line) 35%, transparent) 1px, transparent 1px),
    linear-gradient(to bottom, color-mix(in srgb, var(--convergence-line) 35%, transparent) 1px, transparent 1px);
  background-size: 3rem 3rem;
  opacity: .32;
  content: "";
  pointer-events: none;
}
.convergence-routes { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; overflow: visible; }
.convergence-routes .route {
  fill: none;
  stroke: var(--convergence-line);
  stroke-width: .55;
  vector-effect: non-scaling-stroke;
}
.convergence-routes .route-finding { stroke: var(--convergence-signal); stroke-width: .8; }
.mobile-route { display: none; }
.route-signal { fill: var(--convergence-signal); filter: drop-shadow(0 0 3px color-mix(in srgb, var(--convergence-signal) 55%, transparent)); }
.signal-one { animation: convergenceSignalOne 6.4s ease-in-out infinite; }
.signal-two { animation: convergenceSignalTwo 6.4s ease-in-out -2.1s infinite; }
.signal-three { animation: convergenceSignalThree 5.2s ease-in-out -1.2s infinite; }
.convergence-node,
.convergence-core { position: relative; z-index: 2; }
.convergence-node {
  display: flex;
  align-items: center;
  gap: .72rem;
  color: var(--convergence-text);
}
.convergence-node > svg {
  flex: 0 0 auto;
  width: 1.5rem;
  height: 1.5rem;
  fill: none;
  stroke: var(--convergence-signal);
  stroke-width: 1.35;
  stroke-linecap: square;
  stroke-linejoin: miter;
}
.convergence-node span,
.convergence-core > span:last-child { display: grid; gap: .16rem; }
.convergence-node small,
.convergence-core small {
  color: var(--convergence-muted);
  font-family: var(--zn-mono);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .07em;
  line-height: 1.35;
  text-transform: uppercase;
}
.convergence-node strong,
.convergence-core strong {
  color: var(--convergence-text);
  font-family: var(--zn-heading);
  font-size: clamp(.94rem, 1.25vw, 1.08rem);
  font-weight: 400;
  line-height: 1.2;
}
.convergence-digital { grid-area: 1 / 1; align-self: end; padding: 0 .75rem 1.15rem 0; }
.convergence-ai { grid-area: 2 / 1; align-self: start; padding: 1.15rem .75rem 0 0; }
.convergence-finding { grid-area: 1 / 3 / 3 / 4; justify-self: end; padding-left: 1rem; }
.convergence-core {
  grid-area: 1 / 2 / 3 / 3;
  display: grid;
  justify-items: center;
  gap: .5rem;
  text-align: center;
}
.convergence-core img { position: relative; z-index: 2; width: 3.85rem; height: 4.15rem; object-fit: contain; }
.core-orbit {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  width: 6.5rem;
  aspect-ratio: 1;
  border: 1px solid var(--convergence-line);
  transform: translate(-50%, -63%) rotate(45deg);
  transition: transform 500ms ease, border-color 500ms ease;
}
.core-orbit::before {
  position: absolute;
  inset: 18%;
  border: 1px dashed var(--convergence-signal);
  border-radius: 50%;
  content: "";
  animation: convergenceOrbit 18s linear infinite;
}
.practice-convergence:hover .core-orbit {
  border-color: var(--convergence-signal);
  transform: translate(-50%, -63%) rotate(55deg);
}
:root[data-theme="dark"] .practice-convergence {
  --convergence-line: var(--zn-trace-line);
  --convergence-signal: var(--zn-signal-blue);
  --convergence-text: var(--zn-ice-white);
  --convergence-muted: var(--zn-forensic-steel);
}
:root[data-theme="dark"] .convergence-core img { filter: brightness(0) invert(1); }

@keyframes convergenceSignalOne {
  0%, 12% { cx: 18; cy: 25; opacity: 0; }
  28% { opacity: 1; }
  72%, 100% { cx: 49; cy: 50; opacity: 0; }
}
@keyframes convergenceSignalTwo {
  0%, 12% { cx: 18; cy: 75; opacity: 0; }
  28% { opacity: 1; }
  72%, 100% { cx: 49; cy: 50; opacity: 0; }
}
@keyframes convergenceSignalThree {
  0%, 16% { cx: 57; opacity: 0; }
  34% { opacity: 1; }
  78%, 100% { cx: 84; opacity: 0; }
}
@keyframes convergenceOrbit { to { transform: rotate(360deg); } }

@media (max-width: 700px) {
  #practices .section-head { gap: 1.5rem; }
  .practice-convergence { margin-top: 1.5rem; }
  .convergence-stage {
    grid-template: auto auto / 1fr 1fr;
    gap: 2.75rem 1rem;
    min-height: 20rem;
    padding: 1.25rem 0;
  }
  .desktop-route,
  .route-signal { display: none; }
  .mobile-route { display: block; }
  .convergence-digital,
  .convergence-ai,
  .convergence-finding,
  .convergence-core { padding: 0; }
  .convergence-digital { grid-area: 1 / 1; align-self: start; }
  .convergence-ai { grid-area: 1 / 2; align-self: start; }
  .convergence-core { grid-area: 2 / 1 / 3 / 3; align-self: start; transform: translateY(-.5rem); }
  .convergence-finding { grid-area: 2 / 1 / 3 / 3; align-self: end; justify-self: center; transform: translateY(1rem); }
  .convergence-node { align-items: flex-start; }
  .convergence-node > svg { width: 1.3rem; height: 1.3rem; }
  .convergence-core img { width: 3.25rem; height: 3.5rem; }
  .core-orbit { width: 5.75rem; }
}
@media (prefers-reduced-motion: reduce) {
  .route-signal,
  .core-orbit::before { animation: none; }
  .route-signal { opacity: .7; }
}

/* V18 orientation system: labels should orient the reader, not disappear into metadata. */
.eyebrow,
.side-label,
.card .kicker,
.training-feature .kicker,
.accountability-label,
.delivery-label,
.institution-groups span,
.evidence-panels article > span {
  font-size: .9rem;
  font-weight: 700;
  letter-spacing: .055em;
  line-height: 1.45;
}

.eyebrow,
.card .kicker,
.training-feature .kicker { margin-bottom: 1.65rem; }

.side-label { padding-top: 1rem; }

.article small,
.bio-record dt,
.method-meta dt,
.training-record dt,
.cta-ref,
.artifact-title small,
.footer-nav h3,
.footer-bottom,
.form-note {
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .06em;
  line-height: 1.5;
}

.icon-label {
  gap: .7rem;
  max-width: 100%;
}

.icon-label svg {
  box-sizing: border-box;
  width: 1.55rem;
  height: 1.55rem;
  padding: .22rem;
  border: 1px solid color-mix(in srgb, currentColor 42%, transparent);
  background: color-mix(in srgb, currentColor 7%, transparent);
  stroke-width: 1.45;
  transition: border-color 180ms ease, background-color 180ms ease, transform 180ms ease;
}

.card:hover .icon-label svg,
.training-feature:hover .icon-label svg {
  border-color: currentColor;
  background: color-mix(in srgb, currentColor 12%, transparent);
  transform: translateY(-2px);
}

.practice-convergence figcaption {
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .065em;
}

.convergence-node small,
.convergence-core small {
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .055em;
}

:root:not([data-theme="dark"]) .eyebrow,
:root:not([data-theme="dark"]) .side-label,
:root:not([data-theme="dark"]) .card .kicker,
:root:not([data-theme="dark"]) .training-feature .kicker,
:root:not([data-theme="dark"]) .accountability-label,
:root:not([data-theme="dark"]) .delivery-label,
:root:not([data-theme="dark"]) .institution-groups span,
:root:not([data-theme="dark"]) .evidence-panels article > span {
  color: var(--zn-analyst-blue);
}

:root[data-theme="dark"] .eyebrow,
:root[data-theme="dark"] .side-label,
:root[data-theme="dark"] .card .kicker,
:root[data-theme="dark"] .training-feature .kicker,
:root[data-theme="dark"] .accountability-label,
:root[data-theme="dark"] .delivery-label,
:root[data-theme="dark"] .institution-groups span,
:root[data-theme="dark"] .evidence-panels article > span {
  color: var(--zn-forensic-steel);
}

/* Keep the homepage classification labels above the earlier section-specific accent rule. */
:root[data-theme="dark"] #practices .eyebrow,
:root[data-theme="dark"] #practices .card .kicker,
:root[data-theme="dark"] #practices .training-feature .kicker,
:root[data-theme="dark"] #practices .icon-label svg {
  color: var(--zn-forensic-steel);
}

@media (max-width: 700px) {
  .eyebrow,
  .side-label,
  .card .kicker,
  .training-feature .kicker,
  .accountability-label,
  .delivery-label,
  .institution-groups span,
  .evidence-panels article > span {
    font-size: .84rem;
    letter-spacing: .045em;
  }

  .eyebrow,
  .card .kicker,
  .training-feature .kicker { margin-bottom: 1.4rem; }

  .icon-label { align-items: flex-start; }
  .icon-label svg { width: 1.45rem; height: 1.45rem; }
}

@media (prefers-reduced-motion: reduce) {
  .icon-label svg { transition: none; }
  .card:hover .icon-label svg,
  .training-feature:hover .icon-label svg { transform: none; }
}

/* V19 evidence explorer: the selected evidence environment now carries its own trace. */
.evidence-field-grid {
  grid-template-columns: minmax(18rem, .72fr) minmax(0, 1.48fr);
  gap: clamp(3.5rem, 7vw, 7.5rem);
}

.evidence-explorer {
  border-top-color: var(--zn-chain-grey);
}

.evidence-tabs button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  min-height: 5rem;
  padding: .9rem .75rem;
  overflow: hidden;
  font-size: .88rem;
  transition: color 180ms ease, background-color 180ms ease;
}

.evidence-tabs button::before {
  position: absolute;
  right: 50%;
  bottom: -3px;
  left: 50%;
  height: 3px;
  background: var(--zn-analyst-blue);
  content: "";
  transition: right 220ms ease, left 220ms ease;
}

.evidence-tabs button:hover,
.evidence-tabs button:focus-visible {
  color: var(--zn-indigo);
  background: color-mix(in srgb, var(--zn-analyst-blue) 8%, transparent);
}

.evidence-tabs button[aria-selected="true"] {
  background: color-mix(in srgb, var(--zn-analyst-blue) 10%, transparent);
  box-shadow: none;
}

.evidence-tabs button[aria-selected="true"]::before {
  right: 0;
  left: 0;
}

.evidence-tabs button svg {
  box-sizing: border-box;
  width: 1.5rem;
  height: 1.5rem;
  padding: .18rem;
  color: var(--zn-analyst-blue);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.45;
  stroke-linecap: square;
  stroke-linejoin: miter;
}

.evidence-panels article {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(14rem, .92fr);
  gap: clamp(2.25rem, 4vw, 4rem);
  align-items: center;
  min-height: 30rem;
  padding: clamp(2.75rem, 4vw, 4rem);
  background: var(--zn-frost-white);
  border-right: 1px solid var(--zn-chain-grey);
  border-bottom-color: var(--zn-chain-grey);
  border-left: 1px solid var(--zn-chain-grey);
}

.evidence-panels article[hidden] { display: none; }
.evidence-panel-copy { min-width: 0; }
.evidence-panels h3 { margin-top: 2rem; font-size: clamp(2.35rem, 3.45vw, 3.7rem); }
.evidence-panels p { line-height: 1.7; }

.evidence-trace {
  --trace-line: var(--zn-chain-grey);
  --trace-signal: var(--zn-analyst-blue);
  --trace-ink: var(--zn-indigo);
  position: relative;
  align-self: stretch;
  display: grid;
  grid-template-rows: auto 1fr auto;
  min-height: 20rem;
  padding: 1.25rem;
  overflow: hidden;
  color: var(--trace-ink);
  background-color: var(--zn-case-file);
  background-image:
    linear-gradient(to right, color-mix(in srgb, var(--trace-line) 28%, transparent) 1px, transparent 1px),
    linear-gradient(to bottom, color-mix(in srgb, var(--trace-line) 28%, transparent) 1px, transparent 1px);
  background-size: 2rem 2rem;
  border: 1px solid var(--trace-line);
}

.evidence-trace::after {
  position: absolute;
  top: 0;
  right: 0;
  width: 2.5rem;
  height: 2.5rem;
  background: linear-gradient(135deg, transparent 49%, var(--trace-signal) 50% 52%, transparent 53%);
  content: "";
  opacity: .72;
}

.trace-ref,
.trace-legend {
  position: relative;
  z-index: 2;
  color: var(--trace-signal);
  font-family: var(--zn-mono);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .07em;
  line-height: 1.4;
  text-transform: uppercase;
}

.evidence-trace svg {
  align-self: center;
  width: 100%;
  height: auto;
  overflow: visible;
}

.trace-path,
.trace-secondary,
.trace-object,
.trace-end {
  fill: none;
  stroke: var(--trace-ink);
  stroke-width: 1.15;
  stroke-linecap: square;
  stroke-linejoin: miter;
  vector-effect: non-scaling-stroke;
}

.trace-path {
  stroke: var(--trace-signal);
  stroke-dasharray: 5 5;
  animation: evidenceTrace 10s linear infinite;
}

.trace-secondary { stroke: var(--trace-line); }
.trace-fragment { fill: var(--trace-signal); opacity: .72; }
.trace-pulse {
  fill: var(--trace-signal);
  filter: drop-shadow(0 0 4px color-mix(in srgb, var(--trace-signal) 55%, transparent));
  animation: evidencePulse 2.8s ease-in-out infinite;
}

.trace-legend {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .5rem;
  color: var(--zn-slate-ink);
}

.trace-legend span:nth-child(2) { text-align: center; }
.trace-legend span:last-child { text-align: right; }

:root[data-theme="dark"] .evidence-panels article {
  background: var(--zn-deep-night);
  border-color: var(--zn-trace-line);
}

:root[data-theme="dark"] .evidence-tabs button:hover,
:root[data-theme="dark"] .evidence-tabs button:focus-visible,
:root[data-theme="dark"] .evidence-tabs button[aria-selected="true"] {
  color: var(--zn-ice-white);
  background: color-mix(in srgb, var(--zn-signal-blue) 14%, transparent);
}

:root[data-theme="dark"] .evidence-tabs button svg { color: var(--zn-forensic-steel); }

:root[data-theme="dark"] .evidence-trace {
  --trace-line: var(--zn-trace-line);
  --trace-signal: var(--zn-signal-blue);
  --trace-ink: var(--zn-ice-white);
  background-color: var(--zn-midnight-evidence);
}

:root[data-theme="dark"] .trace-legend { color: var(--zn-cold-mist); }

@keyframes evidenceTrace { to { stroke-dashoffset: -40; } }
@keyframes evidencePulse {
  0%, 100% { opacity: .55; transform: scale(.85); transform-origin: center; }
  50% { opacity: 1; transform: scale(1.25); transform-origin: center; }
}

@media (max-width: 1050px) {
  .evidence-field-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .evidence-field-intro { position: static; }
  .evidence-field-intro h2 { max-width: 48rem; }
}

@media (max-width: 760px) {
  .evidence-tabs { grid-template-columns: 1fr 1fr; }
  .evidence-tabs button { min-height: 4.5rem; justify-content: flex-start; padding-inline: 1rem; }
  .evidence-tabs button:nth-child(2) { border-right: 0; }
  .evidence-tabs button:nth-child(-n+2) { border-bottom: 1px solid var(--zn-rule); }
  .evidence-panels article {
    grid-template-columns: 1fr;
    gap: 2.25rem;
    min-height: 0;
    padding: 2rem 1.25rem;
  }
  .evidence-panels h3 { margin-top: 1.6rem; }
  .evidence-trace { min-height: 17rem; }
}

@media (prefers-reduced-motion: reduce) {
  .trace-path,
  .trace-pulse { animation: none; }
}

/* V20 investigations practice: case reconstruction, capability architecture, and scope. */
.investigations-hero {
  position: relative;
  padding-block: clamp(4.5rem, 7vw, 7rem);
  overflow: hidden;
  background: var(--zn-indigo);
}

.investigations-hero::after { display: none; }

.investigations-hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(24rem, 1.08fr);
  gap: clamp(3rem, 7vw, 7rem);
  align-items: center;
  min-height: 34rem;
}

.investigations-hero-copy h1 {
  max-width: 46rem;
  margin-bottom: 1.75rem;
  font-size: clamp(3.75rem, 6vw, 6.4rem);
  line-height: .98;
}

.investigations-hero-copy .lead {
  max-width: 42rem;
  margin-top: 0;
  color: var(--zn-cold-mist);
  font-size: clamp(1.08rem, 1.5vw, 1.25rem);
  line-height: 1.65;
}

.hero-practice-record {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: clamp(2.5rem, 5vw, 4rem) 0 0;
  border-top: 1px solid var(--zn-trace-line);
  border-bottom: 1px solid var(--zn-trace-line);
}

.hero-practice-record div {
  padding: 1.15rem .9rem 1.15rem 0;
}

.hero-practice-record div + div {
  padding-left: .9rem;
  border-left: 1px solid var(--zn-trace-line);
}

.hero-practice-record dt,
.hero-practice-record dd {
  margin: 0;
  font-family: var(--zn-mono);
  line-height: 1.4;
  text-transform: uppercase;
}

.hero-practice-record dt {
  color: var(--zn-forensic-steel);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .065em;
}

.hero-practice-record dd {
  margin-top: .4rem;
  color: var(--zn-ice-white);
  font-size: .78rem;
  letter-spacing: .035em;
}

.investigation-schematic {
  --case-line: var(--zn-trace-line);
  --case-signal: var(--zn-signal-blue);
  --case-ink: var(--zn-ice-white);
  margin: 0;
  padding: 1.25rem;
  color: var(--case-ink);
  background: var(--zn-midnight-evidence);
  border: 1px solid var(--case-line);
}

.investigation-schematic figcaption {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 1rem;
  color: var(--zn-forensic-steel);
  border-bottom: 1px solid var(--case-line);
  font-family: var(--zn-mono);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .065em;
  line-height: 1.4;
  text-transform: uppercase;
}

.investigation-schematic figcaption strong {
  position: relative;
  padding-left: 1rem;
  color: var(--zn-ice-white);
}

.investigation-schematic figcaption strong::before {
  position: absolute;
  top: .42em;
  left: 0;
  width: .42rem;
  height: .42rem;
  background: var(--case-signal);
  transform: rotate(45deg);
  content: "";
}

.investigation-schematic-stage {
  position: relative;
  min-height: 24rem;
  overflow: hidden;
  background-image:
    linear-gradient(to right, color-mix(in srgb, var(--case-line) 30%, transparent) 1px, transparent 1px),
    linear-gradient(to bottom, color-mix(in srgb, var(--case-line) 30%, transparent) 1px, transparent 1px);
  background-size: 3rem 3rem;
}

.investigation-schematic-stage svg {
  position: absolute;
  inset: 1rem 0 0;
  width: 100%;
  height: calc(100% - 1rem);
  overflow: visible;
}

.case-grid-line,
.case-route,
.case-node,
.case-artifact,
.case-examination,
.case-examination-inner,
.case-lens,
.case-finding {
  fill: none;
  stroke: var(--case-line);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.case-grid-line { opacity: .36; }
.case-route {
  stroke: var(--case-signal);
  stroke-dasharray: 5 6;
  animation: caseRoute 12s linear infinite;
}
.case-route-secondary { stroke: var(--zn-forensic-steel); opacity: .58; animation-direction: reverse; }
.case-node { fill: var(--zn-midnight-evidence); stroke: var(--zn-forensic-steel); }
.case-artifact { fill: color-mix(in srgb, var(--case-signal) 22%, var(--zn-midnight-evidence)); stroke: var(--case-signal); }
.case-examination { stroke: var(--case-signal); stroke-width: 1.5; }
.case-examination-inner { stroke: var(--zn-forensic-steel); stroke-dasharray: 3 4; }
.case-lens { stroke: var(--case-signal); stroke-width: 2; }
.case-finding { stroke: var(--zn-ice-white); stroke-width: 1.4; }
.case-signal {
  fill: var(--case-signal);
  filter: drop-shadow(0 0 5px color-mix(in srgb, var(--case-signal) 70%, transparent));
  animation: casePulse 2.8s ease-in-out infinite;
}

.case-coordinate {
  position: absolute;
  z-index: 2;
  color: var(--zn-forensic-steel);
  font-family: var(--zn-mono);
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .055em;
  line-height: 1.35;
  text-transform: uppercase;
}
.coordinate-a { bottom: 12%; left: 4%; }
.coordinate-b { top: 10%; left: 47%; }
.coordinate-c { right: 3%; bottom: 14%; }

.investigation-schematic-legend {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  padding-top: 1rem;
  color: var(--zn-cold-mist);
  border-top: 1px solid var(--case-line);
  font-family: var(--zn-mono);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.investigation-schematic-legend span:nth-child(2) { text-align: center; }
.investigation-schematic-legend span:last-child { text-align: right; }

.investigations-practice { background: var(--zn-evidence-white); }

.investigations-section-head {
  display: grid;
  grid-template-columns: minmax(12rem, .35fr) minmax(0, .65fr);
  gap: clamp(3rem, 8vw, 8rem);
  align-items: start;
  margin-bottom: clamp(3rem, 5vw, 5rem);
}

.investigations-section-head .side-label {
  position: static;
  margin: 0;
}

.investigations-section-head h2 {
  max-width: 50rem;
  margin: 0 0 1.5rem;
}

.investigations-section-head > div:last-child > p {
  max-width: 47rem;
  margin: 0;
  color: var(--zn-slate-ink);
  font-size: 1.08rem;
  line-height: 1.72;
}

.investigation-process {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-bottom: clamp(3rem, 5vw, 5rem);
  border-top: 1px solid var(--zn-chain-grey);
  border-bottom: 1px solid var(--zn-chain-grey);
}

.investigation-process > div {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .1rem .8rem;
  align-items: center;
  padding: 1.4rem;
}

.investigation-process > div + div { border-left: 1px solid var(--zn-chain-grey); }
.investigation-process > div:not(:last-child)::after {
  position: absolute;
  top: 50%;
  right: -.28rem;
  z-index: 2;
  width: .5rem;
  height: .5rem;
  background: var(--zn-evidence-white);
  border-top: 1px solid var(--zn-analyst-blue);
  border-right: 1px solid var(--zn-analyst-blue);
  transform: translateY(-50%) rotate(45deg);
  content: "";
}

.investigation-process svg {
  grid-row: 1 / 3;
  width: 1.5rem;
  height: 1.5rem;
  color: var(--zn-analyst-blue);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.45;
}
.investigation-process span { color: var(--zn-indigo); font-weight: 700; }
.investigation-process small {
  color: var(--zn-steel-blue);
  font-family: var(--zn-mono);
  font-size: .7rem;
  letter-spacing: .035em;
  line-height: 1.35;
  text-transform: uppercase;
}

.investigation-capabilities {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--zn-chain-grey);
  border-left: 1px solid var(--zn-chain-grey);
  list-style: none;
}

.investigation-capabilities > li {
  position: relative;
  min-height: 23rem;
  padding: clamp(2rem, 4vw, 3.5rem);
  background: var(--zn-frost-white);
  border-right: 1px solid var(--zn-chain-grey);
  border-bottom: 1px solid var(--zn-chain-grey);
  transition: background-color 180ms ease;
}

.investigation-capabilities > li:nth-child(2),
.investigation-capabilities > li:nth-child(3) { background: var(--zn-case-file); }

.investigation-capabilities > li::before {
  position: absolute;
  top: -1px;
  left: clamp(2rem, 4vw, 3.5rem);
  width: 4rem;
  height: 2px;
  background: var(--zn-analyst-blue);
  content: "";
  transition: width 220ms ease;
}
.investigation-capabilities > li:hover::before { width: 7rem; }

.capability-heading {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem;
  align-items: start;
}
.capability-heading .num {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  color: var(--zn-analyst-blue);
  border: 1px solid var(--zn-chain-grey);
}
.capability-heading .num svg {
  width: 1.15rem;
  height: 1.15rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
}
.capability-heading h3 {
  margin: 0;
  color: var(--zn-indigo);
  font-family: var(--zn-heading);
  font-size: clamp(2rem, 3vw, 3rem);
  font-weight: 400;
  line-height: 1.08;
}
.investigation-capabilities > li > p {
  max-width: 34rem;
  margin: 2rem 0 2.5rem 3rem;
  color: var(--zn-slate-ink);
  line-height: 1.7;
}
.service-record { display: grid; gap: .85rem; margin: 1.35rem 0 1.6rem; }
.service-record > div { padding-top: .75rem; border-top: 1px solid var(--zn-chain-grey); }
.service-record dt { margin-bottom: .25rem; color: var(--zn-analyst-blue); font-family: var(--zn-mono); font-size: .72rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.service-record dd { margin: 0; color: var(--zn-slate-ink); font-size: .92rem; line-height: 1.58; }
.assurance-independence { margin-top: 2rem; padding: 1.5rem 1.6rem; border: 1px solid var(--zn-chain-grey); border-left: 3px solid var(--zn-analyst-blue); }
.assurance-independence strong { color: var(--zn-indigo); font-family: var(--zn-heading); font-size: 1.2rem; font-weight: 500; }
.assurance-independence p { max-width: 58rem; margin: .55rem 0 0; color: var(--zn-slate-ink); line-height: 1.65; }
:root[data-theme="dark"] .service-record > div,
:root[data-theme="dark"] .assurance-independence { border-color: var(--zn-trace-line); }
:root[data-theme="dark"] .service-record dd,
:root[data-theme="dark"] .assurance-independence p { color: var(--zn-cold-mist); }
:root[data-theme="dark"] .assurance-independence strong { color: var(--zn-ice-white); }
@media (max-width: 760px) {
  .contact-page .contact-card { order: -1; }
}

.about-examples { border-top: 1px solid var(--zn-chain-grey); }
.about-examples-head { display: grid; grid-template-columns: minmax(10rem, .48fr) minmax(0, 1.52fr); gap: clamp(2rem, 6vw, 7rem); align-items: start; margin-bottom: 2.75rem; }
.about-examples-head h2 { max-width: 15ch; margin: 0 0 1rem; color: var(--zn-indigo); font-size: clamp(2.8rem, 4.8vw, 5.2rem); line-height: 1; }
.about-examples-head p:last-child { max-width: 48rem; color: var(--zn-slate-ink); line-height: 1.7; }
.about-example-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--zn-chain-grey); }
.about-example-grid > article { display: flex; flex-direction: column; min-width: 0; padding: clamp(1.5rem, 2.5vw, 2.25rem); }
.about-example-grid > article + article { border-left: 1px solid var(--zn-chain-grey); }
.about-example-grid .example-type { color: var(--zn-analyst-blue); font-family: var(--zn-mono); font-size: .72rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.about-example-grid h3 { margin: 1rem 0 1.35rem; color: var(--zn-indigo); font-size: clamp(1.55rem, 2.2vw, 2.25rem); line-height: 1.12; }
.about-example-grid dl { display: grid; gap: .85rem; margin: 0 0 1.65rem; }
.about-example-grid dl > div { padding-top: .7rem; border-top: 1px solid var(--zn-chain-grey); }
.about-example-grid dt { margin-bottom: .22rem; color: var(--zn-analyst-blue); font-family: var(--zn-mono); font-size: .68rem; font-weight: 700; letter-spacing: .045em; text-transform: uppercase; }
.about-example-grid dd { margin: 0; color: var(--zn-slate-ink); font-size: .9rem; line-height: 1.58; }
.about-example-grid .text-link { margin-top: auto; }
:root[data-theme="dark"] .about-examples { background: var(--zn-midnight-evidence); border-color: var(--zn-trace-line); }
:root[data-theme="dark"] .about-examples-head h2,
:root[data-theme="dark"] .about-example-grid h3 { color: var(--zn-ice-white); }
:root[data-theme="dark"] .about-examples-head p:last-child,
:root[data-theme="dark"] .about-example-grid dd { color: var(--zn-cold-mist); }
:root[data-theme="dark"] .about-example-grid,
:root[data-theme="dark"] .about-example-grid > article + article,
:root[data-theme="dark"] .about-example-grid dl > div { border-color: var(--zn-trace-line); }
@media (max-width: 980px) {
  .about-example-grid { grid-template-columns: 1fr; }
  .about-example-grid > article + article { border-top: 1px solid var(--zn-chain-grey); border-left: 0; }
}
@media (max-width: 760px) {
  .about-examples-head { grid-template-columns: 1fr; }
}

.training-commissioning { margin-top: clamp(3rem, 6vw, 5rem); padding-top: 2rem; border-top: 1px solid var(--zn-trace-line); }
.training-commissioning-head { display: grid; grid-template-columns: minmax(10rem, .45fr) minmax(0, 1.55fr); gap: clamp(2rem, 5vw, 6rem); align-items: start; }
.training-commissioning-head > span { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.training-commissioning-head h3 { max-width: 17ch; margin: 0 0 .8rem; color: var(--zn-ice-white); font-size: clamp(2rem, 3.4vw, 3.7rem); line-height: 1.05; }
.training-commissioning-head p { max-width: 48rem; color: var(--zn-cold-mist); line-height: 1.7; }
.training-format-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 2.5rem; border: 1px solid var(--zn-trace-line); }
.training-format-grid article { padding: clamp(1.4rem, 2.6vw, 2.3rem); }
.training-format-grid article:nth-child(even) { border-left: 1px solid var(--zn-trace-line); }
.training-format-grid article:nth-child(n+3) { border-top: 1px solid var(--zn-trace-line); }
.training-format-grid article > span { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .7rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.training-format-grid h4 { margin: .8rem 0 .65rem; color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: 1.65rem; font-weight: 500; }
.training-format-grid article > p { color: var(--zn-cold-mist); line-height: 1.65; }
.training-format-grid dl { display: grid; gap: .7rem; margin: 1.2rem 0 0; }
.training-format-grid dl > div { padding-top: .65rem; border-top: 1px solid var(--zn-trace-line); }
.training-format-grid dt { margin-bottom: .2rem; color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .66rem; font-weight: 700; letter-spacing: .045em; text-transform: uppercase; }
.training-format-grid dd { margin: 0; color: var(--zn-cold-mist); font-size: .9rem; line-height: 1.55; }
.training-format-note { max-width: 60rem; margin: 1.3rem 0 0; color: var(--zn-cold-mist); font-size: .86rem; line-height: 1.6; }
@media (max-width: 760px) {
  .training-commissioning-head,
  .training-format-grid { grid-template-columns: 1fr; }
  .training-format-grid article:nth-child(even) { border-left: 0; }
  .training-format-grid article + article { border-top: 1px solid var(--zn-trace-line); }
}

/* Homepage hero: use the secondary field to establish client fit. */
.hero-matter-panel { width: min(100%, 31rem); margin-bottom: 5.5rem; border-top: 1px solid rgba(242,245,248,.28); border-bottom: 1px solid rgba(242,245,248,.2); background: rgba(11,15,20,.16); }
.hero-matter-heading { padding: 1.15rem 1rem 1.2rem; border-bottom: 1px solid rgba(242,245,248,.18); }
.hero-matter-heading > span { color: #84A3C0; font-family: var(--zn-mono); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.hero-matter-heading h2 { max-width: 19ch; margin: .65rem 0 0; color: #F2F5F8; font-family: var(--zn-heading); font-size: clamp(1.65rem,2.15vw,2.35rem); font-weight: 400; line-height: 1.08; }
.hero-matter-panel ul { margin: 0; padding: 0; list-style: none; }
.hero-matter-panel li + li { border-top: 1px solid rgba(242,245,248,.14); }
.hero-matter-panel a { display: grid; grid-template-columns: 2.2rem 1fr; gap: .75rem; align-items: start; padding: .8rem 1rem; color: #F2F5F8; text-decoration: none; transition: color 180ms ease, background 180ms ease; }
.hero-matter-panel a:hover,
.hero-matter-panel a:focus-visible { color: #FFFFFF; background: rgba(92,132,182,.16); }
.hero-matter-panel a svg { width: 1.15rem; height: 1.15rem; margin-top: .08rem; color: #84A3C0; fill: none; stroke: currentColor; stroke-linecap: square; stroke-linejoin: miter; stroke-width: 1.45; }
.hero-matter-panel a strong { font-size: .9rem; font-weight: 600; line-height: 1.42; }
@media (min-width: 1051px) {
  .hero-grid { min-height: clamp(32rem, calc(90svh - 5.5rem), 37rem); align-items: center; }
  .hero-orientation { min-height: 28rem; }
}
@media (max-width: 760px) {
  .hero-matter-panel { margin-bottom: 5.25rem; }
  .hero-matter-heading h2 { font-size: 1.8rem; }
}
.investigation-capabilities > li > .text-link { margin-left: 3rem; }

.investigation-scope {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.25rem;
  align-items: start;
  margin-top: clamp(2rem, 4vw, 3.5rem);
  padding: clamp(1.75rem, 3vw, 2.5rem);
  background: var(--zn-case-file);
  border: 1px solid var(--zn-chain-grey);
  border-left: 3px solid var(--zn-analyst-blue);
}
.investigation-scope > svg {
  width: 1.75rem;
  height: 1.75rem;
  color: var(--zn-analyst-blue);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.45;
}
.investigation-scope span {
  color: var(--zn-analyst-blue);
  font-family: var(--zn-mono);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.investigation-scope p { max-width: 58rem; margin: .65rem 0 0; color: var(--zn-slate-ink); }
.investigation-scope strong { color: var(--zn-indigo); font-family: var(--zn-heading); font-size: 1.25rem; font-weight: 400; }

:root[data-theme="dark"] .investigations-hero { background: var(--zn-midnight-evidence); }
:root[data-theme="dark"] .investigations-practice { background: var(--zn-deep-night); }
:root[data-theme="dark"] .investigations-section-head > div:last-child > p,
:root[data-theme="dark"] .investigation-capabilities > li > p,
:root[data-theme="dark"] .investigation-scope p { color: var(--zn-cold-mist); }
:root[data-theme="dark"] .investigation-process,
:root[data-theme="dark"] .investigation-process > div + div,
:root[data-theme="dark"] .investigation-capabilities,
:root[data-theme="dark"] .investigation-capabilities > li,
:root[data-theme="dark"] .capability-heading .num,
:root[data-theme="dark"] .investigation-scope { border-color: var(--zn-trace-line); }
:root[data-theme="dark"] .investigation-process > div:not(:last-child)::after { background: var(--zn-deep-night); border-color: var(--zn-forensic-steel); }
:root[data-theme="dark"] .investigation-process span,
:root[data-theme="dark"] .capability-heading h3,
:root[data-theme="dark"] .investigation-scope strong { color: var(--zn-ice-white); }
:root[data-theme="dark"] .investigation-process small { color: var(--zn-forensic-steel); }
:root[data-theme="dark"] .investigation-capabilities > li { background: var(--zn-midnight-evidence); }
:root[data-theme="dark"] .investigation-capabilities > li:nth-child(2),
:root[data-theme="dark"] .investigation-capabilities > li:nth-child(3),
:root[data-theme="dark"] .investigation-scope { background: var(--zn-surface); }

@keyframes caseRoute { to { stroke-dashoffset: -66; } }
@keyframes casePulse {
  0%, 100% { opacity: .55; transform: scale(.82); transform-origin: center; }
  50% { opacity: 1; transform: scale(1.35); transform-origin: center; }
}

@media (max-width: 1050px) {
  .investigations-hero-grid { grid-template-columns: 1fr; min-height: 0; }
  .investigations-hero-copy h1 { max-width: 58rem; }
  .investigation-schematic { max-width: 48rem; }
}

@media (max-width: 760px) {
  .investigations-hero { padding-block: 4.25rem 3rem; }
  .investigations-hero-grid { gap: 2rem; }
  .investigations-hero-copy h1 { font-size: clamp(3rem, 14vw, 4.2rem); line-height: 1.02; }
  .hero-practice-record { grid-template-columns: repeat(3, 1fr); }
  .hero-practice-record div { padding: .8rem .45rem .8rem 0; }
  .hero-practice-record div + div { padding: .8rem .35rem .8rem .55rem; border-top: 0; border-left: 1px solid var(--zn-trace-line); }
  .hero-practice-record dt { font-size: .58rem; }
  .hero-practice-record dd { font-size: .65rem; }
  .investigation-schematic { padding: 1rem; }
  .investigation-schematic figcaption { align-items: flex-start; font-size: .65rem; }
  .investigation-schematic-stage { min-height: 17rem; }
  .case-coordinate { font-size: .56rem; }
  .investigation-schematic-legend { gap: .5rem; font-size: .58rem; }
  .investigations-section-head { grid-template-columns: 1fr; gap: 1.75rem; }
  .investigation-process { grid-template-columns: 1fr 1fr; }
  .investigation-process > div:nth-child(3) { border-left: 0; border-top: 1px solid var(--zn-chain-grey); }
  .investigation-process > div:nth-child(4) { border-top: 1px solid var(--zn-chain-grey); }
  .investigation-process > div:nth-child(2)::after { display: none; }
  .investigation-capabilities { grid-template-columns: 1fr; }
  .investigation-capabilities > li { min-height: 0; padding: 2rem 1.35rem 2.5rem; }
  .investigation-capabilities > li:nth-child(3) { background: var(--zn-frost-white); }
  .investigation-capabilities > li:nth-child(4) { background: var(--zn-case-file); }
  .investigation-capabilities > li::before { left: 1.35rem; }
  .investigation-capabilities > li > p { margin-left: 0; }
  .investigation-capabilities > li > .text-link { margin-left: 0; }
  .investigation-scope { grid-template-columns: 1fr; }
  :root[data-theme="dark"] .investigation-capabilities > li:nth-child(3) { background: var(--zn-midnight-evidence); }
  :root[data-theme="dark"] .investigation-capabilities > li:nth-child(4) { background: var(--zn-surface); }
}

@media (prefers-reduced-motion: reduce) {
  .case-route,
  .case-signal { animation: none; }
}

/* V21 AI forensics: distinguish incident reconstruction from broader AI assurance. */
.ai-forensics-feature {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(21rem, .92fr);
  gap: clamp(2.5rem, 6vw, 6rem);
  margin: 0 0 clamp(3rem, 5vw, 5rem);
  padding: clamp(2.5rem, 5vw, 5rem);
  overflow: hidden;
  color: var(--zn-ice-white);
  background: var(--zn-indigo);
  border-top: 2px solid var(--zn-signal-blue);
}

.ai-forensics-feature::before {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, rgba(132,163,192,.08) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(132,163,192,.08) 1px, transparent 1px);
  background-size: 3.5rem 3.5rem;
  mask-image: linear-gradient(to right, transparent 0, #000 58%, #000 100%);
  content: "";
  pointer-events: none;
}

.ai-forensics-copy,
.ai-evidence-register { position: relative; z-index: 1; }

.ai-forensics-register-column {
  position: relative;
  z-index: 1;
  align-self: start;
  display: grid;
  gap: 1.25rem;
}

.ai-forensics-copy .kicker {
  margin: 0 0 1.75rem;
  color: var(--zn-forensic-steel);
  font-family: var(--zn-mono);
  font-size: .86rem;
  font-weight: 700;
  letter-spacing: .055em;
  line-height: 1.45;
  text-transform: uppercase;
}

.ai-forensics-copy .icon-label svg {
  color: var(--zn-forensic-steel);
  border-color: var(--zn-trace-line);
  background: rgba(132,163,192,.08);
}

.ai-forensics-copy h3 {
  max-width: 48rem;
  margin: 0 0 1.75rem;
  color: var(--zn-ice-white);
  font-family: var(--zn-heading);
  font-size: clamp(2.65rem, 4.2vw, 4.5rem);
  font-weight: 400;
  line-height: 1.02;
}

.ai-forensics-copy > p:not(.kicker) {
  max-width: 45rem;
  color: var(--zn-cold-mist);
  font-size: 1.03rem;
  line-height: 1.72;
}

.ai-forensics-copy .ai-forensics-principle {
  margin: 2rem 0 2.5rem;
  padding: .2rem 0 .2rem 1.25rem;
  color: var(--zn-ice-white);
  border-left: 2px solid var(--zn-signal-blue);
  font-family: var(--zn-heading);
  font-size: 1.25rem;
  line-height: 1.5;
}

.ai-forensics-copy .text-link {
  color: var(--zn-ice-white);
  border-color: var(--zn-signal-blue);
}

.ai-evidence-register {
  align-self: start;
  padding: 1.25rem;
  overflow: hidden;
  background: var(--zn-midnight-evidence);
  border: 1px solid var(--zn-trace-line);
}

.ai-evidence-register::after {
  position: absolute;
  z-index: 0;
  right: 0;
  left: 0;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--zn-signal-blue), transparent);
  box-shadow: 0 0 10px rgba(92,132,182,.45);
  content: "";
  opacity: .55;
  animation: aiRegisterScan 7s ease-in-out infinite;
}

.ai-register-head {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .2rem 0 1rem;
  color: var(--zn-forensic-steel);
  border-bottom: 1px solid var(--zn-trace-line);
  font-family: var(--zn-mono);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .055em;
  line-height: 1.4;
  text-transform: uppercase;
}

.ai-register-head strong { color: var(--zn-ice-white); font-weight: 700; }

.ai-evidence-register ul {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ai-evidence-register li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem;
  align-items: center;
  min-height: 7rem;
  padding: 1.15rem;
  border-bottom: 1px solid var(--zn-trace-line);
  transition: background-color 180ms ease, padding 180ms ease;
}

.ai-evidence-register li:nth-child(odd) { border-right: 1px solid var(--zn-trace-line); }
.ai-evidence-register li:nth-child(n+3) { border-bottom: 0; }
.ai-evidence-register li:hover { padding-left: 1.4rem; background: rgba(92,132,182,.08); }

.ai-evidence-register li > svg {
  width: 1.6rem;
  height: 1.6rem;
  color: var(--zn-forensic-steel);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.4;
  stroke-linecap: square;
  stroke-linejoin: miter;
}

.ai-evidence-register li > span { display: grid; gap: .25rem; }
.ai-evidence-register li strong { color: var(--zn-ice-white); font-size: .97rem; }
.ai-evidence-register li small {
  color: var(--zn-forensic-steel);
  font-family: var(--zn-mono);
  font-size: .68rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.ai-assurance-bridge {
  position: relative;
  display: grid;
  gap: .55rem;
  padding: 1.4rem 3.5rem 1.4rem 1.4rem;
  color: var(--zn-ice-white);
  background: rgba(8,19,33,.42);
  border: 1px solid var(--zn-trace-line);
  text-decoration: none;
  transition: background-color 180ms ease, border-color 180ms ease;
}

.ai-assurance-bridge::after {
  position: absolute;
  top: 1.4rem;
  right: 1.4rem;
  color: var(--zn-signal-blue);
  font-size: 1.1rem;
  content: "↗";
}

.ai-assurance-bridge:hover,
.ai-assurance-bridge:focus-visible {
  color: var(--zn-ice-white);
  background: rgba(92,132,182,.12);
  border-color: var(--zn-signal-blue);
}

.ai-assurance-bridge > span,
.ai-assurance-bridge > small {
  color: var(--zn-forensic-steel);
  font-family: var(--zn-mono);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .05em;
  line-height: 1.4;
  text-transform: uppercase;
}

.ai-assurance-bridge > strong {
  color: var(--zn-ice-white);
  font-family: var(--zn-heading);
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.35;
}

.ai-assurance-bridge > p {
  margin: 0;
  color: var(--zn-cold-mist);
  font-size: .9rem;
  line-height: 1.55;
}

/* The feature remains a dark evidentiary surface in either site theme. */
:root:not([data-theme="dark"]) .investigations-practice .ai-forensics-feature,
:root[data-theme="dark"] .investigations-practice .ai-forensics-feature {
  color: var(--zn-ice-white);
  background: var(--zn-indigo);
}

:root:not([data-theme="dark"]) .investigations-practice .ai-forensics-feature h3,
:root[data-theme="dark"] .investigations-practice .ai-forensics-feature h3,
:root:not([data-theme="dark"]) .investigations-practice .ai-forensics-feature .ai-forensics-principle,
:root[data-theme="dark"] .investigations-practice .ai-forensics-feature .ai-forensics-principle {
  color: var(--zn-ice-white);
}

:root:not([data-theme="dark"]) .investigations-practice .ai-forensics-feature .kicker,
:root[data-theme="dark"] .investigations-practice .ai-forensics-feature .kicker,
:root:not([data-theme="dark"]) .investigations-practice .ai-forensics-feature > .ai-forensics-copy > p:not(.kicker),
:root[data-theme="dark"] .investigations-practice .ai-forensics-feature > .ai-forensics-copy > p:not(.kicker) {
  color: var(--zn-cold-mist);
}

:root:not([data-theme="dark"]) .investigations-practice .ai-forensics-feature .ai-forensics-principle,
:root[data-theme="dark"] .investigations-practice .ai-forensics-feature .ai-forensics-principle {
  color: var(--zn-ice-white);
}

:root:not([data-theme="dark"]) .investigations-practice .ai-forensics-feature .text-link,
:root[data-theme="dark"] .investigations-practice .ai-forensics-feature .text-link {
  color: var(--zn-ice-white);
  border-color: var(--zn-signal-blue);
}

:root:not([data-theme="dark"]) .investigations-practice .ai-assurance-bridge > strong,
:root[data-theme="dark"] .investigations-practice .ai-assurance-bridge > strong {
  color: var(--zn-ice-white);
}

:root:not([data-theme="dark"]) .investigations-practice .ai-assurance-bridge > p,
:root[data-theme="dark"] .investigations-practice .ai-assurance-bridge > p {
  color: var(--zn-cold-mist);
}

@keyframes aiRegisterScan {
  0%, 12% { top: 4.5rem; opacity: 0; }
  24% { opacity: .55; }
  78% { top: calc(100% - 1.5rem); opacity: .55; }
  90%, 100% { top: calc(100% - 1.5rem); opacity: 0; }
}

@media (max-width: 900px) {
  .ai-forensics-feature { grid-template-columns: 1fr; }
  .ai-evidence-register { max-width: 44rem; }
}

@media (max-width: 760px) {
  .ai-forensics-feature { gap: 2.5rem; padding: 2.25rem 1.35rem; }
  .ai-forensics-copy .kicker { font-size: .78rem; }
  .ai-forensics-copy h3 { font-size: clamp(2.5rem, 12vw, 3.5rem); }
  .ai-evidence-register { padding: 1rem; }
  .ai-register-head { display: grid; }
  .ai-evidence-register li { min-height: 6rem; padding: 1rem; }
}

@media (max-width: 520px) {
  .ai-evidence-register ul { grid-template-columns: 1fr; }
  .ai-evidence-register li { min-height: 4.65rem; padding: .85rem .5rem; }
  .ai-evidence-register li:nth-child(odd) { border-right: 0; }
  .ai-evidence-register li:nth-child(n+3) { border-bottom: 1px solid var(--zn-trace-line); }
  .ai-evidence-register li:last-child { border-bottom: 0; }
  .ai-evidence-register li:hover { padding-left: .85rem; }
}

@media (prefers-reduced-motion: reduce) {
  .ai-evidence-register::after { display: none; animation: none; }
}

/* V22 AI assurance: examine the claim across evidence, behaviour, controls, and accountability. */
.ai-assurance-hero {
  position: relative;
  padding-block: clamp(4.5rem, 7vw, 7rem);
  overflow: hidden;
  background: var(--zn-indigo);
}

.ai-assurance-hero::after { display: none; }

.ai-assurance-hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, .98fr) minmax(24rem, 1.02fr);
  gap: clamp(3rem, 7vw, 7rem);
  align-items: center;
  min-height: 35rem;
}

.ai-assurance-hero-copy h1 {
  max-width: 48rem;
  margin-bottom: 1.75rem;
  font-size: clamp(3.6rem, 5.7vw, 6.2rem);
  line-height: .98;
}

.ai-assurance-hero-copy .lead {
  max-width: 43rem;
  margin-top: 0;
  color: var(--zn-cold-mist);
  font-size: clamp(1.08rem, 1.5vw, 1.25rem);
  line-height: 1.65;
}

.assurance-hero-record {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: clamp(2.5rem, 5vw, 4rem) 0 0;
  border-top: 1px solid var(--zn-trace-line);
  border-bottom: 1px solid var(--zn-trace-line);
}
.assurance-hero-record div { padding: 1.15rem .85rem 1.15rem 0; }
.assurance-hero-record div + div { padding-left: .85rem; border-left: 1px solid var(--zn-trace-line); }
.assurance-hero-record dt,
.assurance-hero-record dd { margin: 0; font-family: var(--zn-mono); line-height: 1.4; text-transform: uppercase; }
.assurance-hero-record dt { color: var(--zn-forensic-steel); font-size: .7rem; font-weight: 700; letter-spacing: .06em; }
.assurance-hero-record dd { margin-top: .4rem; color: var(--zn-ice-white); font-size: .78rem; letter-spacing: .03em; }

.assurance-field {
  --assurance-line: var(--zn-trace-line);
  --assurance-signal: var(--zn-signal-blue);
  margin: 0;
  padding: 1.25rem;
  color: var(--zn-ice-white);
  background: var(--zn-midnight-evidence);
  border: 1px solid var(--assurance-line);
}

.assurance-field figcaption {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 1rem;
  color: var(--zn-forensic-steel);
  border-bottom: 1px solid var(--assurance-line);
  font-family: var(--zn-mono);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.assurance-field figcaption strong { color: var(--zn-ice-white); }

.assurance-field-stage {
  position: relative;
  min-height: 25rem;
  overflow: hidden;
  background-image:
    linear-gradient(to right, rgba(42,59,84,.34) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(42,59,84,.34) 1px, transparent 1px);
  background-size: 3.25rem 3.25rem;
}
.assurance-field-stage > svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.assurance-grid-line,
.assurance-route,
.assurance-orbit,
.assurance-core-shape,
.assurance-source {
  fill: none;
  stroke: var(--assurance-line);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}
.assurance-grid-line { opacity: .35; }
.assurance-route { stroke: var(--assurance-signal); stroke-dasharray: 5 6; animation: assuranceRoute 12s linear infinite; }
.assurance-orbit { stroke: var(--zn-forensic-steel); }
.orbit-one { stroke-dasharray: 4 7; animation: assuranceOrbit 24s linear infinite; transform-origin: 260px 190px; }
.orbit-two { stroke: var(--assurance-signal); stroke-dasharray: 2 5; animation: assuranceOrbit 16s linear infinite reverse; transform-origin: 260px 190px; }
.assurance-core-shape { fill: rgba(92,132,182,.1); stroke: var(--assurance-signal); stroke-width: 1.5; }
.assurance-source { fill: var(--zn-midnight-evidence); stroke: var(--zn-forensic-steel); }
.assurance-signal { fill: var(--assurance-signal); filter: drop-shadow(0 0 5px rgba(92,132,182,.7)); animation: assurancePulse 2.8s ease-in-out infinite; }

.assurance-field-label {
  position: absolute;
  color: var(--zn-forensic-steel);
  font-family: var(--zn-mono);
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.field-evidence { top: 16%; left: 4%; }
.field-behaviour { top: 16%; right: 4%; }
.field-controls { bottom: 16%; left: 4%; }
.field-accountability { right: 4%; bottom: 16%; }

.assurance-field-core {
  position: absolute;
  top: 50%;
  left: 50%;
  display: grid;
  justify-items: center;
  width: 9rem;
  padding: .75rem;
  text-align: center;
  background: var(--zn-midnight-evidence);
  transform: translate(-50%, -50%);
}
.assurance-field-core img { width: 2.7rem; height: 3rem; object-fit: contain; }
.assurance-field-core span,
.assurance-field-core strong { font-family: var(--zn-mono); text-transform: uppercase; }
.assurance-field-core span { color: var(--zn-forensic-steel); font-size: .62rem; letter-spacing: .05em; }
.assurance-field-core strong { margin-top: .2rem; color: var(--zn-ice-white); font-size: .66rem; letter-spacing: .035em; }

.assurance-field-legend {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  padding-top: 1rem;
  color: var(--zn-cold-mist);
  border-top: 1px solid var(--assurance-line);
  font-family: var(--zn-mono);
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.assurance-field-legend span:nth-child(2) { text-align: center; }
.assurance-field-legend span:last-child { text-align: right; }

.assurance-practice { background: var(--zn-evidence-white); }
.assurance-section-head {
  display: grid;
  grid-template-columns: minmax(12rem, .35fr) minmax(0, .65fr);
  gap: clamp(3rem, 8vw, 8rem);
  align-items: start;
  margin-bottom: clamp(3rem, 5vw, 5rem);
}
.assurance-section-head .side-label { position: static; margin: 0; }
.assurance-section-head h2 { max-width: 52rem; margin: 0 0 1.5rem; }
.assurance-section-head > div:last-child > p { max-width: 49rem; margin: 0; color: var(--zn-slate-ink); font-size: 1.08rem; line-height: 1.72; }

.assurance-dimensions {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-bottom: clamp(3rem, 5vw, 5rem);
  border-top: 1px solid var(--zn-chain-grey);
  border-bottom: 1px solid var(--zn-chain-grey);
}
.assurance-dimensions > div {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .15rem .85rem;
  align-items: center;
  min-height: 7rem;
  padding: 1.25rem;
}
.assurance-dimensions > div + div { border-left: 1px solid var(--zn-chain-grey); }
.assurance-dimensions svg { grid-row: 1 / 3; width: 1.55rem; height: 1.55rem; color: var(--zn-analyst-blue); fill: none; stroke: currentColor; stroke-width: 1.45; }
.assurance-dimensions span { color: var(--zn-analyst-blue); font-family: var(--zn-mono); font-size: .7rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.assurance-dimensions strong { color: var(--zn-indigo); font-size: .98rem; line-height: 1.35; }

.assurance-capabilities {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 1px;
  margin: 0;
  padding: 1px;
  background: var(--zn-chain-grey);
  list-style: none;
}
.assurance-capabilities > li {
  position: relative;
  grid-column: span 7;
  min-height: 23rem;
  padding: clamp(2rem, 4vw, 3.5rem);
  background: var(--zn-frost-white);
}
.assurance-capabilities > li:nth-child(2),
.assurance-capabilities > li:nth-child(3) { grid-column: span 5; background: var(--zn-case-file); }
.assurance-capabilities > li:nth-child(4) { grid-column: span 7; }
.assurance-capabilities > li::before {
  position: absolute;
  top: 0;
  left: clamp(2rem, 4vw, 3.5rem);
  width: 4rem;
  height: 2px;
  background: var(--zn-analyst-blue);
  content: "";
  transition: width 220ms ease;
}
.assurance-capabilities > li:hover::before { width: 7rem; }
.assurance-card-head { display: flex; align-items: center; gap: .9rem; margin-bottom: 2.25rem; }
.assurance-card-icon { display: grid; place-items: center; width: 2rem; height: 2rem; color: var(--zn-analyst-blue); border: 1px solid var(--zn-chain-grey); }
.assurance-card-icon svg { width: 1.15rem; height: 1.15rem; fill: none; stroke: currentColor; stroke-width: 1.45; }
.assurance-card-ref { color: var(--zn-analyst-blue); font-family: var(--zn-mono); font-size: .75rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.assurance-capabilities h3 { max-width: 36rem; margin: 0 0 1.4rem; color: var(--zn-indigo); font-family: var(--zn-heading); font-size: clamp(2.3rem, 3.5vw, 3.75rem); font-weight: 400; line-height: 1.04; }
.assurance-capabilities p { max-width: 38rem; margin: 0 0 2.5rem; color: var(--zn-slate-ink); line-height: 1.72; }
.assurance-card-links { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: center; }
.practice-crosslink { color: var(--zn-analyst-blue); font-family: var(--zn-mono); font-size: .72rem; font-weight: 700; letter-spacing: .035em; text-transform: uppercase; text-decoration: none; }
.practice-crosslink:hover,
.practice-crosslink:focus-visible { color: var(--zn-indigo); text-decoration: underline; text-underline-offset: .35rem; }

.assurance-accountability {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.25rem;
  align-items: start;
  margin-top: clamp(2rem, 4vw, 3.5rem);
  padding: clamp(1.75rem, 3vw, 2.5rem);
  color: var(--zn-cold-mist);
  background: var(--zn-indigo);
  border: 1px solid var(--zn-trace-line);
  border-left: 3px solid var(--zn-signal-blue);
}
.assurance-accountability > svg { width: 1.75rem; height: 1.75rem; color: var(--zn-forensic-steel); fill: none; stroke: currentColor; stroke-width: 1.45; }
.assurance-accountability span { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .78rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.assurance-accountability p { max-width: 60rem; margin: .65rem 0 0; color: var(--zn-cold-mist); }
.assurance-accountability strong { color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: 1.25rem; font-weight: 400; }

/* Preserve dark-surface contrast when the surrounding page is in light mode. */
:root:not([data-theme="dark"]) .assurance-practice .assurance-accountability,
:root[data-theme="dark"] .assurance-practice .assurance-accountability {
  color: var(--zn-cold-mist);
  background: var(--zn-indigo);
}

:root:not([data-theme="dark"]) .assurance-practice .assurance-accountability p,
:root[data-theme="dark"] .assurance-practice .assurance-accountability p {
  color: var(--zn-cold-mist);
}

:root:not([data-theme="dark"]) .assurance-practice .assurance-accountability strong,
:root[data-theme="dark"] .assurance-practice .assurance-accountability strong {
  color: var(--zn-ice-white);
}

:root:not([data-theme="dark"]) .assurance-practice .assurance-accountability span,
:root[data-theme="dark"] .assurance-practice .assurance-accountability span,
:root:not([data-theme="dark"]) .assurance-practice .assurance-accountability > svg,
:root[data-theme="dark"] .assurance-practice .assurance-accountability > svg {
  color: var(--zn-forensic-steel);
}

:root[data-theme="dark"] .ai-assurance-hero { background: var(--zn-midnight-evidence); }
:root[data-theme="dark"] .assurance-practice { background: var(--zn-deep-night); }
:root[data-theme="dark"] .assurance-section-head > div:last-child > p,
:root[data-theme="dark"] .assurance-capabilities p { color: var(--zn-cold-mist); }
:root[data-theme="dark"] .assurance-dimensions,
:root[data-theme="dark"] .assurance-dimensions > div + div { border-color: var(--zn-trace-line); }
:root[data-theme="dark"] .assurance-dimensions strong,
:root[data-theme="dark"] .assurance-capabilities h3 { color: var(--zn-ice-white); }
:root[data-theme="dark"] .assurance-capabilities { background: var(--zn-trace-line); }
:root[data-theme="dark"] .assurance-capabilities > li { background: var(--zn-midnight-evidence); }
:root[data-theme="dark"] .assurance-capabilities > li:nth-child(2),
:root[data-theme="dark"] .assurance-capabilities > li:nth-child(3) { background: var(--zn-surface); }
:root[data-theme="dark"] .assurance-card-icon { border-color: var(--zn-trace-line); }
:root[data-theme="dark"] .practice-crosslink { color: var(--zn-forensic-steel); }
:root[data-theme="dark"] .practice-crosslink:hover,
:root[data-theme="dark"] .practice-crosslink:focus-visible { color: var(--zn-ice-white); }

@keyframes assuranceRoute { to { stroke-dashoffset: -66; } }
@keyframes assuranceOrbit { to { transform: rotate(360deg); } }
@keyframes assurancePulse {
  0%, 100% { opacity: .55; transform: scale(.82); transform-origin: center; }
  50% { opacity: 1; transform: scale(1.35); transform-origin: center; }
}

@media (max-width: 1050px) {
  .ai-assurance-hero-grid { grid-template-columns: 1fr; min-height: 0; }
  .ai-assurance-hero-copy h1 { max-width: 60rem; }
  .assurance-field { max-width: 48rem; }
  .assurance-capabilities > li,
  .assurance-capabilities > li:nth-child(2),
  .assurance-capabilities > li:nth-child(3),
  .assurance-capabilities > li:nth-child(4) { grid-column: span 6; }
}

@media (max-width: 760px) {
  .ai-assurance-hero { padding-block: 4.25rem 3rem; }
  .ai-assurance-hero-grid { gap: 2rem; }
  .ai-assurance-hero-copy h1 { font-size: clamp(3rem, 14vw, 4.15rem); line-height: 1.02; }
  .assurance-hero-record div { padding: .8rem .4rem .8rem 0; }
  .assurance-hero-record div + div { padding: .8rem .3rem .8rem .5rem; }
  .assurance-hero-record dt { font-size: .56rem; }
  .assurance-hero-record dd { font-size: .62rem; }
  .assurance-field { padding: 1rem; }
  .assurance-field figcaption { font-size: .62rem; }
  .assurance-field-stage { min-height: 18rem; }
  .assurance-field-label { font-size: .55rem; }
  .assurance-field-core { width: 7.5rem; }
  .assurance-field-legend { gap: .5rem; font-size: .56rem; }
  .assurance-section-head { grid-template-columns: 1fr; gap: 1.75rem; }
  .assurance-dimensions { grid-template-columns: 1fr 1fr; }
  .assurance-dimensions > div:nth-child(3) { border-top: 1px solid var(--zn-chain-grey); border-left: 0; }
  .assurance-dimensions > div:nth-child(4) { border-top: 1px solid var(--zn-chain-grey); }
  .assurance-capabilities { grid-template-columns: 1fr; }
  .assurance-capabilities > li,
  .assurance-capabilities > li:nth-child(2),
  .assurance-capabilities > li:nth-child(3),
  .assurance-capabilities > li:nth-child(4) { grid-column: 1; min-height: 0; padding: 2rem 1.35rem 2.5rem; }
  .assurance-capabilities > li::before { left: 1.35rem; }
  .assurance-card-links { align-items: flex-start; flex-direction: column; }
  .assurance-accountability { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .assurance-route,
  .assurance-orbit,
  .assurance-signal { animation: none; }
}

/* V44 — evidence-led AI assurance examination model */
.assurance-model .assurance-model-stage {
  display: grid;
  grid-template-columns: minmax(7.6rem, .78fr) 2.5rem minmax(17rem, 2fr) 2.5rem minmax(7.6rem, .78fr);
  align-items: center;
  min-height: 25rem;
  padding: 2rem 0;
  background-image:
    linear-gradient(to right, rgba(42,59,84,.3) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(42,59,84,.3) 1px, transparent 1px);
  background-size: 3.25rem 3.25rem;
}

.assurance-model-node,
.assurance-model-record,
.assurance-model-authority,
.assurance-model-test {
  position: relative;
  z-index: 1;
  color: var(--zn-ice-white);
  background: var(--zn-midnight-evidence);
}

.assurance-model-node {
  display: grid;
  gap: .5rem;
  min-height: 8.4rem;
  align-content: center;
  padding: 1rem;
  border: 1px solid var(--zn-forensic-steel);
}

.assurance-model-node span,
.assurance-model-boundary span,
.assurance-model-boundary-label {
  color: var(--zn-forensic-steel);
  font-family: var(--zn-mono);
  font-size: .61rem;
  font-weight: 700;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.assurance-model-node strong,
.assurance-model-boundary strong {
  font-family: var(--zn-serif);
  font-size: .92rem;
  line-height: 1.25;
}

.assurance-model-node small,
.assurance-model-boundary small {
  color: var(--zn-cold-mist);
  font-size: .66rem;
  line-height: 1.45;
}

.assurance-model-claim { border-style: dashed; }
.assurance-model-finding {
  border-color: var(--zn-signal-blue);
  box-shadow: inset 3px 0 0 var(--zn-signal-blue);
}

.assurance-model-connector {
  position: relative;
  height: 1px;
  background: var(--zn-forensic-steel);
}

.assurance-model-connector i {
  position: absolute;
  top: 50%;
  right: -.08rem;
  width: .42rem;
  height: .42rem;
  border-top: 1px solid var(--zn-forensic-steel);
  border-right: 1px solid var(--zn-forensic-steel);
  transform: translateY(-50%) rotate(45deg);
}

.assurance-model-connector-in {
  background: repeating-linear-gradient(90deg, var(--zn-signal-blue) 0 5px, transparent 5px 10px);
  animation: assuranceClaimRoute 8s linear infinite;
}

.assurance-model-boundary {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: .75rem;
  min-height: 19rem;
  padding: 2.55rem .85rem .85rem;
  border: 1px solid var(--zn-signal-blue);
  background: rgba(15,29,51,.86);
}

.assurance-model-boundary::before {
  content: "";
  position: absolute;
  inset: .42rem;
  pointer-events: none;
  border: 1px solid rgba(132,163,192,.22);
}

.assurance-model-boundary-label {
  position: absolute;
  top: .78rem;
  left: .85rem;
  color: var(--zn-signal-blue);
}

.assurance-model-record,
.assurance-model-authority {
  display: grid;
  gap: .38rem;
  align-content: center;
  padding: .8rem;
  border: 1px solid var(--zn-trace-line);
}

.assurance-model-record { grid-column: 1; }
.assurance-model-authority { grid-column: 1; }

.assurance-model-test {
  grid-column: 2;
  grid-row: 1 / span 2;
  display: grid;
  grid-template-rows: auto 1fr 1fr;
  gap: .55rem;
  padding: .8rem;
  border: 1px solid var(--zn-forensic-steel);
}

.assurance-model-test > div {
  display: grid;
  gap: .3rem;
  align-content: center;
  padding: .7rem;
  background: rgba(92,132,182,.09);
  border-left: 2px solid var(--zn-signal-blue);
}

.assurance-model-key {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  padding-top: 1rem;
  color: var(--zn-cold-mist);
  border-top: 1px solid var(--assurance-line);
  font-family: var(--zn-mono);
  font-size: .61rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.assurance-model-key span { display: flex; align-items: center; gap: .55rem; }
.assurance-model-key span:nth-child(2) { justify-content: center; }
.assurance-model-key span:last-child { justify-content: flex-end; }
.assurance-model-key i { display: inline-block; flex: 0 0 1.5rem; height: .65rem; }
.assurance-model-key .key-assertion { border-top: 1px dashed var(--zn-signal-blue); }
.assurance-model-key .key-evidence { border-top: 1px solid var(--zn-forensic-steel); }
.assurance-model-key .key-boundary { border: 1px solid var(--zn-signal-blue); }

@keyframes assuranceClaimRoute { to { background-position: 20px 0; } }

@media (max-width: 760px) {
  .assurance-model .assurance-model-stage {
    grid-template-columns: 1fr;
    gap: .65rem;
    min-height: 0;
    padding: 1.25rem 0;
  }

  .assurance-model-connector {
    justify-self: center;
    width: 1px;
    height: 1.35rem;
    background: var(--zn-forensic-steel);
  }

  .assurance-model-connector-in {
    background: repeating-linear-gradient(180deg, var(--zn-signal-blue) 0 5px, transparent 5px 10px);
    animation: assuranceClaimRouteMobile 8s linear infinite;
  }

  .assurance-model-connector i {
    top: auto;
    right: 50%;
    bottom: -.08rem;
    transform: translateX(50%) rotate(135deg);
  }

  .assurance-model-node { min-height: 0; padding: .85rem; }
  .assurance-model-boundary { min-height: 18rem; }
  .assurance-model-node span,
  .assurance-model-boundary span,
  .assurance-model-boundary-label { font-size: .64rem; }
  .assurance-model-node strong,
  .assurance-model-boundary strong { font-size: 1rem; }
  .assurance-model-node small,
  .assurance-model-boundary small { font-size: .71rem; }
  .assurance-model-key { grid-template-columns: 1fr; gap: .65rem; }
  .assurance-model-key span,
  .assurance-model-key span:nth-child(2),
  .assurance-model-key span:last-child { justify-content: flex-start; }
}

@keyframes assuranceClaimRouteMobile { to { background-position: 0 20px; } }

@media (prefers-reduced-motion: reduce) {
  .assurance-model-connector-in { animation: none; }
}

/* V45 — simplified, readable assurance sequence */
.ai-assurance-hero-grid { gap: clamp(2.5rem, 4.5vw, 5rem); }

.assurance-model .assurance-model-stage {
  grid-template-columns: minmax(8.4rem, .76fr) 2.25rem minmax(17.5rem, 2.2fr) 2.25rem minmax(8.4rem, .76fr);
  min-height: 22rem;
  padding: 1.5rem 0;
}

.assurance-model-node {
  min-height: 8.8rem;
  padding: 1.05rem;
}

.assurance-model-node span,
.assurance-model-boundary span,
.assurance-model-boundary-label { font-size: .65rem; }

.assurance-model-node strong,
.assurance-model-boundary strong { font-size: 1.02rem; }

.assurance-model-node small,
.assurance-model-boundary small { font-size: .72rem; }

.assurance-model-boundary {
  display: block;
  min-height: 17.5rem;
  padding: 2.65rem .85rem .85rem;
}

.assurance-model-checks {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-rows: repeat(3, 1fr);
  gap: .5rem;
  min-height: 13.8rem;
}

.assurance-model-checks > div {
  display: grid;
  grid-template-columns: minmax(7.4rem, .72fr) minmax(8.5rem, 1fr);
  grid-template-areas:
    "label finding"
    "label note";
  column-gap: .8rem;
  align-content: center;
  padding: .72rem .8rem;
  background: rgba(92,132,182,.08);
  border-left: 2px solid var(--zn-signal-blue);
}

.assurance-model-checks span { grid-area: label; align-self: center; }
.assurance-model-checks strong { grid-area: finding; }
.assurance-model-checks small { grid-area: note; margin-top: .18rem; }

@media (max-width: 760px) {
  .assurance-model .assurance-model-stage {
    grid-template-columns: 1fr;
    min-height: 0;
    padding: 1.25rem 0;
  }

  .assurance-model-boundary { min-height: 0; }
  .assurance-model-checks { min-height: 0; }
  .assurance-model-checks > div {
    grid-template-columns: 1fr;
    grid-template-areas:
      "label"
      "finding"
      "note";
    gap: .25rem;
    padding: .85rem;
  }
}

/* V46 — converging-evidence assurance map */
.ai-assurance-hero-grid {
  grid-template-columns: minmax(0, .74fr) minmax(42rem, 1.26fr);
  gap: clamp(2.75rem, 4vw, 4.5rem);
}

.ai-assurance-hero-copy h1 {
  max-width: 40rem;
  font-size: clamp(3.5rem, 4.85vw, 5.35rem);
  line-height: .98;
}

.assurance-map {
  padding: 1.2rem;
  box-shadow: 0 1.75rem 4.5rem rgba(2, 9, 17, .22);
}

.assurance-map figcaption strong {
  max-width: 18rem;
  text-align: right;
}

.assurance-map-stage {
  position: relative;
  display: grid;
  grid-template-columns: minmax(8.2rem, .78fr) 1.7rem minmax(23rem, 2.45fr) 1.7rem minmax(9rem, .86fr);
  align-items: center;
  min-height: 31rem;
  padding-block: 1.35rem;
  background-image:
    linear-gradient(to right, rgba(42,59,84,.24) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(42,59,84,.24) 1px, transparent 1px);
  background-size: 3.25rem 3.25rem;
}

.assurance-map-node {
  position: relative;
  z-index: 3;
  display: grid;
  gap: .48rem;
  align-content: center;
  min-height: 9.75rem;
  padding: 1rem;
  color: var(--zn-ice-white);
  background: rgba(8,19,33,.96);
  border: 1px solid var(--zn-forensic-steel);
}

.assurance-map-node span,
.assurance-map-source span,
.assurance-map-boundary-label,
.assurance-map-examination small,
.assurance-map-record {
  color: var(--zn-forensic-steel);
  font-family: var(--zn-mono);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.assurance-map-node strong,
.assurance-map-source strong,
.assurance-map-examination strong {
  color: var(--zn-ice-white);
  font-family: var(--zn-body);
  font-size: 1rem;
  line-height: 1.3;
}

.assurance-map-node small,
.assurance-map-source small {
  color: var(--zn-cold-mist);
  font-size: .76rem;
  line-height: 1.5;
}

.assurance-map-claim { border-style: dashed; }
.assurance-map-finding {
  border-color: var(--zn-signal-blue);
  box-shadow: inset 3px 0 0 var(--zn-signal-blue);
}

.assurance-map-route {
  position: relative;
  z-index: 2;
  height: 1px;
  background: var(--zn-forensic-steel);
}

.assurance-map-route-in {
  background: repeating-linear-gradient(90deg, var(--zn-signal-blue) 0 5px, transparent 5px 10px);
  animation: assuranceClaimRoute 8s linear infinite;
}

.assurance-map-route i {
  position: absolute;
  top: 50%;
  right: -.08rem;
  width: .42rem;
  height: .42rem;
  border-top: 1px solid var(--zn-forensic-steel);
  border-right: 1px solid var(--zn-forensic-steel);
  transform: translateY(-50%) rotate(45deg);
}

.assurance-map-boundary {
  position: relative;
  min-height: 29rem;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 53%, rgba(92,132,182,.12), transparent 28%),
    rgba(15,29,51,.8);
  border: 1px solid var(--zn-signal-blue);
}

.assurance-map-boundary::before {
  position: absolute;
  inset: .45rem;
  pointer-events: none;
  border: 1px solid rgba(132,163,192,.2);
  content: "";
}

.assurance-map-boundary-label {
  position: absolute;
  z-index: 4;
  top: .9rem;
  left: 1rem;
  color: var(--zn-signal-blue);
}

.assurance-map-lines {
  position: absolute;
  z-index: 1;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  fill: none;
  stroke: var(--zn-forensic-steel);
  stroke-width: 1;
  stroke-dasharray: 4 6;
  vector-effect: non-scaling-stroke;
}

.assurance-map-lines circle {
  fill: var(--zn-signal-blue);
  stroke: none;
  filter: drop-shadow(0 0 5px rgba(92,132,182,.8));
}

.assurance-map-source {
  position: absolute;
  z-index: 3;
  display: grid;
  gap: .28rem;
  width: calc(50% - 1.45rem);
  min-height: 6.2rem;
  align-content: center;
  padding: .8rem;
  background: rgba(8,19,33,.94);
  border-top: 1px solid var(--zn-trace-line);
  border-bottom: 1px solid var(--zn-trace-line);
}

.assurance-map-system { top: 2.9rem; left: .9rem; border-left: 2px solid var(--zn-signal-blue); }
.assurance-map-operation { top: 2.9rem; right: .9rem; border-right: 2px solid var(--zn-signal-blue); }
.assurance-map-authority {
  bottom: .9rem;
  left: 50%;
  width: 14.5rem;
  border-bottom: 2px solid var(--zn-signal-blue);
  transform: translateX(-50%);
}

.assurance-map-examination {
  position: absolute;
  z-index: 4;
  top: 57%;
  left: 50%;
  display: grid;
  justify-items: center;
  width: 10.5rem;
  gap: .2rem;
  padding: 1.3rem 1rem;
  text-align: center;
  background: var(--zn-midnight-evidence);
  border: 1px solid var(--zn-signal-blue);
  transform: translate(-50%, -50%);
}

.assurance-map-examination::before,
.assurance-map-examination::after,
.assurance-map-rings {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12rem;
  height: 12rem;
  pointer-events: none;
  border: 1px solid rgba(132,163,192,.3);
  border-radius: 50%;
  content: "";
  transform: translate(-50%, -50%);
}

.assurance-map-examination::after {
  width: 13.8rem;
  height: 13.8rem;
  border-style: dashed;
  border-color: rgba(92,132,182,.28);
  animation: assuranceMapOrbit 24s linear infinite;
}

.assurance-map-rings {
  width: 9.8rem;
  height: 9.8rem;
  border-color: rgba(92,132,182,.22);
}

.assurance-map-examination img {
  position: relative;
  z-index: 1;
  width: 2.6rem;
  height: 2.9rem;
  margin-bottom: .25rem;
  object-fit: contain;
}

.assurance-map-examination small,
.assurance-map-examination strong { position: relative; z-index: 1; }
.assurance-map-examination strong { max-width: 9rem; font-size: .83rem; }

.assurance-map-record {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--assurance-line);
}

.assurance-map-record span {
  display: flex;
  align-items: center;
  gap: .55rem;
}

.assurance-map-record span::before {
  width: .42rem;
  height: .42rem;
  flex: 0 0 .42rem;
  background: var(--zn-signal-blue);
  content: "";
  transform: rotate(45deg);
}

.assurance-map-record span:nth-child(2) { justify-content: center; }
.assurance-map-record span:last-child { justify-content: flex-end; }

@keyframes assuranceMapOrbit {
  to { transform: translate(-50%, -50%) rotate(360deg); }
}

@media (max-width: 1320px) {
  .ai-assurance-hero-grid { grid-template-columns: 1fr; }
  .ai-assurance-hero-copy h1 { max-width: 54rem; }
  .assurance-map { max-width: 56rem; }
}

@media (max-width: 760px) {
  .ai-assurance-hero-copy h1 { font-size: clamp(2.85rem, 12.5vw, 4rem); line-height: 1.01; }
  .assurance-map { padding: .9rem; }
  .assurance-map figcaption { align-items: flex-start; flex-direction: column; gap: .4rem; }
  .assurance-map figcaption strong { max-width: none; text-align: left; }
  .assurance-map-stage {
    grid-template-columns: 1fr;
    gap: .65rem;
    min-height: 0;
    padding-block: 1rem;
    background-size: 2.75rem 2.75rem;
  }
  .assurance-map-node { min-height: 0; padding: 1rem; }
  .assurance-map-route {
    justify-self: center;
    width: 1px;
    height: 1.3rem;
  }
  .assurance-map-route-in {
    background: repeating-linear-gradient(180deg, var(--zn-signal-blue) 0 5px, transparent 5px 10px);
    animation: assuranceClaimRouteMobile 8s linear infinite;
  }
  .assurance-map-route i {
    top: auto;
    right: 50%;
    bottom: -.08rem;
    transform: translateX(50%) rotate(135deg);
  }
  .assurance-map-boundary {
    display: grid;
    gap: .55rem;
    min-height: 0;
    padding: 3rem .75rem .75rem;
    overflow: visible;
  }
  .assurance-map-lines { display: none; }
  .assurance-map-source,
  .assurance-map-system,
  .assurance-map-operation,
  .assurance-map-authority {
    position: static;
    width: 100%;
    min-height: 0;
    padding: .85rem;
    transform: none;
    border: 1px solid var(--zn-trace-line);
    border-left: 2px solid var(--zn-signal-blue);
  }
  .assurance-map-examination {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    margin-top: .35rem;
    padding: 1.25rem 1rem;
    transform: none;
  }
  .assurance-map-examination::before,
  .assurance-map-examination::after,
  .assurance-map-rings { display: none; }
  .assurance-map-examination strong { max-width: 15rem; }
  .assurance-map-record { grid-template-columns: 1fr; gap: .65rem; }
  .assurance-map-record span,
  .assurance-map-record span:nth-child(2),
  .assurance-map-record span:last-child { justify-content: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  .assurance-map-route-in,
  .assurance-map-examination::after { animation: none; }
}

/* V47 — compact hero support graphic; accurate at a glance, not a technical exhibit */
.ai-assurance-hero-grid {
  grid-template-columns: minmax(0, .84fr) minmax(39rem, 1.16fr);
}

.ai-assurance-hero-copy h1 {
  max-width: 42rem;
  font-size: clamp(3.45rem, 4.65vw, 5.1rem);
}

.assurance-map {
  padding: 1.05rem;
  box-shadow: 0 1.2rem 3.5rem rgba(2, 9, 17, .17);
}

.assurance-map-stage {
  grid-template-columns: minmax(7.5rem, .78fr) 1.4rem minmax(20.5rem, 2.3fr) 1.4rem minmax(8rem, .84fr);
  min-height: 24.5rem;
  padding-block: .9rem;
}

.assurance-map-node {
  min-height: 8.15rem;
  padding: .85rem;
}

.assurance-map-node span,
.assurance-map-source span,
.assurance-map-boundary-label,
.assurance-map-examination small,
.assurance-map-record { font-size: .63rem; }

.assurance-map-node strong,
.assurance-map-source strong { font-size: .94rem; }

.assurance-map-node small,
.assurance-map-source small { font-size: .71rem; }

.assurance-map-boundary { min-height: 22rem; }

.assurance-map-source {
  width: calc(50% - 1.25rem);
  min-height: 5.25rem;
  height: 5.25rem;
  padding: .65rem;
}

.assurance-map-system,
.assurance-map-operation { top: 2.4rem; }

.assurance-map-authority {
  bottom: .4rem;
  width: 13rem;
}

.assurance-map-examination {
  top: 56%;
  width: 8.3rem;
  padding: .7rem .6rem;
}

.assurance-map-examination img {
  width: 1.9rem;
  height: 2.1rem;
  margin-bottom: .12rem;
}

.assurance-map-examination strong {
  max-width: 7.2rem;
  font-size: .76rem;
}

.assurance-map-examination::before { width: 9rem; height: 9rem; }
.assurance-map-examination::after { width: 10.4rem; height: 10.4rem; }
.assurance-map-rings { width: 7.7rem; height: 7.7rem; }

.assurance-map-lines {
  animation: assuranceEvidenceFlow 7s linear infinite;
}

.assurance-map-lines circle {
  animation: assuranceEvidencePulse 2.8s ease-in-out infinite;
  transform-box: fill-box;
  transform-origin: center;
}

.assurance-map-route-out {
  background: repeating-linear-gradient(90deg, var(--zn-forensic-steel) 0 5px, transparent 5px 10px);
  animation: assuranceClaimRoute 8s linear infinite;
}

@keyframes assuranceEvidenceFlow { to { stroke-dashoffset: -40; } }
@keyframes assuranceEvidencePulse {
  0%, 100% { opacity: .55; transform: scale(.8); }
  50% { opacity: 1; transform: scale(1.35); }
}

@media (max-width: 1320px) {
  .ai-assurance-hero-grid { grid-template-columns: 1fr; }
  .assurance-map { max-width: 51rem; }
}

@media (max-width: 760px) {
  .assurance-map-stage {
    grid-template-columns: 1fr;
    gap: .55rem;
    min-height: 0;
    padding-block: .85rem;
  }
  .assurance-map-node { min-height: 0; padding: .9rem; }
  .assurance-map-node strong,
  .assurance-map-source strong { font-size: 1rem; }
  .assurance-map-boundary {
    min-height: 0;
    padding: 2.8rem .7rem .7rem;
  }
  .assurance-map-source,
  .assurance-map-system,
  .assurance-map-operation,
  .assurance-map-authority {
    position: static;
    width: 100%;
    height: auto;
    min-height: 0;
    padding: .75rem;
    transform: none;
  }
  .assurance-map-examination {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    padding: 1rem .8rem;
    transform: none;
  }
  .assurance-map-examination strong { max-width: 13rem; }
  .assurance-map-lines,
  .assurance-map-examination::before,
  .assurance-map-examination::after,
  .assurance-map-rings { display: none; }
  .assurance-map-route-out {
    background: repeating-linear-gradient(180deg, var(--zn-forensic-steel) 0 5px, transparent 5px 10px);
    animation: assuranceClaimRouteMobile 8s linear infinite;
  }
}

@media (prefers-reduced-motion: reduce) {
  .assurance-map-lines,
  .assurance-map-lines circle,
  .assurance-map-route-out { animation: none; }
}

/* V23 — structured human-accountability record */
.assurance-practice .assurance-accountability {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(9.5rem, .3fr) minmax(17rem, .9fr) minmax(18rem, .68fr);
  gap: clamp(1.75rem, 4vw, 4.5rem);
  align-items: stretch;
  overflow: hidden;
  margin-top: clamp(2.5rem, 5vw, 4.5rem);
  padding: clamp(2.25rem, 4vw, 3.75rem);
  color: var(--zn-cold-mist);
  background: var(--zn-midnight-evidence);
  border: 1px solid var(--zn-trace-line);
  border-top: 2px solid var(--zn-signal-blue);
  border-left: 1px solid var(--zn-trace-line);
}

.assurance-practice .assurance-accountability::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  opacity: .2;
  background-image:
    linear-gradient(var(--zn-trace-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--zn-trace-line) 1px, transparent 1px);
  background-size: 4.5rem 4.5rem;
  mask-image: linear-gradient(90deg, transparent 12%, #000 72%, transparent 100%);
}

.assurance-practice .assurance-accountability::after {
  content: "";
  position: absolute;
  right: clamp(-2.5rem, -1vw, -.75rem);
  bottom: clamp(-3.5rem, -3vw, -1.75rem);
  z-index: -1;
  width: clamp(11rem, 19vw, 18rem);
  aspect-ratio: 1;
  background: url('/assets/zemi-north-mark-reverse.svg') center / contain no-repeat;
  opacity: .14;
  pointer-events: none;
}

.accountability-rail,
.accountability-statement,
.accountability-record { position: relative; z-index: 1; }

.accountability-rail {
  display: grid;
  grid-template-columns: 2.25rem 1fr;
  gap: .9rem;
  align-content: start;
  padding-right: clamp(1.5rem, 3vw, 3rem);
  border-right: 1px solid var(--zn-trace-line);
}

.accountability-rail svg {
  width: 2rem;
  height: 2rem;
  color: var(--zn-forensic-steel);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.35;
}

.assurance-practice .accountability-rail span {
  align-self: center;
  color: var(--zn-forensic-steel);
  font-family: var(--zn-mono);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .07em;
  line-height: 1.45;
  text-transform: uppercase;
}

.accountability-statement {
  align-self: center;
  max-width: 40rem;
}

.assurance-practice .accountability-statement strong {
  display: block;
  color: var(--zn-ice-white);
  font-family: var(--zn-heading);
  font-size: clamp(2.25rem, 3.5vw, 3.85rem);
  font-weight: 400;
  line-height: 1.04;
  letter-spacing: -.018em;
}

.assurance-practice .accountability-statement p {
  max-width: 36rem;
  margin: 1.25rem 0 0;
  color: var(--zn-cold-mist);
  font-size: 1rem;
  line-height: 1.7;
}

.accountability-record {
  align-self: center;
  margin: 0;
  border-top: 1px solid var(--zn-trace-line);
  border-bottom: 1px solid var(--zn-trace-line);
}

.accountability-record > div {
  display: grid;
  grid-template-columns: minmax(6.5rem, 1fr) minmax(7rem, 1fr);
  gap: 1rem;
  padding: 1rem .25rem;
}

.accountability-record > div + div { border-top: 1px solid var(--zn-trace-line); }

.accountability-record dt,
.accountability-record dd {
  margin: 0;
  font-family: var(--zn-mono);
  font-size: .72rem;
  line-height: 1.45;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.accountability-record dt { color: var(--zn-forensic-steel); }
.accountability-record dd { color: var(--zn-ice-white); font-weight: 700; }

:root:not([data-theme="dark"]) .assurance-practice .assurance-accountability,
:root[data-theme="dark"] .assurance-practice .assurance-accountability {
  color: var(--zn-cold-mist);
  background: var(--zn-midnight-evidence);
}

:root:not([data-theme="dark"]) .assurance-practice .accountability-statement p,
:root[data-theme="dark"] .assurance-practice .accountability-statement p { color: var(--zn-cold-mist); }

:root:not([data-theme="dark"]) .assurance-practice .accountability-statement strong,
:root[data-theme="dark"] .assurance-practice .accountability-statement strong,
:root:not([data-theme="dark"]) .assurance-practice .accountability-record dd,
:root[data-theme="dark"] .assurance-practice .accountability-record dd { color: var(--zn-ice-white); }

@media (max-width: 1000px) {
  .assurance-practice .assurance-accountability {
    grid-template-columns: minmax(9rem, .35fr) minmax(0, 1fr);
  }

  .accountability-record {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
  }

  .accountability-record > div {
    grid-template-columns: 1fr;
    gap: .4rem;
    padding: 1rem;
  }

  .accountability-record > div + div {
    border-top: 0;
    border-left: 1px solid var(--zn-trace-line);
  }
}

@media (max-width: 640px) {
  .assurance-practice .assurance-accountability {
    grid-template-columns: 1fr;
    gap: 1.75rem;
    padding: 1.65rem 1.35rem 1.5rem;
  }

  .accountability-rail {
    grid-template-columns: 1.8rem 1fr;
    padding: 0 0 1.25rem;
    border-right: 0;
    border-bottom: 1px solid var(--zn-trace-line);
  }

  .accountability-rail svg { width: 1.65rem; height: 1.65rem; }
  .assurance-practice .accountability-statement strong { font-size: clamp(2.35rem, 12vw, 3.25rem); }

  .accountability-record {
    grid-column: auto;
    display: block;
  }

  .accountability-record > div {
    grid-template-columns: 1fr 1fr;
    gap: .75rem;
    padding: .85rem 0;
  }

  .accountability-record > div + div {
    border-top: 1px solid var(--zn-trace-line);
    border-left: 0;
  }
}

/* V24 — institutional digital-forensics training */
.training-page { background: var(--zn-evidence-white); }

.training-hero {
  position: relative;
  overflow: hidden;
  color: var(--zn-ice-white);
  background: var(--zn-indigo);
  border-bottom: 1px solid var(--zn-trace-line);
}

.training-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .16;
  background-image:
    linear-gradient(var(--zn-trace-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--zn-trace-line) 1px, transparent 1px);
  background-size: 5rem 5rem;
  mask-image: linear-gradient(90deg, transparent 0%, #000 58%, #000 100%);
}

.training-hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(29rem, .94fr);
  gap: clamp(3rem, 7vw, 7.5rem);
  align-items: center;
  min-height: clamp(42rem, 73vh, 51rem);
  padding-block: clamp(4.5rem, 8vw, 7rem);
}

.training-hero-copy .eyebrow { margin: 0 0 2rem; color: var(--zn-forensic-steel); }
.training-hero-copy h1 {
  max-width: 50rem;
  margin: 0;
  color: var(--zn-ice-white);
  font-family: var(--zn-heading);
  font-size: clamp(3.6rem, 5.5vw, 6.35rem);
  font-weight: 400;
  line-height: .98;
  letter-spacing: -.028em;
}

.training-hero-copy .lead {
  max-width: 47rem;
  margin: 2.25rem 0 0;
  color: var(--zn-cold-mist);
  font-size: clamp(1rem, 1.25vw, 1.15rem);
  line-height: 1.72;
}

.training-hero-record {
  display: grid;
  grid-template-columns: .8fr .8fr 1.2fr;
  max-width: 46rem;
  margin: 2.5rem 0 0;
  border-top: 1px solid var(--zn-trace-line);
  border-bottom: 1px solid var(--zn-trace-line);
}

.training-hero-record div { padding: 1rem .9rem 1rem 0; }
.training-hero-record div + div { padding-left: 1rem; border-left: 1px solid var(--zn-trace-line); }
.training-hero-record dt,
.training-hero-record dd { margin: 0; font-family: var(--zn-mono); text-transform: uppercase; }
.training-hero-record dt { color: var(--zn-forensic-steel); font-size: .62rem; letter-spacing: .06em; }
.training-hero-record dd { margin-top: .42rem; color: var(--zn-ice-white); font-size: .72rem; font-weight: 700; letter-spacing: .035em; }

.training-field {
  position: relative;
  margin: 0;
  padding: 1.25rem;
  background: var(--zn-midnight-evidence);
  border: 1px solid var(--zn-trace-line);
  box-shadow: 1.25rem 1.25rem 0 rgba(8,19,33,.28);
}

.training-field figcaption,
.training-field-legend {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  color: var(--zn-forensic-steel);
  font-family: var(--zn-mono);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.training-field figcaption { padding: .2rem .25rem 1rem; border-bottom: 1px solid var(--zn-trace-line); }
.training-field-stage { position: relative; min-height: 25rem; }
.training-field-stage::before,
.training-field-stage::after { content: ""; position: absolute; background: var(--zn-trace-line); opacity: .7; }
.training-field-stage::before { inset: 50% 0 auto; height: 1px; }
.training-field-stage::after { inset: 0 auto 0 50%; width: 1px; }
.training-field-routes { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: var(--zn-signal-blue); stroke-width: 1.2; stroke-dasharray: 4 8; opacity: .72; animation: trainingRoute 10s linear infinite; }

.training-node {
  position: absolute;
  display: grid;
  gap: .25rem;
  min-width: 7.7rem;
  padding: .7rem .8rem;
  color: var(--zn-cold-mist);
  background: rgba(15,29,51,.92);
  border: 1px solid var(--zn-trace-line);
}

.training-node span,
.training-node small { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .55rem; letter-spacing: .05em; text-transform: uppercase; }
.training-node strong { color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: 1.18rem; font-weight: 400; }
.training-node-scenario { left: 2%; top: 12%; }
.training-node-artifacts { left: 2%; bottom: 12%; }
.training-node-examine {
  left: 50%;
  top: 50%;
  min-width: 9rem;
  padding: 1.25rem;
  text-align: center;
  transform: translate(-50%, -50%);
  border-color: var(--zn-signal-blue);
  box-shadow: 0 0 0 .45rem rgba(92,132,182,.08), 0 0 3rem rgba(92,132,182,.16);
}
.training-node-examine img { width: 2.8rem; height: 2.8rem; margin: 0 auto .2rem; opacity: .92; }
.training-node-record { right: 2%; top: 19%; }
.training-node-finding { right: 2%; bottom: 16%; }
.training-field-legend { padding: 1rem .25rem .2rem; border-top: 1px solid var(--zn-trace-line); }

.training-practice { color: var(--zn-slate-ink); background: var(--zn-evidence-white); }
.training-section-head {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(21rem, .72fr);
  gap: clamp(3rem, 9vw, 9rem);
  align-items: end;
  margin-bottom: clamp(3rem, 6vw, 5.5rem);
}
.training-section-head .side-label { margin: 0 0 1.5rem; color: var(--zn-analyst-blue); }
.training-section-head h2 {
  max-width: 48rem;
  margin: 0;
  color: var(--zn-indigo);
  font-family: var(--zn-heading);
  font-size: clamp(3.2rem, 5vw, 5.75rem);
  font-weight: 400;
  line-height: .99;
  letter-spacing: -.025em;
}
.training-section-head > p { margin: 0 0 .35rem; color: var(--zn-slate-ink); font-size: 1.05rem; line-height: 1.75; }

.training-sequence {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 0 0 clamp(3rem, 6vw, 5.5rem);
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--zn-chain-grey);
  border-bottom: 1px solid var(--zn-chain-grey);
}
.training-sequence li { position: relative; display: grid; grid-template-columns: auto 1fr; gap: .4rem 1rem; padding: 1.5rem; }
.training-sequence li + li { border-left: 1px solid var(--zn-chain-grey); }
.training-sequence li::before { content: ""; position: absolute; left: 0; top: -1px; width: 3.5rem; height: 2px; background: var(--zn-analyst-blue); transition: width 260ms ease; }
.training-sequence li:hover::before { width: 100%; }
.training-sequence span { grid-row: span 2; color: var(--zn-analyst-blue); font-family: var(--zn-mono); font-size: .62rem; }
.training-sequence svg { width: 1.25rem; height: 1.25rem; color: var(--zn-analyst-blue); fill: none; stroke: currentColor; stroke-width: 1.45; }
.training-sequence strong { align-self: center; color: var(--zn-indigo); font-family: var(--zn-heading); font-size: 1.5rem; font-weight: 400; }
.training-sequence small { grid-column: 2; color: var(--zn-warm-slate); line-height: 1.45; }

.training-modules { display: grid; grid-template-columns: repeat(12, 1fr); background: var(--zn-chain-grey); gap: 1px; border: 1px solid var(--zn-chain-grey); }
.training-modules article {
  position: relative;
  grid-column: span 6;
  min-height: 31rem;
  padding: clamp(2rem, 4vw, 3.5rem);
  background: var(--zn-frost-white);
}
.training-modules article:nth-child(3) { background: var(--zn-case-file-grey); }
.training-modules article::before { content: ""; position: absolute; top: 0; left: 0; width: 4.5rem; height: 2px; background: var(--zn-analyst-blue); transition: width 260ms ease; }
.training-modules article:hover::before { width: 8rem; }
.training-module-ai { color: var(--zn-cold-mist); background: var(--zn-deep-night) !important; }
.training-module-head { display: flex; align-items: center; gap: .85rem; color: var(--zn-analyst-blue); font-family: var(--zn-mono); font-size: .72rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.training-module-icon { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border: 1px solid var(--zn-chain-grey); }
.training-module-icon svg { width: 1.2rem; height: 1.2rem; fill: none; stroke: currentColor; stroke-width: 1.45; }
.training-modules h3 { max-width: 33rem; margin: 2.4rem 0 1.35rem; color: var(--zn-indigo); font-family: var(--zn-heading); font-size: clamp(2.5rem, 4vw, 4rem); font-weight: 400; line-height: 1.02; }
.training-modules p { max-width: 38rem; margin: 0; color: var(--zn-slate-ink); line-height: 1.72; }
.training-modules ul { display: flex; flex-wrap: wrap; gap: .55rem 1.2rem; margin: 2.5rem 0 0; padding: 1.15rem 0 0; border-top: 1px solid var(--zn-chain-grey); list-style: none; }
.training-modules li { color: var(--zn-warm-slate); font-family: var(--zn-mono); font-size: .66rem; letter-spacing: .035em; text-transform: uppercase; }
.training-modules li::before { content: "/"; margin-right: .55rem; color: var(--zn-analyst-blue); }
.training-module-ai h3 { color: var(--zn-ice-white); }
.training-module-ai p { color: var(--zn-cold-mist); }
.training-module-ai li { color: var(--zn-forensic-steel); }
.training-module-ai .training-module-icon,
.training-module-ai ul { border-color: var(--zn-trace-line); }

.training-institutional { color: var(--zn-cold-mist); background: var(--zn-indigo); }
.training-section-head-light .side-label { color: var(--zn-forensic-steel); }
.training-section-head-light h2 { color: var(--zn-ice-white); }
.training-section-head-light > p { color: var(--zn-cold-mist); }
.training-audience { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--zn-trace-line); }
.training-audience section { position: relative; padding: clamp(2rem, 4vw, 3.5rem); background: var(--zn-midnight-evidence); }
.training-audience section + section { border-left: 1px solid var(--zn-trace-line); background: var(--zn-deep-night); }
.training-audience section > span,
.training-delivery-head { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.training-audience h3 { max-width: 34rem; margin: 1.6rem 0 2rem; color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: clamp(2.25rem, 3.6vw, 3.7rem); font-weight: 400; line-height: 1.04; }
.training-audience ul { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.75rem; margin: 0; padding: 0; list-style: none; }
.training-audience li { position: relative; padding: .85rem 0 .85rem 1.25rem; color: var(--zn-cold-mist); border-top: 1px solid var(--zn-trace-line); line-height: 1.5; }
.training-audience li::before { content: ""; position: absolute; left: 0; top: 1.35rem; width: .4rem; height: .4rem; background: var(--zn-signal-blue); transform: rotate(45deg); }

.training-delivery-head { display: flex; justify-content: space-between; gap: 2rem; margin: clamp(3rem, 6vw, 5rem) 0 1rem; }
.training-delivery-head p { margin: 0; color: var(--zn-forensic-steel); }
.training-delivery-head span { color: var(--zn-cold-mist); }
.training-delivery { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; border-top: 1px solid var(--zn-trace-line); border-bottom: 1px solid var(--zn-trace-line); }
.training-delivery > div { padding: 1.6rem; }
.training-delivery > div + div { border-left: 1px solid var(--zn-trace-line); }
.training-delivery dt { display: grid; grid-template-columns: 2rem 1fr; gap: .75rem; align-items: center; color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: 1.35rem; }
.training-delivery dt span { display: grid; place-items: center; width: 2rem; height: 2rem; color: var(--zn-forensic-steel); border: 1px solid var(--zn-trace-line); }
.training-delivery svg { width: 1.1rem; height: 1.1rem; fill: none; stroke: currentColor; stroke-width: 1.45; }
.training-delivery dd { margin: 1.25rem 0 0; color: var(--zn-cold-mist); font-size: .94rem; line-height: 1.65; }

.training-principle {
  position: relative;
  display: grid;
  grid-template-columns: minmax(11rem, .28fr) minmax(21rem, .92fr) minmax(18rem, .62fr);
  gap: clamp(1.75rem, 4vw, 4.25rem);
  align-items: stretch;
  overflow: hidden;
  margin-top: clamp(3rem, 6vw, 5rem);
  padding: clamp(2rem, 4vw, 3.25rem);
  background: var(--zn-midnight-evidence);
  border: 1px solid var(--zn-trace-line);
  border-top: 2px solid var(--zn-signal-blue);
}
.training-principle::after {
  content: "";
  position: absolute;
  right: -3rem;
  bottom: -4rem;
  width: 16rem;
  aspect-ratio: 1;
  background: url('/assets/zemi-north-mark-reverse.svg') center / contain no-repeat;
  opacity: .045;
  pointer-events: none;
}
.training-principle-id { display: grid; grid-template-columns: 3.25rem 1fr; gap: 1rem; align-content: start; padding-right: clamp(1rem, 3vw, 2.75rem); border-right: 1px solid var(--zn-trace-line); }
.training-principle-id > span:last-child { align-self: center; color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .72rem; font-weight: 700; letter-spacing: .065em; line-height: 1.45; text-transform: uppercase; }
.training-principle-mark { display: grid; place-items: center; width: 3.25rem; height: 3.25rem; background: var(--zn-deep-night); border: 1px solid var(--zn-trace-line); }
.training-principle-mark img { width: 2rem; height: 2rem; object-fit: contain; }
.training-principle-statement { align-self: center; }
.training-principle-statement strong { display: block; max-width: 35rem; color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: clamp(2.15rem, 3.25vw, 3.5rem); font-weight: 400; line-height: 1.04; letter-spacing: -.018em; }
.training-principle-statement p { max-width: 37rem; margin: 1.15rem 0 0; color: var(--zn-cold-mist); font-size: .98rem; line-height: 1.68; }
.training-principle-record { position: relative; z-index: 1; align-self: center; margin: 0; border-top: 1px solid var(--zn-trace-line); border-bottom: 1px solid var(--zn-trace-line); }
.training-principle-record > div { display: grid; grid-template-columns: minmax(5rem, .72fr) minmax(8rem, 1fr); gap: 1rem; padding: .9rem .25rem; }
.training-principle-record > div + div { border-top: 1px solid var(--zn-trace-line); }
.training-principle-record dt,
.training-principle-record dd { margin: 0; font-family: var(--zn-mono); font-size: .68rem; letter-spacing: .05em; line-height: 1.45; text-transform: uppercase; }
.training-principle-record dt { color: var(--zn-forensic-steel); }
.training-principle-record dd { color: var(--zn-ice-white); font-weight: 700; }
.training-cta { border-top: 1px solid var(--zn-trace-line); }

:root[data-theme="dark"] .training-page,
:root[data-theme="dark"] .training-practice { background: var(--zn-midnight-evidence); }
:root[data-theme="dark"] .training-section-head h2,
:root[data-theme="dark"] .training-sequence strong { color: var(--zn-ice-white); }
:root[data-theme="dark"] .training-section-head > p { color: var(--zn-cold-mist); }
:root[data-theme="dark"] .training-sequence,
:root[data-theme="dark"] .training-sequence li + li { border-color: var(--zn-trace-line); }
:root[data-theme="dark"] .training-modules { background: var(--zn-trace-line); border-color: var(--zn-trace-line); }
:root[data-theme="dark"] .training-modules article { background: var(--zn-deep-night); }
:root[data-theme="dark"] .training-modules article:nth-child(3) { background: var(--zn-surface); }
:root[data-theme="dark"] .training-modules h3 { color: var(--zn-ice-white); }
:root[data-theme="dark"] .training-modules p { color: var(--zn-cold-mist); }
:root[data-theme="dark"] .training-modules li { color: var(--zn-forensic-steel); }
:root[data-theme="dark"] .training-modules ul,
:root[data-theme="dark"] .training-module-icon { border-color: var(--zn-trace-line); }
:root[data-theme="dark"] .training-institutional { background: var(--zn-deep-night); }

@keyframes trainingRoute { to { stroke-dashoffset: -72; } }

@media (max-width: 1100px) {
  .training-hero-grid { grid-template-columns: 1fr; min-height: 0; }
  .training-hero-copy h1 { max-width: 62rem; }
  .training-field { max-width: 50rem; }
  .training-delivery { grid-template-columns: 1fr 1fr; }
  .training-delivery > div:nth-child(3) { border-top: 1px solid var(--zn-trace-line); border-left: 0; }
  .training-delivery > div:nth-child(4) { border-top: 1px solid var(--zn-trace-line); }
  .training-principle { grid-template-columns: minmax(10rem, .34fr) minmax(0, 1fr); }
  .training-principle-record { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); }
  .training-principle-record > div { grid-template-columns: 1fr; gap: .35rem; padding: .9rem 1rem; }
  .training-principle-record > div + div { border-top: 0; border-left: 1px solid var(--zn-trace-line); }
}

@media (max-width: 780px) {
  .training-hero-grid { gap: 2.75rem; padding-block: 4.25rem 3.5rem; }
  .training-hero-copy h1 { font-size: clamp(3.1rem, 14vw, 4.5rem); line-height: 1.01; }
  .training-hero-record { grid-template-columns: .8fr .8fr 1.2fr; }
  .training-hero-record div { padding-inline: .45rem; }
  .training-hero-record div:first-child { padding-left: 0; }
  .training-hero-record dt { font-size: .54rem; }
  .training-hero-record dd { font-size: .59rem; }
  .training-field { padding: .85rem; box-shadow: .65rem .65rem 0 rgba(8,19,33,.28); }
  .training-field figcaption { font-size: .54rem; }
  .training-field-stage { min-height: 21rem; }
  .training-node { min-width: 6.3rem; padding: .55rem .6rem; }
  .training-node strong { font-size: .95rem; }
  .training-node small { display: none; }
  .training-node-examine { min-width: 7.25rem; padding: .9rem; }
  .training-node-examine img { width: 2rem; height: 2rem; }
  .training-field-legend { display: grid; grid-template-columns: 1fr; font-size: .52rem; }
  .training-section-head { grid-template-columns: 1fr; gap: 1.75rem; }
  .training-section-head h2 { font-size: clamp(3rem, 13vw, 4.4rem); }
  .training-sequence { grid-template-columns: 1fr 1fr; }
  .training-sequence li:nth-child(3) { border-top: 1px solid var(--zn-chain-grey); border-left: 0; }
  .training-sequence li:nth-child(4) { border-top: 1px solid var(--zn-chain-grey); }
  :root[data-theme="dark"] .training-sequence li:nth-child(3),
  :root[data-theme="dark"] .training-sequence li:nth-child(4) { border-top-color: var(--zn-trace-line); }
  .training-modules { grid-template-columns: 1fr; }
  .training-modules article { grid-column: 1; min-height: 0; padding: 2.25rem 1.35rem 2.75rem; }
  .training-modules h3 { font-size: clamp(2.5rem, 12vw, 3.45rem); }
  .training-audience { grid-template-columns: 1fr; }
  .training-audience section + section { border-top: 1px solid var(--zn-trace-line); border-left: 0; }
  .training-audience ul { grid-template-columns: 1fr; }
  .training-delivery-head { align-items: flex-start; flex-direction: column; }
  .training-delivery { grid-template-columns: 1fr; }
  .training-delivery > div + div,
  .training-delivery > div:nth-child(3),
  .training-delivery > div:nth-child(4) { border-top: 1px solid var(--zn-trace-line); border-left: 0; }
  .training-principle { grid-template-columns: 1fr; gap: 1.6rem; padding: 1.5rem 1.25rem; }
  .training-principle-id { padding: 0 0 1.15rem; border-right: 0; border-bottom: 1px solid var(--zn-trace-line); }
  .training-principle-statement strong { font-size: clamp(2.3rem, 11vw, 3.15rem); }
  .training-principle-record { grid-column: auto; display: block; }
  .training-principle-record > div { grid-template-columns: .72fr 1fr; gap: .75rem; padding: .8rem 0; }
  .training-principle-record > div + div { border-top: 1px solid var(--zn-trace-line); border-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .training-field-routes { animation: none; }
}

/* V25 — accurate, compact applied-learning sequence */
.training-process {
  padding: 1.05rem;
  box-shadow: .9rem .9rem 0 rgba(8,19,33,.22);
}

.training-process-stage {
  position: relative;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-template-rows: 1fr 1fr;
  gap: 2.7rem 1rem;
  min-height: 22rem;
  padding: 2.5rem .65rem 2.25rem;
  background-image:
    linear-gradient(to right, rgba(42,59,84,.22) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(42,59,84,.22) 1px, transparent 1px);
  background-size: 3.5rem 3.5rem;
}

.training-process-route {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  fill: none;
  stroke: var(--zn-signal-blue);
  stroke-width: 1.15;
  stroke-dasharray: 5 7;
  opacity: .72;
  animation: trainingRoute 9s linear infinite;
  vector-effect: non-scaling-stroke;
}

.training-process-route circle {
  fill: var(--zn-signal-blue);
  stroke: none;
}

.training-process-feedback {
  stroke: var(--zn-forensic-steel);
  stroke-dasharray: 3 9;
  opacity: .52;
  animation: trainingFeedback 12s linear infinite reverse;
}

.training-process-node {
  position: relative;
  z-index: 1;
  display: grid;
  gap: .35rem;
  align-content: center;
  min-width: 0;
  padding: .85rem;
  color: var(--zn-cold-mist);
  background: rgba(8,19,33,.95);
  border: 1px solid var(--zn-trace-line);
  border-left: 2px solid var(--zn-forensic-steel);
}

.training-process-node span,
.training-process-node small {
  color: var(--zn-forensic-steel);
  font-family: var(--zn-mono);
  font-size: .61rem;
  letter-spacing: .05em;
  line-height: 1.45;
  text-transform: uppercase;
}

.training-process-node strong {
  color: var(--zn-ice-white);
  font-family: var(--zn-body);
  font-size: .96rem;
  line-height: 1.3;
}

.training-process-define { grid-column: 1 / span 2; grid-row: 1; }
.training-process-preserve { grid-column: 3 / span 2; grid-row: 1; }
.training-process-examine {
  grid-column: 5 / span 2;
  grid-row: 1;
  border-color: var(--zn-signal-blue);
  border-left-width: 3px;
}
.training-process-document { grid-column: 4 / span 3; grid-row: 2; }
.training-process-explain {
  grid-column: 1 / span 3;
  grid-row: 2;
  border-left-color: var(--zn-signal-blue);
}

@keyframes trainingFeedback { to { stroke-dashoffset: -60; } }

.training-process-examine > div {
  display: flex;
  gap: .55rem;
  align-items: center;
}

.training-process-examine img {
  width: 1.55rem;
  height: 1.75rem;
  flex: 0 0 auto;
  object-fit: contain;
}

@media (max-width: 780px) {
  .training-process { padding: .8rem; }
  .training-process-stage {
    grid-template-columns: 1fr;
    grid-template-rows: none;
    gap: .55rem;
    min-height: 0;
    padding: .9rem 0;
    background-size: 3rem 3rem;
  }
  .training-process-route { display: none; }
  .training-process-define,
  .training-process-preserve,
  .training-process-examine,
  .training-process-document,
  .training-process-explain { grid-column: 1; grid-row: auto; }
  .training-process-node {
    min-height: 0;
    padding: .85rem;
  }
  .training-process-node strong { font-size: 1rem; }
  .training-process-node small { display: block; }
}

@media (prefers-reduced-motion: reduce) {
  .training-process-route,
  .training-process-feedback { animation: none; }
}

/* V26 — The Zemi Method as an inspectable publication */
.method-page { background: var(--zn-evidence-white); }
.method-hero { position: relative; overflow: hidden; color: var(--zn-ice-white); background: var(--zn-midnight-evidence); border-bottom: 1px solid var(--zn-trace-line); }
.method-hero::before { content: ""; position: absolute; inset: 0; opacity: .2; background-image: linear-gradient(var(--zn-trace-line) 1px, transparent 1px), linear-gradient(90deg, var(--zn-trace-line) 1px, transparent 1px); background-size: 5rem 5rem; mask-image: linear-gradient(90deg, transparent 5%, #000 64%, #000 100%); }
.method-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, .9fr) minmax(32rem, 1.1fr); gap: clamp(3rem, 6vw, 6rem); align-items: center; min-height: clamp(43rem, 74vh, 52rem); padding-block: clamp(4.5rem, 8vw, 7rem); }
.method-hero-copy .eyebrow { margin: 0 0 2rem; color: var(--zn-forensic-steel); }
.method-hero-copy h1 { max-width: 52rem; margin: 0; color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: clamp(3.8rem, 5.8vw, 6.6rem); font-weight: 400; line-height: .97; letter-spacing: -.03em; }
.method-hero-copy .lead { max-width: 45rem; margin: 2.2rem 0 0; color: var(--zn-cold-mist); font-size: clamp(1rem, 1.25vw, 1.14rem); line-height: 1.72; }
.method-hero-record { display: grid; grid-template-columns: .7fr 1.3fr .8fr; max-width: 46rem; margin: 2.5rem 0 0; border-top: 1px solid var(--zn-trace-line); border-bottom: 1px solid var(--zn-trace-line); }
.method-hero-record div { padding: 1rem .85rem; }
.method-hero-record div:first-child { padding-left: 0; }
.method-hero-record div + div { border-left: 1px solid var(--zn-trace-line); }
.method-hero-record dt,
.method-hero-record dd { margin: 0; font-family: var(--zn-mono); text-transform: uppercase; }
.method-hero-record dt { color: var(--zn-forensic-steel); font-size: .62rem; letter-spacing: .06em; }
.method-hero-record dd { margin-top: .42rem; color: var(--zn-ice-white); font-size: .72rem; font-weight: 700; letter-spacing: .035em; }

.method-field { margin: 0; padding: 1.25rem; background: var(--zn-deep-night); border: 1px solid var(--zn-trace-line); box-shadow: 1.15rem 1.15rem 0 rgba(27,42,74,.4); }
.method-field figcaption,
.method-field-legend { display: flex; justify-content: space-between; gap: 1rem; color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .64rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.method-field figcaption { padding: .2rem .25rem 1rem; border-bottom: 1px solid var(--zn-trace-line); }
.method-field-stage { position: relative; min-height: 27rem; overflow: hidden; }
.method-field-stage::before,
.method-field-stage::after { content: ""; position: absolute; background: var(--zn-trace-line); opacity: .65; }
.method-field-stage::before { left: 0; right: 0; top: 50%; height: 1px; }
.method-field-stage::after { top: 0; bottom: 0; left: 50%; width: 1px; }
.method-field-stage > svg { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; }
.method-path { stroke: var(--zn-signal-blue); stroke-width: 1.4; stroke-dasharray: 5 8; animation: methodRoute 9s linear infinite; }
.method-orbit { stroke: var(--zn-trace-line); stroke-width: 1; stroke-dasharray: 2 8; transform-origin: center; animation: methodOrbit 32s linear infinite; }
.method-terminal { position: absolute; top: 50%; display: grid; gap: .25rem; min-width: 7.5rem; padding: .8rem; background: rgba(15,29,51,.94); border: 1px solid var(--zn-trace-line); transform: translateY(-50%); }
.method-terminal-claim { left: 1%; }
.method-terminal-finding { right: 1%; }
.method-terminal span,
.method-terminal small { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .56rem; letter-spacing: .055em; text-transform: uppercase; }
.method-terminal strong { color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: 1.35rem; font-weight: 400; }
.method-core { position: absolute; left: 50%; top: 50%; display: grid; place-items: center; width: 10.5rem; aspect-ratio: 1; padding: 1rem; text-align: center; background: var(--zn-midnight-evidence); border: 1px solid var(--zn-signal-blue); box-shadow: 0 0 0 .45rem rgba(92,132,182,.07), 0 0 3rem rgba(92,132,182,.16); transform: translate(-50%,-50%) rotate(45deg); }
.method-core > * { transform: rotate(-45deg); }
.method-core img { width: 2.6rem; height: 2.6rem; }
.method-core span { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .54rem; letter-spacing: .05em; text-transform: uppercase; }
.method-core strong { color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: 1.05rem; font-weight: 400; }
.method-control { position: absolute; color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .59rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.method-control::before { content: ""; display: inline-block; width: .38rem; height: .38rem; margin-right: .5rem; background: var(--zn-signal-blue); transform: rotate(45deg); }
.method-control-authority { left: 7%; top: 16%; }
.method-control-record { right: 7%; top: 16%; }
.method-control-alternatives { left: 7%; bottom: 16%; }
.method-control-gate { right: 7%; bottom: 16%; }
.method-field-legend { padding: 1rem .25rem .2rem; border-top: 1px solid var(--zn-trace-line); }

.method-discipline { color: var(--zn-slate-ink); background: var(--zn-evidence-white); }
.method-section-head { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(21rem, .72fr); gap: clamp(3rem, 9vw, 9rem); align-items: end; margin-bottom: clamp(3rem, 6vw, 5.25rem); }
.method-section-head .side-label { margin: 0 0 1.5rem; color: var(--zn-analyst-blue); }
.method-section-head h2 { max-width: 49rem; margin: 0; color: var(--zn-indigo); font-family: var(--zn-heading); font-size: clamp(3.2rem, 5vw, 5.75rem); font-weight: 400; line-height: .99; letter-spacing: -.025em; }
.method-section-head > p { margin: 0 0 .35rem; color: var(--zn-slate-ink); font-size: 1.05rem; line-height: 1.75; }
.method-controls { display: grid; grid-template-columns: repeat(3, 1fr); background: var(--zn-chain-grey); gap: 1px; border: 1px solid var(--zn-chain-grey); }
.method-controls article { position: relative; display: grid; grid-template-columns: 2.4rem 1fr; gap: 1.2rem; min-height: 23rem; padding: clamp(1.75rem, 3vw, 2.75rem); background: var(--zn-frost-white); }
.method-controls article:nth-child(2) { background: var(--zn-case-file-grey); }
.method-controls article::before { content: ""; position: absolute; top: 0; left: 0; width: 3.5rem; height: 2px; background: var(--zn-analyst-blue); transition: width 260ms ease; }
.method-controls article:hover::before { width: 100%; }
.method-control-icon { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; color: var(--zn-analyst-blue); border: 1px solid var(--zn-chain-grey); }
.method-control-icon svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 1.4; }
.method-controls small { color: var(--zn-analyst-blue); font-family: var(--zn-mono); font-size: .69rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.method-controls h3 { margin: 2rem 0 1.2rem; color: var(--zn-indigo); font-family: var(--zn-heading); font-size: clamp(2rem, 3vw, 3.25rem); font-weight: 400; line-height: 1.05; }
.method-controls p { margin: 0; color: var(--zn-slate-ink); line-height: 1.7; }

.method-architecture { color: var(--zn-cold-mist); background: var(--zn-indigo); }
.method-section-head-light .side-label { color: var(--zn-forensic-steel); }
.method-section-head-light h2 { color: var(--zn-ice-white); }
.method-section-head-light > p { color: var(--zn-cold-mist); }
.method-stages { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--zn-trace-line); }
.method-stages li { position: relative; display: grid; grid-template-columns: minmax(7rem, .25fr) minmax(20rem, 1fr) minmax(10rem, .35fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; min-height: 12rem; padding: 1.75rem 1.25rem; border-bottom: 1px solid var(--zn-trace-line); transition: background-color 200ms ease; }
.method-stages li:hover { background: var(--zn-midnight-evidence); }
.method-stage-index { display: flex; align-items: center; gap: 1rem; color: var(--zn-forensic-steel); }
.method-stage-index span { font-family: var(--zn-mono); font-size: .7rem; font-weight: 700; }
.method-stage-index svg { width: 1.65rem; height: 1.65rem; fill: none; stroke: currentColor; stroke-width: 1.4; }
.method-stages small { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .68rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.method-stages h3 { margin: .7rem 0 .65rem; color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: clamp(2rem, 3.4vw, 3.5rem); font-weight: 400; line-height: 1.04; }
.method-stages p { max-width: 47rem; margin: 0; color: var(--zn-cold-mist); line-height: 1.68; }
.method-stages > li > strong { justify-self: end; color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .68rem; letter-spacing: .055em; text-transform: uppercase; }
.method-stages > li > strong::before { content: ""; display: inline-block; width: .4rem; height: .4rem; margin-right: .7rem; background: var(--zn-signal-blue); transform: rotate(45deg); }

.method-publication { color: var(--zn-cold-mist); background: var(--zn-deep-night); }
.method-publication-grid { display: grid; grid-template-columns: minmax(10rem, .28fr) minmax(24rem, .92fr) minmax(20rem, .65fr); gap: clamp(2rem, 6vw, 6rem); padding-block: clamp(1rem, 2vw, 2rem); }
.method-publication-mark { display: grid; grid-template-columns: 3.5rem 1fr; gap: .8rem 1rem; align-content: start; padding-right: clamp(1rem, 3vw, 3rem); border-right: 1px solid var(--zn-trace-line); }
.method-publication-mark img { grid-row: span 2; width: 3.5rem; height: 3.5rem; }
.method-publication-mark span,
.method-publication-mark small,
.method-publication-copy > p { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.method-publication-mark small { align-self: start; color: var(--zn-ice-white); }
.method-publication-copy > p { margin: 0 0 1.25rem; }
.method-publication-copy h2 { margin: 0; color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: clamp(3rem, 5vw, 5.5rem); font-weight: 400; line-height: 1; }
.method-publication-copy > strong { display: block; max-width: 42rem; margin-top: 1.25rem; color: var(--zn-cold-mist); font-family: var(--zn-heading); font-size: 1.3rem; font-weight: 400; line-height: 1.45; }
.method-publication-copy dl { display: grid; grid-template-columns: repeat(3, 1fr); margin: 2rem 0 0; border-top: 1px solid var(--zn-trace-line); border-bottom: 1px solid var(--zn-trace-line); }
.method-publication-copy dl div { padding: .9rem .75rem .9rem 0; }
.method-publication-copy dl div + div { padding-left: .75rem; border-left: 1px solid var(--zn-trace-line); }
.method-publication-copy dt,
.method-publication-copy dd { margin: 0; font-family: var(--zn-mono); font-size: .65rem; letter-spacing: .05em; text-transform: uppercase; }
.method-publication-copy dt { color: var(--zn-forensic-steel); }
.method-publication-copy dd { margin-top: .4rem; color: var(--zn-ice-white); font-weight: 700; }
.method-publication-action { align-self: end; }
.method-publication-action p { margin: 0 0 2rem; color: var(--zn-cold-mist); line-height: 1.72; }
.method-publication-action .button { width: 100%; text-align: center; }

:root[data-theme="dark"] .method-page,
:root[data-theme="dark"] .method-discipline { background: var(--zn-midnight-evidence); }
:root[data-theme="dark"] .method-section-head h2,
:root[data-theme="dark"] .method-controls h3 { color: var(--zn-ice-white); }
:root[data-theme="dark"] .method-section-head > p,
:root[data-theme="dark"] .method-controls p { color: var(--zn-cold-mist); }
:root[data-theme="dark"] .method-controls { background: var(--zn-trace-line); border-color: var(--zn-trace-line); }
:root[data-theme="dark"] .method-controls article { background: var(--zn-deep-night); }
:root[data-theme="dark"] .method-controls article:nth-child(2) { background: var(--zn-surface); }
:root[data-theme="dark"] .method-control-icon { border-color: var(--zn-trace-line); }
:root[data-theme="dark"] .method-architecture { background: var(--zn-deep-night); }
:root[data-theme="dark"] .method-publication { background: var(--zn-midnight-evidence); }

@keyframes methodRoute { to { stroke-dashoffset: -78; } }
@keyframes methodOrbit { to { transform: rotate(360deg); } }

@media (max-width: 1100px) {
  .method-hero-grid { grid-template-columns: 1fr; min-height: 0; }
  .method-hero-copy h1 { max-width: 62rem; }
  .method-field { max-width: 50rem; }
  .method-publication-grid { grid-template-columns: minmax(10rem, .3fr) minmax(0, 1fr); }
  .method-publication-action { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: center; padding-top: 2rem; border-top: 1px solid var(--zn-trace-line); }
  .method-publication-action p { margin: 0; }
  .method-publication-action .button { width: auto; }
}

@media (max-width: 780px) {
  .method-hero-grid { gap: 2.75rem; padding-block: 4.25rem 3.5rem; }
  .method-hero-copy h1 { font-size: clamp(3.1rem, 14vw, 4.6rem); line-height: 1; }
  .method-hero-record { grid-template-columns: .65fr 1.3fr .85fr; }
  .method-hero-record div { padding-inline: .45rem; }
  .method-hero-record dt { font-size: .53rem; }
  .method-hero-record dd { font-size: .57rem; }
  .method-field { padding: .85rem; box-shadow: .65rem .65rem 0 rgba(27,42,74,.4); }
  .method-field figcaption { font-size: .54rem; }
  .method-field-stage { min-height: 22rem; }
  .method-terminal { min-width: 5.8rem; padding: .55rem; }
  .method-terminal strong { font-size: 1.05rem; }
  .method-terminal small { display: none; }
  .method-core { width: 7.75rem; }
  .method-core img { width: 2rem; height: 2rem; }
  .method-core span { font-size: .45rem; }
  .method-core strong { font-size: .82rem; }
  .method-control { font-size: .48rem; }
  .method-field-legend { display: grid; grid-template-columns: 1fr; font-size: .52rem; }
  .method-section-head { grid-template-columns: 1fr; gap: 1.75rem; }
  .method-section-head h2 { font-size: clamp(3rem, 13vw, 4.45rem); }
  .method-controls { grid-template-columns: 1fr; }
  .method-controls article { min-height: 0; padding: 2rem 1.35rem 2.5rem; }
  .method-controls h3 { font-size: clamp(2.4rem, 11vw, 3.2rem); }
  .method-stages li { grid-template-columns: 1fr; gap: 1rem; min-height: 0; padding: 2rem .2rem; }
  .method-stages > li > strong { justify-self: start; }
  .method-publication-grid { grid-template-columns: 1fr; gap: 2rem; }
  .method-publication-mark { padding: 0 0 1.5rem; border-right: 0; border-bottom: 1px solid var(--zn-trace-line); }
  .method-publication-copy dl { grid-template-columns: 1fr 1fr 1fr; }
  .method-publication-action { grid-column: auto; grid-template-columns: 1fr; }
  .method-publication-action .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .method-path,
  .method-orbit { animation: none; }
}

/* V27 — evidentiary trace replaces the abstract method diamond */
.method-trace { background: var(--zn-midnight-evidence); }
.method-trace-boundary,
.method-trace-limits { display: flex; justify-content: space-between; gap: 1rem; padding: .9rem .25rem; font-family: var(--zn-mono); text-transform: uppercase; }
.method-trace-boundary { border-bottom: 1px solid var(--zn-trace-line); }
.method-trace-limits { border-top: 1px solid var(--zn-trace-line); }
.method-trace-boundary span,
.method-trace-limits span { color: var(--zn-forensic-steel); font-size: .67rem; letter-spacing: .055em; }
.method-trace-boundary strong,
.method-trace-limits strong { color: var(--zn-ice-white); font-size: .68rem; letter-spacing: .045em; }
.method-trace-stage { position: relative; min-height: 26rem; overflow: hidden; }
.method-trace-stage::before { content: ""; position: absolute; inset: 50% 0 auto; height: 1px; background: var(--zn-trace-line); opacity: .75; }
.method-trace-stage > svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; fill: none; }
.method-trace-line { stroke: var(--zn-signal-blue); stroke-width: 1.5; stroke-dasharray: 5 7; }
.method-trace-spine { stroke: var(--zn-trace-line); stroke-width: 1; stroke-dasharray: 2 8; }
.method-trace-signal { fill: var(--zn-signal-blue); filter: drop-shadow(0 0 7px var(--zn-signal-blue)); }
.signal-one { animation: methodSignalIn 3.2s ease-in-out infinite; }
.signal-two { animation: methodSignalOut 3.2s ease-in-out infinite .8s; }
.method-trace-terminal { position: absolute; top: 50%; z-index: 2; display: grid; gap: .35rem; width: 7.5rem; padding: 1rem; background: var(--zn-deep-night); border: 1px solid var(--zn-trace-line); transform: translateY(-50%); }
.method-trace-claim { left: 0; border-left: 2px solid var(--zn-forensic-steel); }
.method-trace-finding { right: 0; border-right: 2px solid var(--zn-signal-blue); }
.method-trace-terminal span,
.method-trace-terminal small { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .64rem; letter-spacing: .05em; text-transform: uppercase; }
.method-trace-terminal strong { color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: 1.62rem; font-weight: 400; }
.method-trace-engine { position: absolute; left: 50%; top: 50%; z-index: 3; width: min(17rem, 52%); background: var(--zn-deep-night); border: 1px solid var(--zn-signal-blue); box-shadow: 0 0 0 .45rem rgba(92,132,182,.06), 0 0 3rem rgba(92,132,182,.13); transform: translate(-50%,-50%); }
.method-trace-engine-head { display: grid; grid-template-columns: 2.2rem 1fr; gap: .8rem; align-items: center; padding: .85rem 1rem; border-bottom: 1px solid var(--zn-trace-line); }
.method-trace-engine-head img { width: 2rem; height: 2rem; }
.method-trace-engine-head span { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .7rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.method-trace-check { display: grid; grid-template-columns: 1.8rem 1fr auto; gap: .7rem; align-items: center; padding: .8rem 1rem; }
.method-trace-check + .method-trace-check { border-top: 1px solid var(--zn-trace-line); }
.method-trace-check > span { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .63rem; }
.method-trace-check div { display: grid; gap: .15rem; }
.method-trace-check strong { color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: 1.08rem; font-weight: 400; }
.method-trace-check small { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .52rem; letter-spacing: .035em; text-transform: uppercase; }
.method-trace-check b { color: var(--zn-ice-white); font-family: var(--zn-mono); font-size: .61rem; letter-spacing: .045em; text-transform: uppercase; }

@keyframes methodSignalIn {
  0%, 15% { opacity: 0; transform: translateX(-44px); }
  45%, 70% { opacity: 1; }
  100% { opacity: 0; transform: translateX(50px); }
}
@keyframes methodSignalOut {
  0%, 15% { opacity: 0; transform: translateX(-48px); }
  45%, 70% { opacity: 1; }
  100% { opacity: 0; transform: translateX(45px); }
}

@media (max-width: 780px) {
  .method-trace-boundary,
  .method-trace-limits { align-items: flex-start; flex-direction: column; }
  .method-trace-limits strong { line-height: 1.5; }
  .method-trace-stage { min-height: 35rem; }
  .method-trace-stage::before { inset: 0 auto 0 50%; width: 1px; height: auto; }
  .method-trace-stage > svg { display: none; }
  .method-trace-terminal { left: 50%; right: auto; top: auto; width: 9rem; transform: translateX(-50%); }
  .method-trace-claim { top: 1.5rem; border-left: 1px solid var(--zn-trace-line); border-top: 2px solid var(--zn-forensic-steel); }
  .method-trace-finding { bottom: 1.5rem; border-right: 1px solid var(--zn-trace-line); border-bottom: 2px solid var(--zn-signal-blue); }
  .method-trace-engine { width: calc(100% - 1.5rem); }
  .method-trace-engine-head span { font-size: .6rem; }
}

@media (prefers-reduced-motion: reduce) {
  .method-trace-signal { animation: none; }
}

/* V28: authoritative Version 1.2 lifecycle, phases 0–6 */
.method-lifecycle { background: var(--zn-midnight-evidence); }
.method-authority-gate { display: grid; grid-template-columns: 4.8rem 1fr auto; gap: 1rem; align-items: center; margin-top: 1rem; padding: 1rem; background: var(--zn-deep-night); border: 1px solid var(--zn-trace-line); border-left: 2px solid var(--zn-forensic-steel); }
.method-phase-number { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .68rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.method-authority-gate > div { display: grid; gap: .22rem; }
.method-authority-gate strong { color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: 1.25rem; font-weight: 400; }
.method-authority-gate small { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .58rem; letter-spacing: .035em; text-transform: uppercase; }
.method-authority-gate b { padding: .45rem .55rem; color: var(--zn-ice-white); font-family: var(--zn-mono); font-size: .59rem; letter-spacing: .05em; text-transform: uppercase; border: 1px solid var(--zn-trace-line); }

.method-lifecycle-flow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.35rem; margin: 1.35rem 0; padding: 0; list-style: none; }
.method-phase { position: relative; display: grid; grid-template-columns: 1.75rem 1fr; gap: .75rem; align-items: start; min-height: 8.4rem; padding: 1rem; background: var(--zn-deep-night); border: 1px solid var(--zn-trace-line); }
.method-phase-1 { grid-column: 1; grid-row: 1; }
.method-phase-2 { grid-column: 2; grid-row: 1; }
.method-phase-3 { grid-column: 3; grid-row: 1; }
.method-phase-4 { grid-column: 3; grid-row: 2; }
.method-phase-5 { grid-column: 2; grid-row: 2; background: var(--zn-indigo); border-color: var(--zn-signal-blue); box-shadow: 0 0 2rem rgba(92,132,182,.12); }
.method-phase-6 { grid-column: 1; grid-row: 2; border-bottom: 2px solid var(--zn-signal-blue); }
.method-phase > span { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .64rem; font-weight: 700; }
.method-phase > div { display: grid; gap: .4rem; }
.method-phase strong { color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: 1.35rem; font-weight: 400; line-height: 1.08; }
.method-phase small { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .61rem; letter-spacing: .025em; line-height: 1.5; text-transform: uppercase; }
.method-phase > b { grid-column: 1 / -1; align-self: end; padding-top: .55rem; color: var(--zn-ice-white); font-family: var(--zn-mono); font-size: .58rem; letter-spacing: .05em; text-align: right; text-transform: uppercase; border-top: 1px solid var(--zn-trace-line); }
.method-phase::after { content: ""; position: absolute; z-index: 3; width: 1.35rem; height: 1px; background: var(--zn-signal-blue); }
.method-phase::before { content: ""; position: absolute; z-index: 4; width: 0; height: 0; border: .22rem solid transparent; }
.method-phase-1::after,
.method-phase-2::after { right: -1.36rem; top: 50%; }
.method-phase-1::before,
.method-phase-2::before { right: -1.57rem; top: calc(50% - .18rem); border-left-color: var(--zn-signal-blue); }
.method-phase-3::after { left: 50%; bottom: -.75rem; transform: rotate(90deg); }
.method-phase-3::before { left: calc(50% - .18rem); bottom: -1.15rem; border-top-color: var(--zn-signal-blue); }
.method-phase-4::after,
.method-phase-5::after { left: -1.36rem; top: 50%; }
.method-phase-4::before,
.method-phase-5::before { left: -1.57rem; top: calc(50% - .18rem); border-right-color: var(--zn-signal-blue); }
.method-phase-6::after,
.method-phase-6::before { display: none; }

.method-defensibility { display: grid; grid-template-columns: 1fr minmax(13rem, .68fr); gap: 1.5rem; align-items: stretch; padding: 1rem; background: var(--zn-deep-night); border: 1px solid var(--zn-trace-line); border-top: 2px solid var(--zn-signal-blue); }
.method-defensibility > div { display: grid; grid-template-columns: 2.5rem 1fr; gap: .85rem; align-items: center; }
.method-defensibility img { width: 2.3rem; height: 2.3rem; }
.method-defensibility > div span { display: grid; gap: .3rem; }
.method-defensibility strong { color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: 1.18rem; font-weight: 400; }
.method-defensibility small { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .61rem; letter-spacing: .03em; line-height: 1.45; text-transform: uppercase; }
.method-defensibility dl { display: grid; grid-template-columns: 1fr 1.45fr; margin: 0; border: 1px solid var(--zn-trace-line); }
.method-defensibility dl div { padding: .65rem; }
.method-defensibility dl div + div { border-left: 1px solid var(--zn-trace-line); }
.method-defensibility dt,
.method-defensibility dd { margin: 0; font-family: var(--zn-mono); font-size: .57rem; letter-spacing: .035em; line-height: 1.4; text-transform: uppercase; }
.method-defensibility dt { color: var(--zn-forensic-steel); }
.method-defensibility dd { margin-top: .35rem; color: var(--zn-ice-white); font-weight: 700; }

@media (max-width: 780px) {
  .method-authority-gate { grid-template-columns: 3.7rem 1fr; }
  .method-authority-gate b { grid-column: 1 / -1; text-align: center; }
  .method-lifecycle-flow { grid-template-columns: 1fr; gap: 1.15rem; }
  .method-phase,
  .method-phase-1,
  .method-phase-2,
  .method-phase-3,
  .method-phase-4,
  .method-phase-5,
  .method-phase-6 { grid-column: 1; grid-row: auto; min-height: 0; }
  .method-phase::after,
  .method-phase-1::after,
  .method-phase-2::after,
  .method-phase-3::after,
  .method-phase-4::after,
  .method-phase-5::after { left: 50%; right: auto; top: auto; bottom: -1rem; width: 1.15rem; transform: rotate(90deg); }
  .method-phase::before,
  .method-phase-1::before,
  .method-phase-2::before,
  .method-phase-3::before,
  .method-phase-4::before,
  .method-phase-5::before { left: calc(50% - .18rem); right: auto; top: auto; bottom: -1.28rem; border: .22rem solid transparent; border-top-color: var(--zn-signal-blue); }
  .method-phase-6::after,
  .method-phase-6::before { display: none; }
  .method-defensibility { grid-template-columns: 1fr; }
  .method-defensibility dl { grid-template-columns: 1fr 1.35fr; }
}

/* V29 — detailed seven-phase architecture */
.method-architecture-head { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(21rem, .62fr); gap: clamp(3rem, 9vw, 9rem); align-items: end; margin-bottom: clamp(3rem, 6vw, 5.25rem); }
.method-architecture-head > div:first-child { padding-top: 1.5rem; border-top: 1px solid var(--zn-trace-line); }
.method-architecture-head .side-label { position: static; top: auto; margin: 0 0 1.6rem; padding-top: 0; color: var(--zn-forensic-steel); font-size: .76rem; }
.method-architecture-head h2 { max-width: 46rem; margin: 0; color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: clamp(3.25rem, 5vw, 5.5rem); font-weight: 400; line-height: .99; letter-spacing: -.025em; }
.method-architecture-intro { padding: 1.5rem 0 .35rem clamp(1.5rem, 3vw, 3rem); border-left: 1px solid var(--zn-trace-line); }
.method-architecture-intro span { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.method-architecture-intro p { max-width: 34rem; margin: 1.1rem 0 0; color: var(--zn-cold-mist); font-size: 1.02rem; line-height: 1.72; }

.method-phase-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 0; background: var(--zn-trace-line); border: 1px solid var(--zn-trace-line); list-style: none; }
.method-phase-card { position: relative; grid-column: span 6; display: flex; flex-direction: column; min-height: 27rem; padding: clamp(2rem, 4vw, 3.25rem); background: var(--zn-midnight-evidence); }
.method-phase-card:nth-child(3),
.method-phase-card:nth-child(5) { background: var(--zn-deep-night); }
.method-phase-card::before { content: ""; position: absolute; top: 0; left: 0; width: 4rem; height: 2px; background: var(--zn-signal-blue); transition: width 260ms ease; }
.method-phase-card:hover::before { width: 8rem; }
.method-phase-card-0 { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(8rem, .25fr) minmax(22rem, 1fr) minmax(10rem, .32fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; min-height: 0; background: var(--zn-deep-night); border-left: 2px solid var(--zn-forensic-steel); }
.method-phase-card-5 { grid-column: span 7; background: var(--zn-indigo); border-top: 1px solid var(--zn-signal-blue); border-bottom: 1px solid var(--zn-signal-blue); }
.method-phase-card-6 { grid-column: span 5; background: var(--zn-deep-night); border-bottom: 1px solid var(--zn-signal-blue); }
.method-phase-card-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; color: var(--zn-forensic-steel); }
.method-phase-card-head span { font-family: var(--zn-mono); font-size: .72rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.method-phase-card-head svg { width: 1.65rem; height: 1.65rem; fill: none; stroke: currentColor; stroke-width: 1.4; }
.method-phase-card > div:nth-child(2) { margin-top: 2.75rem; }
.method-phase-card-0 > div:nth-child(2) { margin-top: 0; }
.method-phase-card small { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .7rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.method-phase-card h3 { margin: .9rem 0 1.25rem; color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: clamp(2.6rem, 4vw, 4.15rem); font-weight: 400; line-height: 1.02; }
.method-phase-card-0 h3 { font-size: clamp(2.5rem, 3.4vw, 3.75rem); }
.method-phase-card p { max-width: 42rem; margin: 0; color: var(--zn-cold-mist); line-height: 1.72; }
.method-phase-card > strong { margin-top: auto; padding-top: 1.5rem; color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .7rem; letter-spacing: .055em; text-transform: uppercase; border-top: 1px solid var(--zn-trace-line); }
.method-phase-card-0 > strong { margin-top: 0; padding: .85rem 1rem; color: var(--zn-ice-white); text-align: center; border: 1px solid var(--zn-trace-line); }
.method-phase-card > strong::before { content: ""; display: inline-block; width: .42rem; height: .42rem; margin-right: .7rem; background: var(--zn-signal-blue); transform: rotate(45deg); }
.method-phase-card-0 > strong::before { background: var(--zn-forensic-steel); }

.method-return-rule { display: grid; grid-template-columns: minmax(11rem, .3fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; margin-top: 2.5rem; padding: 2rem; background: var(--zn-deep-night); border: 1px solid var(--zn-trace-line); border-top: 2px solid var(--zn-signal-blue); }
.method-return-rule > div { display: flex; align-items: center; gap: 1rem; color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .72rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.method-return-rule img { width: 2.4rem; height: 2.4rem; }
.method-return-rule p { max-width: 58rem; margin: 0; color: var(--zn-cold-mist); line-height: 1.7; }
.method-return-rule strong { color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: 1.25rem; font-weight: 400; }

@media (max-width: 900px) {
  .method-phase-card-0 { grid-template-columns: minmax(8rem, .28fr) minmax(0, 1fr); }
  .method-phase-card-0 > strong { grid-column: 1 / -1; }
  .method-phase-card-5,
  .method-phase-card-6 { grid-column: span 6; }
}

@media (max-width: 780px) {
  .method-architecture-head { grid-template-columns: 1fr; gap: 1.75rem; }
  .method-architecture-head h2 { font-size: clamp(3rem, 13vw, 4.35rem); }
  .method-architecture-intro { padding: 0 0 0 1.25rem; }
  .method-phase-grid { grid-template-columns: 1fr; }
  .method-phase-card,
  .method-phase-card-0,
  .method-phase-card-5,
  .method-phase-card-6 { grid-column: 1; display: flex; min-height: 0; padding: 2rem 1.35rem 2.5rem; border-left: 0; }
  .method-phase-card > div:nth-child(2),
  .method-phase-card-0 > div:nth-child(2) { margin-top: 2rem; }
  .method-phase-card h3,
  .method-phase-card-0 h3 { font-size: clamp(2.6rem, 12vw, 3.45rem); }
  .method-phase-card > strong,
  .method-phase-card-0 > strong { margin-top: 2rem; padding: 1.15rem 0 0; text-align: left; border: 0; border-top: 1px solid var(--zn-trace-line); }
  .method-return-rule { grid-template-columns: 1fr; gap: 1.35rem; padding: 1.5rem 1.25rem; }
}

/* V30 — publication package and final reading refinement */
.method-publication { position: relative; overflow: hidden; border-top: 2px solid var(--zn-signal-blue); }
.method-publication::before { content: ""; position: absolute; inset: 0; opacity: .15; background-image: linear-gradient(var(--zn-trace-line) 1px, transparent 1px), linear-gradient(90deg, var(--zn-trace-line) 1px, transparent 1px); background-size: 5rem 5rem; mask-image: linear-gradient(90deg, transparent 20%, #000 100%); pointer-events: none; }
.method-publication-grid { position: relative; z-index: 1; }
.method-publication-action { display: block; align-self: start; }
.method-publication-action > p:first-child { margin: 0 0 1.5rem; }
.method-publication-links { border-top: 1px solid var(--zn-trace-line); border-bottom: 1px solid var(--zn-trace-line); }
.method-publication-links a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .32rem 1rem; padding: .9rem .25rem; color: inherit; text-decoration: none; transition: background-color 180ms ease, padding-left 180ms ease; }
.method-publication-links a + a { border-top: 1px solid var(--zn-trace-line); }
.method-publication-links a:hover,
.method-publication-links a:focus-visible { padding-left: .75rem; color: var(--zn-ice-white); background: rgba(92, 132, 182, .16); box-shadow: inset 3px 0 0 var(--zn-signal-blue); outline: none; }
.method-publication-links a:hover span,
.method-publication-links a:focus-visible span { color: var(--zn-cold-mist); }
.method-publication-links a:hover strong,
.method-publication-links a:hover small,
.method-publication-links a:focus-visible strong,
.method-publication-links a:focus-visible small { color: var(--zn-ice-white); }
.method-publication-links span,
.method-publication-links small { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .63rem; font-weight: 700; letter-spacing: .045em; text-transform: uppercase; }
.method-publication-links small { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--zn-ice-white); white-space: nowrap; }
.method-publication-links strong { color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: 1.1rem; font-weight: 400; }
.method-version-note { margin: 1.5rem 0 0 !important; padding: 1rem 0 0 1rem; color: var(--zn-forensic-steel) !important; font-size: .78rem; line-height: 1.65 !important; border-left: 2px solid var(--zn-signal-blue); }
.method-version-note strong { color: var(--zn-ice-white); font-family: var(--zn-mono); font-size: .68rem; letter-spacing: .05em; text-transform: uppercase; }

@media (max-width: 1100px) and (min-width: 781px) {
  .method-publication-action { display: grid; grid-template-columns: minmax(15rem, .65fr) minmax(24rem, 1.35fr); gap: 1.5rem 3rem; align-items: start; }
  .method-publication-action > p:first-child { grid-column: 1; margin: 0; }
  .method-publication-links { grid-column: 2; grid-row: 1 / span 2; }
  .method-version-note { grid-column: 1; margin-top: 0 !important; }
}

@media (max-width: 780px) {
  .method-authority-gate small,
  .method-phase small { font-size: .64rem; line-height: 1.55; }
  .method-field-legend { font-size: .58rem; line-height: 1.5; }
  .method-publication-links a { grid-template-columns: 1fr; gap: .3rem; padding-block: 1rem; }
  .method-publication-links small { grid-column: 1; grid-row: auto; margin-top: .35rem; }
}

/* V31 — Method page labels must scroll with their headings, never over them. */
.method-page .side-label,
.method-page .method-section-head .side-label,
.method-page .method-architecture-head .side-label {
  position: static;
  inset: auto;
  top: auto;
  z-index: auto;
  align-self: auto;
}

/* V32 — enquiry page as a controlled intake record. */
.contact-page .side-label { position: static; inset: auto; top: auto; }
.contact-hero { position: relative; overflow: hidden; padding-block: clamp(4.75rem, 7.5vw, 7rem); background: var(--zn-indigo-deep); }
.contact-hero::before { content: ""; position: absolute; inset: 0; opacity: .18; background-image: linear-gradient(var(--zn-trace-line) 1px, transparent 1px), linear-gradient(90deg, var(--zn-trace-line) 1px, transparent 1px); background-size: 5rem 5rem; mask-image: linear-gradient(90deg, transparent 10%, #000 100%); pointer-events: none; }
.contact-hero::after { width: min(31rem, 44vw); height: min(31rem, 44vw); right: -8rem; bottom: -14rem; opacity: .08; }
.contact-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(24rem, .82fr); gap: clamp(4rem, 8vw, 9rem); align-items: center; }
.contact-hero-copy h1 { max-width: 12ch; margin: 1.7rem 0 1.5rem; color: var(--zn-ice-white); font-size: clamp(3.6rem, 6.2vw, 6.75rem); line-height: .96; }
.contact-hero-copy .lead { max-width: 40rem; color: var(--zn-cold-mist); font-size: clamp(1.08rem, 1.35vw, 1.3rem); line-height: 1.7; }
.intake-boundary { color: var(--zn-ice-white); background: color-mix(in srgb, var(--zn-deep-night) 88%, transparent); border: 1px solid var(--zn-trace-line); border-top: 2px solid var(--zn-signal-blue); }
.intake-boundary-head { display: flex; justify-content: space-between; gap: 1rem; padding: .9rem 1.1rem; color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .65rem; letter-spacing: .07em; border-bottom: 1px solid var(--zn-trace-line); }
.intake-boundary-head strong { color: var(--zn-ice-white); font-weight: 700; }
.intake-boundary ol { margin: 0; padding: 0; list-style: none; }
.intake-boundary li { display: grid; grid-template-columns: 2.75rem minmax(0, 1fr); gap: 1rem; align-items: center; padding: 1.2rem 1.15rem; border-bottom: 1px solid var(--zn-trace-line); }
.intake-boundary li svg { width: 1.45rem; height: 1.45rem; padding: .55rem; box-sizing: content-box; color: var(--zn-signal-blue); stroke: currentColor; fill: none; stroke-width: 1.4; border: 1px solid var(--zn-trace-line); }
.intake-boundary li span { display: grid; gap: .2rem; }
.intake-boundary li strong { color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: 1.2rem; font-weight: 400; }
.intake-boundary li small { color: var(--zn-forensic-steel); font-size: .82rem; line-height: 1.45; }
.intake-boundary > p { margin: 0; padding: .9rem 1.15rem; color: var(--zn-cold-mist); font-family: var(--zn-mono); font-size: .64rem; letter-spacing: .045em; text-transform: uppercase; }

.contact-intake { padding-block: clamp(4.5rem, 8vw, 8rem); }
.contact-intake .contact-grid { grid-template-columns: minmax(0, .82fr) minmax(31rem, 1.18fr); gap: clamp(4rem, 8vw, 9rem); align-items: start; }
.contact-guidance { position: sticky; top: 7.5rem; }
.contact-guidance .side-label { display: inline-flex; margin: 0 0 2rem; color: var(--zn-analyst-blue); }
.contact-guidance h2 { max-width: 10ch; margin: 0 0 1.4rem; color: var(--zn-indigo); font-size: clamp(3rem, 4.6vw, 5.25rem); line-height: .98; }
.contact-guidance > p:not(.side-label) { max-width: 38rem; margin-bottom: 2.2rem; color: var(--zn-slate-ink); font-size: 1.02rem; line-height: 1.75; }
.contact-guidance-list { border-top: 1px solid var(--zn-chain-grey); }
.contact-guidance-list article { display: grid; grid-template-columns: 2.6rem minmax(0, 1fr); gap: 1.1rem; padding: 1.35rem 0; border-bottom: 1px solid var(--zn-chain-grey); }
.contact-guidance-list svg { width: 1.3rem; height: 1.3rem; margin-top: .15rem; padding: .45rem; box-sizing: content-box; color: var(--zn-analyst-blue); stroke: currentColor; fill: none; stroke-width: 1.5; border: 1px solid var(--zn-chain-grey); }
.contact-guidance-list h3 { margin: 0 0 .35rem; color: var(--zn-indigo); font-family: var(--zn-mono); font-size: .71rem; letter-spacing: .055em; text-transform: uppercase; }
.contact-guidance-list p { margin: 0; color: var(--zn-steel-blue); font-size: .9rem; line-height: 1.6; }
.contact-direct { display: grid; gap: .38rem; margin-top: 2rem; padding: 1.2rem 0 0 1.15rem; border-left: 2px solid var(--zn-analyst-blue); }
.contact-direct span, .contact-direct small { color: var(--zn-steel-blue); font-family: var(--zn-mono); font-size: .64rem; letter-spacing: .055em; text-transform: uppercase; }
.contact-direct a { width: fit-content; color: var(--zn-indigo); font-family: var(--zn-heading); font-size: 1.35rem; text-decoration-color: var(--zn-analyst-blue); text-underline-offset: .28rem; }

.contact-page .contact-card { display: grid; margin: 0; padding: clamp(1.5rem, 3.5vw, 3.25rem); background: var(--zn-frost-white); border: 1px solid var(--zn-chain-grey); border-top: 3px solid var(--zn-analyst-blue); box-shadow: 1.15rem 1.15rem 0 color-mix(in srgb, #E8EEF4 78%, transparent); }
.contact-form-heading { margin: 0 0 2rem; padding: 0 0 1.5rem; border-bottom: 1px solid var(--zn-chain-grey); }
.contact-form-heading .eyebrow { margin: 0 0 .85rem; color: var(--zn-analyst-blue); }
.contact-form-heading h2 { margin: 0 0 .7rem; color: var(--zn-indigo); font-size: clamp(2.6rem, 4vw, 4.15rem); line-height: 1; }
.contact-form-heading > p:last-child { max-width: 35rem; margin: 0; color: var(--zn-steel-blue); font-size: .88rem; line-height: 1.6; }
.contact-page .contact-card > label { display: flex; justify-content: space-between; gap: 1rem; margin: 1.15rem 0 .5rem; color: var(--zn-indigo); font-size: .68rem; }
.contact-page .contact-card > label > span:not(.field-requirement) { color: var(--zn-analyst-blue); }
.contact-page .field-requirement { color: var(--zn-steel-blue); font-weight: 500; }
.contact-page .contact-card input,
.contact-page .contact-card select,
.contact-page .contact-card textarea { min-height: 3.65rem; padding: .9rem 1rem; color: var(--zn-slate-ink); background: var(--zn-evidence-white); border: 1px solid var(--zn-chain-grey); }
.contact-page .contact-card textarea { min-height: 10rem; line-height: 1.6; }
.contact-page .contact-card input:hover,
.contact-page .contact-card select:hover,
.contact-page .contact-card textarea:hover { border-color: var(--zn-steel-blue); }
.contact-page .contact-card input:focus,
.contact-page .contact-card select:focus,
.contact-page .contact-card textarea:focus { outline: 2px solid color-mix(in srgb, var(--zn-analyst-blue) 28%, transparent); outline-offset: 2px; border-color: var(--zn-analyst-blue); }
.contact-page .character-count { margin: .55rem 0 0; color: var(--zn-steel-blue); font-family: var(--zn-mono); font-size: .69rem; }
.contact-page .character-count[data-state="valid"] { color: var(--zn-analyst-blue); }
.contact-page .contact-card .form-note { color: var(--zn-steel-blue); font-size: .76rem; line-height: 1.6; }
.contact-page .turnstile-space { min-height: 0; margin-top: .6rem; }
.contact-submit-row { display: flex; align-items: center; gap: 1rem 1.25rem; margin-top: .6rem; }
.contact-submit-row .button { flex: 0 0 auto; min-width: 11.5rem; margin: 0 !important; }
.contact-submit-row > span { max-width: 17rem; color: var(--zn-steel-blue); font-family: var(--zn-mono); font-size: .62rem; line-height: 1.5; letter-spacing: .045em; text-transform: uppercase; }
.contact-delivery-note { display: grid; grid-template-columns: 1.6rem minmax(0, 1fr); gap: .8rem; align-items: start; margin-top: 1.3rem !important; padding-top: 1rem; border-top: 1px solid var(--zn-chain-grey); }
.contact-delivery-note svg { width: 1.25rem; height: 1.25rem; color: var(--zn-analyst-blue); stroke: currentColor; fill: none; stroke-width: 1.5; }

:root[data-theme="dark"] .contact-hero { background: var(--zn-midnight-evidence); }
:root[data-theme="dark"] .contact-intake { background: var(--zn-midnight-evidence); }
:root[data-theme="dark"] .contact-guidance h2,
:root[data-theme="dark"] .contact-guidance-list h3,
:root[data-theme="dark"] .contact-direct a { color: var(--zn-ice-white); }
:root[data-theme="dark"] .contact-guidance > p:not(.side-label),
:root[data-theme="dark"] .contact-guidance-list p { color: var(--zn-cold-mist); }
:root[data-theme="dark"] .contact-guidance-list,
:root[data-theme="dark"] .contact-guidance-list article { border-color: var(--zn-trace-line); }
:root[data-theme="dark"] .contact-page .contact-card { background: var(--zn-deep-night); border-color: var(--zn-trace-line); box-shadow: 1.15rem 1.15rem 0 color-mix(in srgb, var(--zn-indigo) 52%, transparent); }
:root[data-theme="dark"] .contact-form-heading { border-color: var(--zn-trace-line); }
:root[data-theme="dark"] .contact-form-heading h2,
:root[data-theme="dark"] .contact-page .contact-card > label { color: var(--zn-ice-white); }
:root[data-theme="dark"] .contact-form-heading > p:last-child,
:root[data-theme="dark"] .contact-page .character-count,
:root[data-theme="dark"] .contact-page .contact-card .form-note,
:root[data-theme="dark"] .contact-submit-row > span { color: var(--zn-cold-mist); }
:root[data-theme="dark"] .contact-page .contact-card input,
:root[data-theme="dark"] .contact-page .contact-card select,
:root[data-theme="dark"] .contact-page .contact-card textarea { color: var(--zn-ice-white); background: #18212B; border-color: var(--zn-trace-line); }
:root[data-theme="dark"] .contact-delivery-note { border-color: var(--zn-trace-line); }

@media (max-width: 980px) {
  .contact-hero-grid, .contact-intake .contact-grid { grid-template-columns: 1fr; }
  .contact-hero-grid { gap: 3rem; }
  .intake-boundary { max-width: 42rem; }
  .contact-guidance { position: static; }
  .contact-guidance h2 { max-width: 13ch; }
}

@media (max-width: 620px) {
  .contact-hero { padding-block: 3.8rem 3.5rem; }
  .contact-hero-copy h1 { font-size: clamp(3.15rem, 15vw, 4.4rem); line-height: 1; }
  .contact-hero-copy .lead { font-size: 1rem; line-height: 1.75; }
  .intake-boundary-head { align-items: flex-start; flex-direction: column; }
  .intake-boundary li { grid-template-columns: 2.3rem minmax(0, 1fr); gap: .8rem; padding-inline: .9rem; }
  .intake-boundary li svg { width: 1.15rem; height: 1.15rem; padding: .45rem; }
  .contact-intake { padding-block: 4rem; }
  .contact-intake .contact-grid { gap: 3.5rem; }
  .contact-guidance h2 { font-size: clamp(2.8rem, 13vw, 3.8rem); line-height: 1.02; }
  .contact-page .contact-card { padding: 1.35rem; box-shadow: .55rem .55rem 0 color-mix(in srgb, #E8EEF4 78%, transparent); }
  :root[data-theme="dark"] .contact-page .contact-card { box-shadow: .55rem .55rem 0 color-mix(in srgb, var(--zn-indigo) 52%, transparent); }
  .contact-form-heading h2 { font-size: 2.8rem; }
  .contact-submit-row { align-items: stretch; flex-direction: column; }
  .contact-submit-row .button { width: 100%; }
}

/* V34 — About page: identity, purpose, principles, and accountable practice. */
.about-page .side-label { position: static; inset: auto; top: auto; }
.about-hero { position: relative; overflow: hidden; padding-block: clamp(5rem, 8vw, 8rem); background: var(--zn-indigo-deep); }
.about-hero::before { content: ""; position: absolute; inset: 0; opacity: .18; background-image: linear-gradient(var(--zn-trace-line) 1px, transparent 1px), linear-gradient(90deg, var(--zn-trace-line) 1px, transparent 1px); background-size: 5rem 5rem; mask-image: linear-gradient(90deg, transparent 15%, #000 100%); pointer-events: none; }
.about-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(27rem, .88fr); gap: clamp(4rem, 8vw, 9rem); align-items: center; }
.about-hero-copy h1 { max-width: 10ch; margin: 1.6rem 0 1.4rem; color: var(--zn-ice-white); font-size: clamp(4rem, 6.6vw, 7.25rem); line-height: .94; }
.about-hero-copy .lead { max-width: 43rem; color: var(--zn-cold-mist); font-size: clamp(1.08rem, 1.4vw, 1.3rem); line-height: 1.7; }
.about-practice-record { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 43rem; margin: 2.5rem 0 0; border-top: 1px solid var(--zn-trace-line); border-bottom: 1px solid var(--zn-trace-line); }
.about-practice-record div { padding: .9rem .85rem .9rem 0; }
.about-practice-record div + div { padding-left: .85rem; border-left: 1px solid var(--zn-trace-line); }
.about-practice-record dt { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .58rem; letter-spacing: .06em; text-transform: uppercase; }
.about-practice-record dd { margin: .35rem 0 0; color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: 1.05rem; }
.about-orientation-field { margin: 0; color: var(--zn-ice-white); background: color-mix(in srgb, var(--zn-midnight-evidence) 90%, transparent); border: 1px solid var(--zn-trace-line); border-top: 2px solid var(--zn-signal-blue); }
.about-orientation-field figcaption { display: flex; justify-content: space-between; gap: 1rem; padding: .85rem 1rem; color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .62rem; letter-spacing: .06em; text-transform: uppercase; border-bottom: 1px solid var(--zn-trace-line); }
.about-orientation-field figcaption strong { color: var(--zn-ice-white); }
.orientation-stage { position: relative; display: grid; place-items: center; aspect-ratio: 1.16; min-height: 23rem; overflow: hidden; background-image: linear-gradient(var(--zn-trace-line) 1px, transparent 1px), linear-gradient(90deg, var(--zn-trace-line) 1px, transparent 1px); background-size: 4rem 4rem; }
.orientation-stage::before, .orientation-stage::after { content: ""; position: absolute; left: 50%; top: 50%; background: var(--zn-forensic-steel); opacity: .38; transform: translate(-50%, -50%); }
.orientation-stage::before { width: 72%; height: 1px; }
.orientation-stage::after { width: 1px; height: 72%; }
.orientation-stage img { position: relative; z-index: 4; width: 7.5rem; height: 7.5rem; object-fit: contain; }
.orientation-stage > small { position: absolute; z-index: 5; left: 50%; top: calc(50% + 5.2rem); color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .58rem; letter-spacing: .07em; transform: translateX(-50%); }
.orientation-ring { position: absolute; z-index: 2; left: 50%; top: 50%; aspect-ratio: 1; border: 1px solid var(--zn-trace-line); border-radius: 50%; transform: translate(-50%, -50%); }
.ring-one { width: 55%; }
.ring-two { width: 76%; border-style: dashed; opacity: .75; }
.orientation-route { position: absolute; z-index: 3; left: 50%; top: 50%; width: 53%; height: 1px; background: var(--zn-signal-blue); transform-origin: left; }
.route-a { transform: rotate(-34deg); }
.route-b { transform: rotate(146deg); opacity: .55; }
.orientation-route::after { content: ""; position: absolute; right: -.28rem; top: -.25rem; width: .48rem; height: .48rem; background: var(--zn-signal-blue); transform: rotate(45deg); }
.orientation-axis { position: absolute; z-index: 5; color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .55rem; letter-spacing: .07em; }
.axis-record { left: 1rem; top: 50%; }
.axis-context { left: 50%; top: 1rem; transform: translateX(-50%); }
.axis-challenge { right: 1rem; top: 50%; }
.axis-finding { left: 50%; bottom: 1rem; transform: translateX(-50%); }
.orientation-place { position: absolute; z-index: 5; padding: .25rem .4rem; color: var(--zn-ice-white); background: var(--zn-deep-night); font-family: var(--zn-mono); font-size: .52rem; font-weight: 700; letter-spacing: .06em; border: 1px solid var(--zn-trace-line); }
.place-jamaica { left: 1.15rem; bottom: 3.4rem; }
.place-canada { right: 1.15rem; top: 3.4rem; }
.about-orientation-field > p { margin: 0; padding: .9rem 1rem; color: var(--zn-cold-mist); font-size: .78rem; line-height: 1.55; border-top: 1px solid var(--zn-trace-line); }

.about-origin { padding-block: clamp(5rem, 9vw, 9rem); }
.about-origin-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(31rem, 1.1fr); gap: clamp(4rem, 9vw, 10rem); align-items: start; }
.about-origin-copy .side-label { margin: 0 0 2rem; color: var(--zn-analyst-blue); }
.about-origin-copy h2 { max-width: 11ch; margin: 0 0 1.7rem; color: var(--zn-indigo); font-size: clamp(3.3rem, 5.25vw, 5.9rem); line-height: .98; }
.about-origin-copy > p:not(.side-label) { max-width: 41rem; color: var(--zn-slate-ink); font-size: 1.02rem; line-height: 1.8; text-wrap: pretty; }
.about-origin-copy em { color: var(--zn-indigo); font-family: var(--zn-heading); font-size: 1.15em; }
.about-origin-copy > p > strong { color: var(--zn-indigo); font-weight: 700; }
.about-origin-copy .origin-conclusion { margin-top: 2rem; padding: 1.2rem 0 1.2rem 1.25rem; color: var(--zn-indigo); font-family: var(--zn-heading); font-size: 1.3rem !important; line-height: 1.55 !important; border-left: 2px solid var(--zn-analyst-blue); }
.origin-evidence-bridge { margin-top: 2rem; padding: 1.25rem 1.35rem; background: #E8EEF4; border-top: 2px solid var(--zn-analyst-blue); }
.origin-evidence-bridge > span { color: var(--zn-analyst-blue); font-family: var(--zn-mono); font-size: .65rem; font-weight: 700; letter-spacing: .07em; }
.origin-evidence-bridge > p { margin: .75rem 0 0; color: var(--zn-slate-ink); font-size: .88rem; line-height: 1.7; }
.about-origin-copy .origin-source-note { margin-top: 2rem; padding: 1rem 0 0 1rem; color: var(--zn-steel-blue); font-family: var(--zn-mono); font-size: .65rem !important; line-height: 1.65 !important; border-left: 2px solid var(--zn-analyst-blue); }
.origin-source-note a { color: var(--zn-indigo); text-decoration-color: var(--zn-analyst-blue); text-underline-offset: .2rem; }
.name-structure { position: sticky; top: 7.25rem; align-self: start; border: 1px solid var(--zn-chain-grey); border-top: 2px solid var(--zn-analyst-blue); }
.name-structure::before { content: "ARTIFACT  /  ORIENTATION  /  APPLICATION"; display: block; padding: .8rem 1rem; color: var(--zn-steel-blue); font-family: var(--zn-mono); font-size: .6rem; font-weight: 700; letter-spacing: .07em; border-bottom: 1px solid var(--zn-chain-grey); }
.name-structure::after { content: ""; position: absolute; z-index: 3; left: 3.45rem; top: 4.8rem; bottom: 5.8rem; width: 1px; background: var(--zn-chain-grey); pointer-events: none; }
.name-structure > article { position: relative; z-index: 4; display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: 1.5rem; min-height: 12.5rem; padding: 1.7rem 1.6rem; background: var(--zn-frost-white); border-bottom: 1px solid var(--zn-chain-grey); }
.name-structure > article:nth-child(2) { background: #E8EEF4; }
.name-structure > article:last-child { border-bottom: 0; }
.name-structure article > span, .name-mark div > span { color: var(--zn-analyst-blue); font-family: var(--zn-mono); font-size: .68rem; font-weight: 700; letter-spacing: .08em; }
.name-structure article > span { position: relative; align-self: start; width: fit-content; padding: .3rem .45rem; background: inherit; border: 1px solid var(--zn-chain-grey); }
.name-structure article > span::before { content: ""; position: absolute; left: -1.35rem; top: 50%; width: .48rem; height: .48rem; background: var(--zn-analyst-blue); transform: translateY(-50%) rotate(45deg); }
.name-structure h3 { margin: 0 0 .55rem; color: var(--zn-indigo); font-size: 1.65rem; }
.name-structure p { margin: 0; color: var(--zn-steel-blue); font-size: .9rem; line-height: 1.65; }
.name-mark { grid-template-columns: 7rem minmax(0, 1fr) !important; align-items: center; background: var(--zn-indigo) !important; }
.name-mark > img { width: 4.6rem; height: 4.6rem; margin-inline: auto; object-fit: contain; }
.about-page .name-structure .name-mark h3 { color: var(--zn-ice-white) !important; }
.about-page .name-structure .name-mark p { color: var(--zn-cold-mist) !important; }
.about-page .name-structure .name-mark div > span { color: var(--zn-forensic-steel) !important; }

.about-purpose { padding-block: clamp(5rem, 9vw, 9rem); color: var(--zn-ice-white); background: var(--zn-indigo); }
.about-purpose-head { display: grid; grid-template-columns: minmax(12rem, .4fr) minmax(0, 1.6fr); gap: 4rem; padding-bottom: 3rem; border-bottom: 1px solid var(--zn-trace-line); }
.about-purpose-head .side-label { color: var(--zn-forensic-steel); }
.about-purpose-head h2 { max-width: 14ch; margin: 0 0 1.2rem; color: var(--zn-ice-white); font-size: clamp(3.4rem, 5.4vw, 6rem); line-height: .98; }
.about-purpose-head p { max-width: 53rem; margin: 0; color: var(--zn-cold-mist); font-size: 1.05rem; line-height: 1.75; }
.about-practice-map { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid var(--zn-trace-line); }
.about-practice-map a { display: grid; grid-template-rows: auto auto 1fr auto; gap: 1.2rem; min-height: 25rem; padding: 2.25rem 2rem; color: inherit; text-decoration: none; border-right: 1px solid var(--zn-trace-line); transition: background-color 180ms ease, transform 180ms ease; }
.about-practice-map a:first-child { border-left: 1px solid var(--zn-trace-line); }
.about-practice-map a:hover, .about-practice-map a:focus-visible { background: var(--zn-deep-night); transform: translateY(-.35rem); outline: 0; }
.about-practice-map svg { width: 1.65rem; height: 1.65rem; color: var(--zn-signal-blue); stroke: currentColor; fill: none; stroke-width: 1.5; }
.about-practice-map span { color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .67rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.about-practice-map strong { max-width: 18ch; color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: clamp(1.9rem, 2.7vw, 2.8rem); font-weight: 400; line-height: 1.08; }
.about-practice-map small { width: fit-content; padding-bottom: .35rem; color: var(--zn-ice-white); font-weight: 700; border-bottom: 2px solid var(--zn-signal-blue); }

.about-principles { padding-block: clamp(5rem, 9vw, 9rem); }
.about-principles-grid { display: grid; grid-template-columns: minmax(19rem, .72fr) minmax(0, 1.28fr); gap: clamp(4rem, 8vw, 8rem); align-items: start; }
.about-principles-title .side-label { margin-bottom: 1.8rem; color: var(--zn-analyst-blue); }
.about-principles-title h2 { max-width: 9ch; margin: 0; color: var(--zn-indigo); font-size: clamp(3.5rem, 5vw, 5.6rem); line-height: .98; }
.principle-ledger { border-top: 1px solid var(--zn-chain-grey); }
.principle-ledger article { display: grid; grid-template-columns: 2.25rem 2.75rem minmax(0, 1fr); gap: 1.15rem; align-items: start; padding: 1.65rem 0; border-bottom: 1px solid var(--zn-chain-grey); }
.principle-ledger article > span { color: var(--zn-steel-blue); font-family: var(--zn-mono); font-size: .62rem; }
.principle-ledger svg { width: 1.25rem; height: 1.25rem; padding: .45rem; box-sizing: content-box; color: var(--zn-analyst-blue); stroke: currentColor; fill: none; stroke-width: 1.5; border: 1px solid var(--zn-chain-grey); }
.principle-ledger h3 { margin: 0 0 .45rem; color: var(--zn-indigo); font-size: 1.55rem; }
.principle-ledger p { margin: 0; color: var(--zn-steel-blue); font-size: .92rem; line-height: 1.65; }

.about-founder { padding-block: clamp(5rem, 9vw, 9rem); color: var(--zn-ice-white); background: var(--zn-midnight-evidence); }
.about-founder-grid { display: grid; grid-template-columns: minmax(21rem, .75fr) minmax(0, 1.25fr); gap: clamp(4rem, 9vw, 9rem); align-items: stretch; }
.founder-record { position: relative; min-height: 32rem; padding: 2rem; overflow: hidden; background: var(--zn-indigo); border: 1px solid var(--zn-trace-line); border-top: 2px solid var(--zn-signal-blue); }
.founder-record::after { content: ""; position: absolute; right: -5rem; bottom: -7rem; width: 19rem; height: 19rem; opacity: .07; background: url('/assets/zemi-north-mark-reverse.svg') center/contain no-repeat; }
.founder-record-head { display: flex; justify-content: space-between; gap: 1rem; color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .62rem; letter-spacing: .06em; }
.founder-record-head strong { color: var(--zn-ice-white); }
.founder-record h2 { position: relative; z-index: 1; margin: 5rem 0 1rem; color: var(--zn-ice-white); font-size: clamp(3.8rem, 5.5vw, 6.2rem); line-height: .88; }
.founder-record > p { position: relative; z-index: 1; color: var(--zn-cold-mist); }
.founder-record > a { position: absolute; z-index: 2; left: 2rem; bottom: 2rem; color: var(--zn-ice-white); font-weight: 700; text-decoration: none; border-bottom: 2px solid var(--zn-signal-blue); }
.founder-accountability .side-label { margin-bottom: 1.8rem; color: var(--zn-forensic-steel); }
.founder-accountability > h2 { max-width: 12ch; margin: 0 0 1.4rem; color: var(--zn-ice-white); font-size: clamp(3.2rem, 4.7vw, 5.25rem); line-height: .98; }
.founder-accountability > p:not(.side-label) { max-width: 48rem; color: var(--zn-cold-mist); font-size: 1rem; line-height: 1.75; }
.founder-facts { margin-top: 2.4rem; border-top: 1px solid var(--zn-trace-line); }
.founder-facts > div { display: grid; grid-template-columns: minmax(9rem, .45fr) minmax(0, 1fr); gap: 1.5rem; padding: 1.15rem 0; border-bottom: 1px solid var(--zn-trace-line); }
.founder-facts strong { color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: 1.35rem; font-weight: 400; }
.founder-facts span { color: var(--zn-forensic-steel); font-size: .82rem; line-height: 1.5; }
.human-accountability-note { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: 1rem; margin-top: 2rem; padding: 1.3rem; background: var(--zn-deep-night); border-left: 2px solid var(--zn-signal-blue); }
.human-accountability-note svg { width: 1.4rem; height: 1.4rem; color: var(--zn-signal-blue); stroke: currentColor; fill: none; stroke-width: 1.5; }
.human-accountability-note p { margin: 0; color: var(--zn-cold-mist); font-size: .9rem; line-height: 1.65; }
.human-accountability-note strong { color: var(--zn-ice-white); font-family: var(--zn-heading); font-size: 1.15rem; font-weight: 400; }

:root[data-theme="dark"] .about-hero { background: var(--zn-midnight-evidence); }
:root[data-theme="dark"] .about-origin, :root[data-theme="dark"] .about-principles { background: var(--zn-deep-night); }
:root[data-theme="dark"] .about-origin-copy h2, :root[data-theme="dark"] .name-structure h3, :root[data-theme="dark"] .about-principles-title h2, :root[data-theme="dark"] .principle-ledger h3 { color: var(--zn-ice-white); }
:root[data-theme="dark"] .about-origin-copy > p:not(.side-label), :root[data-theme="dark"] .name-structure p, :root[data-theme="dark"] .principle-ledger p { color: var(--zn-cold-mist); }
:root[data-theme="dark"] .about-origin-copy > p > strong, :root[data-theme="dark"] .about-origin-copy .origin-conclusion { color: var(--zn-ice-white); }
:root[data-theme="dark"] .origin-source-note a { color: var(--zn-ice-white); }
:root[data-theme="dark"] .origin-evidence-bridge { background: var(--zn-indigo); }
:root[data-theme="dark"] .origin-evidence-bridge > p { color: var(--zn-cold-mist); }
:root[data-theme="dark"] .name-structure, :root[data-theme="dark"] .name-structure > article, :root[data-theme="dark"] .principle-ledger, :root[data-theme="dark"] .principle-ledger article { border-color: var(--zn-trace-line); }
:root[data-theme="dark"] .name-structure { border-color: var(--zn-trace-line); }
:root[data-theme="dark"] .name-structure::before { color: var(--zn-forensic-steel); border-color: var(--zn-trace-line); }
:root[data-theme="dark"] .name-structure::after { background: var(--zn-trace-line); }
:root[data-theme="dark"] .name-structure > article { background: var(--zn-midnight-evidence); border-color: var(--zn-trace-line); }
:root[data-theme="dark"] .name-structure > article:nth-child(2) { background: var(--zn-deep-night); }
:root[data-theme="dark"] .name-structure article > span { border-color: var(--zn-trace-line); }
:root[data-theme="dark"] .name-mark { background: var(--zn-indigo) !important; }
:root[data-theme="dark"] .name-mark > img, .name-mark > img { filter: brightness(0) invert(1); }
:root[data-theme="dark"] .about-purpose { background: var(--zn-indigo); }

@media (max-width: 1050px) {
  .about-hero-grid, .about-origin-grid, .about-founder-grid { grid-template-columns: 1fr; }
  .about-orientation-field { max-width: 43rem; }
  .about-origin-copy h2, .founder-accountability > h2 { max-width: 14ch; }
  .about-principles-grid { grid-template-columns: 1fr; }
  .about-principles-title h2 { max-width: 13ch; }
  .name-structure { position: static; top: auto; }
}

@media (max-width: 780px) {
  .about-purpose-head { grid-template-columns: 1fr; gap: 1.5rem; }
  .about-practice-map { grid-template-columns: 1fr; }
  .about-practice-map a { min-height: 0; border-left: 1px solid var(--zn-trace-line); border-bottom: 1px solid var(--zn-trace-line); }
  .about-practice-map strong { max-width: 24ch; }
}

@media (max-width: 620px) {
  .about-hero { padding-block: 4rem; }
  .about-hero-copy h1 { font-size: clamp(3.4rem, 15vw, 4.55rem); line-height: .98; }
  .about-practice-record { grid-template-columns: 1fr; }
  .about-practice-record div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--zn-trace-line); }
  .orientation-stage { min-height: 19rem; }
  .orientation-stage img { width: 6rem; height: 6rem; }
  .about-origin-grid, .about-founder-grid, .about-principles-grid { gap: 3.5rem; }
  .about-origin-copy h2, .about-purpose-head h2, .about-principles-title h2, .founder-accountability > h2 { font-size: clamp(3rem, 13vw, 4rem); line-height: 1; }
  .name-structure > article { grid-template-columns: 1fr; gap: .8rem; }
  .name-structure > article { min-height: 0; }
  .name-structure::after { display: none; }
  .name-structure article > span::before { display: none; }
  .name-mark { grid-template-columns: 4.5rem minmax(0, 1fr) !important; }
  .name-mark > img { width: 3.5rem; height: 3.5rem; }
  .about-practice-map a { padding: 1.7rem 1.35rem; }
  .principle-ledger article { grid-template-columns: 2rem minmax(0, 1fr); }
  .principle-ledger article > div { grid-column: 2; }
  .founder-record { min-height: 27rem; padding: 1.5rem; }
  .founder-record h2 { margin-top: 4rem; }
  .founder-record > a { left: 1.5rem; bottom: 1.5rem; }
  .founder-facts > div { grid-template-columns: 1fr; gap: .4rem; }
}

/* V39 — founder record and credential ledger refinement. */
@media (min-width: 1051px) {
  .about-founder-grid { align-items: start; }
  .founder-record { position: sticky; top: 7.25rem; align-self: start; }
}
.founder-record { display: grid; grid-template-rows: auto auto auto 1fr auto; min-height: 38rem; }
.founder-record h2 { margin: 3.5rem 0 .85rem; font-size: clamp(3.6rem, 4.8vw, 5.35rem); line-height: .92; }
.founder-record > a { position: relative; left: auto; bottom: auto; align-self: end; width: fit-content; margin-top: 2rem; }
.founder-record-path { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-self: end; margin-top: 2.5rem; border-top: 1px solid var(--zn-trace-line); border-left: 1px solid var(--zn-trace-line); }
.founder-record-path span { position: relative; padding: .85rem .7rem .85rem 1.2rem; color: var(--zn-forensic-steel); font-family: var(--zn-mono); font-size: .6rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; border-right: 1px solid var(--zn-trace-line); border-bottom: 1px solid var(--zn-trace-line); }
.founder-record-path span::before { content: ""; position: absolute; left: .45rem; top: 50%; width: .35rem; height: .35rem; background: var(--zn-signal-blue); transform: translateY(-50%) rotate(45deg); }
.founder-accountability > h2 { max-width: 13ch; font-size: clamp(3rem, 4vw, 4.6rem); line-height: 1; }
.founder-facts { display: grid; grid-template-columns: .7fr 1.45fr 1fr; margin-top: 2.4rem; border-top: 1px solid var(--zn-trace-line); border-bottom: 1px solid var(--zn-trace-line); }
.founder-facts > div { display: grid; grid-template-columns: 1fr; align-content: start; gap: .65rem; min-width: 0; padding: 1.25rem 1.1rem; border-bottom: 0; border-right: 1px solid var(--zn-trace-line); }
.founder-facts > div:first-child { padding-left: 0; }
.founder-facts > div:last-child { padding-right: 0; border-right: 0; }
.founder-facts strong { color: var(--zn-ice-white); font-family: var(--zn-mono); font-size: clamp(.82rem, 1.05vw, 1.05rem); font-weight: 700; line-height: 1.5; overflow-wrap: anywhere; }
.founder-facts > div:first-child strong { font-family: var(--zn-heading); font-size: 1.65rem; font-weight: 400; }
.founder-facts span { font-size: .75rem; line-height: 1.55; }

@media (max-width: 1050px) {
  .founder-record { position: relative; top: auto; min-height: 31rem; }
}

@media (max-width: 700px) {
  .founder-record { min-height: 29rem; }
  .founder-record-path { grid-template-columns: 1fr; }
  .founder-facts { grid-template-columns: 1fr; }
  .founder-facts > div, .founder-facts > div:first-child, .founder-facts > div:last-child { padding: 1rem 0; border-right: 0; border-bottom: 1px solid var(--zn-trace-line); }
  .founder-facts > div:last-child { border-bottom: 0; }
}

/* V42 — calibrated display type across page and article heroes. */
@media (min-width: 981px) {
  .training-hero-grid { grid-template-columns: minmax(0, 1.18fr) minmax(26rem, .82fr); gap: clamp(3rem, 5vw, 6rem); }
  .training-hero-copy h1 { max-width: 56rem; font-size: clamp(3.45rem, 4.8vw, 5.7rem); line-height: 1; }

  .method-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(29rem, 1fr); gap: clamp(3rem, 5vw, 5.5rem); }
  .method-hero-copy h1 { max-width: 58rem; font-size: clamp(3.45rem, 5vw, 5.8rem); line-height: 1; }

  .about-hero-grid { grid-template-columns: minmax(0, 1.2fr) minmax(25rem, .8fr); gap: clamp(3rem, 6vw, 7rem); }
  .about-hero-copy h1 { max-width: 12ch; font-size: clamp(3.7rem, 5.5vw, 6.15rem); line-height: .98; }

  .contact-hero-grid { grid-template-columns: minmax(0, 1.3fr) minmax(23rem, .7fr); gap: clamp(3rem, 6vw, 7rem); }
  .contact-hero-copy h1 { max-width: 14ch; font-size: clamp(3.45rem, 5.2vw, 5.8rem); line-height: .99; }

  .insights-hero-grid { grid-template-columns: minmax(0, 1.45fr) minmax(19rem, .55fr); gap: clamp(3rem, 6vw, 7rem); }
  .insights-hero h1 { max-width: 14ch; font-size: clamp(3.8rem, 6vw, 6.5rem); line-height: .95; }

  .insight-article-heading { grid-template-columns: minmax(0, 1.45fr) minmax(18rem, .55fr); gap: clamp(3rem, 6vw, 7rem); }
  .insight-article-heading h1 { max-width: 16ch; font-size: clamp(3.35rem, 5.1vw, 5.8rem); line-height: .97; }

  .insights-foundation-copy h2 { max-width: 16ch; font-size: clamp(2.75rem, 3.8vw, 4.25rem); line-height: 1.03; }
  .contact-guidance h2 { max-width: 13ch; font-size: clamp(2.8rem, 4vw, 4.6rem); line-height: 1.02; }
  .founder-accountability > h2 { max-width: 16ch; font-size: clamp(2.8rem, 3.6vw, 4.1rem); line-height: 1.03; }
  .evidence-field-intro h2, .bio-heading h2 { font-size: clamp(2.8rem, 3.8vw, 4.4rem); line-height: 1.04; }
}

@media (max-width: 700px) {
  .training-hero-copy h1,
  .method-hero-copy h1,
  .contact-hero-copy h1 { font-size: clamp(2.85rem, 12vw, 3.55rem); line-height: 1.06; }
  .about-hero-copy h1,
  .insights-hero h1 { font-size: clamp(3rem, 12.8vw, 3.75rem); line-height: 1.03; }
  .insight-article-heading h1 { font-size: clamp(2.85rem, 11.8vw, 3.55rem); line-height: 1.04; }
  .contact-guidance h2,
  .founder-accountability > h2,
  .insights-foundation-copy h2 { font-size: clamp(2.55rem, 11vw, 3.35rem); line-height: 1.06; }
}

/* V41 — Insights publication hub and long-form reading system. */
.insights-hero {
  position: relative;
  overflow: hidden;
  color: var(--zn-ice-white, #F2F5F8);
  background: var(--zn-midnight-evidence, #081321);
  border-bottom: 1px solid var(--zn-trace-line, #2A3B54);
}
.insights-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .24;
  background-image: linear-gradient(rgba(132,163,192,.16) 1px, transparent 1px), linear-gradient(90deg, rgba(132,163,192,.16) 1px, transparent 1px);
  background-size: 5rem 5rem;
  mask-image: linear-gradient(90deg, #000, transparent 72%);
}
.insights-hero::after {
  content: "";
  position: absolute;
  right: -7rem;
  bottom: -12rem;
  width: 36rem;
  height: 36rem;
  border: 1px solid rgba(92,132,182,.35);
  transform: rotate(45deg);
}
.insights-hero-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(19rem, .65fr);
  gap: clamp(4rem, 9vw, 9rem);
  align-items: end;
  min-height: 36rem;
  padding-block: clamp(6rem, 10vw, 9rem) clamp(4rem, 7vw, 6rem);
}
.insights-hero .eyebrow, .insight-article-hero .eyebrow { color: var(--zn-forensic-steel, #84A3C0); }
.insights-hero h1 { max-width: 12ch; margin: 1.35rem 0 0; color: inherit; font-family: var(--zn-heading); font-size: clamp(4rem, 7.2vw, 7.5rem); font-weight: 400; line-height: .92; }
.insights-hero-copy { padding-bottom: .5rem; }
.insights-hero-copy > p { margin: 0; color: var(--zn-cold-mist, #C6D4E1); font-size: clamp(1.05rem, 1.35vw, 1.25rem); line-height: 1.65; }
.insights-scope { display: grid; margin-top: 2.25rem; border-top: 1px solid var(--zn-trace-line, #2A3B54); }
.insights-scope span { padding: .7rem 0; color: var(--zn-forensic-steel, #84A3C0); font-family: var(--zn-mono); font-size: .7rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; border-bottom: 1px solid var(--zn-trace-line, #2A3B54); }

.insights-publications { padding-block: clamp(5rem, 8vw, 8rem); background: var(--zn-page); }
.insight-section-heading { display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: end; padding-bottom: 1.5rem; border-bottom: 1px solid var(--zn-rule); }
.insight-section-heading-intro { grid-template-columns: minmax(0, .8fr) minmax(20rem, .55fr); margin-bottom: 2.5rem; }
.insight-section-heading h2 { margin: .8rem 0 0; font-family: var(--zn-heading); font-size: clamp(2.8rem, 4vw, 4.5rem); font-weight: 400; line-height: 1; }
.insight-section-heading > p { margin: 0; color: var(--zn-muted); }
.insight-section-heading > span { padding-bottom: .35rem; color: var(--zn-muted); font-family: var(--zn-mono); font-size: .7rem; letter-spacing: .07em; text-transform: uppercase; }
.insight-featured { display: grid; grid-template-columns: minmax(15rem, .55fr) minmax(0, 1fr); min-height: 31rem; background: var(--zn-frost-white, #FFFFFF); border: 1px solid var(--zn-chain-grey, #B8C5D2); }
.insight-featured-mark { position: relative; display: grid; place-items: center; overflow: hidden; color: var(--zn-forensic-steel, #84A3C0); background: var(--zn-indigo, #1B2A4A); border-right: 1px solid var(--zn-chain-grey, #B8C5D2); }
.insight-featured-mark::before, .insight-featured-mark::after { content: ""; position: absolute; width: 14rem; height: 14rem; border: 1px solid rgba(132,163,192,.28); transform: rotate(45deg); }
.insight-featured-mark::after { width: 23rem; height: 23rem; }
.insight-featured-mark svg { position: relative; z-index: 2; width: 5.5rem; fill: none; stroke: currentColor; stroke-width: 1.1; }
.insight-featured > div:last-child { display: flex; flex-direction: column; justify-content: center; padding: clamp(2.25rem, 5vw, 5rem); }
.insight-featured h2 { max-width: 18ch; margin: 1rem 0 1.25rem; font-family: var(--zn-heading); font-size: clamp(2.7rem, 4.5vw, 5rem); font-weight: 400; line-height: .98; }
.insight-featured h2 a { color: inherit; text-decoration: none; }
.insight-featured h2 a:hover, .insight-featured h2 a:focus-visible { color: var(--zn-analyst-blue, #3F6FA2); }
.insight-featured > div:last-child > p { max-width: 48rem; margin: 0; color: var(--zn-muted); font-size: 1.05rem; }
.insight-featured dl { display: flex; gap: 0; margin: 2rem 0; border-block: 1px solid var(--zn-rule); }
.insight-featured dl div { min-width: 11rem; padding: .85rem 1.25rem .85rem 0; }
.insight-featured dl div + div { padding-left: 1.25rem; border-left: 1px solid var(--zn-rule); }
.insight-featured dt, .insight-meta dt { color: var(--zn-muted); font-family: var(--zn-mono); font-size: .64rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.insight-featured dd, .insight-meta dd { margin: .25rem 0 0; color: var(--zn-heading-color); font-size: .86rem; font-weight: 700; }
.insight-featured .text-link { align-self: flex-start; }

.insight-index { margin-top: clamp(4rem, 7vw, 7rem); }
.insight-index-row { display: grid; grid-template-columns: 4rem minmax(0, 1fr) auto; gap: 2rem; align-items: center; padding: 2rem 0; border-bottom: 1px solid var(--zn-rule); }
.insight-index-number, .insight-index-meta { color: var(--zn-muted); font-family: var(--zn-mono); font-size: .68rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.insight-index-row h3 { margin: .55rem 0 .65rem; font-size: clamp(1.8rem, 2.5vw, 2.7rem); line-height: 1.1; }
.insight-index-row h3 a { color: inherit; text-decoration: none; }
.insight-index-row p { max-width: 52rem; margin: 0; color: var(--zn-muted); }
.insight-index-action { color: var(--zn-heading-color); font-size: .82rem; font-weight: 700; text-decoration: none; border-bottom: 1px solid var(--zn-analyst-blue, #3F6FA2); }

.insights-foundation { color: var(--zn-ice-white, #F2F5F8); background: var(--zn-deep-night, #0F1D33); }
.insights-foundation-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); }
.insights-method-visual { position: relative; display: grid; grid-template-columns: repeat(5, 1fr); align-items: center; min-height: 32rem; padding: 3rem; border-inline: 1px solid var(--zn-trace-line, #2A3B54); }
.insights-method-visual::before { content: ""; position: absolute; left: 10%; right: 10%; top: 50%; height: 1px; background: var(--zn-forensic-steel, #84A3C0); }
.insights-method-visual span { position: relative; z-index: 2; align-self: center; padding-top: 3rem; color: var(--zn-forensic-steel, #84A3C0); font-family: var(--zn-mono); font-size: .62rem; font-weight: 700; letter-spacing: .06em; text-align: center; text-transform: uppercase; }
.insights-method-visual span::before { content: ""; position: absolute; left: 50%; top: -.32rem; width: .7rem; height: .7rem; background: var(--zn-deep-night, #0F1D33); border: 1px solid var(--zn-signal-blue, #5C84B6); transform: translateX(-50%) rotate(45deg); }
.insights-method-visual img { position: absolute; left: 50%; top: 50%; z-index: 3; width: 5rem; height: 5rem; padding: 1rem; background: var(--zn-indigo, #1B2A4A); border: 1px solid var(--zn-signal-blue, #5C84B6); transform: translate(-50%, -50%); }
.insights-foundation-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(3rem, 6vw, 6rem); border-right: 1px solid var(--zn-trace-line, #2A3B54); }
.insights-foundation-copy h2 { max-width: 13ch; margin: 1rem 0 1.4rem; color: inherit; font-family: var(--zn-heading); font-size: clamp(2.8rem, 4.3vw, 4.8rem); font-weight: 400; line-height: 1; }
.insights-foundation-copy > p:not(.eyebrow) { max-width: 43rem; margin: 0; color: var(--zn-cold-mist, #C6D4E1); }
.insights-foundation-links { display: flex; flex-wrap: wrap; gap: 1.75rem; margin-top: 2rem; }
.insights-foundation .text-link { color: var(--zn-ice-white, #F2F5F8); border-color: var(--zn-signal-blue, #5C84B6); }

.insights-programme { padding-block: clamp(5rem, 8vw, 8rem); background: var(--zn-case-file-grey, #E8EEF4); }
.insights-programme-grid { display: grid; grid-template-columns: minmax(17rem, .65fr) minmax(0, 1.35fr); gap: clamp(3rem, 8vw, 8rem); }
.insights-programme h2 { max-width: 10ch; margin: 1rem 0 0; font-family: var(--zn-heading); font-size: clamp(3rem, 4.8vw, 5.25rem); font-weight: 400; line-height: .96; }
.insights-programme ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--zn-chain-grey, #B8C5D2); }
.insights-programme li { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 1.5rem; padding: 1.7rem 0; border-bottom: 1px solid var(--zn-chain-grey, #B8C5D2); }
.insights-programme li span { color: var(--zn-analyst-blue, #3F6FA2); font-family: var(--zn-mono); font-size: .7rem; font-weight: 700; }
.insights-programme li p { max-width: 43rem; margin: 0; color: var(--zn-heading-color); font-family: var(--zn-heading); font-size: clamp(1.4rem, 2vw, 2rem); line-height: 1.25; }

.insight-article-hero { color: var(--zn-ice-white, #F2F5F8); background: var(--zn-midnight-evidence, #081321); border-bottom: 1px solid var(--zn-trace-line, #2A3B54); }
.insight-article-hero .container { padding-block: clamp(4.5rem, 8vw, 7rem) 0; }
.insight-breadcrumb { display: flex; gap: .7rem; align-items: center; margin-bottom: 3.5rem; color: var(--zn-forensic-steel, #84A3C0); font-family: var(--zn-mono); font-size: .68rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.insight-breadcrumb a { color: inherit; text-decoration: none; border-bottom: 1px solid currentColor; }
.insight-article-heading { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(18rem, .7fr); gap: clamp(3rem, 8vw, 8rem); align-items: end; }
.insight-article-heading h1 { max-width: 14ch; margin: 1.1rem 0 0; color: inherit; font-family: var(--zn-heading); font-size: clamp(3.5rem, 6.4vw, 6.7rem); font-weight: 400; line-height: .94; }
.insight-article-heading .lead { margin: 0 0 .5rem; color: var(--zn-cold-mist, #C6D4E1); font-size: 1.08rem; line-height: 1.7; }
.insight-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); margin: clamp(3.5rem, 6vw, 5.5rem) 0 0; border-top: 1px solid var(--zn-trace-line, #2A3B54); }
.insight-meta div { padding: 1rem 1.25rem 1.15rem 0; }
.insight-meta div + div { padding-left: 1.25rem; border-left: 1px solid var(--zn-trace-line, #2A3B54); }
.insight-meta dt { color: var(--zn-forensic-steel, #84A3C0); }
.insight-meta dd { color: var(--zn-ice-white, #F2F5F8); }

.insight-reading { padding-block: clamp(4rem, 7vw, 7rem); background: var(--zn-page); }
.insight-reading-grid { display: grid; grid-template-columns: minmax(13rem, .4fr) minmax(0, 1fr); gap: clamp(3rem, 8vw, 8rem); align-items: start; }
.insight-reading-rail { position: sticky; top: 7.25rem; }
.insight-toc { padding-top: 1.15rem; border-top: 2px solid var(--zn-analyst-blue, #3F6FA2); }
.insight-toc > p, .insight-rail-method > span { margin: 0; color: var(--zn-muted); font-family: var(--zn-mono); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.insight-toc ol { margin: 1.2rem 0 0; padding: 0; list-style: none; }
.insight-toc li { border-bottom: 1px solid var(--zn-rule); }
.insight-toc a { display: block; padding: .65rem 0; color: var(--zn-muted); font-size: .82rem; line-height: 1.45; text-decoration: none; }
.insight-toc a:hover, .insight-toc a:focus-visible { color: var(--zn-heading-color); }
.insight-rail-method { margin-top: 2.5rem; padding: 1.2rem; background: var(--zn-case-file-grey, #E8EEF4); border-left: 2px solid var(--zn-analyst-blue, #3F6FA2); }
.insight-rail-method p { margin: .7rem 0 1rem; color: var(--zn-muted); font-size: .84rem; line-height: 1.55; }
.insight-rail-method a { color: var(--zn-heading-color); font-size: .76rem; font-weight: 700; }
.insight-article { max-width: 49rem; min-width: 0; }
.insight-article .article-byline { margin: 0 0 2rem; color: var(--zn-muted); font-family: var(--zn-mono); font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.insight-feature-image { margin: 0 0 clamp(2.5rem, 5vw, 4.25rem); border: 1px solid var(--zn-rule); background: var(--zn-midnight-evidence, #081321); }
.insight-feature-image img { display: block; width: 100%; height: auto; object-fit: cover; }
.insight-feature-image figcaption { margin: 0; padding: .75rem 1rem; color: var(--zn-muted); font-family: var(--zn-mono); font-size: .64rem; letter-spacing: .055em; line-height: 1.5; text-transform: uppercase; border-top: 1px solid var(--zn-rule); }
.article-share {
  display: grid;
  grid-template-columns: minmax(12rem, .8fr) minmax(0, 1.2fr);
  gap: 1.5rem;
  align-items: center;
  margin: 0 0 3rem;
  padding-block: 1rem;
  border-block: 1px solid var(--zn-rule);
}
.article-share-heading { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: .75rem; align-items: center; }
.article-share-heading svg { width: 1.45rem; fill: none; stroke: var(--zn-analyst-blue, #3F6FA2); stroke-linecap: square; stroke-width: 1.4; }
.article-share-heading p { margin: 0; color: var(--zn-heading-color); font-size: .86rem; font-weight: 700; }
.article-share-heading span { display: block; margin-top: .18rem; color: var(--zn-muted); font-family: var(--zn-mono); font-size: .58rem; letter-spacing: .045em; text-transform: uppercase; }
.article-share-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; }
.article-share-actions a,
.article-share-actions button {
  display: inline-flex;
  gap: .45rem;
  align-items: center;
  min-height: 2.65rem;
  padding: .65rem .8rem;
  color: var(--zn-heading-color);
  font: inherit;
  font-size: .76rem;
  font-weight: 700;
  text-decoration: none;
  background: transparent;
  border: 0;
  border-left: 1px solid var(--zn-rule);
  border-radius: 0;
  cursor: pointer;
}
.article-share-actions a:hover,
.article-share-actions a:focus-visible,
.article-share-actions button:hover,
.article-share-actions button:focus-visible { color: var(--zn-analyst-blue, #3F6FA2); background: color-mix(in srgb, var(--zn-analyst-blue, #3F6FA2) 8%, transparent); outline: none; }
.article-share-actions svg { width: 1rem; fill: none; stroke: currentColor; stroke-linecap: square; stroke-linejoin: miter; stroke-width: 1.5; }
.article-share-actions [hidden] { display: none; }
.article-share-status { grid-column: 1 / -1; min-height: 1em; margin: -.7rem 0 0; color: var(--zn-muted); font-family: var(--zn-mono); font-size: .62rem; line-height: 1.4; text-align: right; }
.insight-article > p, .insight-article > ul, .insight-article > ol { font-size: 1.08rem; line-height: 1.82; }
.insight-article > p { margin: 0 0 1.45rem; }
.insight-article > ul, .insight-article > ol { margin: 1rem 0 2rem; padding-left: 1.35rem; }
.insight-article > li, .insight-article li { margin-bottom: .7rem; }
.insight-article > h2 { scroll-margin-top: 7rem; margin: 4rem 0 1.2rem; padding-top: 1.1rem; color: var(--zn-heading-color); font-family: var(--zn-heading); font-size: clamp(2.25rem, 3.4vw, 3.6rem); font-weight: 400; line-height: 1.08; border-top: 1px solid var(--zn-rule); }
.insight-article > h3 { margin: 2.5rem 0 1rem; color: var(--zn-heading-color); font-family: var(--zn-heading); font-size: 1.65rem; font-weight: 400; }
.insight-table-scroll { max-width: 100%; margin: 1.75rem 0 2rem; overflow-x: auto; border: 1px solid var(--zn-rule); }
.insight-table-scroll:focus-visible { outline: 2px solid var(--zn-analyst-blue, #3F6FA2); outline-offset: 3px; }
.insight-table-scroll table { width: 100%; min-width: 47rem; margin: 0; border-collapse: collapse; table-layout: fixed; font-size: .96rem; line-height: 1.55; }
.insight-table-scroll th, .insight-table-scroll td { padding: 1rem 1.1rem; text-align: left; vertical-align: top; overflow-wrap: break-word; }
.insight-table-scroll th { color: var(--zn-heading-color); background: var(--zn-case-file-grey, #E8EEF4); font-weight: 700; border-bottom: 2px solid var(--zn-analyst-blue, #3F6FA2); }
.insight-table-scroll th + th, .insight-table-scroll td + td { border-left: 1px solid var(--zn-rule); }
.insight-table-scroll tbody tr + tr td { border-top: 1px solid var(--zn-rule); }
.insight-table-scroll tbody tr:nth-child(even) { background: color-mix(in srgb, var(--zn-case-file-grey, #E8EEF4) 32%, transparent); }
.insight-table-scroll th:first-child:nth-last-child(2) { width: 10rem; }
.insight-table-scroll th:first-child:nth-last-child(3) { width: 30%; }
:root[data-theme="dark"] .insight-table-scroll th { background: var(--zn-deep-night, #0F1D33); }
:root[data-theme="dark"] .insight-table-scroll tbody tr:nth-child(even) { background: color-mix(in srgb, var(--zn-deep-night, #0F1D33) 60%, transparent); }
.insight-article blockquote { margin: 2.5rem 0; padding: 1.5rem 1.8rem; background: var(--zn-case-file-grey, #E8EEF4); border-left: 2px solid var(--zn-analyst-blue, #3F6FA2); }
.insight-video { margin: 3rem 0 4rem; border-top: 2px solid var(--zn-analyst-blue, #3F6FA2); }
.insight-video-frame { position: relative; overflow: hidden; aspect-ratio: 16 / 9; background: var(--zn-midnight-evidence, #081321); }
.insight-video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.insight-video figcaption { display: grid; grid-template-columns: minmax(8rem, .32fr) minmax(0, 1fr); gap: 1.25rem; padding: 1.1rem 0 0; border-top: 1px solid var(--zn-rule); }
.insight-video figcaption span { color: var(--zn-muted); font-family: var(--zn-mono); font-size: .68rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.insight-video figcaption strong { color: var(--zn-heading-color); font-family: var(--zn-heading); font-size: 1.15rem; font-weight: 400; line-height: 1.35; }
.assurance-cycle { margin: 3rem 0 3.5rem; color: var(--zn-ice-white, #F2F5F8); background: var(--zn-midnight-evidence, #081321); border: 1px solid var(--zn-trace-line, #2A3B54); }
.assurance-cycle-header { display: flex; justify-content: space-between; gap: 2rem; align-items: flex-start; padding: 1.35rem 1.5rem 1.5rem; border-top: 2px solid var(--zn-signal-blue, #5C84B6); border-bottom: 1px solid var(--zn-trace-line, #2A3B54); }
.assurance-cycle-header > div > span,
.assurance-cycle-label,
.assurance-cycle-status { color: var(--zn-forensic-steel, #84A3C0); font-family: var(--zn-mono); font-size: .66rem; font-weight: 700; letter-spacing: .075em; text-transform: uppercase; }
.assurance-cycle-header h3 { margin: .55rem 0 0; color: var(--zn-ice-white, #F2F5F8); font-family: var(--zn-heading); font-size: clamp(1.65rem, 3vw, 2.45rem); font-weight: 400; line-height: 1.1; }
.assurance-cycle-status { flex: 0 0 auto; padding: .42rem .55rem; color: var(--zn-ice-white, #F2F5F8); border: 1px solid var(--zn-signal-blue, #5C84B6); }
.assurance-cycle-stages { margin: 0 !important; padding: 0 !important; list-style: none; counter-reset: assurance-stage; }
.assurance-cycle-stages > li { --cycle-delay: 0s; position: relative; display: grid; grid-template-columns: 3.8rem minmax(0, 1fr); gap: 1.15rem; margin: 0 !important; padding: 1.45rem 1.5rem; background: color-mix(in srgb, var(--zn-deep-night, #0F1D33) 72%, var(--zn-midnight-evidence, #081321)); border-bottom: 1px solid var(--zn-trace-line, #2A3B54); }
.assurance-cycle-stages > li:nth-child(even) { background: var(--zn-midnight-evidence, #081321); }
.assurance-cycle-stages > li:nth-child(2) { --cycle-delay: .35s; }
.assurance-cycle-stages > li:nth-child(3) { --cycle-delay: .7s; }
.assurance-cycle-stages > li:nth-child(4) { --cycle-delay: 1.05s; }
.assurance-cycle-stages > li:nth-child(5) { --cycle-delay: 1.4s; }
.assurance-cycle-stages > li:nth-child(6) { --cycle-delay: 1.75s; }
.assurance-cycle-stages > li::after { content: ""; position: absolute; z-index: 0; top: 2.8rem; bottom: -2.8rem; left: 3.38rem; width: 1px; background: var(--zn-trace-line, #2A3B54); }
.assurance-cycle-stages > li:last-child::after { display: none; }
.assurance-cycle-stages > li::before { content: ""; position: absolute; z-index: 1; top: 2.52rem; left: 3.12rem; width: .55rem; height: .55rem; background: var(--zn-signal-blue, #5C84B6); border: 2px solid var(--zn-midnight-evidence, #081321); transform: rotate(45deg); animation: assuranceCycleSignal 6s ease-in-out infinite var(--cycle-delay); }
.assurance-cycle-number { position: relative; z-index: 2; color: var(--zn-forensic-steel, #84A3C0); font-family: var(--zn-mono); font-size: .7rem; font-weight: 700; letter-spacing: .08em; }
.assurance-cycle-stages h4 { margin: .38rem 0 .55rem; color: var(--zn-ice-white, #F2F5F8); font-family: var(--zn-heading); font-size: clamp(1.35rem, 2.2vw, 1.8rem); font-weight: 400; line-height: 1.15; }
.assurance-cycle-stages > li > div > p { max-width: 42rem; margin: 0; color: var(--zn-cold-mist, #C6D4E1); font-size: .93rem; line-height: 1.62; }
.assurance-cycle-zemi { box-shadow: inset 3px 0 0 var(--zn-signal-blue, #5C84B6); }
.assurance-cycle-method,
.assurance-cycle-findings,
.assurance-cycle-actions { display: flex; flex-wrap: wrap; gap: .45rem; margin: .85rem 0 0 !important; padding: 0 !important; list-style: none; }
.assurance-cycle-method li,
.assurance-cycle-findings li,
.assurance-cycle-actions li { margin: 0 !important; padding: .42rem .55rem; color: var(--zn-cold-mist, #C6D4E1); font-family: var(--zn-mono); font-size: .61rem; font-weight: 700; letter-spacing: .035em; line-height: 1.25; text-transform: uppercase; border: 1px solid var(--zn-trace-line, #2A3B54); }
.assurance-cycle-method li + li::before { content: ""; display: inline-block; height: .75rem; margin-right: .55rem; border-left: 2px solid var(--zn-signal-blue, #5C84B6); transform: skew(-18deg); vertical-align: -.08rem; }
.assurance-cycle-findings li:first-child { color: var(--zn-ice-white, #F2F5F8); border-color: var(--zn-signal-blue, #5C84B6); }
.assurance-cycle-return { display: grid; grid-template-columns: 3.8rem minmax(0, 1fr); gap: 1.15rem; align-items: center; padding: 1.2rem 1.5rem; background: color-mix(in srgb, var(--zn-signal-blue, #5C84B6) 12%, var(--zn-midnight-evidence, #081321)); border-bottom: 1px solid var(--zn-trace-line, #2A3B54); }
.assurance-cycle-return > span { position: relative; height: 1.5rem; border-top: 1px solid var(--zn-signal-blue, #5C84B6); border-left: 1px solid var(--zn-signal-blue, #5C84B6); }
.assurance-cycle-return > span::before { content: ""; position: absolute; top: -.28rem; left: -.28rem; width: .5rem; height: .5rem; border-left: 1px solid var(--zn-signal-blue, #5C84B6); border-bottom: 1px solid var(--zn-signal-blue, #5C84B6); transform: rotate(45deg); }
.assurance-cycle-return p { margin: 0; color: var(--zn-cold-mist, #C6D4E1); font-size: .82rem; line-height: 1.55; }
.assurance-cycle-return strong { color: var(--zn-ice-white, #F2F5F8); }
.assurance-cycle figcaption { padding: 1.1rem 1.5rem 1.25rem; color: var(--zn-forensic-steel, #84A3C0); font-family: var(--zn-mono); font-size: .67rem; line-height: 1.6; }
@keyframes assuranceCycleSignal {
  0%, 16%, 100% { opacity: .38; box-shadow: none; }
  5%, 10% { opacity: 1; box-shadow: 0 0 0 .3rem color-mix(in srgb, var(--zn-signal-blue, #5C84B6) 16%, transparent); }
}
.insight-article-footer { margin-top: 5rem; padding: clamp(2rem, 4vw, 3.5rem); background: var(--zn-indigo, #1B2A4A); }
.insight-article-footer h2 { margin: .8rem 0 1rem; color: var(--zn-ice-white, #F2F5F8); font-size: clamp(2.3rem, 3.5vw, 3.8rem); }
.insight-article-footer > p:not(.eyebrow) { color: var(--zn-cold-mist, #C6D4E1); }
.insight-article-footer > div { display: flex; flex-wrap: wrap; gap: 1.6rem; margin-top: 1.5rem; }
.insight-article-footer .text-link { color: var(--zn-ice-white, #F2F5F8); border-color: var(--zn-signal-blue, #5C84B6); }
:root:not([data-theme="dark"]) .insight-article-footer .text-link {
  color: var(--zn-ice-white, #F2F5F8);
  border-color: var(--zn-signal-blue, #5C84B6);
}
:root:not([data-theme="dark"]) .insight-article-footer .text-link:hover,
:root:not([data-theme="dark"]) .insight-article-footer .text-link:focus-visible {
  color: var(--zn-ice-white, #F2F5F8);
  background: rgba(92, 132, 182, .18);
}
:root:not([data-theme="dark"]) .training-hero .eyebrow,
:root:not([data-theme="dark"]) .training-institutional .side-label,
:root:not([data-theme="dark"]) .method-architecture .side-label,
:root:not([data-theme="dark"]) .about-purpose .side-label,
:root:not([data-theme="dark"]) .insight-article-footer .eyebrow {
  color: var(--zn-forensic-steel, #84A3C0);
}
:root:not([data-theme="dark"]) .practice-crosslink,
:root:not([data-theme="dark"]) .method-controls article:nth-child(2) small {
  color: var(--zn-indigo, #1B2A4A);
}

:root[data-theme="dark"] .insight-featured { background: var(--zn-deep-night, #0F1D33); border-color: var(--zn-trace-line, #2A3B54); }
:root[data-theme="dark"] .insight-featured-mark { border-color: var(--zn-trace-line, #2A3B54); }
:root[data-theme="dark"] .insights-programme, :root[data-theme="dark"] .insight-rail-method, :root[data-theme="dark"] .insight-article blockquote { background: var(--zn-deep-night, #0F1D33); }
:root[data-theme="dark"] .insights-programme ol, :root[data-theme="dark"] .insights-programme li { border-color: var(--zn-trace-line, #2A3B54); }

@media (max-width: 980px) {
  .insights-hero-grid, .insight-article-heading, .insights-foundation-grid, .insights-programme-grid { grid-template-columns: 1fr; }
  .insights-hero-grid { min-height: 0; gap: 3rem; }
  .insights-hero-copy { max-width: 42rem; }
  .insight-featured { grid-template-columns: 15rem minmax(0, 1fr); }
  .insights-method-visual { min-height: 24rem; border-bottom: 1px solid var(--zn-trace-line, #2A3B54); }
  .insights-foundation-copy { border-left: 1px solid var(--zn-trace-line, #2A3B54); }
  .insight-reading-grid { grid-template-columns: 1fr; }
  .insight-reading-rail { position: static; display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
  .insight-rail-method { margin-top: 0; }
  .insight-article { max-width: 52rem; }
}

@media (max-width: 700px) {
  .insights-hero h1, .insight-article-heading h1 { font-size: clamp(3.25rem, 15vw, 4.7rem); line-height: .96; }
  .insight-section-heading, .insight-section-heading-intro { grid-template-columns: 1fr; gap: 1rem; }
  .insight-featured { grid-template-columns: 1fr; min-height: 0; }
  .insight-featured-mark { min-height: 13rem; border-right: 0; border-bottom: 1px solid var(--zn-chain-grey, #B8C5D2); }
  .insight-featured > div:last-child { padding: 2rem 1.35rem 2.5rem; }
  .insight-featured h2 { font-size: clamp(2.35rem, 11vw, 3.4rem); }
  .insight-featured dl { display: grid; grid-template-columns: 1fr 1fr; }
  .insight-featured dl div { min-width: 0; }
  .insight-index-row { grid-template-columns: 2.25rem minmax(0, 1fr); gap: 1rem; }
  .insight-index-action { grid-column: 2; justify-self: start; }
  .insights-method-visual { grid-template-columns: 1fr; min-height: 30rem; padding: 2rem 1rem; }
  .insights-method-visual::before { top: 10%; bottom: 10%; left: 50%; right: auto; width: 1px; height: auto; }
  .insights-method-visual span { padding: .45rem 0 .45rem 3rem; text-align: left; }
  .insights-method-visual span::before { left: calc(50% - 1.5rem); top: 50%; transform: translate(-50%, -50%) rotate(45deg); }
  .insights-method-visual img { width: 4rem; height: 4rem; }
  .insights-foundation-copy { padding: 3rem 1.35rem; }
  .insight-meta { grid-template-columns: 1fr 1fr; }
  .insight-meta div:nth-child(3) { padding-left: 0; border-left: 0; border-top: 1px solid var(--zn-trace-line, #2A3B54); }
  .insight-meta div:nth-child(4) { border-top: 1px solid var(--zn-trace-line, #2A3B54); }
  .insight-meta div:nth-child(5) { padding-left: 0; border-left: 0; border-top: 1px solid var(--zn-trace-line, #2A3B54); }
  .insight-reading-rail { display: block; }
  .insight-rail-method { margin-top: 2rem; }
  .insight-toc a { padding-block: .75rem; font-size: .8rem; }
  .insight-video { margin-block: 2.5rem 3.25rem; }
  .insight-video figcaption { grid-template-columns: 1fr; gap: .55rem; }
  .assurance-cycle { margin-block: 2.5rem 3rem; }
  .assurance-cycle-header { display: block; padding: 1.15rem; }
  .assurance-cycle-status { display: inline-block; margin-top: 1rem; }
  .assurance-cycle-stages > li { grid-template-columns: 2.4rem minmax(0, 1fr); gap: .75rem; padding: 1.25rem 1.15rem; }
  .assurance-cycle-stages > li::after { left: 2.25rem; }
  .assurance-cycle-stages > li::before { left: 1.98rem; }
  .assurance-cycle-method li + li::before { display: none; }
  .assurance-cycle-return { grid-template-columns: 2.4rem minmax(0, 1fr); gap: .75rem; padding: 1.1rem 1.15rem; }
  .assurance-cycle figcaption { padding-inline: 1.15rem; }
  .insight-article > p, .insight-article > ul, .insight-article > ol { font-size: 1rem; line-height: 1.75; }
  .insight-article > h2 { margin-top: 3.25rem; }
  .article-share { grid-template-columns: 1fr; gap: 1rem; margin-bottom: 2.5rem; }
  .article-share-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: stretch; border-top: 1px solid var(--zn-rule); border-left: 1px solid var(--zn-rule); }
  .article-share-actions a,
  .article-share-actions button { justify-content: center; border-right: 1px solid var(--zn-rule); border-bottom: 1px solid var(--zn-rule); border-left: 0; }
  .article-share-status { margin-top: -.4rem; text-align: left; }
}

/* V42 continuation — Insights rules follow the V41 component definitions. */
@media (min-width: 981px) {
  .insights-hero-grid { grid-template-columns: minmax(0, 1.45fr) minmax(19rem, .55fr); gap: clamp(3rem, 6vw, 7rem); }
  .insights-hero h1 { max-width: 14ch; font-size: clamp(3.8rem, 6vw, 6.5rem); line-height: .95; }
  .insight-article-heading { grid-template-columns: minmax(0, 1.45fr) minmax(18rem, .55fr); gap: clamp(3rem, 6vw, 7rem); }
  .insight-article-heading h1 { max-width: 16ch; font-size: clamp(3.35rem, 5.1vw, 5.8rem); line-height: .97; }
  .insights-foundation-copy h2 { max-width: 16ch; font-size: clamp(2.75rem, 3.8vw, 4.25rem); line-height: 1.03; }
  .insights-programme h2 { max-width: 12ch; font-size: clamp(2.9rem, 4.2vw, 4.8rem); line-height: 1; }
}

@media (max-width: 700px) {
  .about-hero-copy h1,
  .insights-hero h1 { font-size: clamp(3rem, 12.8vw, 3.75rem); line-height: 1.03; }
  .insight-article-heading h1 { font-size: clamp(2.85rem, 11.8vw, 3.55rem); line-height: 1.04; }
  .insights-foundation-copy h2 { font-size: clamp(2.55rem, 11vw, 3.35rem); line-height: 1.06; }
  .insights-programme h2 { max-width: 12ch; font-size: clamp(2.65rem, 11vw, 3.25rem); line-height: 1.04; }
}

/* V43 — semantically accurate forensic reconstruction diagram. */
.case-step-label,
.case-node-label {
  fill: var(--zn-forensic-steel);
  font-family: var(--zn-mono);
  font-weight: 700;
  letter-spacing: .04em;
}
.case-step-label { font-size: 9px; }
.case-node-label { font-size: 8px; }
.case-examiner-label { fill: var(--zn-ice-white); }
.case-source-bracket,
.case-source,
.case-source-detail,
.case-observed,
.case-provenance,
.case-check,
.case-event,
.case-inference,
.case-hypothesis,
.case-boundary,
.case-trace-point {
  fill: none;
  stroke: var(--zn-forensic-steel);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}
.case-source { fill: color-mix(in srgb, var(--zn-forensic-steel) 10%, var(--zn-midnight-evidence)); }
.case-source-detail { opacity: .8; }
.case-observed { stroke: var(--zn-ice-white); opacity: .82; }
.case-provenance { fill: color-mix(in srgb, var(--zn-signal-blue) 14%, var(--zn-midnight-evidence)); stroke: var(--zn-signal-blue); stroke-width: 1.35; }
.case-check { stroke: var(--zn-ice-white); stroke-width: 1.5; }
.case-event { fill: var(--zn-midnight-evidence); stroke: var(--zn-ice-white); }
.case-inference { stroke: var(--zn-signal-blue); stroke-dasharray: 4 6; animation: caseRoute 12s linear infinite; }
.case-hypothesis { fill: var(--zn-midnight-evidence); stroke: var(--zn-signal-blue); }
.case-boundary { stroke: var(--zn-signal-blue); stroke-dasharray: 3 3; }
.case-finding { fill: color-mix(in srgb, var(--zn-signal-blue) 12%, var(--zn-midnight-evidence)); stroke: var(--zn-ice-white); }
.case-trace-point { fill: var(--zn-signal-blue); stroke: none; filter: drop-shadow(0 0 5px color-mix(in srgb, var(--zn-signal-blue) 70%, transparent)); animation: casePulse 2.8s ease-in-out infinite; }
.investigation-schematic-legend span { display: flex; gap: .5rem; align-items: center; }
.investigation-schematic-legend span:nth-child(2) { justify-content: center; }
.investigation-schematic-legend span:last-child { justify-content: flex-end; }
.investigation-schematic-legend i { display: inline-block; flex: 0 0 auto; width: 1.6rem; height: 0; border-top: 1px solid var(--zn-ice-white); }
.investigation-schematic-legend .legend-dashed { border-top-color: var(--zn-signal-blue); border-top-style: dashed; }
.investigation-schematic-legend .legend-boundary { width: .85rem; height: .85rem; border: 1px dashed var(--zn-signal-blue); }
.case-process-key { display: none; }

@media (max-width: 700px) {
  .case-step-label { display: none; }
  .case-node-label { font-size: 8px; }
  .case-process-key { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .25rem; padding: .75rem 0; color: var(--zn-forensic-steel); border-top: 1px solid var(--case-line); font-family: var(--zn-mono); font-size: .52rem; font-weight: 700; letter-spacing: .025em; text-align: center; text-transform: uppercase; }
  .investigation-schematic-legend { grid-template-columns: 1fr; }
  .investigation-schematic-legend span,
  .investigation-schematic-legend span:nth-child(2),
  .investigation-schematic-legend span:last-child { justify-content: flex-start; text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  .case-inference,
  .case-trace-point,
  .assurance-cycle-stages > li::before { animation: none; }
}

/* V27 — training hero calibrated to the current site rhythm */
.training-hero-grid {
  min-height: clamp(37rem, 66vh, 44rem);
  padding-block: clamp(3.75rem, 6vw, 5.5rem);
}

.training-hero-copy .eyebrow { margin-bottom: 1.5rem; }

.training-hero-copy h1 {
  max-width: 54rem;
  font-size: clamp(3.35rem, 4.45vw, 5.25rem);
  line-height: 1.01;
}

.training-hero-copy .lead { margin-top: 1.75rem; }
.training-hero-record { margin-top: 2rem; }

.training-process {
  padding: .95rem;
  box-shadow: .7rem .7rem 0 rgba(8,19,33,.2);
}

.training-process-stage {
  gap: 1.7rem .85rem;
  min-height: 19.5rem;
  padding: 1.65rem .55rem 1.4rem;
}

.training-process-node { padding: .72rem; }
.training-process-node strong { font-size: .92rem; }
.training-field-legend { padding-top: .8rem; }

@media (max-width: 1100px) {
  .training-hero-grid {
    grid-template-columns: 1fr;
    min-height: 0;
    padding-block: 4rem;
  }
  .training-process { max-width: 48rem; }
}

@media (max-width: 780px) {
  .training-hero-grid { gap: 2.25rem; padding-block: 3.75rem 3rem; }
  .training-hero-copy h1 { font-size: clamp(2.85rem, 12vw, 3.55rem); line-height: 1.06; }
  .training-process-stage {
    gap: .5rem;
    min-height: 0;
    padding: .8rem 0;
  }
  .training-process-node { padding: .8rem; }
  .training-process-node strong { font-size: 1rem; }
}

/* Final contrast calibration: supporting text remains readable in dark mode. */
:root[data-theme="dark"] .training-sequence small {
  color: var(--zn-cold-mist);
}

:root[data-theme="dark"] .training-sequence span,
:root[data-theme="dark"] .training-module-head,
:root[data-theme="dark"] .method-control-grid small,
:root[data-theme="dark"] .insight-reference,
:root[data-theme="dark"] .contact-record dt {
  color: var(--zn-forensic-steel);
}

@media (max-width: 700px) {
  .training-process-node span,
  .training-process-node small,
  .assurance-map-node span,
  .assurance-map-node small,
  .method-phase-card small,
  .method-phase-card > strong,
  .case-process-key {
    font-size: .66rem;
    line-height: 1.4;
  }
}

/* V46 final cascade placement for the redesigned About hero. */
.about-hero-grid {
  grid-template-columns: minmax(0, 1fr) minmax(32rem, 1fr);
  gap: clamp(3rem, 5vw, 5.75rem);
}

.about-hero-copy h1 {
  max-width: 16ch;
  font-size: clamp(3.45rem, 4.5vw, 5rem);
  line-height: 1;
  text-wrap: pretty;
}

.about-hero {
  padding-block: clamp(3.5rem, 5vw, 5.25rem);
}

@media (max-width: 1100px) {
  .about-hero-grid { grid-template-columns: 1fr; }
  .about-name-field { width: min(100%, 48rem); }
}

@media (max-width: 700px) {
  .about-hero-copy h1 {
    max-width: 12ch;
    font-size: clamp(2.95rem, 12.4vw, 3.65rem);
    line-height: 1.02;
  }
}

/* V47 — compact/portrait hero discipline: preserve the message, remove diagram congestion. */
@media (max-width: 900px) {
  .investigation-schematic,
  .assurance-map,
  .training-process,
  .method-lifecycle,
  .about-name-field {
    display: none !important;
  }

  .investigations-hero-grid,
  .ai-assurance-hero-grid,
  .training-hero-grid,
  .method-hero-grid,
  .about-hero-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0 !important;
    min-height: 0 !important;
  }

  .investigations-hero,
  .ai-assurance-hero {
    padding-block: clamp(3.25rem, 11vw, 4.5rem);
  }

  .training-hero-grid,
  .method-hero-grid {
    padding-block: clamp(3.25rem, 11vw, 4.5rem) !important;
  }

  .about-hero {
    padding-block: clamp(3.25rem, 11vw, 4.5rem);
  }

  .investigations-hero-copy,
  .ai-assurance-hero-copy,
  .training-hero-copy,
  .method-hero-copy,
  .about-hero-copy {
    max-width: 43rem;
  }

  .investigations-hero-copy h1,
  .ai-assurance-hero-copy h1,
  .training-hero-copy h1,
  .method-hero-copy h1,
  .about-hero-copy h1 {
    max-width: 13ch;
    font-size: clamp(2.8rem, 12vw, 3.65rem);
    line-height: 1.05;
    text-wrap: balance;
  }

  .investigations-hero-copy .lead,
  .ai-assurance-hero-copy .lead,
  .training-hero-copy .lead,
  .method-hero-copy .lead,
  .about-hero-copy .lead {
    font-size: 1.04rem;
    line-height: 1.72;
  }

  .hero-orientation {
    display: none;
  }

  .hero-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    min-height: 0;
    padding-block: 3.6rem 5.25rem;
  }

  .hero-copy {
    max-width: 42rem;
  }

  .hero-evidence-field {
    opacity: .68;
  }
}

/* V48 — device-independent typography and complete intermediate-width coverage. */
.nav > *,
.hero-grid > *,
.section-head > *,
.bio-grid > *,
.contact-grid > *,
.method-section-head > *,
.method-controls > *,
.method-controls article > *,
.method-architecture-head > * {
  min-width: 0;
}

.method-controls h3,
.experience-index span,
.contact-page label,
.contact-page .form-note,
.contact-submit-row > span {
  overflow-wrap: break-word;
}

.experience-index span {
  max-width: 21rem;
  font-size: .76rem;
  line-height: 1.65;
  letter-spacing: .045em;
}

/* Long editorial headings keep their words inside the column at zoomed desktop widths. */
.about-principles-title h2 {
  width: 11ch;
  max-width: 100%;
  font-size: clamp(3.25rem, 4.6vw, 5.1rem);
}

.insights-programme h2 {
  width: 12ch;
  font-size: clamp(3rem, 4.35vw, 4.8rem);
}

.about-principles-grid {
  grid-template-columns: minmax(21rem, .82fr) minmax(0, 1.18fr);
}

.insights-programme-grid {
  grid-template-columns: minmax(20rem, .78fr) minmax(0, 1.22fr);
}

/* Collapse the navigation before labels begin wrapping at browser zoom or portrait widths. */
@media (max-width: 1240px) {
  .nav { grid-template-columns: minmax(0, 1fr) auto auto; }
  .menu-button {
    display: block;
    font-family: var(--zn-body);
    font-size: .82rem;
    font-weight: 600;
    letter-spacing: .01em;
    text-transform: none;
  }
  .nav-links {
    display: none;
    position: absolute;
    top: 5.7rem;
    left: 0;
    right: 0;
    z-index: 40;
    align-items: flex-start;
    flex-direction: column;
    gap: 1rem;
    padding: 1.6rem var(--page-gutter) 2rem;
    background: var(--zn-header);
    border-bottom: 1px solid var(--zn-rule);
    box-shadow: 0 1rem 2rem rgba(8, 19, 33, .1);
  }
  .nav-links.open { display: flex; }
  .nav-links a { padding-block: .28rem; }
  .nav-cta { padding-left: 0; border-left: 0; }
}

@media (max-width: 1100px) {
  .bio-grid,
  .about-principles-grid,
  .insights-programme-grid,
  .contact-hero-grid,
  .contact-intake .contact-grid,
  .method-section-head,
  .method-architecture-head {
    grid-template-columns: minmax(0, 1fr);
  }
  .bio-grid { gap: 3.5rem; }
  .bio-heading { min-height: 0; }
  .experience-index {
    width: min(100%, 38rem);
    margin-top: 2.75rem;
  }
  .contact-hero-grid { gap: 3rem; }
  .contact-guidance { position: static; }
  .contact-page .contact-card { width: min(100%, 52rem); }
  .method-section-head,
  .method-architecture-head { gap: 2rem; }
  .method-architecture-intro { padding-left: 1.25rem; }
}

/* Two columns are retained only while each method control has a readable measure. */
@media (min-width: 901px) and (max-width: 1240px) {
  .method-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .method-controls article { min-height: 20rem; }
  .method-controls article:nth-child(3) {
    grid-column: 1 / -1;
    min-height: 0;
  }
  .method-controls article:nth-child(3) > div { max-width: 46rem; }
  .method-controls h3 { font-size: clamp(2.35rem, 4.1vw, 3.15rem); }
}

@media (max-width: 900px) {
  .method-controls { grid-template-columns: minmax(0, 1fr); }
  .method-controls article {
    min-height: 0;
    padding: clamp(1.6rem, 5vw, 2.35rem);
  }
  .method-controls h3 {
    max-width: 16ch;
    font-size: clamp(2.35rem, 7.5vw, 3.1rem);
  }
  .contact-submit-row {
    align-items: flex-start;
    flex-direction: column;
  }
  .contact-submit-row > span { max-width: 32rem; }
}

@media (min-width: 701px) and (max-width: 980px) {
  .insights-programme h2 { width: 15ch; max-width: 100%; }
}

@media (max-width: 700px) {
  .nav-links { top: 5rem; }
  .contact-page .contact-card > label {
    align-items: flex-start;
    flex-direction: column;
    gap: .3rem;
  }
  .experience-index span {
    max-width: 22rem;
    font-size: .74rem;
  }
  .insights-programme h2 { width: 12ch; max-width: 100%; }
  .method-controls article {
    grid-template-columns: minmax(0, 1fr);
    gap: .85rem;
  }
  .method-controls h3 {
    max-width: none;
    margin-top: 1rem;
    font-size: clamp(2.25rem, 10vw, 2.75rem);
    overflow-wrap: normal;
  }
}

/* V49 — diagrams follow the same responsive and typographic rules as the page. */
.investigation-schematic,
.assurance-map,
.training-process,
.method-lifecycle,
.about-name-field,
.practice-convergence,
.about-practice-map,
.evidence-explorer {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.investigation-schematic *,
.assurance-map *,
.training-process *,
.method-lifecycle *,
.about-name-field *,
.practice-convergence *,
.about-practice-map *,
.evidence-explorer * {
  box-sizing: border-box;
  min-width: 0;
}

.investigation-schematic figcaption,
.assurance-map figcaption,
.training-process figcaption,
.method-lifecycle figcaption,
.about-name-field figcaption,
.investigation-schematic-legend,
.assurance-map-record,
.training-field-legend,
.method-field-legend,
.name-field-application,
.case-process-key {
  font-family: var(--zn-mono);
  font-synthesis: none;
  line-height: 1.45;
}

.assurance-map-node,
.assurance-map-source,
.training-process-node,
.method-phase,
.name-field-node,
.name-field-application li {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.assurance-map-node strong,
.assurance-map-source strong,
.training-process-node strong,
.method-phase strong,
.name-field-node strong {
  font-family: var(--zn-heading);
  font-synthesis: none;
  line-height: 1.12;
  text-wrap: balance;
}

.case-step-label,
.case-node-label {
  font-family: var(--zn-mono);
  font-synthesis: none;
}

/* At portrait-tablet and zoomed-desktop widths, diagrams occupy a stable reading
   measure instead of being compressed inside the former two-column hero grid. */
@media (min-width: 901px) and (max-width: 1240px) {
  .investigations-hero-grid,
  .ai-assurance-hero-grid,
  .training-hero-grid,
  .method-hero-grid,
  .about-hero-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 3rem !important;
    min-height: 0 !important;
  }

  .investigation-schematic,
  .assurance-map,
  .training-process,
  .method-lifecycle,
  .about-name-field {
    justify-self: start;
    width: min(100%, 50rem);
  }

  .investigation-schematic figcaption,
  .assurance-map figcaption,
  .training-process figcaption,
  .method-lifecycle figcaption,
  .about-name-field figcaption {
    align-items: flex-start;
    flex-wrap: wrap;
    row-gap: .4rem;
  }

  .investigation-schematic-legend,
  .assurance-map-record,
  .training-field-legend,
  .method-field-legend,
  .name-field-application {
    font-size: clamp(.59rem, .85vw, .68rem);
    letter-spacing: .03em;
  }
}

/* Supporting diagrams remain useful on narrow screens, but never bleed beyond
   their section when labels reflow. */
@media (max-width: 900px) {
  .practice-convergence,
  .about-practice-map,
  .evidence-explorer {
    overflow: hidden;
  }
}

/* V50 — hero diagrams appear only when their full information geometry remains legible. */
@media (min-width: 1241px) {
  .method-hero-grid {
    grid-template-columns: minmax(24rem, .72fr) minmax(44rem, 1.28fr);
    gap: clamp(3rem, 4vw, 5rem);
  }
}

.method-lifecycle-flow {
  gap: 1.65rem;
}

.method-phase {
  grid-template-columns: 1.55rem minmax(0, 1fr);
  gap: .7rem;
  min-height: 9.6rem;
  padding: 1.1rem;
}

.method-phase > span {
  padding-top: .18rem;
  line-height: 1;
}

.method-phase > div {
  align-content: start;
  gap: .55rem;
}

.method-phase strong {
  font-size: clamp(1.18rem, 1.35vw, 1.42rem);
  line-height: 1.08;
  white-space: normal;
}

.method-phase small {
  font-size: .57rem;
  line-height: 1.55;
}

.method-phase > b {
  margin-top: .25rem;
  padding-top: .65rem;
  font-size: .56rem;
}

.method-phase::after { width: 1.66rem; }
.method-phase-1::after,
.method-phase-2::after { right: -1.67rem; }
.method-phase-1::before,
.method-phase-2::before { right: -1.9rem; }
.method-phase-3::after { bottom: -.84rem; }
.method-phase-3::before { bottom: -1.39rem; }
.method-phase-4::after,
.method-phase-5::after { left: -1.67rem; }
.method-phase-4::before,
.method-phase-5::before { left: -1.9rem; }

.method-authority-gate {
  grid-template-columns: 5.25rem minmax(0, 1fr) auto;
  gap: 1.15rem;
  padding: 1.15rem;
}

.method-authority-gate strong { font-size: 1.32rem; }
.method-authority-gate small { line-height: 1.55; }

.method-defensibility {
  grid-template-columns: minmax(0, 1.15fr) minmax(15rem, .85fr);
  gap: 1.25rem;
  padding: 1.15rem;
}

.method-defensibility > div {
  grid-template-columns: 2.6rem minmax(0, 1fr);
}

.method-defensibility dl { min-width: 0; }

/* Detailed hero diagrams are intentionally absent once the viewport cannot
   preserve their labels, connectors, and reading order without compression. */
@media (max-width: 1180px) {
  .investigation-schematic,
  .assurance-map,
  .training-process,
  .method-lifecycle,
  .about-name-field {
    display: none !important;
  }

  .investigations-hero-grid,
  .ai-assurance-hero-grid,
  .training-hero-grid,
  .method-hero-grid,
  .about-hero-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0 !important;
    min-height: 0 !important;
  }
}

/* V51 — monospace is a label system, not a reading typeface. */
.contact-page .contact-card .form-note,
.contact-submit-row > span,
.contact-guidance-list h3,
.contact-direct small,
.intake-boundary > p {
  font-family: var(--zn-body);
  font-synthesis: none;
  letter-spacing: normal;
  text-transform: none;
}

.contact-guidance-list h3 {
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.35;
}

.contact-page .contact-card .form-note {
  color: var(--zn-steel-blue);
  font-size: .92rem;
  font-weight: 400;
  line-height: 1.68;
}

.contact-submit-row > span {
  max-width: 20rem;
  font-size: .82rem;
  font-weight: 500;
  line-height: 1.55;
}

.contact-direct small,
.intake-boundary > p {
  font-size: .78rem;
  font-weight: 500;
  line-height: 1.55;
}

.contact-delivery-note {
  font-size: .94rem !important;
  line-height: 1.65 !important;
}

/* V52 — heroes use compact abstract evidence motifs, not explanatory diagrams. */
@media (min-width: 1181px) {
  .investigations-hero-grid,
  .ai-assurance-hero-grid,
  .training-hero-grid,
  .method-hero-grid,
  .about-hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 24rem) !important;
    gap: clamp(2.5rem, 5vw, 5rem) !important;
    align-items: center;
    min-height: 0 !important;
  }

  .method-hero-grid { padding-block: clamp(4.5rem, 7vw, 6.5rem); }

  .investigation-schematic,
  .assurance-map,
  .training-process,
  .method-lifecycle,
  .about-name-field {
    position: relative;
    justify-self: end;
    width: min(100%, 24rem) !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 4 / 3;
    margin: 0;
    padding: 0 !important;
    overflow: hidden;
    background-color: var(--zn-midnight-evidence) !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    border: 1px solid var(--zn-trace-line) !important;
    border-top: 2px solid var(--zn-signal-blue) !important;
    box-shadow: .7rem .7rem 0 rgba(8, 19, 33, .16) !important;
    transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease;
  }

  .investigation-schematic { background-image: url('/assets/hero-motif-investigations.svg') !important; }
  .assurance-map { background-image: url('/assets/hero-motif-assurance.svg') !important; }
  .training-process { background-image: url('/assets/hero-motif-training.svg') !important; }
  .method-lifecycle { background-image: url('/assets/hero-motif-method.svg') !important; }
  .about-name-field { background-image: url('/assets/hero-motif-about.svg') !important; }

  .investigation-schematic > *,
  .assurance-map > *,
  .training-process > *,
  .method-lifecycle > *,
  .about-name-field > * {
    display: none !important;
  }

  .investigation-schematic::before,
  .assurance-map::before,
  .training-process::before,
  .method-lifecycle::before,
  .about-name-field::before {
    position: absolute;
    z-index: 2;
    top: 0;
    right: 0;
    left: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent 8%, rgba(132, 163, 192, .18) 28%, var(--zn-forensic-steel) 50%, rgba(132, 163, 192, .18) 72%, transparent 92%);
    box-shadow: 0 0 1rem rgba(92, 132, 182, .3);
    content: '';
    animation: zn-motif-scan 7s cubic-bezier(.45, 0, .55, 1) infinite;
  }

  .investigation-schematic::after,
  .assurance-map::after,
  .training-process::after,
  .method-lifecycle::after,
  .about-name-field::after {
    position: absolute;
    right: .8rem;
    bottom: .7rem;
    width: .48rem;
    height: .48rem;
    background: var(--zn-signal-blue);
    box-shadow: -1rem 0 0 rgba(132, 163, 192, .6);
    transform: rotate(45deg);
    content: '';
    animation: zn-motif-signal 3.2s ease-in-out infinite;
  }

  .assurance-map::before { animation-delay: -1.4s; }
  .training-process::before { animation-delay: -2.8s; }
  .method-lifecycle::before { animation-delay: -4.2s; }
  .about-name-field::before { animation-delay: -5.6s; }

  .investigation-schematic:hover,
  .assurance-map:hover,
  .training-process:hover,
  .method-lifecycle:hover,
  .about-name-field:hover {
    border-color: var(--zn-forensic-steel) !important;
    box-shadow: .85rem .85rem 0 rgba(8, 19, 33, .2) !important;
    transform: translateY(-3px);
  }
}

@keyframes zn-motif-scan {
  0%, 10% { top: 8%; opacity: 0; }
  18% { opacity: .8; }
  82% { opacity: .8; }
  90%, 100% { top: 92%; opacity: 0; }
}

@keyframes zn-motif-signal {
  0%, 100% { opacity: .42; transform: rotate(45deg) scale(.78); }
  50% { opacity: 1; transform: rotate(45deg) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .investigation-schematic::before,
  .assurance-map::before,
  .training-process::before,
  .method-lifecycle::before,
  .about-name-field::before,
  .investigation-schematic::after,
  .assurance-map::after,
  .training-process::after,
  .method-lifecycle::after,
  .about-name-field::after {
    animation: none !important;
  }

  .investigation-schematic,
  .assurance-map,
  .training-process,
  .method-lifecycle,
  .about-name-field { transition: none !important; }
}

@media (min-width: 1181px) and (max-width: 1320px) {
  .investigations-hero-grid,
  .ai-assurance-hero-grid,
  .training-hero-grid,
  .method-hero-grid,
  .about-hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 20rem) !important;
    gap: 2.5rem !important;
  }

  .investigation-schematic,
  .assurance-map,
  .training-process,
  .method-lifecycle,
  .about-name-field { width: min(100%, 20rem) !important; }
}

/* V53 — Insights as an editorial publication desk. */
.insights-hero-grid {
  min-height: 27rem;
  padding-block: clamp(4.5rem, 7vw, 7rem) clamp(3rem, 5vw, 4.5rem);
}

.insights-hero h1 {
  max-width: 15ch;
  font-size: clamp(3.75rem, 5.5vw, 6rem);
  line-height: .98;
}

.insights-directory {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--zn-trace-line);
  border-inline: 1px solid var(--zn-trace-line);
}

.insights-directory a {
  display: flex;
  gap: 1rem;
  align-items: center;
  min-height: 4.15rem;
  padding: .9rem 1.2rem;
  color: var(--zn-cold-mist);
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px solid var(--zn-trace-line);
  transition: color 180ms ease, background-color 180ms ease;
}

.insights-directory a + a { border-left: 1px solid var(--zn-trace-line); }
.insights-directory a span {
  color: var(--zn-forensic-steel);
  font-family: var(--zn-mono);
  font-size: .66rem;
  letter-spacing: .07em;
}
.insights-directory a:hover,
.insights-directory a:focus-visible {
  color: var(--zn-ice-white);
  background: rgba(92, 132, 182, .12);
  outline: none;
}

.insights-publications { padding-block: clamp(4.5rem, 7vw, 7rem); }
.insight-section-heading-intro { margin-bottom: clamp(2rem, 4vw, 3.25rem); }
.insight-section-heading h2 { font-size: clamp(2.6rem, 3.5vw, 3.9rem); }

.insight-featured {
  grid-template-columns: minmax(16rem, .42fr) minmax(0, 1fr);
  min-height: 27rem;
  overflow: hidden;
}

.insight-featured-record {
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr auto;
  min-height: 27rem;
  padding: 1.4rem;
  color: var(--zn-forensic-steel);
  background-color: var(--zn-midnight-evidence);
  background-image:
    linear-gradient(rgba(132, 163, 192, .11) 1px, transparent 1px),
    linear-gradient(90deg, rgba(132, 163, 192, .11) 1px, transparent 1px);
  background-size: 3.25rem 3.25rem;
  border-right: 1px solid var(--zn-chain-grey);
}

.insight-featured-record::after {
  position: absolute;
  right: -4rem;
  bottom: -4rem;
  width: 12rem;
  height: 12rem;
  border: 1px solid rgba(92, 132, 182, .36);
  transform: rotate(45deg);
  content: '';
}

.insight-featured-record-head,
.insight-featured-record-foot {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  color: var(--zn-forensic-steel);
  font-family: var(--zn-mono);
  font-size: .64rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.insight-featured-record-head { padding-bottom: 1rem; border-bottom: 1px solid var(--zn-trace-line); }
.insight-featured-record-head strong { color: var(--zn-ice-white); }
.insight-featured-record svg {
  align-self: center;
  justify-self: center;
  width: clamp(6rem, 9vw, 8rem);
  fill: none;
  stroke: var(--zn-forensic-steel);
  stroke-width: 1.2;
}
.insight-featured-record-foot { gap: .8rem; padding-top: 1rem; border-top: 1px solid var(--zn-trace-line); }

.insight-featured-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2.25rem, 4.5vw, 4.5rem);
}

.insight-featured h2 {
  max-width: 20ch;
  margin: 1rem 0 1.25rem;
  font-size: clamp(2.65rem, 3.7vw, 4.35rem);
  line-height: 1.02;
}

.insight-featured-copy > p:not(.eyebrow) { max-width: 44rem; }
.insight-featured-footer {
  display: flex;
  gap: 2rem;
  align-items: center;
  justify-content: space-between;
  margin-top: 2rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--zn-rule);
}
.insight-featured-footer dl { margin: 0; border: 0; }
.insight-featured-footer .text-link { flex: 0 0 auto; }

.insights-foundation { border-block: 1px solid var(--zn-trace-line); }
.insights-foundation-grid {
  grid-template-columns: 9rem minmax(0, 1fr) minmax(19rem, .72fr);
  gap: 0;
  align-items: stretch;
}
.insights-foundation-mark {
  display: grid;
  place-items: center;
  align-content: center;
  gap: 1rem;
  padding: 2rem 1rem;
  border-inline: 1px solid var(--zn-trace-line);
}
.insights-foundation-mark img { width: 3.75rem; height: 3.75rem; }
.insights-foundation-mark span {
  color: var(--zn-forensic-steel);
  font-family: var(--zn-mono);
  font-size: .61rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-align: center;
}
.insights-foundation-copy {
  justify-content: center;
  padding: clamp(2rem, 4vw, 3.5rem);
  border-right: 1px solid var(--zn-trace-line);
}
.insights-foundation-copy h2 {
  max-width: none;
  margin: .6rem 0 .75rem;
  font-size: clamp(2.2rem, 3vw, 3.35rem);
  line-height: 1.05;
}
.insights-foundation-copy > p:not(.eyebrow) { max-width: 42rem; }
.insights-foundation-links {
  display: grid;
  gap: 0;
  margin: 0;
  border-right: 1px solid var(--zn-trace-line);
}
.insights-foundation-links a {
  display: grid;
  align-content: center;
  gap: .45rem;
  padding: 1.6rem 2rem;
  color: var(--zn-ice-white);
  text-decoration: none;
  transition: background-color 180ms ease, padding-left 180ms ease;
}
.insights-foundation-links a + a { border-top: 1px solid var(--zn-trace-line); }
.insights-foundation-links a:hover,
.insights-foundation-links a:focus-visible {
  padding-left: 2.4rem;
  background: rgba(92, 132, 182, .14);
  outline: none;
}
.insights-foundation-links span {
  color: var(--zn-forensic-steel);
  font-family: var(--zn-mono);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.insights-foundation-links strong { font-size: .9rem; }

.insights-programme { padding-block: clamp(4.5rem, 7vw, 7rem); }
.insights-programme-grid { grid-template-columns: minmax(17rem, .55fr) minmax(0, 1.45fr); }
.insights-programme h2 { font-size: clamp(2.8rem, 4vw, 4.4rem); }
.insights-programme li { grid-template-columns: 3.2rem minmax(0, 1fr); padding: 1.45rem 0; }
.insights-programme li p { font-size: clamp(1.25rem, 1.7vw, 1.7rem); }

@media (max-width: 980px) {
  .insights-programme-grid { grid-template-columns: 1fr; }
  .insights-foundation-grid { grid-template-columns: 8rem minmax(0, 1fr); }
  .insights-foundation-links { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; border-left: 1px solid var(--zn-trace-line); border-top: 1px solid var(--zn-trace-line); }
  .insights-foundation-links a + a { border-top: 0; border-left: 1px solid var(--zn-trace-line); }
}

@media (max-width: 700px) {
  .insights-hero-grid { gap: 2rem; min-height: 0; padding-block: 3.5rem 2.5rem; }
  .insights-hero h1 { max-width: 13ch; font-size: clamp(2.9rem, 12vw, 3.65rem); line-height: 1.02; }
  .insights-scope { margin-top: 1.5rem; }
  .insights-directory { grid-template-columns: 1fr; }
  .insights-directory a + a { border-left: 0; }
  .insights-directory a { min-height: 3.6rem; }

  .insight-featured { grid-template-columns: 1fr; min-height: 0; }
  .insight-featured-record { min-height: 12rem; border-right: 0; border-bottom: 1px solid var(--zn-chain-grey); }
  .insight-featured-record svg { width: 4.5rem; }
  .insight-featured-record-foot { display: none; }
  .insight-featured-copy { padding: 2rem 1.35rem 2.4rem; }
  .insight-featured h2 { font-size: clamp(2.25rem, 10.5vw, 3.15rem); }
  .insight-featured-footer { display: block; }
  .insight-featured-footer .text-link { display: inline-block; margin-top: 1.25rem; }
  .insight-featured dl { grid-template-columns: 1fr 1fr; }

  .insights-foundation-grid { grid-template-columns: 1fr; }
  .insights-foundation-mark { grid-template-columns: auto 1fr; justify-content: start; min-height: 0; border-bottom: 1px solid var(--zn-trace-line); }
  .insights-foundation-mark img { width: 2.8rem; height: 2.8rem; }
  .insights-foundation-mark span { text-align: left; }
  .insights-foundation-copy { padding: 2.3rem 1.35rem; border-left: 1px solid var(--zn-trace-line); }
  .insights-foundation-copy h2 { font-size: clamp(2.25rem, 10vw, 3rem); }
  .insights-foundation-links { grid-column: auto; grid-template-columns: 1fr; }
  .insights-foundation-links a { padding: 1.35rem; }
  .insights-foundation-links a + a { border-top: 1px solid var(--zn-trace-line); border-left: 0; }
  .insights-foundation-links a:hover,
  .insights-foundation-links a:focus-visible { padding-left: 1.65rem; }

  .insights-programme-grid { gap: 2.5rem; }
  .insights-programme h2 { max-width: 12ch; font-size: clamp(2.55rem, 10.5vw, 3.2rem); }
  .insights-programme li { grid-template-columns: 2.2rem minmax(0, 1fr); gap: 1rem; }
}

/* V54 — Accessibility contrast and interaction calibration. */
.footer-record,
.status,
.orientation-path small,
.insights-foundation-copy .eyebrow,
.insight-feature-image figcaption {
  color: var(--zn-forensic-steel, #84A3C0);
}

.method-meta dt { color: rgba(242, 245, 248, .76); }

:root:not([data-theme="dark"]) .investigation-process small,
:root:not([data-theme="dark"]) .contact-direct span,
:root:not([data-theme="dark"]) .contact-direct small,
:root:not([data-theme="dark"]) .principle-ledger article > span {
  color: #526B85;
}

:root:not([data-theme="dark"]) .training-modules article:not(.training-module-ai) .training-module-head {
  color: var(--zn-indigo, #1B2A4A);
}

.training-module-ai .training-module-head,
.method-hero .eyebrow,
.founder-accountability .side-label,
.insights-hero .eyebrow,
.insight-article-hero .eyebrow {
  color: var(--zn-forensic-steel, #84A3C0);
}

.article-share-actions a,
.article-share-actions button {
  min-height: 2.75rem;
}

.article-share-actions a:focus-visible,
.article-share-actions button:focus-visible {
  outline: 2px solid var(--zn-signal-blue, #5C84B6);
  outline-offset: 2px;
}

@media (max-width: 900px) {
  .theme-switch { width: 2.75rem; height: 2.75rem; }
}
