/*
  TAMESA Candidate A — owner feedback / systemic correction pass.
  Shared errors are corrected at the semantic-role and component level so
  Home and Approach do not diverge into separate visual systems.
*/

/* --------------------------------------------------------------------------
   1. Quiet UI, but not miniature UI
   -------------------------------------------------------------------------- */
:root{
  --type-support:.84rem;
  --type-label:.72rem;
}

.brand{
  font-family:var(--font-wordmark);
  font-size:.76rem;
  line-height:1;
  letter-spacing:.11em;
}
.primary-nav a,
.header-controls button,
.mobile-nav a,
.mobile-nav button{
  font-size:.69rem;
  line-height:1.15;
}
.theme-toggle{min-height:42px}
.ask-control{min-height:40px;padding-inline:14px}

.route-progress{right:20px;gap:8px;padding:8px}
.route-progress a{
  width:30px;
  height:30px;
  font-size:.58rem;
  line-height:1;
}

.eyebrow,.folio,.figure-heading,.meta-label{
  font-size:var(--type-label);
}
.folio{margin-bottom:24px}

/* --------------------------------------------------------------------------
   2. Opening folio is attached to the opening proposition
   -------------------------------------------------------------------------- */
.opening-title{position:relative;z-index:1}
.opening-folio{
  margin:0 0 30px;
  font-size:.76rem;
  letter-spacing:.18em;
  color:var(--ink-faint);
}
.opening-position::before{content:none!important}

/* The canonical Prototype A Decision Window governs its original composition. */
.home-decision .evidence-figure{
  width:min(92%,1120px);
  margin-left:auto;
}

/* --------------------------------------------------------------------------
   3. Approach opening and page orientation
   -------------------------------------------------------------------------- */
.approach-opening{
  grid-template-columns:minmax(0,1.06fr) minmax(430px,.94fr);
  align-items:end;
  gap:clamp(64px,8vw,132px);
  padding-bottom:clamp(86px,8vw,132px);
}
.approach-opening .opening-title{align-self:end}
.approach-opening h1{max-width:7.8ch}
.approach-index{
  align-self:end;
  grid-template-columns:1fr 1fr;
  gap:7px 30px;
  padding-top:22px;
  border-top:1px solid var(--line-strong);
}
.approach-index>p{
  margin-bottom:12px;
  font-size:.74rem;
  line-height:1.2;
}
.approach-index a{
  grid-template-columns:31px minmax(0,1fr);
  gap:11px;
  min-height:44px;
  padding:11px 0;
  font-size:.8rem;
  line-height:1.35;
}
.approach-index a span{
  padding-top:.08em;
  font-size:.68rem;
  line-height:1.3;
}

/* --------------------------------------------------------------------------
   4. Approach support copy and section metadata use the same readable scale
   -------------------------------------------------------------------------- */
.argument-heading__support,
.continuity-field>header>div:last-child,
.seat-record,
.approach-close .action-link{
  font-size:clamp(.99rem,.18vw + .94rem,1.08rem);
}
.argument-heading__support .takeaway{
  font-size:clamp(1.38rem,1.7vw,1.82rem);
}
.decision-pair article p,
.route-condition p,
.river-threshold__copy p:last-child,
.duties-comparison,
.continuity-register p{
  font-size:clamp(.91rem,.12vw + .88rem,1rem);
}
.decision-pair h3,
.route-condition h3{
  font-size:.78rem;
}

/* --------------------------------------------------------------------------
   5. Evidence figures: bounded, clipped and readable
   -------------------------------------------------------------------------- */
.figure-heading{
  min-height:48px;
  align-items:center;
  padding:16px 20px;
  font-size:.72rem;
  line-height:1.35;
}
.evidence-figure figcaption{
  padding:17px 20px;
  font-size:.79rem;
  line-height:1.55;
}

.analysis-field{overflow:hidden}
.analysis-field .evidence-figure{
  width:min(100%,1260px);
  margin-inline:auto;
  overflow:hidden;
  contain:paint;
}

.route-conditions{
  width:min(88%,1020px);
  margin-left:auto;
  overflow:hidden;
}
.unknown-field .evidence-figure{
  width:min(90%,1040px);
  margin-inline:auto;
  overflow:hidden;
}

/* Native light-theme diagrams remain completely achromatic. */
html:not([data-theme="dark"]) .shared-unknown{
  background:var(--diagram-zone);
}

/* --------------------------------------------------------------------------
   6. Continuity, closing movement and footer
   -------------------------------------------------------------------------- */
.continuity-register>li>span{font-size:.72rem}
.continuity-register h3{font-size:clamp(1.9rem,2.3vw,2.5rem)}
.site-footer{
  min-height:124px;
  align-items:start;
  padding-block:38px;
  font-size:.74rem;
  line-height:1.58;
}
.site-footer strong{
  font-family:var(--font-wordmark);
  font-size:.72rem;
  line-height:1.3;
}

/* --------------------------------------------------------------------------
   7. Ask Tamesa: one brand wordmark, icon only while actually thinking
   -------------------------------------------------------------------------- */
.ask-heading{display:block!important}
.ask-brand{
  margin:0 0 8px;
  font-family:var(--font-wordmark);
  font-size:.74rem;
  font-weight:600;
  letter-spacing:.11em;
  line-height:1.2;
  text-transform:uppercase;
  color:var(--ink);
}
.ask-heading h2{font-size:clamp(2.2rem,3vw,3rem)}
.ask-direct,.ask-close,.prompts-title,.ask-form label,
.ask-panel__footer,.ask-legal,.ask-form__error{
  font-size:.72rem;
}
.ask-warning strong{font-size:.72rem}
.ask-warning p,.suggested-questions button{
  font-size:.8rem;
  line-height:1.5;
}
.ask-submit .tc-thinking-icon{
  width:0;
  min-width:0;
  opacity:0;
  margin:0;
  overflow:hidden;
  transition:width .18s ease,opacity .18s ease,margin .18s ease;
}
.ask-submit .tc-thinking-icon[data-state="thinking"],
.ask-submit .tc-thinking-icon[data-state="settling"]{
  width:var(--tc-thinking-size);
  min-width:var(--tc-thinking-size);
  opacity:1;
  margin-right:4px;
}

/* --------------------------------------------------------------------------
   8. Defensive modal locking: no stale page lock and exact scroll recovery
   -------------------------------------------------------------------------- */
html.is-locked{overflow:hidden}
body.is-locked{
  position:fixed;
  left:0;
  right:0;
  width:100%;
  overflow:hidden;
}
.ask-scroll{overscroll-behavior:contain}

/* --------------------------------------------------------------------------
   9. Intermediate widths: preserve the same system without crushing it
   -------------------------------------------------------------------------- */
@media(max-width:1180px){
  .approach-opening{
    grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);
    gap:6vw;
  }
  .route-conditions,
  .unknown-field .evidence-figure{width:min(94%,100%)}
}

@media(max-width:860px){
  .approach-opening{
    grid-template-columns:1fr;
    align-items:start;
    gap:72px;
  }
  .approach-opening .opening-title,
  .approach-index{align-self:auto}
  .approach-index{max-width:720px}
  .analysis-field .evidence-figure,
  .route-conditions,
  .unknown-field .evidence-figure{
    width:100%;
    max-width:none;
  }
  .site-footer{font-size:.72rem}
}

@media(max-width:720px){
  .home-decision .canonical-graph{width:100%}
}

/* --------------------------------------------------------------------------
   10. Mobile is reauthored rather than reduced to tiny desktop controls
   -------------------------------------------------------------------------- */
@media(max-width:640px){
  :root{--type-label:.66rem;--type-support:.79rem}
  body{padding-bottom:46px}

  .site-header{min-height:60px}
  .brand{font-size:.66rem}
  .header-controls button,
  .mobile-nav a,
  .mobile-nav button{font-size:.62rem}
  .ask-control{min-height:36px;padding-inline:10px}

  .route-progress{
    left:50%;
    right:auto;
    bottom:8px;
    top:auto;
    transform:translateX(-50%);
    display:flex;
    gap:5px;
    max-width:calc(100vw - 18px);
    padding:6px 7px;
  }
  .route-progress a{
    flex:0 0 auto;
    width:26px;
    height:26px;
    font-size:.5rem;
  }

  .home-opening,.approach-opening{
    min-height:82svh;
    padding:64px 16px 62px;
  }
  .opening-folio{
    margin-bottom:22px;
    font-size:.68rem;
  }
  .approach-opening{gap:66px}
  .approach-index{
    grid-template-columns:1fr 1fr;
    gap:4px 15px;
    padding-top:18px;
  }
  .approach-index>p{font-size:.66rem}
  .approach-index a{
    grid-template-columns:26px minmax(0,1fr);
    gap:7px;
    min-height:45px;
    padding:10px 0;
    font-size:.68rem;
    line-height:1.38;
  }
  .approach-index a span{font-size:.59rem}

  .folio{font-size:.64rem}
  .figure-heading{
    padding:12px 13px;
    font-size:.6rem;
  }
  .evidence-figure figcaption{
    padding:13px;
    font-size:.69rem;
  }

  .analysis-field .evidence-figure{overflow:hidden}

  .route-conditions,
  .unknown-field .evidence-figure{width:100%}
  .continuity-register p{font-size:.82rem}

  .site-footer{
    min-height:0;
    padding:30px 16px 34px;
    font-size:.68rem;
  }
  .site-footer strong{font-size:.66rem}

  .ask-heading{display:block!important}
  .ask-brand{font-size:.68rem;margin-bottom:7px}
  .ask-heading h2{font-size:2.15rem}
  .ask-close{font-size:.66rem}
  .ask-warning p,.suggested-questions button{font-size:.76rem}
  .ask-panel__footer{font-size:.67rem}
}

