/* /value-chain/cutting/ : one lay of cloth, measured before the knife moves. Prefix cx-. Three tone acts: night
   (blocks 1 and 2), paper (3 and 4), night (5 to 9). Pre-states exist only under :root[data-m-go]; lives run only while
   [data-m-on]; scroll-linked moves are transform or opacity alone on their element, written as longhands. Nothing here
   changes layout size with scroll state: every stateful panel is stacked in one grid cell. */
:root{
  --cx-night:#072d2b;--cx-deep:#0a3a37;--cx-panel:#0c403c;--cx-paper:#f6f4ef;--cx-cloth:#e8efe9;
  --cx-gold:#e3a948;--cx-gold-hi:#f0c46a;--cx-ochre:#c98a2b;--cx-gold-ink:#86560c;--cx-warn:#ff9a76;--cx-warn-ink:#a3421d;
  --cx-ink:#25302e;--cx-mute:#46534e;--cx-line:#c3cfc7;--cx-sage:#6bb68f;--cx-leaf:#2f7a59;--cx-sub-d:#c9dbd0;
  --cx-ease:cubic-bezier(.65,0,.35,1);--cx-out:cubic-bezier(.16,1,.3,1);
}
main:has(>.cx-spine){position:relative}
.cx-sec{position:relative;--cx-pad:clamp(64px,7vw,104px);padding-block:var(--cx-pad)}
.cx-sec--night{background:var(--cx-night);color:var(--cx-paper);--cx-fg:#f6f4ef;--cx-sub:var(--cx-sub-d);--cx-hair:#ffffff26;--cx-acc:var(--cx-gold-hi)}
.cx-sec--paper{background:var(--cx-paper);color:var(--cx-ink);--cx-fg:var(--cx-ink);--cx-sub:var(--cx-mute);--cx-hair:var(--cx-line);--cx-acc:var(--cx-gold-ink)}
.cx-sec h2,.cx-sec h3{text-wrap:balance}
.cx-sec :focus-visible{outline:3px solid var(--cx-gold);outline-offset:3px}
.cx-sec--paper :focus-visible{outline-color:var(--cx-gold-ink)}
.cx-sec .gft-cite{min-height:32px;padding:2px 7px;color:inherit}

/* ---- the spine: motif index, one glyph per named state ---- */
.cx-spine{position:absolute;z-index:6;left:clamp(10px,1.6vw,22px);width:2px;top:calc(100svh - 88px);bottom:0;pointer-events:none;overflow-anchor:none}
.cx-spine::before{content:'';position:absolute;inset:0;background:var(--cx-gold);opacity:.28}
.cx-spine__fill{position:absolute;inset:0;background:linear-gradient(to bottom,var(--cx-gold),var(--cx-gold-hi));transform-origin:50% 0}
@supports (animation-timeline:view()){
 :root[data-m-go] .cx-spine__fill{animation-name:cx-spine;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range-start:cover 0%;animation-range-end:cover 100%}
}
@keyframes cx-spine{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.cx-spine__pin{position:sticky;top:46svh;display:grid;justify-items:center;gap:8px;width:34px;margin-left:-16px}
.cx-spine__glyph{width:34px;height:34px;padding:3px;border-radius:50%;background:var(--cx-night);border:1.5px solid var(--cx-gold);transition:background .4s,border-color .4s}
.cx-spine__glyph g{opacity:0;transition:opacity .35s}
.cx-spine__glyph path,.cx-spine__glyph rect,.cx-spine__glyph circle{fill:none;stroke:var(--cx-gold-hi);stroke-width:1.6}
.cx-spine__glyph .t{stroke-opacity:.55;stroke-width:1.1}
.cx-spine__glyph .h{stroke:#ffb36b;stroke-width:2}
.cx-spine__glyph .f{fill:var(--cx-gold-hi);stroke:none}
.cx-spine__lab{writing-mode:vertical-rl;display:grid;font:600 12px/1 var(--gft-font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--cx-gold-hi)}
.cx-spine__lab b{grid-area:1/1;font-weight:600;opacity:0;transition:opacity .35s}
.cx-spine[data-tone=paper] .cx-spine__glyph{background:var(--cx-paper);border-color:var(--cx-gold-ink)}
.cx-spine[data-tone=paper] .cx-spine__glyph :is(path,rect,circle){stroke:var(--cx-gold-ink)}
.cx-spine[data-tone=paper] .cx-spine__glyph .f{fill:var(--cx-gold-ink)}
.cx-spine[data-tone=paper] .cx-spine__glyph .h{stroke:var(--cx-warn-ink)}
.cx-spine[data-tone=paper] .cx-spine__lab{color:var(--cx-gold-ink)}
.cx-spine[data-g="0"] [data-g="0"],.cx-spine[data-g="1"] [data-g="1"],.cx-spine[data-g="2"] [data-g="2"],.cx-spine[data-g="3"] [data-g="3"],.cx-spine[data-g="4"] [data-g="4"],.cx-spine[data-g="5"] [data-g="5"],.cx-spine[data-g="6"] [data-g="6"],.cx-spine[data-g="7"] [data-g="7"],.cx-spine[data-g="8"] [data-g="8"]{opacity:1}

/* ---- section heads: the claim, then a short lede; no emblem ---- */
.cx-head{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(24px,4vw,72px);align-items:end;margin-bottom:clamp(28px,3.4vw,48px)}
.cx-head--solo{grid-template-columns:minmax(0,1fr)}
.cx-head .gft-eyebrow{color:var(--cx-acc);margin-bottom:18px}
.cx-head h2{font-size:clamp(2rem,3.3vw,3.3rem);line-height:1.05;max-width:23ch}
.cx-head__lede{font-size:16px;line-height:1.62;color:var(--cx-sub);max-width:48ch}

/* Entrances are authored to be read: about 900 ms, starting from nothing, with a slow first third so a visitor sees
   the claim arrive (opacity is still under .5 at 250 ms). Each section sets its own ease; neighbours differ. */
:root{--cx-arrive:cubic-bezier(.5,0,.15,1)}
.cx-sec--inst{--cx-fx-ease:cubic-bezier(.55,0,.1,1)}
.cx-sec--arch{--cx-fx-ease:cubic-bezier(.6,0,.2,1)}
.cx-sec--ev{--cx-fx-ease:cubic-bezier(.45,0,.1,1)}
.cx-sec--inter{--cx-fx-ease:cubic-bezier(.7,0,.25,1)}
.cx-sec--seq{--cx-fx-ease:cubic-bezier(.5,0,.3,1)}
.cx-sec--cm{--cx-fx-ease:cubic-bezier(.6,.05,.15,1)}
.cx-sec--gov{--cx-fx-ease:cubic-bezier(.5,0,.2,1.08)}
.cx-sec--close{--cx-fx-ease:cubic-bezier(.55,0,.1,1)}
:root[data-m-go] [data-cx-fx]:not([data-cx-in]){opacity:0}
:root[data-m-go] [data-cx-fx=rise]:not([data-cx-in]){translate:0 46px;clip-path:inset(0 0 100% 0)}
:root[data-m-go] [data-cx-fx=skew]:not([data-cx-in]){transform:translateX(-72px) skewX(-9deg)}
:root[data-m-go] [data-cx-fx=drop]:not([data-cx-in]){translate:0 -40px;clip-path:inset(100% 0 0 0)}
:root[data-m-go] [data-cx-fx=wdth]:not([data-cx-in]){transform:scaleX(.78);transform-origin:0 50%}
:root[data-m-go] [data-cx-fx=blur]:not([data-cx-in]){filter:blur(16px)}
:root[data-m-go] [data-cx-fx=turn]:not([data-cx-in]){rotate:-6deg;transform-origin:0 100%}
:root[data-m-go] [data-cx-fx=swing]:not([data-cx-in]){transform:perspective(700px) rotateX(70deg);transform-origin:50% 0}
:root[data-m-go] [data-cx-fx=zoom]:not([data-cx-in]){scale:.8;transform-origin:0 100%}
:root[data-m-go] [data-cx-fx][data-cx-in]{animation-duration:920ms;animation-timing-function:var(--cx-fx-ease,var(--cx-arrive));animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards}
:root[data-m-go] [data-cx-fx=rise][data-cx-in]{animation-name:cx-fx-rise}
:root[data-m-go] [data-cx-fx=skew][data-cx-in]{animation-name:cx-fx-skew}
:root[data-m-go] [data-cx-fx=drop][data-cx-in]{animation-name:cx-fx-drop}
:root[data-m-go] [data-cx-fx=wdth][data-cx-in]{animation-name:cx-fx-wdth;transform-origin:0 50%}
:root[data-m-go] [data-cx-fx=blur][data-cx-in]{animation-name:cx-fx-blur}
:root[data-m-go] [data-cx-fx=turn][data-cx-in]{animation-name:cx-fx-turn;transform-origin:0 100%}
:root[data-m-go] [data-cx-fx=swing][data-cx-in]{animation-name:cx-fx-swing;transform-origin:50% 0}
:root[data-m-go] [data-cx-fx=zoom][data-cx-in]{animation-name:cx-fx-zoom;transform-origin:0 100%}
@keyframes cx-fx-rise{from{opacity:0;translate:0 46px;clip-path:inset(0 0 100% 0)}to{clip-path:inset(-20% -4% -20% -4%)}}
@keyframes cx-fx-skew{from{opacity:0;transform:translateX(-72px) skewX(-9deg)}}
@keyframes cx-fx-drop{from{opacity:0;translate:0 -40px;clip-path:inset(100% 0 0 0)}to{clip-path:inset(-20% -4% -20% -4%)}}
@keyframes cx-fx-wdth{from{opacity:0;transform:scaleX(.78)}}
@keyframes cx-fx-blur{from{opacity:0;filter:blur(16px)}}
@keyframes cx-fx-turn{from{opacity:0;rotate:-6deg}}
@keyframes cx-fx-swing{from{opacity:0;transform:perspective(700px) rotateX(70deg)}}
@keyframes cx-fx-zoom{from{opacity:0;scale:.8}}

/* staggered parts (each on its own trigger; group stagger stays inside 250 ms) */
:root[data-m-go] [data-cx-e]:not([data-cx-in]){opacity:0}
:root[data-m-go] [data-cx-e=pick]:not([data-cx-in]){transform:translateX(56px) skewX(-6deg)}
:root[data-m-go] [data-cx-e=float-l]:not([data-cx-in]){translate:-64px 18px}
:root[data-m-go] [data-cx-e=float-r]:not([data-cx-in]){translate:64px 18px}
:root[data-m-go] [data-cx-e=rule]:not([data-cx-in]){clip-path:inset(0 100% 0 0)}
:root[data-m-go] [data-cx-e=ply]:not([data-cx-in]){translate:-48px 0}
:root[data-m-go] [data-cx-e=knot]:not([data-cx-in]){scale:.4}
:root[data-m-go] [data-cx-e=deal-l]:not([data-cx-in]){transform:translateX(-90px) rotate(-5deg)}
:root[data-m-go] [data-cx-e=deal-r]:not([data-cx-in]){transform:translateX(90px) rotate(5deg)}
:root[data-m-go] [data-cx-e=stage]:not([data-cx-in]){clip-path:inset(0 0 0 100%)}
:root[data-m-go] [data-cx-e=lift]:not([data-cx-in]){translate:0 56px}
:root[data-m-go] [data-cx-e=cut]:not([data-cx-in]){clip-path:polygon(0 0,0 0,0 100%,0 100%)}
:root[data-m-go] [data-cx-e][data-cx-in]{animation-duration:880ms;animation-timing-function:var(--cx-fx-ease,var(--cx-arrive));animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards;animation-delay:calc(var(--i,0) * 45ms)}
:root[data-m-go] [data-cx-e=pick][data-cx-in]{animation-name:cx-e-pick}
:root[data-m-go] [data-cx-e=float-l][data-cx-in]{animation-name:cx-e-float-l}
:root[data-m-go] [data-cx-e=float-r][data-cx-in]{animation-name:cx-e-float-r}
:root[data-m-go] [data-cx-e=rule][data-cx-in]{animation-name:cx-e-rule}
:root[data-m-go] [data-cx-e=ply][data-cx-in]{animation-name:cx-e-ply;animation-delay:0ms}
:root[data-m-go] [data-cx-e=knot][data-cx-in]{animation-name:cx-e-knot;animation-timing-function:cubic-bezier(.5,0,.3,1.4)}
:root[data-m-go] [data-cx-e=deal-l][data-cx-in]{animation-name:cx-e-deal-l}
:root[data-m-go] [data-cx-e=deal-r][data-cx-in]{animation-name:cx-e-deal-r}
:root[data-m-go] [data-cx-e=stage][data-cx-in]{animation-name:cx-e-stage}
:root[data-m-go] [data-cx-e=lift][data-cx-in]{animation-name:cx-e-lift}
:root[data-m-go] [data-cx-e=cut][data-cx-in]{animation-name:cx-e-cut}
@keyframes cx-e-pick{from{opacity:0;transform:translateX(56px) skewX(-6deg)}}
@keyframes cx-e-float-l{from{opacity:0;translate:-64px 18px}}
@keyframes cx-e-float-r{from{opacity:0;translate:64px 18px}}
@keyframes cx-e-rule{from{opacity:0;clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes cx-e-ply{from{opacity:0;translate:-48px 0}}
@keyframes cx-e-knot{from{opacity:0;scale:.4}}
@keyframes cx-e-deal-l{from{opacity:0;transform:translateX(-90px) rotate(-5deg)}}
@keyframes cx-e-deal-r{from{opacity:0;transform:translateX(90px) rotate(5deg)}}
@keyframes cx-e-stage{from{opacity:0;clip-path:inset(0 0 0 100%)}to{clip-path:inset(0 0 0 0)}}
@keyframes cx-e-lift{from{opacity:0;translate:0 56px}}
@keyframes cx-e-cut{from{opacity:.2;clip-path:polygon(0 0,0 0,0 100%,0 100%)}to{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}}

/* ================= 1 · splash: the lay under the scan beam ================= */
.gft-splash[data-splash="vc-b-cutting"]{touch-action:pan-y}
.gft-splash[data-splash="vc-b-cutting"] .gft-splash__structure{inset:0;display:block}
.gft-splash[data-splash="vc-b-cutting"] .gft-splash__structure::after{background:linear-gradient(90deg,#072d2bf5 0%,#072d2be0 30%,#072d2b80 47%,#072d2b00 64%)}
.gft-splash[data-splash="vc-b-cutting"] .gft-splash__ground{background:radial-gradient(ellipse at 74% 50%,#0e4d4a 0%,#072d2b 72%)}
.gft-splash[data-splash="vc-b-cutting"] h1{font-size:clamp(2.6rem,min(4.3vw,6.6svh),4.6rem);max-width:17ch;line-height:1.02;letter-spacing:-.055em;margin-top:22px}
.gft-splash[data-splash="vc-b-cutting"] .gft-splash__lede{margin-top:18px;max-width:52ch;font-size:clamp(15px,1.15vw,17px)}
.gft-splash[data-splash="vc-b-cutting"] .gft-splash__actions{margin-top:22px}
.gft-splash[data-splash="vc-b-cutting"] .gft-splash__cue{font-size:15px;font-weight:600;color:#f6f4ef}
.cx-splash-art{display:block;width:100%;height:100%;max-width:none}
.cx-warp{stroke:#9fd2b8;stroke-opacity:.2;stroke-width:1;fill:none}
.cx-weft{stroke:#9fd2b8;stroke-opacity:.08;stroke-width:1;fill:none}
.cx-selvedge{stroke:#6bb68f;stroke-opacity:.55;stroke-width:2;fill:none}
.cx-bar-body{fill:#0b4a45;stroke:#6bb68f;stroke-opacity:.5}
.cx-bar-ticks{stroke:#6bb68f;stroke-opacity:.55;fill:none}
.cx-marker-box{stroke:#e3a948;stroke-opacity:.45;stroke-dasharray:6 8;stroke-width:1.2;vector-effect:non-scaling-stroke}
.cx-piece{fill:#072d2ba8;stroke:#e3a948;stroke-opacity:.5;stroke-width:1.3;vector-effect:non-scaling-stroke}
.cx-cut{fill:none;stroke:#f0c46a;stroke-width:2.4;vector-effect:non-scaling-stroke}
.cx-slub{fill:#f6f4ef}
.cx-box{fill:#f0c46a14;stroke:#ffd48a;stroke-width:1.8;vector-effect:non-scaling-stroke;transition:opacity .25s}
.cx-box-tick{stroke:#ffd48a;stroke-width:3;fill:none;transition:opacity .25s}
.cx-dft.is-off .cx-box,.cx-dft.is-off .cx-box-tick{opacity:0}
.cx-ochre{fill:#e3a948}
.cx-ochre-ring{fill:none;stroke:#e3a948;stroke-width:2;transform-box:fill-box;transform-origin:center}
.cx-dft-no{fill:#f0c46a;font:600 20px var(--gft-font-mono)}
.cx-beam-line{stroke:#ffd48a;stroke-width:1.6;fill:none}
.cx-beam-lens{fill:#ffd48a}
.cx-knife{translate:800px 160px}
.cx-knife-ring{fill:none;stroke:#ffd48a;stroke-width:1.6}
.cx-knife-dot{fill:#ffd48a}
/* entrance, three beats inside 900 ms: the beam sweeps and boxes, two slubs turn ochre, the knife cuts three perimeters */
:root[data-m-go] .cx-beam-sweep{animation-name:cx-beam-sweep;animation-duration:520ms;animation-timing-function:linear;animation-delay:30ms;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes cx-beam-sweep{from{translate:-1560px 0}}
:root[data-m-go] .cx-boxw{animation-name:cx-box-in;animation-duration:150ms;animation-timing-function:var(--cx-out);animation-delay:var(--d);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes cx-box-in{from{clip-path:inset(0 100% 0 0);opacity:.2}}
:root[data-m-go] .cx-ochre{animation-name:cx-ochre-in;animation-duration:240ms;animation-timing-function:ease-out;animation-delay:calc(var(--d) + 110ms);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes cx-ochre-in{from{opacity:0}}
:root[data-m-go] .cx-marker{animation-name:cx-marker-in;animation-duration:480ms;animation-timing-function:var(--cx-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes cx-marker-in{from{opacity:.35}}
:root[data-m-go] .cx-cut:is([data-k="3"],[data-k="4"],[data-k="5"],[data-k="6"],[data-k="7"],[data-k="8"],[data-k="9"],[data-k="10"],[data-k="11"]){opacity:0}
:root[data-m-go] .cx-cut:is([data-k="0"],[data-k="1"],[data-k="2"]){animation-name:cx-cut-in;animation-duration:260ms;animation-timing-function:var(--cx-ease);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .cx-cut[data-k="0"]{animation-delay:400ms}
:root[data-m-go] .cx-cut[data-k="1"]{animation-delay:510ms}
:root[data-m-go] .cx-cut[data-k="2"]{animation-delay:620ms}
@keyframes cx-cut-in{from{clip-path:inset(0 100% 0 0)}}
/* lives: the knife keeps tracing the first three perimeters; the two slubs pulse on their own element */
:root[data-m-go] [data-m-live~=cx-knife][data-m-on] .cx-knife{animation-name:cx-knife-run;animation-duration:24s;animation-timing-function:linear;animation-iteration-count:infinite}
@keyframes cx-knife-run{
 0%{translate:800px 160px}7.14%{translate:1010px 160px}14.29%{translate:1010px 390px}21.43%{translate:800px 390px}28.57%{translate:800px 160px}
 35.71%{translate:1024px 160px}42.86%{translate:1234px 160px}50%{translate:1234px 390px}57.14%{translate:1024px 390px}64.29%{translate:1024px 160px}
 71.43%{translate:1258px 160px}78.57%{translate:1478px 160px}85.71%{translate:1478px 350px}92.86%{translate:1258px 350px}100%{translate:1258px 160px}}
:root[data-m-go] [data-m-live~=cx-slub][data-m-on] .cx-ochre-ring{animation-name:cx-ring;animation-duration:2.4s;animation-timing-function:ease-out;animation-iteration-count:infinite}
@keyframes cx-ring{from{scale:.6;opacity:1}to{scale:1.9;opacity:0}}
/* read-outs at display scale */
.cx-read{max-width:640px;border-top:1px solid #ffffff3a;padding-top:14px}
.cx-read__grid{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:8px 44px;margin:0}
.cx-read__grid dt{font:12px/1.4 var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:#b9d4c5}
.cx-read__grid dd{margin:6px 0 0;font-weight:850;font-size:48px;letter-spacing:-.05em;line-height:1;color:#f6f4ef;font-variant-numeric:tabular-nums;white-space:nowrap}
.cx-read__grid dd span{font-size:.42em;letter-spacing:0;color:#b9d4c5;font-weight:600;margin-left:.3em}
.cx-read__grid dd output{display:inline-block;min-width:2ch;color:var(--cx-gold-hi)}
.cx-read__steer{display:grid;grid-template-columns:auto minmax(140px,260px);align-items:center;gap:4px 16px;margin-top:10px}
.cx-read__steer label{font:12px/1.4 var(--gft-font-mono);letter-spacing:.06em;color:#b9d4c5}
.cx-read__steer input{accent-color:var(--cx-gold);width:100%}
.cx-read__note{margin-top:4px;font:13px/1.55 var(--gft-font-mono);color:#b9d4c5;display:flex;gap:10px;align-items:baseline;max-width:62ch}
.cx-read__dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--cx-gold)}

/* ================= 2 · instrument: the lay on the operable table ================= */
.cx-sec--inst{padding-top:clamp(48px,5vw,72px);overflow-anchor:none}
.cx-runon{position:absolute;left:0;right:0;top:0;height:300px;pointer-events:none;background-image:repeating-linear-gradient(90deg,#9fd2b838 0 1px,transparent 1px var(--cx-wp,13px));background-position:var(--cx-wx,4px) 0;-webkit-mask-image:linear-gradient(180deg,#000 0%,#0008 45%,transparent 100%);mask-image:linear-gradient(180deg,#000 0%,#0008 45%,transparent 100%)}
.cx-sec--inst>.gft-container{position:relative}
.cx-inst{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,370px);grid-template-areas:"stage read" "ctrl read";gap:18px clamp(28px,3vw,44px);align-items:start}
.cx-inst__stage{grid-area:stage;background:var(--cx-deep);border:1px solid #6bb68f40;border-radius:4px;padding:10px;view-timeline-name:--cx-inst;view-timeline-axis:block}
.cx-inst__crop{overflow:hidden}
.cx-inst__svg{width:100%;height:auto;display:block}
.cx-s-frame{fill:#072d2b;stroke:#6bb68f;stroke-opacity:.35}
.cx-s-lab{fill:#c9dbd0;font:600 16px var(--gft-font-mono);letter-spacing:.06em}
.cx-s-cloth{fill:#0e4d4a}
.cx-s-warp{stroke:#9fd2b8;stroke-opacity:.22;fill:none}
.cx-s-selv{stroke:#6bb68f;stroke-width:3;fill:none;transform-box:fill-box;transform-origin:center}
.cx-s-base{stroke:#6bb68f;stroke-width:2;fill:none}
.cx-v{opacity:0;visibility:hidden;transition:opacity .22s,visibility 0s .22s}
.cx-v--defects{opacity:1;visibility:visible}
.cx-inst[data-mode="1"] .cx-v--vision,.cx-inst[data-mode="2"] .cx-v--marker,.cx-inst[data-mode="3"] .cx-v--ticket{opacity:1;visibility:visible;transition:opacity .4s .25s,visibility 0s .25s}
.cx-inst[data-mode="2"] .cx-v--defects{opacity:.25}
.cx-inst[data-mode="3"] .cx-v--defects{opacity:0;visibility:hidden}
.cx-d__dot{fill:#f6f4ef}
.cx-d__box{fill:#f0c46a1a;stroke:#ffd48a;stroke-width:2.2;opacity:0;transition:opacity .3s}
.cx-d__miss{stroke:var(--cx-warn);stroke-width:3.4;fill:none;opacity:0;transition:opacity .3s}
.cx-d__ring{fill:none;stroke:#e3a948;stroke-width:3;opacity:0;transition:opacity .3s}
.cx-inst[data-mode="0"] .cx-d[data-man="1"] .cx-d__box,.cx-inst[data-mode="1"] .cx-d[data-vis="1"] .cx-d__box{opacity:1}
.cx-inst[data-mode="0"] .cx-d[data-man="0"] .cx-d__miss{opacity:1}
.cx-inst[data-mode="0"] .cx-d[data-man="0"] .cx-d__dot{fill:var(--cx-warn)}
.cx-inst[data-mode="1"] .cx-d[data-vis="0"] .cx-d__ring{opacity:1}
.cx-inst[data-mode="1"] .cx-d[data-vis="0"] .cx-d__dot{fill:#e3a948}
.cx-s-bar{fill:#0b4a45;stroke:#6bb68f}
.cx-s-beam{fill:#ffd48a;opacity:.16}
.cx-s-beam-line{stroke:#ffd48a;stroke-width:2;fill:none}
.cx-scan-wrap{translate:426px 0}
:root[data-m-go] .cx-inst[data-mode="1"] [data-m-live~=cx-scan][data-m-on]{animation-name:cx-scan;animation-duration:4.4s;animation-timing-function:var(--cx-ease);animation-iteration-count:infinite;animation-direction:alternate}
@keyframes cx-scan{from{translate:60px 0}to{translate:790px 0}}
.cx-s-scrap{fill:#c98a2b22}
.cx-s-piece{fill:#0b3d39;stroke:#e3a948;stroke-width:1.6;vector-effect:non-scaling-stroke}
.cx-s-perim-wrap{translate:40px 80px}
.cx-s-perim-dot{fill:#ffd48a}
:root[data-m-go] .cx-inst[data-mode="2"] [data-m-live~=cx-perim][data-m-on]{animation-name:cx-perim;animation-duration:9s;animation-timing-function:linear;animation-iteration-count:infinite}
@keyframes cx-perim{0%,100%{translate:40px 80px}30%{translate:812px 80px}50%{translate:812px 340px}80%{translate:40px 340px}}
.cx-bundle{transition:opacity .35s}
.cx-bundle.is-off{opacity:.14}
.cx-s-ticket{fill:#e3a948}
.cx-s-tk{fill:#072d2b;font:800 22px var(--gft-font-display)}
.cx-ply{fill:#1f6f66;stroke:#6bb68f;transition:opacity .3s,translate .45s var(--cx-out);transition-delay:calc(var(--k) * 28ms)}
.cx-ply.is-off{opacity:0;translate:0 -26px}
.cx-s-knifeline{stroke:#ffd48a;stroke-width:1.5;stroke-dasharray:5 6;fill:none}
.cx-s-knife{fill:#ffd48a}
.cx-inst__strip{display:none}
.cx-inst__legend{display:flex;flex-wrap:wrap;gap:6px 22px;margin:10px 4px 2px;font:12px var(--gft-font-mono);color:var(--cx-sub-d);max-width:none}
.cx-lg{display:inline-flex;align-items:center;gap:8px}
.cx-lg::before{content:'';width:14px;height:11px;border:2px solid #ffd48a}
.cx-lg--miss::before{border:0;width:12px;height:3px;background:var(--cx-warn);rotate:45deg}
.cx-lg--slub::before{border:2px solid #e3a948;border-radius:50%;width:11px;height:11px}
.cx-lg--ply::before{border:1px solid #6bb68f;background:#1f6f66;height:7px}
/* selvedge-draw: the table frame and selvedges draw outward from the splash's selvedge line */
:root[data-m-go] [data-m=selvedge-draw]:not([data-m-in]) .cx-s-selv{scale:.12 1}
:root[data-m-go] [data-m=selvedge-draw][data-m-in] .cx-s-selv{animation-name:cx-selv;animation-duration:700ms;animation-timing-function:var(--cx-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-m=selvedge-draw][data-m-in] .cx-s-selv--bot{animation-delay:90ms}
@keyframes cx-selv{from{scale:.12 1}}
@supports (animation-timeline:view()){
 :root[data-m-go] .cx-tbl-slide{animation-name:cx-tbl-slide;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--cx-inst;animation-range-start:exit 10%;animation-range-end:exit 100%}
}
@keyframes cx-tbl-slide{from{translate:0 0}to{translate:-70px 0}}
/* controls */
.cx-inst__ctrl{grid-area:ctrl;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,280px);gap:14px 24px;align-items:end}
.cx-modes{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;min-width:0}
.cx-modes legend{font:12px var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cx-sub-d);margin-bottom:8px;padding:0}
.cx-mode{position:relative;display:block;cursor:pointer}
.cx-mode input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.cx-mode__tile{display:grid;gap:3px;min-height:76px;padding:10px 12px;border:1px solid #6bb68f55;background:#0b3d39;transition:background .25s,border-color .25s,color .25s}
.cx-mode__num{font:12px var(--gft-font-mono);color:var(--cx-gold-hi)}
.cx-mode__label{font-weight:750;font-size:14px;line-height:1.25}
.cx-mode__badge{font:12px/1.35 var(--gft-font-mono);color:var(--cx-sub-d)}
.cx-mode:hover .cx-mode__tile{border-color:var(--cx-gold)}
.cx-mode input:checked+.cx-mode__tile{background:var(--cx-gold-hi);border-color:var(--cx-gold-hi);color:var(--cx-night)}
.cx-mode input:checked+.cx-mode__tile :is(.cx-mode__num,.cx-mode__badge){color:#3d2a06}
.cx-mode input:focus-visible+.cx-mode__tile{outline:3px solid var(--cx-gold-hi);outline-offset:3px}
.cx-plies{display:grid;gap:2px}
.cx-plies__label{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font:12px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cx-sub-d)}
.cx-plies__label strong{font:800 24px var(--gft-font-display);letter-spacing:-.03em;text-transform:none;color:var(--cx-gold-hi)}
.cx-plies__range{width:100%;accent-color:var(--cx-gold)}
.cx-plies__scale{display:flex;justify-content:space-between;font:12px var(--gft-font-mono);color:var(--cx-sub-d);max-width:none}
/* read-out column: four cells at display scale; the long option paragraph lives in a Method disclosure */
.cx-inst__read{grid-area:read;position:sticky;top:24px;display:grid;gap:14px}
.cx-rd-stack{display:grid}
.cx-rd-set{grid-area:1/1;visibility:hidden;opacity:0;transition:opacity .2s,visibility 0s .2s;display:grid;gap:12px;align-content:start}
.cx-inst[data-mode="0"] .cx-rd-set[data-set="0"],.cx-inst[data-mode="1"] .cx-rd-set[data-set="1"],.cx-inst[data-mode="2"] .cx-rd-set[data-set="2"],.cx-inst[data-mode="3"] .cx-rd-set[data-set="3"]{visibility:visible;opacity:1;transition:opacity .35s .2s,visibility 0s .2s}
.cx-rd-set h3{font-size:19px;line-height:1.25;letter-spacing:-.02em}
.cx-rd{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:0;background:#6bb68f40;border:1px solid #6bb68f40}
.cx-rd>div{background:var(--cx-deep);padding:10px 12px;display:grid;align-content:space-between;gap:6px;min-height:96px}
.cx-rd dt{font:12px/1.35 var(--gft-font-mono);color:var(--cx-sub-d)}
.cx-rd dd{margin:0;font:850 40px/1 var(--gft-font-display);letter-spacing:-.05em;font-variant-numeric:tabular-nums;white-space:nowrap}
.cx-rd dd small{font-size:.48em;margin-left:.08em;letter-spacing:0;color:var(--cx-sub-d)}
.cx-rd dd.cx-rd__txt{font-size:24px;letter-spacing:-.02em}
.cx-rd--hot{background:#3d2a06!important;box-shadow:inset 0 -3px 0 var(--cx-gold)}
.cx-rd--hot dd{color:var(--cx-gold-hi)}
.cx-rd__rule{font-size:14px;line-height:1.5;color:var(--cx-sub-d);max-width:none}
.cx-rd__rule span{display:block;font:12px var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cx-gold-hi);margin-bottom:2px}
.cx-rd__formula{margin:0;max-width:none}
.cx-rd__formula code{display:block;font:12.5px/1.55 var(--gft-font-mono);color:#e7f1ea;background:#ffffff0d;border-left:2px solid var(--cx-gold);padding:7px 10px}
.cx-method{border-top:1px solid var(--cx-hair)}
.cx-method summary{min-height:44px;display:flex;align-items:center;gap:10px;cursor:pointer;font:600 13px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cx-acc);list-style:none}
.cx-method summary::-webkit-details-marker{display:none}
.cx-method summary::before{content:'+';font-size:18px;width:18px}
.cx-method[open] summary::before{content:'−'}
.cx-method p,.cx-method li{font-size:14px;line-height:1.6;color:var(--cx-sub);margin-bottom:10px;max-width:none}
.cx-method ul{padding-left:18px;margin:0}
.cx-inst__note{font:12px/1.6 var(--gft-font-mono);color:var(--cx-sub-d);max-width:none}

/* ================= 3 · stations: the ribbon on the light table ================= */
.cx-sec--arch{padding-bottom:0;padding-top:calc(var(--cx-cut-h) + clamp(28px,3vw,44px));--cx-cut-h:clamp(64px,7vw,104px)}
/* the hand-over from the night instrument: the knife has opened the dark cloth diagonally onto the light table */
.cx-cutin{position:absolute;left:0;right:0;top:0;height:var(--cx-cut-h);pointer-events:none;overflow-anchor:none}
.cx-cutin__cloth{position:absolute;inset:0;background:var(--cx-night);background-image:repeating-linear-gradient(90deg,#9fd2b826 0 1px,transparent 1px var(--cx-wp,13px));clip-path:polygon(0 0,100% 0,0 100%)}
.cx-cutin__knife{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.cx-cutin__knife path{fill:none;stroke:var(--cx-gold);stroke-width:3;vector-effect:non-scaling-stroke}
.cx-cutin__lab{position:absolute;right:clamp(16px,3.4vw,48px);bottom:10px;font:600 12px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cx-gold-ink)}
.cx-head--arch{margin-bottom:clamp(8px,1vw,16px)}
.cx-head--arch h2{max-width:26ch}
.cx-st__ribbon{position:relative;margin-block:0 4px}
.cx-st__track{overflow:hidden;view-timeline-name:--cx-rib;view-timeline-axis:block}
.cx-st__inner{position:relative}
.cx-st__svg{display:block;width:100%;height:auto}
.cx-st__snap{position:absolute;top:0;width:2px;height:2px;left:var(--x);scroll-snap-align:center}
.cx-r-band{fill:var(--cx-cloth);stroke:none}
.cx-r-warp path{stroke:#3f8f6b;stroke-opacity:.35;stroke-width:1.2;fill:none}
.cx-r-selv{stroke:var(--cx-ink);stroke-width:2;fill:none}
.cx-r-gap{fill:var(--cx-paper)}
.cx-r-piece{fill:#fff;stroke:var(--cx-gold-ink);stroke-width:1.6;vector-effect:non-scaling-stroke}
.cx-r-thread{stroke:var(--cx-gold-ink);stroke-width:2;fill:none;stroke-dasharray:2 6}
.cx-r-carriage circle{fill:var(--cx-ochre)}
:root[data-m-go] [data-m-live~=cx-run][data-m-on]{animation-name:cx-run;animation-duration:12s;animation-timing-function:linear;animation-iteration-count:infinite}
@keyframes cx-run{from{translate:0 0}to{translate:1600px 0}}
.cx-r-ledger{stroke:var(--cx-ink);stroke-width:2;fill:none;transition:stroke .35s}
.cx-r-weft{stroke:var(--cx-line);stroke-width:2;fill:none;transition:stroke .35s}
.cx-r-knot{fill:var(--cx-paper);stroke:var(--cx-ink);stroke-width:2;transition:fill .35s}
.cx-r-hex{fill:#fff;stroke:var(--cx-ink);stroke-width:2.2;cursor:pointer;transition:fill .3s}
.cx-r-halo{fill:none;stroke:var(--cx-gold-ink);stroke-width:2;opacity:0;transition:opacity .3s;transform-box:fill-box;transform-origin:center;pointer-events:none}
.cx-r-num{font:850 30px var(--gft-font-display);fill:var(--cx-ink);letter-spacing:-.04em;pointer-events:none}
.cx-r-lab{font:700 17px var(--gft-font-display);fill:var(--cx-ink)}
.cx-r-sig{font:500 15px var(--gft-font-mono);fill:var(--cx-mute);transition:opacity .3s}
.cx-r-sig--weft{opacity:0}
.cx-r-end{font:600 15px var(--gft-font-mono);fill:var(--cx-mute);letter-spacing:.05em}
.cx-r-node{cursor:pointer}
.cx-st[data-view=weft] .cx-r-weft{stroke:var(--cx-gold-ink)}
.cx-st[data-view=weft] .cx-r-ledger{stroke:var(--cx-gold-ink)}
.cx-st[data-view=weft] .cx-r-knot{fill:var(--cx-ochre)}
.cx-st[data-view=weft] .cx-r-sig--warp{opacity:0}
.cx-st[data-view=weft] .cx-r-sig--weft{opacity:1;fill:var(--cx-gold-ink)}
.cx-st[data-i="0"] .cx-r-node[data-n="0"],.cx-st[data-i="1"] .cx-r-node[data-n="1"],.cx-st[data-i="2"] .cx-r-node[data-n="2"],.cx-st[data-i="3"] .cx-r-node[data-n="3"],.cx-st[data-i="4"] .cx-r-node[data-n="4"]{--on:1}
.cx-r-node .cx-r-hex{fill:color-mix(in srgb,var(--cx-gold-hi) calc(var(--on,0) * 100%),#fff)}
.cx-r-node .cx-r-halo{opacity:var(--on,0)}
.cx-r-node .cx-r-weft{stroke-width:calc(2px + var(--on,0) * 1.5px)}
:root[data-m-go] .cx-st [data-m-live~=cx-halo][data-m-on]{animation-name:cx-halo;animation-duration:3.2s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes cx-halo{from{scale:.96}to{scale:1.06}}
@supports (animation-timeline:view()){
 :root[data-m-go] .cx-r-warp{animation-name:cx-warp-feed;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--cx-rib;animation-range-start:cover 0%;animation-range-end:cover 100%}
}
@keyframes cx-warp-feed{from{translate:0 0}to{translate:-104px 0}}
/* unspool: the ribbon unrolls left to right; hexes heddle up in order */
:root[data-m-go] [data-m=unspool]:not([data-m-in]) .cx-r-node{opacity:0;translate:0 -40px}
:root[data-m-go] [data-m=unspool][data-m-in] .cx-r-node{animation-name:cx-heddle;animation-duration:760ms;animation-timing-function:cubic-bezier(.5,0,.2,1.2);animation-delay:calc(120ms + var(--i) * 45ms);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes cx-heddle{from{opacity:0;translate:0 -40px}}
/* the station stage: one full-width light table, the station drawn large on the left, its account on the right */
.cx-st__body{margin-top:4px}
.cx-st__bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px 24px;margin-bottom:14px}
.cx-tabs{display:flex;flex-wrap:wrap;gap:4px}
.cx-tabs [role=tab]{display:flex;align-items:center;gap:8px;min-height:44px;padding:6px 12px;border:1px solid var(--cx-hair);background:transparent;color:var(--cx-fg);font-size:14px;font-weight:650;transition:background .25s,color .25s,border-color .25s}
.cx-tabs__num{font:12px var(--gft-font-mono);color:var(--cx-acc)}
.cx-tabs [role=tab][aria-selected=true]{background:var(--cx-ink);border-color:var(--cx-ink);color:#fff}
.cx-tabs [role=tab][aria-selected=true] .cx-tabs__num{color:var(--cx-gold-hi)}
.cx-ww{display:flex;border:1px solid var(--cx-ink)}
.cx-ww button{min-height:44px;padding:4px 14px;border:0;background:transparent;font-weight:750;font-size:14px;display:grid;justify-items:start;line-height:1.2;color:var(--cx-ink)}
.cx-ww button span{font:12px var(--gft-font-mono);font-weight:400;color:var(--cx-mute)}
.cx-ww button[aria-pressed=true]{background:var(--cx-gold-ink);color:#fff}
.cx-ww button[aria-pressed=true] span{color:#fbe9c8}
.cx-st__stage{display:grid;grid-template-columns:minmax(0,1.32fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;background:#fff;border:1.5px solid var(--cx-ink);box-shadow:0 24px 50px #25302e1f}
.cx-st__arts{grid-column:1;grid-row:1/span 2;display:grid;position:relative;background:var(--cx-cloth);background-image:repeating-linear-gradient(90deg,#3f8f6b24 0 1px,transparent 1px 13px);border-right:1.5px solid var(--cx-ink);min-height:clamp(380px,34vw,500px)}
.cx-st__art{grid-area:1/1;margin:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:18px 22px 16px;visibility:hidden;opacity:0;transition:opacity .2s,visibility 0s .2s}
.cx-st__art[data-on]{visibility:visible;opacity:1;transition:opacity .35s .2s,visibility 0s .2s}
.cx-st__tag{display:flex;align-items:baseline;gap:12px;font:700 15px var(--gft-font-display);color:var(--cx-ink);max-width:none}
.cx-st__tag b{font:850 clamp(2.4rem,3.6vw,3.4rem)/1 var(--gft-font-display);letter-spacing:-.06em;color:var(--cx-gold-ink)}
.cx-st__art .cx-sa{justify-self:center;align-self:center;width:auto;height:100%;max-height:min(420px,30vw);max-width:100%;min-height:0}
.cx-st__figcap{font-size:14px;line-height:1.5;color:var(--cx-ink);background:#ffffffd9;border-left:3px solid var(--cx-gold-ink);padding:8px 12px;max-width:52ch;justify-self:start}
.cx-st__panels{grid-column:2;grid-row:1;display:grid;padding:clamp(20px,2.4vw,32px) clamp(20px,2.4vw,32px) 8px}
.cx-panel{grid-area:1/1;display:block;visibility:hidden;opacity:0;transition:opacity .2s,visibility 0s .2s}
.cx-panel[data-on]{visibility:visible;opacity:1;transition:opacity .35s .2s,visibility 0s .2s}
.cx-panel__step{font:12px var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cx-gold-ink)}
.cx-panel h3{font-size:clamp(1.3rem,1.8vw,1.7rem);line-height:1.15;margin:6px 0 14px}
.cx-panel__rows{display:grid}
.cx-panel__dl{grid-area:1/1;margin:0;display:grid;gap:14px;transition:opacity .2s,visibility 0s .2s}
.cx-panel__dl--weft{opacity:0;visibility:hidden}
.cx-st[data-view=weft] .cx-panel__dl--warp{opacity:0;visibility:hidden}
.cx-st[data-view=weft] .cx-panel__dl--weft{opacity:1;visibility:visible;transition:opacity .35s .2s,visibility 0s .2s}
.cx-panel__dl>div{border-top:1px solid var(--cx-line);padding-top:10px}
.cx-panel__dl dt{font:12px var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cx-gold-ink);margin-bottom:4px}
.cx-panel__dl dd{margin:0;font-size:15px;line-height:1.6}
.cx-st__cap{grid-column:2;grid-row:2;font-size:14px;line-height:1.6;color:var(--cx-mute);border-top:1px solid var(--cx-line);margin:8px clamp(20px,2.4vw,32px) clamp(18px,2vw,26px);padding-top:12px;max-width:none}
.cx-st__drop{height:calc(var(--cx-pad) * .7);margin-top:28px;margin-left:calc(32.8% - 2.2%);width:4.4%;background:var(--cx-cloth);background-image:repeating-linear-gradient(90deg,#3f8f6b40 0 1px,transparent 1px 13px)}
/* station art, drawn light on the light table */
.cx-sa-base{stroke:var(--cx-line);stroke-width:2}
.cx-sa-line{fill:none;stroke:var(--cx-ink);stroke-width:2}
.cx-sa-gold{fill:var(--cx-ochre)}
.cx-sa-gold-l{stroke:var(--cx-ochre);stroke-width:3;fill:none}
.cx-sa-wave{fill:none;stroke:var(--cx-warn-ink);stroke-width:2.4;stroke-dasharray:4 4}
.cx-sa-flat{stroke:var(--cx-leaf);stroke-width:2.4}
.cx-sa-arc{fill:none;stroke:var(--cx-leaf);stroke-width:5}
.cx-sa-needle{transform-origin:80px 92px}
.cx-sa-tol{fill:none;stroke:var(--cx-leaf);stroke-width:2;stroke-dasharray:6 5;vector-effect:non-scaling-stroke}
.cx-sa-unrel{fill:#c98a2b1f;stroke:var(--cx-ochre);stroke-width:2.2;vector-effect:non-scaling-stroke}
.cx-sa-shrink{transform-box:fill-box;transform-origin:50% 0}
.cx-sa-t{font:600 13px var(--gft-font-mono);fill:var(--cx-mute);letter-spacing:.04em}
.cx-sa-t--hot{fill:var(--cx-gold-ink)}
.cx-sa-web{fill:var(--cx-cloth);stroke:var(--cx-ink);stroke-width:1.5}
.cx-sa-bar{fill:var(--cx-ink)}
.cx-sa-fan{fill:var(--cx-gold);opacity:.22}
.cx-sa-beam{stroke:var(--cx-ochre);stroke-width:2.4}
.cx-sa-scan{translate:200px 0}
.cx-sa-box{fill:none;stroke:var(--cx-gold-ink);stroke-width:2}
.cx-sa-lay{fill:var(--cx-cloth);stroke:var(--cx-ink);stroke-width:1.5}
.cx-sa-piece{fill:#fff;stroke:var(--cx-ink);stroke-width:1.5;vector-effect:non-scaling-stroke}
.cx-sa-kring{fill:none;stroke:var(--cx-ochre);stroke-width:3}
.cx-sa-knife{translate:52px 82px}
.cx-sa-ply{fill:var(--cx-cloth);stroke:var(--cx-ink);stroke-width:1.4}
.cx-sa-ticket{fill:var(--cx-ochre)}
.cx-sa-tk{stroke:#fff;stroke-width:2}
:root[data-m-go] [data-m-live~=cx-wave0][data-m-on]{animation-name:cx-wave0;animation-duration:3.6s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes cx-wave0{from{opacity:1}to{opacity:.12}}
:root[data-m-go] [data-m-live~=cx-stneedle][data-m-on]{animation-name:cx-needle;animation-duration:3.6s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes cx-needle{from{rotate:-70deg}to{rotate:10deg}}
:root[data-m-go] [data-m-live~=cx-shrink][data-m-on]{animation-name:cx-shrink;animation-duration:3.6s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes cx-shrink{from{scale:1}to{scale:.88}}
:root[data-m-go] [data-m-live~=cx-stscan][data-m-on]{animation-name:cx-stscan;animation-duration:3.2s;animation-timing-function:var(--cx-ease);animation-iteration-count:infinite;animation-direction:alternate}
@keyframes cx-stscan{from{translate:50px 0}to{translate:350px 0}}
:root[data-m-go] [data-m-live~=cx-stknife][data-m-on]{animation-name:cx-stknife;animation-duration:6s;animation-timing-function:linear;animation-iteration-count:infinite}
@keyframes cx-stknife{0%,100%{translate:52px 82px}25%{translate:142px 82px}50%{translate:142px 202px}75%{translate:52px 202px}}
:root[data-m-go] [data-m-live~=cx-stply][data-m-on] .cx-sa-ply{animation-name:cx-stply;animation-duration:4s;animation-timing-function:var(--cx-out);animation-iteration-count:infinite;animation-delay:calc(var(--k) * 140ms)}
@keyframes cx-stply{0%{opacity:0;translate:0 -16px}18%,100%{opacity:1;translate:0 0}}
:root[data-m-go] [data-m-live~=cx-sttk][data-m-on]{animation-name:cx-sttk;animation-duration:3.6s;animation-timing-function:var(--cx-out);animation-iteration-count:infinite;animation-delay:calc(var(--b) * 300ms)}
@keyframes cx-sttk{0%{translate:40px 0;opacity:0}20%,100%{translate:0 0;opacity:1}}

/* ================= 4 · evidence: the lit light table in the data room (indigo, the machine-vision layer) ================= */
.cx-sec--ink{background:#0f1b3a;color:#eef1f8;--cx-fg:#eef1f8;--cx-sub:#c3cbe0;--cx-hair:#ffffff2e;--cx-acc:var(--cx-gold-hi);--cx-ipanel:#16264d;--cx-iline:#3a4d80}
.cx-sec--ev{padding-top:0;padding-bottom:0}
.cx-ev__top{position:relative;padding-top:clamp(40px,4vw,64px);padding-bottom:clamp(24px,2.4vw,36px)}
.cx-ev__top .cx-head{margin-bottom:0}
.cx-ev__drop{position:absolute;inset:0;background:linear-gradient(180deg,#e8efe94d 0%,#e8efe914 70%,#e8efe90a 100%);background-image:repeating-linear-gradient(90deg,#e8efe91f 0 1px,transparent 1px 13px),linear-gradient(180deg,#e8efe933 0%,#e8efe90d 100%);clip-path:polygon(30.6% 0,35% 0,100% 100%,0 100%);pointer-events:none}
.cx-ev__top>.gft-container{position:relative}
.cx-lane{position:relative;overflow-anchor:none}
.cx-lane__table{position:relative;height:clamp(176px,15vw,216px);background:radial-gradient(ellipse at 50% 50%,#ffffff 0%,#f1f6f2 58%,#dbe7df 100%);background-color:#eef4ef;border-block:3px solid var(--cx-gold);overflow:hidden;box-shadow:0 0 80px #f0c46a33}
.cx-lane__table::before{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(90deg,#25302e12 0 1px,transparent 1px 13px)}
.cx-lane__col{position:absolute;top:0;bottom:0;left:var(--x);width:5%;margin-left:-2.5%;background:linear-gradient(90deg,transparent,#fff6dd 50%,transparent);opacity:.7}
.cx-lane__d{position:absolute;left:var(--x);top:calc(24% + var(--y) * .68);width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:var(--cx-leaf);border:2px solid #fff;box-shadow:0 0 0 1.5px var(--cx-leaf);transition:background .3s,box-shadow .3s,opacity .3s;cursor:crosshair}
.cx-lane__d::before{content:'';position:absolute;inset:-9px;border:2px solid var(--cx-gold-ink);transition:opacity .3s}
.cx-lane__d b{position:absolute;left:50%;top:-18px;bottom:-18px;width:2px;margin-left:-1px;background:var(--cx-leaf);opacity:.45;transition:opacity .3s}
.cx-lane__d[data-miss]{background:var(--cx-ochre);box-shadow:0 0 0 2px var(--cx-warn-ink)}
.cx-lane__d[data-miss]::before{opacity:0}
.cx-lane__d[data-miss] b{opacity:0}
.cx-lane__d[data-miss]::after{content:'';position:absolute;inset:-9px;border-radius:50%;border:2px solid var(--cx-warn-ink)}
.cx-lane__d[data-out]{background:#fff;box-shadow:0 0 0 1.5px #6d7c75}
.cx-lane__d[data-out]::before,.cx-lane__d[data-out] b{opacity:0}
.cx-lane__d[data-out]::after{display:none}
:root[data-m-go] [data-m-live~=cx-lane][data-m-on] .cx-lane__d[data-miss]:not([data-out])::after{animation-name:cx-lane-pulse;animation-duration:2.2s;animation-timing-function:ease-out;animation-iteration-count:infinite}
@keyframes cx-lane-pulse{from{scale:.7;opacity:1}to{scale:1.8;opacity:0}}
.cx-lane__veil{position:absolute;inset:0;background:#25302e1f;background-image:repeating-linear-gradient(135deg,#25302e1a 0 2px,transparent 2px 9px);transform-origin:100% 50%;transform:scaleX(calc(1 - var(--p,1)));transition:transform .25s}
.cx-lane__sweep-w{position:absolute;inset:0;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .3s}
.cx-ev[data-view=speed] .cx-lane__sweep-w{opacity:1}
.cx-lane__sweep{position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent 80%,#f0c46a55 99%,var(--cx-ochre) 99.6%)}
:root[data-m-go] .cx-ev[data-view=speed] [data-m-live~=cx-sweep][data-m-on] .cx-lane__sweep{animation-name:cx-sweep;animation-duration:3s;animation-timing-function:linear;animation-iteration-count:infinite}
@keyframes cx-sweep{from{transform:translateX(-100%)}to{transform:translateX(0)}}
.cx-lane__tag,.cx-lane__speed{position:absolute;left:clamp(16px,3.4vw,48px);top:8px;font:600 12px var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--cx-ink);background:#ffffffe6;padding:3px 8px;pointer-events:none}
.cx-lane__speed{top:auto;bottom:8px;color:var(--cx-gold-ink);opacity:0;transition:opacity .3s}
.cx-ev[data-view=speed] .cx-lane__speed{opacity:1}
.cx-lane__key{position:absolute;right:clamp(16px,3.4vw,48px);top:8px;display:flex;gap:14px;font:600 12px var(--gft-font-mono);color:var(--cx-ink);background:#ffffffe6;padding:3px 8px;pointer-events:none}
.cx-lane__key span{display:inline-flex;align-items:center;gap:6px}
.cx-lane__key span::before{content:'';width:10px;height:10px;flex:none}
.cx-lane__key .k-box::before{border:2px solid var(--cx-gold-ink);background:var(--cx-leaf);box-shadow:inset 0 0 0 2px #fff}
.cx-lane__key .k-miss::before{border-radius:50%;background:var(--cx-ochre);box-shadow:0 0 0 2px var(--cx-warn-ink)}
.cx-lane__key .k-out::before{border-radius:50%;background:#fff;box-shadow:0 0 0 1.5px #6d7c75}
.cx-lane__tip{position:absolute;left:var(--x,50%);top:calc(24% + var(--y,50%) * .68);translate:-50% calc(-100% - 18px);font:700 13px var(--gft-font-mono);white-space:nowrap;padding:4px 8px;background:var(--cx-ink);color:#fff;opacity:0;transition:opacity .15s;pointer-events:none;z-index:2}
.cx-lane__tip[data-on]{opacity:1}
.cx-lane__tip[data-on=miss]{background:var(--cx-warn-ink)}
/* reed: the light table lights column by column as the reed beats up */
:root[data-m-go] [data-m=reed]:not([data-m-in]) :is(.cx-lane__col,.cx-lane__d){opacity:0}
:root[data-m-go] [data-m=reed][data-m-in] .cx-lane__col{animation-name:cx-reed-col;animation-duration:620ms;animation-timing-function:ease-out;animation-delay:calc(var(--c) * 26ms);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-m=reed][data-m-in] .cx-lane__d{animation-name:cx-reed-dot;animation-duration:600ms;animation-timing-function:var(--cx-out);animation-delay:calc(200ms + var(--c) * 26ms);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes cx-reed-col{from{opacity:0}40%{opacity:1}}
@keyframes cx-reed-dot{from{opacity:0;scale:.3}60%{scale:1.3}}
/* the controls: one large method toggle, the inspected-length scrub and the lay's own figures */
.cx-lane__ctl{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);grid-template-areas:"seg lay" "scrub read";gap:16px clamp(24px,3vw,48px);align-items:center;padding-block:20px 6px}
.cx-seg2{grid-area:seg;display:grid;grid-template-columns:1fr 1fr;border:2px solid var(--cx-gold-hi);padding:4px;gap:4px}
.cx-seg2 button{display:grid;gap:4px;justify-items:start;text-align:left;min-height:72px;padding:10px 16px;border:0;background:transparent;color:#eef1f8;transition:background .3s,color .3s}
.cx-seg2 button b{font:800 clamp(17px,1.4vw,20px)/1.15 var(--gft-font-display);letter-spacing:-.02em}
.cx-seg2 button span{font:13px/1.35 var(--gft-font-mono);color:#c3cbe0;transition:color .3s}
.cx-seg2 button:hover{background:#ffffff12}
.cx-seg2 button[aria-pressed=true]{background:var(--cx-gold-hi);color:#0f1b3a}
.cx-seg2 button[aria-pressed=true] span{color:#2a2410}
.cx-lane__scrub{grid-area:scrub;display:grid;grid-template-columns:auto 1fr 4.5ch;gap:12px;align-items:center}
.cx-lane__scrub label{font:12px var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#c3cbe0}
.cx-lane__scrub input{width:100%;accent-color:var(--cx-gold-hi)}
.cx-lane__scrub output{font:700 15px var(--gft-font-mono);text-align:right}
.cx-lane__lay{grid-area:lay;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0;border:1px solid var(--cx-iline)}
.cx-lane__lay>div{padding:10px 14px;border-left:1px solid var(--cx-iline)}
.cx-lane__lay>div:first-child{border-left:0}
.cx-lane__lay dt{font:12px/1.3 var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#c3cbe0}
.cx-lane__lay dd{margin:4px 0 0;font:850 clamp(2rem,3vw,2.7rem)/1 var(--gft-font-display);letter-spacing:-.05em;font-variant-numeric:tabular-nums;color:#eef1f8}
.cx-lane__lay dd small{font:600 14px var(--gft-font-mono);letter-spacing:0;margin-left:.4em;color:#c3cbe0}
.cx-lane__lay .is-miss dd{color:#ffb08f}
.cx-lane__read{grid-area:read;font-size:15px;font-weight:600;line-height:1.45;max-width:none;min-height:2.9em;color:#eef1f8}
/* chips: four sourced figures; the method toggle lights the one it rests on */
.cx-chips{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:26px}
.cx-chip{display:grid;align-content:start;gap:8px;transition:opacity .35s}
.cx-chip__btn{display:grid;gap:6px;justify-items:start;text-align:left;width:100%;min-height:128px;padding:14px 16px;border:1.5px solid var(--cx-iline);background:var(--cx-ipanel);color:#eef1f8;transition:background .25s,color .25s,border-color .25s}
.cx-chip__btn:hover{border-color:var(--cx-gold-hi)}
.cx-chip__val{font:850 clamp(2rem,3vw,2.8rem)/1 var(--gft-font-display);letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.cx-chip__val small{font-size:.42em;letter-spacing:0;margin-left:.2em;font-weight:650}
.cx-chip__lab{font-size:14px;line-height:1.35;font-weight:600}
.cx-chip[data-on] .cx-chip__btn{background:#eef1f8;color:#0f1b3a;border-color:#eef1f8;box-shadow:0 0 0 4px #f0c46a66}
.cx-chip[data-on] .cx-chip__val{color:#7a4b06}
.cx-chip__note{font-size:13px;line-height:1.5;color:#c3cbe0;max-width:none}
.cx-ev__stage{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(24px,3vw,48px);margin-top:36px;align-items:start}
.cx-ev__bars-title{color:var(--cx-gold-hi);margin-bottom:14px}
.cx-views{display:grid}
.cx-view{grid-area:1/1;display:grid;gap:16px;align-content:start;visibility:hidden;opacity:0;transition:opacity .2s,visibility 0s .2s}
.cx-ev[data-view=pair] .cx-view--pair,.cx-ev[data-view=speed] .cx-view--speed,.cx-ev[data-view=market] .cx-view--market{visibility:visible;opacity:1;transition:opacity .35s .2s,visibility 0s .2s}
.cx-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;align-items:center;padding:8px 10px;border-left:4px solid transparent;transition:border-color .3s,background .3s}
.cx-bar__name{grid-column:1/-1;font-size:14px;font-weight:650;max-width:none}
.cx-bar__track{position:relative;height:26px;background:#24345e}
.cx-bar__range,.cx-bar__fill{position:absolute;inset:0;transform-origin:0 50%;transform:scaleX(var(--w));transition:transform .6s var(--cx-ease)}
.cx-bar__range{background:repeating-linear-gradient(135deg,#eef1f840 0 2px,transparent 2px 7px)}
.cx-bar--manual .cx-bar__fill{background:#9aa6c4}
.cx-bar--vision .cx-bar__fill{background:var(--cx-sage)}
.cx-bar__val{font:800 17px var(--gft-font-display);white-space:nowrap;max-width:none}
.cx-bar__axis{font:12px/1.5 var(--gft-font-mono);color:#c3cbe0;max-width:none}
.cx-ev[data-side=before] .cx-bar[data-side=before],.cx-ev[data-side=after] .cx-bar[data-side=after]{border-color:var(--cx-gold-hi);background:#ffffff12}
.cx-cmp__lab{color:var(--cx-gold-hi);margin-bottom:12px}
.cx-cmp__panels{display:grid}
.cx-cmp__panel{grid-area:1/1;visibility:hidden;opacity:0;transition:opacity .2s,visibility 0s .2s;background:var(--cx-ipanel);border:1px solid var(--cx-iline);border-top:4px solid #9aa6c4;padding:18px 20px}
.cx-ev[data-side=before] .cx-cmp__panel[data-for=before],.cx-ev[data-side=after] .cx-cmp__panel[data-for=after]{visibility:visible;opacity:1;transition:opacity .35s .2s,visibility 0s .2s}
.cx-cmp__panel[data-for=after]{border-top-color:var(--cx-sage)}
.cx-cmp__badge{font:12px var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cx-gold-hi)}
.cx-cmp__panel h3{font-size:19px;line-height:1.25;margin:6px 0 10px;letter-spacing:-.02em}
.cx-cmp__panel ul{margin:0;padding-left:18px;display:grid;gap:8px}
.cx-cmp__panel li{font-size:14.5px;line-height:1.55}
.cx-ev__tablebar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px 24px;margin-top:40px;margin-bottom:10px}
.cx-ev__cap{font-size:15px;font-weight:650;max-width:60ch}
.cx-filter{display:flex;flex-wrap:wrap;gap:4px}
.cx-filter button,.cx-chipbar button{min-height:44px;padding:6px 12px;border:1px solid var(--cx-hair);background:transparent;color:var(--cx-fg);font-size:13px;font-weight:650;display:inline-flex;align-items:center;gap:8px}
.cx-filter button[aria-pressed=true]{background:#eef1f8;border-color:#eef1f8;color:#0f1b3a}
.cx-table-wrap{overflow-x:auto}
.cx-table{width:100%;border-collapse:collapse;min-width:760px}
.cx-table th{font:12px var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;text-align:left;padding:10px 12px;border-bottom:2px solid #eef1f8;color:#c3cbe0}
.cx-table td{padding:12px;font-size:14px;line-height:1.5;border-bottom:1px solid #ffffff24;vertical-align:top}
.cx-table tbody tr{transition:background .3s,box-shadow .3s;cursor:pointer}
.cx-table tbody tr:focus-visible{outline:3px solid var(--cx-gold-hi);outline-offset:-3px}
.cx-table tbody tr[data-on]{background:#2c3e7a;box-shadow:inset 5px 0 0 var(--cx-gold-hi)}
.cx-table td:first-child{font-weight:700}
.cx-ev__rowread{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;align-items:baseline;margin-top:12px;padding:12px 14px;background:var(--cx-ipanel);border-left:4px solid var(--cx-gold-hi)}
.cx-ev__rowread b{font:600 12px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cx-gold-hi)}
.cx-ev__rowstack{display:grid;max-width:none}
.cx-ev__rowstack span{grid-area:1/1;font-size:14px;line-height:1.55;visibility:hidden;opacity:0;transition:opacity .2s,visibility 0s .2s}
.cx-ev__rowstack span[data-on]{visibility:visible;opacity:1;transition:opacity .3s .2s,visibility 0s .2s}
.cx-src{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 28px;margin-top:18px;padding-top:14px;border-top:1px solid #ffffff24}
.cx-src__note{font:12px/1.6 var(--gft-font-mono);color:#c3cbe0;max-width:80ch}
.cx-src__ids{display:flex;gap:6px;list-style:none;margin:0;padding:0;counter-reset:cx-src}
.cx-src__ids li{display:flex;align-items:center;gap:4px;counter-increment:cx-src;font:12px var(--gft-font-mono)}
.cx-src__ids li::before{content:counter(cx-src);color:var(--cx-gold-hi);font-weight:700}
.cx-slubedge{position:relative;height:44px;margin-top:clamp(36px,4vw,56px)}
.cx-slubedge::before{content:'';position:absolute;left:0;right:0;top:50%;height:2px;background:var(--cx-sage)}
.cx-slubedge__dot{position:absolute;left:var(--slub-x);top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:var(--cx-ochre);box-shadow:0 0 0 2px #0f1b3a,0 0 0 4px var(--cx-gold-hi)}
.cx-slubedge__dot i{position:absolute;inset:-8px;border-radius:50%;border:2px solid var(--cx-ochre)}
:root[data-m-go] [data-m-live~=cx-slub2][data-m-on]{animation-name:cx-lane-pulse;animation-duration:2.2s;animation-timing-function:ease-out;animation-iteration-count:infinite}
.cx-slubedge__lab{position:absolute;left:calc(var(--slub-x) + 20px);top:0;font:600 12px var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--cx-gold-hi);background:#0f1b3a;padding-right:8px}
.cx-sec--ink .gft-cite{border-color:#c3cbe0;color:#eef1f8}

/* ================= 5 · interlude: the missed slub rides the rail ================= */
.cx-sec--inter{padding-bottom:0;overflow:clip}
.cx-iris{position:relative}
.cx-head--inter{margin-bottom:18px}
.cx-quote{margin:0 0 6px;max-width:none;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 32px;align-items:end;border-top:1px solid #ffffff26;padding-top:16px}
.cx-quote p{font:italic 400 clamp(1.35rem,2.1vw,2rem)/1.32 var(--gft-font-serif);color:#f6f4ef;max-width:52ch}
.cx-quote footer{font:12px/1.5 var(--gft-font-mono);color:var(--cx-sub-d);max-width:30ch;text-align:right}
.cx-chain{position:relative}
.cx-chain__svg{display:block;width:100%;height:auto}
.cx-c-rail{stroke:var(--cx-sage);stroke-width:3;fill:none}
.cx-c-flow circle{fill:var(--cx-gold-hi)}
:root[data-m-go] [data-m-live~=cx-flow][data-m-on]{animation-name:cx-flow;animation-duration:7s;animation-timing-function:linear;animation-iteration-count:infinite}
@keyframes cx-flow{from{translate:0 0}to{translate:2560px 0}}
.cx-c-box{fill:#0b3d39;stroke:#6bb68f;stroke-width:1.5;transition:stroke .3s,fill .3s}
.cx-c-no{font:850 30px var(--gft-font-display);fill:var(--cx-gold-hi)}
.cx-c-lab{font:600 16px var(--gft-font-mono);fill:#e7f1ea;letter-spacing:.06em}
.cx-c-piece{fill:#0e4d4a;stroke:#e3a948;stroke-width:1.8;vector-effect:non-scaling-stroke}
.cx-c-seam{stroke:#f0c46a;stroke-width:2;stroke-dasharray:4 4;fill:none}
.cx-c-reject{stroke:var(--cx-warn);stroke-width:5;fill:none}
.cx-c-layer{opacity:.14;transition:opacity .45s;fill:#c9dbd0}
.cx-c-layer--cloth{fill:#6bb68f}.cx-c-layer--cut{fill:#e3a948}.cx-c-layer--sew{fill:#f0c46a}.cx-c-layer--unit{fill:var(--cx-warn)}
.cx-c-layer:not(.is-on){opacity:0}
.cx-sec--inter[data-step="0"] .cx-c-st[data-n="0"] .is-on,
.cx-sec--inter[data-step="1"] .cx-c-st:is([data-n="0"],[data-n="1"]) .is-on,
.cx-sec--inter[data-step="2"] .cx-c-st:is([data-n="0"],[data-n="1"],[data-n="2"]) .is-on,
.cx-sec--inter[data-step="3"] .cx-c-st .is-on{opacity:1}
.cx-sec--inter[data-step="0"] .cx-c-st[data-n="0"] .cx-c-box,.cx-sec--inter[data-step="1"] .cx-c-st[data-n="1"] .cx-c-box,.cx-sec--inter[data-step="2"] .cx-c-st[data-n="2"] .cx-c-box,.cx-sec--inter[data-step="3"] .cx-c-st[data-n="3"] .cx-c-box{stroke:var(--cx-gold-hi);stroke-width:3;fill:#123f3b}
.cx-c-defect{translate:220px 250px;transition:translate .8s var(--cx-ease)}
.cx-sec--inter[data-step="1"] .cx-c-defect{translate:600px 250px}
.cx-sec--inter[data-step="2"] .cx-c-defect{translate:980px 250px}
.cx-sec--inter[data-step="3"] .cx-c-defect{translate:1360px 250px}
.cx-c-defect-dot{fill:#e3a948;stroke:#072d2b;stroke-width:3}
.cx-c-defect-halo{fill:none;stroke:#e3a948;stroke-width:2.5;transform-box:fill-box;transform-origin:center}
:root[data-m-go] [data-m-live~=cx-halo][data-m-on] .cx-c-defect-halo{animation-name:cx-ring;animation-duration:2s;animation-timing-function:ease-out;animation-iteration-count:infinite}
.cx-railv{display:none}
.cx-inter{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);grid-template-areas:"ply ctrl" "prose ctrl";gap:20px clamp(28px,4vw,64px);margin-top:8px;align-items:start}
.cx-inter__ply{grid-area:ply;margin:0;background:#0b3d39;border:1px solid #6bb68f40;padding:10px 12px}
.cx-ply-svg{display:block;width:100%;height:auto}
.cx-p-ply{fill:#1f6f66;stroke:#6bb68f}
.cx-p-ply.is-bad{fill:#5b3a12;stroke:#e3a948;stroke-width:2}
.cx-p-t{font:600 15px var(--gft-font-mono);fill:#e7f1ea;letter-spacing:.04em}
.cx-p-t--hot{fill:var(--cx-gold-hi)}
.cx-p-flag circle{fill:#e3a948;transform-box:fill-box;transform-origin:center}
.cx-p-pole{stroke:#e3a948;stroke-width:2}
.cx-p-line{stroke:#6bb68f;stroke-width:2;stroke-dasharray:4 5}
.cx-p-st{fill:#0b3d39;stroke:#6bb68f;stroke-width:2}
.cx-p-st.is-found{fill:var(--cx-warn);stroke:var(--cx-warn)}
:root[data-m-go] [data-m-live~=cx-flag][data-m-on]{animation-name:cx-blink;animation-duration:1.6s;animation-timing-function:steps(2,jump-none);animation-iteration-count:infinite}
@keyframes cx-blink{from{opacity:1}to{opacity:.25}}
.cx-inter__ply figcaption{font-size:14px;line-height:1.5;color:var(--cx-sub-d);padding:8px 4px 2px}
.cx-inter__ctrl{grid-area:ctrl;display:grid;gap:18px}
.cx-scrub{display:grid;gap:8px}
.cx-scrub__label{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font:12px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cx-sub-d)}
.cx-scrub__label strong{font:800 20px var(--gft-font-display);letter-spacing:-.02em;text-transform:none;color:var(--cx-gold-hi)}
.cx-scrub input{width:100%;accent-color:var(--cx-gold)}
.cx-scrub__ticks{display:grid;grid-template-columns:repeat(4,1fr);font:12px var(--gft-font-mono);color:var(--cx-sub-d);max-width:none}
.cx-scrub__ticks span:nth-child(2){text-align:center;translate:-30% 0}.cx-scrub__ticks span:nth-child(3){text-align:center;translate:30% 0}.cx-scrub__ticks span:last-child{text-align:right}
.cx-scrub__play{justify-self:start;min-height:44px;padding:8px 18px;border:1px solid var(--cx-gold-hi);background:transparent;color:var(--cx-gold-hi);font-weight:700;font-size:14px}
.cx-scrub__play[aria-pressed=true]{background:var(--cx-gold-hi);color:var(--cx-night)}
.cx-big{display:grid;border-top:1px solid #ffffff26;padding-top:14px}
.cx-big__s{grid-area:1/1;visibility:hidden;opacity:0;transition:opacity .2s,visibility 0s .2s}
.cx-sec--inter[data-step="0"] .cx-big__s[data-for="0"],.cx-sec--inter[data-step="1"] .cx-big__s[data-for="1"],.cx-sec--inter[data-step="2"] .cx-big__s[data-for="2"],.cx-sec--inter[data-step="3"] .cx-big__s[data-for="3"]{visibility:visible;opacity:1;transition:opacity .35s .2s,visibility 0s .2s}
.cx-big__v{font:850 clamp(2.6rem,5.2vw,5rem)/1 var(--gft-font-display);letter-spacing:-.055em;color:var(--cx-gold-hi);max-width:none}
.cx-big__t{font-size:16px;line-height:1.55;color:#e7f1ea;margin-top:10px;max-width:46ch}
.cx-legend2{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.cx-legend2 li{display:inline-flex;align-items:center;gap:8px;font:12px var(--gft-font-mono);padding:6px 10px;border:1px solid #ffffff2e;color:var(--cx-sub-d);transition:background .3s,color .3s}
.cx-legend2 li::before{content:'';width:12px;height:12px;background:currentColor}
.cx-legend2__cloth{--c:#6bb68f}.cx-legend2__cut{--c:#e3a948}.cx-legend2__sew{--c:#f0c46a}.cx-legend2__unit{--c:var(--cx-warn)}
.cx-legend2 li[data-min="0"],.cx-sec--inter:is([data-step="1"],[data-step="2"],[data-step="3"]) .cx-legend2 li[data-min="1"],.cx-sec--inter:is([data-step="2"],[data-step="3"]) .cx-legend2 li[data-min="2"],.cx-sec--inter[data-step="3"] .cx-legend2 li[data-min="3"]{background:var(--c);color:var(--cx-night);border-color:var(--c)}
.cx-inter__prose{grid-area:prose;display:grid;gap:12px}
.cx-inter__prose p{font-size:15px;line-height:1.62;color:#e7f1ea;max-width:none}
.cx-inter__prose b{display:block;font:12px var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cx-gold-hi);margin-bottom:2px;font-weight:600}
.cx-inter__edge{position:relative;height:clamp(40px,4vw,56px);overflow-anchor:none}
.cx-inter__edge-line{position:absolute;left:0;right:0;top:40%;height:3px;background:var(--cx-sage)}
@supports (animation-timeline:view()){
 .cx-inter__edge{view-timeline-name:--cx-edge;view-timeline-axis:block}
 :root[data-m-go] .cx-inter__edge-line{animation-name:cx-edge;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--cx-edge;animation-range-start:contain 0%;animation-range-end:exit 100%}
}
@keyframes cx-edge{from{translate:0 0}to{translate:0 72px;opacity:.35}}
.cx-iris[data-m-in]{overflow-anchor:none}

/* ================= 6 · sequence: the sticky cutting table ================= */
.cx-sec--seq{padding-top:clamp(16px,2vw,28px);padding-bottom:24px}
.cx-sec--cm{padding-top:clamp(40px,4vw,56px)}
.cx-seq{display:grid;grid-template-columns:minmax(0,2.06fr) minmax(0,1fr);grid-template-areas:"stage head" "stage track";gap:0 clamp(28px,3vw,44px);timeline-scope:--cx-tail}
.cx-head--seq{grid-area:head;grid-template-columns:minmax(0,1fr);gap:14px;margin:clamp(16px,3vw,40px) 0 0}
.cx-head--seq h2{font-size:clamp(1.9rem,2.8vw,2.8rem)}
.cx-seq__stage{grid-area:stage;position:sticky;top:max(20px,calc(50svh - 310px));align-self:start;height:min(620px,calc(100svh - 40px));min-height:460px;z-index:1}
.cx-seq__wipe,.cx-seq__zoom{height:100%}
.cx-seq__zoom{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:6px;background:var(--cx-deep);border:1px solid #6bb68f45;padding:14px 16px;position:relative}
/* hand-over frame: a gold inset rule lights as the tail passes; the table keeps its full size and leaves with the section */
.cx-seq__zoom::after{content:'';position:absolute;inset:-1px;border:2px solid var(--cx-gold-hi);opacity:0;pointer-events:none}
.cx-seq__top{display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap}
.cx-seq__no{font:850 44px/1 var(--gft-font-display);letter-spacing:-.06em;color:var(--cx-gold-hi);max-width:none;min-width:2.2ch}
.cx-seq__nav{display:flex;gap:4px;flex:1;flex-wrap:wrap}
.cx-seq__nav a{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 10px;text-decoration:none;color:#c9dbd0;border-bottom:3px solid #ffffff1f;font:12px var(--gft-font-mono);letter-spacing:.04em;transition:color .3s,border-color .3s}
.cx-seq__nav a em{font-style:normal}
.cx-seq__nav a[aria-current=step]{color:var(--cx-gold-hi);border-color:var(--cx-gold-hi)}
.cx-seq__pn{display:flex;gap:4px}
.cx-seq__pn button{width:44px;height:44px;border:1px solid #6bb68f66;background:transparent;color:#f6f4ef;font-size:22px;line-height:1}
.cx-seq__svg{width:100%;height:100%;min-height:0}
/* Swap complete schematics and their read-outs atomically, so the machine never disappears and labels never
   overlap. Preserve rotate, pan and stamp arrivals; wipe only the scan fan over its continuously visible outline. */
.cx-q{opacity:0;visibility:hidden;transition:none}
.cx-seq[data-step="0"] .cx-q[data-s="0"],.cx-seq[data-step="1"] .cx-q[data-s="1"],.cx-seq[data-step="2"] .cx-q[data-s="2"],.cx-seq[data-step="3"] .cx-q[data-s="3"]{opacity:1;visibility:visible;transition:none}
:root[data-m-go] .cx-seq[data-step="0"] .cx-q[data-s="0"]{animation-name:cx-q-rot;animation-duration:820ms;animation-delay:0ms;animation-timing-function:cubic-bezier(.3,0,.1,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;transform-box:view-box;transform-origin:150px 330px}
:root[data-m-go] .cx-seq[data-step="1"] .cx-q[data-s="1"] .cx-q-fan{animation-name:cx-q-wipe;animation-duration:820ms;animation-delay:0ms;animation-timing-function:cubic-bezier(.65,0,.35,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .cx-seq[data-step="2"] .cx-q[data-s="2"]{animation-name:cx-q-pan;animation-duration:820ms;animation-delay:0ms;animation-timing-function:cubic-bezier(.2,0,0,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .cx-seq[data-step="3"] .cx-q[data-s="3"]{animation-name:cx-q-stamp;animation-duration:820ms;animation-delay:0ms;animation-timing-function:cubic-bezier(.5,0,.3,1.25);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;transform-box:view-box;transform-origin:450px 360px}
@keyframes cx-q-rot{from{rotate:-14deg;scale:.9}}
@keyframes cx-q-wipe{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes cx-q-pan{from{translate:-120px 0}}
@keyframes cx-q-stamp{from{scale:1.18}}
.cx-q-slab{fill:#12504a;stroke:#6bb68f}.cx-q-leg{stroke:#6bb68f;stroke-width:3;fill:none}
.cx-q-roll{fill:#0d4743;stroke:#6bb68f;stroke-width:2}.cx-q-roll.ghost,.cx-q-roll2.ghost{opacity:.3}
.cx-q-roll2{fill:none;stroke:#6bb68f;stroke-opacity:.5;stroke-width:1.5}
.cx-q-core{fill:#e3a948}
.cx-q-web{fill:#0e4d4a;stroke:#6bb68f;stroke-opacity:.6}
.cx-q-warp{stroke:#9fd2b8;stroke-opacity:.22;fill:none}
.cx-q-dim{stroke:#e3a948;stroke-width:2;fill:none}
.cx-q-t{fill:#eaf2ec;font:600 17px var(--gft-font-mono);letter-spacing:.03em}
.cx-q-tb{fill:#072d2b;font:800 22px var(--gft-font-display)}
.cx-q-ring{fill:none;stroke:#6bb68f;stroke-width:3}.cx-q-hand{stroke:#e3a948;stroke-width:3;fill:none}
.cx-q-hand-w{transform-origin:520px 252px}
.cx-q-chip{stroke:#f6f4ef;stroke-opacity:.3}.cx-q-chip--a{fill:#9ccdb4}.cx-q-chip--b{fill:#e3a948}.cx-q-chip--c{fill:#c98a2b}
.cx-q-chipring{fill:none;stroke:#f6f4ef;stroke-width:2.5}
.cx-q-tension{fill:none;stroke:var(--cx-warn);stroke-width:2.4;stroke-dasharray:4 5}
.cx-q-flat{stroke:#6bb68f;stroke-width:2.4}
.cx-q-bar{fill:#0b4a45;stroke:#6bb68f}.cx-q-lens{fill:#ffd48a}
.cx-q-fan{fill:#ffd48a;opacity:.1}
.cx-q-beam{stroke:#ffd48a;stroke-width:2;fill:none}
.cx-q-scan{translate:480px 0}
.cx-q-dot{fill:#f6f4ef}.cx-q-d.is-miss .cx-q-dot{fill:#e3a948}
.cx-q-box{fill:none;stroke:#ffd48a;stroke-width:1.6}
.cx-q-splice{stroke:#e3a948;stroke-width:2;stroke-dasharray:5 5;fill:none}
.cx-q-map{stroke:#6bb68f;stroke-width:4;stroke-opacity:.8;fill:none}
.cx-q-mapw{transform-box:fill-box;transform-origin:0 0}
.cx-q-ply{fill:#1f6f66;stroke:#6bb68f}
.cx-q-lay{fill:#0b3d39;stroke:#6bb68f;stroke-opacity:.6}
.cx-q-piece{fill:#0d5a52;stroke:#e3a948;stroke-width:1.5;vector-effect:non-scaling-stroke}
.cx-q-knifepath{fill:none;stroke:#ffd48a;stroke-width:2.2;stroke-dasharray:6 5;vector-effect:non-scaling-stroke}
.cx-q-kring{fill:none;stroke:#ffd48a;stroke-width:2}.cx-q-kdot{fill:#ffd48a}
.cx-q-knife{translate:376px 262px}
.cx-q-splicex{stroke:var(--cx-warn);stroke-width:3;fill:none}
.cx-q-ticket{fill:#e3a948}.cx-q-tline{stroke:#072d2b;stroke-width:2.5}
.cx-q-arrow{stroke:#e3a948;stroke-width:3;fill:none}
.cx-q-rack{fill:#0b3d39;stroke:#6bb68f}.cx-q-shelf{stroke:#6bb68f;stroke-opacity:.6;fill:none}
.cx-q-slot{fill:#e3a948;stroke:#072d2b}
/* per-step motion: each composition arrives in its own way (transitions keyed on the step, not loops) */
.cx-q-mapw path{transition:scale .5s var(--cx-out)}
.cx-q-splice{transition:translate .5s var(--cx-out),opacity .4s}
.cx-seq:not([data-step="1"]) .cx-q-splice{translate:0 -24px;opacity:0}
.cx-seq:not([data-step="1"]) .cx-q-mapw{scale:0 1}
.cx-q-mapw{transition:scale .6s var(--cx-out) .2s}
.cx-q-ply{transition:translate .45s var(--cx-out);transition-delay:calc(var(--k) * 45ms)}
.cx-seq:not([data-step="2"]) .cx-q-ply{translate:0 -30px}
.cx-q-tk{transition:translate .5s var(--cx-out),opacity .4s;transition-delay:calc(200ms + var(--b,0) * 160ms)}
.cx-q-bundle{--b:0}
.cx-q-bundle .cx-q-tk{transition-delay:calc(200ms + var(--b) * 160ms)}
.cx-seq:not([data-step="3"]) .cx-q-tk{translate:0 -40px;opacity:0}
.cx-q-slot{transition:opacity .4s;transition-delay:calc(650ms + var(--b) * 160ms)}
.cx-seq:not([data-step="3"]) .cx-q-slot{opacity:0}
:root[data-m-go] .cx-seq[data-step="0"] [data-m-live~=cx-tension][data-m-on]{animation-name:cx-wave0;animation-duration:3.2s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
:root[data-m-go] .cx-seq[data-step="0"] [data-m-live~=cx-clock][data-m-on]{animation-name:cx-clock;animation-duration:6s;animation-timing-function:linear;animation-iteration-count:infinite}
@keyframes cx-clock{to{rotate:360deg}}
:root[data-m-go] .cx-seq[data-step="1"] [data-m-live~=cx-scan2][data-m-on]{animation-name:cx-scan2;animation-duration:4.4s;animation-timing-function:var(--cx-ease);animation-iteration-count:infinite;animation-direction:alternate}
@keyframes cx-scan2{from{translate:250px 0}to{translate:850px 0}}
:root[data-m-go] .cx-seq[data-step="2"] [data-m-live~=cx-knife2][data-m-on]{animation-name:cx-knife2;animation-duration:7s;animation-timing-function:linear;animation-iteration-count:infinite}
@keyframes cx-knife2{0%,100%{translate:376px 262px}12%{translate:416px 262px}24%{translate:446px 276px}40%{translate:446px 392px}60%{translate:346px 392px}76%{translate:346px 276px}88%{translate:376px 262px}}
:root[data-m-go] .cx-seq[data-step="3"] [data-m-live~=cx-arrow][data-m-on]{animation-name:cx-arrow;animation-duration:1.6s;animation-timing-function:var(--cx-out);animation-iteration-count:infinite}
@keyframes cx-arrow{from{translate:-24px 0;opacity:.2}to{translate:6px 0;opacity:1}}
.cx-seq__metric{display:grid;min-height:76px;border-top:1px solid #ffffff26;padding-top:8px}
.cx-seq__m{grid-area:1/1;display:grid;grid-template-columns:auto 1fr;gap:2px 14px;align-items:baseline;max-width:none;visibility:hidden;opacity:0;transition:none}
.cx-seq[data-step="0"] .cx-seq__m[data-for="0"],.cx-seq[data-step="1"] .cx-seq__m[data-for="1"],.cx-seq[data-step="2"] .cx-seq__m[data-for="2"],.cx-seq[data-step="3"] .cx-seq__m[data-for="3"]{visibility:visible;opacity:1;transition:none}
.cx-seq__m em{font:12px var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;font-style:normal;color:var(--cx-gold-hi)}
.cx-seq__m strong{font:800 1.3rem/1.2 var(--gft-font-display);letter-spacing:-.02em}
.cx-seq__m span{grid-column:1/-1;font-size:14px;line-height:1.5;color:var(--cx-sub-d)}
.cx-seq__track{grid-area:track}
.cx-card{position:relative;min-height:82svh;display:grid;align-content:center;gap:12px;padding:6svh 0 6svh 28px;outline-offset:-3px}
.cx-card:last-of-type{min-height:100svh}
.cx-card::before{content:'';position:absolute;left:0;top:10svh;bottom:10svh;width:2px;background:#ffffff26}
.cx-card::after{content:'';position:absolute;left:-1px;top:10svh;bottom:10svh;width:4px;background:var(--cx-gold-hi);transform-origin:50% 0;transform:scaleY(0);transition:transform .7s var(--cx-ease)}
.cx-card[data-active]::after{transform:scaleY(1)}
.cx-card__no{position:absolute;right:0;top:6svh;font:850 clamp(4.5rem,8vw,8rem)/1 var(--gft-font-display);letter-spacing:-.08em;color:transparent;-webkit-text-stroke:1.5px #f0c46a59;pointer-events:none}
.cx-card .gft-eyebrow{color:var(--cx-gold-hi)}
.cx-card h3{font-size:clamp(1.4rem,2vw,1.95rem);line-height:1.15}
.cx-card__text{font-size:16px;line-height:1.65;color:#e7f1ea}
.cx-card__metric{display:grid;gap:4px;padding-top:12px;border-top:1px solid #ffffff26}
.cx-card__metric span{font:12px var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cx-gold-hi)}
.cx-card__metric strong{font:800 1.12rem var(--gft-font-display);letter-spacing:-.02em}
.cx-seq__tail{height:40svh;display:grid;align-content:center;padding-left:28px;view-timeline-name:--cx-tail;view-timeline-axis:block}
.cx-seq__tail p{font-size:15px;line-height:1.6;color:var(--cx-sub-d);max-width:34ch;border-left:2px solid var(--cx-gold-hi);padding-left:14px}
@supports (animation-timeline:view()){
 :root[data-m-go] .cx-seq__zoom::after{animation-name:cx-hand;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--cx-tail;animation-range-start:cover 10%;animation-range-end:cover 60%}
}
@keyframes cx-hand{from{opacity:0}to{opacity:.85}}

/* ================= 7 · Cameroon: the lay across the room ================= */
.cx-cm__grid{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:clamp(24px,3.4vw,52px);align-items:start}
.cx-cm__ctrl{display:grid;gap:16px;align-content:start}
.cx-cm__ctrl>.gft-eyebrow{color:var(--cx-gold-hi)}
.cx-seg{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:4px;min-width:0}
.cx-seg--3{grid-template-columns:repeat(3,1fr)}
.cx-seg legend{grid-column:1/-1;font:12px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cx-sub-d);margin-bottom:6px;padding:0}
.cx-seg label{position:relative;display:block;cursor:pointer}
.cx-seg input{position:absolute;inset:0;opacity:0;margin:0;width:100%;height:100%;cursor:pointer}
.cx-seg span{display:flex;align-items:center;justify-content:center;text-align:center;min-height:44px;padding:6px 8px;border:1px solid #6bb68f66;font-size:13px;font-weight:650;line-height:1.25;transition:background .25s,color .25s}
.cx-seg input:checked+span{background:var(--cx-gold-hi);border-color:var(--cx-gold-hi);color:var(--cx-night)}
.cx-seg input:focus-visible+span{outline:3px solid var(--cx-gold-hi);outline-offset:2px}
.cx-dial{display:grid;gap:2px}
.cx-dial label{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font:12px var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--cx-sub-d)}
.cx-dial strong{font:800 22px var(--gft-font-display);text-transform:none;letter-spacing:-.02em;color:var(--cx-gold-hi)}
.cx-dial input{width:100%;accent-color:var(--cx-gold)}
.cx-cm__note{font:12px/1.6 var(--gft-font-mono);color:var(--cx-sub-d)}
.cx-cm__viz{min-width:0}
.cx-cm__scroll{position:relative}
.cx-cm__draw{position:relative;aspect-ratio:1000/640;view-timeline-name:--cx-room;view-timeline-axis:block}
.cx-cm__svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.cx-cm__zones{display:none}
.cx-k-room{fill:#0a3a37;stroke:#6bb68f;stroke-opacity:.4}
.cx-k-floor{stroke:#6bb68f;stroke-width:3}
.cx-k-t{font:600 17px var(--gft-font-mono);fill:#e7f1ea;letter-spacing:.06em}
.cx-k-tb{font:800 18px var(--gft-font-display);fill:#072d2b}
.cx-k-wave path{fill:none;stroke:#6bb68f;stroke-width:2.4}
:root[data-m-go] [data-m-live~=cx-wave][data-m-on]{animation-name:cx-wave;animation-duration:3s;animation-timing-function:linear;animation-iteration-count:infinite}
@keyframes cx-wave{from{translate:0 0}to{translate:-120px 0}}
.cx-k-sag{fill:none;stroke:var(--cx-warn);stroke-width:3.4;opacity:0;transition:opacity .3s}
.cx-cm:is([data-sags="1"],[data-sags="2"],[data-sags="3"]) .cx-k-sag[data-k="1"],.cx-cm:is([data-sags="2"],[data-sags="3"]) .cx-k-sag[data-k="2"],.cx-cm[data-sags="3"] .cx-k-sag[data-k="3"]{opacity:1}
.cx-k-ups{fill:#e3a948}
.cx-k-wire{stroke:#e3a948;stroke-width:2;fill:none}
.cx-k-shelf{stroke:#6bb68f;stroke-width:3}
.cx-k-roll{fill:#0e4d4a;stroke:#9fd2b8;stroke-width:2}
.cx-k-core{fill:#e3a948}
.cx-k-rollg.is-third .cx-k-roll{stroke:#f0c46a;stroke-width:3}
.cx-k-lift{opacity:0;transform-box:fill-box;transform-origin:center}
.cx-k-liftring{fill:none;stroke:#f0c46a;stroke-width:3}
@supports (animation-timeline:view()){
 :root[data-m-go] .cx-k-lift{animation-name:cx-lift;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--cx-room;animation-range-start:exit 0%;animation-range-end:exit 90%}
}
@keyframes cx-lift{0%{opacity:0;translate:0 0;scale:1}25%{opacity:1}100%{opacity:0;translate:120px 260px;scale:3.2}}
.cx-k-drops path{fill:#9fd2b8;opacity:0;transition:opacity .3s}
.cx-k-drops path.is-on{opacity:.9}
:root[data-m-go] [data-m-live~=cx-drops][data-m-on] path.is-on{animation-name:cx-drop;animation-duration:1.8s;animation-timing-function:ease-in;animation-iteration-count:infinite}
:root[data-m-go] [data-m-live~=cx-drops][data-m-on] path.is-on:nth-child(odd){animation-delay:-.9s}
:root[data-m-go] [data-m-live~=cx-drops][data-m-on] path.is-on:nth-child(3n){animation-delay:-.45s}
@keyframes cx-drop{from{translate:0 -16px;opacity:0}30%{opacity:.9}to{translate:0 40px;opacity:0}}
.cx-k-slab{fill:#12504a;stroke:#6bb68f}
.cx-k-cloth{fill:#9fd2b8}
.cx-k-lay{stroke:#072d2b;stroke-width:2}
.cx-k-hood{fill:#0b4a45;stroke:#9fd2b8;stroke-width:2}
.cx-k-lens{fill:#ffd48a}
.cx-k-fan{fill:#ffd48a;opacity:.18}
.cx-k-dust circle{fill:#e7f1ea;opacity:.5}
:root[data-m-go] [data-m-live~=cx-dust][data-m-on]{animation-name:cx-dust;animation-duration:7s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes cx-dust{from{translate:-10px 8px}to{translate:12px -10px}}
.cx-k-blades rect{fill:#c9dbd0;transition:opacity .3s}
.cx-cm[data-blade="1"] .cx-k-blades rect:is([data-k="3"],[data-k="4"],[data-k="5"]),.cx-cm[data-blade="2"] .cx-k-blades rect:not([data-k="0"]){opacity:.15}
.cx-cm__cap{position:absolute;font-size:13px;line-height:1.5;color:#e7f1ea;max-width:none;background:#0a3a37e6;padding:6px 8px;border-left:2px solid var(--cx-gold)}
.cx-cm__cap b{display:block;font:600 12px var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cx-gold-hi)}
.cx-cm__cap--power{left:62%;top:30.5%;width:35%}
.cx-cm__cap--hum{left:3.5%;top:83.5%;width:32%}
.cx-cm__cap--lint{left:38.5%;top:83.5%;width:31%}
.cx-pin{position:absolute;left:var(--x);top:var(--y);width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;border:2px solid #f6f4ef;font:800 18px var(--gft-font-display);color:var(--cx-night);background:#6bb68f;display:grid;place-items:center;transition:background .3s,box-shadow .3s;z-index:2}
.cx-pin[data-load=medium]{background:var(--cx-gold-hi)}
.cx-pin[data-load=high]{background:var(--cx-warn)}
.cx-pin[aria-pressed=true]{box-shadow:0 0 0 4px var(--cx-night),0 0 0 7px #f6f4ef}
.cx-pin::after{content:'';position:absolute;inset:-8px;border-radius:50%;border:2px solid var(--cx-warn);opacity:0;pointer-events:none}
:root[data-m-go] .cx-cm__draw:has([data-m-live~=cx-wave][data-m-on]) .cx-pin[data-load=high]::after{animation-name:cx-ring;animation-duration:2s;animation-timing-function:ease-out;animation-iteration-count:infinite}
/* twill-shift: the room is drawn in a diagonal sweep from top-left */
:root[data-m-go] [data-m=twill-shift]:not([data-m-in]) .cx-cm__svg{clip-path:polygon(0 0,40% 0,0 40%)}
:root[data-m-go] [data-m=twill-shift][data-m-in] .cx-cm__svg{animation-name:cx-twill;animation-duration:800ms;animation-timing-function:var(--cx-ease);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes cx-twill{from{clip-path:polygon(0 0,40% 0,0 40%)}to{clip-path:polygon(0 0,200% 0,0 200%)}}
.cx-ctls{margin-top:clamp(28px,3vw,44px)}
.cx-ctls__bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px 24px;margin-bottom:12px}
.cx-ctls__bar .gft-eyebrow{color:var(--cx-gold-hi)}
.cx-chipbar{display:flex;flex-wrap:wrap;gap:4px}
.cx-chipbar button b{display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:12px;background:#ffffff1f;font:700 12px var(--gft-font-mono)}
.cx-chipbar button[aria-pressed=true]{background:var(--cx-gold-hi);border-color:var(--cx-gold-hi);color:var(--cx-night)}
.cx-chipbar button[aria-pressed=true] b{background:#072d2b26}
.cx-ctls__main{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(20px,2.6vw,40px);align-items:start}
.cx-ctls__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.cx-cm[data-f=high] .cx-ctl:not([data-load=high]),.cx-cm[data-f=medium] .cx-ctl:not([data-load=medium]),.cx-cm[data-f=low] .cx-ctl:not([data-load=low]){display:none}
.cx-ctl__btn{width:100%;min-height:150px;display:grid;align-content:start;gap:10px;text-align:left;padding:14px;border:1px solid #6bb68f55;border-left:5px solid #6bb68f;background:#0a3a37;color:#f6f4ef;transition:background .25s,border-color .25s}
.cx-ctl[data-load=medium] .cx-ctl__btn{border-left-color:var(--cx-gold-hi)}
.cx-ctl[data-load=high] .cx-ctl__btn{border-left-color:var(--cx-warn)}
.cx-ctl__btn[aria-pressed=true]{background:#12504a;border-color:#f6f4ef80}
.cx-ctl__top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cx-ctl__no{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#f6f4ef;color:#072d2b;font:800 13px var(--gft-font-display)}
.cx-ctl__risk{font:12px var(--gft-font-mono);letter-spacing:.04em;color:var(--cx-sub-d);flex:1}
.cx-ctl__load{font:12px var(--gft-font-mono);color:var(--cx-sub-d)}
.cx-ctl__load strong,.cx-ctld__load strong{display:inline-block;padding:2px 8px;margin-left:4px;background:#6bb68f;color:#072d2b;font-weight:800}
.cx-ctl[data-load=medium] .cx-ctl__load strong,.cx-ctld__load strong[data-l=medium]{background:var(--cx-gold-hi)}
.cx-ctl[data-load=high] .cx-ctl__load strong,.cx-ctld__load strong[data-l=high]{background:var(--cx-warn)}
.cx-ctl__con{font-size:14px;line-height:1.45;font-weight:600}
.cx-ctl__meter{display:flex;gap:4px}
.cx-ctl__meter i{flex:1;height:5px;background:#ffffff26}
.cx-ctl__meter i:first-child,.cx-ctl:is([data-load=medium],[data-load=high]) .cx-ctl__meter i:nth-child(2),.cx-ctl[data-load=high] .cx-ctl__meter i:nth-child(3){background:currentColor}
.cx-ctls__detail{display:grid;background:#0a3a37;border:1px solid #6bb68f55;padding:18px 20px}
.cx-ctld{grid-area:1/1;visibility:hidden;opacity:0;transition:opacity .2s,visibility 0s .2s;display:grid;gap:10px;align-content:start}
.cx-ctld[data-on]{visibility:visible;opacity:1;transition:opacity .35s .2s,visibility 0s .2s}
.cx-ctld .gft-eyebrow{color:var(--cx-gold-hi)}
.cx-ctld__h{font-size:clamp(1.2rem,1.6vw,1.45rem);line-height:1.2}
.cx-ctld__load{font:12px var(--gft-font-mono);color:var(--cx-sub-d)}
.cx-ctld__text,.cx-ctld__ver{font-size:14.5px;line-height:1.6;color:#e7f1ea;max-width:none}
.cx-ctld__text b,.cx-ctld__ver b{display:block;font:600 12px var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cx-gold-hi)}
.cx-cm__lede2{margin-top:20px;font-size:15px;line-height:1.6;color:var(--cx-sub-d)}

/* ================= 8 · governance: the lay's measurement ================= */
.cx-sec--gov{isolation:isolate}
.cx-sec--gov::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 60% 50% at 18% 34%,#2c3e7a73,transparent 70%),radial-gradient(ellipse 50% 45% at 88% 78%,#2c3e7a4d,transparent 70%)}
.cx-gov{display:grid;grid-template-columns:minmax(300px,400px) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:start}
.cx-gov__wheel{display:grid;gap:12px}
.cx-gov__svg{width:100%;height:auto;overflow:visible}
.cx-w-ring{transform-box:view-box;transform-origin:210px 210px}
.cx-w-line{fill:none;stroke:#9fb4e8;stroke-opacity:.5;stroke-width:1.5;transition:stroke .3s,stroke-width .3s}
.cx-w-lab{font:600 14px var(--gft-font-mono);fill:#c9d4f2;letter-spacing:.06em}
.cx-gov[data-cad=daily] .cx-w-ring[data-c=daily] .cx-w-line,.cx-gov[data-cad=weekly] .cx-w-ring[data-c=weekly] .cx-w-line,.cx-gov[data-cad=monthly] .cx-w-ring[data-c=monthly] .cx-w-line{stroke:var(--cx-gold-hi);stroke-opacity:1;stroke-width:3.5;filter:drop-shadow(0 0 6px #f0c46a88)}
.cx-gov[data-cad=daily] .cx-w-ring[data-c=daily] .cx-w-lab,.cx-gov[data-cad=weekly] .cx-w-ring[data-c=weekly] .cx-w-lab,.cx-gov[data-cad=monthly] .cx-w-ring[data-c=monthly] .cx-w-lab{fill:var(--cx-gold-hi)}
.cx-w-orbit{transform-box:view-box;transform-origin:210px 210px}
.cx-w-sat{fill:#f6f4ef}
:root[data-m-go] [data-m-live~=cx-orbit][data-m-on]{animation-name:cx-orbit;animation-duration:18s;animation-timing-function:linear;animation-iteration-count:infinite}
.cx-w-ring[data-c=weekly] .cx-w-orbit{animation-duration:30s!important}
.cx-w-ring[data-c=monthly] .cx-w-orbit{animation-duration:46s!important}
@keyframes cx-orbit{to{rotate:360deg}}
.cx-w-kpi circle{fill:#1d2c5c;stroke:#9fb4e8;stroke-width:1.5;transition:fill .3s}
.cx-w-kpi text{font:800 13px var(--gft-font-display);fill:#f6f4ef}
.cx-gov[data-kpi="0"] .cx-w-kpi[data-i="0"] circle,.cx-gov[data-kpi="1"] .cx-w-kpi[data-i="1"] circle,.cx-gov[data-kpi="2"] .cx-w-kpi[data-i="2"] circle,.cx-gov[data-kpi="3"] .cx-w-kpi[data-i="3"] circle{fill:var(--cx-gold-hi)}
.cx-gov[data-kpi="0"] .cx-w-kpi[data-i="0"] text,.cx-gov[data-kpi="1"] .cx-w-kpi[data-i="1"] text,.cx-gov[data-kpi="2"] .cx-w-kpi[data-i="2"] text,.cx-gov[data-kpi="3"] .cx-w-kpi[data-i="3"] text{fill:#072d2b}
.cx-w-piece{fill:#0e4d4a;stroke:var(--cx-gold-hi);stroke-width:1.6;vector-effect:non-scaling-stroke}
/* spin: rings spin up from 0.9 scale, satellites placed */
:root[data-m-go] [data-m=spin]:not([data-m-in]) .cx-w-ring{scale:.9;rotate:-40deg;opacity:.3}
:root[data-m-go] [data-m=spin][data-m-in] .cx-w-ring{animation-name:cx-ring-in;animation-duration:760ms;animation-timing-function:var(--cx-out);animation-delay:calc(var(--k) * 70ms);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes cx-ring-in{from{scale:.9;rotate:-40deg;opacity:.3}}
.cx-gov__now{display:grid}
.cx-gov__now p{grid-area:1/1;visibility:hidden;opacity:0;transition:opacity .2s,visibility 0s .2s;display:grid;gap:2px;max-width:none}
.cx-gov[data-cad=daily] .cx-gov__now p[data-for=daily],.cx-gov[data-cad=weekly] .cx-gov__now p[data-for=weekly],.cx-gov[data-cad=monthly] .cx-gov__now p[data-for=monthly]{visibility:visible;opacity:1;transition:opacity .35s .2s,visibility 0s .2s}
.cx-gov__now strong{font-size:16px}
.cx-gov__now span{font:12px var(--gft-font-mono);color:var(--cx-sub-d)}
.cx-gov__note{font-size:14px;line-height:1.6;color:var(--cx-sub-d);border-top:1px solid #ffffff26;padding-top:12px}
.cx-gov__main{display:grid;gap:16px;min-width:0}
.cx-tabs--cad [role=tab]{flex:1;min-width:0;text-align:left;align-items:flex-start;flex-direction:column;gap:2px;padding:8px 12px;border-color:#9fb4e866;font-size:13.5px;line-height:1.3}
.cx-tabs--cad{flex-wrap:nowrap}
.cx-tabs--cad [role=tab][aria-selected=true]{background:var(--cx-gold-hi);border-color:var(--cx-gold-hi);color:var(--cx-night)}
.cx-tabs--cad [role=tab][aria-selected=true] .cx-tabs__num{color:#3d2a06}
.cx-cad-panels{display:grid}
.cx-cad{grid-area:1/1;visibility:hidden;opacity:0;transition:opacity .2s,visibility 0s .2s}
.cx-cad[data-on]{visibility:visible;opacity:1;transition:opacity .35s .2s,visibility 0s .2s}
.cx-cad h3{font-size:clamp(1.25rem,1.8vw,1.6rem);line-height:1.2;margin-bottom:4px}
.cx-cad .cx-method li{margin-bottom:6px}
.cx-mb{margin:0;border:1px solid #9fb4e855;background:#0a2f3a;padding:14px 16px}
.cx-mb__cap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 18px;margin-bottom:10px}
.cx-mb__cap .gft-eyebrow{color:#c9d4f2}
.cx-mb__eq{font-size:15px;color:#e7f1ea}
.cx-mb__eq b{font-weight:800;color:var(--cx-gold-hi)}
.cx-mb__svg{display:block;width:100%;height:auto}
.cx-mb__in{fill:#0e4d4a}
.cx-mb__scrap{fill:#3d2a06}
.cx-mb__piece{fill:#12504a;stroke:var(--cx-gold-hi);stroke-width:1.3;vector-effect:non-scaling-stroke}
.cx-mb__off{fill:#e3a94855;stroke:#e3a948;stroke-width:1;vector-effect:non-scaling-stroke}
.cx-mb__cut{stroke:#f6f4ef;stroke-width:2;stroke-dasharray:4 4}
.cx-mb__scale{display:flex;justify-content:space-between;font:12px var(--gft-font-mono);color:var(--cx-sub-d);max-width:none;margin-top:6px}
.cx-mb__scale span:last-child{width:16%;text-align:center}
.cx-mb.is-settle .cx-mb__piece{animation-name:cx-settle;animation-duration:620ms;animation-timing-function:var(--cx-out);animation-delay:calc(var(--k) * 18ms);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes cx-settle{from{translate:60px 0;opacity:.2}}
.cx-kpi-read{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin-top:clamp(28px,3vw,40px);padding:12px 0;border-top:1px solid #ffffff26;max-width:none}
.cx-kpi-read .gft-eyebrow{color:var(--cx-gold-hi)}
.cx-kpi-read strong{font-size:18px}
.cx-kpi-read span[data-r=meta]{font:12px/1.5 var(--gft-font-mono);color:var(--cx-sub-d)}
.cx-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.cx-kpi{display:grid;align-content:start;gap:10px;padding:16px;background:#0a2f3a;border:1px solid #9fb4e840;border-top:4px solid #9fb4e866;cursor:pointer;transition:border-color .3s,background .3s}
.cx-kpi[data-lit]{border-top-color:var(--cx-sage)}
.cx-kpi[data-sel]{background:#12504a;border-color:#f6f4ef66;border-top-color:var(--cx-gold-hi)}
/* Keep the KPI frames in their grid slots: the reveal stays inside each card, including on the phone rail. */
:root[data-m-go] .cx-kpi[data-cx-e]:not([data-cx-in]){transform:none;clip-path:inset(0 0 100% 0)}
:root[data-m-go] .cx-kpi[data-cx-e][data-cx-in]{animation-name:cx-kpi-reveal;animation-timing-function:var(--cx-arrive)}
@keyframes cx-kpi-reveal{from{opacity:0;clip-path:inset(0 0 100% 0)}to{opacity:1;clip-path:inset(0)}}
.cx-kpi__top{display:flex;justify-content:space-between;align-items:center}
.cx-kpi__no{font:12px var(--gft-font-mono);color:var(--cx-gold-hi)}
.cx-kpi__ticks{display:flex;gap:3px}
.cx-kpi__ticks i{display:grid;place-items:center;width:24px;height:24px;font:700 12px var(--gft-font-mono);font-style:normal;border:1px solid #ffffff33;color:var(--cx-sub-d)}
.cx-kpi__ticks i.on{background:#f6f4ef;color:#072d2b;border-color:#f6f4ef}
.cx-kpi h3{font-size:17px;line-height:1.25;letter-spacing:-.02em}
.cx-kpi__read{display:grid;gap:4px;max-width:none}
.cx-kpi__read strong{font:850 40px/1 var(--gft-font-display);letter-spacing:-.05em;color:var(--cx-gold-hi);font-variant-numeric:tabular-nums;white-space:nowrap}
.cx-kpi__read small{font-size:15px;letter-spacing:0;font-weight:650;color:#e7f1ea}
.cx-kpi__read span{font-size:13px;line-height:1.45;color:var(--cx-sub-d)}
.cx-kpi__bar{display:block;height:4px;background:#ffffff1f;overflow:hidden}
.cx-kpi__bar i{display:block;height:100%;width:100%;background:var(--cx-gold-hi);transform-origin:0 50%;transform:scaleX(.25);transition:transform .5s var(--cx-ease)}
.cx-kpi[data-sel] .cx-kpi__bar i{transform:scaleX(1)}
:root[data-m-go] .cx-kpi[data-sel] [data-m-live~=cx-kbar][data-m-on]{animation-name:cx-breathe;animation-duration:2.6s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes cx-breathe{from{opacity:.55}to{opacity:1}}
.cx-kpi__formula{max-width:none}
.cx-kpi__formula code{display:block;font:12.5px/1.5 var(--gft-font-mono);color:#dfe6f7}
.cx-kpi__foot{display:flex;flex-wrap:wrap;gap:4px 14px;font:12px var(--gft-font-mono);color:var(--cx-sub-d);max-width:none}
.cx-kpi__foot strong{color:#f6f4ef;font-weight:600}
.cx-kpis__pager{display:none}
.cx-kpi-note{margin-top:12px;font:12px/1.6 var(--gft-font-mono);color:var(--cx-sub-d);max-width:none}
.cx-mb-hand{position:relative;height:32px;margin-top:20px;overflow-anchor:none}
.cx-sec--gov{padding-bottom:clamp(32px,3vw,48px)}
.cx-sec--close{padding-top:clamp(40px,4vw,56px)}
.cx-mb-hand i{position:absolute;left:0;right:0;top:50%;height:10px;margin-top:-5px;background:linear-gradient(90deg,#0e4d4a 0 84%,#3d2a06 84% 100%);box-shadow:inset 0 0 0 1px #f0c46a66;transform-origin:30% 50%}
@supports (animation-timeline:view()){
 .cx-mb-hand{view-timeline-name:--cx-mbh;view-timeline-axis:block}
 :root[data-m-go] .cx-mb-hand i{animation-name:cx-mbh;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--cx-mbh;animation-range-start:cover 35%;animation-range-end:cover 85%}
}
@keyframes cx-mbh{from{transform:scaleX(1)}to{transform:scaleX(.34)}}

/* ================= 9 · closing: the ticket that seals the lay ================= */
.cx-sec--close{padding-bottom:clamp(72px,7vw,104px)}
.cx-tk{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:clamp(24px,3.4vw,52px);align-items:start}
.cx-tk__ctrl{display:grid;gap:14px}
.cx-tk__ctrl>.gft-eyebrow{color:var(--cx-gold-hi)}
.cx-tk__band{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.cx-tk__band legend,.cx-tk__checks legend{grid-column:1/-1;font:12px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cx-sub-d);margin-bottom:6px;padding:0}
.cx-tk__band label{position:relative}
.cx-tk__band input{position:absolute;inset:0;opacity:0;margin:0;width:100%;height:100%;cursor:pointer}
.cx-tk__band span{display:grid;place-items:center;min-height:44px;border:1px solid #6bb68f66;font-weight:700;font-size:14px}
.cx-tk__band input:checked+span{background:var(--cx-gold-hi);color:var(--cx-night);border-color:var(--cx-gold-hi)}
.cx-tk__band input:focus-visible+span{outline:3px solid var(--cx-gold-hi);outline-offset:2px}
.cx-tk__checks{border:0;padding:0;margin:0;display:grid;gap:2px}
.cx-tk__check{position:relative;display:flex;align-items:center;gap:12px;min-height:44px;padding:4px 8px;cursor:pointer;font-size:14px;border-bottom:1px solid #ffffff1a}
.cx-tk__check input{position:absolute;opacity:0;width:44px;height:44px;margin:0;left:0;cursor:pointer}
.cx-tk__box{flex:none;width:20px;height:20px;border:2px solid #9fd2b8;display:grid;place-items:center}
.cx-tk__check input:checked+.cx-tk__box{background:var(--cx-gold-hi);border-color:var(--cx-gold-hi)}
.cx-tk__check input:checked+.cx-tk__box::after{content:'';width:9px;height:5px;border-left:2.5px solid #072d2b;border-bottom:2.5px solid #072d2b;rotate:-45deg;translate:0 -1px}
.cx-tk__check input:focus-visible+.cx-tk__box{outline:3px solid var(--cx-gold-hi);outline-offset:2px}
.cx-tk__ticket{display:grid;grid-template-columns:minmax(150px,210px) minmax(0,1fr);background:#f3ead6;color:var(--cx-ink);box-shadow:0 30px 60px #00000055;position:relative}
.cx-tk__ticket::before{content:'';position:absolute;top:-10px;left:50%;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:var(--cx-night);box-shadow:0 0 0 3px var(--cx-gold-hi)}
.cx-tk__stub{padding:22px 20px;border-right:2px dashed #b9a57d;display:grid;align-content:start;gap:2px}
.cx-tk__k{font:12px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#5e4b26}
.cx-tk__v{font:800 22px/1.2 var(--gft-font-display);letter-spacing:-.02em;margin-bottom:10px;font-variant-numeric:tabular-nums}
.cx-tk__main{padding:22px 24px;display:grid;gap:16px}
.cx-tk__row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;align-items:start}
.cx-tk__bandbox{display:grid;place-items:center;width:96px;height:96px;border:3px solid var(--cx-ink)}
.cx-tk__bandbox span{font:12px var(--gft-font-mono);text-transform:uppercase;letter-spacing:.06em}
.cx-tk__bandbox strong{font:850 46px/1 var(--gft-font-display)}
.cx-tk__list{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.cx-tk__list li{display:flex;align-items:center;gap:10px;font-size:14px;color:#5e4b26}
.cx-tk__list li i{flex:none;width:14px;height:14px;border:2px solid #8a7a58}
.cx-tk__list li[data-on]{color:var(--cx-ink);font-weight:650}
.cx-tk__list li[data-on] i{background:var(--cx-leaf);border-color:var(--cx-leaf)}
.cx-tk__bar{position:relative;height:56px;overflow:hidden}
.cx-tk__bar svg{width:100%;height:100%;display:block}
.cx-tk__bar rect{fill:var(--cx-ink)}
.cx-tk__shimmer{position:absolute;inset:0;pointer-events:none}
.cx-tk__shimmer i{position:absolute;inset:0;background:linear-gradient(90deg,transparent 40%,#f3ead6cc 50%,transparent 60%);transform:translateX(-100%)}
:root[data-m-go] .cx-tk__ticket[data-ready=false] [data-m-live~=cx-shimmer][data-m-on] i{animation-name:cx-shimmer;animation-duration:2.4s;animation-timing-function:linear;animation-iteration-count:infinite}
@keyframes cx-shimmer{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
.cx-tk__foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px}
.cx-tk__count{font-size:15px;max-width:none}
.cx-tk__count strong{font:850 30px var(--gft-font-display)}
.cx-tk__stamp{font:800 15px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;padding:8px 14px;border:3px solid var(--cx-gold-ink);color:var(--cx-gold-ink);rotate:-3deg;max-width:none;transition:color .3s,border-color .3s}
.cx-tk__ticket[data-ready=true] .cx-tk__stamp{color:#1f5e43;border-color:#1f5e43}
:root[data-m-go] .cx-tk__ticket[data-nudge] .cx-tk__stamp{animation-name:cx-nudge;animation-duration:600ms;animation-timing-function:var(--cx-out);animation-iteration-count:1;animation-direction:normal}
@keyframes cx-nudge{30%{scale:1.12}}
/* knot: the ticket ties onto the ladder at the cutting node */
:root[data-m-go] [data-m=knot]:not([data-m-in])::before{scale:3;opacity:0}
:root[data-m-go] [data-m=knot][data-m-in]::before{animation-name:cx-knot-pin;animation-duration:700ms;animation-timing-function:var(--cx-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes cx-knot-pin{from{scale:3;opacity:0}}
/* the ladder */
.cx-lad{margin-top:clamp(40px,4vw,60px);border-top:1px solid #ffffff26;padding-top:24px}
.cx-lad__rail{position:relative}
.cx-lad__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));position:relative;z-index:1}
.cx-lad__item{display:grid;justify-items:center}
.cx-lad__node{position:relative;display:grid;justify-items:center;gap:6px;min-height:44px;padding:4px 2px;text-decoration:none;color:#e7f1ea;text-align:center}
.cx-lad__node em{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:2px solid #6bb68f;background:var(--cx-night);font:700 13px var(--gft-font-mono);font-style:normal;transition:background .3s,border-color .3s,color .3s}
.cx-lad__node b{font-size:13px;font-weight:600;line-height:1.25}
.cx-lad__node i{font:12px var(--gft-font-mono);font-style:normal;color:var(--cx-sub-d)}
.cx-lad__node.is-process em{border-style:dashed;border-color:#9fb0a8}
a.cx-lad__node:hover em{background:#12504a}
.cx-lad__item.is-cur em{background:var(--cx-gold-hi);border-color:var(--cx-gold-hi);color:var(--cx-night)}
.cx-lad__glow{position:absolute;top:4px;left:50%;width:44px;height:44px;margin-left:-22px;border-radius:50%;box-shadow:0 0 0 6px #f0c46a40;pointer-events:none}
:root[data-m-go] [data-m-live~=cx-glow][data-m-on]{animation-name:cx-glow;animation-duration:2.4s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes cx-glow{from{opacity:.4;scale:.95}to{opacity:1;scale:1.18}}
.cx-lad[data-hot="0"] .cx-lad__item[data-i="0"] em,.cx-lad[data-hot="1"] .cx-lad__item[data-i="1"] em,.cx-lad[data-hot="2"] .cx-lad__item[data-i="2"] em,.cx-lad[data-hot="3"] .cx-lad__item[data-i="3"] em,.cx-lad[data-hot="4"] .cx-lad__item[data-i="4"] em,.cx-lad[data-hot="6"] .cx-lad__item[data-i="6"] em,.cx-lad[data-hot="7"] .cx-lad__item[data-i="7"] em,.cx-lad[data-hot="8"] .cx-lad__item[data-i="8"] em{border-color:var(--cx-gold-hi);box-shadow:0 0 0 4px #f0c46a40}
.cx-lad__weft{position:absolute;left:5.5%;right:5.5%;top:90px;height:2px;background:#6bb68f66}
.cx-lad__weft i{position:absolute;left:61.5%;width:12.5%;top:0;height:100%;background:var(--cx-gold-hi);transform-origin:0 50%;transform:scaleX(0);transition:transform .9s var(--cx-ease)}
.cx-lad[data-sent] .cx-lad__weft i{transform:scaleX(1)}
.cx-lad__ticket{position:absolute;z-index:2;left:0;top:0;width:92px;height:48px;margin:-84px 0 0 -46px;background:#f3ead6;color:var(--cx-ink);border-radius:2px;display:grid;align-content:center;justify-items:start;gap:1px;padding:0 10px 0 14px;box-shadow:0 8px 18px #0008;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,0 64%,6px 50%,0 36%)}
.cx-lad__ticket b{font:800 14px/1.1 var(--gft-font-mono);letter-spacing:.02em}
.cx-lad__ticket em{font:600 12px/1.2 var(--gft-font-mono);font-style:normal;color:#5e4b26}
.cx-lad__ticket::after{content:'';position:absolute;left:50%;bottom:-14px;width:2px;height:14px;margin-left:-1px;background:var(--cx-gold-hi)}
.cx-lad[data-drag] .cx-lad__ticket{cursor:grabbing;box-shadow:0 14px 28px #000a}
.cx-lad__list{padding-top:64px}
.cx-lad__hint{flex-basis:100%;font:12px/1.5 var(--gft-font-mono);letter-spacing:.04em;color:var(--cx-gold-hi);max-width:none}
.cx-lad__bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;margin-top:18px}
.cx-lad__read{font-size:15px;line-height:1.6;color:#e7f1ea;max-width:70ch;min-height:4.8em}
.cx-lad__go{min-height:48px;padding:10px 22px;border:0;background:var(--cx-gold-hi);color:var(--cx-night);font-weight:800;font-size:15px}
.cx-lad__go[aria-pressed=true]{background:transparent;color:var(--cx-gold-hi);box-shadow:inset 0 0 0 2px var(--cx-gold-hi)}
.cx-stubs{position:relative;margin-top:6px;padding-top:56px}
.cx-stubs__threads{position:absolute;left:0;right:0;top:0;height:56px;width:100%;overflow:visible}
.cx-stubs__threads path{fill:none;stroke:#6bb68f80;stroke-width:1.5;vector-effect:non-scaling-stroke;transition:stroke .3s}
.cx-lad[data-hot="4"] .cx-stubs__threads path[data-node="4"],.cx-lad[data-hot="5"] .cx-stubs__threads path[data-node="5"],.cx-lad[data-hot="6"] .cx-stubs__threads path[data-node="6"],.cx-lad[data-hot="8"] .cx-stubs__threads path[data-node="8"]{stroke:var(--cx-gold-hi);stroke-width:2.5}
.cx-rs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.cx-rs__card{position:relative;display:grid;align-content:start;gap:6px;height:100%;padding:12px 12px 12px;background:#0a3a37;border:1px solid #6bb68f55;border-top:3px solid #6bb68f;color:#f6f4ef;text-decoration:none;transition:background .25s,border-color .25s}
.cx-rs__card::before{content:'';position:absolute;top:-9px;left:50%;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:var(--cx-night);border:2px solid #6bb68f}
.cx-rs__item.is-reserved .cx-rs__card{border-style:dashed}
.cx-rs__card:hover,.cx-rs__card:focus-visible{background:#12504a;border-top-color:var(--cx-gold-hi)}
.cx-rs__node{font:700 12px var(--gft-font-mono);color:var(--cx-gold-hi)}
.cx-rs__kind{font:12px var(--gft-font-mono);letter-spacing:.04em;color:var(--cx-sub-d)}
.cx-rs__name{font-size:14.5px;font-weight:700;line-height:1.3}
.cx-rs__sum{font-size:13px;line-height:1.5;color:var(--cx-sub-d)}
.cx-rs__go{margin-top:auto;font:600 12px var(--gft-font-mono);color:var(--cx-gold-hi)}
.cx-disc{margin-top:28px;font:12px/1.6 var(--gft-font-mono);color:var(--cx-sub-d);max-width:none}
.cx-bridge{position:absolute;bottom:0;height:clamp(56px,6vw,84px);left:calc((100% - min(1440px,100% - 96px)) / 2);width:calc(min(1440px,100% - 96px) * 6.5 / 9);pointer-events:none}
.cx-bridge i{position:absolute;inset:0;border-right:2px solid var(--cx-gold-hi);border-bottom:2px solid var(--cx-gold-hi);clip-path:inset(0 0 100% 0);transition:clip-path 1s var(--cx-ease) .4s}
.cx-sec--close:has(.cx-lad[data-sent]) .cx-bridge i{clip-path:inset(0)}

/* ================= tablet ================= */
@media (max-width:1180px){
 .cx-inst{grid-template-columns:minmax(0,1fr);grid-template-areas:"stage" "ctrl" "read"}
 .cx-inst__read{position:static}
 .cx-rd{grid-template-columns:repeat(4,1fr)}
 .cx-st__body{grid-template-columns:minmax(0,1fr)}
 .cx-chips{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cx-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cx-gov{grid-template-columns:minmax(260px,340px) minmax(0,1fr)}
 .cx-rs{grid-template-columns:repeat(3,minmax(0,1fr))}
 .cx-stubs__threads{display:none}
 .cx-stubs{padding-top:0}
}
@media (max-width:1000px){
 .cx-head{grid-template-columns:minmax(0,1fr)}
 .cx-st__stage{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto}
 .cx-st__arts{grid-row:1;grid-column:1;border-right:0;border-bottom:1.5px solid var(--cx-ink);min-height:0}
 .cx-st__art .cx-sa{height:auto;width:100%;max-width:460px;max-height:none}
 .cx-st__panels{grid-row:2;grid-column:1}
 .cx-st__cap{grid-row:3;grid-column:1}
 .cx-ev__stage{grid-template-columns:minmax(0,1fr)}
 .cx-inter{grid-template-columns:minmax(0,1fr);grid-template-areas:"ctrl" "ply" "prose"}
 .cx-cm__grid{grid-template-columns:minmax(0,1fr)}
 .cx-ctls__main{grid-template-columns:minmax(0,1fr)}
 .cx-gov{grid-template-columns:minmax(0,1fr)}
 .cx-gov__wheel{max-width:440px}
 .cx-tk{grid-template-columns:minmax(0,1fr)}
 .cx-seq{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "stage" "track"}
 .cx-head--seq{margin:0 0 20px}
 .cx-seq__stage{top:0;height:46svh;min-height:300px;z-index:2;background:var(--cx-night)}
 .cx-seq__metric{display:none}
 .cx-card{min-height:62svh;padding-left:20px}
 .cx-card:last-of-type{min-height:100svh}
 .cx-card__no{display:none}
}

/* ================= phone ================= */
@media (max-width:760px){
 .cx-spine__pin{display:none}
 .cx-sec{--cx-pad:56px}
 .cx-head h2{font-size:clamp(1.75rem,8vw,2.3rem)}
 .cx-head__lede{font-size:15px}
 /* 1 · splash: headline and read-outs above, the cloth web as a band below */
 .gft-splash[data-splash="vc-b-cutting"] h1{font-size:clamp(2rem,9.4vw,2.6rem);max-width:none;margin-top:18px}
 .gft-splash[data-splash="vc-b-cutting"] .gft-splash__content{padding-top:28px;padding-bottom:calc(40svh + 20px)}
 .gft-splash[data-splash="vc-b-cutting"] .gft-splash__structure{inset:auto 0 var(--splash-strip-h,60px) 0;height:40svh}
 .gft-splash[data-splash="vc-b-cutting"] .gft-splash__structure::after{background:linear-gradient(180deg,#072d2b 0%,#072d2b00 22%)}
 .gft-splash[data-splash="vc-b-cutting"] .gft-splash__lede{font-size:14.5px;margin-top:14px}
 .cx-read__grid{gap:6px 22px}
 .cx-read__grid dd{font-size:32px}
 .cx-read__grid dt{font-size:12px;letter-spacing:.04em}
 .cx-read__steer{grid-template-columns:minmax(0,1fr)}
 /* 2 · instrument: tiles 2 x 2, the table as an opaque pinned band, read-outs 2 x 2 */
 .cx-inst{grid-template-areas:"tiles" "stage" "slider" "read"}
 .cx-inst__ctrl{display:contents}
 .cx-modes{grid-area:tiles;grid-template-columns:repeat(2,minmax(0,1fr))}
 .cx-plies{grid-area:slider}
 .cx-plies__range::-webkit-slider-thumb{width:44px;height:44px}
 .cx-plies__range::-moz-range-thumb{width:36px;height:36px}
 .cx-inst__stage{position:sticky;top:0;z-index:3;padding:6px;border-radius:0;margin-inline:-16px;border-inline:0;box-shadow:0 10px 24px #0008}
 .cx-inst__crop{aspect-ratio:772/300}
 .cx-inst__svg{width:155.44%;max-width:none;margin:-5.96% 0 0 -5.18%}
 .cx-s-lab{display:none}
 .cx-inst__strip{display:flex;align-items:center;gap:3px;padding:6px 2px 0}
 .cx-inst__strip i{flex:1;height:8px;background:#1f6f66;border:1px solid #6bb68f;transition:opacity .3s}
 .cx-inst__strip i.is-off{opacity:.15}
 .cx-inst__strip span{flex:none;margin-left:6px;font:12px var(--gft-font-mono);color:var(--cx-sub-d)}
 .cx-inst__legend{display:none}
 .cx-rd{grid-template-columns:repeat(2,1fr)}
 .cx-rd dd{font-size:28px}
 .cx-rd>div{min-height:84px}
 .cx-mode__tile{min-height:68px}
 /* 3 · stations: the ribbon as a snap scroller, one station per stop */
 .cx-st__track{overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none}
 .cx-st__track::-webkit-scrollbar{display:none}
 .cx-st__inner{width:500vw}
 .cx-st__bar{display:grid;gap:10px}
 .cx-tabs:not(.cx-tabs--cad){display:grid;grid-template-columns:repeat(5,1fr);gap:4px}
 .cx-tabs:not(.cx-tabs--cad) .cx-tabs__lab{display:none}
 .cx-tabs:not(.cx-tabs--cad) [role=tab]{justify-content:center;padding:4px}
 .cx-ww{display:grid;grid-template-columns:1fr 1fr}
 .cx-panel__dl dd{font-size:15px}
 .cx-st__drop{margin-left:calc(50% - 6%);width:12%}
 .cx-cutin__lab{display:none}
 .cx-st__art{padding:12px 12px 12px}
 .cx-st__tag b{font-size:2rem}
 /* 4 · evidence */
 .cx-lane__table{height:200px}
 .cx-lane__ctl{grid-template-columns:minmax(0,1fr);grid-template-areas:"seg" "scrub" "lay" "read"}
 .cx-seg2 button{padding:8px 10px;min-height:84px}
 .cx-lane__tag{font-size:12px;left:8px;right:auto}
 .cx-lane__key{display:none}
 .cx-ev__rowread{grid-template-columns:minmax(0,1fr)}
 .cx-lane__d{width:12px;height:12px;margin:-6px 0 0 -6px}
 .cx-lane__d::before{inset:-6px}
 .cx-lane__d[data-miss]::after{inset:-6px}
 .cx-lane__lay dd{font-size:1.8rem}
 .cx-chip__btn{min-height:116px;padding:12px}
 .cx-table{min-width:0}
 .cx-table thead{display:none}
 .cx-table tr{display:grid;gap:4px;padding:12px;border:1px solid var(--cx-iline);margin-bottom:8px;background:var(--cx-ipanel)}
 .cx-table td{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;border:0;padding:2px 0}
 .cx-table td::before{content:attr(data-label);font:12px var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#c3cbe0}
 .cx-src{display:grid}
 .cx-slubedge__lab{left:auto;right:16px}
 /* 5 · interlude: the rail turns vertical down the left gutter */
 .cx-chain{display:none}
 .cx-iris{display:flex;flex-direction:column}
 .cx-quote-wrap{order:4;margin-top:20px}
 .cx-railv{order:2}
 .cx-iris>.gft-container:last-child{order:3}
 .cx-quote{grid-template-columns:minmax(0,1fr)}
 .cx-quote p{font-size:20px}
 .cx-quote footer{text-align:left}
 .cx-railv{display:grid;gap:2px;list-style:none;margin:10px 16px 18px;padding:0 0 0 22px;position:relative}
 .cx-railv::before{content:'';position:absolute;left:6px;top:8px;bottom:8px;width:3px;background:var(--cx-sage)}
 .cx-railv li{position:relative;display:grid;grid-template-columns:52px auto minmax(0,1fr);grid-template-areas:"svg no name" "svg no state";gap:0 12px;align-items:center;padding:8px 10px;background:#0b3d39;border:1px solid #6bb68f40;transition:border-color .3s}
 .cx-railv li::before{content:'';position:absolute;left:-22px;top:50%;width:15px;height:15px;margin-top:-7.5px;border-radius:50%;background:var(--cx-night);border:3px solid var(--cx-sage)}
 .cx-railv svg{grid-area:svg;width:52px;height:52px}
 .cx-railv svg :is(path,rect){fill:#0e4d4a;stroke:#e3a948;stroke-width:1.8;vector-effect:non-scaling-stroke}
 .cx-railv__no{grid-area:no;font:850 22px var(--gft-font-display);color:var(--cx-gold-hi)}
 .cx-railv__name{grid-area:name;font:600 14px var(--gft-font-mono);color:#e7f1ea}
 .cx-railv__state{grid-area:state;font-size:13px;color:var(--cx-sub-d)}
 .cx-sec--inter[data-step="0"] .cx-railv li[data-n="0"],.cx-sec--inter[data-step="1"] .cx-railv li[data-n="1"],.cx-sec--inter[data-step="2"] .cx-railv li[data-n="2"],.cx-sec--inter[data-step="3"] .cx-railv li[data-n="3"]{border-color:var(--cx-gold-hi)}
 .cx-sec--inter[data-step="0"] .cx-railv li[data-n="0"]::before,.cx-sec--inter[data-step="1"] .cx-railv li[data-n="1"]::before,.cx-sec--inter[data-step="2"] .cx-railv li[data-n="2"]::before,.cx-sec--inter[data-step="3"] .cx-railv li[data-n="3"]::before{background:#e3a948;border-color:#e3a948}
 .cx-big__v{font-size:11vw}
 .cx-scrub__ticks{display:none}
 .cx-inter{grid-template-areas:"ctrl" "ply" "prose"}
 /* 6 · sequence: a 40 svh opaque pinned band, the nav as a four-dot pager */
 .cx-seq__stage{height:40svh;min-height:280px;margin-inline:-16px}
 .cx-seq__zoom{padding:8px 10px;border-inline:0}
 .cx-seq__no{font-size:28px}
 .cx-seq__nav a{width:14px;height:44px;min-height:0;padding:0;border:0;justify-content:center;font-size:0}
 .cx-seq__nav a span,.cx-seq__nav a em{display:none}
 .cx-seq__nav a::before{content:'';width:12px;height:12px;border-radius:50%;border:2px solid #c9dbd0}
 .cx-seq__nav a[aria-current=step]::before{background:var(--cx-gold-hi);border-color:var(--cx-gold-hi)}
 .cx-seq__nav{flex:0 1 auto;gap:10px}
 .cx-q-t{display:none}
 .cx-p-t{font-size:18px}
 .cx-sa-t{font-size:14.5px}
 .cx-w-lab{font-size:17px}
 .cx-w-kpi text{font-size:17px}
 .cx-w-kpi circle{r:15px}
 .cx-dft-no{display:none}
 .cx-card{min-height:58svh;padding:24px 0 24px 18px}
 .cx-card__text{font-size:15px}
 /* 7 · Cameroon: the cross-section as a snap scroller of three zones */
 .cx-cm__scroll{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:-16px}
 .cx-cm__scroll::-webkit-scrollbar{display:none}
 .cx-cm__draw{width:270vw}
 .cx-cm__draw::before,.cx-cm__draw::after{content:'';position:absolute;top:0;width:1px;height:1px;scroll-snap-align:start}
 .cx-cm__draw::before{left:0}
 .cx-cm__draw::after{left:34%}
 .cx-cm__zones{display:flex;justify-content:space-between;gap:8px;font:12px var(--gft-font-mono);color:var(--cx-sub-d);margin-top:6px}
 .cx-cm__ctrl{order:2}
 .cx-cm__viz{order:1}
 .cx-ctls__grid{grid-template-columns:minmax(0,1fr)}
 .cx-ctl__btn{min-height:0}
 /* 8 · governance */
 .cx-gov__wheel{max-width:80vw;margin-inline:auto}
 .cx-tabs--cad [role=tab]{font-size:13px;padding:6px 8px}
 .cx-kpis{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;margin-inline:-16px;padding-inline:16px;scrollbar-width:none}
 .cx-kpis::-webkit-scrollbar{display:none}
 .cx-kpi{flex:0 0 82vw;scroll-snap-align:center}
 .cx-kpi__read strong{font-size:34px}
 .cx-kpi-read{min-height:176px;align-content:flex-start}
 .cx-lane__read{min-height:4.35em}
 .cx-lad__read{min-height:4.8em}
 .cx-kpis__pager{display:flex;justify-content:center;gap:4px;margin-top:6px}
 .cx-kpis__pager button{width:44px;height:44px;border:0;background:transparent;display:grid;place-items:center}
 .cx-kpis__pager button::before{content:'';width:12px;height:12px;border-radius:50%;border:2px solid #c9dbd0}
 .cx-kpis__pager button[aria-pressed=true]::before{background:var(--cx-gold-hi);border-color:var(--cx-gold-hi)}
 /* 9 · closing */
 .cx-tk__ticket{grid-template-columns:minmax(0,1fr)}
 .cx-tk__stub{border-right:0;border-bottom:2px dashed #b9a57d;grid-template-columns:auto 1fr;gap:2px 14px;align-items:baseline}
 .cx-tk__v{font-size:18px;margin-bottom:4px}
 .cx-tk__main{padding:18px 16px}
 .cx-tk__row{grid-template-columns:minmax(0,1fr)}
 .cx-tk__bandbox{width:76px;height:76px}
 .cx-lad{display:grid;grid-template-columns:118px minmax(0,1fr);gap:0 14px}
 .cx-lad__rail{grid-column:1;grid-row:1/span 2}
 .cx-lad__list{grid-template-columns:minmax(0,1fr);gap:2px}
 .cx-lad__item{justify-items:start}
 .cx-lad__node{grid-template-columns:44px minmax(0,1fr);justify-items:start;align-items:center;text-align:left;gap:8px}
 .cx-lad__node b{font-size:12px}
 .cx-lad__glow{left:24px;top:4px}
 .cx-lad__weft{left:23px;right:auto;top:20px;bottom:20px;width:2px;height:auto}
 .cx-lad__weft i{left:0;top:61.5%;width:100%;height:12.5%;transform-origin:50% 0;transform:scaleY(0)}
 .cx-lad[data-sent] .cx-lad__weft i{transform:scaleY(1)}
 .cx-lad__bar{grid-column:1/-1;grid-row:3}
 .cx-lad__go{width:100%}
 .cx-lad__ticket{width:46px;height:30px;margin:-15px 0 0 -23px;padding:0;background:#f3ead6 repeating-linear-gradient(180deg,transparent 0 7px,#25302e 7px 9px) 12px 6px/24px 18px no-repeat}
 .cx-lad__ticket::after{display:none}
 .cx-lad__ticket :is(b,em){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .cx-lad__list{padding-top:0}
 .cx-stubs{grid-column:2;grid-row:1/span 2;margin-top:0}
 .cx-rs{grid-template-columns:minmax(0,1fr)}
 .cx-rs__card::before{left:-9px;top:50%;margin:-6px 0 0}
 .cx-bridge{display:none}
 .cx-disc{font-size:12px}
}
