/* W3 library reader and landing: the paper loom, instruments, sticky stages, interludes, closing looms.
   Lane prefix w3 (w3s splash, w3x instrument, w3r reader, w3n loom, w3e evidence, w3c chapter band, w3p landing).
   Entrances are authored grammars named w3l-*; body text never animates. */
:root{--w3-gut:max(24px,calc((100vw - 1392px)/2));--w3-rail:184px;--w3-gap:36px;--w3-ease:cubic-bezier(.16,1,.3,1);--w3-line:#c9d3cc}

/* ---------------- authored entrances (kit trigger, lane grammars) ---------------- */
:root[data-m-go] :is([data-m=w3l-lift],[data-m=w3l-slide],[data-m=w3l-tilt],[data-m=w3l-iris],[data-m=w3l-curtain],[data-m=w3l-weave],[data-m=w3l-scan],[data-m=w3l-fold],[data-m=w3l-spread])[data-m-in]{animation-duration:860ms;animation-timing-function:var(--w3-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards}
:root[data-m-go] [data-m=w3l-lift]:not([data-m-in]){opacity:.12;transform:translateY(72px) scale(.96)}
:root[data-m-go] [data-m=w3l-lift][data-m-in]{animation-name:w3l-lift}
@keyframes w3l-lift{from{opacity:.12;transform:translateY(72px) scale(.96)}}
:root[data-m-go] [data-m=w3l-iris]:not([data-m-in]){clip-path:circle(8% at 50% 50%);opacity:.4}
:root[data-m-go] [data-m=w3l-iris][data-m-in]{animation-name:w3l-iris;animation-duration:980ms}
@keyframes w3l-iris{from{clip-path:circle(8% at 50% 50%);opacity:.4}to{clip-path:circle(75% at 50% 50%);opacity:1}}
:root[data-m-go] [data-m=w3l-curtain]:not([data-m-in]){clip-path:inset(0 50% 0 50%)}
:root[data-m-go] [data-m=w3l-curtain][data-m-in]{animation-name:w3l-curtain;animation-duration:960ms}
@keyframes w3l-curtain{from{clip-path:inset(0 50% 0 50%)}to{clip-path:inset(0 0 0 0)}}
:root[data-m-go] [data-m=w3l-weave]:not([data-m-in]){clip-path:inset(0 0 100% 0)}
:root[data-m-go] [data-m=w3l-weave][data-m-in]{animation-name:w3l-weave;animation-duration:940ms}
@keyframes w3l-weave{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
:root[data-m-go] [data-m=w3l-fold]:not([data-m-in]){opacity:.2;transform:perspective(1400px) rotateX(14deg) translateY(40px);transform-origin:50% 0}
:root[data-m-go] [data-m=w3l-fold][data-m-in]{animation-name:w3l-fold}
@keyframes w3l-fold{from{opacity:.2;transform:perspective(1400px) rotateX(14deg) translateY(40px)}}
:root[data-m-go] [data-m=w3l-spread]:not([data-m-in]){opacity:.15;transform:scale(.9)}
:root[data-m-go] [data-m=w3l-spread][data-m-in]{animation-name:w3l-spread}
@keyframes w3l-spread{from{opacity:.15;transform:scale(.9)}}
/* containers that are taller than a screen animate their pinned child, never themselves */
:root[data-m-go] :is([data-m=w3l-scan],[data-m=w3l-slide],[data-m=w3l-tilt])[data-m-in]{animation-name:w3l-none}
@keyframes w3l-none{from{opacity:1}}
:root[data-m-go] [data-m=w3l-scan]:not([data-m-in]) > *{opacity:.15;clip-path:inset(0 0 100% 0)}
:root[data-m-go] [data-m=w3l-scan][data-m-in] > *{animation-name:w3l-scanin;animation-duration:900ms;animation-timing-function:var(--w3-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards}
@keyframes w3l-scanin{from{opacity:.15;clip-path:inset(0 0 100% 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}
:root[data-m-go] [data-m=w3l-slide]:not([data-m-in]) > *{opacity:.1;transform:translateX(90px)}
:root[data-m-go] [data-m=w3l-slide][data-m-in] > *{animation-name:w3l-slidein;animation-duration:860ms;animation-timing-function:var(--w3-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards}
@keyframes w3l-slidein{from{opacity:.1;transform:translateX(90px)}}
:root[data-m-go] [data-m=w3l-tilt]:not([data-m-in]) > *{opacity:.12;transform:perspective(1200px) rotateY(-18deg) translateX(40px);transform-origin:100% 50%}
:root[data-m-go] [data-m=w3l-tilt][data-m-in] > *{animation-name:w3l-tiltin;animation-duration:880ms;animation-timing-function:var(--w3-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards}
@keyframes w3l-tiltin{from{opacity:.12;transform:perspective(1200px) rotateY(-18deg) translateX(40px)}}
:root[data-m-go] [data-m=w3l-loom]{animation-name:w3l-none;animation-duration:1ms;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-m=w3l-loom]:not([data-m-in]) .w3r-rail__pin{opacity:0;clip-path:inset(0 0 100% 0)}
:root[data-m-go] [data-m=w3l-loom][data-m-in] .w3r-rail__pin{animation-name:w3l-scanin;animation-duration:900ms;animation-timing-function:var(--w3-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards}

/* ---------------- splash: the paper loom ---------------- */
.w3s{position:relative;isolation:isolate;overflow:hidden;background:#072d2b;color:#f6f4ef;min-height:clamp(640px,calc(100svh - 88px),940px);display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:1fr auto auto}
.w3s__ground{position:absolute;inset:0;z-index:-2}
.w3s__glow{position:absolute;inset:-10%;background:radial-gradient(60% 70% at 78% 40%,#0e4d4a 0,transparent 70%),radial-gradient(40% 50% at 12% 90%,#0a3d3a 0,transparent 70%);overflow-anchor:none}
.w3s__field{position:absolute;inset:0;z-index:-1}
.w3s-field{width:100%;height:100%;display:block;overflow:visible}
.w3s-warp{stroke:#e2ebe6;stroke-opacity:.22;stroke-width:1.2}
.w3s-warp.is-group{stroke:#6bb68f;stroke-opacity:.5}
.w3s-group path{stroke:#6bb68f;stroke-opacity:.4}
.w3s-group text{fill:#9fc7b2;font:500 13px var(--gft-font-mono);letter-spacing:.08em}
.w3s-group.is-on path{stroke:var(--w3s-accent);stroke-opacity:1;stroke-width:3}
.w3s-group.is-on text{fill:var(--w3s-accent)}
.w3s-weft__line{stroke:#6bb68f;stroke-opacity:.72;stroke-width:2.4;fill:none;transition:stroke .5s,stroke-opacity .5s,stroke-width .5s}
.w3s-weft.is-on .w3s-weft__line{stroke:var(--w3s-accent);stroke-opacity:1;stroke-width:4}
.w3s-weft__label{fill:#9fc7b2;font:500 13px var(--gft-font-mono);letter-spacing:.06em;transition:fill .4s}
.w3s-weft.is-on .w3s-weft__label{fill:var(--w3s-accent)}
.w3s-gaps{stroke-width:5}
.w3s-echo path{fill:none;stroke:#e2ebe6;stroke-opacity:.16;stroke-width:1.6}
:root[data-m-go] .w3s-echo path{stroke-dasharray:1;animation-name:w3s-draw;animation-duration:1200ms;animation-delay:calc(160ms + var(--j,0) * 30ms);animation-timing-function:var(--w3-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards}
.w3s-bits{stroke:#e2ebe6;stroke-opacity:.42;stroke-width:1.4}
.w3s-nodes{fill:#e2ebe6;fill-opacity:.85}
.w3s-numeral{font:900 520px/1 var(--gft-font-display);letter-spacing:-.06em;fill:#ffffff06;stroke:#6bb68f;stroke-opacity:.34;stroke-width:2.5}
.w3s-reed path{stroke:var(--w3s-accent);stroke-width:2;stroke-opacity:.7}
.w3s-reed{overflow-anchor:none}
.w3s-field .m-train{fill:var(--w3s-accent,#c98a2b)}
:root[data-m-go] [data-m-live~=w3s-reed][data-m-on]{animation-name:w3s-reed;animation-duration:14s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal}
@keyframes w3s-reed{from{transform:translateX(0)}to{transform:translateX(var(--w3s-run,1000px))}}
:root[data-m-go] .w3s-warp{stroke-dasharray:1;animation-name:w3s-draw;animation-duration:1000ms;animation-delay:calc(var(--i,0) * 14ms);animation-timing-function:var(--w3-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards}
:root[data-m-go] .w3s-weft__line{stroke-dasharray:1;animation-name:w3s-draw;animation-duration:1300ms;animation-delay:calc(260ms + var(--j,0) * 90ms);animation-timing-function:var(--w3-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards}
:root[data-m-go] :is(.w3s-bits,.w3s-nodes,.w3s-gaps,.w3s-weft__label,.w3s-group){animation-name:w3s-fade;animation-duration:700ms;animation-delay:900ms;animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards}
:root[data-m-go] .w3s-numeral{stroke-dasharray:1;animation-name:w3s-draw;animation-duration:1600ms;animation-timing-function:var(--w3-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards}
@keyframes w3s-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes w3s-fade{from{opacity:0}}
.w3s__inner{align-self:center;padding:72px var(--w3-gut) 40px;max-width:calc(var(--w3-gut) + 760px);position:relative}
.w3s__inner::before{content:'';position:absolute;inset:-10% -12% -10% -50vw;z-index:-1;background:linear-gradient(90deg,#072d2b 55%,transparent);pointer-events:none}
.w3s__crumbs{font:500 12px var(--gft-font-mono);letter-spacing:.08em;color:#9fc7b2;margin-bottom:28px;text-transform:uppercase}
.w3s__crumbs a{text-decoration:none;color:inherit}.w3s__crumbs a:hover{color:#fff}
.w3s__eyebrow{color:#6bb68f;margin-bottom:22px}
.w3s__title{font-size:clamp(2.6rem,5.4vw,5.6rem);line-height:.98;letter-spacing:-.055em;max-width:16ch;color:#fff}
.w3s--paper .w3s__title{font-size:clamp(3rem,7vw,7.4rem);max-width:12ch}
.w3s__lede{margin-top:28px;font:italic 400 clamp(1.15rem,1.6vw,1.45rem)/1.5 var(--gft-font-serif);color:#d7e6dd;max-width:44ch}
.w3s__actions{display:flex;flex-wrap:wrap;gap:22px;align-items:center;margin-top:34px}
.w3s__second{color:#e2ebe6}
.w3s__facts{display:flex;flex-wrap:wrap;gap:12px 34px;margin:40px 0 0;padding-top:20px;border-top:1px solid #ffffff26}
.w3s__facts div{min-width:84px}
.w3s__facts dt{font:500 11px var(--gft-font-mono);letter-spacing:.12em;text-transform:uppercase;color:#9fc7b2}
.w3s__facts dd{margin:4px 0 0;font:850 clamp(1.6rem,2.4vw,2.3rem)/1 var(--gft-font-display);letter-spacing:-.04em;color:#fff;font-variant-numeric:tabular-nums}
.w3s__ticker{display:flex;gap:18px;align-items:center;padding:14px var(--w3-gut);border-top:1px solid #ffffff1f;background:#05211fcc;font:500 12px var(--gft-font-mono);letter-spacing:.06em;color:#cfe0d6;min-height:48px}
.w3s__live{display:inline-flex;gap:10px;align-items:center;color:#6bb68f;text-transform:uppercase;white-space:nowrap}
.w3s__live i{width:8px;height:8px;border-radius:50%;background:#c98a2b;display:inline-block}
.w3s__tick{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0;flex:1}
:root[data-m-go] .w3s__tick.is-new{animation-name:w3s-tick;animation-duration:600ms;animation-timing-function:var(--w3-ease);animation-iteration-count:1;animation-direction:normal}
@keyframes w3s-tick{from{opacity:0;transform:translateY(10px)}}
.w3s__legend{padding:10px var(--w3-gut) 72px;font:400 12px/1.5 var(--gft-font-mono);color:#8fb3a1;background:#05211fcc;margin:0;max-width:none}

/* ---------------- chapter band: the lead instrument directly under the splash ---------------- */
.w3c-band{position:relative;z-index:2;margin-top:-56px;padding:0 var(--w3-gut) 72px}
.w3c-band__inner{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);gap:28px;align-items:start}
.w3c-band__inner > .w3x{box-shadow:0 30px 80px -40px #072d2b99}
.w3c-band__map{background:#e2ebe6;padding:26px 26px 20px;border-top:3px solid var(--gft-forest);margin-top:56px}
.w3c-map{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:2px}
.w3c-map a{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:4px 12px;align-items:center;padding:9px 6px;text-decoration:none;min-height:44px;border-bottom:1px solid #c9d3cc}
.w3c-map a:hover,.w3c-map a:focus-visible{background:#f6f4ef}
.w3c-map__no{font:600 12px var(--gft-font-mono);color:var(--gft-leaf-ink,#2a6e50)}
.w3c-map__t{font-weight:650;font-size:14px;line-height:1.3}
.w3c-map__m{font:500 11px var(--gft-font-mono);color:#4d5c57;white-space:nowrap}
.w3c-map__bar{grid-column:2/4;display:flex;gap:4px;align-items:center;height:8px}
.w3c-map__bar i{display:block;height:3px;width:calc(var(--w) * 100%);background:var(--gft-forest);transform-origin:0 50%}
.w3c-map__bar b{width:8px;height:8px;background:var(--gft-ochre);display:block}
.w3c-band[data-m-in] .w3c-map__bar i{animation-name:w3x-growx;animation-duration:900ms;animation-timing-function:var(--w3-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards}
.w3c-band__note{font-size:12px;line-height:1.5;color:#4d5c57;margin-top:14px}

/* ---------------- instruments ---------------- */
.w3x{--w3x-bg:#fff;--w3x-ink:#25302e;--w3x-mute:#4d5c57;--w3x-grid:#dde3de;--w3x-line:#c9d3cc;--w3x-c0:#0e4d4a;--w3x-c1:#c98a2b;--w3x-c2:#2c3e7a;--w3x-c3:#3f8f6b;--w3x-c4:#6bb68f;--w3x-c5:#7a8d87;--w3x-hi:#c98a2b;margin:0;background:var(--w3x-bg);color:var(--w3x-ink);border:1px solid var(--w3x-line);padding:20px 20px 14px;display:grid;gap:12px;min-width:0;position:relative}
.w3x--night{--w3x-bg:#0a3d3a;--w3x-ink:#f6f4ef;--w3x-mute:#b9cfc4;--w3x-grid:#ffffff1f;--w3x-line:#ffffff2e;--w3x-c0:#6bb68f;--w3x-c1:#e0a54d;--w3x-c2:#9fb2ec;--w3x-c3:#e2ebe6;--w3x-c4:#6bb68f;--w3x-c5:#9aaba5}
.w3x::before{content:'';position:absolute;left:-1px;top:-1px;width:56px;height:3px;background:var(--w3x-hi)}
.w3x__cap{display:grid;gap:8px}
.w3x__meta{display:flex;flex-wrap:wrap;gap:6px 14px;font:500 11px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--w3x-mute)}
.w3x__no{color:var(--w3x-c0);font-weight:700}
.w3x__tag{padding:0 6px;border:1px solid currentColor;border-radius:2px}
.w3x__tag.is-sourced{color:var(--w3x-c0)}
.w3x__title{font-size:clamp(1.05rem,1.4vw,1.3rem);line-height:1.25;letter-spacing:-.02em;font-weight:780}
.w3x--wide .w3x__title{font-size:clamp(1.2rem,1.8vw,1.6rem)}
.w3x__chips,.w3x__rows{display:flex;flex-wrap:wrap;gap:6px}
.w3x__chip,.w3x__row{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:6px 12px;border:1px solid var(--w3x-line);background:transparent;font:600 12.5px/1.2 var(--gft-font-display);color:var(--w3x-ink);border-radius:18px;text-align:left}
.w3x__chip i{width:10px;height:10px;border-radius:50%;background:currentColor;display:inline-block}
.w3x__chip i.w3x-c0{color:var(--w3x-c0)}.w3x__chip i.w3x-c1{color:var(--w3x-c1)}.w3x__chip i.w3x-c2{color:var(--w3x-c2)}.w3x__chip i.w3x-c3{color:var(--w3x-c3)}.w3x__chip i.w3x-c4{color:var(--w3x-c4)}.w3x__chip i.w3x-c5{color:var(--w3x-c5)}
.w3x__chip[aria-pressed=true]{border-color:var(--w3x-ink);box-shadow:inset 0 0 0 1px var(--w3x-ink)}
.w3x__chip[aria-pressed=false]{opacity:.55;text-decoration:line-through}
.w3x__row.is-on{background:var(--w3x-c0);border-color:var(--w3x-c0);color:#fff}
.w3x--night .w3x__row.is-on{color:#072d2b}
.w3x__plot{position:relative;outline-offset:3px;min-width:0}
.w3x-svg{width:100%;height:auto;display:block;overflow:visible;font-family:var(--gft-font-display);font-variant-numeric:tabular-nums}
.w3x-svg text{fill:var(--w3x-ink);font-size:12px}
.w3x-grid line{stroke:var(--w3x-grid);stroke-width:1}
.w3x-grid text{fill:var(--w3x-mute);font-size:11px;font-family:var(--gft-font-mono)}
.w3x-axis{stroke:var(--w3x-mute);stroke-width:1}
.w3x-hit{fill:transparent;pointer-events:all;cursor:pointer}
.w3x-mark .w3x-hit{fill:var(--w3x-c0);fill-opacity:0;transition:fill-opacity .25s}
.w3x-mark.is-on .w3x-hit{fill-opacity:.07}
.w3x-svg .w3x-lab{fill:var(--w3x-mute);font-size:12px}
.w3x-svg .w3x-val{font-size:12px;font-weight:700;font-family:var(--gft-font-mono)}
.w3x-c0{fill:var(--w3x-c0);stroke:var(--w3x-c0)}.w3x-c1{fill:var(--w3x-c1);stroke:var(--w3x-c1)}.w3x-c2{fill:var(--w3x-c2);stroke:var(--w3x-c2)}.w3x-c3{fill:var(--w3x-c3);stroke:var(--w3x-c3)}.w3x-c4{fill:var(--w3x-c4);stroke:var(--w3x-c4)}.w3x-c5{fill:var(--w3x-c5);stroke:var(--w3x-c5)}
.w3x-bar{stroke:none;transition:opacity .3s}
.w3x-mark:not(.is-on) .w3x-bar{opacity:.78}
.w3x-mark.is-on .w3x-bar{opacity:1;stroke:var(--w3x-hi);stroke-width:2}
.w3x-mark.is-on .w3x-lab{fill:var(--w3x-ink);font-weight:700}
.w3x-line{fill:none;stroke-width:2.6}
.w3x-area{stroke:none;fill-opacity:.12}
.w3x-dot{stroke:var(--w3x-bg);stroke-width:2}
.w3x-cursor{stroke:var(--w3x-hi);stroke-width:1.5;stroke-dasharray:3 3;opacity:0}
.w3x-col .w3x-dot{opacity:0;transition:opacity .2s}
.w3x-col.is-on .w3x-cursor,.w3x-col.is-on .w3x-dot{opacity:1}
.w3x-link{stroke:var(--w3x-mute);stroke-width:2}
.w3x-tick{stroke:var(--w3x-ink);stroke-width:3}
.w3x-stem{stroke:var(--w3x-mute)}
.w3x-mark.is-on .w3x-dot{stroke:var(--w3x-hi);stroke-width:3}
.w3x-cell{fill:var(--w3x-c0);fill-opacity:calc(.1 + var(--t,0) * .85)}
.w3x-svg .w3x-cellv{font:600 12px var(--gft-font-mono);fill:var(--w3x-ink)}
.w3x-svg .w3x-cellv.is-dark{fill:#fff}
.w3x--night .w3x-svg .w3x-cellv.is-dark{fill:#072d2b}
.w3x-mark.is-on .w3x-cell{stroke:var(--w3x-hi);stroke-width:2}
.w3x-quad{fill:var(--w3x-c4);fill-opacity:.1}
.w3x-quad--1,.w3x-quad--2{fill:var(--w3x-c1);fill-opacity:.07}
.w3x-svg .w3x-quadt{fill:var(--w3x-mute);font-size:11px}
.w3x-svg .w3x-plab{font-size:11.5px;font-weight:600;paint-order:stroke;stroke:var(--w3x-bg);stroke-width:4px}
.w3x-svg .w3x-plab--crowd{opacity:0;transition:opacity .25s}.w3x-svg .w3x-mark.is-on .w3x-plab--crowd,.w3x-svg .w3x-mark:hover .w3x-plab--crowd,.w3x-svg .w3x-mark:focus-within .w3x-plab--crowd{opacity:1}
.w3x-edge{fill:none;stroke:var(--w3x-mute);stroke-width:1.6;stroke-opacity:.6}
.w3x-edge.is-back{stroke-dasharray:4 4}
.w3x-edge.is-on{stroke:var(--w3x-hi);stroke-opacity:1;stroke-width:2.6}
.w3x-box{fill:var(--w3x-bg);stroke:var(--w3x-c0);stroke-width:1.5}
.w3x-node.is-on .w3x-box{fill:var(--w3x-c0)}
.w3x-svg .w3x-nlab{font-size:13px;font-weight:600}
.w3x-node.is-on .w3x-nlab{fill:#fff}
.w3x--night .w3x-node.is-on .w3x-nlab{fill:#072d2b}
.w3x-node{cursor:pointer}
.w3x-band{fill-opacity:.1;stroke:none}
.w3x-mark.is-on .w3x-band{fill-opacity:.24}
.w3x-chip{fill:var(--w3x-bg);stroke:var(--w3x-line)}
.w3x-svg .w3x-chipt{font-size:11.5px}
.w3x-svg .w3x-ptitle{font-size:13px;font-weight:750}
.w3x-flowband{fill:none;stroke-opacity:.32;transition:stroke-opacity .25s}
.w3x-mark.is-on .w3x-flowband{stroke-opacity:.8}
.w3x-snode{fill:var(--w3x-ink)}
.w3x-figs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.w3x-fig{display:grid;gap:6px;align-content:start;padding:14px;border:1px solid var(--w3x-line);cursor:pointer;min-width:0}
.w3x-fig.is-on{border-color:var(--w3x-hi);box-shadow:inset 0 3px 0 var(--w3x-hi)}
.w3x--rail .w3x-figs,.w3x--card .w3x-figs{grid-template-columns:repeat(2,minmax(0,1fr))}
.w3x--rail .w3x-figv,.w3x--card .w3x-figv{font-size:clamp(1.1rem,1.5vw,1.45rem)}
.w3x-fig{overflow:hidden}
.w3x-figv{font:850 clamp(1.4rem,2.2vw,2rem)/1.05 var(--gft-font-display);letter-spacing:-.04em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.w3x-figl{font-weight:650;font-size:13px;line-height:1.3}
.w3x-figd{font-size:12px;line-height:1.45;color:var(--w3x-mute)}
.w3x-card{margin:0;display:grid;gap:0;border-top:2px solid var(--w3x-c0)}
.w3x-card div{display:grid;grid-template-columns:minmax(110px,32%) 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--w3x-line)}
.w3x-card dt{font:600 11px/1.4 var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--w3x-mute)}
.w3x-card dd{margin:0;font-size:15px;line-height:1.5}
.w3x-card .is-key dd{font-weight:750}
.w3x__ctl{display:grid;grid-template-columns:44px minmax(0,1fr) 44px auto;gap:8px;align-items:center}
.w3x__step{width:44px;height:44px;border:1px solid var(--w3x-line);background:transparent;font-size:17px;color:var(--w3x-ink)}
.w3x__step:hover{background:var(--w3x-c0);color:#fff;border-color:var(--w3x-c0)}
.w3x__ctl input{width:100%;accent-color:var(--w3x-c0)}
.w3x--night .w3x__ctl input{accent-color:#6bb68f}
.w3x__count{font:500 12px var(--gft-font-mono);color:var(--w3x-mute);white-space:nowrap}
.w3x__count b{color:var(--w3x-ink)}
.w3x__read{margin:0;max-width:none;display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:baseline;padding:10px 12px;background:color-mix(in srgb,var(--w3x-c0) 7%,transparent);border-left:3px solid var(--w3x-hi);min-height:3.4em}
.w3x__rl{font:600 10.5px var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--w3x-mute)}
.w3x__read output{font-size:14px;line-height:1.45;font-weight:560}
.w3x--rail .w3x__read{min-height:6.4em;align-items:start}
.w3x--rail .w3x__read output{font-size:13.5px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.w3x__method,.w3x__full{font-size:13.5px;line-height:1.55;color:var(--w3x-mute)}
.w3x__method summary,.w3x__full summary{cursor:pointer;min-height:36px;display:flex;align-items:center;font:600 12px var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--w3x-ink)}
.w3x__method p{margin-top:6px}
.w3x__ctx{display:inline-flex;min-height:44px;align-items:center;font-weight:650;color:var(--w3x-ink)}
.w3x__tablewrap{overflow-x:auto;margin-top:8px}
.w3x__tablewrap table{border-collapse:collapse;width:100%;min-width:560px;font-size:14px;line-height:1.45;color:var(--w3x-ink)}
.w3x__tablewrap th,.w3x__tablewrap td{text-align:left;vertical-align:top;padding:9px 10px;border-bottom:1px solid var(--w3x-line)}
.w3x__tablewrap thead th{background:var(--w3x-c0);color:#fff;padding:0}
.w3x__tablewrap thead button{all:unset;cursor:pointer;display:flex;gap:6px;align-items:center;padding:9px 10px;min-height:28px;font:600 12px var(--gft-font-mono);letter-spacing:.04em}
.w3x__tablewrap thead button:focus-visible{outline:3px solid var(--gft-ochre)}
.w3x__tablewrap tbody tr{cursor:pointer}
.w3x__tablewrap tbody tr.is-on{background:color-mix(in srgb,var(--w3x-hi) 16%,transparent)}
/* marks draw from their baseline when the instrument arrives or changes */
@keyframes w3x-growy{from{transform:scaleY(0)}}
@keyframes w3x-growx{from{transform:scaleX(0)}}
@keyframes w3x-dash{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes w3x-pop{from{transform:scale(0);opacity:0}}
@keyframes w3x-fade{from{opacity:0}}
.w3x-bar--v{transform-box:fill-box;transform-origin:50% 100%}
.w3x-bar--h,.w3x-bar--x{transform-box:fill-box;transform-origin:0 50%}
.w3x-dot,.w3x-box,.w3x-fig{transform-box:fill-box;transform-origin:50% 50%}
:root[data-m-go] :is(.w3r-stage[data-m-in] .w3r-stage__item.is-active,.w3c-band[data-m-in],.w3x[data-m-in],.w3p-deck[data-m-in] .w3p-deck__item.is-active,.w3x__plot.is-redraw,.w3b__stage) :is(.w3x-bar--v){animation-name:w3x-growy;animation-duration:900ms;animation-timing-function:var(--w3-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards;animation-delay:calc(var(--d,0ms) + 120ms)}
:root[data-m-go] :is(.w3r-stage[data-m-in] .w3r-stage__item.is-active,.w3c-band[data-m-in],.w3x[data-m-in],.w3p-deck[data-m-in] .w3p-deck__item.is-active,.w3x__plot.is-redraw,.w3b__stage) :is(.w3x-bar--h,.w3x-bar--x){animation-name:w3x-growx;animation-duration:900ms;animation-timing-function:var(--w3-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards;animation-delay:calc(var(--d,0ms) + 120ms)}
:root[data-m-go] :is(.w3r-stage[data-m-in] .w3r-stage__item.is-active,.w3c-band[data-m-in],.w3x[data-m-in],.w3p-deck[data-m-in] .w3p-deck__item.is-active,.w3x__plot.is-redraw,.w3b__stage) :is(.w3x-line,.w3x-edge,.w3x-flowband){stroke-dasharray:1;animation-name:w3x-dash;animation-duration:1100ms;animation-timing-function:var(--w3-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards;animation-delay:120ms}
:root[data-m-go] :is(.w3r-stage[data-m-in] .w3r-stage__item.is-active,.w3c-band[data-m-in],.w3x[data-m-in],.w3p-deck[data-m-in] .w3p-deck__item.is-active,.w3x__plot.is-redraw,.w3b__stage) :is(.w3x-mark:not(.w3x-col) .w3x-dot,.w3x-box,.w3x-fig,.w3x-cell){animation-name:w3x-pop;animation-duration:700ms;animation-timing-function:var(--w3-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards;animation-delay:calc(var(--d,0ms) + 200ms)}
.w3x-flowband,.w3x-edge{stroke-dasharray:none}
.w3x-edge.is-back{stroke-dasharray:4 4}
.w3x [data-k="1"]{--d:30ms}.w3x [data-k="2"]{--d:60ms}.w3x [data-k="3"]{--d:90ms}.w3x [data-k="4"]{--d:120ms}.w3x [data-k="5"]{--d:150ms}.w3x [data-k="6"]{--d:180ms}.w3x [data-k="7"]{--d:200ms}.w3x [data-k="8"]{--d:220ms}.w3x [data-k="9"]{--d:240ms}

/* ---------------- reader ---------------- */
.w3r{display:grid;grid-template-columns:var(--w3-rail) minmax(0,1fr);column-gap:var(--w3-gap);padding:24px var(--w3-gut) 0;overflow-x:clip;background:#f6f4ef}
.w3r-rail{grid-column:1;position:relative}
.w3r-rail__pin{position:sticky;top:24px;padding:18px 0 24px;max-height:calc(100svh - 48px);overflow:auto;scrollbar-width:none}
.w3r-rail__k{font:600 11px var(--gft-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gft-leaf-ink,#2a6e50);margin-bottom:12px}
.w3r-rail__bar{position:absolute;left:0;top:0;bottom:0;width:2px;background:#dfe5e0}
.w3r-rail__bar i{display:block;height:100%;background:var(--gft-ochre);transform-origin:50% 0;transform:scaleY(0)}
.w3r-rail__list{list-style:none;margin:0;padding:0 0 0 14px;display:grid;gap:2px}
.w3r-rail__list a{display:grid;grid-template-columns:34px 1fr;gap:2px 8px;padding:7px 4px;min-height:44px;text-decoration:none;font-size:12.5px;line-height:1.3;color:#4d5c57;align-content:start}
.w3r-rail__list a[aria-current]{color:var(--gft-night)}
.w3r-rail__list a[aria-current] .w3r-rail__t{font-weight:700}
.w3r-rail__no{font:600 11px var(--gft-font-mono);color:var(--gft-leaf-ink,#2a6e50);grid-row:2}
.w3r-rail__t{grid-row:2}
.w3r-rail__thread{grid-column:1/3;height:3px;background:#dfe5e0;display:block;overflow:hidden}
.w3r-rail__thread i{display:block;height:100%;background:var(--gft-forest);transform-origin:0 50%;transform:scaleX(0)}
.w3r-rail__all{display:inline-flex;min-height:44px;align-items:center;margin:14px 0 0 18px;font-size:13px;font-weight:650}
.w3r-main{grid-column:2;min-width:0}
.w3r-sec{display:grid;grid-template-columns:minmax(0,720px) minmax(360px,1fr);column-gap:40px;grid-template-rows:auto 1fr;padding:44px 0 48px;border-top:1px solid var(--w3-line)}
.w3r-sec--opening{grid-template-rows:1fr;border-top:0;padding-top:24px}
.w3r-sec__head{grid-column:1;grid-row:1;position:relative;padding-bottom:30px}
.w3r-sec__no{display:block;font:900 clamp(3.4rem,6vw,6rem)/.9 var(--gft-font-display);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1.5px var(--gft-leaf);margin-bottom:10px}
.w3r-sec__head h2{font-size:clamp(1.9rem,3vw,2.9rem);line-height:1.05;max-width:20ch}
.w3r-sec__meta{margin-top:14px;font:500 12px var(--gft-font-mono);letter-spacing:.04em;color:#4d5c57}
.w3r-stage{grid-column:2;grid-row:1 / span 2;position:relative;min-width:0}
.w3r-sec--opening .w3r-stage{grid-row:1}
.w3r-stage__pin{position:sticky;top:24px;display:grid;gap:12px}
.w3r-stage__items{display:grid}
.w3r-stage__item{grid-area:1/1;transition:opacity .35s ease .18s,transform .55s var(--w3-ease) .18s,visibility 0s linear .18s;min-width:0}
.w3r-stage__item:not(.is-active){opacity:0;transform:translateY(24px);visibility:hidden;pointer-events:none;transition:opacity .18s ease,transform .18s ease,visibility 0s linear .18s}
.w3r-stage__dots{display:flex;gap:6px;flex-wrap:wrap}
.w3r-stage__dots button{min-height:36px;padding:4px 12px;border:1px solid var(--w3-line);background:#fff;font:600 11.5px var(--gft-font-mono);letter-spacing:.04em}
.w3r-stage__dots button[aria-pressed=true]{background:var(--gft-forest);color:#fff;border-color:var(--gft-forest)}
.w3r-loomcard{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 14px;align-items:center;padding:12px 14px;background:#072d2b;color:#e2ebe6}
.w3r-loomcard__no{grid-row:1/3;font:900 2.1rem/1 var(--gft-font-display);letter-spacing:-.05em;color:#6bb68f}
.w3r-loomcard__steps{list-style:none;margin:0;padding:0;display:flex;gap:4px;align-items:center;min-height:10px}
.w3r-loomcard__steps li{flex:1;display:block;height:4px;background:#ffffff26;position:relative}
.w3r-loomcard__steps li i{position:absolute;inset:0;background:#c98a2b;transform:scaleX(0);transform-origin:0 50%;transition:transform .6s var(--w3-ease)}
.w3r-loomcard__steps li.is-past i{transform:scaleX(1);background:#6bb68f}
.w3r-loomcard__steps li.is-on i{transform:scaleX(1)}
.w3r-loomcard__steps span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.w3r-loomcard__now{font:500 12px/1.35 var(--gft-font-mono);color:#cfe0d6;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.w3r-prose{grid-column:1;grid-row:2;font-size:16.5px;line-height:1.66;color:#25302e;min-width:0}
.w3r-sec--opening .w3r-prose{grid-row:1}
.w3r-prose > *+*{margin-top:.9em}
.w3r-prose p{max-width:none}
.w3r-prose .lede{font-size:1.18em;line-height:1.6;color:#1b2523}
.w3r-prose .dropcap{float:left;font:900 4.6em/.8 var(--gft-font-display);margin:.06em .1em 0 0;color:var(--gft-forest)}
.w3r-prose h3{font-size:1.3rem;letter-spacing:-.025em;margin-top:1.6em;padding-top:14px;border-top:2px solid var(--gft-forest);max-width:30ch}
.w3r-prose ol,.w3r-prose ul{padding-left:1.3em}
.w3r-prose li+li{margin-top:.5em}
.w3r-prose a{color:var(--gft-forest)}
.w3r-prose a.cite{font:600 .68em var(--gft-font-mono);vertical-align:super;text-decoration:none;color:var(--gft-leaf-ink,#2a6e50);padding:0 1px}
.w3r-prose code,.w3r-prose .mono{font-family:var(--gft-font-mono);font-size:.86em;background:#e9eee9;padding:0 .25em;overflow-wrap:anywhere}
.w3r-prose .index-term{border-bottom:1px dotted #9fb5aa}
.w3r-prose aside.callout{margin-top:1.6em;padding:20px 22px;background:#e2ebe6;border-left:4px solid var(--gft-forest);font-size:16px;line-height:1.65}
.w3r-prose aside.callout.warning{border-left-color:var(--gft-ochre);background:#f3ead9}
.w3r-prose aside.callout.method{border-left-color:var(--gft-indigo);background:#e6e9f2}
.w3r-prose aside.callout h3{border:0;margin:0 0 8px;padding:0;font-size:1.05rem}
.w3r-prose aside.callout > *+*{margin-top:.8em}
.w3r-prose pre{white-space:pre-wrap;font-size:14px;background:#e9eee9;padding:14px}
.w3r-at{display:block;height:0}
/* pull quote and dark interlude break out of the reading grid, full bleed */
.w3r-bleed{margin-left:calc(-1 * (var(--w3-gut) + var(--w3-rail) + var(--w3-gap)));margin-right:calc(-1 * var(--w3-gut));position:relative;z-index:3}
.w3r-quote{padding:clamp(60px,8vw,110px) var(--w3-gut);background:#ece8df;overflow:hidden}
.w3r-quote__thread{position:absolute;left:0;right:0;top:50%;width:100%;height:120px;transform:translateY(-50%);overflow:visible}
.w3r-quote__thread path{fill:none;stroke:var(--gft-ochre);stroke-width:2;stroke-dasharray:1}
:root[data-m-go] :is(.w3r-quote,.w3r-exergue)[data-m-in] .w3r-quote__thread path{animation-name:w3x-dash;animation-duration:1400ms;animation-timing-function:var(--w3-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards}
.w3r-quote blockquote{margin:0 auto;max-width:980px;position:relative;background:#ece8df;padding:10px 0}
.w3r-quote blockquote p{font:italic 400 clamp(1.9rem,3.6vw,3.4rem)/1.18 var(--gft-font-serif);letter-spacing:-.02em;color:var(--gft-night);max-width:none}
.w3r-quote footer{margin-top:22px;font:500 12px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#4d5c57}
.w3r-dark{background:#072d2b;color:#f6f4ef;overflow:hidden;isolation:isolate;margin-top:0}
.w3r-dark__field{position:absolute;inset:0;z-index:-1;opacity:.85}
.w3r-dark__inner{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:56px;padding:clamp(80px,9vw,130px) var(--w3-gut);align-items:center}
.w3r-dark__copy h2{font-size:clamp(2.2rem,4.4vw,4.4rem);line-height:1;margin:18px 0 30px;max-width:14ch;color:#fff}
.w3r-dark__copy .gft-eyebrow{color:#6bb68f}
.w3r-dark__list{list-style:none;margin:0;padding:0;display:grid;gap:4px;background:#072d2bd9}
.w3r-dark__list a{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:baseline;padding:12px 10px;min-height:44px;text-decoration:none;border-bottom:1px solid #ffffff1f;transition:background .25s}
.w3r-dark__list a:hover,.w3r-dark__list a:focus-visible{background:#0e4d4a}
.w3r-dark__list span{font:600 12px var(--gft-font-mono);color:#c98a2b}
.w3r-dark__list strong{font-weight:650;font-size:15px;line-height:1.35}
.w3r-dark__list em{font:normal 500 11px var(--gft-font-mono);color:#9fc7b2;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
.w3r-exergue{padding:clamp(70px,8vw,120px) var(--w3-gut);background:#0e4d4a;color:#fff}
.w3r-exergue{position:relative;overflow:hidden}
.w3r-exergue blockquote{margin:0 auto;max-width:1000px;position:relative;background:#0e4d4a;padding:10px 0}
.w3r-exergue footer{margin-top:20px;font:500 12px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#9fc7b2}
.w3r-exergue p{font:italic 400 clamp(2rem,3.8vw,3.6rem)/1.15 var(--gft-font-serif);max-width:none}

/* ---------------- evidence ---------------- */
.w3e{background:#e2ebe6;padding:clamp(70px,8vw,110px) var(--w3-gut)}
.w3e__inner{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.6fr);gap:56px;align-items:start}
.w3e__head{position:sticky;top:24px}
.w3e__head h2{font-size:clamp(2rem,3.4vw,3.2rem);margin:16px 0 18px}
.w3e__head p{font-size:15px;line-height:1.6}
.w3e__grades{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.w3e__grades span{padding:6px 12px;background:#fff;font:500 12px var(--gft-font-mono)}
.w3e__grades b{font-size:15px;margin-right:4px}
.w3e .w3-library-evidence{max-height:min(640px,70svh);overflow:auto;padding-right:6px;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}
.w3e .w3-library-source{background:#fff;padding:0;border:1px solid #c9d3cc}
.w3e .w3-library-source summary{display:flex;flex-wrap:wrap;gap:8px 12px;padding:14px;min-height:44px;cursor:pointer;font-size:14px;line-height:1.4}
.w3e .w3-library-source > div{padding:0 14px 14px;font-size:14px;line-height:1.55}
.w3e .w3-library-source h3{font-size:1rem;margin-bottom:8px}
.w3e__notes{grid-column:2;font-size:14px;line-height:1.55}
.w3e__notes summary{min-height:44px;display:flex;align-items:center;font:600 12px var(--gft-font-mono);text-transform:uppercase;letter-spacing:.06em;cursor:pointer}
.w3e__notes p{max-width:none;margin-top:6px}

/* ---------------- chapter looms (closing and contents) ---------------- */
.w3n{position:relative;isolation:isolate;overflow:hidden;background:#072d2b;color:#f6f4ef;padding:clamp(80px,9vw,130px) var(--w3-gut) clamp(90px,10vw,150px)}
.w3n--contents{background:#f6f4ef;color:#25302e}
.w3n__field{position:absolute;inset:0;z-index:-1;opacity:.42;pointer-events:none}
.w3n__threads{background:#072d2bb8}
.w3n--contents .w3n__threads{background:transparent}
.w3n__head{max-width:900px;margin-bottom:44px}
.w3n__head h2{font-size:clamp(2.3rem,4.6vw,4.6rem);line-height:1;margin-top:16px}
.w3n .gft-eyebrow{color:#6bb68f}
.w3n--contents .gft-eyebrow{color:var(--gft-leaf)}
.w3n__lede{margin-top:20px;font-size:15px;line-height:1.6;color:#b9cfc4;max-width:70ch}
.w3n--contents .w3n__lede{color:#4d5c57}
.w3n__tools{display:flex;flex-wrap:wrap;gap:18px 34px;align-items:center;margin-bottom:22px}
.w3n__parts{display:flex;flex-wrap:wrap;gap:6px}
.w3n__parts button{min-height:40px;padding:6px 14px;border:1px solid #c9d3cc;background:#fff;font:600 12px var(--gft-font-mono);letter-spacing:.04em}
.w3n__parts button[aria-pressed=true]{background:var(--gft-forest);color:#fff;border-color:var(--gft-forest)}
.w3n__time{display:grid;gap:4px;min-width:min(360px,100%);font:500 12px var(--gft-font-mono)}
.w3n__time input{accent-color:var(--gft-forest)}
.w3n__body{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.85fr);gap:44px;align-items:start}
.w3n__threads{list-style:none;margin:0;padding:0;display:grid;gap:0}
.w3n__row a{display:grid;grid-template-columns:40px minmax(60px,150px) minmax(0,1fr) auto;gap:14px;align-items:center;padding:10px 8px;min-height:48px;text-decoration:none;border-bottom:1px solid #ffffff1a;transition:background .25s,opacity .3s}
.w3n--contents .w3n__row a{border-bottom-color:#dfe5e0}
.w3n__no{font:600 12px var(--gft-font-mono);color:#9fc7b2}
.w3n--contents .w3n__no{color:var(--gft-leaf-ink,#2a6e50)}
.w3n__thread{height:3px;background:#ffffff1f;position:relative;display:block}
.w3n--contents .w3n__thread{background:#dfe5e0}
.w3n__thread i{position:absolute;left:0;top:0;bottom:0;width:calc(var(--len,1) * 100%);background:#6bb68f;transform-origin:0 50%;transition:background .3s}
.w3n--contents .w3n__thread i{background:var(--gft-forest)}
.w3n__title{font-weight:650;font-size:15px;line-height:1.35}
.w3n__state{font:500 11px var(--gft-font-mono);color:#9fc7b2;white-space:nowrap;text-transform:uppercase;letter-spacing:.04em}
.w3n--contents .w3n__state{color:#4d5c57}
.w3n__row.is-read .w3n__title{opacity:.6}
.w3n__row.is-current a{background:#ffffff0f}
.w3n__row.is-current .w3n__thread i{background:#c98a2b}
.w3n__row.is-on a{background:#0e4d4a}
.w3n--contents .w3n__row.is-on a{background:#e2ebe6}
.w3n__row.is-on .w3n__thread i{background:#c98a2b}
.w3n__row.is-out a{opacity:.25}
.w3n__row.is-fit .w3n__no::after{content:' ✓';color:var(--gft-ochre)}
:root[data-m-go] .w3n[data-m-in] .w3n__thread i{animation-name:w3x-growx;animation-duration:1000ms;animation-timing-function:var(--w3-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards;animation-delay:200ms}
.w3n__preview{position:sticky;top:24px;min-height:360px}
.w3n__card{background:#0a3d3a;border:1px solid #ffffff26;padding:26px;display:grid;gap:14px}
.w3n--contents .w3n__card{background:#072d2b;color:#f6f4ef}
:root[data-m-go] .w3n__card.is-on{animation-name:w3s-tick;animation-duration:500ms;animation-timing-function:var(--w3-ease);animation-iteration-count:1;animation-direction:normal}
.w3n__cardno{display:flex;gap:12px;align-items:baseline;font:500 12px var(--gft-font-mono);color:#9fc7b2;text-transform:uppercase;letter-spacing:.06em}
.w3n__cardno span{font:900 3rem/1 var(--gft-font-display);color:#c98a2b;letter-spacing:-.05em}
.w3n__card h3{font-size:clamp(1.4rem,2vw,1.9rem);color:#fff}
.w3n__card p{font-size:15px;line-height:1.6;color:#d7e6dd}
.w3n__secs{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:13.5px;line-height:1.4;color:#cfe0d6}
.w3n__secs li{display:grid;grid-template-columns:38px 1fr;gap:6px}
.w3n__secs span{font:500 11px var(--gft-font-mono);color:#6bb68f;padding-top:2px}
.w3n__facts{display:flex;gap:26px;margin:4px 0 6px}
.w3n__facts dt{font:500 10.5px var(--gft-font-mono);text-transform:uppercase;letter-spacing:.08em;color:#9fc7b2}
.w3n__facts dd{margin:2px 0 0;font:850 1.5rem/1 var(--gft-font-display);color:#fff}
.w3n__prev{display:inline-flex;min-height:44px;align-items:center;margin-top:34px;font-size:14px;font-weight:650;color:#e2ebe6}

/* ---------------- responsive ---------------- */
@media (max-width:1180px){
 :root{--w3-rail:0px;--w3-gap:0px}
 .w3r{grid-template-columns:minmax(0,1fr)}
 .w3r-rail{display:none}
 .w3r-main{grid-column:1}
 .w3r-sec{grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);column-gap:36px}
 .w3c-band__inner{grid-template-columns:1fr}
 .w3c-band__map{margin-top:0}
}
@media (max-width:860px){
 :root{--w3-gut:20px}
 .w3s{min-height:auto}
 .w3s__field{position:relative;inset:auto;height:300px;order:2}
 .w3s-field{position:absolute;inset:0}
 .w3s__inner{padding:44px 20px 28px;max-width:none}
 .w3s__inner::before{display:none}
 .w3s__title,.w3s--paper .w3s__title{font-size:clamp(2.3rem,10vw,3.4rem);max-width:none}
 .w3s{grid-template-rows:auto auto auto auto}
 .w3s__inner{order:1}.w3s__ticker{order:3}.w3s__legend{order:4}
 .w3s__facts{gap:12px 22px}
 .w3c-band{margin-top:0;padding-top:20px;padding-bottom:40px}
 .w3x{padding:16px 14px 12px}
 .w3r{padding-top:0}
 .w3r-sec{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;padding:40px 0 48px}
 .w3r-sec__head{grid-row:1}
 .w3r-stage{grid-column:1;grid-row:2;position:sticky;top:0;z-index:4;margin:0 -20px 20px;padding:8px 20px 10px;background:#f6f4efF2;border-bottom:1px solid var(--w3-line);backdrop-filter:blur(6px)}
 .w3r-sec--opening .w3r-stage{grid-row:1}
 .w3r-stage__pin{position:static;gap:8px}
 .w3r-loomcard{display:none}
 .w3r-stage .w3x{padding:10px 12px;gap:8px;max-height:44svh;overflow:hidden}
 .w3r-stage .w3x__chips,.w3r-stage .w3x__method,.w3r-stage .w3x__full,.w3r-stage .w3x__rows,.w3r-stage .w3x__ctl{display:none}
 .w3r-stage .w3x__meta{font-size:10px}
 .w3r-stage .w3x__title{font-size:14px}
 .w3r-stage .w3x__plot{max-height:24svh;overflow:hidden}
 .w3r-stage .w3x-svg{max-height:24svh;width:auto;max-width:100%;margin-inline:auto}
 .w3r-stage .w3x-card div{padding:4px 0}
 .w3r-stage .w3x-card dd{font-size:13px;line-height:1.35}
 .w3r-stage .w3x__read{padding:6px 10px;min-height:0}
 .w3r-stage .w3x__read output{font-size:12.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .w3r-stage .w3x-figs{grid-template-columns:repeat(2,1fr)}
 .w3r-stage .w3x-figd{display:none}
 .w3r-stage .w3x-figs{gap:6px}
 .w3r-stage .w3x-fig{padding:6px 8px;gap:2px}
 .w3r-stage .w3x-figv{font-size:1.02rem}
 .w3r-stage .w3x-figl{font-size:11px;line-height:1.25}
 .w3r-stage .w3x--keyfigures .w3x__read{display:none}
 .w3r-stage__dots{gap:4px}
 .w3r-stage__dots button{min-height:32px;padding:2px 8px;font-size:10.5px}
 .w3r-sec--opening .w3r-prose,.w3r-prose{grid-row:3;font-size:17px}
 .w3r-sec--opening .w3r-prose{grid-row:2}
 .w3r-bleed{margin-left:-20px;margin-right:-20px}
 .w3r-dark__inner{grid-template-columns:1fr;gap:36px}
 .w3e__inner{grid-template-columns:1fr;gap:28px}
 .w3e__head{position:static}
 .w3e__notes{grid-column:1}
 .w3n__body{grid-template-columns:1fr}
 .w3n__preview{position:static;min-height:0}
 .w3n__row a{grid-template-columns:34px minmax(0,1fr) auto;gap:10px}
 .w3n__thread{display:none}
 .w3x__ctl{grid-template-columns:44px minmax(0,1fr) 44px}
 .w3x__count{display:none}
}
@media (max-width:420px){
 .w3x__read{grid-template-columns:1fr;gap:2px}
 .w3x-card div{grid-template-columns:1fr;gap:2px}
}
.w3n__card[hidden],.w3x [hidden],.w3r-stage [hidden]{display:none!important}

@media (max-width:860px){.w3s__legend{padding-bottom:16px}}
/* Library round 4, shared by paper landings and chapters: splash probe, bands, spine, evidence deck, entrances.
   Prefix w4 (w4s splash, w4g stage, w4l section loom, w4q quote, w4f figures, w4x exhibit band, w4d dark interlude,
   w4sp spine, w4e evidence deck). Entrances animate transform, opacity and clip-path only, run once, settle <= 900 ms. */
:root{--w4-gut:20px;--w4-ease:cubic-bezier(.42,.02,.18,1);--w4-ink:#1c2725;--w4-night:#072d2b;--w4-deep:#0a3d3a;--w4-forest:#0e4d4a;--w4-mist:#e8f1ec;--w4-sage:#6bb68f;--w4-ochre:#c98a2b;--w4-line:#cfd8d2}
@media (min-width:1100px){:root{--w4-gut:max(84px,calc((100vw - 1280px)/2));--w3-gut:var(--w4-gut)}}

/* ---------------- authored entrances ---------------- */
:root[data-m-go] :is([data-m=w4-numeral],[data-m=w4-rule],[data-m=w4-tab],[data-m=w4-iris],[data-m=w4-slide],[data-m=w4-tilt],[data-m=w4-curtain],[data-m=w4-rise],[data-m=w4-unveil],[data-m=w4-reveal],[data-m=w4-drop],[data-m=w4-thread])[data-m-in]{animation-duration:860ms;animation-timing-function:var(--w4-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards;animation-delay:var(--m-delay,60ms)}
:root[data-m-go] [data-m=w4-hold][data-m-in]{animation-name:w4-none;animation-duration:1ms;animation-iteration-count:1;animation-direction:normal}
@keyframes w4-none{from{opacity:1}}
:root[data-m-go] [data-m=w4-numeral]:not([data-m-in]){clip-path:inset(0 100% 0 0)}
:root[data-m-go] [data-m=w4-numeral][data-m-in]{animation-name:w4-wipe;animation-duration:620ms;animation-delay:0ms}
@keyframes w4-wipe{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
:root[data-m-go] [data-m=w4-rule]:not([data-m-in])::before{transform:scaleX(0)}
:root[data-m-go] [data-m=w4-rule][data-m-in]::before{animation-name:w4-grow;animation-duration:820ms;animation-timing-function:var(--w4-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards}
:root[data-m-go] [data-m=w4-rule][data-m-in]{animation-name:w4-none;animation-duration:1ms}
@keyframes w4-grow{from{transform:scaleX(0)}}
:root[data-m-go] [data-m=w4-tab][data-m-in]{animation-name:w4-none;animation-duration:1ms}
[data-m=w4-tab]{position:relative}
[data-m=w4-tab]::before{content:'';position:absolute;left:-4px;top:0;bottom:0;width:4px;background:var(--w4-ochre);transform-origin:50% 0;transform:scaleY(0)}
:root[data-m-go] [data-m=w4-tab][data-m-in]::before{animation-name:w4-tabline;animation-duration:1100ms;animation-timing-function:var(--w4-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:both}
@keyframes w4-tabline{0%{transform:scaleY(0)}60%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
:root[data-m-go] [data-m=w4-iris]:not([data-m-in]){clip-path:circle(6% at 50% 40%)}
:root[data-m-go] [data-m=w4-iris][data-m-in]{animation-name:w4-iris}
@keyframes w4-iris{from{clip-path:circle(6% at 50% 40%)}to{clip-path:circle(110% at 50% 40%)}}
:root[data-m-go] [data-m=w4-slide]:not([data-m-in]){clip-path:inset(0 100% 0 0);transform:translateX(-48px)}
:root[data-m-go] [data-m=w4-slide][data-m-in]{animation-name:w4-slide}
@keyframes w4-slide{from{clip-path:inset(0 100% 0 0);transform:translateX(-48px)}to{clip-path:inset(0 0 0 0);transform:none}}
:root[data-m-go] [data-m=w4-tilt]:not([data-m-in]){clip-path:inset(0 0 0 100%);transform:perspective(1400px) rotateY(12deg);transform-origin:100% 50%}
:root[data-m-go] [data-m=w4-tilt][data-m-in]{animation-name:w4-tilt}
@keyframes w4-tilt{from{clip-path:inset(0 0 0 100%);transform:perspective(1400px) rotateY(12deg)}to{clip-path:inset(0 0 0 0);transform:none}}
:root[data-m-go] [data-m=w4-curtain]:not([data-m-in]){clip-path:inset(0 0 100% 0)}
:root[data-m-go] [data-m=w4-curtain][data-m-in]{animation-name:w4-curtain}
@keyframes w4-curtain{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
:root[data-m-go] [data-m=w4-rise]:not([data-m-in]){clip-path:inset(0 0 100% 0);transform:translateY(48px)}
:root[data-m-go] [data-m=w4-rise][data-m-in]{animation-name:w4-rise}
@keyframes w4-rise{from{clip-path:inset(0 0 100% 0);transform:translateY(48px)}to{clip-path:inset(0 0 0 0);transform:none}}
:root[data-m-go] [data-m=w4-drop]:not([data-m-in]){clip-path:inset(0 0 100% 0);transform:translateY(-28px)}
:root[data-m-go] [data-m=w4-drop][data-m-in]{animation-name:w4-drop}
@keyframes w4-drop{from{clip-path:inset(0 0 100% 0);transform:translateY(-28px)}to{clip-path:inset(0 0 0 0);transform:none}}
:root[data-m-go] [data-m=w4-unveil]:not([data-m-in]){clip-path:inset(14% 14% 14% 14%);transform:scale(.96)}
:root[data-m-go] [data-m=w4-unveil][data-m-in]{animation-name:w4-unveil}
@keyframes w4-unveil{from{clip-path:inset(14% 14% 14% 14%);transform:scale(.96)}to{clip-path:inset(0 0 0 0);transform:none}}
:root[data-m-go] [data-m=w4-reveal]:not([data-m-in]){clip-path:inset(0 100% 0 0)}
:root[data-m-go] [data-m=w4-reveal][data-m-in]{animation-name:w4-reveal}
@keyframes w4-reveal{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
:root[data-m-go] [data-m=w4-thread]:not([data-m-in]) path{stroke-dashoffset:1}
:root[data-m-go] [data-m=w4-thread][data-m-in]{animation-name:w4-none;animation-duration:1ms}
:root[data-m-go] [data-m=w4-thread][data-m-in] path{animation-name:w4-dash;animation-duration:1500ms;animation-timing-function:var(--w4-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards}
@keyframes w4-dash{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
/* a dark section keeps its ground while its contents arrive (no light page showing through a clip) */
:root[data-m-go] [data-m=w4-inner][data-m-in]{animation-name:w4-none;animation-duration:1ms;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-m=w4-inner]:not([data-m-in]) > .w3n__inner{clip-path:inset(0 0 100% 0);transform:translateY(48px)}
:root[data-m-go] [data-m=w4-inner][data-m-in] > .w3n__inner{animation-name:w4-rise;animation-duration:900ms;animation-timing-function:var(--w4-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards}
/* lives: a slow sweep, a drifting thread, the spine */
.w4g__scan,.w4q__thread{overflow-anchor:none}
:root[data-m-go] [data-m-live~=w4-sweep][data-m-on]::before{animation-name:w4-sweep;animation-duration:9s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes w4-sweep{from{transform:translateX(0)}to{transform:translateX(calc(100cqw - 2px))}}
:root[data-m-go] [data-m-live~=w4-drift][data-m-on]{animation-name:w4-drift;animation-duration:14s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes w4-drift{from{transform:translateX(-2.5%)}to{transform:translateX(2.5%)}}

/* ---------------- splash (probe instrument) ---------------- */
.w4s .w3s__inner{padding-left:var(--w4-gut)}
@media (min-width:861px){.w4s{min-height:max(640px,100svh)}.w4s .w3s__inner{padding-top:84px;padding-bottom:24px}.w4s .w3s__lede{margin-top:20px}.w4s .w3s__actions{margin-top:26px}.w4s__facts{margin-top:26px;padding-top:16px}}
.w4s .w3s__crumbs{font-size:13px;color:#b9d3c5}
.w4s .w3s__eyebrow{font-size:13px}
.w4s .w3s__lede{font-size:clamp(1.2rem,1.7vw,1.5rem);color:#e2ede7}
.w4s__facts{gap:14px 44px;margin-top:36px}
.w4s__facts div{min-width:96px}
.w4s__facts dt{font-size:12.5px;color:#b9d3c5}
.w4s__facts dd{font-size:clamp(2.8rem,4.4vw,4.4rem);letter-spacing:-.05em;margin-top:6px}
.w4s__grain{position:absolute;inset:0;background:repeating-linear-gradient(90deg,#ffffff05 0 1px,transparent 1px 7px);mix-blend-mode:screen}
.w4s--v1 .w3s__inner{align-self:end;padding-bottom:56px}
.w4s--v2 .w4s__facts div{padding-left:14px;border-left:2px solid var(--w4-accent,#c98a2b)}
.w4s--long .w3s__title{font-size:clamp(2.4rem,4.3vw,4.5rem)}
.w4s--paper.w4s--long .w3s__title{font-size:clamp(2.6rem,5vw,5.4rem)}
.w4s-probe{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.w4s-probe__g{transition:none}
.w4s-probe__line{stroke:var(--w4-accent,#c98a2b);stroke-width:2;stroke-dasharray:6 7;opacity:.9}
.w4s-probe__tick{stroke:var(--w4-accent,#c98a2b);stroke-width:3}
.w4s-probe__dot{fill:#072d2b;stroke:#e8f1ec;stroke-width:2.5;opacity:.85}
.w4s-probe__dot.is-on{fill:var(--w4-accent,#c98a2b);stroke:#fff;stroke-width:3;opacity:1}
.w4s__bar{display:grid;grid-template-columns:minmax(260px,auto) minmax(0,1fr) auto;gap:14px 28px;align-items:center;padding:14px var(--w4-gut);border-top:1px solid #ffffff26;background:#05211ff0;color:#e8f1ec;min-height:64px;position:relative;z-index:1}
.w4s__ctl{display:grid;grid-template-columns:auto minmax(120px,1fr);gap:14px;align-items:center;font:600 12.5px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#9fd3b5}
.w4s__live{display:inline-flex;gap:10px;align-items:center;white-space:nowrap}
.w4s__live i{width:9px;height:9px;border-radius:50%;background:var(--w4-ochre);display:inline-block}
.w4s__ctl input{width:100%;min-height:44px;accent-color:var(--w4-ochre)}
.w4s__read{font:500 14.5px/1.4 var(--gft-font-mono);color:#fff;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.w4s__wefts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.w4s__wefts button{min-height:40px;min-width:44px;padding:4px 10px;border:1px solid #ffffff40;background:transparent;color:#e8f1ec;font:600 12px var(--gft-font-mono)}
.w4s__wefts button[aria-pressed=true]{background:var(--w4-ochre);border-color:var(--w4-ochre);color:#072d2b}
.w4s__legend{padding:4px var(--w4-gut) 16px;font:400 13px/1.55 var(--gft-font-mono);color:#a9c9b9;background:#05211ff0;margin:0;max-width:none}

/* ---------------- full-bleed bands ---------------- */
.w4-bleed{position:relative;isolation:isolate;overflow:hidden}
/* pull quote with the weft drawn through it */
.w4q{padding:clamp(96px,8.6vw,132px) var(--w4-gut);background:var(--w4-forest);color:#fff}
.w4q--paper{background:#f6f4ef;color:var(--w4-night);border-block:1px solid var(--w4-line)}
.w4q__thread{position:absolute;inset:auto 0 12px 0;height:clamp(52px,5.4vw,84px);z-index:-1;pointer-events:none}  /* ribbon in the bottom padding: drawn across the quote it read as a strike-through */
.w4q__thread svg{width:100%;height:100%;display:block}
.w4q__weft{fill:none;stroke:var(--w4-ochre);stroke-width:2.5;stroke-dasharray:1}
.w4q__weft--2{stroke:var(--w4-sage);stroke-opacity:.55;stroke-width:1.6}
:root[data-m-go] .w4q:has(.w4q__inner[data-m-in]) .w4q__weft{animation-name:w4-dash;animation-duration:1600ms;animation-timing-function:var(--w4-ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards}
:root[data-m-go] .w4q:has(.w4q__inner:not([data-m-in])) .w4q__weft{stroke-dashoffset:1}
.w4q__inner{position:relative;max-width:1080px;margin:0 auto}
.w4q__mark{position:absolute;left:-.12em;top:-.42em;font:italic 400 clamp(8rem,14vw,14rem)/1 var(--gft-font-serif);color:var(--w4-ochre);opacity:.55;pointer-events:none}
.w4q blockquote{margin:0;position:relative}
.w4q blockquote p{font:italic 400 clamp(2rem,3.7vw,3.6rem)/1.16 var(--gft-font-serif);letter-spacing:-.015em;max-width:none;text-wrap:balance}
.w4q footer{margin-top:28px;font:600 13px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#c4ddd0}
.w4q--paper footer{color:#3d4b47}
/* key-figure row */
.w4f{padding:clamp(72px,7vw,104px) var(--w4-gut);background:var(--w4-night);color:#fff}
.w4f--paper{background:#ebeee8;color:var(--w4-ink)}
.w4f__inner{max-width:1280px;margin:0 auto;display:grid;gap:26px}
.w4f__head .gft-eyebrow{color:#9fd3b5}
.w4f--paper .w4f__head .gft-eyebrow{color:var(--gft-leaf-ink,#2a6e50)}
.w4f__h{font:850 clamp(1.8rem,3vw,2.8rem)/1.06 var(--gft-font-display);letter-spacing:-.035em;margin-top:12px;max-width:26ch}
.w4f .w3x{background:transparent;border:0;padding:0}
.w4f .w3x::before{display:none}
.w4f .w3x__cap{display:none}
.w4f .w3x-figs{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:2px;background:transparent}
.w4f .w3x-fig{padding:24px 22px 20px;border:0;border-top:3px solid #ffffff2e;background:#ffffff0a;gap:10px}
.w4f--paper .w3x-fig{border-top-color:#c9d3cc;background:#fff}
.w4f .w3x-fig.is-on{border-top-color:var(--w4-ochre);box-shadow:none;background:#ffffff14}
.w4f--paper .w3x-fig.is-on{background:#fffaf0}
.w4f .w3x-figv{font-size:clamp(2.6rem,4.6vw,4.6rem);line-height:1;overflow-wrap:normal;word-break:normal;hyphens:none}
.w4f--l .w3x-figv{font-size:clamp(1.9rem,2.9vw,2.9rem);line-height:1.05}
.w4f--m .w3x-figv{font-size:clamp(1.5rem,2.1vw,2.1rem);line-height:1.1}
@media (min-width:861px){.w4f .w3x-figs,.w4f--l .w3x-figs,.w4f--m .w3x-figs{grid-template-columns:repeat(var(--w4f-cols,4),minmax(0,1fr))}}
.w4f .w3x-figl{font-size:15px;line-height:1.35}
.w4f .w3x-figd{font-size:13.5px;line-height:1.5}
.w4f .w3x__read output{font-size:15px}
/* exhibit interlude */
.w4x{padding:clamp(72px,7vw,104px) var(--w4-gut);background:#ebeee8;color:var(--w4-ink)}
.w4x--night{background:var(--w4-night);color:#fff}
.w4x__grid{position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(90deg,#0e4d4a12 0 1px,transparent 1px 44px),repeating-linear-gradient(0deg,#0e4d4a0c 0 1px,transparent 1px 44px)}
.w4x--night .w4x__grid{background:repeating-linear-gradient(90deg,#6bb68f1a 0 1px,transparent 1px 44px),repeating-linear-gradient(0deg,#6bb68f10 0 1px,transparent 1px 44px)}
.w4x__inner{display:grid;grid-template-columns:minmax(240px,.62fr) minmax(0,1.6fr);gap:clamp(32px,4vw,64px);align-items:start;max-width:1280px;margin:0 auto}
.w4x--flip .w4x__inner{grid-template-columns:minmax(0,1.6fr) minmax(240px,.62fr)}
.w4x--flip .w4x__meta{order:2}
.w4x__meta{display:grid;gap:14px;position:sticky;top:40px}
.w4x__meta .gft-eyebrow{color:var(--gft-leaf-ink,#2a6e50)}
.w4x--night .w4x__meta .gft-eyebrow{color:#9fd3b5}
.w4x__no{font:900 clamp(5rem,9vw,8.6rem)/.86 var(--gft-font-display);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:2px var(--w4-ochre)}
.w4x__type{font:600 12.5px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase}
.w4x__note{font-size:15.5px;line-height:1.6;max-width:44ch}
.w4x--night .w4x__note{color:#d7e6dd}
.w4x__how{font:500 13px/1.5 var(--gft-font-mono);color:#4a5854}
.w4x--night .w4x__how{color:#b9d3c5}
.w4x__stage .w3x{box-shadow:0 40px 90px -50px #072d2bb3}
/* dark interlude */
.w4d{background:var(--w4-night);color:#f6f4ef}
.w4d__field{position:absolute;inset:0;z-index:-1;opacity:.8}
.w4d__inner{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:56px;padding:clamp(72px,7vw,110px) var(--w4-gut);align-items:center}
.w4d__copy .gft-eyebrow{color:#9fd3b5}
.w4d__copy h2{font-size:clamp(2.4rem,4.6vw,4.6rem);line-height:1;margin:18px 0 30px;max-width:14ch;color:#fff}
.w4d__list{list-style:none;margin:0;padding:0;display:grid;gap:2px;background:#072d2be0}
.w4d__list a{display:grid;grid-template-columns:44px 1fr auto;gap:14px;align-items:baseline;padding:14px 12px;min-height:48px;text-decoration:none;border-bottom:1px solid #ffffff22;transition:background .25s;color:#f6f4ef}
.w4d__list a:hover,.w4d__list a:focus-visible{background:var(--w4-forest)}
.w4d__list span{font:700 13px var(--gft-font-mono);color:#e0a54d}
.w4d__list strong{font-weight:650;font-size:16px;line-height:1.35}
.w4d__list em{font:normal 600 11.5px var(--gft-font-mono);color:#b9d3c5;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
.w4d__read{display:block;margin-top:16px;font:500 13.5px/1.5 var(--gft-font-mono);color:#d7e6dd;min-height:3em}
.w4d__counts{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin:0}
.w4d__counts div{padding:22px;background:#ffffff0d;border-top:3px solid var(--w4-ochre)}
.w4d__counts dt{font:600 12px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#b9d3c5}
.w4d__counts dd{margin:8px 0 0;font:850 clamp(2.4rem,4vw,3.8rem)/1 var(--gft-font-display);color:#fff}

/* ---------------- the page thread (spine) ---------------- */
.w4sp{position:fixed;left:0;top:0;bottom:0;width:64px;z-index:30;pointer-events:none;opacity:0;transition:opacity .45s;display:none}
@media (min-width:1100px){.w4sp{display:block}}
.w4sp.is-on{opacity:1}
.w4sp__warp{position:absolute;left:38px;top:40px;bottom:40px;width:2px;background:#6bb68f66}
.w4sp__warp i{display:block;height:100%;background:var(--w4-ochre);transform-origin:50% 0;transform:scaleY(0)}
.w4sp__knots{position:absolute;left:34px;top:40px;bottom:40px;width:10px}
.w4sp__knots i{position:absolute;left:0;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:#f6f4ef;border:2px solid var(--w4-sage);transition:background .3s,box-shadow .3s}
.w4sp__knots i.is-past{background:var(--w4-ochre);border-color:var(--w4-ochre)}
.w4sp__knots i.is-on{background:var(--w4-ochre);border-color:#fff;box-shadow:0 0 0 4px #c98a2b55}
.w4sp__label{position:absolute;left:8px;top:40px;writing-mode:vertical-rl;max-height:38vh;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--w4-night);color:var(--w4-mist);border:1px solid #6bb68f80;font:600 11px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;padding:10px 3px}

/* ---------------- evidence deck ---------------- */
.w4e{display:grid;gap:22px}
.w4e__ctl{display:grid;gap:10px}
.w4e__grades{display:flex;flex-wrap:wrap;gap:8px}
.w4e__grades button{display:grid;grid-template-columns:auto 90px auto;gap:10px;align-items:center;padding:8px 14px;min-height:48px;border:1px solid #c9d3cc;background:#fff;color:var(--w4-ink);text-align:left;transition:background .25s,color .25s}
.w4e__grades button[aria-pressed=true]{background:var(--w4-forest);border-color:var(--w4-forest);color:#fff}
.w4e__g{font:700 13px var(--gft-font-mono)}
.w4e__bar{height:8px;background:#dfe5e0;display:block}
.w4e__bar i{display:block;height:100%;width:calc(var(--v) * 100%);background:var(--w4-ochre);transform-origin:0 50%}
.w4e__grades b{font:850 1.35rem/1 var(--gft-font-display)}
.w4e__out{font:600 13px var(--gft-font-mono);color:var(--w4-forest)}
.w4e__body{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.9fr);gap:28px;align-items:start}
.w4e__cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;grid-column:1}
.w4e__cards button{display:grid;gap:6px;align-content:start;width:100%;height:100%;text-align:left;padding:14px 16px;min-height:120px;border:1px solid #c9d3cc;border-left:4px solid #c9d3cc;background:#fff;color:var(--w4-ink);transition:border-color .25s,background .25s}
.w4e__cards button:hover{border-left-color:var(--w4-sage)}
.w4e__cards button[aria-pressed=true]{border-left-color:var(--w4-ochre);background:#fffaf0}
.w4e__id{display:flex;gap:10px;align-items:baseline;font:700 13px var(--gft-font-mono);color:var(--w4-forest)}
.w4e__id em{font-style:normal;font-weight:600;font-size:11.5px;color:#4a5854;text-transform:uppercase;letter-spacing:.06em}
.w4e__cards strong{font-size:15px;line-height:1.3;font-weight:700}
.w4e__t{font-size:14px;line-height:1.45;color:#3a4744}
.w4e__pager{grid-column:1;display:flex;gap:10px;align-items:center}
.w4e__pager button{width:48px;height:48px;border:1px solid #c9d3cc;background:#fff;font-size:18px}
.w4e__pager output{font:600 13px var(--gft-font-mono)}
.w4e__cardwrap{grid-column:2;grid-row:1 / span 2;position:sticky;top:32px}
.w4e__card{background:var(--w4-night);color:#fff;padding:28px;display:grid;gap:12px}
.w4e__cid{font:700 12.5px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#e0a54d}
.w4e__card h3{font-size:clamp(1.4rem,2vw,1.8rem);line-height:1.15;color:#fff}
.w4e__ct{font-size:16px;line-height:1.5;font-weight:600;color:#e8f1ec}
.w4e__cf{font:italic 400 1.15rem/1.5 var(--gft-font-serif);color:#d7e6dd}
.w4e__cm{font-size:13.5px;line-height:1.55;color:#b9d3c5}
.w4e__card .gft-text-link{color:#9fd3b5}
:root[data-m-go] .w4e__card:not([hidden]){animation-name:w4-cardin;animation-duration:420ms;animation-timing-function:var(--w4-ease);animation-iteration-count:1;animation-direction:normal}
@keyframes w4-cardin{from{opacity:0;transform:translateY(12px)}}
.w4e [hidden],.w4e__card[hidden]{display:none!important}

@media (max-width:1099px){
 .w4s__bar{grid-template-columns:1fr;gap:10px}
 .w4s__wefts{justify-content:flex-start}
 .w4x__inner,.w4x--flip .w4x__inner{grid-template-columns:1fr}
 .w4x--flip .w4x__meta{order:0}
 .w4x__meta{position:static}
 .w4d__inner{grid-template-columns:1fr;gap:36px}
 .w4e__body{grid-template-columns:1fr}
 .w4e__cardwrap{grid-column:1;grid-row:auto;position:static}
}
@media (max-width:860px){
 .w4s__facts dd{font-size:clamp(2.2rem,10vw,3rem)}
 .w4s__bar{order:3}
 .w4s__read{white-space:normal;font-size:13.5px;height:2.9em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .w4s__ctl{grid-template-columns:1fr}
 .w4q blockquote p{font-size:clamp(1.6rem,7vw,2.2rem)}
 .w4q__mark{font-size:6rem}
 .w4x__no{font-size:4rem}
 .w4f .w3x-figs{grid-template-columns:repeat(2,minmax(0,1fr))}
 .w4f .w3x-figv{font-size:clamp(1.8rem,8vw,2.6rem)}
 .w4f .w3x-fig{padding:16px 12px}
 .w4d__counts{grid-template-columns:1fr 1fr 1fr}
 .w4d__counts div{padding:14px}
 .w4e__cards{grid-template-columns:1fr}
 .w4e__cards button{min-height:0}
}

/* Contrast floor: leaf green (#3f8f6b) is 3.1-3.6:1 on mist and paper, under 4.5:1 for 12-13 px labels; use forest on light grounds */
:root{--gft-leaf-ink:#2a6e50}  /* 5.0:1 on mist, 5.5:1 on paper; small labels on light grounds */
.w3n--contents .w3n__head .gft-eyebrow{color:var(--gft-leaf-ink,#2a6e50)}
/* selected and current states sit on night or forest grounds: light tints keep 4.5:1 */
.w4p-deck .w3p-deck__tabs button[aria-selected=true] em,.w3b__list button[aria-pressed=true] em,.w3f__row button[aria-pressed=true] b,
.w3n a[aria-current=page] .w3n__no{color:#9fc7b2}
.w3b__list button[aria-pressed=true] span{color:var(--gft-sage)}


/* the big exhibit numeral on light bands: ochre is 2.5:1 on #ebeee8; dark ochre keeps the hue at 3:1+ */
.w4x:not(.w4x--night) .w4x__no{-webkit-text-stroke-color:#8a5a12}