@media(max-width:410px){
  .approach-index{grid-template-columns:1fr}
  .approach-index>p{grid-column:1}
  .route-progress{gap:4px;padding-inline:5px}
  .route-progress a{width:25px;height:25px}
}

/* --------------------------------------------------------------------------
   11. V4 approved-copy integration
   Exact authorised glyphs and a reusable two-part qualification role.
   -------------------------------------------------------------------------- */
.suggested-questions button{padding-right:0}
.suggested-questions button::after{content:none}

.evidence-figure--two-part-caption figcaption{
  grid-template-columns:minmax(0,1.55fr) minmax(16rem,.65fr);
  gap:clamp(24px,3vw,46px);
  align-items:start;
  font-size:.83rem;
  line-height:1.55;
}
.evidence-figure--two-part-caption figcaption>p{margin:0}

@media(max-width:860px){
  .evidence-figure--two-part-caption figcaption{
    grid-template-columns:1fr;
    gap:8px;
  }
}

@media(max-width:640px){
  .evidence-figure--two-part-caption figcaption{
    padding:14px 13px;
    font-size:.74rem;
    line-height:1.58;
  }
}

/* Intermediate-width safety reserve: retain the vertical route-state device
   without allowing it to sit over the opening chapter index. */
@media(min-width:641px) and (max-width:1180px){
  .approach-index{width:calc(100% - 52px)}
}

/* --------------------------------------------------------------------------
   12. Consolidated dark-theme colour, evidence and material pass
   Owner authority: two editorial fields, native evidence family, terminal
   depth, and the Approach-only river host transition. Light mode is untouched.
   -------------------------------------------------------------------------- */
html[data-theme="dark"] body,
html[data-theme="dark"] main{
  background:var(--tc-dark-canvas);
}

/* Ordinary dark sections, records, registers and interface surfaces remain
   on one continuous editorial canvas. Token remapping supplies the same field;
   these explicit hooks prevent legacy gradients from retaining band edges. */
html[data-theme="dark"] .home-decision,
html[data-theme="dark"] .home-route-gate,
html[data-theme="dark"] .analysis-field{
  background:var(--tc-dark-canvas);
}

html[data-theme="dark"] .home-path,
html[data-theme="dark"] .executable-field,
html[data-theme="dark"] .home-choice,
html[data-theme="dark"] .unknown-field,
html[data-theme="dark"] .calibration-field,
html[data-theme="dark"] .continuity-field,
html[data-theme="dark"] .argument-movement,
html[data-theme="dark"] .approach-opening,
html[data-theme="dark"] .home-opening{
  background-color:var(--tc-dark-canvas);
}

html[data-theme="dark"] .principal-record,
html[data-theme="dark"] .decision-pair article,
html[data-theme="dark"] .continuity-register,
html[data-theme="dark"] .continuity-register li,
html[data-theme="dark"] .ask-panel,
html[data-theme="dark"] .mobile-nav{
  background-color:var(--tc-dark-canvas);
}

/* Points 1–5 completion: apply the approved ink family by editorial role.
   These selectors only assign colour; typography, measure and composition are
   unchanged. The independently approved river section remains untouched. */
html[data-theme="dark"] .home-opening h1,
html[data-theme="dark"] .approach-opening h1,
html[data-theme="dark"] .home-decision h2,
html[data-theme="dark"] .home-path h2,
html[data-theme="dark"] .home-choice h2,
html[data-theme="dark"] .home-route-gate h2,
html[data-theme="dark"] .home-contact h2,
html[data-theme="dark"] .argument-heading h2,
html[data-theme="dark"] .calibration-grid h2,
html[data-theme="dark"] .continuity-field h2,
html[data-theme="dark"] .approach-close h2,
html[data-theme="dark"] .principal-record h3,
html[data-theme="dark"] .home-contact__brief h3,
html[data-theme="dark"] .seat-record h3,
html[data-theme="dark"] .continuity-register h3,
html[data-theme="dark"] .ask-heading h2,
html[data-theme="dark"] .state-message h3{
  color:var(--tc-dark-ink-display);
}

html[data-theme="dark"] .home-decision__support,
html[data-theme="dark"] .home-choice__head>p,
html[data-theme="dark"] .home-contact__copy>p:not(.folio),
html[data-theme="dark"] .argument-heading__support,
html[data-theme="dark"] .seat-record>p:not(.eyebrow),
html[data-theme="dark"] .continuity-field>header>div:last-child{
  color:var(--tc-dark-ink-secondary);
}

html[data-theme="dark"] .home-decision__support p:last-child,
html[data-theme="dark"] .argument-heading__support .takeaway{
  color:var(--tc-dark-ink-primary);
}

html[data-theme="dark"] .decision-pair h3,
html[data-theme="dark"] .calibration-field .eyebrow,
html[data-theme="dark"] .ask-brand{
  color:var(--tc-dark-ink-metadata);
}

/* Figure chrome belongs to the publication; only the active graph field drops
   into the evidence background. */
html[data-theme="dark"] .evidence-figure{
  background:transparent;
  color:var(--tc-dark-ink-primary);
  box-shadow:none;
}
html[data-theme="dark"] .figure-heading{
  color:var(--tc-dark-ink-metadata);
  border-color:var(--tc-dark-line-subtle);
}
html[data-theme="dark"] .figure-heading span:first-child{
  color:var(--tc-dark-ink-primary);
}
html[data-theme="dark"] .evidence-figure figcaption{
  color:var(--tc-dark-ink-secondary);
  border-color:var(--tc-dark-line-subtle);
}
html[data-theme="dark"] .evidence-figure figcaption strong{
  color:var(--tc-dark-ink-primary);
}

/* Canonical Prototype A Decision Window and Residual Range. */
html[data-theme="dark"] .canonical-graph>.diagram-desktop,
html[data-theme="dark"] .canonical-graph>.diagram-mobile{
  background:var(--tc-canonical-graph-bg);
  box-shadow:var(--tc-shadow-elevated);
}
html[data-theme="dark"] .canonical-graph svg .evidence-field,
html[data-theme="dark"] .canonical-graph svg .range-field{
  fill:var(--tc-canonical-graph-field);
  stroke:var(--tc-canonical-graph-boundary);
}
html[data-theme="dark"] .canonical-graph svg .route-field{
  fill:var(--tc-canonical-graph-route);
  stroke:var(--tc-canonical-graph-boundary);
}
html[data-theme="dark"] .canonical-graph svg .axis,
html[data-theme="dark"] .canonical-graph svg .top-guide,
html[data-theme="dark"] .canonical-graph svg .role-rule{
  stroke:var(--tc-canonical-graph-boundary);
}
html[data-theme="dark"] .canonical-graph svg .commit,
html[data-theme="dark"] .canonical-graph svg .route{
  stroke:var(--tc-canonical-graph-functional);
}
html[data-theme="dark"] .canonical-graph svg circle,
html[data-theme="dark"] .canonical-graph svg marker path{
  fill:var(--tc-canonical-graph-marker);
}
html[data-theme="dark"] .canonical-graph svg text{
  fill:var(--tc-canonical-graph-text);
}
html[data-theme="dark"] .canonical-graph>.diagram-mobile{
  color:var(--tc-dark-ink-secondary);
}
html[data-theme="dark"] .canonical-graph>.diagram-mobile li{
  border-left-color:var(--tc-canonical-graph-functional);
  border-bottom-color:var(--tc-canonical-graph-boundary);
}
html[data-theme="dark"] .canonical-graph>.diagram-mobile li::before{
  background:var(--tc-canonical-graph-marker);
}
html[data-theme="dark"] .canonical-graph>.diagram-mobile strong{
  color:var(--tc-canonical-graph-text);
}

/* Proposition Sequence. */
html[data-theme="dark"] .dependency-sequence{
  border-color:var(--tc-evidence-surface);
}
html[data-theme="dark"] .dependency-sequence::before{
  border-color:var(--tc-evidence-glint);
}

/* Route / Position / Options. */
html[data-theme="dark"] .route-conditions{
  background:var(--tc-evidence-background);
  color:var(--tc-evidence-glint);
  box-shadow:var(--tc-shadow-elevated);
}
html[data-theme="dark"] .route-condition{
  border-color:var(--tc-evidence-surface);
}
html[data-theme="dark"] .route-condition--route{
  background:var(--tc-evidence-foundation);
}
html[data-theme="dark"] .route-condition--decision::before{
  border-color:var(--tc-evidence-surface);
}
html[data-theme="dark"] .route-condition--decision::after{
  border-left-color:var(--tc-evidence-glint);
}
html[data-theme="dark"] .route-condition__labels{
  color:var(--tc-dark-ink-metadata);
}
html[data-theme="dark"] .route-condition--decision>p:last-child{
  color:var(--tc-dark-ink-secondary);
}

/* Different Duties with a Shared Unknown. */
html[data-theme="dark"] .duties-comparison{
  background:var(--tc-evidence-background);
  box-shadow:var(--tc-shadow-elevated);
}
html[data-theme="dark"] .duties-decision span{
  color:var(--tc-evidence-glint);
  border-color:var(--tc-evidence-surface);
}
html[data-theme="dark"] .shared-unknown{
  background:var(--tc-evidence-depth);
  border-color:var(--tc-evidence-surface);
}
html[data-theme="dark"] .shared-unknown p{
  color:var(--tc-dark-ink-secondary);
}
html[data-theme="dark"] .shared-unknown p:first-child{
  color:var(--tc-evidence-glint);
}

/* Terminal closing field: the final movement descends into the same opaque
   depth field that continues through the footer. */
html[data-theme="dark"] .home-contact,
html[data-theme="dark"] .approach-close{
  background:linear-gradient(
    180deg,
    var(--tc-dark-canvas) 0%,
    var(--tc-dark-canvas) 10%,
    var(--tc-dark-depth-field) 78%,
    var(--tc-dark-depth-field) 100%
  );
}
html[data-theme="dark"] .site-footer{
  background:var(--tc-dark-depth-field);
  border-top-color:transparent;
}

