/* ============ Gatelanes deck sections — shared styles ============
   Extracted from the home deck when its sections moved to The Firm /
   How We Invest. html.bookflip-gated rules are inert here by design. */


  /* ==========================================================================
     Adaptive background — liquid-theme style. A fixed layer behind the page
     swaps color with a long ease as each section takes the viewport, so
     every block reads as its own distinct color world. Sections release
     their solid backgrounds to this layer.
     ========================================================================== */
  #bgMorph{
    position:fixed; inset:0; z-index:-1;
    background-color:#04100B;
    transform:translateZ(0);
  }
  #bgMorph .bgm-a, #bgMorph .bgm-b{ position:absolute; inset:0 }
  #bgMorph .bgm-a{ background:#04100B }
  #bgMorph .bgm-b{ opacity:0; will-change:opacity }
  #grainLayer{
    position:fixed; inset:0; z-index:-1; pointer-events:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)' opacity='0.52'/%3E%3C/svg%3E");
    background-size:220px 220px;
    opacity:.05; mix-blend-mode:overlay;
    transform:translateZ(0);
  }
  .positioning, .capacity, .theroom, .firstcall, .pedigree, .alignment, .difference, .capabilities,
  .contrast, .qnote, .partner, footer.ft{ background:transparent }

  /* tighter block heights — distinct rooms, not long halls */
  .positioning{ padding:130px 0 140px }
  .difference{ padding:110px 0 120px }
  .capabilities{ padding:110px 0 104px }
  .contrast{ padding:110px 0 104px }
  .qnote{ padding:110px 0 104px }
  .pedigree{ padding:100px 0 110px }
  .lineage-sec{ padding:110px 0 120px }
  .lineage-sec .ped-firms{ margin-top:0 }

  .conversation-sec{ padding:110px 0 120px }
  .tiers-sec{ padding:110px 0 120px }
  .tiers-sec .tier-grid{ margin-top:56px }
  .rel-loop{ border-bottom:none; margin-bottom:0; padding-bottom:0 }
  .conversation-sec .partner-form{ margin-top:0 }
  .form-status{
    margin:14px 0 0; font-size:16px; line-height:1.7;
    color:var(--teal); display:none;
  }
  .form-status.on{ display:block }

  /* ---- Accessibility: visible focus + reachable widgets ---- */
  a:focus-visible, button:focus-visible, [tabindex]:focus-visible,
  input:focus-visible, select:focus-visible, textarea:focus-visible{
    outline:2px solid var(--gold); outline-offset:3px; border-radius:1px;
  }
  .fl-node:focus-visible{ outline:none }
  .fl-node:focus-visible .fl-lbl{ fill:var(--gold-pale); text-decoration:underline }
  .dl-row:focus-visible{ outline:2px solid var(--gold); outline-offset:8px }
  @media (hover:hover){
    .dl-row:focus-within .dl-claim-txt{ opacity:.38 }
    .dl-row:focus-within .dl-record::before{ transform:scaleY(1) }
    .dl-row:focus-within .dl-record p strong{ color:var(--gold-ink) }
  }

  /* ---- Contrast lifts for small annotations ---- */
  .cyc-note{ color:#6E6A55 !important }
  .dl-tag{ color:#6E6A55 }
  .dl-record .dl-tag{ color:var(--gold-ink) }

  /* ---- Dark-room text overrides (cycle & contrast now sit on dark) ---- */
  /* these two mid-page dark rooms paint their OWN background so their
     light text can never land on the wrong backdrop, whatever the
     morph layer is doing */
  .difference.cycle-sec{ background:#FFFDF7 }
  section#difference.difference{ background:#FFFDF7 }
  section.contrast{ background:#0D3A2B }
  .cycle-sec .diff-cycle{ background:transparent; border:none; box-shadow:none; padding-left:0; padding-right:0 }
  .contrast .eyebrow{ color:var(--gold-pale) }
  .contrast .ctr-head h2{ color:#F5F0E8 }
  .contrast .ctr-head h2 em{ color:var(--gold-pale) }
  .contrast .ctr-head p{ color:rgba(245,240,232,.66) }
  .contrast .ctr-grid{ border-color:rgba(201,168,76,.28) }
  .contrast .ctr-are{ border-right-color:rgba(201,168,76,.28) }
  .contrast .ctr-are .ctr-tag{ color:var(--gold-pale) }
  .contrast .ctr-are .ctr-lead{ color:#F2EADA }
  .contrast .ctr-not .ctr-lead{ color:#F2EADA }
  .contrast .ctr-are li{ border-top-color:rgba(201,168,76,.22) }
  .contrast .ctr-are li:last-child{ border-bottom-color:rgba(201,168,76,.22) }
  .contrast .ctr-are li p{ color:rgba(245,240,232,.62) }
  @media (max-width:980px){
    .contrast .ctr-are{ border-bottom-color:rgba(201,168,76,.28) }
  }

  /* ---- Partner: relationship-alpha loop (deck p19) ---- */
  .rel-loop{
    display:grid; grid-template-columns:minmax(240px, 340px) 1fr;
    gap:clamp(36px, 4vw, 72px); align-items:center;
    margin:64px 0 72px;
    padding:36px 0;
    border-top:1px solid rgba(0,77,61,.14);
    border-bottom:1px solid rgba(0,77,61,.14);
  }
  .rl-svg{ width:100%; height:auto; display:block; overflow:visible }
  .rl-inner{ fill:none; stroke:rgba(138,109,32,.18); stroke-width:1 }
  .rl-arc{ fill:none; stroke:rgba(138,109,32,.35); stroke-width:1.4; transition:stroke .25s var(--qm,ease), stroke-width .25s var(--qm,ease) }
  .rl-hit{ fill:none; stroke:transparent; stroke-width:30 }
  .rl-node{ fill:var(--gold); transition:fill .25s var(--qm,ease) }
  .rl-mlbl{ font-family:'Be Vietnam Pro', system-ui, sans-serif; font-size:11.5px; letter-spacing:.26em; fill:var(--ink) }
  .rl-core-it{ font-family:'Playfair Display', serif; font-style:italic; font-size:31px; fill:var(--teal) }
  .rl-core-sc{ font-family:'Be Vietnam Pro', system-ui, sans-serif; font-size:12.5px; letter-spacing:.34em; fill:var(--gold-ink) }
  .rl-seg{ cursor:pointer }
  .rl-seg.on .rl-arc{ stroke:#9A7B3F; stroke-width:2 }
  .rl-seg.on .rl-node{ fill:#9A7B3F }
  .rl-steps{ list-style:none; margin:0 0 28px; padding:0 }
  .rl-steps li{
    font-family:'Playfair Display', serif; font-weight:300;
    font-size:clamp(23px, 1.8vw, 31px); line-height:1.35;
    color:var(--ink-mute); padding:10px 0;
    border-bottom:1px dashed rgba(201,168,76,.25);
    transition:color .25s var(--qm,ease);
  }
  .rl-steps li strong{ font-weight:400; color:var(--teal); transition:color .25s var(--qm,ease) }
  .rl-steps li.on{ color:var(--ink) }
  .rl-steps li.on strong{ color:#9A7B3F }
  /* Quiet Motion: arcs draw sequentially, statements sync, nodes fade as arcs complete */
  @media (prefers-reduced-motion: no-preference){
    .rel-loop[data-rise] .rl-arc{ stroke-dasharray:240; stroke-dashoffset:240; transition:stroke-dashoffset .8s var(--qm,ease), stroke .25s var(--qm,ease), stroke-width .25s var(--qm,ease) }
    .rel-loop[data-rise] .rl-node{ opacity:0; transition:opacity .45s var(--qm,ease), fill .25s var(--qm,ease) }
    .rel-loop[data-rise] .rl-mlbl{ opacity:0; transition:opacity .45s var(--qm,ease) }
    .rel-loop[data-rise] .rl-inner, .rel-loop[data-rise] .rl-core-it, .rel-loop[data-rise] .rl-core-sc{ opacity:0; transition:opacity .6s var(--qm,ease) .15s }
    .rel-loop[data-rise] .rl-steps li{ opacity:0; translate:0 12px; transition:opacity .6s var(--qm,ease), translate .6s var(--qm,ease), color .25s var(--qm,ease) }
    .rel-loop.is-risen .rl-inner, .rel-loop.is-risen .rl-core-it, .rel-loop.is-risen .rl-core-sc{ opacity:1 }
    .rel-loop.is-risen .rl-arc{ stroke-dashoffset:0 }
    .rel-loop.is-risen .rl-seg[data-s="0"] .rl-arc{ transition-delay:.05s, 0s, 0s }
    .rel-loop.is-risen .rl-seg[data-s="1"] .rl-arc{ transition-delay:.5s, 0s, 0s }
    .rel-loop.is-risen .rl-seg[data-s="2"] .rl-arc{ transition-delay:.95s, 0s, 0s }
    .rel-loop.is-risen .rl-node, .rel-loop.is-risen .rl-mlbl{ opacity:1 }
    .rel-loop.is-risen .rl-seg[data-s="0"] .rl-node, .rel-loop.is-risen .rl-seg[data-s="0"] .rl-mlbl{ transition-delay:.55s, 0s }
    .rel-loop.is-risen .rl-seg[data-s="1"] .rl-node, .rel-loop.is-risen .rl-seg[data-s="1"] .rl-mlbl{ transition-delay:1s, 0s }
    .rel-loop.is-risen .rl-seg[data-s="2"] .rl-node, .rel-loop.is-risen .rl-seg[data-s="2"] .rl-mlbl{ transition-delay:1.45s, 0s }
    .rel-loop.is-risen .rl-steps li{ opacity:1; translate:0 0 }
    .rel-loop.is-risen .rl-steps li[data-s="0"]{ transition-delay:.05s, .05s, 0s }
    .rel-loop.is-risen .rl-steps li[data-s="1"]{ transition-delay:.5s, .5s, 0s }
    .rel-loop.is-risen .rl-steps li[data-s="2"]{ transition-delay:.95s, .95s, 0s }
  }
  .rl-quote{
    margin:0; font-family:'Playfair Display', serif; font-style:italic;
    font-size:clamp(19.5px, 1.5vw, 24px); line-height:1.6; color:var(--ink-soft);
    max-width:52ch;
  }
  @media (max-width:980px){
    .rel-loop{ grid-template-columns:1fr; gap:28px; margin:44px 0 48px }
    .rl-svg{ max-width:300px; margin:0 auto }
  }

  /* ---- Book-flip: one wheel gesture = one full-screen page ---- */
  html.bookflip{ scroll-snap-type:none !important; scroll-behavior:auto !important; scrollbar-width:none }
  html.bookflip::-webkit-scrollbar{ width:0; height:0 }
  html.bookflip .bf-page{
    height:100vh; overflow:hidden;
    display:flex; align-items:safe center;
    padding:113px 0 44px; box-sizing:border-box;
  }
  /* legibility first: pages that cannot fit at readable scale grow instead of clipping */
  html.bookflip .bf-page.bf-tall{ height:auto; min-height:100vh; overflow:visible; align-items:flex-start }
  html.bookflip .home-hero{ display:block; height:100vh; min-height:100vh; padding:0 }
  /* per-section entrance choreography (translate/clip — never transform, which fit() owns) */
  html.bookflip .bf-page > .wrap.bf-enter,
  html.bookflip .bf-page > .wrap-narrow.bf-enter{ animation:var(--bf-anim, none) }
  @keyframes bfFade{ from{ opacity:0; filter:blur(10px) } to{ opacity:1; filter:blur(0) } }
  @keyframes bfRise{ from{ opacity:0; translate:0 6vh } to{ opacity:1; translate:0 0 } }
  @keyframes bfSink{ from{ opacity:0; translate:0 -6vh } to{ opacity:1; translate:0 0 } }
  @keyframes bfSlideL{ from{ opacity:0; translate:-6vw 0 } to{ opacity:1; translate:0 0 } }
  @keyframes bfSlideR{ from{ opacity:0; translate:6vw 0 } to{ opacity:1; translate:0 0 } }
  @keyframes bfWipe{ from{ clip-path:inset(0 100% 0 0); opacity:.5 } to{ clip-path:inset(0 0 0 0); opacity:1 } }
  @keyframes bfUnveil{ from{ clip-path:inset(0 0 100% 0); opacity:.5 } to{ clip-path:inset(0 0 0 0); opacity:1 } }
  /* Quiet Motion transition vocabulary — A cover, B ledger-rule sweep, C boundary open, D ladder pass, E drift */
  @keyframes bfDrift{ from{ opacity:0; translate:0 12px } to{ opacity:1; translate:0 0 } }
  @keyframes bfDriftL{ from{ opacity:0; translate:12px 0 } to{ opacity:1; translate:0 0 } }
  @keyframes bfCover{ from{ opacity:0; translate:0 9vh } to{ opacity:1; translate:0 0 } }
  @keyframes bfOpen{ from{ opacity:.35; clip-path:inset(0 46%) } to{ opacity:1; clip-path:inset(0 0) } }
  @keyframes bfRecede{ from{ opacity:1; scale:1 } to{ opacity:.45; scale:.98 } }
  @keyframes bfLiftOut{ from{ opacity:1; translate:0 0 } to{ opacity:0; translate:0 -4vh } }
  @keyframes bfRuleSweep{ 0%{ transform:scaleX(0); opacity:1 } 70%{ transform:scaleX(1); opacity:1 } 100%{ transform:scaleX(1); opacity:0 } }
  html.bookflip .bf-page > .wrap.bf-exit,
  html.bookflip .bf-page > .wrap-narrow.bf-exit{ animation:var(--bf-exit, none) }
  #bfRule{ position:fixed; left:0; right:0; top:50%; height:1px; background:#9A7B3F; transform:scaleX(0); transform-origin:left; pointer-events:none; z-index:80 }
  #bfRule.run{ animation:bfRuleSweep .9s cubic-bezier(.22,1,.36,1) both }
  html.bookflip .bf-page > .wrap,
  html.bookflip .bf-page > .wrap-narrow{
    margin:0 auto; width:100%;
    transform-origin:50% 0;
  }
  /* condensation — tighter verticals so pages fit before auto-scaling */
  html.bookflip .positioning .eyebrow{ margin-bottom:32px }
  html.bookflip .positioning .p-line:nth-of-type(1){ margin-bottom:36px }
  html.bookflip .positioning .p-rule{ margin-top:36px 0 0 }
  @media (min-width:981px) and (max-height:880px){
    html.bookflip .positioning .eyebrow{ margin-bottom:24px }
    html.bookflip .positioning .p-line:nth-of-type(1){ font-size:clamp(32px, 3.4vw, 52px); margin-bottom:28px }
    html.bookflip .positioning .p-line:nth-of-type(2){ font-size:clamp(16px, 1vw, 18.5px); margin-bottom:22px }
    html.bookflip .positioning .p-line:nth-of-type(3){ font-size:clamp(16px, 1vw, 18.5px) }
    html.bookflip .positioning .p-rule{ margin:28px 0 0 }
  }
  html.bookflip .ped-stats{ margin-top:44px }
  html.bookflip .capacity{ padding:80px 0 }
  html.bookflip .cw-fig{ margin-top:24px }
  html.bookflip .cw-coda{ margin-top:26px; padding-top:26px }
  html.bookflip .cw-close{ margin-top:26px }
  html.bookflip .cw-fates{ gap:34px }
  html.bookflip .cw-sub{ margin-top:14px }
  html.bookflip .pedigree{ padding:80px 0 }
  html.bookflip .lg{ margin-top:28px }
  html.bookflip .lg-head{ padding-top:22px; margin-bottom:20px }
  html.bookflip .alignment{ padding:80px 0 }
  html.bookflip .al-grid{ margin-top:32px }
  html.bookflip .al-cell{ padding-top:24px; padding-bottom:28px }
  html.bookflip .al-close{ margin-top:28px }
  html.bookflip .difference{ padding:70px 0 80px }
  html.bookflip .capabilities{ padding:70px 0 }
  html.bookflip .partner{ padding:70px 0 }
  html.bookflip .diff-ledger{ margin-top:36px }
  html.bookflip .dl-row{ padding:20px 0 17px }
  html.bookflip .diff-cycle{ padding:30px 0 28px }
  html.bookflip .cyc-svg{ max-height:31vh }
  html.bookflip .fl-svg{ max-height:34vh }
  html.bookflip .cycle-sec .diff-close{ margin-top:0; margin-bottom:30px }
  html.bookflip .diff-close .body{ margin-bottom:26px }
  html.bookflip .fl-read{ min-height:88px }
  html.bookflip .cyc-read{ min-height:96px }
  /* dot rail + counter */
  #bfRail{
    position:fixed; right:26px; top:50%; transform:translateY(-50%);
    z-index:900; display:none; flex-direction:column; gap:12px;
  }
  html.bookflip #bfRail{ display:flex }
  #bfRail button{
    width:8px; height:8px; border-radius:50%; padding:0; cursor:pointer;
    border:1px solid rgba(232,207,128,.55); background:transparent;
    transition:transform .3s var(--ease), background .3s var(--ease), border-color .3s var(--ease);
  }
  #bfRail button.on{ background:var(--gold); border-color:var(--gold); transform:scale(1.3) }
  #bfRail button{ position:relative }
  #bfRail button::after{
    content:attr(data-label);
    position:absolute; right:22px; top:50%; transform:translateY(-50%) translateX(6px);
    white-space:nowrap;
    font-family:'Be Vietnam Pro', system-ui, sans-serif;
    font-size:11px; letter-spacing:.22em; text-transform:uppercase;
    color:var(--gold-pale);
    opacity:0; pointer-events:none;
    transition:opacity .25s var(--ease), transform .25s var(--ease);
  }
  #bfRail button:hover::after, #bfRail button:focus-visible::after{
    opacity:1; transform:translateY(-50%) translateX(0);
  }
  body.on-light #bfRail button::after{ color:var(--gold-ink) }
  body.on-light #bfRail button{ border-color:rgba(138,109,32,.55) }
  body.on-light #bfRail button.on{ background:var(--gold-ink); border-color:var(--gold-ink) }
  #bfCount{
    position:fixed; left:30px; bottom:26px; z-index:900; display:none;
    font-family:'Playfair Display', serif; font-style:italic;
    font-size:17.5px; color:rgba(232,207,128,.85);
    font-variant-numeric:tabular-nums; letter-spacing:.06em;
  }
  #bfCount .bf-hint{
    display:inline-block; margin-left:14px;
    font-family:'Be Vietnam Pro', system-ui, sans-serif; font-style:normal;
    font-size:11.5px; letter-spacing:.2em; text-transform:uppercase;
    color:rgba(232,207,128,.6);
    transition:opacity 1s var(--ease);
  }
  body.on-light #bfCount .bf-hint{ color:rgba(138,109,32,.75) }
  html.bookflip #bfCount{ display:block }
  body.on-light #bfCount{ color:var(--gold-ink) }

  /* legacy proximity snap (non-bookflip fallback) */
  @media (min-width:981px) and (prefers-reduced-motion: no-preference){
    html{ scroll-snap-type:y proximity }
    .positioning, .capacity, .theroom, .firstcall, .pedigree, .lineage-sec, .alignment, .difference, .capabilities,
    .contrast, .qnote, .partner, .conversation-sec, footer.ft{ scroll-snap-align:start }
    .tiers-sec, .audience-sec{ scroll-snap-align:start }
    .cycle-sec{ scroll-snap-align:start }
    .home-hero{ scroll-snap-align:start }
  }

  /* footer ends on true black */
  footer.ft{ border-top:1px solid rgba(201,168,76,.14) }



  /* faster arrival */
  .positioning .p-line{ transition-duration:.55s }
  .positioning.in .p-line{ transition-delay:.12s }
  .positioning .p-rule{ transition-delay:.2s, .2s }
  .positioning .p-attrib{ transition-delay:.2s }

  /* Positioning — 2×2 access matrix (co-star, in-flow) */
  #posMatrix{
    grid-column:6 / -1; grid-row:1 / span 5;
    position:relative; align-self:stretch;
    width:100%; min-height:100%; pointer-events:none;
  }
  #posMatrix svg{ position:absolute; top:0; right:0; bottom:0; left:36px; width:calc(100% - 36px); height:100%; display:block; overflow:visible }
  #posMatrix .ax{ stroke:rgba(0,61,48,.45); stroke-width:1.2; fill:none }
  #posMatrix .thr{ stroke:rgba(138,109,32,.5); stroke-width:1; stroke-dasharray:4 5; fill:none }
  #posMatrix .quad{ fill:rgba(201,168,76,.07) }
  #posMatrix text{
    font-family:'Be Vietnam Pro', system-ui, sans-serif;
    font-size:15.5px; letter-spacing:.22em; fill:var(--ink-mute);
  }
  #posMatrix .lbl{ font-size:18px; letter-spacing:.05em; fill:var(--ink-soft); paint-order:stroke; stroke:#FFFDF7; stroke-width:6px; stroke-linejoin:round }
  #posMatrix .axlbl{ font-weight:700; fill:var(--teal) }
  #posMatrix .gl-lbl{ fill:var(--gold-ink); letter-spacing:.09em; font-weight:600; font-size:17.5px }
  #posMatrix .sub-lbl{ font-size:11.5px; letter-spacing:.16em; fill:var(--gold-ink); paint-order:stroke; stroke:#FFFDF7; stroke-width:5px; stroke-linejoin:round }
  #posMatrix .gl-sub{ font-size:12.5px; letter-spacing:.16em; fill:var(--gold-ink); font-weight:600; paint-order:stroke; stroke:#FFFDF7; stroke-width:5px; stroke-linejoin:round }
  #posMatrix .dot{ fill:var(--teal); stroke:var(--teal); stroke-width:1.4 }
  #posMatrix .gl-diamond{ fill:var(--gold) }
  #posMatrix .gl-ring{ fill:none; stroke:rgba(201,168,76,.65); stroke-width:1 }
  #posMatrix .pm-traj{ fill:none; stroke:rgba(138,109,32,.38); stroke-width:1; stroke-dasharray:3 6 }
  #posMatrix .pm-fr{ fill:none; stroke:rgba(0,61,48,.3); stroke-width:1.2 }
  #posMatrix .fr-lbl{ font-size:12px; letter-spacing:.22em; fill:var(--ink-mute); paint-order:stroke; stroke:#FFFDF7; stroke-width:6px; stroke-linejoin:round }
  #posMatrix .dc{ fill:var(--gold) }
  #posMatrix .dc-lbl{ font-size:15.5px; letter-spacing:.04em; fill:var(--ink-soft); paint-order:stroke; stroke:#FFFDF7; stroke-width:6px; stroke-linejoin:round }
  #posMatrix .pm-comet{ fill:var(--gold); opacity:0 }
  :root{
    --spring:linear(0, 0.013 1.1%, 0.052 2.3%, 0.199 4.6%, 0.443 7.5%, 0.687 10.1%, 0.887 12.5%, 1.033 14.9%, 1.128 17.4%, 1.173 19.9%, 1.179 22.5%, 1.152 25.6%, 1.099 29.6%, 1.042 34.3%, 1.001 39.6%, 0.977 45.4%, 0.97 51.4%, 0.979 58.3%, 0.994 66.3%, 1.004 75.4%, 1.004 85.6%, 1);
    --spring-soft:linear(0, 0.032 1.6%, 0.122 3.3%, 0.306 5.9%, 0.535 8.8%, 0.741 11.6%, 0.898 14.4%, 1.007 17.3%, 1.071 20.4%, 1.097 23.7%, 1.094 27.4%, 1.068 31.9%, 1.036 37.2%, 1.008 43.5%, 0.99 50.9%, 0.985 59.4%, 0.991 69.1%, 0.999 80.1%, 1);
  }
  @media (prefers-reduced-motion: no-preference){
    #posMatrix .ax, #posMatrix .thr{ stroke-dasharray:1300; stroke-dashoffset:1300; transition:stroke-dashoffset 1.15s var(--ease-strong) }
    #posMatrix .thr{ transition-delay:.55s }
    #posMatrix .d1 .dot, #posMatrix .d2 .dot, #posMatrix .d3 .dot{ transform:scale(0); transform-box:fill-box; transform-origin:center; transition:transform .8s var(--spring) }
    #posMatrix .d1 .lbl, #posMatrix .d1 .sub-lbl, #posMatrix .d2 .lbl, #posMatrix .d2 .sub-lbl, #posMatrix .d3 .lbl, #posMatrix .d3 .sub-lbl{ opacity:0; translate:0 9px; transition:opacity .5s var(--ease), translate .65s var(--spring-soft) }
    #posMatrix .quad{ transform-box:fill-box; transform-origin:left center; transform:scaleX(0); transition:transform 1.15s var(--spring-soft) }
    #posMatrix .gl-sub{ opacity:0; transition:opacity .6s var(--ease) }
    #posMatrix.go .gl-sub{ opacity:1; transition-delay:3.55s }
    #posMatrix .gl-diamond{ opacity:0; transform:scale(1.6) translateY(-14px); transform-box:fill-box; transform-origin:center;
      transition:opacity .45s var(--ease), transform .9s var(--spring) }
    #posMatrix .gl-lbl{ opacity:0; transform:translateY(-8px); transform-box:fill-box; transform-origin:center;
      transition:opacity .5s var(--ease), transform .7s var(--spring-soft) }
    #posMatrix.go .ax{ stroke-dashoffset:0 }
    #posMatrix.go .thr{ stroke-dashoffset:0; stroke-dasharray:4 5 }
    #posMatrix.go .quad{ transform:scaleX(1); transition-delay:1.05s }
    #posMatrix.go .d3 .dot{ transform:scale(1); transition-delay:1.3s }
    #posMatrix.go .d2 .dot{ transform:scale(1); transition-delay:1.55s }
    #posMatrix.go .d1 .dot{ transform:scale(1); transition-delay:1.8s }
    #posMatrix.go .d3 .lbl, #posMatrix.go .d3 .sub-lbl{ opacity:1; translate:0 0; transition-delay:1.45s }
    #posMatrix.go .d2 .lbl, #posMatrix.go .d2 .sub-lbl{ opacity:1; translate:0 0; transition-delay:1.7s }
    #posMatrix.go .d1 .lbl, #posMatrix.go .d1 .sub-lbl{ opacity:1; translate:0 0; transition-delay:1.95s }
    #posMatrix.go .gl-diamond{ opacity:1; transform:scale(1) translateY(0); transition-delay:3.05s }
    #posMatrix.go .gl-lbl{ opacity:1; transform:translateY(0); transition-delay:3.35s }
    #posMatrix.go .gl-ring{ animation:pmRing 3.2s ease-out 3.7s 2 }
    #posMatrix .pm-traj{ opacity:0; clip-path:inset(-24px 100% -24px -24px); transition:opacity .4s var(--ease), clip-path 1.1s var(--ease-strong) }
    #posMatrix.go .pm-traj{ opacity:1; clip-path:inset(-24px -24px -24px -24px); transition-delay:2.7s, 2.7s }
    #posMatrix .pm-fr{ stroke-dasharray:980; stroke-dashoffset:980; transition:stroke-dashoffset 1.35s var(--ease-strong) }
    #posMatrix.go .pm-fr{ stroke-dashoffset:0; transition-delay:.8s }
    #posMatrix .fr-lbl, #posMatrix .dc-lbl{ opacity:0; transition:opacity .7s var(--ease) }
    #posMatrix.go .fr-lbl{ opacity:1; transition-delay:1.95s }
    #posMatrix.go .dc-lbl{ opacity:1; transition-delay:2.4s }
    #posMatrix .dc{ opacity:0; transform:scale(.15) rotate(-90deg); transform-box:fill-box; transform-origin:center;
      transition:opacity .35s var(--ease), transform .75s var(--spring); transition-delay:calc(2.15s + var(--i) * .1s) }
    #posMatrix.go .dc{ opacity:1; transform:scale(1) rotate(0deg) }
    #posMatrix.go .pm-comet{
      offset-path:path('M 214 -38 C 330 -52, 460 -12, 546 46');
      offset-rotate:0deg;
      animation:pmComet 5s cubic-bezier(.45,.05,.35,1) 4.1s 2;
    }
    #posMatrix.go .gl-diamond{ animation:pmFloat 5s ease-in-out 4s 3 }
  }
  @keyframes pmComet{ 0%{ offset-distance:0%; opacity:0 } 7%{ opacity:1 } 86%{ opacity:1 } 96%{ offset-distance:100%; opacity:0 } 100%{ offset-distance:100%; opacity:0 } }
  @keyframes pmFloat{ 0%,100%{ translate:0 0 } 50%{ translate:0 -5px } }
  @keyframes pmRing{ 0%{ r:52; opacity:.7 } 70%{ r:80; opacity:0 } 100%{ r:80; opacity:0 } }
  @media (max-width:980px){
    #posMatrix{ max-width:460px; justify-self:start; margin:12px 0 8px }
    #posMatrix svg{ position:static; width:100%; height:auto; max-height:none }
  }

  /* Positioning — full-bleed editorial grid (overrides the narrow column) */
  .positioning .wrap-narrow{
    max-width:1360px;
    display:grid; grid-template-columns:repeat(12, 1fr);
    column-gap:40px; align-items:start;
  }
  .positioning .eyebrow{ grid-column:1/-1; grid-row:1; margin-bottom:48px }
  .positioning .p-line{ margin:0 }
  .positioning .p-line:nth-of-type(1){
    grid-column:1 / -1; grid-row:2;
    font-size:clamp(34px, 3.6vw, 56px); line-height:1.12;
    letter-spacing:-.02em; max-width:22ch;
    margin-bottom:48px;
  }
  .positioning .p-line:nth-of-type(2){
    grid-column:1 / span 5; grid-row:3;
    margin-bottom:32px;
  }
  .positioning .p-line:nth-of-type(3){
    grid-column:1 / span 5; grid-row:4;
  }
  .positioning .p-line:nth-of-type(2), .positioning .p-line:nth-of-type(3){
    font-family:'Be Vietnam Pro', system-ui, sans-serif; font-weight:400;
    font-size:clamp(18px, 1.15vw, 20.5px); line-height:1.75;
    color:var(--ink-soft); letter-spacing:.005em; max-width:none;
    text-wrap:balance;
  }
  .positioning .p-line:nth-of-type(2) em, .positioning .p-line:nth-of-type(3) em{
    font-family:inherit; font-size:inherit;
    color:var(--teal); font-weight:700; font-style:normal;
  }
  .positioning .p-rule{ grid-column:1 / span 3; grid-row:5; margin:56px 0 0 }
  .positioning .p-attrib{ grid-column:1 / span 7; grid-row:6; margin-top:18px }
  @media (max-width:980px){
    .positioning .wrap-narrow{ display:flex; flex-direction:column }
    .positioning #posMatrix{ order:1; margin:8px 0 4px }
    .positioning .p-rule{ order:3 }
    .positioning .p-attrib{ order:4 }
    .positioning .p-line:nth-of-type(1){ margin-bottom:40px }
    .positioning .p-line:nth-of-type(2){ margin-bottom:32px }
    .positioning .p-line:nth-of-type(3){ margin-top:0; margin-bottom:32px }
    .positioning .p-rule{ margin-top:48px }
  }



  /* Sculptural paper textures — light sections only, heavily veiled */
  .has-tex{ position:relative }
  .has-tex > div:not(.sec-tex){ position:relative; z-index:2 }
  .sec-tex{ position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden }
  .sec-tex img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; opacity:.55 }
  .sec-tex::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(255,253,247,.92) 0%, rgba(255,253,247,.56) 45%, rgba(255,253,247,.76) 100%);
  }
  .sec-tex--dark img{ opacity:.14 }
  .sec-tex--dark::after{
    background:linear-gradient(180deg, rgba(var(--vc),.62) 0%, rgba(var(--vc),.3) 45%, rgba(var(--vc),.58) 100%);
  }



  .capacity{padding:110px 0 130px;position:relative}
  .capacity .cw-head h2{font-family:'Playfair Display',serif;font-weight:300;font-size:clamp(36px,3.8vw,56px);line-height:1.1;letter-spacing:-.02em;color:var(--teal);margin:24px 0 0;max-width:24ch;text-wrap:balance}
  .capacity .cw-head h2 em{font-style:italic;font-weight:400;color:var(--gold-ink)}
  .cw-sub{margin:22px 0 0;font-size:19px;line-height:1.7;color:var(--ink-soft);max-width:56ch}
  /* one unified divergence diagram: deal → fork → two fates */
  .cw-fig{display:grid;grid-template-columns:22% 8% 1fr;align-items:center;margin-top:56px}
  .cw-z1{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding-right:10px}
  .cw-dealfig{font-family:'Playfair Display',serif;font-weight:400;font-size:clamp(26px,2.2vw,36px);color:var(--teal);font-variant-numeric:tabular-nums}
  .cw-dealbar{width:100%;max-width:170px;height:16px;background:var(--gold)}
  .cw-dealk{font-family:'Be Vietnam Pro',system-ui,sans-serif;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-mute);line-height:1.8;max-width:26ch}
  .cw-fork{width:100%;height:220px;display:block;overflow:visible}
  .cw-fork path{stroke:rgba(138,109,32,.55);stroke-width:1.2;fill:none}
  .cw-fates{display:flex;flex-direction:column;gap:48px;padding-left:8px}
  .cw-rk{display:block;font-family:'Be Vietnam Pro',system-ui,sans-serif;font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--teal);font-weight:700;margin-bottom:12px}
  .cw-divsvg{display:block;width:100%;max-width:640px;height:16px}
  .cw-note{margin:12px 0 0;font-size:16.5px;line-height:1.65;color:var(--ink-soft);max-width:60ch}
  .cw-note.neg{color:#9C4A3C}
  #cwSlivers{stroke:rgba(22,48,42,.4);stroke-width:.9;fill:none}
  .cw-blocks rect{fill:var(--gold)}
  /* selectivity — inline coda */
  .cw-coda{display:flex;align-items:center;gap:40px;margin-top:48px;padding-top:36px;border-top:1px solid rgba(201,168,76,.35);padding-left:calc(30% + 8px)}
  #cwMatrix{width:112px;height:112px;flex:0 0 auto;display:block}
  #cwMatrix circle{fill:none;stroke:rgba(22,48,42,.35);stroke-width:1.4}
  #cwMatrix circle.g{fill:var(--gold);stroke:var(--gold)}
  .cw-selk{display:block;font-family:'Be Vietnam Pro',system-ui,sans-serif;font-size:13px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-ink);font-weight:700;margin-bottom:8px}
  .cw-selline{margin:0;font-family:'Playfair Display',serif;font-weight:300;font-size:clamp(21px,1.6vw,26px);line-height:1.45;color:var(--teal);max-width:46ch;text-wrap:balance}
  .cw-close{margin:64px auto 0;text-align:center;font-family:'Playfair Display',serif;font-style:italic;font-weight:400;font-size:clamp(23px,1.9vw,30px);line-height:1.6;color:var(--gold-ink);max-width:none}
  #cwMatrix circle{opacity:0;transition:opacity .5s var(--qm,ease)}
  .cw-coda.is-risen #cwMatrix circle{opacity:1}
  @media (prefers-reduced-motion: no-preference){
    .cw-fig .cw-dealbar{transform:scaleX(0);transform-origin:left;transition:transform .7s var(--qm,ease) .1s}
    .cw-fig.is-risen .cw-dealbar{transform:scaleX(1)}
    .cw-fig .cw-dealfig,.cw-fig .cw-dealk{opacity:0;transition:opacity .6s var(--qm,ease) .3s}
    .cw-fig.is-risen .cw-dealfig,.cw-fig.is-risen .cw-dealk{opacity:1}
    .cw-fork path{stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset .7s var(--qm,ease) .4s}
    .cw-fig.is-risen .cw-fork path{stroke-dashoffset:0}
    #cwSlivers{stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset .9s var(--qm,ease) .7s}
    .cw-fig.is-risen #cwSlivers{stroke-dashoffset:0}
    .cw-blocks rect{transform:scaleX(0);transform-box:fill-box;transform-origin:left center;transition:transform .9s var(--qm,ease) .7s}
    .cw-fig.is-risen .cw-blocks rect{transform:scaleX(1)}
    .cw-fig .cw-rk,.cw-fig .cw-note{opacity:0;transition:opacity .7s var(--qm,ease) 1.05s}
    .cw-fig.is-risen .cw-rk,.cw-fig.is-risen .cw-note{opacity:1}
  }
  @media (prefers-reduced-motion: reduce){ #cwMatrix circle{transition:opacity .2s linear} }
  @media (max-width:900px){
    .capacity{padding:100px 0 110px}
    .cw-fig{grid-template-columns:1fr;gap:40px;margin-top:48px}
    .cw-fork{display:none}
    .cw-z1{padding-right:0}
    .cw-fates{padding-left:0}
    .cw-coda{flex-direction:column;align-items:flex-start;gap:26px;margin-top:48px;padding-left:0}
  }



  .theroom{padding:96px 0 104px;position:relative;color:#fff}
  .theroom .rm-head h2{font-family:'Playfair Display',serif;font-weight:300;font-size:clamp(32px,3.2vw,48px);line-height:1.12;letter-spacing:-.02em;color:#fff;margin:20px 0 0;max-width:26ch;text-wrap:balance}
  .theroom .rm-head h2 em{font-style:italic;font-weight:400;color:var(--gold-pale)}
  .rm-sub{margin:14px 0 0;font-size:18.5px;line-height:1.7;color:rgba(255,253,247,.72);max-width:62ch}
  /* one unified perimeter diagram: sealed plate → boundary with one gate → two outcomes */
  .rm-fig{display:grid;grid-template-columns:26% 6% 1fr;align-items:stretch;margin-top:44px}
  .rm-plate{border:1px solid rgba(201,168,76,.4);padding:24px 26px 26px;display:flex;flex-direction:column;gap:16px;height:100%;justify-content:center;background:rgba(255,253,247,.02)}
  .rm-conf{align-self:flex-start;font-family:'Be Vietnam Pro',system-ui,sans-serif;font-size:12.5px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold-pale);border:1px solid rgba(232,207,128,.45);padding:5px 10px 4px 13px}
  .rm-pk{font-family:'Playfair Display',serif;font-weight:400;font-size:clamp(20px,1.5vw,24px);letter-spacing:.01em;color:#fff}
  .rm-items{list-style:none;margin:0;padding:0;font-family:'Be Vietnam Pro',system-ui,sans-serif;font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,253,247,.78);line-height:1.8}
  .rm-items li{padding:7px 0;border-top:1px solid rgba(201,168,76,.18)}
  /* boundary: closed hairline, one gate */
  .rm-perim{width:100%;height:100%;display:block;overflow:visible}
  .rm-perim .pv{stroke:rgba(201,168,76,.55);stroke-width:1.2;fill:none}
  .rm-perim .pg{stroke:var(--gold);stroke-width:1.2;fill:none}
  .rm-fates{display:flex;flex-direction:column;gap:32px;padding-left:8px}
  .rm-fate{flex:1;display:flex;flex-direction:column;justify-content:center;position:relative}
  .rm-verdict{position:absolute;right:28px;top:50%;transform:translateY(-50%);width:60px;height:60px;overflow:visible}
  .rm-verdict path{fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
  .rm-verdict.cross path{stroke:#C98874}
  .rm-verdict.tick path{stroke:#B08D3E}
  @media (max-width:1100px){.rm-verdict{display:none}}
  .rm-fate.inside{border:1px solid rgba(201,168,76,.28);padding:20px 26px;background:rgba(201,168,76,.03)}
  .rm-rk{display:block;font-family:'Be Vietnam Pro',system-ui,sans-serif;font-size:12.5px;letter-spacing:.26em;text-transform:uppercase;color:#fff;font-weight:700;margin-bottom:12px}
  .rm-rk.neg{color:#C98874}
  .rm-scatter,.rm-table{display:block;width:100%;max-width:640px;height:56px}
  #rmDots{stroke:rgba(255,253,247,.32);stroke-width:4.5;stroke-linecap:round;fill:none}
  #rmDotsNeg{stroke:#9C4A3C;stroke-width:5;stroke-linecap:round;fill:none}
  .rm-table .tb{stroke:rgba(201,168,76,.55);stroke-width:1.2;fill:none}
  .rm-table .seat{fill:var(--gold)}
  .rm-table .nm{stroke:rgba(232,207,128,.6);stroke-width:1;fill:none}
  .rm-lines{list-style:none;margin:10px 0 0;padding:0;font-size:15.5px;line-height:1.55;color:rgba(255,253,247,.75);max-width:64ch}
  .rm-lines li{padding:3px 0}
  .rm-fate.inside .rm-lines li{position:relative;padding-left:18px}
  .rm-fate.inside .rm-lines li::before{content:"";position:absolute;left:0;top:.58em;width:6px;height:6px;background:var(--gold);transform:rotate(45deg)}
  .rm-lines.neg li{position:relative;padding-left:18px}
  .rm-lines.neg li::before,.rm-lines.neg li::after{content:"";position:absolute;left:0;top:calc(.58em + 3px);width:8px;height:1.1px;border-radius:1px;background:#C98874}
  .rm-lines.neg li::before{transform:rotate(45deg)}
  .rm-lines.neg li::after{transform:rotate(-45deg)}
  .rm-lines.neg{color:#C98874}
  /* coda — the signal */
  .rm-coda{margin-top:40px;padding-top:30px;border-top:1px solid rgba(201,168,76,.3);text-align:center}
  .rm-selk{display:block;font-family:'Be Vietnam Pro',system-ui,sans-serif;font-size:13px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-pale);font-weight:700;margin-bottom:10px}
  .rm-selline{margin:0 auto;font-family:'Playfair Display',serif;font-weight:300;font-size:clamp(20px,1.5vw,24.5px);line-height:1.5;color:#fff;max-width:78ch;text-wrap:balance}
  .rm-selline strong{font-weight:600}
  .rm-close{margin:44px auto 0;padding-bottom:56px;text-align:center;font-family:'Playfair Display',serif;font-style:italic;font-weight:400;font-size:clamp(22px,1.8vw,28px);line-height:1.6;color:var(--gold-pale);max-width:64ch;text-wrap:balance}
  .theroom [data-qm-em] em{ --ul:rgba(232,207,128,.65) }
  html.bookflip .theroom{padding:44px 0}
  html.bookflip .theroom .rm-head h2{font-size:clamp(30px,2.9vw,42px)}
  html.bookflip .theroom .rm-fig{margin-top:26px}
  html.bookflip .theroom .rm-coda{margin-top:24px;padding-top:20px}
  html.bookflip .theroom .rm-close{margin-top:24px;padding-bottom:40px}
  html.bookflip .theroom .rm-plate{padding:18px 22px 20px;gap:12px}
  html.bookflip .theroom .rm-fate.inside{padding:16px 24px}
  @media (prefers-reduced-motion: no-preference){
    .rm-fig .rm-plate{opacity:0;transform:translateY(8px);transition:opacity .6s var(--qm,ease) .1s,transform .6s var(--qm,ease) .1s}
    .rm-fig.is-risen .rm-plate{opacity:1;transform:none}
    .rm-perim path{stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset .8s var(--qm,ease) .35s}
    .rm-perim .pg{transition-delay:.7s}
    .rm-fig.is-risen .rm-perim path{stroke-dashoffset:0}
    /* both outcomes land in the same beat */
    .rm-fig .rm-scatter,.rm-fig .rm-table{clip-path:inset(0 100% 0 0);transition:clip-path .9s var(--qm,ease) .75s}
    .rm-fig.is-risen .rm-scatter,.rm-fig.is-risen .rm-table{clip-path:inset(0 0 0 0)}
    .rm-fig .rm-rk,.rm-fig .rm-lines,.rm-fig .rm-fate.inside{transition:opacity .7s var(--qm,ease) 1.1s}
    .rm-fig .rm-rk,.rm-fig .rm-lines{opacity:0}
    .rm-fig.is-risen .rm-rk,.rm-fig.is-risen .rm-lines{opacity:1}
    /* verdict marks stroke-draw in the same beat as their outcome */
    .rm-verdict path{stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset .7s var(--qm,ease) .8s}
    .rm-verdict.cross path:nth-child(2){transition-delay:.95s}
    .rm-fig.is-risen .rm-verdict path{stroke-dashoffset:0}
  }
  @media (prefers-reduced-motion: reduce){
    .rm-verdict{opacity:0;transition:opacity .2s linear}
    .rm-fig.is-risen .rm-verdict{opacity:1}
  }
  @media (max-width:900px){
    .theroom{padding:90px 0 96px}
    .rm-fig{grid-template-columns:1fr;gap:36px;margin-top:40px}
    .rm-perim{display:none}
    .rm-fates{padding-left:0}
    .rm-plate{height:auto}
    .rm-coda{margin-top:48px}
  }



  .firstcall{padding:96px 0 104px;position:relative}
  .firstcall .fc-head h2{font-family:'Playfair Display',serif;font-weight:300;font-size:clamp(34px,3.4vw,52px);line-height:1.1;letter-spacing:-.02em;color:var(--teal);margin:20px 0 0;max-width:26ch;text-wrap:balance}
  .firstcall .fc-head h2 em{font-style:italic;font-weight:400;color:var(--gold-ink)}
  .fc-sub{margin:16px 0 0;font-size:18.5px;line-height:1.7;color:var(--ink-soft);max-width:64ch}
  /* one unified descending ladder: four rows, the collapsing field is the argument */
  .fc-ladder{margin-top:40px}
  .fc-lthead{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding-bottom:14px;border-bottom:1px solid rgba(201,168,76,.4)}
  .fc-lt{display:block;font-family:'Be Vietnam Pro',system-ui,sans-serif;font-size:12.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-ink);font-weight:700}
  .fc-key{font-family:'Be Vietnam Pro',system-ui,sans-serif;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);text-align:right}
  .fc-row{display:grid;grid-template-columns:24% 1fr 30%;gap:12px;align-items:center;padding:17px 0;border-bottom:1px solid rgba(0,77,61,.12)}
  .fc-k{font-family:'Be Vietnam Pro',system-ui,sans-serif;font-size:12.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--teal);font-weight:700;line-height:1.7}
  .fc-field{display:block;height:auto}
  .fc-f1{width:100%;height:auto}
  .fc-f2{width:50%;height:auto}
  .fc-f3{width:33.3%;height:auto}
  .fc-f4{width:194px;height:24px;overflow:visible}
  .fc-f1 path,.fc-f2 path,.fc-f3 path{stroke:rgba(34,55,48,.42);stroke-width:5.5;stroke-linecap:round;fill:none}
  /* Gatelanes: one diamond per client, gold */
  .fc-field .fc-gold{fill:var(--gold);stroke:none;transform-box:fill-box;transform-origin:center}
  .fc-n{margin:0;text-align:right;font-family:'Playfair Display',serif;font-weight:400;font-size:clamp(16.5px,1.25vw,19.5px);line-height:1.4;color:#9C4A3C}
  /* answer-row — reusable pattern: on light chapters, the answer inverts to night-pine with a gold left rule.
     The band is a pseudo-element bleed, so the row's own grid geometry stays identical to its siblings. */
  .answer-row{position:relative;z-index:0}
  .answer-row::after{content:"";position:absolute;left:-24px;right:-24px;top:0;bottom:0;background:#16302A;z-index:-1}
  .answer-row::before{content:"";position:absolute;left:-24px;top:0;bottom:0;width:2px;background:var(--gold);z-index:1}
  .fc-row.ans{margin-top:14px;border-bottom:none}
  .fc-row.ans .fc-k{color:#fff}
  .fc-row.ans .fc-n{color:var(--gold-pale)}
  .fc-row.ans .fc-n{color:var(--gold-pale)}
  /* coda — the constraint */
  .fc-coda{margin-top:38px;padding-top:28px;border-top:1px solid rgba(201,168,76,.35);text-align:center}
  .fc-selk{display:block;font-family:'Be Vietnam Pro',system-ui,sans-serif;font-size:13px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-ink);font-weight:700;margin-bottom:10px}
  .fc-selline{margin:0 auto;font-family:'Playfair Display',serif;font-weight:300;font-size:clamp(20px,1.5vw,24.5px);line-height:1.5;color:var(--teal);max-width:74ch;text-wrap:balance}
  .fc-close{margin:44px auto 0;padding-bottom:52px;text-align:center;font-family:'Playfair Display',serif;font-style:italic;font-weight:400;font-size:clamp(22px,1.8vw,28px);line-height:1.6;color:var(--gold-ink);max-width:64ch;text-wrap:balance}
  html.bookflip .firstcall{padding:44px 0}
  html.bookflip .firstcall .fc-ladder{margin-top:28px}
  html.bookflip .firstcall .fc-row{padding:13px 0}
  html.bookflip .firstcall .fc-coda{margin-top:26px;padding-top:20px}
  html.bookflip .firstcall .fc-close{margin-top:26px;padding-bottom:34px}
  @media (prefers-reduced-motion: no-preference){
    /* rows fade in as they arrive (per-row observer — works for scroll and page-flip alike); fires once, no loops */
    .fc-ladder .fc-row{opacity:0;transform:translateY(8px);transition:opacity .6s var(--qm,ease),transform .6s var(--qm,ease)}
    .fc-ladder .fc-row.in,.fc-ladder.is-risen .fc-row{opacity:1;transform:none}
    /* grids wipe in left to right (~12ms per mark); diamonds fade in together and settle */
    .fc-f1,.fc-f2,.fc-f3{clip-path:inset(-6px 110% -6px -6px);transition:clip-path var(--wd,.6s) var(--qm,ease) .25s}
    .fc-row.in .fc-f1,.fc-row.in .fc-f2,.fc-row.in .fc-f3{clip-path:inset(-6px -6px -6px -6px)}
    .fc-f1{--wd:.55s}.fc-f2{--wd:.4s}.fc-f3{--wd:.32s}
    .fc-gold{opacity:0;transition:opacity .45s var(--qm,ease)}
    .fc-gold.lit{opacity:1;animation:fcLight .9s var(--qm,ease) both}
  }
  @keyframes fcLight{0%{transform:scale(1)}45%{transform:scale(1.15);filter:drop-shadow(0 0 5px rgba(201,168,76,.75))}100%{transform:scale(1);filter:drop-shadow(0 0 0 rgba(201,168,76,0))}}
  @media (prefers-reduced-motion: reduce){
    .fc-gold{opacity:1}
  }
  @media (max-width:900px){
    .firstcall{padding:90px 0 96px}
    .fc-row{grid-template-columns:1fr;gap:10px;align-items:start}
    .fc-n{text-align:left}
    .fc-row.ans{margin-top:12px}
    .answer-row::after,.answer-row::before{left:-16px}
    .answer-row::after{right:-16px}
    .fc-f2{width:50%}
    .fc-f3{width:33.3%}
  }



  /* ---- Pedigree stat polish ---- */
  .pedigree .ped-head{ align-items:center }
  .pedigree .ped-copy{ display:flex; flex-direction:column; gap:22px }
  .pedigree .ped-copy p{ margin:0 }
  .pedigree .ped-stats{ grid-template-columns:repeat(3, 1fr) }
  .pedigree .ped-stat{ overflow:hidden }
  .pedigree .ped-stat .num{ transition:color .4s var(--ease) }
  .pedigree .ped-stat:hover .num{ color:var(--gold-pale) }
  @media (prefers-reduced-motion: no-preference){
    .pedigree .ped-stat::after{
      content:""; position:absolute; left:0; top:0; height:2px; width:100%;
      background:linear-gradient(90deg, var(--gold), transparent);
      transform:scaleX(0); transform-origin:left;
      transition:transform 1.3s var(--ease-strong) .25s;
    }
    .pedigree .ped-stat.is-risen::after{ transform:scaleX(1) }
  }

  /* ---- Lineage flow network ---- */
  .lin-flow{ margin-top:8px }
  .fl-svg{ width:100%; height:auto; display:block; overflow:visible }
  .fl-colhead text{
    font-family:'Be Vietnam Pro', system-ui, sans-serif;
    font-size:16px; letter-spacing:.2em; fill:rgba(232,207,128,.72);
  }
  .fl-path{
    stroke:rgba(201,168,76,.22); stroke-width:1.25; fill:none;
    transition:stroke .45s var(--ease);
  }
  .fl-node.on .fl-path{ stroke:rgba(232,207,128,.85); stroke-width:1.5 }
  .fl-flowline{
    stroke:var(--gold-pale); stroke-width:1.6; fill:none;
    stroke-dasharray:2 10; opacity:0;
    transition:opacity .45s var(--ease);
  }
  @media (prefers-reduced-motion: no-preference){
    .fl-node.on .fl-flowline{ opacity:.95; animation:flDash 1.15s linear infinite }
    @keyframes flDash{ to{ stroke-dashoffset:-12 } }
  }
  .fl-hit{ stroke:transparent; stroke-width:36; fill:none; cursor:pointer }
  .fl-lbl{
    font-family:'Playfair Display', serif; font-size:28.5px;
    fill:rgba(255,255,255,.92); cursor:pointer;
    transition:fill .4s var(--ease);
  }
  .fl-lbl .fl-ct{ font-style:italic; font-size:22px; fill:rgba(232,207,128,.7) }
  .fl-node.on .fl-lbl{ fill:var(--gold-pale) }
  .fl-core{ fill:var(--gold) }
  .fl-core-lbl{
    font-family:'Be Vietnam Pro', system-ui, sans-serif;
    font-size:14px; letter-spacing:.42em; fill:var(--gold-pale);
  }
  .fl-pills{ display:none }
  .fl-read{
    display:grid; grid-template-columns:auto 1fr;
    gap:32px; align-items:start;
    margin-top:10px; padding-top:26px;
    border-top:1px solid rgba(201,168,76,.18);
    min-height:104px;
  }
  .fl-idx{
    font-family:'Playfair Display', serif; font-weight:300;
    font-size:52px; line-height:1; color:var(--gold-pale);
    letter-spacing:-.03em; min-width:96px;
  }
  .fl-idx, .fl-body{ transition:opacity .3s var(--ease), transform .3s var(--ease) }
  .fl-read.swap .fl-idx, .fl-read.swap .fl-body{ opacity:0; transform:translateY(7px) }
  .fl-title-row{ display:flex; align-items:baseline; gap:18px; flex-wrap:wrap; margin-bottom:8px }
  .fl-title{
    font-family:'Playfair Display', serif; font-weight:400;
    font-size:30px; color:#fff; letter-spacing:-.01em;
  }
  .fl-side{
    font-family:'Be Vietnam Pro', system-ui, sans-serif;
    font-size:12px; letter-spacing:.26em; text-transform:uppercase;
    color:var(--gold-pale); font-weight:500;
  }
  .fl-names{
    margin:0; font-family:'Playfair Display', serif;
    font-size:23px; line-height:1.7; color:rgba(255,255,255,.88);
    letter-spacing:-.005em; max-width:80ch;
  }
  .fl-names .dot{ color:rgba(201,168,76,.55); margin:0 10px }
  .fl-names.is-desc{
    font-family:'Be Vietnam Pro', system-ui, sans-serif;
    font-size:19px; line-height:1.7; color:rgba(255,255,255,.78);
    letter-spacing:.005em; max-width:74ch;
  }

  @media (max-width:980px){
    .pedigree .ped-stats{ grid-template-columns:1fr }
    .fl-svg{ display:none }
    .fl-pills{
      display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px;
    }
    .fl-pill{
      font-family:'Be Vietnam Pro', system-ui, sans-serif;
      font-size:11.5px; letter-spacing:.18em; text-transform:uppercase;
      color:var(--gold-pale); background:transparent;
      border:1px solid rgba(201,168,76,.4); border-radius:2px;
      padding:8px 14px; cursor:pointer;
    }
    .fl-pill.on{ background:rgba(201,168,76,.14) }
    .fl-read{ grid-template-columns:1fr; gap:12px }
    .fl-idx{ font-size:38px; min-width:0 }
  }



  .hero-proof .hero-sub{grid-column:1 / -1;margin:0;font-family:'Playfair Display',serif;font-weight:300;font-style:italic;font-size:clamp(19.5px,1.5vw,24px);line-height:1.65;color:rgba(247,244,236,.78);max-width:66ch}
  .lg{margin-top:44px}
  .lg + .lg{margin-top:72px}
  .lg-head{display:flex;flex-direction:column;gap:14px;margin-bottom:26px;padding-top:32px;border-top:1px solid rgba(201,168,76,.3)}
  .lg-micro{font-family:'Be Vietnam Pro',system-ui,sans-serif;font-size:11.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-pale);font-weight:500}
  .lg-h{font-family:'Playfair Display',serif;font-weight:300;font-size:clamp(20px,1.55vw,23px);letter-spacing:-.01em;line-height:1.25;color:#fff;margin:0;max-width:none;white-space:nowrap}
  .lg-grid{display:grid;grid-template-columns:repeat(5,1fr)}
  .lg-grid.cols-3{grid-template-columns:repeat(3,1fr)}
  .lg-tile{display:flex;flex-direction:column;gap:12px;padding:6px 30px 26px 0}
  .lg-grid.cols-3 .lg-tile{padding-top:26px;border-top:1px solid rgba(201,168,76,.14)}
  .lg-k{font-family:'Be Vietnam Pro',system-ui,sans-serif;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-pale);opacity:.85;line-height:1.9}
  .lg-v{font-family:'Playfair Display',serif;font-weight:300;font-size:clamp(24px,2vw,31px);line-height:1.2;color:#fff;font-variant-numeric:tabular-nums}
  .lg-vtxt{font-family:'Playfair Display',serif;font-weight:300;font-style:italic;font-size:clamp(17.5px,1.25vw,20.5px);line-height:1.65;color:rgba(247,244,236,.85)}
  .lg-s{font-family:'Be Vietnam Pro',system-ui,sans-serif;font-size:13px;letter-spacing:.04em;line-height:1.65;color:rgba(247,244,236,.6)}
  .lg-note{margin:30px 0 0;font-family:'Be Vietnam Pro',system-ui,sans-serif;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:rgba(247,244,236,.5);line-height:2.1}
  .trained-band{margin-top:84px;padding-top:36px;border-top:1px solid rgba(201,168,76,.3)}
  .tb-k{font-family:'Be Vietnam Pro',system-ui,sans-serif;font-size:11.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-pale);font-weight:500}
  .tb-marks{margin-top:24px;text-align:center;line-height:2.2}
  .tb-marks span{display:inline-block;white-space:nowrap;font-family:'Playfair Display',serif;font-weight:400;font-size:clamp(17px,1.55vw,23.5px);letter-spacing:.05em;color:rgba(247,244,236,.92)}
  .tb-marks span:not(:last-child)::after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#B08D3E;margin:0 clamp(12px,1.4vw,22px);vertical-align:middle;position:relative;top:-2px}
  @media (prefers-reduced-motion: no-preference){
    .trained-band .tb-marks span{opacity:0;transition:opacity .8s var(--qm,ease)}
    .trained-band .tb-marks span:nth-child(1){transition-delay:.1s}
    .trained-band .tb-marks span:nth-child(2){transition-delay:.16s}
    .trained-band .tb-marks span:nth-child(3){transition-delay:.22s}
    .trained-band .tb-marks span:nth-child(4){transition-delay:.28s}
    .trained-band .tb-marks span:nth-child(5){transition-delay:.34s}
    .trained-band .tb-marks span:nth-child(6){transition-delay:.4s}
    .trained-band .tb-marks span:nth-child(7){transition-delay:.46s}
    .trained-band .tb-marks span:nth-child(8){transition-delay:.52s}
    .trained-band .tb-marks span:nth-child(9){transition-delay:.58s}
    .trained-band .tb-marks span:nth-child(10){transition-delay:.64s}
    .trained-band .tb-marks span:nth-child(11){transition-delay:.7s}
    .trained-band .tb-marks span:nth-child(12){transition-delay:.76s}
    .trained-band .tb-marks span:nth-child(13){transition-delay:.82s}
    .trained-band.is-risen .tb-marks span{opacity:1}
  }
  @media (prefers-reduced-motion: reduce){
    .trained-band .tb-marks span{opacity:0;transition:opacity .2s linear}
    .trained-band.is-risen .tb-marks span{opacity:1}
  }
  @media (max-width:1180px){ .lg-grid{grid-template-columns:repeat(3,1fr)} .lg-tile{padding-top:22px;border-top:1px solid rgba(201,168,76,.14)} }
  @media (max-width:980px){ .lg-grid,.lg-grid.cols-3{grid-template-columns:1fr 1fr} }
  @media (max-width:640px){ .lg-grid,.lg-grid.cols-3{grid-template-columns:1fr} }



  /* The House leads with the training band */
  #house .trained-band{margin-top:40px;padding-top:30px}
  .trained-band .tb-marks span{color:#fff}
  #house .lg{margin-top:36px}
  /* The Record — statement-of-account ledger */
  .rec-ledger{margin-top:10px}
  .rec-row{display:flex;align-items:baseline;justify-content:space-between;gap:40px;padding:20px 0;position:relative}
  .rec-row::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:rgba(201,168,76,.28)}
  .rr-k{font-family:'Be Vietnam Pro',system-ui,sans-serif;font-size:12.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-pale);line-height:1.9;max-width:58ch}
  .rr-q{font-style:normal;margin-left:16px;font-size:11px;letter-spacing:.2em;color:rgba(247,244,236,.55)}
  .rr-v{font-family:'Playfair Display',serif;font-weight:300;font-size:clamp(30px,2.6vw,42px);line-height:1.1;color:#fff;font-variant-numeric:tabular-nums;text-align:right;flex:0 0 auto}
  @media (prefers-reduced-motion: no-preference){
    .rec-row::after{transform:scaleX(0);transform-origin:left;transition:transform .8s var(--qm,ease) .15s}
    .rec-row.is-risen::after{transform:scaleX(1)}
  }
  html.bookflip .rec-row{padding:15px 0}
  html.bookflip #house .trained-band{margin-top:18px;padding-top:16px}
  html.bookflip #house .tb-marks{margin-top:14px}
  html.bookflip #house .lg{margin-top:18px}
  html.bookflip #house .lg-head{padding-top:14px;margin-bottom:14px}
  html.bookflip #house .lg-tile{padding-bottom:14px}
  @media (max-width:760px){ .rec-row{flex-direction:column;align-items:flex-start;gap:6px} .rr-v{text-align:left} }



  .alignment{padding:110px 0 120px;position:relative}
  .alignment .al-head h2{font-family:'Playfair Display',serif;font-weight:300;font-size:clamp(38px,4vw,58px);line-height:1.08;letter-spacing:-.02em;color:var(--teal);margin:24px 0 0;max-width:20ch;text-wrap:balance}
  .alignment .al-head h2 em{font-style:italic;font-weight:400;color:var(--gold-ink)}
  .al-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:48px;border-top:1px solid rgba(201,168,76,.4)}
  .al-cell{position:relative;padding:34px 40px 42px 0}
  .al-cell:nth-child(3n+2),.al-cell:nth-child(3n+3){padding-left:40px;border-left:1px solid rgba(201,168,76,.25)}
  .al-cell:nth-child(-n+3){border-bottom:1px solid rgba(201,168,76,.25)}
  .al-cell:nth-child(4){padding-left:26px}
  /* schedule numerals — small gold italic serif, 01–06 */
  .al-n{display:block;font-family:'Playfair Display',serif;font-style:italic;font-weight:400;font-size:15px;color:var(--gold-ink);margin-bottom:12px}
  /* the two differentiators — night-pine inverted answer treatment */
  .al-cell.inv{background:#16302A;padding:30px 30px 34px 32px}
  .al-cell.inv::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--gold)}
  .al-cell.inv .al-n{color:var(--gold-pale)}
  .al-cell.inv .al-k{color:var(--gold-pale)}
  .al-cell.inv .al-v{color:rgba(255,253,247,.78)}
  .al-cell:nth-child(3).inv{border-left:none}
  .al-cell:nth-child(4).inv{padding-left:32px}
  /* stacked refusals with the hairline X bullet from The Room */
  .al-ref{list-style:none;margin:0 0 14px;padding:0}
  .al-ref li{position:relative;padding:3px 0 3px 18px;font-size:16.5px;line-height:1.45;color:rgba(255,253,247,.92)}
  .al-ref li::before,.al-ref li::after{content:"";position:absolute;left:0;top:calc(.68em + 2px);width:8px;height:1.1px;border-radius:1px;background:#C98874}
  .al-ref li::before{transform:rotate(45deg)}
  .al-ref li::after{transform:rotate(-45deg)}
  .al-cell.inv .al-v.qual{font-size:15.5px;color:rgba(255,253,247,.62)}
  .al-k{display:block;font-family:'Be Vietnam Pro',system-ui,sans-serif;font-size:11.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-ink);font-weight:600;margin-bottom:16px}
  .al-v{margin:0;font-size:18.5px;line-height:1.7;color:var(--ink-soft);max-width:44ch}
  .al-close{margin:40px 0 0;font-family:'Playfair Display',serif;font-style:italic;font-weight:400;font-size:clamp(22px,1.7vw,27.5px);line-height:1.6;color:var(--gold-ink)}
  @media (max-width:980px){
    .al-grid{grid-template-columns:1fr;border-top:none}
    .al-cell,.al-cell:nth-child(3n+2),.al-cell:nth-child(3n+3){padding:28px 0 32px;border-left:none;border-bottom:none;border-top:1px solid rgba(201,168,76,.25)}
    .al-cell:nth-child(-n+3){border-bottom:none}
    .al-cell.inv,.al-cell:nth-child(3).inv,.al-cell:nth-child(4).inv{padding:26px 22px 28px 24px;border-top:none}
  }



  .difference{
    background:var(--cream);
    padding:150px 0 160px;
    position:relative;
  }
  .difference::after{
    content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%);
    width:1px; height:64px; background:var(--gold); opacity:.55;
  }
  .diff-head{
    display:grid; grid-template-columns:1fr 1.15fr;
    gap:80px; align-items:end;
  }
  .diff-head h2{
    font-family:'Playfair Display', serif; font-weight:300;
    font-size:clamp(38px, 4vw, 58px); line-height:1.08;
    letter-spacing:-.02em; color:var(--teal);
    margin:24px 0 0; max-width:18ch; text-wrap:balance;
  }
  .diff-head h2 em{ font-style:italic; font-weight:400; color:var(--gold-ink) }
  .diff-head p{
    margin:0; color:var(--ink-soft);
    font-size:19px; line-height:1.7; max-width:56ch;
  }

  /* ---- Ledger: the claim vs the record ---- */
  .diff-ledger{
    margin-top:96px;
    border-top:1px solid rgba(201,168,76,.4);
  }
  .dl-row{
    display:grid; grid-template-columns:1fr 1.4fr;
    gap:64px; padding:46px 0 42px;
    border-bottom:1px dashed rgba(201,168,76,.32);
    position:relative;
  }
  .dh-copy{display:flex;flex-direction:column;gap:16px;margin-top:40px}
  .dh-copy p{margin:0}
  .dl-tag{
    font-family:'Be Vietnam Pro', system-ui, sans-serif;
    font-size:11.5px; letter-spacing:.3em; text-transform:uppercase;
    color:var(--ink-mute); margin-bottom:16px; font-weight:500;
    display:block;
  }
  .dl-record .dl-tag{ color:var(--gold-ink) }
  .dl-claim-txt{
    font-family:'Playfair Display', serif; font-style:italic; font-weight:400;
    font-size:clamp(24px, 1.8vw, 30px); line-height:1.35;
    color:var(--ink-mute); letter-spacing:-.008em;
    transition:opacity .45s var(--ease);
  }
  .dl-record{
    position:relative; padding-left:28px;
  }
  .dl-record::before{
    content:""; position:absolute; left:0; top:6px; bottom:6px;
    width:1px; background:var(--gold);
    transform:scaleY(0); transform-origin:top;
    transition:transform .6s var(--ease-strong);
  }
  .dl-record p{
    margin:0; font-size:19px; line-height:1.7; color:var(--ink-soft);
  }
  .dl-record p strong{
    font-weight:600; color:var(--teal);
    transition:color .45s var(--ease);
  }
  @media (hover:hover){
    .dl-row:hover .dl-claim-txt{ opacity:.38 }
    .dl-row:hover .dl-record::before{ transform:scaleY(1) }
    .dl-row:hover .dl-record p strong{ color:var(--gold-ink) }
  }

  /* ---- Cycle band ---- */
  .diff-cycle{
    margin-top:0;
    background:#FFFDF7;
    border:1px solid rgba(0,77,61,.14);
    padding:44px 48px 40px;
  }
  .cycle-sec{ padding:110px 0 120px }
  .cycle-sec .eyebrow{ display:block; margin-bottom:40px }
  .cycle-sec .cyc-head{ justify-content:flex-end }
  html.bookflip .cycle-sec .eyebrow{ margin-bottom:28px }
  .cycle-sec .diff-close{ margin-top:0; margin-bottom:56px }
  .cycle-sec .diff-close .rule{ margin-top:28px }
  .cycle-sec .diff-close .body{ margin-bottom:0 }
  .cyc-head{
    display:flex; justify-content:space-between; align-items:baseline;
    gap:24px; flex-wrap:wrap; margin-bottom:10px;
  }
  .cyc-eye{
    font-family:'Be Vietnam Pro', system-ui, sans-serif;
    font-size:12px; letter-spacing:.3em; text-transform:uppercase;
    color:var(--gold-ink); font-weight:500;
    display:inline-flex; align-items:center; gap:12px;
  }
  .cyc-eye::before{ content:""; width:22px; height:1px; background:var(--gold) }
  .cyc-note{
    font-family:'Be Vietnam Pro', system-ui, sans-serif;
    font-size:12.5px; letter-spacing:.14em; text-transform:uppercase;
    color:var(--ink-mute);
  }
  .cyc-svg{ width:100%; height:auto; display:block; cursor:crosshair }
  .cyc-svg:focus-visible{ outline:2px solid var(--gold); outline-offset:6px }
  .cyc-band{ fill:transparent; transition:fill .4s var(--ease) }
  .cyc-band.on{ fill:rgba(201,168,76,.09) }
  .cyc-mark{
    fill:var(--gold); stroke:#FBF8F1; stroke-width:1.5;
    transform-box:fill-box; transform-origin:center;
    transition:transform .4s var(--ease-strong), fill .4s var(--ease);
  }
  .cyc-mark.on{ transform:scale(1.5); fill:var(--gold-light) }
  .cyc-scrub-g{ opacity:0; transition:opacity .25s var(--ease); pointer-events:none }
  .cyc-scrub-g.on{ opacity:1 }
  @media (prefers-reduced-motion: no-preference){
    .cyc-line{
      stroke-dasharray:2600; stroke-dashoffset:2600;
      transition:stroke-dashoffset 2.8s var(--ease-strong) .2s;
    }
    .cyc-area{ opacity:0; transition:opacity 1.4s var(--ease) 1.4s }
    .diff-cycle.is-risen .cyc-line{ stroke-dashoffset:0 }
    .cyc-mark{ scale:0; transition:transform .4s var(--ease-strong), fill .4s var(--ease), scale .8s var(--spring) }
    .diff-cycle.is-risen .cyc-mark{ scale:1 }
    .diff-cycle.is-risen .cyc-mark[data-era="0"]{ transition-delay:0s, 0s, .5s }
    .diff-cycle.is-risen .cyc-mark[data-era="1"]{ transition-delay:0s, 0s, .8s }
    .diff-cycle.is-risen .cyc-mark[data-era="2"]{ transition-delay:0s, 0s, 1.1s }
    .diff-cycle.is-risen .cyc-mark[data-era="3"]{ transition-delay:0s, 0s, 1.5s }
    .diff-cycle.is-risen .cyc-mark[data-era="4"]{ transition-delay:0s, 0s, 2s }
    .diff-cycle.is-risen .cyc-mark[data-era="5"]{ transition-delay:0s, 0s, 2.5s }
    .diff-cycle.is-risen .cyc-area{ opacity:1 }
  }
  .cyc-read{
    display:grid; grid-template-columns:auto 1fr;
    gap:32px; align-items:start;
    margin-top:26px; padding-top:26px;
    border-top:1px solid rgba(0,77,61,.12);
    min-height:118px;
  }
  .cyc-idx{
    font-family:'Playfair Display', serif; font-weight:300;
    font-size:56px; line-height:1; color:var(--gold-ink);
    letter-spacing:-.03em; min-width:74px;
  }
  .cyc-idx, .cyc-body{ transition:opacity .3s var(--ease), transform .3s var(--ease) }
  .cyc-read.swap .cyc-idx, .cyc-read.swap .cyc-body{ opacity:0; transform:translateY(7px) }
  .cyc-title-row{
    display:flex; align-items:baseline; gap:18px; flex-wrap:wrap;
    margin-bottom:8px;
  }
  .cyc-title{
    font-family:'Playfair Display', serif; font-weight:400;
    font-size:26.5px; color:var(--teal); letter-spacing:-.01em;
  }
  .cyc-years{
    font-family:'Be Vietnam Pro', system-ui, sans-serif;
    font-size:12px; letter-spacing:.26em; text-transform:uppercase;
    color:var(--gold-ink); font-weight:500;
  }
  .cyc-desc{
    margin:0 0 14px; font-size:19px; line-height:1.65;
    color:var(--ink-soft); max-width:74ch;
  }
  .cyc-chips{ display:flex; gap:8px; flex-wrap:wrap }
  .cyc-chip{
    font-family:'Be Vietnam Pro', system-ui, sans-serif;
    font-size:11px; letter-spacing:.24em; text-transform:uppercase;
    color:var(--gold-ink); padding:5px 12px;
    border:1px solid rgba(201,168,76,.5); border-radius:2px;
  }

  /* ---- Close ---- */
  .diff-close{ margin-top:110px; max-width:900px }
  .diff-close .body{
    margin:0 0 52px; color:var(--ink-soft);
    font-size:22px; line-height:1.7; max-width:62ch;
  }
  .diff-close .rule{ width:60px; height:1px; background:var(--gold); margin-bottom:28px }
  .diff-close .line{
    font-family:'Playfair Display', serif; font-weight:300;
    font-size:clamp(32px, 3vw, 44px); line-height:1.22;
    letter-spacing:-.018em; color:var(--teal);
    margin:0; text-wrap:balance; max-width:26ch;
  }
  .diff-close .line em{ font-style:italic; font-weight:400; color:var(--gold-ink) }

  @media (max-width:980px){
    .difference{ padding:96px 0 100px }
    .diff-head{ grid-template-columns:1fr; gap:28px }
    .diff-ledger{ margin-top:64px }
    .dl-row{ grid-template-columns:1fr; gap:20px; padding:34px 0 }
    .dl-record{ padding-left:22px }
    .dl-record::before{ transform:scaleY(1) }
    .diff-cycle{ margin-top:72px; padding:28px 20px 26px }
    .cycle-sec .cyc-head{ justify-content:flex-start }
    .cyc-read{ grid-template-columns:1fr; gap:12px }
    .cyc-idx{ font-size:38px; min-width:0 }
    .yr-mid{ display:none }
    .diff-close{ margin-top:72px }
  }


/* ===== Standalone-page overrides (sections moved off the bookflip home) ===== */
/* Access chart and headline each get their own columns — no more collision */
.positioning .p-line:nth-of-type(1){ grid-column:1 / span 6; }
#posMatrix{ grid-column:7 / -1; }
/* The Room carried no background of its own — on the home page the darkness
   came from the page-level morphing backdrop. Give it the house dark plate. */
.theroom{ background:radial-gradient(120% 90% at 30% 25%, #1A3A32 0%, #0E2B22 55%, #0B1D17 100%); }

/* ===== FINAL: The Access Problem, standalone layout (wide text, big chart) ===== */
section#access-problem .wrap-narrow{
  max-width:1360px !important; width:min(1360px, calc(100% - 64px)) !important;
  display:grid !important; grid-template-columns:repeat(12, 1fr) !important;
  column-gap:40px !important; align-items:start !important;
}
section#access-problem .eyebrow{ grid-column:1 / -1 !important; grid-row:1 !important; }
section#access-problem .p-line:nth-of-type(1){
  grid-column:1 / span 5 !important; grid-row:2 !important;
  font-size:clamp(34px, 3vw, 50px) !important; line-height:1.14 !important;
  max-width:none !important; margin-bottom:44px !important;
}
section#access-problem .p-line:nth-of-type(2){ grid-column:1 / span 5 !important; grid-row:3 !important; }
section#access-problem .p-line:nth-of-type(3){ grid-column:1 / span 5 !important; grid-row:4 !important; }
section#access-problem .p-rule{ grid-column:1 / span 5 !important; grid-row:5 !important; }
section#access-problem #posMatrix{
  grid-column:6 / -1 !important; grid-row:2 / span 4 !important;
  position:relative !important; width:100% !important; min-height:660px !important;
  align-self:stretch !important; margin:0 !important; max-width:none !important;
}
section#access-problem #posMatrix svg{
  position:absolute !important; inset:0 0 0 36px !important;
  width:calc(100% - 36px) !important; height:100% !important;
}
@media (max-width:980px){
  section#access-problem .wrap-narrow{ display:flex !important; flex-direction:column !important; }
  section#access-problem #posMatrix{ min-height:420px !important; }
}
