/* /capabilities/workforce-and-capability-building/ · choreography sheet control/choreo/capabilities__workforce-and-capability-building.md
   One 5 x 6 evidence matrix carried through nine forms. Acts: night (splash, bench) / paper, sage, paper (record, loom,
   units) / night, forest, night (bead, clock, ramp, hexagon). Stability: pre-states only under :root[data-m-go];
   transform, opacity, clip-path and filter only; two sticky pins, no counter-translation; scroll-driven rules as
   longhands on elements of their own; every swapping read-out stacks its variants in one grid cell. */

/* ---------- tokens and grounds ---------- */
.wfx-page{--wfx-night:#072d2b;--wfx-forest:#0e4d4a;--wfx-paper:#f6f4ef;--wfx-ink:#25302e;--wfx-mint:#9fd9bb;--wfx-sage:#6bb68f;--wfx-leaf:#3f8f6b;--wfx-ochre:#c98a2b;--wfx-ochre-l:#f0c27a;--wfx-on-dark:#e8f0ec;--wfx-k-light:#3d6b5b;position:relative}
.wfx-sec{position:relative;isolation:isolate;overflow-x:clip;view-timeline-name:--wfx-sec;view-timeline-axis:block;padding-block:clamp(64px,8vh,104px)}
.wfx-sec--night{background-color:#072d2b;background-image:linear-gradient(#b4d4c50b 1px,transparent 1px),linear-gradient(90deg,#b4d4c50b 1px,transparent 1px),radial-gradient(ellipse at 80% 20%,#0e4d4a 0%,#072d2b00 60%);background-size:42px 42px,42px 42px,100% 100%;color:#f6f4ef}
.wfx-sec--deep{background:#072d2b;color:#f6f4ef}
.wfx-sec--paper{background-color:#f6f4ef;background-image:linear-gradient(#3f8f6b17 1px,transparent 1px),linear-gradient(90deg,#3f8f6b17 1px,transparent 1px);background-size:32px 32px;color:#25302e}
.wfx-sec--sage{background-color:#e2ebe6;color:#25302e}
.wfx-sec--forest{background-color:#0e4d4a;background-image:linear-gradient(#b4d4c50f 1px,transparent 1px),linear-gradient(90deg,#b4d4c50f 1px,transparent 1px);background-size:16px 16px;color:#f6f4ef}
.wfx-wrap{width:min(1344px,calc(100% - 96px));margin-inline:auto;position:relative}

/* ---------- atoms ---------- */
.wfx-page .gft-eyebrow{font-size:13px;letter-spacing:.12em}
.wfx-head h2{font-size:clamp(2.2rem,3.5vw,3.7rem);line-height:1.03;letter-spacing:-.045em;max-width:19ch}
.wfx-head__eb{margin-bottom:14px;color:#3d6b5b}
.wfx-head__lede{margin-top:14px;font-size:clamp(17px,1.3vw,19px);line-height:1.55;max-width:46ch}
:is(.wfx-sec--night,.wfx-sec--deep,.wfx-sec--forest) .wfx-head__eb{color:#9fd9bb}
:is(.wfx-sec--night,.wfx-sec--deep,.wfx-sec--forest) .wfx-head__lede{color:#e8f0ec}
.wfx-k{font:600 13px/1.4 var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:#3d6b5b;margin:0}
:is(.wfx-sec--night,.wfx-sec--deep,.wfx-sec--forest) .wfx-k{color:#9fd9bb}
.wfx-range{width:100%;height:44px;margin:0;background:none;accent-color:#c98a2b;cursor:pointer}
.wfx-ro{display:grid}
.wfx-ro>*{grid-area:1/1;visibility:hidden;opacity:0;transition:opacity 240ms ease,visibility 0s linear 240ms}
.wfx-ro>.is-on{visibility:visible;opacity:1;transition:opacity 320ms ease 160ms,visibility 0s linear 0s}
:where(.wfx-page) button{font:inherit;color:inherit}
.wfx-page :is(button,a,input,label,summary):focus-visible{outline:3px solid #c98a2b;outline-offset:3px}

/* the four evidence glyphs: open (dashed), supervised (half filled), independent (filled), can coach (ochre diamond) */
.wfx-g{--gs:28px;--gl:#9fd9bb;--gf:#6bb68f;--go:#e4a64a;display:inline-block;flex:none;box-sizing:border-box;width:var(--gs);height:var(--gs);border:2px solid var(--gl);background:transparent;vertical-align:middle}
.wfx-g[data-s=open]{border-style:dashed}
.wfx-g[data-s=supervised]{border-color:var(--gf);background:linear-gradient(to top,var(--gf) 50%,transparent 50%)}
.wfx-g[data-s=independent]{border-color:var(--gf);background:var(--gf)}
.wfx-g[data-s=coach]{border-color:var(--go);background:var(--go);rotate:45deg;scale:.76}
:is(.wfx-sec--paper,.wfx-sec--sage) .wfx-g{--gl:#3f8f6b;--gf:#3f8f6b;--go:#c98a2b}

/* ---------- staged entrances: pre-states until about 38 percent of a block's stage is in view ---------- */
:root[data-m-go][data-wfx-js] .wfx-sec:not([data-wfx-in]) :is(.wfx-in-p,.wfx-in-l){opacity:0}
:root[data-m-go] .wfx-sec[data-wfx-in] :is(.wfx-in-p,.wfx-in-l){animation-name:wfx-from-r;animation-duration:520ms;animation-delay:var(--wd,240ms);animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .wfx-sec[data-wfx-in] .wfx-in-l{animation-name:wfx-from-l;animation-delay:calc(120ms + var(--k,0) * 80ms)}
@keyframes wfx-from-r{from{opacity:0;transform:translateX(44px)}}
@keyframes wfx-from-l{from{opacity:0;transform:translateX(-44px)}}
@keyframes wfx-rise{from{opacity:0;transform:translateY(26px)}}
@keyframes wfx-fade{from{opacity:0}}
@keyframes wfx-set{from{opacity:0;transform:scale(.3)}}
@keyframes wfx-shoot{from{transform:scaleX(0)}}
@keyframes wfx-warpdraw{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}

/* ---------- section index ---------- */
.wfx-index{position:fixed;right:4px;top:50%;z-index:30;display:grid;transform:translateY(-50%);padding:6px 0;background:#072d2bdd;border:1px solid #6bb68f55;opacity:0;visibility:hidden;transition:opacity .4s,visibility 0s .4s}
.wfx-index[data-mw-active]{opacity:1;visibility:visible;transition-delay:0s}
.wfx-index a{position:relative;display:grid;place-items:center;width:32px;height:44px;text-decoration:none}
.wfx-index i{width:11px;height:11px;border:2px solid #6bb68f;background:#072d2b;rotate:45deg;transition:background-color .35s,transform .5s var(--gft-ease-out)}
.wfx-index a[aria-current] i{background:#c98a2b;border-color:#c98a2b;transform:scale(1.35)}
.wfx-index span{position:absolute;right:calc(100% + 8px);padding:6px 10px;background:#072d2b;border:1px solid #6bb68f55;font:600 13px/1 var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;color:#f6f4ef;opacity:0;pointer-events:none;transition:opacity .3s}
.wfx-index a:is(:hover,:focus-visible) span{opacity:1}

/* ---------- hand-over carriers: each crosses a seam on the receiving block's view timeline ---------- */
.wfx-cx{position:absolute;left:var(--x,0);top:var(--y,0);width:0;height:0;pointer-events:none;z-index:6;overflow-anchor:none}
.wfx-cx i{position:absolute;display:block;opacity:0}
.wfx-cx--drop i{left:-44px;top:-44px;width:88px;height:88px;border:3px solid #e4a64a;box-shadow:0 0 0 6px #c98a2b33}
.wfx-cx--frame .wfx-e{left:calc(var(--w,800px) / -2);top:calc(var(--h,560px) / -2);background:#e4a64a;transform-origin:50% 50%}
.wfx-e--t,.wfx-e--b{width:var(--w,800px);height:4px}
.wfx-cx--frame .wfx-e--b{top:calc(var(--h,560px) / 2 - 4px)}
.wfx-e--l,.wfx-e--r{width:4px;height:var(--h,560px)}
.wfx-cx--frame .wfx-e--r{left:calc(var(--w,800px) / 2 - 4px)}
.wfx-cx--bracket .wfx-e{background:#c98a2b}
/* #4 to #5: the bracket is a filled, labelled stamp that straddles the sage-to-paper cut (lb-seam) at the right of the
   block, drops straight down the column to the right of the read-out bar (never over text), reaches the XAF row and
   then slides left onto the +5 percent cells */
.wfx-lb__seam{position:absolute;top:-58px;right:calc((100% - min(1344px, 100% - 96px)) / 2 + 4px);width:140px;height:80px;pointer-events:none;visibility:hidden}
.wfx-cx--frame .wfx-e--f{width:var(--w,800px);height:var(--h,560px);background:repeating-linear-gradient(135deg,#c98a2b33 0 6px,#c98a2b0d 6px 12px)}
.wfx-cx__tag{left:auto;right:calc(var(--w,800px) / -2 - 3px);top:calc(var(--h,560px) / -2 - 34px);font:600 14px/1 var(--gft-font-mono);font-style:normal;letter-spacing:.04em;color:#fff;background:#8a5a14;padding:6px 10px;white-space:nowrap}
.wfx-lb__read{position:relative;z-index:7}
.wfx-cx--drop2 i{left:-16px;top:-16px;width:32px;height:32px;border:2px dashed #9fd9bb;background:#072d2b}
.wfx-cx--rim i{left:-32px;top:-2px;width:64px;height:4px;background:repeating-linear-gradient(90deg,#9fd9bb 0 4px,transparent 4px 12px)}
.wfx-cx--core i{left:-16px;top:-16px;width:32px;height:32px;background:#c98a2b;rotate:45deg}
@supports (animation-timeline: view()){
 :root[data-m-go] .wfx-cx[data-ok] i{animation-name:wfx-carry;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--wfx-sec;animation-range-start:entry 8%;animation-range-end:entry 82%}
 :root[data-m-go] .wfx-cx--frame[data-ok] .wfx-e--t{animation-name:wfx-et}
 :root[data-m-go] .wfx-cx--frame[data-ok] .wfx-e--b{animation-name:wfx-eb}
 :root[data-m-go] .wfx-cx--frame[data-ok] .wfx-e--l{animation-name:wfx-el}
 :root[data-m-go] .wfx-cx--frame[data-ok] .wfx-e--r{animation-name:wfx-er}
 :root[data-m-go] .wfx-cx--bracket[data-ok] i{animation-range-start:entry 4%;animation-range-end:contain 140px}
 :root[data-m-go] .wfx-cx--bracket[data-ok] .wfx-e--t{animation-name:wfx-bt}
 :root[data-m-go] .wfx-cx--bracket[data-ok] .wfx-e--b{animation-name:wfx-bb}
 :root[data-m-go] .wfx-cx--bracket[data-ok] .wfx-e--l{animation-name:wfx-bl}
 :root[data-m-go] .wfx-cx--bracket[data-ok] .wfx-e--r{animation-name:wfx-br}
 :root[data-m-go] .wfx-cx--bracket[data-ok] .wfx-e--f{animation-name:wfx-bf}
 :root[data-m-go] .wfx-cx--bracket[data-ok] .wfx-cx__tag{animation-name:wfx-btag}
 :root[data-m-go] .wfx-cx--loupe[data-ok] .wfx-e{animation-range-start:entry 0%;animation-range-end:entry 52%}
 :root[data-m-go] .wfx-cx--rim[data-ok] i{animation-range-start:entry 4%;animation-range-end:entry 70%}
 :root[data-m-go] .wfx-cx--drop[data-ok] i{animation-timeline:scroll(root);animation-range-start:40px;animation-range-end:78vh}
}
@keyframes wfx-carry{0%{opacity:0;transform:translate(var(--dx,0px),var(--dy,0px)) rotate(var(--r0,0deg)) scale(var(--s0x,1),var(--s0y,1))}12%{opacity:1}84%{opacity:1}100%{opacity:0;transform:none}}
@keyframes wfx-et{0%{opacity:0;transform:translate(var(--dx,0px),calc(var(--dy,0px) + var(--h,560px) / 2 * (1 - var(--s0y,1)))) scaleX(var(--s0x,1))}8%{opacity:1}86%{opacity:1}100%{opacity:0;transform:none}}
@keyframes wfx-eb{0%{opacity:0;transform:translate(var(--dx,0px),calc(var(--dy,0px) - var(--h,560px) / 2 * (1 - var(--s0y,1)))) scaleX(var(--s0x,1))}8%{opacity:1}86%{opacity:1}100%{opacity:0;transform:none}}
@keyframes wfx-el{0%{opacity:0;transform:translate(calc(var(--dx,0px) + var(--w,800px) / 2 * (1 - var(--s0x,1))),var(--dy,0px)) scaleY(var(--s0y,1))}8%{opacity:1}86%{opacity:1}100%{opacity:0;transform:none}}
/* bracket path: the vertical leg and the shrink finish at 62 percent (the stamp is then in the XAF row, dx to the right
   of its target), the horizontal leg follows */
@keyframes wfx-bt{0%{opacity:0;transform:translate(var(--dx,0px),calc(var(--dy,0px) + var(--h,560px) / 2 * (1 - var(--s0y,1)))) scaleX(var(--s0x,1))}8%{opacity:1}62%{transform:translate(var(--dx,0px),0px) scaleX(1)}88%{opacity:1}100%{opacity:0;transform:translate(0px,0px) scaleX(1)}}
@keyframes wfx-bb{0%{opacity:0;transform:translate(var(--dx,0px),calc(var(--dy,0px) - var(--h,560px) / 2 * (1 - var(--s0y,1)))) scaleX(var(--s0x,1))}8%{opacity:1}62%{transform:translate(var(--dx,0px),0px) scaleX(1)}88%{opacity:1}100%{opacity:0;transform:translate(0px,0px) scaleX(1)}}
@keyframes wfx-bl{0%{opacity:0;transform:translate(calc(var(--dx,0px) + var(--w,800px) / 2 * (1 - var(--s0x,1))),var(--dy,0px)) scaleY(var(--s0y,1))}8%{opacity:1}62%{transform:translate(var(--dx,0px),0px) scaleY(1)}88%{opacity:1}100%{opacity:0;transform:translate(0px,0px) scaleY(1)}}
@keyframes wfx-br{0%{opacity:0;transform:translate(calc(var(--dx,0px) - var(--w,800px) / 2 * (1 - var(--s0x,1))),var(--dy,0px)) scaleY(var(--s0y,1))}8%{opacity:1}62%{transform:translate(var(--dx,0px),0px) scaleY(1)}88%{opacity:1}100%{opacity:0;transform:translate(0px,0px) scaleY(1)}}
/* the hatch fill waits for the four edges to form the bracket, then only slides across: scaling it while it travelled
   moved its top edge both ways at once */
@keyframes wfx-bf{0%,58%{opacity:0;transform:translate(var(--dx,0px),0px)}70%{opacity:1}88%{opacity:1}100%{opacity:0;transform:translate(0px,0px)}}
@keyframes wfx-btag{0%{opacity:0;transform:translate(calc(var(--dx,0px) - var(--w,800px) / 2 * (1 - var(--s0x,1))),calc(var(--dy,0px) + var(--h,560px) / 2 * (1 - var(--s0y,1))))}8%{opacity:1}30%{opacity:1}38%{opacity:0}62%{opacity:0;transform:translate(var(--dx,0px),0px)}100%{opacity:0;transform:translate(0px,0px)}}
@keyframes wfx-er{0%{opacity:0;transform:translate(calc(var(--dx,0px) - var(--w,800px) / 2 * (1 - var(--s0x,1))),var(--dy,0px)) scaleY(var(--s0y,1))}8%{opacity:1}86%{opacity:1}100%{opacity:0;transform:none}}

/* #5 heading: skew without the kit's line masks (a shear and fade in place), so no line is clipped mid-entrance */
:root[data-m-go] .wfx-lb__head [data-m=split][data-m-fx=skew] .m-w{overflow:visible}
:root[data-m-go] .wfx-lb__head [data-m=split][data-m-fx=skew]:not([data-m-in]) .m-c{translate:0 0;opacity:0;transform:skewX(-16deg);transform-origin:0 100%}
:root[data-m-go] .wfx-lb__head [data-m=split][data-m-fx=skew][data-m-in] .m-c{animation-name:wfx-split-shear;transform-origin:0 100%}
@keyframes wfx-split-shear{from{opacity:0;translate:0 0;transform:skewX(-16deg)}to{opacity:1;translate:0 0;transform:skewX(0)}}

/* ---------- #1 splash: the matrix as full-bleed ground ---------- */
[data-splash='caps-b-workforce']{min-height:calc(86svh - 88px)}
[data-splash='caps-b-workforce'] .gft-splash__structure{inset:0 0 93px 0;display:block}
[data-splash='caps-b-workforce'] .gft-splash__structure::after{background:linear-gradient(90deg,#072d2beb 0%,#072d2bb8 26%,#072d2b00 48%);pointer-events:none}
[data-splash='caps-b-workforce'] .gft-splash__content{pointer-events:none}
[data-splash='caps-b-workforce'] .gft-splash__content :is(a,button){pointer-events:auto}
[data-splash='caps-b-workforce'] h1{font-size:clamp(3.2rem,min(5.4vw,8.8svh),6rem);max-width:none;width:min(50vw,720px);margin-top:16px}
[data-splash='caps-b-workforce'] h1 .gft-serif{display:inline-block}
[data-splash='caps-b-workforce'] .gft-splash__lede{font-size:clamp(17px,1.25vw,19px);color:#e8f0ec;max-width:40ch;margin-top:20px}
[data-splash='caps-b-workforce'] .gft-splash__actions{margin-top:24px}
[data-splash='caps-b-workforce'] .gft-splash__data{left:14px;right:auto;top:auto;bottom:calc(var(--splash-strip-h,70px) + 96px);writing-mode:vertical-rl;rotate:180deg;font-size:13px;color:#c9dbd1;gap:28px}
[data-splash='caps-b-workforce'] :is(.gft-splash__caption,.gft-splash__position){font-size:13px;color:#c9dbd1}
[data-splash='caps-b-workforce'] .gft-splash__cue{font-size:14px}
:root[data-m-go] [data-splash='caps-b-workforce'][data-wfx-go] h1[data-m]{animation-name:wfx-pull;animation-duration:620ms;animation-delay:40ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-splash='caps-b-workforce'][data-wfx-go] h1 .gft-serif{animation-name:wfx-pull2;animation-duration:600ms;animation-delay:160ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes wfx-pull{from{opacity:0;transform:translateY(.4em);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(-25% -5% -25% -5%)}}
@keyframes wfx-pull2{from{opacity:0;transform:translateY(.55em)}}

.wfx-sg{position:absolute;inset:0;margin:0;--sgs:min(6vw,9svh)}
.wfx-sg__move{position:absolute;inset:0 0 64px 0;overflow-anchor:none}
.wfx-sg__grid{position:absolute;inset:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr)) 112px;grid-template-rows:46px repeat(5,minmax(0,1fr))}
.wfx-sg__col{align-self:center;justify-self:center;font:600 14px/1 var(--gft-font-mono);letter-spacing:.12em;text-transform:uppercase;color:#e8f0ec}
.wfx-sg__row{align-self:center;justify-self:start;padding-left:6px;font:600 14px/1 var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:#e8f0ec}
.wfx-sg__warp{justify-self:center;width:1px;background:linear-gradient(#9fd9bb70,#9fd9bb26)}
.wfx-sg__pick{align-self:center;height:1px;background:#9fd9bb4d;transform-origin:0 50%}
.wfx-sg__cell{position:relative;display:grid;place-items:center;pointer-events:auto}
.wfx-sg__cell.is-quiet{opacity:.2}
.wfx-sg__cell.is-sel{opacity:.58;z-index:2}
.wfx-sg .wfx-g{--gs:var(--sgs);transition:translate 260ms var(--gft-ease-out),opacity 300ms}
.wfx-sg__cell:hover .wfx-g{translate:0 -4px}
.wfx-sg__ring{position:absolute;width:var(--sgs);height:var(--sgs);border:2px solid #f0c27a;opacity:0;pointer-events:none}
.wfx-sg__cursor{position:relative;justify-self:center;align-self:center;width:calc(var(--sgs) + 22px);height:calc(var(--sgs) + 22px);pointer-events:none;z-index:3}
.wfx-sg__cursor i{display:block;width:100%;height:100%;border:3px solid #e4a64a;box-shadow:0 0 0 6px #c98a2b29}
.wfx-sg__shuttle{align-self:center;height:4px;overflow:hidden;pointer-events:none}
.wfx-sg__shuttle i{display:block;width:100%;height:100%;background:linear-gradient(90deg,transparent 0,#f0c27a 4%,transparent 9%);opacity:0}
.wfx-sg__band{position:absolute;z-index:2;left:0;right:0;bottom:0;height:64px;display:flex;align-items:center;justify-content:flex-end;gap:20px;padding-right:20px;pointer-events:none}
.wfx-sg__read{margin:0;font:600 14px/1.3 var(--gft-font-mono);letter-spacing:.06em;color:#e8f0ec;white-space:nowrap}
.wfx-sg__chips{display:flex;gap:8px}
.wfx-sg__chip{pointer-events:auto;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:6px 14px;font:600 14px/1 var(--gft-font-mono);letter-spacing:.06em;background:#072d2be6;border:1px solid #9fd9bb66;color:#e8f0ec;cursor:pointer}
.wfx-sg__chip .wfx-g{--gs:20px}
.wfx-sg__chip b{display:inline-block;min-width:2ch;font:800 18px/1 var(--gft-font-display);color:#fff;font-variant-numeric:tabular-nums}
.wfx-sg__chip[aria-pressed=true]{border-color:#e4a64a;background:#0e4d4a}
.wfx-sg[data-f] .wfx-sg__cell .wfx-g{opacity:.16}
.wfx-sg[data-f=open] .wfx-sg__cell[data-s=open] .wfx-g,.wfx-sg[data-f=supervised] .wfx-sg__cell[data-s=supervised] .wfx-g,.wfx-sg[data-f=independent] .wfx-sg__cell[data-s=independent] .wfx-g,.wfx-sg[data-f=coach] .wfx-sg__cell[data-s=coach] .wfx-g{opacity:1}
.wfx-sg[data-f] .wfx-sg__cell.is-quiet{opacity:.5}
/* draw-in: warps down, picks across, cells set where their pick crosses (0 to 1,000 ms) */
:root[data-m-go] [data-splash='caps-b-workforce'][data-wfx-go] .wfx-sg__warp{animation-name:wfx-warpdraw;animation-duration:190ms;animation-delay:calc(var(--k) * 8ms);animation-timing-function:linear;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-splash='caps-b-workforce'][data-wfx-go] .wfx-sg__pick{animation-name:wfx-shoot;animation-duration:260ms;animation-delay:calc(120ms + var(--k) * 90ms);animation-timing-function:linear;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-splash='caps-b-workforce'][data-wfx-go] .wfx-sg__cell .wfx-g{animation-name:wfx-set;animation-duration:220ms;animation-delay:calc(150ms + var(--r) * 90ms + var(--c) * 43ms);animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-splash='caps-b-workforce'][data-wfx-go] :is(.wfx-sg__col,.wfx-sg__row){animation-name:wfx-fade;animation-duration:320ms;animation-delay:80ms;animation-timing-function:linear;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-splash='caps-b-workforce'][data-wfx-go] .wfx-sg__cursor{animation-name:wfx-cursor;animation-duration:320ms;animation-delay:820ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-splash='caps-b-workforce'][data-wfx-go] .wfx-sg__band{animation-name:wfx-rise;animation-duration:380ms;animation-delay:640ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes wfx-cursor{from{opacity:0;transform:scale(1.7)}}
/* the draw-in waits for the page's load, so its first quarter second is visibly mid-motion */
:root[data-m-go] [data-splash='caps-b-workforce']:not([data-wfx-go]) :is(h1,.wfx-sg__cell .wfx-g,.wfx-sg__col,.wfx-sg__row,.wfx-sg__cursor,.wfx-sg__band){opacity:0}
:root[data-m-go] [data-splash='caps-b-workforce']:not([data-wfx-go]) .wfx-sg__warp{clip-path:inset(0 0 100% 0)}
:root[data-m-go] [data-splash='caps-b-workforce']:not([data-wfx-go]) .wfx-sg__pick{transform:scaleX(0)}
@supports (animation-timeline: scroll()){
 :root[data-m-go] .wfx-sg__move{animation-name:wfx-sg-leave;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll(root);animation-range-start:0px;animation-range-end:70vh}
}
@keyframes wfx-sg-leave{to{opacity:.3;transform:translateY(-6vh)}}

/* ---------- #2 bench ---------- */
.wfx-sec--bench{padding-top:36px;padding-bottom:96px}
.wfx-bench{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);grid-template-areas:'head cap' 'stage panel';gap:28px 56px;align-items:start}
.wfx-bench__head{grid-area:head}
.wfx-bench__head h2{font-size:clamp(2rem,3vw,3.2rem)}
.wfx-bench__cap{grid-area:cap;align-self:end;padding:16px 20px;border:1px solid #9fd9bb40;background:#0b3a37}
.wfx-bench__big{margin:6px 0 0;font:800 clamp(2.4rem,3.9vw,3.5rem)/1 var(--gft-font-display);letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:#fff}
.wfx-bench__big b{color:#f0c27a;display:inline-block;min-width:1.2em}
.wfx-bench__capnote{margin:8px 0 0;font:14px/1.5 var(--gft-font-mono);color:#e8f0ec}
.wfx-bench__stage{grid-area:stage;position:relative}
.wfx-bench__grid{position:relative;display:grid;grid-template-columns:136px repeat(6,minmax(0,1fr));grid-template-rows:40px repeat(5,84px) auto;align-items:center;justify-items:center}
.wfx-bench__corner{justify-self:start}
.wfx-bench__col{font:600 14px/1 var(--gft-font-mono);letter-spacing:.12em;text-transform:uppercase;color:#e8f0ec}
.wfx-bench__abbr{display:none}
.wfx-bench__row{justify-self:start;display:grid;gap:8px;font:600 15px/1 var(--gft-font-mono);letter-spacing:.06em;color:#e8f0ec}
.wfx-bench__pips{display:flex;gap:4px}
.wfx-pip{width:10px;height:10px;border:1.5px dashed #9fd9bb}
.wfx-pip[data-s=supervised]{border-style:solid;background:linear-gradient(to top,#6bb68f 50%,transparent 50%)}
.wfx-pip[data-s=independent]{border-style:solid;background:#6bb68f;border-color:#6bb68f}
.wfx-pip[data-s=coach]{border-style:solid;background:#e4a64a;border-color:#e4a64a;rotate:45deg;scale:.8}
.wfx-bench__pick{justify-self:stretch;align-self:center;height:1px;background:#9fd9bb38;transform-origin:0 50%;pointer-events:none}
.wfx-cell{position:relative;width:72px;height:72px;display:grid;place-items:center;padding:0;background:#0b3a37;border:1px solid #9fd9bb33;cursor:pointer;transition:border-color .2s,background-color .2s}
.wfx-cell:hover{border-color:#9fd9bb}
.wfx-cell[aria-pressed=true]{background:#0e4d4a}
.wfx-cell[aria-pressed=true]::after{content:'';position:absolute;inset:-7px;border:3px solid #e4a64a;pointer-events:none}
.wfx-bench__glint{justify-self:stretch;align-self:center;height:3px;overflow:hidden;pointer-events:none}
.wfx-bench__glint i{display:block;width:100%;height:100%;background:linear-gradient(90deg,transparent 0,#f0c27a 5%,transparent 10%);opacity:0}
.wfx-bench__covk{justify-self:start;align-self:start;padding-top:16px}
.wfx-cover{display:grid;justify-items:center;gap:8px;padding-top:16px}
.wfx-cover__slots{display:grid;gap:3px}
.wfx-cover__slots i{display:block;width:44px;height:8px;border:1.5px dashed #9fd9bb73;transform-origin:50% 100%}
.wfx-cover__slots i.is-on{border:0;background:#6bb68f}
.wfx-cover__n{font:600 15px/1 var(--gft-font-mono);color:#e8f0ec;white-space:nowrap}
.wfx-cover__n b{font:800 22px/1 var(--gft-font-display);color:#fff;font-variant-numeric:tabular-nums}
.wfx-bench__panel{grid-area:panel;display:grid;gap:16px}
.wfx-seg{margin:0;padding:0;border:0;min-width:0}
.wfx-seg legend{padding:0;margin-bottom:10px;font:600 13px/1.4 var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:#9fd9bb}
.wfx-seg__row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.wfx-seg__opt{position:relative;cursor:pointer}
.wfx-seg__opt input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.wfx-seg__opt span{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:6px 8px;border:1px solid #9fd9bb66;font:650 15px/1.15 var(--gft-font-display);color:#e8f0ec;text-align:center;transition:background-color .2s,color .2s}
.wfx-seg__opt .wfx-g{--gs:16px}
.wfx-seg__opt:has(input:checked) span{background:#9fd9bb;color:#072d2b;border-color:#9fd9bb}
.wfx-seg__opt:has(input:checked) .wfx-g{--gl:#072d2b;--gf:#072d2b;--go:#7a4d0e}
.wfx-seg__opt:has(input:focus-visible) span{outline:3px solid #c98a2b;outline-offset:3px}
.wfx-bench__reset{justify-self:start;min-height:44px;padding:8px 16px;background:transparent;border:1px solid #9fd9bb80;font:600 14px/1 var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.wfx-disp{padding:18px 22px;background:#0b3a37;border-left:3px solid #c98a2b}
.wfx-disp__sel b{color:#f0c27a}
.wfx-disp__ro{margin-top:10px}
.wfx-disp h3{font-size:28px;line-height:1.1;letter-spacing:-.03em;color:#fff}
.wfx-disp__text{margin:10px 0 0;font-size:17px;line-height:1.55;color:#e8f0ec}
.wfx-disp__line{margin:12px 0 0;padding-top:10px;border-top:1px solid #9fd9bb33;font-size:17px;line-height:1.5;color:#f0c27a}
.wfx-bench__note{margin:0;font:14px/1.6 var(--gft-font-mono);color:#e8f0ec}
:root[data-m-go] .wfx-bench__stage[data-m-on] .wfx-cell[aria-pressed=true]::after{animation-name:wfx-breathe;animation-duration:2.8s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes wfx-breathe{from{opacity:1;transform:scale(1)}to{opacity:.55;transform:scale(1.06)}}
/* entrance pick: each row's glyphs fill as a pick passes, cover stacks rise slot by slot, the panel slides in */
:root[data-m-go][data-wfx-js] .wfx-sec--bench:not([data-wfx-in]) :is(.wfx-cell .wfx-g,.wfx-cover__slots i,.wfx-cover__n,.wfx-bench__cap){opacity:0}
:root[data-m-go][data-wfx-js] .wfx-sec--bench:not([data-wfx-in]) .wfx-bench__pick{transform:scaleX(0)}
:root[data-m-go] .wfx-sec--bench[data-wfx-in] .wfx-bench__pick{animation-name:wfx-shoot;animation-duration:300ms;animation-delay:calc(var(--k) * 90ms);animation-timing-function:linear;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .wfx-sec--bench[data-wfx-in] .wfx-cell .wfx-g{animation-name:wfx-set;animation-duration:240ms;animation-delay:calc(40ms + var(--r) * 90ms + var(--c) * 30ms);animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .wfx-sec--bench[data-wfx-in] .wfx-cover__slots i{animation-name:wfx-slot;animation-duration:200ms;animation-delay:calc(440ms + var(--c) * 60ms + (4 - var(--sk,0)) * 24ms);animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .wfx-sec--bench[data-wfx-in] .wfx-cover__n{animation-name:wfx-fade;animation-duration:220ms;animation-delay:calc(520ms + var(--c) * 60ms);animation-timing-function:linear;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .wfx-sec--bench[data-wfx-in] .wfx-bench__cap{animation-name:wfx-from-r;animation-duration:480ms;animation-delay:80ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
.wfx-cover__slots i[data-k='0']{--sk:0}.wfx-cover__slots i[data-k='1']{--sk:1}.wfx-cover__slots i[data-k='2']{--sk:2}.wfx-cover__slots i[data-k='3']{--sk:3}.wfx-cover__slots i[data-k='4']{--sk:4}
.wfx-bench__panel>:nth-child(1){--wd:160ms}.wfx-bench__panel>:nth-child(2){--wd:240ms}.wfx-bench__panel>:nth-child(3){--wd:320ms}.wfx-bench__panel>:nth-child(4){--wd:400ms}
@keyframes wfx-slot{from{opacity:0;transform:scaleY(0)}}

/* ---------- #3 contract: the record stack (sticky) ---------- */
.wfx-sec--contract{padding:0;z-index:1}
.wfx-ct{position:relative;timeline-scope:--wfx-zoom}
.wfx-step--zoom{view-timeline-name:--wfx-zoom;view-timeline-axis:block}
.wfx-ct__frame{position:sticky;top:0;height:100svh;z-index:1;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:clamp(18px,3vh,32px) max(48px,calc((100% - 1344px) / 2)) 16px;overflow:clip}
.wfx-ct__band{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);column-gap:48px;align-items:end;min-height:16vh}
.wfx-ct__band .wfx-head__eb{grid-column:1}
.wfx-ct__band h2{grid-column:1;font-size:clamp(2rem,3vw,3.2rem);max-width:22ch}
.wfx-ct__band .wfx-head__lede{grid-column:2;grid-row:1/3;align-self:end;margin:0}
.wfx-ct__stage{position:relative;min-height:0;margin-top:14px}
.wfx-ct__cam{position:absolute;inset:0;display:grid;place-items:center;transform-origin:50% 50%;transition:transform 700ms var(--gft-ease-in-out)}
.wfx-ct__stack{position:relative;width:min(58vw,860px);height:calc(100% - 44px);max-height:590px;overflow:visible}
.wfx-sheet{--d:0;position:absolute;inset:0;z-index:calc(5 - var(--d));display:grid;grid-template-rows:auto minmax(0,1fr);background:#fffdf8;border:1px solid #0e4d4a47;box-shadow:0 22px 44px -28px #0e4d4a66;transform-origin:50% 100%;transform:translate3d(calc(var(--d) * 18px),calc(var(--d) * -14px),0) rotate(0deg) scale(calc(1 - var(--d) * .03));opacity:1;filter:none;transition:transform 200ms var(--gft-ease-out),opacity 180ms ease,filter 180ms ease}
.wfx-sheet :is(.wfx-sheet__body,.wfx-sheet__head){transition:opacity 80ms linear}
.wfx-sheet__head{display:flex;justify-content:space-between;gap:16px;padding:10px 22px;border-bottom:1px solid #0e4d4a26;font:600 13px/1.4 var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:#3d6b5b}
.wfx-sheet__head b{color:#25302e}
.wfx-sheet__body{display:grid;grid-template-columns:minmax(0,63fr) minmax(0,37fr);min-height:0}
.wfx-mini{position:relative;display:grid;grid-template-columns:118px repeat(4,minmax(0,1fr));grid-template-rows:34px repeat(3,minmax(0,1fr));padding:16px 20px 40px;min-height:0}
.wfx-mini__corner{align-self:center}
.wfx-mini__col{align-self:center;justify-self:center;font:600 14px/1 var(--gft-font-mono);letter-spacing:.04em;color:#3d6b5b}
.wfx-mini__row{align-self:center;font:600 14px/1.2 var(--gft-font-mono);color:#25302e}
.wfx-mini__cell{position:relative;margin:5px;display:grid;place-items:center;background:#f6f4ef;border:1px solid #0e4d4a26;padding:0;cursor:pointer}
.wfx-mini__cell .wfx-g{--gs:32px}
.wfx-mini__cell:hover{border-color:#0e4d4a}
.wfx-tick{position:absolute;right:8px;top:8px;width:10px;height:10px;border-radius:50%;background:#c98a2b}
.wfx-mark{position:relative;pointer-events:none;align-self:stretch;justify-self:stretch}
.wfx-mark em{position:absolute;font:600 14px/1.2 var(--gft-font-mono);font-style:normal;letter-spacing:.04em;color:#6b4209;background:#fdf3e2;border:1px solid #c98a2b;padding:4px 8px;white-space:nowrap}
.wfx-mark--window{grid-area:2/2/3/6;border:3px solid #c98a2b;margin:1px}
.wfx-mark--window i{position:absolute;top:0;bottom:0;left:0;width:25%;background:#c98a2b29}
.wfx-mark--window em{right:-3px;bottom:-34px}
.wfx-mark--bracket{grid-area:2/3/5/4;border:3px dashed #c98a2b;margin:1px}
.wfx-mark--bracket em{left:50%;bottom:-36px;translate:-50% 0}
.wfx-mark--stamp{grid-area:2/2/5/6}
.wfx-mark--stamp em{--t:0;left:calc(4% + var(--t) * 32%);top:calc(14% + var(--t) * 31%);color:#25302e;background:#fff;border-color:#0e4d4a}
.wfx-mark--stamp em::before{content:'';position:absolute;right:100%;top:50%;width:18px;height:1px;background:#0e4d4a}
.wfx-mark--return{grid-area:4/4/5/6}
.wfx-mark--return svg{position:absolute;left:-12%;top:-30%;width:70%;height:90%;overflow:visible}
.wfx-mark--return path{stroke:#c98a2b;stroke-width:3;fill:none}
.wfx-mark--return em{right:0;bottom:-36px;white-space:normal;width:max-content;max-width:300px}
.wfx-sheet__margin{display:flex;flex-direction:column;gap:10px;padding:18px 22px;border-left:1px solid #0e4d4a26;min-height:0}
.wfx-sheet__margin h3{font-size:clamp(22px,1.8vw,27px);line-height:1.12;letter-spacing:-.025em}
.wfx-sheet__text{margin:0;font-size:17px;line-height:1.5;color:#25302e}
.wfx-sheet__ro{margin:auto 0 0;padding-top:10px;border-top:1px solid #0e4d4a26;font-size:15px;line-height:1.45;color:#6b4209}
.wfx-sheet__tag{display:none}
/* step states: 0 Witness, 1 Practise, 2 Evidence (fan), 3 Repeat, 4 zoom out to the matrix */
.wfx-ct[data-step='0'] .wfx-sheet[data-k='1'],.wfx-ct[data-step='1'] .wfx-sheet[data-k='2'],.wfx-ct:is([data-step='3'],[data-step='4']) .wfx-sheet[data-k='2']{--d:1}
.wfx-ct[data-step='0'] .wfx-sheet[data-k='2'],.wfx-ct[data-step='1'] .wfx-sheet[data-k='3'],.wfx-ct:is([data-step='3'],[data-step='4']) .wfx-sheet[data-k='1']{--d:2}
.wfx-ct[data-step='0'] .wfx-sheet[data-k='3'],.wfx-ct[data-step='1'] .wfx-sheet[data-k='0'],.wfx-ct:is([data-step='3'],[data-step='4']) .wfx-sheet[data-k='0']{--d:3}
.wfx-ct[data-step='2'] .wfx-sheet[data-k='0']{--d:3;z-index:2;transform:translate3d(-56px,-22px,0) rotate(0deg) scale(.94)}
.wfx-ct[data-step='2'] .wfx-sheet[data-k='1']{--d:2;z-index:3;transform:translate3d(-28px,-11px,0) rotate(0deg) scale(.97)}
.wfx-ct[data-step='2'] .wfx-sheet[data-k='3']{--d:1;z-index:4;transform:translate3d(32px,-12px,0) rotate(0deg) scale(.96)}
.wfx-ct[data-step='2'] .wfx-sheet[data-k='2']{--d:0;z-index:5;transform:translate3d(0,0,0) rotate(0deg) scale(1)}
.wfx-ct[data-step='0'] .wfx-sheet:not([data-k='0']),.wfx-ct[data-step='1'] .wfx-sheet:not([data-k='1']),.wfx-ct[data-step='2'] .wfx-sheet:not([data-k='2']),.wfx-ct[data-step='3'] .wfx-sheet:not([data-k='3']){opacity:.35;filter:blur(1px);pointer-events:none}
.wfx-ct[data-step='0'] .wfx-sheet:not([data-k='0']) :is(.wfx-sheet__body,.wfx-sheet__head),.wfx-ct[data-step='1'] .wfx-sheet:not([data-k='1']) :is(.wfx-sheet__body,.wfx-sheet__head),.wfx-ct[data-step='2'] .wfx-sheet:not([data-k='2']) :is(.wfx-sheet__body,.wfx-sheet__head),.wfx-ct:is([data-step='3'],[data-step='4']) .wfx-sheet:not([data-k='3']) :is(.wfx-sheet__body,.wfx-sheet__head){opacity:0}
.wfx-ct[data-step='4'] .wfx-sheet:not([data-k='3']){opacity:0;filter:none;pointer-events:none}
.wfx-ct[data-step='4'] .wfx-sheet[data-k='3']{opacity:0;transition:transform 450ms var(--gft-ease-in-out),opacity 220ms ease 180ms}
.wfx-ct[data-step='4'] .wfx-ct__cam{transform:translate(var(--zx,0px),var(--zy,0px)) scale(var(--zs,.08))}
/* the zoom-out is scroll-linked where supported, so it is complete before the pin releases */
@supports (animation-timeline: view()){
 :root[data-m-go] .wfx-ct .wfx-ct__cam{transition:none;animation-name:wfx-zoom;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--wfx-zoom;animation-range-start:cover 30%;animation-range-end:cover 50%}
 :root[data-m-go] .wfx-ct .wfx-ct__zoom{transition:none;animation-name:wfx-zoom-in;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--wfx-zoom;animation-range-start:cover 28%;animation-range-end:cover 48%}
}
@keyframes wfx-zoom{from{transform:none}to{transform:translate(var(--zx,0px),var(--zy,0px)) scale(var(--zs,.08))}}
@keyframes wfx-zoom-in{from{opacity:0}to{opacity:1}}
.wfx-ct__zoom{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:18px;opacity:0;transition:opacity 180ms ease;pointer-events:none}
.wfx-ct[data-step='4'] .wfx-ct__zoom{opacity:1;transition-delay:0ms}
.wfx-ct__zgrid{display:grid;grid-template-columns:130px repeat(6,88px) 1px;grid-template-rows:32px repeat(5,minmax(0,78px));align-items:center;justify-items:center}
.wfx-ct__zc{font:600 14px/1 var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#3d6b5b}
.wfx-ct__zr{justify-self:start;font:600 14px/1 var(--gft-font-mono);color:#25302e}
.wfx-ct__zt{justify-self:center;width:300vw;height:1px;background:#3f8f6b66;z-index:-1}
.wfx-ct__zcell{display:grid;place-items:center;width:70px;height:70px;background:#f6f4ef;border:1px solid #0e4d4a1f}
.wfx-ct__zcell .wfx-g{--gs:30px}
.wfx-ct__slot{outline:3px solid #c98a2b;outline-offset:3px}
.wfx-ct__znote{margin:0;max-width:60ch;text-align:center;font-size:15px;line-height:1.5;color:#25302e;background:#f6f4efe6;padding:4px 10px}
.wfx-ct__rail{display:flex;justify-content:center;gap:8px;padding-top:10px}
.wfx-ct__rail button,.wfx-it__stops button,.wfx-reed__stops button{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:6px 16px;background:transparent;border:1px solid #0e4d4a59;font:600 14px/1 var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#25302e;cursor:pointer}
.wfx-ct__rail button b,.wfx-it__stops button b,.wfx-reed__stops button b{font-weight:700;color:#6b4209}
.wfx-ct__rail button[aria-pressed=true],.wfx-reed__stops button[aria-pressed=true]{background:#0e4d4a;border-color:#0e4d4a;color:#fff}
.wfx-ct__rail button[aria-pressed=true] b,.wfx-reed__stops button[aria-pressed=true] b{color:#f0c27a}
.wfx-ct__track,.wfx-it__track{position:relative;margin-top:-100svh;pointer-events:none}
.wfx-step{height:90svh}
.wfx-ct .wfx-step[data-k='4']{height:130svh}
.wfx-it .wfx-step[data-k='4']{height:130svh}
.wfx-step__card{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.wfx-ct .wfx-step__card{display:none}
:root[data-m-go] .wfx-ct[data-step='0'] .wfx-ct__frame[data-m-on] .wfx-mark--window i{animation-name:wfx-glide;animation-duration:5s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes wfx-glide{from{transform:translateX(0)}to{transform:translateX(300%)}}
:root[data-m-go] .wfx-ct[data-step='1'] .wfx-ct__frame[data-m-on] .wfx-tick{animation-name:wfx-blink;animation-duration:1.6s;animation-timing-function:steps(2,jump-none);animation-iteration-count:infinite;animation-direction:normal}
@keyframes wfx-blink{50%{opacity:.25}}
.wfx-mini__cell.is-flip .wfx-g{transition:rotate 600ms var(--gft-ease-in-out)}
.wfx-ct[data-step='3'] .wfx-mini__cell.is-flip{outline:3px solid #c98a2b;outline-offset:-3px}
/* entrance selvedge-draw: the front sheet's edges draw from its corners, the behind sheets deal in, the columns set */
:root[data-m-go][data-wfx-js] .wfx-sec--contract:not([data-wfx-in]) .wfx-ct__stack{opacity:0}
:root[data-m-go] .wfx-sec--contract[data-wfx-in] .wfx-ct__stack{animation-name:wfx-selvedge;animation-duration:420ms;animation-timing-function:var(--gft-ease-in-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes wfx-selvedge{from{opacity:.2;clip-path:inset(48% 48% 48% 48%)}to{opacity:1;clip-path:inset(-80px -80px -80px -80px)}}
:root[data-m-go] .wfx-sec--contract[data-wfx-in] .wfx-sheet[data-k='0'] .wfx-sheet__body{animation-name:wfx-fade;animation-duration:260ms;animation-delay:360ms;animation-timing-function:linear;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .wfx-sec--contract[data-wfx-in] .wfx-sheet[data-k='0'] .wfx-mini__cell{animation-name:wfx-set;animation-duration:260ms;animation-delay:calc(440ms + var(--c) * 40ms + var(--r) * 30ms);animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .wfx-sec--contract[data-wfx-in] .wfx-ct__rail{animation-name:wfx-rise;animation-duration:420ms;animation-delay:420ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}

/* ---------- #4 loom (sage, not pinned) ---------- */
.wfx-sec--loom{padding-block:clamp(56px,7vh,88px)}
.wfx-lm__top{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px 56px;align-items:end}
.wfx-lm__head h2{font-size:clamp(2rem,3.1vw,3.3rem)}
.wfx-reed{display:grid;gap:8px}
.wfx-reed__row{display:flex;justify-content:space-between;align-items:center;gap:12px}
.wfx-reed__play{min-height:44px;padding:6px 16px;background:#0e4d4a;border:0;color:#fff;font:600 14px/1 var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
:root:not([data-m-go]) .wfx-reed__play{display:none}
.wfx-reed__stops{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.wfx-reed__stops button{justify-content:center;padding:6px 8px}
.wfx-lm__loom{margin-top:28px;position:relative}
.wfx-lm__scroll{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
.wfx-lm__inner{--top:56px;--rh:86px;--x0:15%;--px:14%;position:relative;height:calc(var(--top) + 5 * var(--rh) + 24px);min-width:100%;container-type:inline-size}
.wfx-lm__inner::before{content:'';position:absolute;left:0;right:0;top:40px;height:2px;background:#0e4d4a}
.wfx-lm__head-c{position:absolute;top:10px;left:calc(var(--x0) + var(--c) * var(--px));translate:-50% 0;font:600 14px/1 var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:#25302e}
.wfx-lm__thread{position:absolute;left:0;right:0;top:calc(var(--top) + var(--r) * var(--rh) + var(--rh) / 2);height:2px;background:#3f8f6b80;transform-origin:0 50%}
.wfx-lm__thread.is-empty{background:repeating-linear-gradient(90deg,#3f8f6b80 0 8px,transparent 8px 16px)}
.wfx-lm__row{position:absolute;left:max(16px,1.5%);top:calc(var(--top) + var(--r) * var(--rh) + 6px);font:600 14px/1 var(--gft-font-mono);letter-spacing:.06em;color:#25302e}
.wfx-lm__col{position:absolute;top:var(--top);left:calc(var(--x0) + var(--c) * var(--px));width:70px;margin-left:-35px;height:calc(5 * var(--rh))}
.wfx-knot{position:absolute;left:0;top:calc(var(--r) * var(--rh));width:70px;height:var(--rh);display:grid;place-items:center}
.wfx-knot::before{content:'';position:absolute;width:52px;height:52px;background:#e2ebe6}
.wfx-knot .wfx-g{--gs:36px;position:relative}
.wfx-lm__bound{position:absolute;left:calc(var(--x0) - 50px);width:calc(3 * var(--px) + 100px);top:calc(var(--top) + var(--rh) + 2px);height:calc(2 * var(--rh) - 4px);border:3px solid #c98a2b;opacity:0;transition:opacity 400ms;pointer-events:none}
.wfx-lm__bound em{position:absolute;left:-3px;top:-34px;font:600 14px/1 var(--gft-font-mono);font-style:normal;letter-spacing:.04em;color:#fff;background:#8a5a14;padding:6px 10px}
.wfx-lm[data-step='4'] .wfx-lm__bound{opacity:1}
.wfx-lm__tag{position:absolute;font:600 14px/1 var(--gft-font-mono);letter-spacing:.04em;color:#25302e;background:#f6f4ef;border:1px solid #0e4d4a66;padding:6px 10px;opacity:0;transition:opacity 300ms,transform 300ms;transform:translateY(6px);white-space:nowrap;pointer-events:none}
.wfx-lm__tag--seed{left:calc(var(--x0) + 3 * var(--px) + 64px);top:calc(var(--top) + 1.5 * var(--rh) + 20px)}
.wfx-lm__tag--assist{left:calc(var(--x0) + 1 * var(--px) + 40px);top:calc(var(--top) + var(--rh) - 12px)}
.wfx-lm__tag--stamp{left:calc(var(--x0) + 2 * var(--px) + 40px);top:calc(var(--top) + 3 * var(--rh) - 12px)}
.wfx-lm:is([data-step='1'],[data-step='2'],[data-step='3'],[data-step='4']) .wfx-lm__tag--seed,.wfx-lm[data-step='2'] .wfx-lm__tag--assist,.wfx-lm[data-step='3'] .wfx-lm__tag--stamp{opacity:1;transform:none}
.wfx-lm__bead{position:absolute;left:0;top:calc(var(--top) + 1.5 * var(--rh) - 7px);width:14px;height:14px;pointer-events:none}
.wfx-lm__bead i{display:block;width:14px;height:14px;border-radius:50%;background:#c98a2b;box-shadow:0 0 0 4px #c98a2b33;opacity:0}
.wfx-lm__read{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px 56px;margin-top:24px;align-items:start}
.wfx-lm__v h3{margin-top:8px;font-size:28px;line-height:1.12;letter-spacing:-.03em}
.wfx-lm__text{margin:10px 0 0;font-size:17px;line-height:1.55;max-width:54ch}
.wfx-lm__visual{margin:0;font:italic 400 22px/1.35 var(--gft-font-serif);color:#25302e}
.wfx-lm__count{margin:12px 0 0;font:600 14px/1.5 var(--gft-font-mono);letter-spacing:.04em;color:#25302e}
.wfx-lm__count b{font:800 22px/1 var(--gft-font-display);color:#0e4d4a;font-variant-numeric:tabular-nums}
.wfx-lm__count span{color:#3d6b5b}
:root[data-m-go] .wfx-lm__loom[data-m-on] .wfx-lm__bead i{animation-name:wfx-shuttle;animation-duration:6s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:normal}
@keyframes wfx-shuttle{0%{opacity:0;transform:translateX(0)}6%{opacity:1}54%{opacity:1;transform:translateX(calc(100cqw - 14px))}60%,100%{opacity:0;transform:translateX(calc(100cqw - 14px))}}
:root[data-m-go] .wfx-lm[data-step='4'] .wfx-lm__loom[data-m-on] .wfx-lm__bound::before{content:'';position:absolute;inset:-8px;border:2px solid #c98a2b;animation-name:wfx-breathe;animation-duration:2.6s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
/* entrance comb: each column's knots are combed in from the top rule, then the reed beats them (script) */
:root[data-m-go][data-wfx-js] .wfx-sec--loom:not([data-wfx-in]) .wfx-lm__col{clip-path:inset(0 0 100% 0)}
:root[data-m-go][data-wfx-js] .wfx-sec--loom:not([data-wfx-in]) .wfx-lm__thread{transform:scaleX(0)}
:root[data-m-go] .wfx-sec--loom[data-wfx-in] .wfx-lm__thread{animation-name:wfx-shoot;animation-duration:260ms;animation-delay:calc(var(--r) * 30ms);animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .wfx-sec--loom[data-wfx-in] .wfx-lm__col{animation-name:wfx-comb;animation-duration:300ms;animation-delay:calc(60ms + var(--c) * 70ms);animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes wfx-comb{from{clip-path:inset(0 0 100% 0);transform:translateY(-22px)}to{clip-path:inset(0 0 0 0);transform:none}}
.wfx-reed.wfx-in-p{--wd:120ms}

/* ---------- #5 labour context: rules in cells (paper) ---------- */
.wfx-sec--labour{padding-bottom:0;view-timeline-name:--wfx-sec;view-timeline-axis:block}
.wfx-lb{display:grid;grid-template-columns:minmax(0,34fr) minmax(0,66fr);grid-template-areas:'head head' 'rail stage';gap:28px 56px;padding-bottom:84px}
.wfx-lb__head{grid-area:head}
.wfx-lb__head h2{font-size:clamp(2rem,3.1vw,3.3rem)}
.wfx-lb__rail{grid-area:rail;display:grid;gap:12px;align-content:start}
.wfx-lb__card{background:#fffdf8;border:1px solid #0e4d4a33;border-left:4px solid #0e4d4a33;transition:border-color .25s}
.wfx-lb__card:has(input:checked){border-left-color:#c98a2b;background:#fff}
.wfx-lb__pick{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 14px;padding:16px 18px 8px;cursor:pointer}
.wfx-lb__pick input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.wfx-lb__pick:has(input:focus-visible){outline:3px solid #c98a2b;outline-offset:2px}
.wfx-lb__no{grid-row:1/3;font:800 26px/1 var(--gft-font-display);color:#3d6b5b}
.wfx-lb__label{font:750 20px/1.2 var(--gft-font-display);letter-spacing:-.02em;color:#25302e}
.wfx-lb__text{grid-column:2;font-size:17px;line-height:1.5;color:#25302e}
.wfx-lb__opens{grid-column:2;font:600 13px/1.4 var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#3d6b5b}
.wfx-lb__src{margin:0;padding:4px 18px 14px 58px;font-size:14px;line-height:1.5;color:#33403d}
.wfx-lb__src .gft-cite{font-size:13px;margin-right:8px;vertical-align:middle}
.wfx-lb__note{margin:4px 0 0;font:14px/1.6 var(--gft-font-mono);color:#33403d}
.wfx-lb__stage{grid-area:stage;display:grid;gap:4px;align-content:start}
.wfx-lb__read{margin:0 0 6px;padding:12px 16px;background:#0e4d4a;color:#fff;font-size:17px;line-height:1.45}
.wfx-lb__row{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:16px 0 36px;border-top:1px solid #0e4d4a26}
.wfx-lb__meta{display:grid;gap:6px}
.wfx-lb__figv{margin:0;display:grid;gap:2px}
.wfx-lb__figv b{display:block;font:800 56px/1 var(--gft-font-display);letter-spacing:-.045em;font-variant-numeric:tabular-nums;color:#25302e;transform-origin:0 100%;transition:transform 450ms var(--gft-ease-out);white-space:nowrap}
.wfx-lb__figv span{font-size:15px;line-height:1.4;color:#33403d}
.wfx-lb__fig{min-height:0}
.wfx-lb[data-year='1'] .wfx-lb__figv[data-y='0'],.wfx-lb[data-year='0'] .wfx-lb__figv[data-y='1']{visibility:hidden;opacity:0}
.wfx-lb[data-year='0'] .wfx-lb__figv[data-y='0'],.wfx-lb[data-year='1'] .wfx-lb__figv[data-y='1']{visibility:visible;opacity:1}
.wfx-lb:not([data-tab='0']) .wfx-lb__row--xaf .wfx-lb__figv b,.wfx-lb:not([data-tab='1']) .wfx-lb__row--usd .wfx-lb__figv b,.wfx-lb:not([data-tab='2']) .wfx-lb__row--hours .wfx-lb__figv b{transform:scale(.45)}
.wfx-lb:not([data-tab='0']) .wfx-lb__row--xaf .wfx-u,.wfx-lb:not([data-tab='1']) .wfx-lb__row--usd .wfx-u,.wfx-lb:not([data-tab='2']) .wfx-lb__row--hours .wfx-u{opacity:.4}
.wfx-lb__row .wfx-u{transition:opacity 300ms}
.wfx-lb__row{position:relative}
.wfx-lb__row::before{content:'';position:absolute;left:-14px;top:16px;bottom:30px;width:4px;background:#c98a2b;opacity:0;transform:scaleY(.3);transition:opacity 300ms,transform 400ms var(--gft-ease-out)}
.wfx-lb[data-tab='0'] .wfx-lb__row--xaf::before,.wfx-lb[data-tab='1'] .wfx-lb__row--usd::before,.wfx-lb[data-tab='2'] .wfx-lb__row--hours::before{opacity:1;transform:none}
.wfx-lb__cells{position:relative;display:grid;grid-template-columns:repeat(25,minmax(0,1fr));gap:4px;cursor:crosshair;touch-action:pan-y}
.wfx-lb__cells:focus-visible{outline:3px solid #c98a2b;outline-offset:6px}
.wfx-lb__cells--hours{grid-template-columns:repeat(24,minmax(0,1fr))}
.wfx-lb__cells--emp{grid-template-columns:repeat(10,minmax(0,1fr))}
.wfx-u{--uf:#3f8f6b;--uo:#c98a2b;position:relative;display:block;aspect-ratio:1;border:1.5px solid #3f8f6b;background:linear-gradient(90deg,var(--uf) 0 calc(var(--a) * 100%),var(--uo) calc(var(--a) * 100%) calc(var(--bb,var(--b)) * 100%),transparent calc(var(--bb,var(--b)) * 100%))}
.wfx-u--axis{border-style:dashed;border-color:#3f8f6b80}
.wfx-u--ref{--uf:#2c3e7a;border-color:#2c3e7a}
.wfx-u--ref.wfx-u--axis{border-color:#2c3e7a80}
.wfx-u--ot{border-color:#c98a2b}
.wfx-u--inf{border-style:dashed;border-color:#3f8f6b}
.wfx-lb[data-year='0'] .wfx-lb__cells--xaf .wfx-u{--bb:var(--a)}
.wfx-lb[data-year='0'] .wfx-lb__cells--xaf .wfx-u--rise{border-style:dashed;border-color:#3f8f6b80}
.wfx-lb__pair{display:grid;gap:6px}
.wfx-lb__pair--hours{grid-template-columns:minmax(0,3fr) minmax(0,1fr);gap:24px;align-items:start}
.wfx-lb__who{margin:0;font:600 13px/1.3 var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#3d6b5b}
.wfx-lb__empk{margin:8px 0 0;font-size:15px;color:#25302e}
.wfx-lb__empk b{font:800 22px/1 var(--gft-font-display)}
.wfx-lb__rise,.wfx-lb__chip,.wfx-lb__ot{position:absolute;top:calc(100% + 6px);font:600 13px/1.2 var(--gft-font-mono);letter-spacing:.04em;color:#6b4209;background:#fdf3e2;border:1px solid #c98a2b;padding:3px 7px;white-space:nowrap;pointer-events:none}
.wfx-lb__rise{left:calc(100% * 17 / 25)}
.wfx-lb__riseframe{position:absolute;inset:-5px;grid-area:2/18/3/20;pointer-events:none}
.wfx-lb__chip{right:0;color:#fff;background:#2c3e7a;border-color:#2c3e7a}
.wfx-lb__ot{right:0}
.wfx-lb__cursor{position:absolute;top:-6px;bottom:-6px;left:0;width:2px;background:#c98a2b;opacity:0;transform:translateX(var(--cx,0px));transition:opacity 150ms;pointer-events:none}
.wfx-lb__cells.is-reading .wfx-lb__cursor{opacity:1}
.wfx-lb__year{display:flex;align-items:center;gap:14px;margin-top:20px}
.wfx-lb__year .wfx-range{width:180px}
.wfx-lb__year output{font:600 15px/1 var(--gft-font-mono);color:#25302e;min-width:16ch}
.wfx-lb__flood{position:absolute;left:0;right:0;bottom:0;height:var(--fh,120px);background:#072d2b;transform-origin:50% 100%;transform:scaleY(0);pointer-events:none;z-index:2;overflow-anchor:none}
.wfx-u--ot::after{content:'';position:absolute;inset:-1.5px;background:#072d2b;opacity:0;pointer-events:none}
@supports (animation-timeline: view()){
 :root[data-m-go] .wfx-lb__flood{animation-name:wfx-flood;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--wfx-sec;animation-range-start:exit 0%;animation-range-end:exit 70%}
 :root[data-m-go] .wfx-u--ot::after{animation-name:wfx-dark;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--wfx-sec;animation-range-start:exit calc((var(--k) - 40) * 3%);animation-range-end:exit calc(10% + (var(--k) - 40) * 3%)}
}
@keyframes wfx-flood{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes wfx-dark{from{opacity:0}to{opacity:1}}
:root[data-m-go] .wfx-lb__stage[data-m-on] .wfx-u--rise{animation-name:wfx-risepulse;animation-duration:6s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:normal}
@keyframes wfx-risepulse{0%,84%,100%{filter:none}90%{filter:brightness(1.35) drop-shadow(0 0 6px #c98a2b)}}
/* entrance beat-up: each row's cells slide up into place like weft beaten in; the rail deals in from the left */
.wfx-lb__row--xaf{--rd:0ms}.wfx-lb__row--usd{--rd:120ms}.wfx-lb__row--hours{--rd:240ms}
:root[data-m-go][data-wfx-js] .wfx-sec--labour:not([data-wfx-in]) .wfx-u{opacity:0}
:root[data-m-go] .wfx-sec--labour[data-wfx-in] .wfx-u{animation-name:wfx-beat;animation-duration:300ms;animation-delay:calc(var(--rd,0ms) + var(--k,0) * 8ms);animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes wfx-beat{from{opacity:0;transform:translateY(24px)}}

/* ---------- #6 interlude: the cell's journey (sticky, night) ---------- */
.wfx-sec--int{padding:0}
.wfx-it{position:relative}
.wfx-it__frame{position:sticky;top:0;height:100svh;z-index:1;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:clip}
.wfx-it__band{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:16px 48px;padding:clamp(18px,3vh,36px) max(48px,calc((100% - 1344px) / 2)) 4px;align-items:start;position:relative;z-index:3}
.wfx-it__head h2{font-size:clamp(2rem,2.9vw,3.1rem)}
.wfx-it__head .wfx-head__lede{font-size:17px;margin-top:10px}
.wfx-it__quote{position:relative;padding-top:24px}
.wfx-it__q{margin:0;font:italic 400 clamp(1.7rem,2.6vw,2.7rem)/1.14 var(--gft-font-serif);color:#f6f4ef;letter-spacing:-.01em}
.wfx-it__ql{display:inline-block}
.wfx-it__more{margin-top:12px}
.wfx-it__more summary{display:inline-flex;align-items:center;min-height:44px;font:600 14px/1 var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#9fd9bb;cursor:pointer}
.wfx-it__morep{position:absolute;right:0;top:calc(100% + 4px);width:min(560px,100%);padding:18px 20px;background:#0b3a37;border:1px solid #9fd9bb66;z-index:8}
.wfx-it__morep p{margin:0;font-size:17px;line-height:1.55;color:#e8f0ec}
.wfx-it__morep p+p{margin-top:10px}
.wfx-it__box{position:relative;container-type:size;min-height:0}
.wfx-it__dust{position:absolute;inset:0;width:100%;height:100%;display:block}
.wfx-it__cam{position:absolute;inset:4% 2% 2%;transform-origin:50% 55%;transition:transform 900ms var(--gft-ease-in-out);container-type:size}
.wfx-it[data-step='2'] .wfx-it__cam{transform:scale(.86)}
.wfx-it__svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.wfx-it__grid path{stroke:#9fd9bb;stroke-opacity:.09;stroke-width:1;vector-effect:non-scaling-stroke}
.wfx-it__faint{stroke:#9fd9bb;stroke-opacity:.3;stroke-width:2;vector-effect:non-scaling-stroke}
.wfx-it__lit{position:absolute;inset:0;--li:0%;clip-path:inset(-20% var(--li) -20% 0);transition:clip-path 900ms var(--gft-ease-in-out)}
.wfx-it[data-step='0'] .wfx-it__lit{--li:87%}
.wfx-it[data-step='1'] .wfx-it__lit{--li:66%}
.wfx-it__curve{stroke:#f6f4ef;stroke-width:4;stroke-linecap:round;vector-effect:non-scaling-stroke}
.wfx-it__seg{fill:#6bb68f;fill-opacity:.24;opacity:0;transition:opacity 500ms}
.wfx-it:is([data-step='1'],[data-step='2'],[data-step='3']) .wfx-it__seg{opacity:1}
.wfx-it__area{fill:#c98a2b;fill-opacity:.2;opacity:0;transition:opacity 500ms}
.wfx-it__loop{stroke:#f0c27a;stroke-width:3;stroke-dasharray:4 9;vector-effect:non-scaling-stroke;opacity:0;transition:opacity 500ms}
.wfx-it:is([data-step='2'],[data-step='3']) :is(.wfx-it__area,.wfx-it__loop){opacity:1}
.wfx-it__rise{stroke:#f0c27a;stroke-width:3;vector-effect:non-scaling-stroke;opacity:0;transition:opacity 500ms}
.wfx-it:is([data-step='3'],[data-step='4']) .wfx-it__rise{opacity:1}
.wfx-it__notch{stroke:#f0c27a;stroke-width:3;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.wfx-it__knot{position:absolute;left:calc(var(--x) * 1%);top:calc(var(--y) * 1%);width:40px;height:40px;margin:-20px 0 0 -20px;border:3px solid #f0c27a;border-radius:50%;opacity:0;transform:scale(.4) rotate(-90deg);transition:opacity 400ms,transform 600ms var(--gft-ease-out)}
.wfx-it[data-step='4'] .wfx-it__knot{opacity:1;transform:none}
.wfx-it__dlabel{position:absolute;left:calc(var(--x) * 1%);top:calc(var(--y) * 1% + 52px);translate:-50% 0;font:600 14px/1 var(--gft-font-mono);letter-spacing:.06em;color:#072d2b;background:#f0c27a;padding:6px 10px;white-space:nowrap;transition:opacity 300ms}
.wfx-it:not([data-step='0']):not([data-step='1']) .wfx-it__dlabel{opacity:0}
.wfx-it__node{position:absolute;left:calc(var(--x) * 1%);top:calc(var(--y) * 1%);width:44px;height:44px;margin:-22px 0 0 -22px;display:grid;place-items:center;padding:0;background:none;border:0;cursor:pointer;z-index:2}
.wfx-it__node i{width:14px;height:14px;rotate:45deg;border:2px solid #9fd9bb;background:#072d2b}
.wfx-it__node b{position:absolute;top:-14px;left:50%;translate:-50% 0;font:700 13px/1 var(--gft-font-mono);color:#e8f0ec}
.wfx-it__node:hover i,.wfx-it__node:focus-visible i{background:#f0c27a;border-color:#f0c27a}
.wfx-it__end{position:absolute;left:calc(var(--x) * 1%);top:calc(var(--y) * 1%);width:2px;height:2px}
.wfx-it__beadw{--bx:54;--by:56.25;position:absolute;left:0;top:0;width:0;height:0;z-index:3;transform:translate(calc(var(--bx) * 1cqw),calc(var(--by) * 1cqh));transition:transform 850ms var(--gft-ease-in-out)}
.wfx-it[data-step='0'] .wfx-it__beadw{--bx:12;--by:62.5}
.wfx-it[data-step='1'] .wfx-it__beadw{--bx:33;--by:50}
.wfx-it[data-step='3'] .wfx-it__beadw{--bx:75;--by:32.5}
.wfx-it[data-step='4'] .wfx-it__beadw{--bx:93;--by:15.5}
.wfx-it__bead{position:absolute;left:-14px;top:-14px;width:28px;height:28px;display:block;transition:transform 700ms var(--gft-ease-in-out) 250ms}
.wfx-it[data-step='4'] .wfx-it__bead{transform:translateY(24cqh)}
.wfx-it__bead .wfx-g{--gs:28px;position:relative;z-index:1;box-shadow:0 0 0 5px #072d2b}
.wfx-it__ring{position:absolute;left:50%;top:50%;width:28px;height:28px;margin:-14px;border:2px solid #f0c27a;border-radius:50%;opacity:0;transform:scale(calc(1.5 + var(--k) * .55));transition:opacity 400ms}
.wfx-it[data-step='1'] .wfx-it__ring{opacity:calc(.95 - var(--k) * .25)}
.wfx-it__cause{position:absolute;left:1cqw;top:54cqh;width:37cqw;padding:16px 18px;background:#0b3a37f2;border:1px solid #9fd9bb59;opacity:0;visibility:hidden;transition:opacity 400ms,visibility 0s 400ms;z-index:4}
.wfx-it[data-step='3'] .wfx-it__cause{opacity:1;visibility:visible;transition:opacity 400ms 200ms,visibility 0s}
.wfx-it__tags{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.wfx-it__tag{display:grid;gap:4px;padding:8px 12px;border:1px solid #9fd9bb66;font:650 16px/1.2 var(--gft-font-display);color:#e8f0ec;transform:translate(calc(70cqw - var(--k) * 4cqw),-20cqh) scale(.4);opacity:0;transition:transform 600ms var(--gft-ease-out),opacity 300ms}
.wfx-it[data-step='3'] .wfx-it__tag{transform:none;opacity:1;transition-delay:calc(200ms + var(--k) * 70ms)}
.wfx-it__tag.is-set{border-color:#f0c27a;background:#c98a2b26}
.wfx-it__tag em{font:600 13px/1.3 var(--gft-font-mono);font-style:normal;color:#f0c27a}
.wfx-it__plate{--px:62cqw;--py:52cqh;position:absolute;left:0;top:0;width:min(35cqw,500px);padding:16px 20px;background:#072d2bf2;border:1px solid #9fd9bb59;border-left:3px solid #c98a2b;transform:translate(var(--px),var(--py));transition:transform 850ms var(--gft-ease-in-out);z-index:5}
.wfx-it[data-step='0'] .wfx-it__plate{--px:17cqw;--py:6cqh}
.wfx-it[data-step='1'] .wfx-it__plate{--px:24cqw;--py:0cqh}
.wfx-it[data-step='3'] .wfx-it__plate{--px:1cqw;--py:0cqh}
.wfx-it[data-step='4'] .wfx-it__plate{--px:55cqw;--py:30cqh}
.wfx-it__pt{margin:6px 0 0;font:800 26px/1.12 var(--gft-font-display);letter-spacing:-.03em;color:#fff}
.wfx-it__px{margin:8px 0 0;font-size:17px;line-height:1.5;color:#e8f0ec}
.wfx-it__rail{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px 32px;align-items:center;padding:10px max(48px,calc((100% - 1344px) / 2)) 18px;border-top:1px solid #9fd9bb33;position:relative;z-index:3;background:#072d2b}
.wfx-it__stops{display:flex;gap:6px}
.wfx-it__stops button{color:#e8f0ec;border-color:#9fd9bb59;padding:6px 12px}
.wfx-it__stops button b{color:#f0c27a}
.wfx-it__stops button[aria-pressed=true]{background:#f0c27a;border-color:#f0c27a;color:#072d2b}
.wfx-it__stops button[aria-pressed=true] b{color:#072d2b}
.wfx-it__cap{margin:0;font:14px/1.5 var(--gft-font-mono);color:#e8f0ec}
:root[data-m-go] .wfx-it__frame[data-m-on] .wfx-it__bead::after{content:'';position:absolute;inset:-9px;border:2px solid #9fd9bb;border-radius:50%;animation-name:wfx-breathe;animation-duration:2.4s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
/* entrance shed: the grid opens from its centre line, the curve draws to station 1 and the bead drops on it; the quote rises by line */
:root[data-m-go][data-wfx-js] .wfx-sec--int:not([data-wfx-in]) :is(.wfx-it__base,.wfx-it__ql,.wfx-it__bead,.wfx-it__rail){opacity:0}
:root[data-m-go] .wfx-sec--int[data-wfx-in] .wfx-it__base{animation-name:wfx-shed;animation-duration:400ms;animation-timing-function:var(--gft-ease-in-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes wfx-shed{from{opacity:.3;clip-path:inset(50% 0 50% 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}
:root[data-m-go] .wfx-sec--int[data-wfx-in] .wfx-it__lit{animation-name:wfx-draw-l;animation-duration:420ms;animation-delay:340ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes wfx-draw-l{from{clip-path:inset(-20% 100% -20% 0)}}
:root[data-m-go] .wfx-sec--int[data-wfx-in] .wfx-it__bead{animation-name:wfx-drop;animation-duration:360ms;animation-delay:480ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes wfx-drop{from{opacity:0;transform:translateY(-70px)}}
:root[data-m-go] .wfx-sec--int[data-wfx-in] .wfx-it__ql{animation-name:wfx-rise;animation-duration:520ms;animation-delay:calc(200ms + var(--k) * 120ms);animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .wfx-sec--int[data-wfx-in] .wfx-it__rail{animation-name:wfx-fade;animation-duration:360ms;animation-delay:420ms;animation-timing-function:linear;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}

/* ---------- #7 operating: the shift clock (forest) ---------- */
.wfx-ck{display:grid;grid-template-columns:minmax(0,40fr) minmax(0,60fr);gap:48px;align-items:center}
.wfx-ck .wfx-head h2{font-size:clamp(2rem,2.9vw,3.1rem)}
.wfx-ck__tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:22px 0 0;padding:0;border:0;min-width:0}
.wfx-ck__tabs legend{margin-bottom:10px;padding:0}
.wfx-ck__tab{position:relative;cursor:pointer}
.wfx-ck__tab input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.wfx-ck__tab span{display:grid;gap:4px;min-height:58px;padding:10px 14px;border:1px solid #9fd9bb66;color:#e8f0ec;transition:background-color .2s,color .2s}
.wfx-ck__tab small{font:600 13px/1.2 var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase}
.wfx-ck__tab b{font:750 18px/1.1 var(--gft-font-display)}
.wfx-ck__tab:has(input:checked) span{background:#9fd9bb;color:#072d2b;border-color:#9fd9bb}
.wfx-ck__tab:has(input:focus-visible) span{outline:3px solid #f0c27a;outline-offset:3px}
.wfx-ck__panels{margin-top:18px;padding:18px 20px;background:#072d2bb3;border-left:3px solid #c98a2b}
.wfx-ck__panel h3{margin-top:6px;font-size:28px;line-height:1.12;letter-spacing:-.03em;color:#fff}
.wfx-ck__text{margin:10px 0 0;font-size:17px;line-height:1.55;color:#e8f0ec}
.wfx-ck__reads{margin:12px 0 0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.wfx-ck__reads b{font:600 15px/1 var(--gft-font-display);padding:7px 10px;border:1px solid #f0c27a;color:#f0c27a}
.wfx-ck__box{position:relative;justify-self:center;width:min(100%,78vh,760px);aspect-ratio:1}
.wfx-ck__dial{position:absolute;inset:0;container-type:size}
.wfx-ck__metrics{display:contents}
.wfx-ck__face{position:absolute;inset:9%;transform-origin:50% 50%}
.wfx-ck__svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.wfx-ck__rim{stroke:#9fd9bb;stroke-width:2;stroke-dasharray:2 8}
.wfx-ck__spoke{stroke:#9fd9bb;stroke-opacity:.2}
.wfx-ck__seg{fill:transparent;stroke:#9fd9bb;stroke-width:1.5;stroke-dasharray:4 5;transition:fill .3s}
.wfx-ck__seg[data-s=supervised]{fill:#6bb68f;fill-opacity:.42;stroke-dasharray:none;stroke:#6bb68f}
.wfx-ck__seg[data-s=independent]{fill:#6bb68f;stroke:#6bb68f;stroke-dasharray:none}
.wfx-ck__seg[data-s=coach]{fill:#e4a64a;stroke:#e4a64a;stroke-dasharray:none}
.wfx-ck__col{position:absolute;translate:-50% -50%;font:600 13px/1 var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#e8f0ec;background:#0e4d4a;padding:3px 6px;white-space:nowrap}
.wfx-ck__sweep{position:absolute;inset:0;border-radius:50%;pointer-events:none}
.wfx-ck__sweep i{position:absolute;left:50%;top:0;width:1px;height:50%;background:linear-gradient(#f0c27a,#f0c27a00);transform-origin:50% 100%;opacity:.8}
.wfx-ck__handw{position:absolute;left:50%;top:50%;width:0;height:0;--ha:0deg;transform:rotate(var(--ha));transition:transform 750ms var(--gft-ease-in-out)}
.wfx-ck[data-r='1'] .wfx-ck__handw{--ha:90deg}.wfx-ck[data-r='2'] .wfx-ck__handw{--ha:180deg}.wfx-ck[data-r='3'] .wfx-ck__handw{--ha:270deg}
.wfx-ck__hand{position:absolute;left:-3px;bottom:0;width:6px;height:31cqh;transform-origin:50% 100%}
.wfx-ck__hand i{display:block;width:100%;height:100%;background:linear-gradient(#f0c27a,#c98a2b);transform-origin:50% 100%}
.wfx-ck__hand::before{content:'';position:absolute;left:50%;top:-8px;width:16px;height:16px;margin-left:-8px;background:#f0c27a;rotate:45deg}
.wfx-ck__core{position:absolute;left:50%;top:50%;width:26%;aspect-ratio:1;translate:-50% -50%;border-radius:50%;background:#072d2b;border:2px solid #9fd9bb66;place-items:center;text-align:center}
.wfx-ck__core strong{font:800 28px/1 var(--gft-font-display);letter-spacing:-.035em;color:#fff;align-self:center;justify-self:center}
.wfx-ck__q{position:absolute;display:flex;align-items:center;min-height:44px;padding:6px 14px;background:#072d2b;border:1px solid #9fd9bb66;font:700 15px/1 var(--gft-font-display);color:#f6f4ef;cursor:pointer;transition:background-color .2s,color .2s}
.wfx-ck__q--0{left:50%;top:0;translate:-50% 0}.wfx-ck__q--1{right:0;top:50%;translate:0 -50%}.wfx-ck__q--2{left:50%;bottom:0;translate:-50% 0}.wfx-ck__q--3{left:0;top:50%;translate:0 -50%}
.wfx-ck[data-r='0'] .wfx-ck__q--0,.wfx-ck[data-r='1'] .wfx-ck__q--1,.wfx-ck[data-r='2'] .wfx-ck__q--2,.wfx-ck[data-r='3'] .wfx-ck__q--3{background:#f0c27a;color:#072d2b;border-color:#f0c27a}
.wfx-ck__m{position:absolute;display:flex;gap:8px;align-items:baseline;max-width:30%;padding:8px 10px;font:600 14px/1.35 var(--gft-font-mono);color:#e8f0ec;background:#072d2bd9;border:1px solid #9fd9bb4d;transition:border-color .3s}
.wfx-ck__m i{flex:none;width:10px;height:10px;border:2px solid #9fd9bb;transition:background-color .3s}
.wfx-ck__m em{font-style:normal;color:#f0c27a}
.wfx-ck__m--ne{right:0;top:0}.wfx-ck__m--se{right:0;bottom:0}.wfx-ck__m--sw{left:0;bottom:0}.wfx-ck__m--nw{left:0;top:0}
.wfx-ck__m.is-read{border-color:#f0c27a}
.wfx-ck__m.is-read i{background:#f0c27a;border-color:#f0c27a}
:root[data-m-go] .wfx-ck__box[data-m-on] .wfx-ck__hand i{animation-name:wfx-sway;animation-duration:5s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes wfx-sway{from{transform:rotate(-6deg)}to{transform:rotate(6deg)}}
:root[data-m-go] .wfx-ck__box[data-m-on] .wfx-ck__sweep i{animation-name:wfx-turn;animation-duration:12s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal}
@keyframes wfx-turn{to{transform:rotate(360deg)}}
/* entrance spin: the clock turns in from -60 degrees while its sectors fill clockwise, then the hand sweeps */
:root[data-m-go][data-wfx-js] .wfx-sec--clock:not([data-wfx-in]) :is(.wfx-ck__face,.wfx-ck__seg,.wfx-ck__m,.wfx-ck__q){opacity:0}
:root[data-m-go] .wfx-sec--clock[data-wfx-in] .wfx-ck__face{animation-name:wfx-spin;animation-duration:600ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes wfx-spin{from{opacity:.25;transform:rotate(-60deg) scale(.92)}}
:root[data-m-go] .wfx-sec--clock[data-wfx-in] .wfx-ck__seg{animation-name:wfx-fade;animation-duration:240ms;animation-delay:calc(80ms + var(--k) * 40ms);animation-timing-function:linear;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .wfx-sec--clock[data-wfx-in] .wfx-ck__hand{animation-name:wfx-hand;animation-duration:320ms;animation-delay:560ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes wfx-hand{from{transform:rotate(-120deg)}}
:root[data-m-go] .wfx-sec--clock[data-wfx-in] :is(.wfx-ck__m,.wfx-ck__q){animation-name:wfx-fade;animation-duration:300ms;animation-delay:520ms;animation-timing-function:linear;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
.wfx-ck__tabs.wfx-in-p{--wd:200ms}.wfx-ck__panels.wfx-in-p{--wd:300ms}

/* ---------- #8 programme: the ramp of evidence states (night) ---------- */
.wfx-sec--ramp{padding-block:clamp(40px,5vh,64px) 64px}
.wfx-rp__band{position:relative;width:min(92vw,1600px);height:max(64vh,560px);margin-inline:auto;border:1px solid #9fd9bb2e;overflow:clip}
.wfx-rp__band::before{content:'';position:absolute;inset:-48px;background-image:linear-gradient(#b4d4c50e 1px,transparent 1px),linear-gradient(90deg,#b4d4c50e 1px,transparent 1px);background-size:24px 24px;pointer-events:none}
:root[data-m-go] .wfx-rp__band[data-m-on]::before{animation-name:wfx-weave;animation-duration:30s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal}
@keyframes wfx-weave{to{transform:translate(24px,24px)}}
.wfx-rp__draw{position:absolute;inset:0}
.wfx-rp__svg{position:absolute;inset:0;width:100%;height:100%}
.wfx-rp__grid path{stroke:#9fd9bb;stroke-opacity:.08;vector-effect:non-scaling-stroke}
.wfx-rp__drawn,.wfx-rp__backw{position:absolute;inset:0}
.wfx-rp__path{stroke:#f6f4ef;stroke-width:4;stroke-linecap:round;vector-effect:non-scaling-stroke}
.wfx-rp__back{stroke:#9fd9bb;stroke-width:2.5;stroke-dasharray:3 9;vector-effect:non-scaling-stroke}
.wfx-ms{position:absolute;translate:-50% -50%;display:grid;place-items:center;width:44px;height:44px;z-index:2}
.wfx-ms .wfx-g{--gs:30px;box-shadow:0 0 0 5px #072d2b}
.wfx-ms em{position:absolute;font:600 14px/1.25 var(--gft-font-mono);font-style:normal;letter-spacing:.04em;color:#e8f0ec;background:#072d2be6;padding:5px 8px;white-space:nowrap}
.wfx-ms em b{color:#f0c27a}
.wfx-ms--start em{top:100%;left:0}
.wfx-ms--g0 em,.wfx-ms--g1 em{bottom:100%;left:50%;translate:-50% -4px}
.wfx-ms--g2 em{bottom:100%;left:50%;translate:-50% -2px}
.wfx-ms--end em{top:100%;right:0}
.wfx-rp[data-gate='0'] .wfx-ms--g0::after,.wfx-rp[data-gate='1'] .wfx-ms--g1::after,.wfx-rp[data-gate='2'] .wfx-ms--g2::after{content:'';position:absolute;inset:-4px;border:2px solid #f0c27a;border-radius:50%}
:root[data-m-go] .wfx-rp__band[data-m-on] .wfx-ms--gate::after{animation-name:wfx-node;animation-duration:2.2s;animation-timing-function:ease-out;animation-iteration-count:infinite;animation-direction:normal}
@keyframes wfx-node{from{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(1.8)}}
.wfx-rp[data-gate='0'] .wfx-ms--g0 em,.wfx-rp[data-gate='1'] .wfx-ms--g1 em,.wfx-rp[data-gate='2'] .wfx-ms--g2 em{color:#072d2b;background:#f0c27a}
.wfx-rp[data-gate='0'] .wfx-ms--g0 em b,.wfx-rp[data-gate='1'] .wfx-ms--g1 em b,.wfx-rp[data-gate='2'] .wfx-ms--g2 em b{color:#072d2b}
.wfx-rp__bead{position:absolute;left:-12px;top:-12px;width:24px;height:24px;z-index:3;opacity:0;pointer-events:none}
.wfx-rp__bead .wfx-g{--gs:24px;box-shadow:0 0 0 4px #072d2b}
.wfx-rp__copy{position:absolute;left:3%;top:5%;width:min(54%,760px);z-index:2}
.wfx-rp__copy h2{font-size:clamp(2rem,2.8vw,3rem);max-width:22ch}
.wfx-rp__copy .wfx-head__lede{font-size:17px;margin-top:10px;max-width:60ch}
.wfx-rp__para{margin:12px 0 0;font-size:17px;line-height:1.55;color:#e8f0ec;max-width:62ch}
.wfx-rp__under{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:18px 56px;margin-top:22px;align-items:start}
.wfx-rp__cap{grid-column:1/-1;margin:0;font:14px/1.55 var(--gft-font-mono);color:#e8f0ec}
.wfx-rp__gate{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center}
.wfx-rp__num b{font:800 44px/1 var(--gft-font-display);letter-spacing:-.04em;color:#f0c27a;font-variant-numeric:tabular-nums}
.wfx-rp__num small{font-size:18px;color:#e8f0ec}
.wfx-rp__set{margin:0;padding:0;border:0;min-width:0}
.wfx-rp__set legend{padding:0;margin-bottom:6px}
.wfx-rp__stops{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.wfx-rp__stops label{position:relative;cursor:pointer}
.wfx-rp__stops input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.wfx-rp__stops span{display:flex;align-items:center;justify-content:center;min-height:44px;padding:6px 8px;border:1px solid #9fd9bb66;font:650 15px/1.15 var(--gft-font-display);color:#e8f0ec;text-align:center}
.wfx-rp__stops label:has(input:checked) span{background:#9fd9bb;color:#072d2b}
.wfx-rp__stops label:has(input:focus-visible) span{outline:3px solid #f0c27a;outline-offset:3px}
.wfx-rp__ro{grid-row:2/4;grid-column:2;padding:16px 20px;background:#0b3a37;border-left:3px solid #c98a2b}
.wfx-rp__v h3{font-size:22px;color:#fff}
.wfx-rp__read{margin:8px 0 0;font-size:17px;line-height:1.5;color:#f0c27a}
.wfx-rp__text{margin:8px 0 0;font-size:17px;line-height:1.55;color:#e8f0ec}
.wfx-rp__more{display:grid;gap:10px;justify-items:start}
.wfx-rp__det summary{display:inline-flex;align-items:center;min-height:44px;font:600 14px/1 var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#9fd9bb;cursor:pointer}
.wfx-rp__det p{margin:6px 0 0;font-size:17px;line-height:1.55;color:#e8f0ec;max-width:60ch}
.wfx-rp__more .gft-text-link{font-size:15px;color:#f6f4ef;min-height:44px;display:inline-flex;align-items:center}
/* entrance unspool: the ramp unspools by its stroke, the glyphs drop onto their points, the return path dashes back */
:root[data-m-go][data-wfx-js] .wfx-sec--ramp:not([data-wfx-in]) .wfx-rp__drawn{clip-path:inset(0 100% 0 0)}
:root[data-m-go][data-wfx-js] .wfx-sec--ramp:not([data-wfx-in]) .wfx-rp__backw{clip-path:inset(0 0 0 100%)}
:root[data-m-go][data-wfx-js] .wfx-sec--ramp:not([data-wfx-in]) .wfx-ms{opacity:0}
:root[data-m-go] .wfx-sec--ramp[data-wfx-in] .wfx-rp__drawn{animation-name:wfx-unspool;animation-duration:460ms;animation-timing-function:var(--gft-ease-in-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes wfx-unspool{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
:root[data-m-go] .wfx-sec--ramp[data-wfx-in] .wfx-ms{animation-name:wfx-msdrop;animation-duration:260ms;animation-delay:calc(380ms + var(--k) * 70ms);animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes wfx-msdrop{from{opacity:0;transform:translateY(-36px)}}
:root[data-m-go] .wfx-sec--ramp[data-wfx-in] .wfx-rp__backw{animation-name:wfx-backdash;animation-duration:260ms;animation-delay:620ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes wfx-backdash{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0 0 0 0)}}
.wfx-rp__gate.wfx-in-p{--wd:300ms}.wfx-rp__ro.wfx-in-p{--wd:380ms}

/* ---------- #9 closing: the matrix folds into the mark (night, into the footer) ---------- */
.wfx-sec--close{min-height:100svh;display:flex;align-items:center;padding-block:40px;overflow:clip}
.wfx-cl{display:grid;grid-template-columns:minmax(0,46fr) minmax(0,54fr);gap:40px;align-items:center;width:min(1344px,calc(100% - 96px))}
.wfx-cl__in{position:absolute;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}
.wfx-cl .wfx-head h2{font-size:clamp(2rem,2.8vw,3rem)}
.wfx-cl .wfx-head__lede{font-size:17px}
.wfx-cl__grid{display:grid;grid-template-columns:100px repeat(6,minmax(0,56px));grid-template-rows:30px repeat(5,56px);gap:4px;margin-top:20px}
.wfx-cl__col{align-self:center;justify-self:center;font:600 13px/1 var(--gft-font-mono);letter-spacing:.04em;text-transform:uppercase;color:#e8f0ec}
.wfx-cl__row{align-self:center;font:600 14px/1 var(--gft-font-mono);color:#e8f0ec}
.wfx-cl__cell{display:grid;place-items:center;background:#0b3a37;border:1px solid #9fd9bb26}
.wfx-cl__cell .wfx-g{--gs:22px}
.wfx-cl__cell--open{cursor:pointer;border-color:#f0c27a80}
.wfx-cl__cell--open .wfx-g{--gl:#f0c27a}
.wfx-cl[data-sel='0'] .wfx-cl__cell--open[data-i='0'],.wfx-cl[data-sel='1'] .wfx-cl__cell--open[data-i='1'],.wfx-cl[data-sel='2'] .wfx-cl__cell--open[data-i='2'],.wfx-cl[data-sel='3'] .wfx-cl__cell--open[data-i='3'],.wfx-cl[data-sel='4'] .wfx-cl__cell--open[data-i='4'],.wfx-cl[data-sel='5'] .wfx-cl__cell--open[data-i='5']{outline:3px solid #f0c27a;outline-offset:2px;background:#c98a2b33}
.wfx-cl:has(.wfx-cl__in:focus-visible) .wfx-cl__grid{outline:2px dashed #f0c27a;outline-offset:6px}
.wfx-cl__card{margin-top:18px;padding:16px 20px;background:#0b3a37;border-left:3px solid #c98a2b}
.wfx-cl__cellname{margin:6px 0 0;font:600 15px/1.4 var(--gft-font-mono);color:#f0c27a}
.wfx-cl__v h3{margin-top:6px;font-size:28px;line-height:1.1;letter-spacing:-.03em;color:#fff}
.wfx-cl__text{margin:8px 0 12px;font-size:17px;line-height:1.5;color:#e8f0ec}
.wfx-cl__reserved{font-size:15px;color:#e8f0ec}
.wfx-cl__right{display:grid;justify-items:center;gap:8px}
.wfx-hex{position:relative;width:min(100%,72vh,700px);aspect-ratio:1;container-type:size}
.wfx-hex__edge{position:absolute;height:2px;width:calc(var(--len) * 1%);margin-top:-1px;background:#9fd9bb;transform-origin:0 50%;transform:rotate(var(--a))}
.wfx-hex__inner{position:absolute;left:50%;top:50%;width:46%;height:46%;translate:-50% -50%;clip-path:polygon(50% 0,93.3% 25%,93.3% 75%,50% 100%,6.7% 75%,6.7% 25%);background:radial-gradient(circle,#0e4d4a 0%,#072d2b00 70%)}
.wfx-hex__core{position:absolute;left:50%;top:50%;width:34px;height:34px;margin:-17px 0 0 -17px}
.wfx-hex__core i{display:block;width:100%;height:100%;background:#c98a2b;rotate:45deg}
.wfx-hex__thread{position:absolute;left:50%;top:50%;width:40cqw;height:2px;margin-top:-1px;transform-origin:0 50%;transform:rotate(var(--ta,30deg));overflow:hidden;transition:transform 600ms var(--gft-ease-in-out);pointer-events:none}
.wfx-hex__thread i{display:block;width:200%;height:100%;background:repeating-linear-gradient(90deg,#f0c27a 0 8px,transparent 8px 16px)}
.wfx-hex__corner{position:absolute;width:0;height:0}
.wfx-hex__fly{position:absolute;left:-24px;top:-24px;width:48px;height:48px}
.wfx-hex__pt{display:grid;place-items:center;width:48px;height:48px;background:#072d2b;border:2px solid #9fd9bb59;rotate:45deg;cursor:pointer}
.wfx-hex__pt .wfx-g{--gs:20px;--gl:#f0c27a;rotate:-45deg}
.wfx-hex__lab{position:absolute;display:grid;gap:3px;width:max-content;max-width:min(22cqw,190px);font-size:14px;line-height:1.3;color:#e8f0ec;text-align:center}
.wfx-hex__lab b{font:600 14px/1 var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:#9fd9bb}
.wfx-hex__lab a{color:#f6f4ef;text-underline-offset:3px}
.wfx-hex__corner--0 .wfx-hex__lab{left:0;top:40px;translate:-50% 0}
.wfx-hex__corner--1 .wfx-hex__lab{right:28px;top:22px;text-align:right}
.wfx-hex__corner--2 .wfx-hex__lab{right:28px;bottom:22px;text-align:right}
.wfx-hex__corner--3 .wfx-hex__lab{left:0;bottom:40px;translate:-50% 0}
.wfx-hex__corner--4 .wfx-hex__lab{left:28px;bottom:22px;text-align:left}
.wfx-hex__corner--5 .wfx-hex__lab{left:28px;top:22px;text-align:left}
.wfx-cl[data-sel='0'] .wfx-hex__corner[data-i='0'] .wfx-hex__pt,.wfx-cl[data-sel='1'] .wfx-hex__corner[data-i='1'] .wfx-hex__pt,.wfx-cl[data-sel='2'] .wfx-hex__corner[data-i='2'] .wfx-hex__pt,.wfx-cl[data-sel='3'] .wfx-hex__corner[data-i='3'] .wfx-hex__pt,.wfx-cl[data-sel='4'] .wfx-hex__corner[data-i='4'] .wfx-hex__pt,.wfx-cl[data-sel='5'] .wfx-hex__corner[data-i='5'] .wfx-hex__pt{background:#c98a2b;border-color:#f0c27a}
.wfx-cl[data-sel='0'] .wfx-hex__corner[data-i='0'] .wfx-g,.wfx-cl[data-sel='1'] .wfx-hex__corner[data-i='1'] .wfx-g,.wfx-cl[data-sel='2'] .wfx-hex__corner[data-i='2'] .wfx-g,.wfx-cl[data-sel='3'] .wfx-hex__corner[data-i='3'] .wfx-g,.wfx-cl[data-sel='4'] .wfx-hex__corner[data-i='4'] .wfx-g,.wfx-cl[data-sel='5'] .wfx-hex__corner[data-i='5'] .wfx-g{--gl:#072d2b}
.wfx-cl:has(.wfx-cl__in:focus-visible) .wfx-hex__pt{outline:2px solid #f0c27a33}
.wfx-cl__coda{margin:0;justify-self:end;max-width:44%;font:italic 400 28px/1.25 var(--gft-font-serif);color:#f6f4ef;text-align:right}
.wfx-cl__drop{position:absolute;left:var(--fx,73%);top:var(--ft,90%);bottom:0;width:2px;overflow:hidden;pointer-events:none}
.wfx-cl__drop i{display:block;width:100%;height:200%;background:repeating-linear-gradient(#f0c27a 0 8px,transparent 8px 16px)}
:root[data-m-go] .wfx-hex[data-m-on] .wfx-hex__thread i{animation-name:wfx-run;animation-duration:1.6s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal}
@keyframes wfx-run{to{transform:translateX(-16px)}}
:root[data-m-go] .wfx-sec--close[data-wfx-in] .wfx-cl__drop i{animation-name:wfx-fall;animation-duration:1.6s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal}
@keyframes wfx-fall{from{transform:translateY(-16px)}to{transform:translateY(0)}}
:root[data-m-go] .wfx-cl__grid[data-m-on] .wfx-cl__cell--open .wfx-g{animation-name:wfx-cellpulse;animation-duration:6s;animation-delay:calc(var(--k) * 400ms);animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:normal}
@keyframes wfx-cellpulse{0%,12%,100%{transform:scale(1)}6%{transform:scale(1.3)}}
/* entrance knot: edges draw corner to corner from the top, the six open cells fly to their corners, the chosen corner lights */
:root[data-m-go][data-wfx-js] .wfx-sec--close:not([data-wfx-in]) :is(.wfx-hex__edge,.wfx-hex__fly,.wfx-hex__lab,.wfx-hex__core,.wfx-cl__coda){opacity:0}
:root[data-m-go] .wfx-sec--close[data-wfx-in] .wfx-hex__edge{animation-name:wfx-edge;animation-duration:160ms;animation-delay:calc(var(--k) * 55ms);animation-timing-function:linear;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes wfx-edge{from{transform:rotate(var(--a)) scaleX(0)}to{transform:rotate(var(--a)) scaleX(1)}}
:root[data-m-go] .wfx-sec--close[data-wfx-in] .wfx-hex__fly{animation-name:wfx-fly;animation-duration:340ms;animation-delay:calc(380ms + var(--k) * 45ms);animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes wfx-fly{from{opacity:0;transform:translate(var(--fdx,0px),var(--fdy,-30px)) scale(.6)}}
:root[data-m-go] .wfx-sec--close[data-wfx-in] :is(.wfx-hex__lab,.wfx-cl__coda){animation-name:wfx-fade;animation-duration:360ms;animation-delay:560ms;animation-timing-function:linear;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .wfx-sec--close[data-wfx-in] .wfx-hex__core{animation-name:wfx-set;animation-duration:300ms;animation-delay:300ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
.wfx-cl__card.wfx-in-p{--wd:420ms}

/* ---------- reduced motion and Calm: every block shows its still state, nothing transitions ---------- */
:root:not([data-m-go]) .wfx-page :is(*,*::before,*::after){transition-duration:0s;transition-delay:0s}
@media (prefers-reduced-motion: reduce){
 .wfx-page .wfx-cx i,.wfx-sg__move,.wfx-lb__flood,.wfx-u--ot::after,.wfx-ct__cam,.wfx-ct__zoom{animation-name:none;animation-timeline:auto}
}

/* ---------- tablet and phone ---------- */
@media (max-width:1100px){
 .wfx-bench{grid-template-columns:1fr;grid-template-areas:'head' 'cap' 'stage' 'panel'}
 .wfx-lb{grid-template-columns:minmax(0,1fr);grid-template-areas:'head' 'rail' 'stage'}
 .wfx-ck{grid-template-columns:1fr}
 .wfx-cl{grid-template-columns:1fr}
 .wfx-cl__right{order:-1}
}
@media (max-width:760px){
 .wfx-wrap,.wfx-cl{width:calc(100% - 32px)}
 .wfx-head h2{font-size:clamp(1.9rem,8.4vw,2.5rem)}
 .wfx-index{display:none}
 .wfx-cx--loupe,.wfx-cx--rim,.wfx-cx--bracket,.wfx-cx--drop2,.wfx-cx--drop{display:none}
 /* #1 splash: headline in the top band, the grid as a 6 x 5 band below, bleeding off the right edge by one column */
 [data-splash='caps-b-workforce']{min-height:calc(100svh - 76px)}
 [data-splash='caps-b-workforce'] .gft-splash__content{padding-top:32px;padding-bottom:calc(48svh + 12px)}
 [data-splash='caps-b-workforce'] h1{width:auto;font-size:clamp(2.5rem,10.6vw,3.2rem)}
 [data-splash='caps-b-workforce'] .gft-splash__lede{font-size:17px;margin-top:16px}
 [data-splash='caps-b-workforce'] .gft-splash__structure{inset:auto 0 var(--splash-strip-h,70px) 0;height:48svh}
 [data-splash='caps-b-workforce'] .gft-splash__structure::after{background:none}
 [data-splash='caps-b-workforce'] .gft-splash__data{display:none}
 [data-splash='caps-b-workforce'] .gft-splash__caption{font-size:13px}
 .wfx-sg{--sgs:34px}
 .wfx-sg__grid{right:-17%;grid-template-columns:repeat(6,minmax(0,1fr)) 64px;grid-template-rows:32px repeat(5,minmax(0,1fr))}
 .wfx-sg__cell.is-quiet{opacity:1}
 .wfx-sg__col,.wfx-sg__row{font-size:13px;letter-spacing:.04em}
 .wfx-sg__move{inset:100px 0 0 0}
 .wfx-sg__band{top:0;bottom:auto;height:96px;justify-content:flex-start;padding:0 16px}
 .wfx-sg__read{display:none}
 .wfx-sg__chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;width:100%}
 .wfx-sg__chip{min-height:44px;padding:4px 8px;gap:6px;font-size:13px;letter-spacing:0}
 .wfx-sg__chip .wfx-g{--gs:14px}
 .wfx-sg__chip b{font-size:15px}
 /* #2 bench */
 .wfx-sec--bench{padding-top:48px}
 .wfx-bench__grid{grid-template-columns:72px repeat(6,minmax(0,1fr));grid-template-rows:34px repeat(5,56px) auto}
 .wfx-cell{width:48px;height:48px}
 .wfx-cell .wfx-g{--gs:22px}
 .wfx-bench__full{display:none}.wfx-bench__abbr{display:inline}
 .wfx-bench__col{font-size:13px;letter-spacing:.04em}
 .wfx-bench__row{font-size:13px}
 .wfx-bench__pips{display:none}
 .wfx-bench__covk{display:none}
 .wfx-cover__slots{display:none}
 .wfx-cover__n{font-size:13px}
 .wfx-seg__row{grid-template-columns:repeat(2,minmax(0,1fr))}
 .wfx-bench__big{font-size:44px}
 /* #3 contract: pinned band 44svh with the front sheet, step cards scroll beneath */
 .wfx-ct{display:grid}
 .wfx-ct__frame{display:contents}
 .wfx-ct__band{grid-row:1;display:block;padding:56px 16px 18px;min-height:0}
 .wfx-ct__band .wfx-head__lede{margin-top:12px}
 .wfx-ct__stage{grid-row:2;position:sticky;top:0;height:46svh;z-index:2;margin:0;background:#f6f4ef;border-bottom:1px solid #0e4d4a33;overflow:clip;perspective:900px}
 .wfx-ct__stack{width:calc(100vw - 32px);height:calc(46svh - 76px);max-height:none}
 .wfx-sheet__body{grid-template-columns:1fr}
 .wfx-sheet__margin{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .wfx-mini{grid-template-columns:78px repeat(4,minmax(0,1fr));grid-template-rows:26px repeat(3,minmax(0,1fr));padding:8px 8px 30px}
 .wfx-mini__col{font-size:13px;letter-spacing:0}
 .wfx-mini__row{font-size:13px}
 .wfx-mini__cell{margin:3px}
 .wfx-mini__cell .wfx-g{--gs:22px}
 .wfx-mark em{font-size:13px;padding:2px 5px}
 .wfx-sheet{--d:0}
 .wfx-sheet__head{padding:6px 10px}
 .wfx-ct[data-step='2'] .wfx-sheet[data-k='0'],.wfx-ct[data-step='2'] .wfx-sheet[data-k='1'],.wfx-ct[data-step='2'] .wfx-sheet[data-k='3']{transform:translate3d(0,-10px,-40px) scale(.96)}
 .wfx-ct[data-step='2'] .wfx-sheet[data-k='2']{transform:none}
 .wfx-sheet__tag{display:none}
 .wfx-ct__zgrid{grid-template-columns:56px repeat(6,40px) 1px;grid-template-rows:24px repeat(5,40px)}
 .wfx-ct__zcell{width:34px;height:34px}
 .wfx-ct__zcell .wfx-g{--gs:16px}
 .wfx-ct__zc{font-size:13px;letter-spacing:0}
 .wfx-ct__zc{writing-mode:vertical-rl;rotate:180deg;font-size:13px}
 .wfx-ct__znote{font-size:14px;max-width:none}
 .wfx-ct__rail{grid-row:3;position:sticky;top:calc(46svh - 52px);margin-top:-52px;height:52px;z-index:3;justify-content:flex-end;padding:4px 12px;pointer-events:none}
 .wfx-ct__rail button{pointer-events:auto;padding:6px 10px;font-size:13px;background:#f6f4ef}
 .wfx-ct__rail button{font-size:0;gap:0}
 .wfx-ct__rail button b{font-size:13px}
 .wfx-ct__track{grid-row:4;margin-top:0;pointer-events:auto}
 .wfx-ct .wfx-step,.wfx-ct .wfx-step[data-k='3'],.wfx-ct .wfx-step[data-k='4'],.wfx-it .wfx-step,.wfx-it .wfx-step[data-k='4']{height:auto;min-height:58svh;padding:24px 16px}
 .wfx-ct .wfx-step__card{display:block;position:static;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal;padding:18px;background:#fffdf8;border:1px solid #0e4d4a33;border-left:3px solid #c98a2b}
 .wfx-step__t{margin:6px 0 0;font:800 22px/1.15 var(--gft-font-display);letter-spacing:-.02em}
 .wfx-step__card p:not(.wfx-k):not(.wfx-step__t){margin:8px 0 0;font-size:17px;line-height:1.55}
 /* #4 loom: three columns at a time, threads still bleeding off both edges */
 .wfx-lm__top,.wfx-lm__read{grid-template-columns:1fr}
 .wfx-reed__stops{gap:4px}
 .wfx-reed__stops button{flex-direction:column;gap:2px;min-height:48px;padding:4px 2px;font-size:13px;letter-spacing:0}
 .wfx-lm__scroll{scroll-snap-type:x mandatory}
 .wfx-lm__inner{width:200vw;--x0:12%;--px:15.2%}
 .wfx-lm__col{scroll-snap-align:center}
 .wfx-lm__row{left:8px}
 .wfx-lm__tag{font-size:13px}
 /* #5 labour */
 .wfx-lb__figv b{font-size:40px}
 .wfx-lb__pair--hours{grid-template-columns:minmax(0,1fr)}
 .wfx-lb__riseframe{grid-area:4/4/5/6}
 .wfx-lb__ot{right:auto;left:0;top:calc(100% + 6px)}
 .wfx-lb__rise{top:calc(100% + 6px);left:auto;right:0}
 .wfx-lb__pair--hours{gap:44px}
 .wfx-lb__row::before{left:-8px}
 .wfx-lb__cells--xaf,.wfx-lb__cells--usd{grid-template-columns:repeat(13,minmax(0,1fr))}
 .wfx-lb__cells--hours{grid-template-columns:repeat(12,minmax(0,1fr))}
 .wfx-lb__rail{grid-template-columns:1fr}
 .wfx-lb__src{padding-left:18px}
 /* #6 interlude: pinned band 42svh with the curve, plates as cards beneath */
 .wfx-it{display:grid}
 .wfx-it__frame{display:contents}
 .wfx-it__band{grid-row:1;display:block;padding:56px 16px 16px}
 .wfx-it__q{font-size:26px}
 .wfx-it__morep{position:static;width:auto;margin-top:8px}
 .wfx-it__box{grid-row:2;position:sticky;top:0;height:42svh;z-index:2;background:#072d2b;border-bottom:1px solid #9fd9bb33}
 .wfx-it__plate,.wfx-it__cause{display:none}
 .wfx-it__dlabel{font-size:13px;padding:3px 6px;top:calc(var(--y) * 1% + 40px);translate:-25% 0}
 .wfx-it__track{grid-row:3;margin-top:0;pointer-events:auto}
 .wfx-it .wfx-step__card{position:static;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal;padding:18px;background:#0b3a37;border-left:3px solid #c98a2b}
 .wfx-it .wfx-step__card p{color:#e8f0ec}
 .wfx-it .wfx-step__t{color:#fff}
 .wfx-it__rail{grid-row:4;grid-template-columns:1fr;padding:16px}
 .wfx-it__stops{flex-wrap:wrap}
 .wfx-it__stops button{font-size:13px;padding:4px 8px}
 /* #7 clock */
 .wfx-ck__box{width:100%;aspect-ratio:auto;display:grid;gap:6px}
 .wfx-ck__dial{position:relative;inset:auto;width:100%;aspect-ratio:1}
 .wfx-ck__metrics{display:grid;gap:6px}
 .wfx-ck__m{position:static;max-width:none}
 .wfx-ck__col{font-size:13px;letter-spacing:0;padding:2px 3px}
 .wfx-ck__core strong{font-size:20px}
 .wfx-ck__q{font-size:13px;padding:4px 8px}
 /* #8 ramp */
 .wfx-rp__band{width:calc(100vw - 32px);height:auto;display:flex;flex-direction:column}
 .wfx-rp__copy{position:static;width:auto;padding:20px 16px 0;order:-1}
 .wfx-rp__draw{position:relative;inset:auto;height:44svh;margin:12px 0 40px}
 .wfx-ms em{font-size:13px;padding:3px 5px}
 .wfx-ms--g2 em{bottom:auto;top:100%}
 .wfx-rp__under{grid-template-columns:1fr}
 .wfx-rp__ro{grid-row:auto;grid-column:1}
 .wfx-rp__stops span{font-size:14px}
 /* #9 closing */
 .wfx-sec--close{display:block;min-height:0;padding-block:56px 72px}
 .wfx-hex{width:88vw}
 .wfx-hex__lab{max-width:28cqw}
 .wfx-hex__lab a,.wfx-hex__lab>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .wfx-cl__grid{grid-template-columns:64px repeat(6,minmax(0,46px));grid-template-rows:28px repeat(5,46px)}
 .wfx-cl__col{font-size:13px;letter-spacing:0;writing-mode:vertical-rl;rotate:180deg}
 .wfx-cl__grid{grid-template-rows:72px repeat(5,46px)}
 .wfx-cl__row{font-size:13px}
 .wfx-cl__coda{font-size:22px}
 .wfx-cl__drop{left:6px}
}