/* Approach-only river host field. This is the sole authorised river-adjacent
   change: it does not alter either canvas or the renderer. The stage veil sits
   behind the foreground copy and grades the opaque Ideal canvas into the main
   publication field at the threshold edges. */
html[data-theme="dark"] body[data-page="approach"] .river-threshold{
  background:linear-gradient(
    180deg,
    var(--tc-dark-canvas) 0%,
    var(--tc-dark-depth-field) 26%,
    var(--tc-dark-depth-field) 74%,
    var(--tc-dark-canvas) 100%
  );
}
html[data-theme="dark"] body[data-page="approach"] .river-artwork__veil{
  background:
    linear-gradient(
      90deg,
      rgba(5,15,18,.98) 0 25%,
      rgba(5,15,18,.78) 44%,
      transparent 72%
    ),
    linear-gradient(
      180deg,
      var(--tc-dark-canvas) 0%,
      rgba(11,21,26,.84) 10%,
      transparent 28% 72%,
      rgba(11,21,26,.84) 90%,
      var(--tc-dark-canvas) 100%
    );
}

@media(max-width:640px){
  html[data-theme="dark"] .route-condition--decision::after{
    border-left-color:transparent;
    border-right-color:transparent;
    border-top-color:var(--tc-evidence-glint);
  }
  html[data-theme="dark"] body[data-page="approach"] .river-artwork__veil{
    background:linear-gradient(
      180deg,
      var(--tc-dark-canvas) 0%,
      rgba(11,21,26,.92) 14%,
      transparent 34% 68%,
      rgba(11,21,26,.84) 88%,
      var(--tc-dark-canvas) 100%
    );
  }
}

/* --------------------------------------------------------------------------
   Final Ask-panel direction: a neutral functional layer that inherits the
   website system without borrowing the editorial page language.
   -------------------------------------------------------------------------- */
.ask-backdrop{
  backdrop-filter:none;
}

.ask-panel{
  font-family:var(--font-body);
  box-shadow:none;
}

.ask-panel h2,
.ask-panel h3{
  font-family:var(--font-body);
  font-weight:600;
  letter-spacing:normal;
}

.ask-panel .ask-brand{
  font-family:var(--font-wordmark);
}

.ask-panel .ask-heading h2{
  font-family:var(--font-body);
  font-size:var(--type-lead);
  font-weight:600;
  letter-spacing:normal;
  line-height:1.3;
}

.ask-panel .ask-intro{
  max-width:var(--measure-body);
  margin-bottom:30px;
  font-family:var(--font-body);
  font-size:var(--type-body);
  line-height:1.58;
}

.ask-panel h3{
  font-size:var(--type-body);
  line-height:1.4;
}

.ask-panel .state-message h3{
  max-width:24ch;
  margin-bottom:14px;
  font-size:var(--type-lead);
  line-height:1.3;
}

.ask-panel .state-message p,
.ask-panel .ask-warning p,
.ask-panel .suggested-questions button,
.ask-panel .note-assist li,
.ask-panel .human-handoff__links a{
  font-family:var(--font-body);
  font-size:var(--type-body);
  line-height:1.58;
}

.ask-panel .ask-direct,
.ask-panel .ask-close,
.ask-panel .prompts-title,
.ask-panel .ask-form label,
.ask-panel .ask-warning strong,
.ask-panel .ask-panel__footer,
.ask-panel .ask-legal,
.ask-panel .ask-form__error{
  font-family:var(--font-body);
  font-size:var(--type-label);
}

.ask-panel__header{
  border-bottom:0;
}

.ask-panel .ask-warning,
.ask-panel .ask-form,
.ask-panel .ask-companion,
.ask-panel .note-assist ol,
.ask-panel .human-handoff__links,
.ask-panel .suggested-questions{
  border:0;
}

.ask-panel .ask-warning{
  margin-bottom:32px;
  padding:0;
}

.ask-panel .ask-state--initial{
  padding-top:0;
}

.ask-panel .prompts-block{
  margin-bottom:34px;
  padding-bottom:0;
}

.ask-panel .suggested-questions{
  gap:12px 18px;
}

.ask-panel .suggested-questions button{
  min-height:0;
  padding:5px 0;
  border:0;
}

.ask-panel .suggested-questions button::after{
  content:none;
}

.ask-panel .ask-form{
  padding:0;
}

.ask-panel .ask-form textarea{
  border:1px solid var(--line-strong);
  border-radius:0;
  background:transparent;
}

.ask-panel .ask-form textarea:focus{
  border-color:var(--ink);
  background:transparent;
}

.ask-panel button,
.ask-panel textarea{
  border-radius:0;
}

.ask-panel .ask-companion{
  grid-template-columns:1fr;
  gap:30px;
  margin-top:38px;
  padding-top:0;
}

.ask-panel .note-assist h3,
.ask-panel .human-handoff h3{
  margin-bottom:12px;
  font-size:var(--type-body);
  line-height:1.4;
}

.ask-panel .note-assist ol{
  display:grid;
  gap:5px;
}

.ask-panel .note-assist li{
  display:block;
  padding:2px 0;
  border:0;
}

.ask-panel .note-assist li span{
  display:none;
}

.ask-panel .human-handoff{
  padding-top:24px;
  border-top:1px solid var(--line);
}

.ask-panel .human-handoff__links{
  gap:9px;
}

.ask-panel .human-handoff__links a{
  width:fit-content;
  padding:0 0 .2em;
  border:0;
  border-bottom:1px solid currentColor;
}

.ask-panel .ask-panel__route{
  display:none;
}

.ask-panel[data-ask-state="unavailable"] .ask-state--unavailable{
  padding-top:0;
}

/* The mark occupies no horizontal space until the existing JavaScript places
   it in the thinking or settling state. */
.ask-panel .ask-submit{
  gap:0;
}

.ask-panel .ask-submit .tc-thinking-icon{
  inline-size:0;
  min-inline-size:0;
  width:0;
  min-width:0;
  flex:0 0 0;
  opacity:0;
  margin:0;
  overflow:hidden;
  transition:inline-size .18s ease,opacity .18s ease,margin .18s ease;
}

.ask-panel .ask-submit .tc-thinking-icon[data-state="thinking"],
.ask-panel .ask-submit .tc-thinking-icon[data-state="settling"]{
  inline-size:var(--tc-thinking-size);
  min-inline-size:var(--tc-thinking-size);
  width:var(--tc-thinking-size);
  min-width:var(--tc-thinking-size);
  flex-basis:var(--tc-thinking-size);
  opacity:1;
  margin-right:8px;
}

@media(max-width:640px){
  .ask-panel .ask-intro{
    margin-bottom:26px;
  }

  .ask-panel .ask-warning{
    margin-bottom:28px;
  }

  .ask-panel .prompts-block{
    margin-bottom:30px;
  }
}

/* --------------------------------------------------------------------------
   Ask panel compact workspace: the thread is the only scrolling region; the
   composer is a persistent functional row. Secondary prompts are disclosed
   only when requested, and duplicated page content is omitted from the panel.
   -------------------------------------------------------------------------- */
.ask-panel{
  width:min(460px,100vw);
  grid-template-rows:auto minmax(0,1fr) auto auto;
}

.ask-panel__header{
  gap:20px;
  padding:20px 24px 18px;
}

.ask-panel .ask-close{
  min-height:38px;
  padding:0 10px;
  border:1px solid var(--line-strong);
  line-height:1;
}

.ask-panel .ask-scroll{
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
}

.ask-panel .ask-body{
  min-height:100%;
  padding:24px;
}

.ask-panel .ask-intro{
  max-width:none;
  margin-bottom:24px;
}

.ask-panel .ask-warning{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:6px;
  margin-bottom:24px;
}

.ask-panel .ask-warning strong{
  letter-spacing:var(--tracking-label);
  line-height:1.35;
  text-transform:uppercase;
}

.ask-panel .ask-state--initial{
  min-height:0;
}

.ask-panel .ask-prompts{
  border-top:1px solid var(--line);
}

.ask-panel .ask-prompts summary{
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  list-style:none;
  cursor:pointer;
  font-family:var(--font-body);
  font-size:var(--type-label);
  font-weight:500;
  letter-spacing:var(--tracking-label);
  line-height:1.35;
  text-transform:uppercase;
  color:var(--ink-faint);
}

.ask-panel .ask-prompts summary::-webkit-details-marker{
  display:none;
}

.ask-panel .ask-prompts__indicator{
  position:relative;
  width:11px;
  height:11px;
  flex:0 0 11px;
  color:var(--ink-soft);
}

.ask-panel .ask-prompts__indicator::before,
.ask-panel .ask-prompts__indicator::after{
  content:"";
  position:absolute;
  background:currentColor;
}

.ask-panel .ask-prompts__indicator::before{
  left:0;
  top:5px;
  width:11px;
  height:1px;
}

.ask-panel .ask-prompts__indicator::after{
  left:5px;
  top:0;
  width:1px;
  height:11px;
}

.ask-panel .ask-prompts[open] .ask-prompts__indicator::after{
  opacity:0;
}

.ask-panel .ask-prompts .suggested-questions{
  grid-template-columns:1fr 1fr;
  gap:6px 18px;
  padding:4px 0 12px;
}

.ask-panel .ask-prompts .suggested-questions button{
  min-height:40px;
  padding:7px 0;
  font-size:var(--type-body);
  line-height:1.4;
}

.ask-panel .ask-thread{
  min-width:0;
  display:grid;
  gap:24px;
  overflow-wrap:anywhere;
}

.ask-panel .ask-thread:not(:empty){
  padding-top:28px;
}

.ask-panel .ask-turn{
  display:grid;
  gap:6px;
}

.ask-panel .ask-turn__role{
  font-family:var(--font-body);
  font-size:var(--type-label);
  font-weight:500;
  letter-spacing:var(--tracking-label);
  line-height:1.35;
  text-transform:uppercase;
  color:var(--ink-faint);
}

.ask-panel .ask-turn p{
  margin:0;
  font-family:var(--font-body);
  font-size:var(--type-body);
  line-height:1.58;
  color:var(--ink);
}

.ask-panel .ask-turn[data-pending="true"] .ask-turn__text{
  color:var(--ink-soft);
}

.ask-panel .ask-note,
.ask-panel .ask-handoff,
.ask-panel .ask-related{
  display:grid;
  gap:8px;
  margin-top:12px;
}

.ask-panel .ask-note__label,
.ask-panel .ask-handoff__label,
.ask-panel .ask-related__label{
  font-family:var(--font-body);
  font-size:var(--type-label);
  font-weight:500;
  letter-spacing:var(--tracking-label);
  line-height:1.35;
  text-transform:uppercase;
  color:var(--ink-faint);
}

.ask-panel .ask-note__text{
  margin:0;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  font:inherit;
  font-family:var(--font-body);
  font-size:var(--type-body);
  line-height:1.58;
  color:var(--ink);
}

.ask-panel .ask-note__action,
.ask-panel .ask-retry-action{
  justify-self:start;
  width:fit-content;
  min-height:34px;
  padding:2px 0;
  border-bottom:1px solid currentColor;
  font-family:var(--font-body);
  font-size:var(--type-label);
  color:var(--ink-soft);
}

.ask-panel .ask-note__action:hover,
.ask-panel .ask-retry-action:hover{
  color:var(--ink);
}

.ask-panel .ask-handoff__contacts{
  display:grid;
  gap:12px;
}

.ask-panel .ask-handoff__principal{
  display:grid;
  gap:2px;
  font-family:var(--font-body);
  font-size:var(--type-body);
  line-height:1.45;
}

.ask-panel .ask-handoff__principal strong{
  font-weight:600;
}

.ask-panel .ask-handoff__principal a,
.ask-panel .ask-related__links a{
  width:fit-content;
  color:var(--ink-soft);
}

.ask-panel .ask-handoff__principal a:hover,
.ask-panel .ask-related__links a:hover{
  color:var(--ink);
}

.ask-panel .ask-related__links{
  display:grid;
  gap:5px;
  font-family:var(--font-body);
  font-size:var(--type-body);
  line-height:1.45;
}

.ask-panel[data-ask-engaged="true"] .ask-intro,
.ask-panel[data-ask-engaged="true"] .ask-warning,
.ask-panel[data-ask-engaged="true"] .ask-prompts{
  display:none;
}

.ask-panel .ask-form{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:8px;
  margin:0;
  padding:16px 24px 18px;
  border:0;
  border-top:1px solid var(--line);
  background:var(--page-raised);
}

.ask-panel .ask-form label,
.ask-panel .ask-input-wrap,
.ask-panel .ask-form__error,
.ask-panel .ask-legal{
  grid-column:1;
}

.ask-panel .ask-form label{
  line-height:1.35;
  letter-spacing:var(--tracking-label);
  text-transform:uppercase;
  color:var(--ink-faint);
}

.ask-panel .ask-form textarea{
  min-height:128px;
  max-height:180px;
  resize:vertical;
  padding:14px 14px 44px;
  line-height:1.58;
}

.ask-panel .ask-form__error{
  min-height:0;
  line-height:1.4;
}

.ask-panel .ask-form__error:empty{
  display:none;
}

.ask-panel .ask-legal{
  max-width:none;
  line-height:1.48;
}

.ask-panel .ask-submit{
  right:10px;
  bottom:9px;
  min-height:34px;
}

.ask-panel[data-ask-state="unavailable"] .ask-form{
  display:none;
}

.ask-panel .ask-panel__footer{
  justify-content:flex-start;
  min-height:40px;
  padding:9px 24px;
}

@media(max-width:640px){
  .ask-panel{
    width:100%;
  }

  .ask-panel__header{
    padding:16px;
  }

  .ask-panel .ask-body{
    padding:20px 16px;
  }

  .ask-panel .ask-form{
    padding:14px 16px 16px;
  }

  .ask-panel .ask-form textarea{
    min-height:104px;
    max-height:144px;
  }

  .ask-panel .ask-panel__footer{
    padding:8px 16px;
  }
}

@media(max-width:360px){
  .ask-panel .ask-prompts .suggested-questions{
    grid-template-columns:1fr;
  }
}

@media(max-height:620px){
  .ask-panel__header{
    padding-block:13px;
  }

  .ask-panel .ask-body{
    padding-block:18px;
  }

  .ask-panel .ask-form{
    padding-block:12px 13px;
  }

  .ask-panel .ask-form textarea{
    min-height:92px;
    max-height:124px;
  }
}

/* The dark Ask workspace is functional, not editorial: it uses the main dark
   canvas explicitly and the cooler secondary/metadata inks rather than the
   warm display and primary editorial inks. */
html[data-theme="dark"] .ask-panel,
html[data-theme="dark"] .ask-panel .ask-form{
  background:var(--tc-dark-canvas);
}

html[data-theme="dark"] .ask-panel{
  color:var(--tc-dark-ink-secondary);
}

html[data-theme="dark"] .ask-panel h2,
html[data-theme="dark"] .ask-panel h3,
html[data-theme="dark"] .ask-panel .ask-intro,
html[data-theme="dark"] .ask-panel .ask-warning p,
html[data-theme="dark"] .ask-panel .suggested-questions button,
html[data-theme="dark"] .ask-panel .ask-turn p,
html[data-theme="dark"] .ask-panel .state-message p,
html[data-theme="dark"] .ask-panel textarea,
html[data-theme="dark"] .ask-panel .ask-close,
html[data-theme="dark"] .ask-panel .ask-submit{
  color:var(--tc-dark-ink-secondary);
}

html[data-theme="dark"] .ask-panel .ask-brand,
html[data-theme="dark"] .ask-panel .ask-direct,
html[data-theme="dark"] .ask-panel .ask-warning strong,
html[data-theme="dark"] .ask-panel .ask-prompts summary,
html[data-theme="dark"] .ask-panel .ask-form label,
html[data-theme="dark"] .ask-panel .ask-form__error,
html[data-theme="dark"] .ask-panel .ask-legal,
html[data-theme="dark"] .ask-panel .ask-panel__footer,
html[data-theme="dark"] .ask-panel .ask-turn__role{
  color:var(--tc-dark-ink-metadata);
}

html[data-theme="dark"] .ask-panel .ask-form textarea:focus{
  border-color:var(--tc-dark-support);
}

html[data-theme="dark"] .ask-panel .ask-submit:hover{
  background:var(--tc-dark-ink-secondary);
  border-color:var(--tc-dark-ink-secondary);
  color:var(--tc-dark-canvas);
}

/* --------------------------------------------------------------------------
   Owner correction: ordinary dark canvas

   Ordinary publication and interface surfaces use the approved main canvas.
   The separate depth field remains reserved for the river, terminal closing
   movement and footer rules below.
   -------------------------------------------------------------------------- */
html[data-theme="dark"]{
  --tc-color-canvas:var(--tc-dark-canvas);
  --tc-color-surface-raised:var(--tc-dark-canvas);
  --tc-color-surface-muted:var(--tc-dark-canvas);
  --tc-color-surface-deep:var(--tc-dark-canvas);
  --tc-color-surface-record:var(--tc-dark-canvas);
  --tc-color-focus-halo:var(--tc-dark-canvas);
  --tc-color-corridor-bg:var(--tc-dark-canvas);
  --tc-color-header-bg:var(--tc-dark-canvas);
}

html[data-theme="dark"] body,
html[data-theme="dark"] main,
html[data-theme="dark"] .home-opening,
html[data-theme="dark"] .home-decision,
html[data-theme="dark"] .home-path,
html[data-theme="dark"] .home-choice,
html[data-theme="dark"] .home-route-gate,
html[data-theme="dark"] .approach-opening,
html[data-theme="dark"] .argument-movement,
html[data-theme="dark"] .analysis-field,
html[data-theme="dark"] .executable-field,
html[data-theme="dark"] .unknown-field,
html[data-theme="dark"] .calibration-field,
html[data-theme="dark"] .continuity-field,
html[data-theme="dark"] .principal-record,
html[data-theme="dark"] .decision-pair article,
html[data-theme="dark"] .continuity-register,
html[data-theme="dark"] .continuity-register li,
html[data-theme="dark"] .mobile-nav,
html[data-theme="dark"] .ask-panel,
html[data-theme="dark"] .ask-panel .ask-form{
  background:var(--tc-dark-canvas);
}

html[data-theme="dark"] .ask-panel .ask-submit:hover{
  color:var(--tc-dark-canvas);
}

/* --------------------------------------------------------------------------
   Owner correction: Ask-panel prompt visibility and functional type hierarchy

   Suggested questions are a permanent part of the initial workspace rather
   than a disclosure. Panel typography now follows the website's established
   brand, lead, body, support, label, control and footer scales by role.
   -------------------------------------------------------------------------- */
.ask-panel .ask-brand{
  font-size:.76rem;
  line-height:1;
  white-space:nowrap;
}

.ask-panel .ask-heading h2{
  font-size:var(--type-lead);
  font-weight:600;
  line-height:1.3;
}

.ask-panel .ask-direct{
  font-size:.72rem;
  line-height:1.58;
}

.ask-panel .ask-close{
  font-size:.68rem;
  font-weight:500;
  letter-spacing:.06em;
  line-height:1;
}

.ask-panel .ask-intro,
.ask-panel .ask-turn p,
.ask-panel .state-message p{
  font-size:var(--type-body);
  font-weight:400;
  line-height:1.58;
}

.ask-panel .ask-warning strong,
.ask-panel .ask-prompts__label,
.ask-panel .ask-form label,
.ask-panel .ask-turn__role{
  font-size:.67rem;
  font-weight:500;
  letter-spacing:var(--tracking-label);
  line-height:1.35;
  text-transform:uppercase;
}

.ask-panel .ask-warning strong{
  font-weight:600;
}

.ask-panel .ask-warning p{
  font-size:.76rem;
  font-weight:400;
  line-height:1.55;
}

.ask-panel .ask-prompts{
  border-top:0;
}

.ask-panel .ask-prompts__label{
  margin:0 0 5px;
  color:var(--ink-faint);
}

.ask-panel .ask-prompts .suggested-questions{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:2px 18px;
  padding:0 0 12px;
}

.ask-panel .ask-prompts .suggested-questions button{
  min-width:0;
  min-height:34px;
  padding:7px 0;
  font-size:.78rem;
  font-weight:400;
  line-height:1.35;
  white-space:nowrap;
}

.ask-panel .ask-form label{
  font-size:.67rem;
}

.ask-panel .ask-form textarea{
  font-size:var(--type-body);
  font-weight:400;
  line-height:1.5;
}

.ask-panel .ask-submit{
  font-size:.68rem;
  font-weight:600;
  letter-spacing:.05em;
  line-height:1;
}

.ask-panel .ask-form__error{
  font-size:.7rem;
  font-weight:500;
  line-height:1.4;
}

.ask-panel .ask-legal{
  font-size:.68rem;
  font-weight:400;
  line-height:1.5;
}

.ask-panel .ask-panel__footer{
  font-size:.65rem;
  font-weight:400;
  line-height:1.55;
}

@media(max-width:640px){
  .ask-panel .ask-brand{
    font-size:.66rem;
  }

  .ask-panel .ask-prompts .suggested-questions button{
    font-size:.74rem;
  }
}

@media(max-width:360px){
  .ask-panel .ask-prompts .suggested-questions{
    grid-template-columns:minmax(0,1fr);
    gap:0;
  }
}

/* --------------------------------------------------------------------------
   Authorised structural corrections

   Prototype A supplies only the six layout relationships below. Existing
   colour, typography, graph, river, Ask and mobile rules remain unchanged.
   -------------------------------------------------------------------------- */
@media(min-width:721px){
  .site-header{
    position:absolute;
    grid-template-columns:1fr auto auto;
  }

  .route-progress{
    position:absolute;
    top:50vh;
  }

  .home-path{
    min-height:1050px;
    padding-block:130px;
  }

  .home-path::before{
    top:43%;
    height:240px;
  }

  .home-path__intro{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    align-items:end;
  }

  .principal-route{
    grid-template-columns:repeat(12,minmax(0,1fr));
    min-height:720px;
  }

  .principal-record:nth-child(1){
    grid-column:1/5;
    align-self:start;
  }

  .principal-record:nth-child(2){
    grid-column:5/9;
    align-self:center;
    margin-top:0;
  }

  .principal-record:nth-child(3){
    grid-column:9/13;
    align-self:end;
    margin-top:0;
  }

  .home-decision .evidence-figure{
    margin-inline:auto;
  }
}

/* Keep the accepted desktop page composition through tablet widths without
   altering the Ask-panel or protected river breakpoints. */
@media(min-width:721px) and (max-width:860px){
  :root{
    --header-h:64px;
    --route-gutter:clamp(42px,5.5vw,70px);
  }

  .site-header{
    grid-template-columns:1fr auto auto;
    gap:28px;
    padding-inline:var(--gutter);
  }

  .primary-nav{display:flex}
  .theme-toggle{display:block}
  .menu-toggle,
  .mobile-nav{display:none}

  .home-opening{
    grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);
    align-items:end;
    gap:6vw;
    padding-top:calc(var(--header-h) + 78px);
  }

  .approach-opening{
    grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);
    align-items:end;
    gap:6vw;
    padding-top:calc(var(--header-h) + 72px);
  }

  .home-opening::after{
    left:46%;
    top:0;
    bottom:0;
  }

  .opening-position{margin-left:0}
  .approach-opening .opening-title,
  .approach-index{align-self:end}
  .approach-index{max-width:none}

  .home-decision__copy{
    grid-template-columns:minmax(0,.72fr) minmax(340px,1.28fr);
    gap:6vw;
  }

  .home-route-gate__inner{
    grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);
    gap:9vw;
  }

  .home-contact{
    grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);
    gap:9vw;
  }

  .argument-heading{
    grid-template-columns:minmax(0,.85fr) minmax(320px,1.15fr);
    gap:6vw;
  }

  .calibration-grid{
    grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);
    gap:9vw;
  }

  .continuity-field>header{
    grid-template-columns:minmax(0,1fr) minmax(320px,1fr);
    gap:9vw;
  }

  .approach-close{
    grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr);
    gap:9vw;
  }

  .home-decision__support,
  .argument-heading__support{padding-top:44px}

  .home-decision{
    min-height:1080px;
    padding-block:122px 154px;
  }

  .dependency-sequence{margin-top:114px}
  .home-choice__head{margin-bottom:88px}

  .home-contact::before{
    left:50%;
    top:0;
    bottom:0;
  }

  .home-contact__copy,
  .home-contact__brief{padding-left:0}

  .decision-pair{
    grid-template-columns:minmax(0,1fr) 128px minmax(0,1fr);
  }

  .analysis-field{padding-inline:clamp(22px,5.2vw,86px)}

  .route-conditions{
    grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr);
  }

  .continuity-register{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .continuity-register li{
    min-height:360px;
    padding:28px;
    border-right:1px solid var(--line);
    border-bottom:0;
  }

  .continuity-register li:last-child{border-right:0}
  .continuity-register h3{margin:48px 0 28px}

  .site-footer{
    grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr) minmax(0,.8fr);
  }

  .site-footer p:last-child{grid-column:auto}

  .analysis-field .evidence-figure{
    width:min(100%,1260px);
    max-width:1260px;
  }

  .route-conditions{
    width:min(94%,100%);
    max-width:1100px;
  }

  .unknown-field .evidence-figure{
    width:min(94%,100%);
    max-width:1180px;
  }

  .evidence-figure--two-part-caption figcaption{
    grid-template-columns:minmax(0,1.55fr) minmax(16rem,.65fr);
    gap:clamp(24px,3vw,46px);
  }
}

@media(max-width:410px){
  .approach-index{grid-template-columns:1fr 1fr}
  .approach-index>p{grid-column:1/-1}
}

/* --------------------------------------------------------------------------
   Historical dark-field transition restoration

   The reference treatment enlarged the river environment vertically and let
   its edge field pass behind the neighbouring sections. The two independent
   masks below preserve that construction without relying on overlapping mask
   stops at short landscape heights. The river stage, canvases and renderer
   remain clipped and unchanged inside their existing host.
   -------------------------------------------------------------------------- */
html[data-theme="dark"] body{
  --tc-river-band-bleed:clamp(440px,44vw,720px);
  --tc-river-band-solid-overlap:clamp(110px,10vw,180px);
  --tc-river-band-artwork-fade:clamp(140px,12vw,220px);
  --tc-river-band-stage-height:min(110svh,1120px);
  --tc-closing-depth-fade:clamp(280px,30vw,480px);
}

html[data-theme="dark"] body[data-page="approach"] .river-threshold{
  position:relative;
  z-index:1;
  isolation:isolate;
  overflow:visible;
  min-height:var(--tc-river-band-stage-height);
  background:linear-gradient(
    to bottom,
    var(--tc-dark-canvas) 0%,
    var(--tc-dark-depth-field) 27%,
    var(--tc-dark-depth-field) 73%,
    var(--tc-dark-canvas) 100%
  );
}

html[data-theme="dark"] body[data-page="approach"] .river-threshold::before,
html[data-theme="dark"] body[data-page="approach"] .river-threshold::after{
  position:absolute;
  z-index:2;
  right:0;
  left:0;
  height:calc(
    var(--tc-river-band-bleed) +
    var(--tc-river-band-solid-overlap) +
    var(--tc-river-band-artwork-fade)
  );
  background:var(--tc-dark-canvas);
  pointer-events:none;
  content:"";
}

html[data-theme="dark"] body[data-page="approach"] .river-threshold::before{
  top:calc(-1 * var(--tc-river-band-bleed));
  -webkit-mask-image:linear-gradient(
    to bottom,
    transparent 0,
    #000 calc(var(--tc-river-band-bleed) - var(--tc-river-band-solid-overlap)),
    #000 calc(var(--tc-river-band-bleed) + var(--tc-river-band-solid-overlap)),
    transparent 100%
  );
  mask-image:linear-gradient(
    to bottom,
    transparent 0,
    #000 calc(var(--tc-river-band-bleed) - var(--tc-river-band-solid-overlap)),
    #000 calc(var(--tc-river-band-bleed) + var(--tc-river-band-solid-overlap)),
    transparent 100%
  );
}

html[data-theme="dark"] body[data-page="approach"] .river-threshold::after{
  bottom:calc(-1 * var(--tc-river-band-bleed));
  -webkit-mask-image:linear-gradient(
    to bottom,
    transparent 0,
    #000 var(--tc-river-band-artwork-fade),
    #000 calc(
      var(--tc-river-band-artwork-fade) +
      var(--tc-river-band-solid-overlap) +
      var(--tc-river-band-solid-overlap)
    ),
    transparent 100%
  );
  mask-image:linear-gradient(
    to bottom,
    transparent 0,
    #000 var(--tc-river-band-artwork-fade),
    #000 calc(
      var(--tc-river-band-artwork-fade) +
      var(--tc-river-band-solid-overlap) +
      var(--tc-river-band-solid-overlap)
    ),
    transparent 100%
  );
}

html[data-theme="dark"] body[data-page="approach"] .executable-field>.argument-heading,
html[data-theme="dark"] body[data-page="approach"] .executable-field>.route-conditions,
html[data-theme="dark"] body[data-page="approach"] .unknown-field>*{
  position:relative;
  z-index:2;
}

/* The final movement and footer form one terminal-depth sequence. Approach
   carries the historical upward fade; Home uses the preceding route section
   because its contact pseudo-elements already draw structural artwork. */
html[data-theme="dark"] .home-contact,
html[data-theme="dark"] .approach-close{
  background:linear-gradient(
    to bottom,
    var(--tc-dark-canvas) 0%,
    var(--tc-dark-canvas) 10%,
    var(--tc-dark-depth-field) 78%,
    var(--tc-dark-depth-field) 100%
  );
}

html[data-theme="dark"] body[data-page="approach"] .approach-close{
  position:relative;
  z-index:1;
  isolation:isolate;
  overflow:visible;
}

html[data-theme="dark"] body[data-page="approach"] .approach-close::before{
  position:absolute;
  z-index:0;
  top:calc(-1 * var(--tc-closing-depth-fade));
  right:0;
  left:0;
  height:var(--tc-closing-depth-fade);
  background:linear-gradient(
    to bottom,
    transparent 0%,
    var(--tc-dark-canvas) 100%
  );
  pointer-events:none;
  content:"";
}

html[data-theme="dark"] body[data-page="approach"] .continuity-field>*,
html[data-theme="dark"] body[data-page="approach"] .approach-close>*{
  position:relative;
  z-index:2;
}

html[data-theme="dark"] body[data-page="home"] .home-route-gate{
  z-index:1;
  isolation:isolate;
}

html[data-theme="dark"] body[data-page="home"] .home-route-gate::after{
  position:absolute;
  z-index:0;
  right:0;
  bottom:0;
  left:0;
  height:var(--tc-closing-depth-fade);
  background:linear-gradient(
    to bottom,
    transparent 0%,
    var(--tc-dark-canvas) 100%
  );
  pointer-events:none;
  content:"";
}

html[data-theme="dark"] body[data-page="home"] .home-route-gate__inner{
  position:relative;
  z-index:2;
}

html[data-theme="dark"] .site-footer{
  position:relative;
  z-index:1;
  background:var(--tc-dark-depth-field);
  border-top-color:transparent;
}

/* ========================================================================== 
   Implementation calibration — mechanical and legal presentation
   ========================================================================== */

/* AM-09 / CA-ASK-01 — quiet Ask affordance. */
.ask-control{border:0}

/* CA-H06-01 — heading-to-standfirst interval. */
.home-contact__copy h2{margin-bottom:clamp(18px,2vw,28px)}

/* CA-DGM-01 — single-caption figure uses one measured column. */
.canonical-graph--decision figcaption{grid-template-columns:minmax(0,1fr)}
.canonical-graph--decision figcaption{max-width:62ch}

/* CA-UI-01 — quiet legal register. */
body[data-page="privacy"] main{
  padding:calc(var(--header-h) + clamp(72px,8vw,120px)) var(--gutter) clamp(96px,11vw,164px);
  background:var(--page);
}
body[data-page="privacy"] main article{
  width:min(100%,var(--measure-body));
  margin:0 auto;
}
body[data-page="privacy"] main h1{
  margin:0 0 clamp(42px,5vw,68px);
  font-size:clamp(2.875rem,5.6vw,5.125rem);
  line-height:var(--leading-heading);
  letter-spacing:var(--tracking-display);
}
body[data-page="privacy"] main h2{
  margin:clamp(38px,4.5vw,58px) 0 14px;
  font-size:clamp(1.38rem,2.1vw,1.85rem);
  line-height:1.08;
  letter-spacing:-.025em;
}
body[data-page="privacy"] main p{max-width:var(--measure-body)}
body[data-page="privacy"] main p:last-child{margin-bottom:0}

@media(max-width:640px){
  body[data-page="privacy"] main{padding:clamp(62px,15vw,86px) 16px 84px}
}

/* ========================================================================== 
   Controlled shell and legibility calibration — CA-UI-01/02; AM-03
   ========================================================================== */

@media(min-width:721px){
  .route-progress{
    position:fixed;
    top:50%;
    transform:translateY(-50%);
  }

  body.has-scrolled .ask-control{
    position:fixed;
    top:13px;
    right:var(--gutter);
    z-index:60;
  }

  /* A backdrop filter makes the absolute masthead a fixed-position
     containing block. Remove it only after scroll so the Ask control can
     remain viewport-fixed while the masthead itself stays absolute. */
  body.has-scrolled .site-header{
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }

  html[data-capture="full"] .route-progress{
    position:absolute;
    top:50vh;
  }
}

/* AM-03 — 12px functional and legal floor. */
.primary-nav a,
.header-controls button,
.mobile-nav a,
.mobile-nav button,
.route-progress a,
.site-footer{
  font-size:.75rem;
}

.ask-panel .ask-direct,
.ask-panel .ask-close,
.ask-panel .prompts-title,
.ask-panel .ask-prompts__label,
.ask-panel .ask-form label,
.ask-panel .ask-warning strong,
.ask-panel .ask-panel__footer,
.ask-panel .ask-legal,
.ask-panel .ask-form__error{
  font-size:.75rem;
}

.ask-panel .ask-prompts .suggested-questions button,
.ask-panel .ask-submit,
.approach-index a,
.principal-record address{
  font-size:.75rem;
}

.approach-index a span{font-size:.72rem}

@media(max-width:640px){
  .header-controls button,
  .mobile-nav a,
  .mobile-nav button,
  .route-progress a,
  .site-footer,
  .ask-panel .ask-direct,
  .ask-panel .ask-close,
  .ask-panel .prompts-title,
  .ask-panel .ask-prompts__label,
  .ask-panel .ask-form label,
  .ask-panel .ask-warning strong,
  .ask-panel .ask-panel__footer,
  .ask-panel .ask-legal,
  .ask-panel .ask-form__error{
    font-size:.75rem;
  }
}

/* AM-03 legibility calibration: one standard desktop section-H2 tier. */
@media(min-width:721px){
  :is(
    .home-decision h2,
    .home-path h2,
    .home-choice h2,
    .home-route-gate h2,
    .home-contact h2,
    .argument-heading h2,
    .calibration-grid h2,
    .continuity-field h2,
    .approach-close h2
  ){font-size:clamp(2.875rem,5.6vw,5.125rem)}
}

.principal-record h3,
.seat-record h3,
.continuity-register h3{
  font-size:clamp(1.75rem,2.3vw,2.5rem);
}

/* AM-03 legibility calibration: one editorial lead tier. */
.opening-position,
.home-path__lead p:first-child,
.home-choice__head p:not(.folio),
.home-route-gate__copy p,
.home-contact__copy p:not(.folio),
.argument-heading__support .takeaway{
  font-size:clamp(1.38rem,1.7vw,1.82rem);
}

.home-decision__support p:last-child{font-size:var(--type-lead)}

/* AM-03 — opening and supporting numeral tiers. */
.opening-folio{font-size:.76rem}
.folio:not(.opening-folio),
.principal-record__number,
.first-note li span,
.continuity-register>li>span{
  font-size:.72rem;
}

/* ========================================================================== 
   Theme-native metadata clarity — AM-06 / AM-07
   ========================================================================== */

/* AM-06 — metadata legibility on darker light-theme grounds. */
html:not([data-theme="dark"]) .home-path .folio,
html:not([data-theme="dark"]) .executable-field .folio{color:var(--tc-color-corridor-ink-secondary)}
html:not([data-theme="dark"]) .home-contact .folio,
html:not([data-theme="dark"]) .home-contact .first-note li span,
html:not([data-theme="dark"]) .approach-close .folio,
html:not([data-theme="dark"]) .calibration-field .folio,
html:not([data-theme="dark"]) .calibration-field .eyebrow,
html:not([data-theme="dark"]) .analysis-field .folio{color:var(--ink-soft)}

/* AM-07 — Approach index legibility in the dark theme. */
html[data-theme="dark"] .approach-index a{color:var(--tc-dark-ink-primary);border-color:var(--tc-dark-line-strong)}
html[data-theme="dark"] .approach-index{border-top-color:var(--tc-dark-line-functional)}

/* ========================================================================== 
   Prototype standing-record restoration — CA-H04-01
   ========================================================================== */

@media(min-width:721px){
  .principal-record{
    padding-left:24px;
    border-top:0;
    border-left:1px solid var(--line);
    background:transparent;
    box-shadow:none;
  }

  .principal-record::before{display:none}
}

/* ========================================================================== 
   Technical print composition — no screen-design amendment
   ========================================================================== */

@page{size:A4}

@media print{
  *,
  *::before,
  *::after{
    box-shadow:none!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }

  .skip-link,
  .route-progress,
  .header-controls,
  .primary-nav,
  .theme-toggle,
  .menu-toggle,
  .ask-panel,
  .ask-backdrop{
    display:none!important;
  }

  .evidence-figure,
  .route-conditions,
  .duties-comparison,
  .principal-route,
  .principal-record,
  .decision-pair article,
  .argument-heading,
  .river-threshold__copy,
  .site-footer{
    break-inside:avoid;
    page-break-inside:avoid;
  }

  .folio,
  h2,
  h3{
    break-after:avoid;
    page-break-after:avoid;
  }

  figcaption{
    break-before:avoid;
    page-break-before:avoid;
  }

  /* A4 is narrower than the tablet screen composition. Let the closing
     columns contract inside the printable page instead of preserving their
     screen min-content widths. */
  .home-contact{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:clamp(24px,4vw,40px);
  }

  .home-contact__copy,
  .home-contact__brief{min-width:0}

  /* The tablet SVG label enlargement is a screen legibility correction. At
     A4 it exceeds the canonical graph's fixed coordinate field. */
  .canonical-graph svg text{font-size:14px}
  .canonical-graph svg .small-label{font-size:12px}

  /* Chromium does not honour break-inside on these two grid compositions.
     Start each on a fresh sheet so their authored internal relationships are
     never fragmented. */
  .principal-route,
  .argument-heading{
    break-before:page;
    page-break-before:always;
  }
}

/* ========================================================================== 
   Candidate A exception close-out — direct restoration of blueprint rules
   EX-01 governance: no new amendment is created by this stylesheet.
   4 August 2026

   This block is not a new amendment. It removes unregistered departures and
   maps each retained correction directly to the controlling Candidate A rule
   IDs and to EX-01–EX-14 in the approved exception log. Colour systems, river
   renderers, Ask behaviour and approved copy outside the named relationships
   remain unchanged.
   ========================================================================== */

/* EX-02 / CA-TYP-02 — semantic type roles. Utility labels and diagram text
   remain Söhne through their component rules; the named editorial roles use
   Tiempos explicitly, while Söhne Breit remains restricted to wordmarks. */
.home-opening h1,
.approach-opening h1,
.home-decision h2,
.home-path h2,
.home-choice h2,
.home-route-gate h2,
.home-contact h2,
.argument-heading h2,
.calibration-grid h2,
.continuity-field h2,
.approach-close h2,
.principal-record h3,
.seat-record h3,
.continuity-register h3{
  font-family:var(--font-editorial);
  font-weight:400;
}

.decision-pair h3,
.route-condition h3,
.figure-heading,
.duties-node{
  font-family:var(--font-body);
}

/* EX-03 / CA-TYP-01 — bounded, authored proposition measures. */
.home-opening h1{max-width:8.8ch}
.approach-opening h1{max-width:9ch}
.home-decision h2,
.home-path h2,
.home-contact h2{max-width:9ch}
.home-choice h2{max-width:10ch}
.home-route-gate h2{max-width:9ch}
.argument-heading h2{max-width:10.6ch}
.continuity-field>header h2{max-width:9.4ch}
.approach-close h2{max-width:9ch}

:is(
  .home-opening h1,
  .home-decision h2,
  .home-path h2,
  .home-choice h2,
  .home-route-gate h2,
  .home-contact h2,
  .approach-opening h1,
  .argument-heading h2,
  .calibration-grid h2,
  .continuity-field h2,
  .approach-close h2
){
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
  text-wrap:balance;
}

/* EX-05 / CA-H01-01 — Home folio affiliation and opening authority. */
.home-opening .opening-title{align-self:end}
.home-opening .opening-position{
  align-self:center;
  max-width:31ch;
}
.home-opening .opening-position .opening-folio{
  display:block;
  margin:0 0 26px;
  font-family:var(--font-body);
  font-style:normal;
}

br.heading-break--mobile{display:none}

@media(min-width:721px){
  .home-opening{
    min-height:96svh;
    padding:160px clamp(24px,7vw,120px) 90px;
    grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);
    gap:8vw;
    align-items:end;
  }
}

/* EX-06 / CA-H03-01 — two paired corridor propositions and connectors. */
.dependency-sequence{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:26px;
  max-width:1260px;
  margin:114px auto 0;
  padding-top:0;
  border-top:0;
}
.dependency-sequence::before{content:none}
.dependency-sequence__row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(80px,.28fr) minmax(0,1fr);
  gap:24px;
  align-items:center;
}
.dependency-sequence__question,
.dependency-sequence__answer{
  grid-row:auto;
  margin:0;
  padding:24px 0;
  border-top:1px solid var(--tc-color-corridor-line);
  border-bottom:1px solid var(--tc-color-corridor-line);
  font-family:var(--font-editorial);
  font-weight:400;
  font-size:clamp(1.45rem,2.25vw,2.25rem);
  line-height:1.08;
}
.dependency-sequence__question{grid-column:1}
.dependency-sequence__answer{
  grid-column:3;
  text-align:right;
}
.dependency-sequence__connector{
  grid-column:2;
  width:100%;
  border-top:1px solid var(--tc-color-corridor-line);
}

/* EX-07 / CA-H04-01 — opposing support field before the standing records. */
.home-choice__head{
  grid-template-columns:minmax(0,.9fr) minmax(300px,1.1fr);
}
.home-choice__support{
  align-self:end;
  max-width:36ch;
  margin:0 0 .5em;
  font-family:var(--font-editorial);
  font-size:clamp(1.38rem,1.7vw,1.82rem);
  line-height:1.16;
}

/* EX-08 / CA-A02-01 — common Decision / Clock sibling-block grammar. */
.decision-pair article{
  align-content:start;
}
.decision-pair__decision{
  position:static;
}
.decision-pair__decision p{
  position:static;
  max-width:36ch;
  margin-block:0 1em;
  transform:none;
  font-family:var(--font-body);
  font-size:inherit;
  font-style:normal;
  line-height:1.58;
}

/* EX-09 / CA-A03-01 / AM-11 — fixed-coordinate SVG labels retain their
   canonical scale at intermediate widths, preventing role-sentence clipping. */
@media(min-width:721px) and (max-width:1080px){
  .canonical-graph--residual svg text{font-size:17px}
  .canonical-graph--residual svg .small-label{font-size:15px}
  .canonical-graph--residual svg .analysis-range__role-copy{font-size:15px}
}
.canonical-graph--residual svg .analysis-range__role-copy{
  font-family:var(--font-body);
  font-size:13px;
  font-weight:400;
}

.canonical-graph--residual svg .analysis-range__role-name,
.canonical-graph--residual .diagram-mobile .analysis-range__role-name{
  font-family:var(--font-body);
  font-weight:600;
  letter-spacing:.04em;
  white-space:normal;
}

/* EX-10 / CA-A04-01 — Route / Position / Options remain three distinct states
   with a directional relation and a separate interpretive paragraph. */
.route-conditions{
  display:block;
  width:min(100%,1100px);
  max-width:1100px;
  margin:0 0 0 auto;
  overflow:hidden;
  background:var(--diagram-bg);
  color:var(--diagram-ink);
  box-shadow:var(--shadow);
}
.route-conditions__topology{
  display:grid;
  grid-template-columns:minmax(250px,.88fr) 48px minmax(0,1fr) minmax(0,1fr);
  align-items:stretch;
  padding:24px;
}
.route-conditions .route-condition{
  min-width:0;
  min-height:228px;
  padding:30px;
  border:1px solid var(--diagram-line);
  background:transparent;
}
.route-conditions .route-condition h3{
  margin:0;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.11em;
  line-height:1.35;
  text-transform:uppercase;
}
.route-conditions .route-condition--route{
  grid-column:1;
}
.route-conditions .route-condition--route p{
  max-width:18ch;
  margin:70px 0 0;
  font-family:var(--font-editorial);
  font-size:clamp(1.45rem,2vw,2rem);
  line-height:1.1;
}
.route-conditions__connector{
  position:relative;
  grid-column:2;
  align-self:center;
  height:1px;
  border-top:1px solid var(--diagram-line-strong);
}
.route-conditions__connector::after{
  content:"";
  position:absolute;
  right:-1px;
  top:-4px;
  border-left:8px solid var(--diagram-mark);
  border-top:4px solid transparent;
  border-bottom:4px solid transparent;
}
.route-conditions .route-condition--position{grid-column:3}
.route-conditions .route-condition--options{
  grid-column:4;
  border-left:0;
}
.route-conditions__interpretation{
  width:min(100%,1100px);
  max-width:58ch;
  margin:30px 0 0 auto;
  color:var(--tc-color-corridor-ink-secondary);
  font-size:clamp(.91rem,.12vw + .88rem,1rem);
  line-height:1.58;
}

/* EX-11 / CA-A05-01 — broad bridge, followed by a separate interpretation. */
.unknown-field .duties-figure{
  width:min(100%,1180px);
  max-width:1180px;
  margin:58px auto 0;
  overflow:hidden;
}
.duties-comparison{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(190px,.66fr) minmax(0,1fr);
  align-items:stretch;
  padding:34px;
  background:var(--diagram-bg);
}
.duties-comparison::before{
  content:"";
  position:absolute;
  z-index:0;
  left:22%;
  right:22%;
  top:50%;
  border-top:1px solid var(--diagram-line-strong);
}
.duties-node,
.shared-unknown{
  position:relative;
  z-index:1;
  min-width:0;
}
.duties-node{
  display:flex;
  align-items:flex-end;
  min-height:160px;
  margin:0;
  padding:26px;
  border:1px solid var(--diagram-line);
  background:var(--diagram-bg);
  font-family:var(--font-body);
  font-size:clamp(1rem,1.15vw,1.18rem);
  font-weight:600;
  line-height:1.25;
}
.duties-node--first{grid-column:1}
.duties-node--second{grid-column:3}
.shared-unknown{
  grid-column:2;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:160px;
  padding:24px;
  border-top:1px solid var(--diagram-line);
  border-bottom:1px solid var(--diagram-line);
  background:var(--diagram-zone);
  text-align:center;
}
.shared-unknown p{
  margin:0;
  font-family:var(--font-body);
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.02em;
  line-height:1.45;
  color:var(--diagram-ink);
}
.duties-interpretation{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:6vw;
  width:min(100%,980px);
  margin:34px auto 0;
}
.duties-interpretation p{
  max-width:42ch;
  margin:0 0 .8em;
  font-size:clamp(.91rem,.12vw + .88rem,1rem);
  line-height:1.58;
}

/* EX-12 / EX-13 / CA-H06-01 / CA-A08-01 — terminal contact remains direct,
   and the standfirst stays in the left reason-to-engage field. */
.home-contact__standfirst{
  margin-top:.65em;
}
.home-contact__brief{
  align-self:start;
}
.home-contact__brief .first-note{
  margin-top:0;
}

/* EX-14 — original three-part footer shell at broad widths. */
@media(min-width:861px){
  .site-footer{
    grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr) minmax(0,.8fr);
    grid-template-areas:none;
  }
  .site-footer strong,
  .site-footer p:first-of-type,
  .site-footer p:last-of-type{
    grid-area:auto;
  }
  .site-footer p:last-of-type{
    justify-self:end;
    text-align:right;
  }
}

/* Theme-native presentation for the restored A04/A05 topology; no palette or
   token values are changed. */
html[data-theme="dark"] .route-conditions{
  background:var(--tc-evidence-background);
  color:var(--tc-evidence-glint);
  box-shadow:var(--tc-shadow-elevated);
}
html[data-theme="dark"] .route-conditions .route-condition{
  border-color:var(--tc-evidence-surface);
}
html[data-theme="dark"] .route-conditions .route-condition--route{
  background:var(--tc-evidence-foundation);
}
html[data-theme="dark"] .route-conditions__connector{
  border-top-color:var(--tc-evidence-surface);
}
html[data-theme="dark"] .route-conditions__connector::after{
  border-left-color:var(--tc-evidence-glint);
}
html[data-theme="dark"] .duties-node{
  border-color:var(--tc-evidence-surface);
  background:var(--tc-evidence-background);
  color:var(--tc-evidence-glint);
}
html[data-theme="dark"] .duties-comparison::before{
  border-top-color:var(--tc-evidence-surface);
}
html[data-theme="dark"] .shared-unknown{
  border-color:var(--tc-evidence-surface);
  background:var(--tc-evidence-depth);
}
html[data-theme="dark"] .shared-unknown p{
  color:var(--tc-evidence-glint);
}

/* EX-04 / CA-RESP-01 / CA-RESP-02 — authored mobile recomposition. */
@media(max-width:860px){
  .home-choice__head{
    grid-template-columns:minmax(0,1fr);
  }
  .home-choice__support{
    max-width:32ch;
  }
}

@media(max-width:720px){
  br.heading-break--mobile{display:inline}

  :is(
    .home-opening h1,
    .home-decision h2,
    .home-path h2,
    .home-choice h2,
    .home-route-gate h2,
    .home-contact h2,
    .approach-opening h1,
    .argument-heading h2,
    .calibration-grid h2,
    .continuity-field h2,
    .approach-close h2
  ){
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
  }

  .home-opening h1,
  .approach-opening h1{
    font-size:3.625rem;
  }

  .home-opening h1{max-width:6.5ch}
  .approach-opening h1{max-width:6.8ch}

  .dependency-sequence{
    gap:30px;
    margin-top:66px;
  }
  .dependency-sequence__row{
    grid-template-columns:minmax(0,1fr);
    gap:14px;
  }
  .dependency-sequence__question,
  .dependency-sequence__answer{
    grid-column:1;
    padding:18px 0;
    text-align:left;
    font-size:1.38rem;
  }
  .dependency-sequence__connector{
    grid-column:1;
    justify-self:center;
    width:1px;
    height:28px;
    border-top:0;
    border-left:1px solid var(--tc-color-corridor-line);
  }

  .route-conditions,
  .route-conditions__interpretation,
  .unknown-field .duties-figure{
    width:100%;
    max-width:none;
  }
  .route-conditions__topology{
    grid-template-columns:minmax(0,1fr);
    gap:0;
    padding:12px;
  }
  .route-conditions .route-condition{
    grid-column:1;
    min-height:120px;
    padding:24px;
    border-left:1px solid var(--diagram-line);
  }
  .route-conditions .route-condition--route p{
    margin-top:34px;
  }
  .route-conditions__connector{
    grid-column:1;
    justify-self:center;
    width:1px;
    height:62px;
    border-top:0;
    border-left:1px solid var(--diagram-line-strong);
  }
  .route-conditions__connector::after{
    right:auto;
    left:-4px;
    top:auto;
    bottom:-1px;
    border-left:4px solid transparent;
    border-right:4px solid transparent;
    border-top:8px solid var(--diagram-mark);
    border-bottom:0;
  }
  .route-conditions .route-condition--position,
  .route-conditions .route-condition--options{
    grid-column:1;
  }
  .route-conditions .route-condition--options{
    border-top:0;
    border-left:1px solid var(--diagram-line);
  }
  .route-conditions__interpretation{
    margin-top:24px;
  }
  html[data-theme="dark"] .route-conditions__connector{
    border-left-color:var(--tc-evidence-surface);
  }
  html[data-theme="dark"] .route-conditions__connector::after{
    border-left-color:transparent;
    border-right-color:transparent;
    border-top-color:var(--tc-evidence-glint);
  }

  .unknown-field .duties-figure{
    margin-top:38px;
  }
  .duties-comparison{
    grid-template-columns:minmax(0,1fr);
    gap:12px;
    padding:12px;
  }
  .duties-comparison::before{
    left:50%;
    right:auto;
    top:22%;
    bottom:22%;
    border-top:0;
    border-left:1px solid var(--diagram-line-strong);
  }
  .duties-node,
  .shared-unknown{
    grid-column:1;
    min-height:105px;
  }
  .duties-node{
    padding:18px;
  }
  .shared-unknown{
    border:1px solid var(--diagram-line);
  }
  .duties-interpretation{
    grid-template-columns:minmax(0,1fr);
    gap:10px;
    width:100%;
    margin-top:28px;
  }
  html[data-theme="dark"] .duties-comparison::before{
    border-left-color:var(--tc-evidence-surface);
  }

  .home-contact__copy,
  .home-contact__brief{
    min-width:0;
  }
}

@media(max-width:640px){
  .home-opening .opening-position{
    margin-left:0;
    padding-left:24px;
  }
  .home-opening .opening-position .opening-folio{
    margin-bottom:20px;
  }

  .home-contact__copy,
  .home-contact__brief{
    padding-left:22px;
  }

  .home-contact__copy p,
  .home-contact__brief,
  .home-contact__brief li{
    max-width:100%;
    overflow-wrap:anywhere;
  }
}

@media(max-width:360px){
  .home-opening h1,
  .approach-opening h1{
    font-size:clamp(3.15rem,16vw,3.625rem);
  }
}

/* Intermediate reflow for the restored A04 topology. The three states remain
   distinct; only their spatial order changes before the mobile single column. */
@media(min-width:721px) and (max-width:900px){
  .route-conditions__topology{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    grid-template-rows:auto 54px auto;
  }
  .route-conditions .route-condition--route{
    grid-column:1/-1;
    grid-row:1;
  }
  .route-conditions__connector{
    grid-column:1/-1;
    grid-row:2;
    justify-self:center;
    width:1px;
    height:54px;
    border-top:0;
    border-left:1px solid var(--diagram-line-strong);
  }
  .route-conditions__connector::after{
    right:auto;
    left:-4px;
    top:auto;
    bottom:-1px;
    border-left:4px solid transparent;
    border-right:4px solid transparent;
    border-top:8px solid var(--diagram-mark);
    border-bottom:0;
  }
  .route-conditions .route-condition--position{
    grid-column:1;
    grid-row:3;
  }
  .route-conditions .route-condition--options{
    grid-column:2;
    grid-row:3;
  }
  html[data-theme="dark"] .route-conditions__connector{
    border-left-color:var(--tc-evidence-surface);
  }
  html[data-theme="dark"] .route-conditions__connector::after{
    border-left-color:transparent;
    border-right-color:transparent;
    border-top-color:var(--tc-evidence-glint);
  }
}

/* At constrained widths the authored breaks and the viewport, rather than a
   character-count box, define the complete proposition. */
@media(max-width:720px){
  :is(
    .home-opening h1,
    .approach-opening h1,
    .home-decision h2,
    .home-path h2,
    .home-choice h2,
    .home-route-gate h2,
    .home-contact h2,
    .argument-heading h2,
    .calibration-grid h2,
    .continuity-field h2,
    .approach-close h2
  ){
    width:100%;
    max-width:100%;
  }

  :is(
    .home-decision h2,
    .home-path h2,
    .home-choice h2,
    .home-route-gate h2,
    .home-contact h2,
    .argument-heading h2,
    .calibration-grid h2,
    .continuity-field h2,
    .approach-close h2
  ){
    font-size:2.625rem;
    line-height:.94;
  }
}

@media(min-width:721px) and (max-width:1080px){
  .canonical-graph--residual svg .analysis-range__role-copy{font-size:15px}
}

/* Existing accepted calibrations retained under their controlling authorities;
   these are not new amendments and do not alter the close-out relationships. */
.canonical-graph--residual figcaption{
  padding:12px 24px 16px;
}
.canonical-graph--residual figcaption p:last-child{
  text-align:right;
}
@media(min-width:900px){
  .canonical-graph--residual figcaption{
    grid-template-columns:minmax(0,1fr) max-content;
  }
  .canonical-graph--residual figcaption p:last-child{
    white-space:nowrap;
  }
}

.principal-record address{
  margin-top:18px;
  font-size:.78rem;
  line-height:1.5;
  color:var(--ink-faint);
}

.action-link>[aria-hidden="true"],
.ask-direct>[aria-hidden="true"]{
  font-weight:400;
}
.ask-panel .ask-direct{
  display:inline-flex;
  align-items:center;
  gap:.55em;
}

.canonical-graph--residual svg .analysis-range__role-name,
.canonical-graph--residual .diagram-mobile .analysis-range__role-name{
  font-family:var(--font-body);
  font-weight:600;
  letter-spacing:.1em;
  text-transform:uppercase;
  white-space:nowrap;
}

@media(max-width:640px){
  .home-decision__copy{padding-top:12px}
}
