/* The hanging basket cloth, end to end (control/choreo/tools__xaf-exposure.md). Prefixes: xaf- (page), xc- (cloth),
   xr- (reading bars), xi- (invoice weave). Pre-states live only under :root[data-m-go] and only on sections the page
   script armed ([data-xarm]); motion uses transform, opacity, clip-path and filter. */
body[data-page=xaf-exposure]{--xaf-night:#072d2b;--xaf-forest:#0e4d4a;--xaf-deep:#05302d;--xaf-paper:#f6f4ef;--xaf-ink:#163a36;--xaf-e:#6bb68f;--xaf-u:#c98a2b;--xaf-x:#c9d8ee;--xaf-hi:#e9b45e;--xaf-text:#f2f8f5;--xaf-lab:#d4efe5;--xaf-line:#6bb68f55}
body[data-page=xaf-exposure] main{overflow-x:clip}
body[data-page=xaf-exposure] main .gft-eyebrow{font-size:14px;letter-spacing:.11em}
.xaf-kicker{font:600 14px/1.5 var(--gft-font-mono);letter-spacing:.09em;text-transform:uppercase;margin:0 0 10px}
.xaf-note{font:14px/1.6 var(--gft-font-mono);color:inherit;opacity:.95}
.xaf-mono{font:15px var(--gft-font-mono)}
[data-page=xaf-exposure] main :is(button,select,input,a,summary,[tabindex]):focus-visible{outline:3px solid var(--xaf-hi);outline-offset:3px}
[data-page=xaf-exposure] main button{min-height:44px;cursor:pointer}
[data-page=xaf-exposure] main [hidden]{display:none!important}

/* ---------- the cloth ---------- */
.xc{display:block;overflow:visible;height:auto;max-width:100%}
.xc-c{transform-box:fill-box;transform-origin:50% 0}
.xc-e{fill:var(--xaf-e)}.xc-u{fill:var(--xaf-u)}.xc-x{fill:var(--xaf-x)}
.xc-f{fill:var(--xaf-hi);stroke:#fbe2b0;stroke-width:1.2}
.xc-v{fill:none;stroke:var(--xaf-hi);stroke-width:1.6;stroke-dasharray:3 3}
.xc-o{fill:none;stroke:#cfe3d7;stroke-opacity:.18;stroke-dasharray:2 4}
.xc--outline .xc-c{fill:none;stroke-width:1.6}
.xc--outline .xc-e{stroke:var(--xaf-e)}.xc--outline .xc-u{stroke:var(--xaf-u)}.xc--outline .xc-x{stroke:var(--xaf-x)}.xc--outline .xc-f{stroke:var(--xaf-hi)}
.xc-rod line{stroke:#dbe5ec;stroke-width:5;stroke-linecap:round}
.xc-rv{fill:#0b3a37;stroke:#8fa5b4;stroke-width:1.5}.xc-rv.is-on{fill:#eef3f6;stroke:var(--xaf-e);stroke-width:2}

/* ---------- 1 · splash: the braid weaves the cloth under the peg rod ---------- */
[data-splash=xaf-exposure]{justify-content:flex-start}
[data-splash=xaf-exposure] .gft-splash__structure{inset:0}
[data-splash=xaf-exposure] .gft-splash__structure::after{background:linear-gradient(90deg,#072d2bf7 0%,#072d2bd9 30%,#072d2b80 44%,#072d2b00 53%)}
[data-splash=xaf-exposure] .gft-splash__content{pointer-events:none}
[data-splash=xaf-exposure] .gft-splash__content :is(a,button){pointer-events:auto}
[data-splash=xaf-exposure] h1{font-size:clamp(4rem,min(6.6vw,10svh),7.2rem);max-width:none;white-space:nowrap}
[data-splash=xaf-exposure] .gft-splash__lede{font-size:18px;color:#eef5f0;max-width:36ch;text-shadow:0 1px 14px #072d2b}
[data-splash=xaf-exposure] :is(.gft-splash__data,.gft-splash__caption,.gft-splash__position){font-size:13px;color:#cfe3d7}
[data-splash=xaf-exposure] .gft-splash__data{display:none}
[data-splash=xaf-exposure] .gft-splash__cue{font-size:14px}
.xaf-sp{position:absolute;inset:0}
.xaf-sp__grid{position:absolute;inset:0;width:100%;height:100%}
.xaf-sp__grid g{overflow-anchor:none}
.xaf-sp__stage{position:absolute;left:52%;right:40px;top:30px;bottom:86px;display:flex;flex-direction:column;align-items:flex-start;overflow-anchor:none}
.xaf-sp__drop{position:relative}
.xaf-sp__stage{transform-origin:30% 0}
.xaf-sp__rodtag{font:600 15px/1.4 var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#e4ecf2;margin:0 0 4px 14px}
.xaf-sp__loom{position:relative;width:364px;height:468px}
.xaf-sp__braid{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}
.xaf-sp__halo{fill:none;stroke:#072d2b;stroke-opacity:.8}
.xaf-sp__thread{fill:none;stroke-linecap:round}
.xaf-sp__cloth{position:relative}
.xaf-sp__unit{position:absolute;left:384px;top:28px;width:250px;font:13px/1.55 var(--gft-font-mono);letter-spacing:.04em;color:#dce9e1}
.xaf-sp__cols{position:absolute;left:384px;top:118px;display:grid;gap:10px;font:600 13px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase}
.xaf-sp__cols span{display:flex;align-items:center;gap:10px;color:#e4ede7}
.xaf-sp__cols span::before{content:'';width:22px;height:12px;background:var(--xaf-e)}
.xaf-sp__cols span:nth-child(2)::before{background:var(--xaf-u)}.xaf-sp__cols span:nth-child(3)::before{background:var(--xaf-x)}
.xaf-sp__move{position:absolute;left:384px;top:350px;display:grid;gap:2px;margin:0;white-space:nowrap}
.xaf-sp__move output{font:800 28px/1.1 var(--gft-font-display);letter-spacing:-.03em;color:var(--xaf-hi)}
.xaf-sp__move span{font:15px var(--gft-font-mono);color:#f3d7a4}
.xaf-sp__move::before{content:'';position:absolute;left:-28px;top:16px;width:20px;height:2px;background:var(--xaf-hi)}
.xaf-sp__total{display:flex;align-items:baseline;gap:14px;margin:10px 0 0 14px}
.xaf-sp__total output{font:850 64px/1 var(--gft-font-display);letter-spacing:-.05em;color:#f6f4ef}
.xaf-sp__total span{font:600 20px var(--gft-font-mono);color:#cfe3d7}
.xaf-sp__delta{font:17px var(--gft-font-mono);color:#dfece4;margin:6px 0 0 14px}
.xaf-sp__ctl{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:auto;padding:0 0 0 14px;pointer-events:auto}
.xaf-sp__chips{display:flex;gap:8px}
.xaf-sp__chips button{min-width:64px;padding:8px 12px;background:#072d2bcc;border:1px solid #6bb68fb0;color:#f6f4ef;font:600 14px var(--gft-font-mono);transition:background-color 240ms,color 240ms}
.xaf-sp__chips button[aria-pressed=true]{background:var(--xaf-u);border-color:var(--xaf-u);color:#1c1405}
.xaf-sp__scrub{display:grid;gap:0;min-width:240px;flex:1;font:600 13px var(--gft-font-mono);letter-spacing:.07em;text-transform:uppercase;color:#e4ede7}
.xaf-sp__scrub input{accent-color:var(--xaf-u);width:100%}
.xaf-sp__note{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.xaf-sp__acts{display:grid;gap:18px;justify-items:start}
.xaf-w{display:inline-block;vertical-align:top;overflow:clip;overflow-clip-margin:.2em;padding:.08em .1em .18em;margin:-.08em -.1em -.18em}
.xaf-wi{display:inline-block}
:root[data-m-go] .xaf-wi{animation-name:xaf-wdrop;animation-duration:480ms;animation-delay:calc(120ms + var(--i) * 50ms);animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes xaf-wdrop{from{transform:translateY(-112%)}to{transform:none}}
/* weave-in: the rod and threads draw (0 to 300 ms), cells weave row by row (300 to 800), the fringe drops (650 to 900) */
:root[data-m-go] .xaf-sp__cloth .xc-rod{animation-name:xaf-rod;animation-duration:300ms;animation-timing-function:cubic-bezier(.4,0,.6,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .xaf-sp__braid{animation-name:xaf-draw;animation-duration:420ms;animation-timing-function:linear;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .xaf-sp__cloth .xc-body .xc-c{animation-name:xaf-weave;animation-duration:300ms;animation-delay:calc(300ms + var(--r) * 18ms + var(--k) * 6ms);animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .xaf-sp__cloth .xc-fr{animation-name:xaf-drop;animation-duration:260ms;animation-delay:650ms;animation-timing-function:cubic-bezier(.34,1.4,.64,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] :is(.xaf-sp__total output,.xaf-sp__move output,.xaf-sp__delta){animation-name:xaf-blank;animation-duration:650ms;animation-timing-function:step-end;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .xaf-sp__unit,:root[data-m-go] .xaf-sp__cols{animation-name:xaf-fade;animation-duration:400ms;animation-delay:420ms;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes xaf-rod{from{clip-path:inset(-20px 100% -20px -20px)}to{clip-path:inset(-20px -20px -20px -20px)}}
@keyframes xaf-draw{from{clip-path:inset(-200px 100% -200px -1400px)}to{clip-path:inset(-200px -10px -200px -1400px)}}
@keyframes xaf-weave{from{opacity:0;transform:scaleY(.2)}to{opacity:1;transform:none}}
@keyframes xaf-drop{from{opacity:0;transform:translateY(-34px)}to{opacity:1;transform:none}}
@keyframes xaf-blank{from{opacity:0}to{opacity:1}}
@keyframes xaf-fade{from{opacity:0}to{opacity:1}}
/* alive: the free fringe sways on the dollar warp; the riveted columns stay still */
:root[data-m-go] .xaf-sp[data-on] .xaf-sp__cloth .xc-fr rect.xc-f{animation-name:xaf-sway;animation-duration:2.6s;animation-delay:1s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes xaf-sway{from{transform:translateX(-2px)}to{transform:translateX(2px)}}
/* hand-over: the cloth drops onto the bench as the splash leaves */
@media(min-width:641px){@supports (animation-timeline:view()){:root[data-m-go] .xaf-sp__stage{animation-name:xaf-sp-drop;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--gft-splash;animation-range-start:exit 0%;animation-range-end:exit 80%}}}
@keyframes xaf-sp-drop{from{transform:none}to{transform:translateY(40px) scale(.9)}}

/* ---------- shared controls ---------- */
.xaf-seg{display:inline-flex;border:1px solid #6bb68f;min-height:44px}
.xaf-seg label{display:flex;cursor:pointer}
.xaf-seg input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.xaf-seg span{display:flex;align-items:center;padding:8px 16px;font:600 14px var(--gft-font-mono);transition:background-color 220ms,color 220ms}
.xaf-seg input:checked+span{background:var(--xaf-e);color:var(--xaf-night)}
.xaf-seg input:focus-visible+span{outline:3px solid var(--xaf-hi);outline-offset:2px}
.xaf-actions{display:flex;flex-wrap:wrap;gap:8px}
.xaf-actions button{padding:8px 14px;border:1px solid currentColor;background:transparent;font:600 13px var(--gft-font-mono)}
.xaf-actions button:disabled{opacity:.5}
.xaf-primary{background:var(--xaf-e)!important;color:var(--xaf-night)!important;border-color:var(--xaf-e)!important}
.xaf-error{background:#4a1e12;color:#ffd9c9;border-left:3px solid #f0a07a;padding:12px 14px;font-size:15px}

/* ---------- 2 · bench: forest panel over night ---------- */
.xaf-bench{position:relative;background:var(--xaf-night);color:var(--xaf-text);padding:44px 0 56px;background-image:linear-gradient(#b4d4c50c 1px,transparent 1px),linear-gradient(90deg,#b4d4c50c 1px,transparent 1px);background-size:48px 48px}
.xaf-bench__panel{position:relative;width:min(1360px,calc(100% - 80px));margin-inline:auto;background:var(--xaf-forest);border:1px solid #6bb68f45;padding:34px 40px 40px}
.xaf-bench__head{display:grid;gap:10px}
.xaf-bench__head .gft-eyebrow{color:var(--xaf-lab)}
.xaf-bench__head h2{font-size:clamp(28px,2.5vw,38px);max-width:34ch;line-height:1.1;color:#f6f4ef}
.xaf-bench__a{position:relative;display:grid;grid-template-columns:minmax(0,40fr) minmax(0,60fr);gap:52px;margin-top:24px}
.xaf-ctl fieldset{border:0;margin:0;padding:0;min-width:0}
.xaf-ctl>fieldset>legend{font:800 19px/1.3 var(--gft-font-display);letter-spacing:-.02em;margin-bottom:12px;padding:0}
.xaf-preset{display:grid;gap:6px;font-size:15px;margin-bottom:10px}
.xaf-preset select,.xaf-ctl input[type=number],.xaf-pv__row :is(input,select){min-height:44px;background:#072d2b;color:#f6f4ef;border:1px solid #6bb68f;padding:8px 10px;font:15px var(--gft-font-mono);border-radius:0;max-width:100%}
.xaf-field{position:relative;display:grid;gap:2px;padding:4px 0}
.xaf-field label{display:flex;justify-content:space-between;gap:10px;font-size:15px;font-weight:600}
.xaf-field label small{font:13px var(--gft-font-mono);color:var(--xaf-lab);font-weight:400}
.xaf-field__row{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:14px;align-items:center}
.xaf-field__track{position:relative;display:block}
.xaf-range{width:100%;accent-color:var(--xaf-e);display:block}
.xaf-field[data-goes=u] .xaf-range,.xaf-field[data-goes=tag] .xaf-range,.xaf-field[data-goes=f] .xaf-range{accent-color:var(--xaf-u)}
.xaf-field[data-goes=x] .xaf-range{accent-color:var(--xaf-x)}
.xaf-ctl input[aria-invalid=true]{border:2px solid #f0a07a}
.xaf-mode{display:flex;flex-wrap:wrap;gap:6px 18px;border:0;padding:8px 0 0;margin:0}
.xaf-mode legend{font-size:15px;font-weight:600;padding:0;margin-bottom:4px}
.xaf-mode label{display:flex;align-items:center;gap:8px;min-height:44px;font-size:15px}
.xaf-mode input{accent-color:var(--xaf-u);width:20px;height:20px}
.xaf-ctl .xaf-note{margin:4px 0 10px;color:var(--xaf-lab)}
.xaf-ctl .xaf-actions button{color:#eef5f0}
.xaf-status{min-height:1.6em;margin-top:6px;color:var(--xaf-lab)}
.xaf-link{width:100%;min-height:44px;margin-top:6px}
.xaf-bench__stage{position:relative;display:grid;gap:18px;align-content:start;min-width:0}
.xaf-ro{position:relative;z-index:2;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 32px;background:#072d2b;border:1px solid #6bb68f66;border-top:3px solid var(--xaf-e);padding:20px 24px;box-shadow:0 18px 40px #03201e66}
.xaf-ro .xaf-kicker{color:var(--xaf-lab)}
.xaf-ro__total{display:block;font:850 64px/1 var(--gft-font-display);letter-spacing:-.05em;color:#f6f4ef}
.xaf-ro__chg{font:17px var(--gft-font-mono);margin-top:8px;color:#dcebe2}
.xaf-ro__chg output{color:var(--xaf-hi);font-weight:700}
.xaf-ro__mini{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin:0;align-content:center}
.xaf-ro__mini dt{font:13px var(--gft-font-mono);color:var(--xaf-lab)}
.xaf-ro__mini dd{margin:2px 0 0;font:600 16px var(--gft-font-mono);color:#f6f4ef}
.xaf-ro__read{grid-column:1/-1;font-size:16px;line-height:1.5;color:#e6f0ea;max-width:none;border-top:1px solid #6bb68f40;padding-top:10px}
.xaf-ro .xaf-note:empty{display:none}
.xaf-bench__cloth{display:grid;grid-template-columns:auto minmax(0,1fr);gap:28px;align-items:start;margin:0}
.xaf-bench__loom{position:relative}
.xaf-bench__rodtag{font:600 13px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#e2ebf0;margin:0 0 2px 14px}
.xaf-bench__invtag{position:absolute;left:14px;bottom:-30px;font:14px var(--gft-font-mono);color:#f3d7a4;white-space:nowrap}
.xaf-bench__svg{width:auto}
.xaf-cap{font-size:15px;line-height:1.6;color:#dcebe2;max-width:34ch;padding-top:34px}
.xaf-bench__threads{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:1}
.xaf-bench__threads path{fill:none;stroke-width:2;stroke-opacity:.55;transition:stroke-opacity 260ms}
.xaf-bench__threads path.is-hot{stroke-opacity:1;stroke-width:3}
:root[data-m-go] .xaf-bench__threads path.is-hot{animation-name:xaf-glow;animation-duration:1.1s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes xaf-glow{from{opacity:.55}to{opacity:1}}
.xaf-bench [data-hl-on]{outline:2px solid var(--xaf-hi);outline-offset:4px}
/* Screen B: the cloth unrolled into three rows on one XAF scale */
.xaf-bench__b{margin-top:64px;padding-top:40px;border-top:1px solid #6bb68f40}
.xaf-bench__bhead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px}
.xaf-bench__bhead h3{font-size:clamp(26px,2.4vw,36px);color:#f6f4ef}
.xaf-legend{display:flex;gap:22px;font:13px var(--gft-font-mono);color:var(--xaf-lab)}
.xaf-legend span{display:flex;align-items:center;gap:8px}
.xaf-key{display:inline-block;width:22px;height:12px;background:var(--xaf-e)}
.xaf-key--base{background:transparent;border:1.5px solid var(--xaf-e)}
.xaf-key--move{background:repeating-linear-gradient(45deg,var(--xaf-hi) 0 3px,transparent 3px 6px)}
.xaf-rows{display:grid;gap:18px;margin-top:26px}
.xaf-row{display:grid;grid-template-columns:260px minmax(0,1fr);gap:4px 28px;align-items:center;padding:6px 0;cursor:default}
.xaf-row__lab{grid-row:span 2;display:grid;gap:2px}
.xaf-row__lab strong{font:800 17px var(--gft-font-mono);color:var(--lc,#a6dcbd)}
.xaf-row[data-leg="1"]{--lc:#f3c47e}.xaf-row[data-leg="2"]{--lc:#dbe6f5}
.xaf-row__lab output{font:700 22px var(--gft-font-mono);color:#f6f4ef}
.xaf-row__lab output+output{font:500 15px var(--gft-font-mono);color:var(--xaf-lab)}
.xaf-row__track{position:relative;height:38px}
.xaf-row__track span{position:absolute;inset:0;--cw:calc(100% / var(--n));transition:clip-path 620ms cubic-bezier(.16,1,.3,1)}
.xaf-row__base{background:repeating-linear-gradient(90deg,var(--c) 0 1.5px,transparent 1.5px calc(var(--cw) - 4.5px),var(--c) calc(var(--cw) - 4.5px) calc(var(--cw) - 3px),transparent calc(var(--cw) - 3px) var(--cw)),linear-gradient(var(--c),var(--c)) 0 0/100% 1.5px no-repeat,linear-gradient(var(--c),var(--c)) 0 100%/100% 1.5px no-repeat;clip-path:inset(0 calc((1 - var(--b)) * 100%) 0 0)}
.xaf-row__solid{background:repeating-linear-gradient(90deg,var(--c) 0 calc(var(--cw) - 3px),transparent calc(var(--cw) - 3px) var(--cw));clip-path:inset(4px calc((1 - min(var(--b),var(--s))) * 100%) 4px 0)}
.xaf-row__move{background:repeating-linear-gradient(45deg,var(--xaf-hi) 0 3px,transparent 3px 7px);clip-path:inset(0 calc((1 - max(var(--b),var(--s))) * 100%) 0 calc(min(var(--b),var(--s)) * 100%))}
.xaf-row__tag{font:15px var(--gft-font-mono);color:#dcebe2;margin:0}
.xaf-row[data-hot]{background:#ffffff0d}
.xaf-row:focus-visible{outline:3px solid var(--xaf-hi)}
.xaf-rows__scale{display:flex;justify-content:space-between;margin:2px 0 0 288px;font:13px var(--gft-font-mono);color:var(--xaf-lab)}
.xaf-hover{font-size:16px;line-height:1.5;color:#f3d7a4;margin-top:16px;max-width:none}
.xaf-identity{font:600 28px/1.25 var(--gft-font-mono);letter-spacing:-.02em;color:#f6f4ef;margin-top:16px;max-width:none}
.xaf-formula{margin-top:22px;display:grid;grid-template-columns:200px minmax(0,1fr);gap:8px 28px;background:#072d2b;border-left:3px solid var(--xaf-e);padding:20px 24px}
.xaf-formula>*{grid-column:2;max-width:none}
.xaf-formula__k{grid-column:1;grid-row:1/span 3;font:600 13px var(--gft-font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--xaf-lab)}
.xaf-formula__eq code{font:600 18px var(--gft-font-mono);color:var(--xaf-hi)}
.xaf-formula p{font-size:16px;line-height:1.6;color:#e6f0ea}
.xaf-formula__n{font-size:14px!important;color:var(--xaf-lab)!important}
.xaf-bench__lift{display:flex;align-items:center;gap:16px;margin-top:26px;font:13px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--xaf-lab)}
.xaf-lift__svg{width:150px}
@supports (animation-timeline:view()){:root[data-m-go] .xaf-lift__svg{animation-name:xaf-lift;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range-start:exit 10%;animation-range-end:exit 100%}}
@keyframes xaf-lift{from{transform:none}to{transform:translate(160px,140px) scale(1.25)}}
/* reed: control rows comb in with their threads, cells beat in column by column, the total rolls */
:root[data-m-go] .xaf-bench[data-xarm]:not([data-xin]) :is(.xaf-field,.xaf-preset,.xaf-mode){opacity:0;transform:translateX(-34px)}
:root[data-m-go] .xaf-bench[data-xin] :is(.xaf-field,.xaf-preset,.xaf-mode){animation-name:xaf-comb;animation-duration:380ms;animation-delay:calc(var(--i,0) * 40ms);animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .xaf-bench[data-xarm]:not([data-xin]) .xaf-bench__threads{opacity:0}
:root[data-m-go] .xaf-bench[data-xin] .xaf-bench__threads{animation-name:xaf-thr;animation-duration:420ms;animation-delay:150ms;animation-timing-function:ease-out;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .xaf-bench[data-xarm]:not([data-xin]) .xaf-bench__svg .xc-body .xc-c{opacity:0;transform:scaleY(.15)}
:root[data-m-go] .xaf-bench[data-xin] .xaf-bench__svg .xc-body .xc-c{animation-name:xaf-weave;animation-duration:320ms;animation-delay:calc(300ms + var(--k) * 48ms);animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .xaf-bench[data-xarm]:not([data-xin]) .xaf-ro{opacity:0;transform:translateY(18px)}
:root[data-m-go] .xaf-bench[data-xin] .xaf-ro{animation-name:xaf-up;animation-duration:520ms;animation-delay:120ms;animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .xaf-bench[data-xarm]:not([data-xin]) .xaf-row__track{clip-path:inset(0 100% 0 0)}
:root[data-m-go] .xaf-bench[data-xin] .xaf-row__track{animation-name:xaf-unroll;animation-duration:700ms;animation-delay:calc(var(--i) * 90ms + 200ms);animation-timing-function:cubic-bezier(.65,0,.35,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes xaf-comb{from{opacity:0;transform:translateX(-34px)}to{opacity:1;transform:none}}
@keyframes xaf-thr{from{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}
@keyframes xaf-up{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes xaf-unroll{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}

/* ---------- 3 · A / B: the cloth held against itself (deep) ---------- */
.xaf-ab{position:relative;background:var(--xaf-deep);color:var(--xaf-text);padding:72px 0 64px}
.xaf-ab__grid{width:min(1360px,calc(100% - 80px));margin-inline:auto;display:grid;grid-template-columns:minmax(0,38fr) minmax(0,62fr);grid-template-areas:'text stage' 'table stage';gap:28px 56px;align-items:start}
.xaf-ab__text{grid-area:text;display:grid;gap:16px;justify-items:start}
.xaf-ab__text .gft-eyebrow{color:var(--xaf-lab)}
.xaf-ab__text h2{font-size:clamp(34px,3.4vw,52px);line-height:1.04;color:#f6f4ef;max-width:14ch}
.xaf-ab__lede{font-size:17px;line-height:1.6;color:#e2ede6}
.xaf-ab__text .xaf-actions button{color:#eef5f0}
.xaf-ab__stage{grid-area:stage;position:sticky;top:max(96px,calc(50svh - 320px));align-self:start;container-type:inline-size;--cw:min(330px,42cqw);--off:min(190px,25cqw);--k:0;height:640px;border:1px solid #6bb68f30;background:radial-gradient(ellipse at 50% 40%,#0e4d4a 0%,#05302d 70%)}
.xaf-ab__cl{position:absolute;top:56px;left:50%;width:var(--cw);margin-left:calc(var(--cw) / -2)}
.xaf-ab__cl--a .xaf-ab__mv{transform:translateX(calc(var(--off) * (var(--k) - 1)))}
.xaf-ab__cl--b .xaf-ab__mv{transform:translateX(calc(var(--off) * (1 - var(--k))))}
.xaf-ab__cl--b .xaf-ab__lab{opacity:calc(1 - var(--k) * 3)}
.xaf-ab__stage[data-view=overlay]{--k:1}
.xaf-ab__stage[data-view=blend] :is(.xaf-ab__mv,.xaf-ab__svg,.xaf-ab__lab){transition:none}
.xaf-ab__mv{transition:transform 700ms cubic-bezier(.65,0,.35,1),opacity 500ms}
.xaf-ab__lab{font:600 14px/1.4 var(--gft-font-mono);color:#e6efe9;min-height:2.8em;margin:0 0 8px 4px;max-width:30ch}
.xaf-ab__cl--a .xaf-ab__lab{color:var(--xaf-lab)}
.xaf-ab__svg{width:100%}
.xaf-ab__cl--a{z-index:2}
.xaf-ab__stage[data-view=overlay] .xaf-ab__cl--a .xaf-ab__mv{transform:translateY(-44px)}
.xaf-ab__stage[data-view=overlay] .xaf-ab__cl--a .xaf-ab__svg{transform:translateY(44px)}
.xaf-ab__stage[data-view=overlay] .xaf-ab__cl--b .xaf-ab__lab{transform:translateY(-1.2em);opacity:0}
.xaf-ab__svg{transition:transform 700ms cubic-bezier(.65,0,.35,1)}
.xaf-ab__lab{transition:opacity 400ms,transform 500ms}
.xaf-ab__stage[data-view=a] .xaf-ab__cl--b .xaf-ab__mv,.xaf-ab__stage[data-view=b] .xaf-ab__cl--a .xaf-ab__mv{opacity:.42}
.xaf-ab__stage[data-view=overlay] .xaf-ab__cl--a .xc-c{stroke-width:2.4;stroke:#f6f4ef}
.xaf-ab__stage[data-view=overlay] .xaf-ab__cl--a .xc-o{stroke:none}
.xaf-ab__delta{position:absolute;left:0;right:0;bottom:22px;display:flex;justify-content:center;align-items:flex-end;gap:16px;text-align:center}
.xaf-ab__delta p{display:grid;justify-items:center;margin:0}
.xaf-ab__dk{font:600 14px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#f3d7a4}
.xaf-ab__delta output{font:850 56px/1.05 var(--gft-font-display);letter-spacing:-.04em;color:var(--xaf-hi)}
.xaf-ab__brace{position:absolute;left:50%;bottom:120px;width:120px;height:18px;margin-left:-38px;border:2px solid var(--xaf-hi);border-top:0;transform-origin:50% 0}
:root[data-m-go] .xaf-ab__stage[data-pulse] .xaf-ab__brace{animation-name:xaf-pulse;animation-duration:700ms;animation-timing-function:ease-out;animation-iteration-count:1;animation-direction:normal}
@keyframes xaf-pulse{0%{opacity:1;transform:scaleY(1)}40%{opacity:.4;transform:scaleY(1.8)}100%{opacity:1;transform:scaleY(1)}}
.xaf-ab__table{grid-area:table}
.xaf-ab__table table{width:100%;border-collapse:collapse;font-size:16px}
.xaf-ab__table caption{text-align:left;font:13px var(--gft-font-mono);color:var(--xaf-lab);padding-bottom:8px}
.xaf-ab__table th,.xaf-ab__table td{text-align:left;padding:9px 10px 9px 0;border-bottom:1px solid #6bb68f30;vertical-align:top}
.xaf-ab__table thead th{font:600 13px var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--xaf-lab)}
.xaf-ab__table td{font:15px var(--gft-font-mono);color:#f2f7f3}
.xaf-ab__table tbody th{font-weight:500;color:#e2ede6;font-size:15px}
.xaf-ab .xaf-status{min-height:3.2em}
/* twill-shift: A slides in on one diagonal, B on the other; the bracket wipes and the delta rolls after the heading */
:root[data-m-go] .xaf-ab[data-xarm]:not([data-xin]) .xaf-ab__cl--a{opacity:0;transform:translate(-90px,-60px)}
:root[data-m-go] .xaf-ab[data-xarm]:not([data-xin]) .xaf-ab__cl--b{opacity:0;transform:translate(90px,60px)}
:root[data-m-go] .xaf-ab[data-xin] .xaf-ab__cl--a{animation-name:xaf-tw-a;animation-duration:460ms;animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .xaf-ab[data-xin] .xaf-ab__cl--b{animation-name:xaf-tw-b;animation-duration:460ms;animation-delay:60ms;animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .xaf-ab[data-xarm]:not([data-xin]) .xaf-ab__delta{clip-path:inset(0 50% 0 50%)}
:root[data-m-go] .xaf-ab[data-xin] .xaf-ab__delta{animation-name:xaf-wipe-c;animation-duration:400ms;animation-delay:450ms;animation-timing-function:cubic-bezier(.65,0,.35,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes xaf-tw-a{from{opacity:0;transform:translate(-90px,-60px)}to{opacity:1;transform:none}}
@keyframes xaf-tw-b{from{opacity:0;transform:translate(90px,60px)}to{opacity:1;transform:none}}
@keyframes xaf-wipe-c{from{clip-path:inset(0 50% 0 50%)}to{clip-path:inset(0 0 0 0)}}
/* hand-over: the B cloth slides down across the seam towards the method stage */
@supports (animation-timeline:view()){:root[data-m-go] .xaf-ab__stage{animation-name:xaf-ab-out;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range-start:exit 20%;animation-range-end:exit 100%}}
@keyframes xaf-ab-out{from{transform:none}to{transform:translateY(120px)}}

/* ---------- 4 · method: paper, a pinned forest stage, six steps ---------- */
.xaf-me{position:relative;background:var(--xaf-paper);color:var(--xaf-ink)}
.xaf-me__head{width:min(1360px,calc(100% - 80px));margin-inline:auto;padding:64px 0 28px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px 40px}
.xaf-me__head .gft-eyebrow{grid-column:1/-1;color:#2c5b52}
.xaf-me__head h2{font-size:clamp(40px,4.4vw,66px);line-height:1;max-width:16ch}
.xaf-me__scene{position:relative}
.xaf-me__pin{position:sticky;top:0;height:100svh;overflow:clip;z-index:0}
.xaf-me__ground{position:absolute;inset:0;background:var(--xaf-forest);clip-path:inset(0 0 0 42%);transition:clip-path 720ms cubic-bezier(.65,0,.35,1)}
.xaf-me__ground::before{content:'';position:absolute;inset:0;background-image:linear-gradient(#b4d4c510 1px,transparent 1px),linear-gradient(90deg,#b4d4c510 1px,transparent 1px);background-size:48px 48px}
.xaf-me__weft{position:absolute;left:0;right:0;top:40%;height:140px;background:linear-gradient(180deg,transparent,#6bb68f14,transparent);pointer-events:none}
.xaf-me__scene[data-step="2"] .xaf-me__ground,.xaf-me__scene[data-step="3"] .xaf-me__ground{clip-path:inset(0 0 0 0)}
.xaf-me__scene[data-step="4"] .xaf-me__ground,.xaf-me__scene[data-step="5"] .xaf-me__ground{clip-path:inset(0 42% 0 0)}
.xaf-me__content{position:absolute;inset:0;color:var(--xaf-text);display:flex;flex-direction:column;justify-content:center;padding:22px 0 26px;transform:translateX(21vw);transition:transform 720ms cubic-bezier(.65,0,.35,1)}
.xaf-me__scene[data-step="2"] .xaf-me__content,.xaf-me__scene[data-step="3"] .xaf-me__content{transform:translateX(6vw)}
.xaf-me__scene[data-step="4"] .xaf-me__content,.xaf-me__scene[data-step="5"] .xaf-me__content{transform:translateX(-21vw)}
.xaf-me__rail{display:flex;align-items:center;gap:14px;align-self:center;width:720px;margin-bottom:22px}
.xaf-me__count{font:600 15px var(--gft-font-mono);color:var(--xaf-lab);min-width:4.5em}
.xaf-me__count b{color:#f6f4ef;font-size:20px}
.xaf-me__rail ol{display:flex;gap:4px;list-style:none;margin:0;padding:0}
.xaf-me__rail a{display:grid;place-items:center;width:44px;height:44px;border:1px solid #6bb68f80;color:#e6efe9;font:600 14px var(--gft-font-mono);text-decoration:none;transition:background-color 300ms,color 300ms}
.xaf-me__rail a[aria-current=step]{background:var(--xaf-e);color:var(--xaf-night);border-color:var(--xaf-e)}
.xaf-me__fill{position:relative;flex:1;height:3px;background:#6bb68f40}
.xaf-me__fill i{position:absolute;inset:0;background:var(--xaf-hi);transform-origin:0 50%;transform:scaleX(var(--p,.16));transition:transform 500ms cubic-bezier(.16,1,.3,1)}
.xaf-me__play{border:1px solid var(--xaf-hi);background:transparent;color:#f6f4ef;padding:8px 14px;font:600 13px var(--gft-font-mono)}
.xaf-me__body{display:grid;grid-template-columns:auto 330px;gap:36px;align-self:center;align-items:start}
.xaf-me__loom{position:relative;padding:34px 0 46px 56px}
.xaf-me__svg{width:364px}
.xaf-me__svg .xc-c{transition:translate 700ms cubic-bezier(.65,0,.35,1),opacity 400ms}
.xaf-me__svg .xc-fr{transition:clip-path 600ms cubic-bezier(.65,0,.35,1)}
.xaf-me__scene:is([data-step="1"],[data-step="2"],[data-step="3"]) .xaf-me__svg .xc-e{translate:-26px 0}
.xaf-me__scene:is([data-step="1"],[data-step="2"],[data-step="3"]) .xaf-me__svg .xc-x{translate:26px 0}
.xaf-me__scene:is([data-step="1"],[data-step="2"],[data-step="3"]) .xaf-me__svg .xc-u,.xaf-me__scene:is([data-step="1"],[data-step="2"],[data-step="3"]) .xaf-me__svg .xc-v{translate:0 8px}
.xaf-me__scene:is([data-step="0"],[data-step="1"],[data-step="2"]) .xaf-me__svg .xc-fr{clip-path:inset(0 0 100% 0)}
.xaf-me__scene:is([data-step="0"],[data-step="1"],[data-step="2"]) .xaf-me__svg .xc-v{opacity:0}
.xaf-me__scene[data-step="2"] .xaf-me__svg .xc-rv.is-on{fill:var(--xaf-hi);stroke:#fff}
.xaf-me__scene:not([data-step="2"]):not([data-step="3"]) .xaf-me__svg .xc-rv{opacity:.55}
:root[data-m-go] .xaf-me[data-on] .xaf-me__scene[data-step="2"] .xaf-me__svg .xc-u{animation-name:xaf-sway;animation-duration:1.8s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
[data-show]{transition:opacity 420ms cubic-bezier(.25,.46,.45,.94),transform 520ms cubic-bezier(.16,1,.3,1),visibility 0s}
.xaf-me__scene [data-show]:not([data-shown]),.xaf-rd__scene [data-show]:not([data-shown]){opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity 260ms,transform 300ms,visibility 0s linear 260ms}
.xaf-me__brace{position:absolute;left:0;top:34px;bottom:46px;width:52px;border:2px solid var(--xaf-hi);border-right:0;display:flex;align-items:center}
.xaf-me__brace span{position:absolute;left:-6px;top:50%;transform:translate(-100%,-50%) rotate(-90deg);transform-origin:100% 50%;white-space:nowrap;font:600 14px var(--gft-font-mono);color:#f3d7a4}
.xaf-me__brace span{transform:translateY(-50%);left:auto;right:calc(100% + 8px);top:50%;writing-mode:vertical-rl;rotate:180deg}
.xaf-me__colk{position:absolute;left:70px;top:2px;display:flex;gap:28px;font:600 15px var(--gft-font-mono);color:#e6efe9;margin:0}
.xaf-me__colk span:nth-child(1){color:#a6dcbd}.xaf-me__colk span:nth-child(2){color:#f3c47e}.xaf-me__colk span:nth-child(3){color:#dbe6f5}
.xaf-me__rivet{position:absolute;left:56px;top:0;font:600 15px var(--gft-font-mono);color:#f3d7a4;margin:0}
.xaf-me__rivet span{margin-left:10px;padding:2px 8px;border:1px solid var(--xaf-hi);font-size:13px;text-transform:uppercase;letter-spacing:.08em}
.xaf-me__flat{position:absolute;right:-6px;top:2px;font:600 15px var(--gft-font-mono);color:#dbe6f5;margin:0}
.xaf-me__cap{position:absolute;left:56px;bottom:0;font-size:15px;line-height:1.4;color:#dcebe2;max-width:38ch;margin:0}
.xaf-me__panel{position:relative;display:grid;gap:16px;align-content:start;min-height:470px;padding-top:30px}
.xaf-me__disp{position:relative;height:150px}
.xaf-me__fig{position:absolute;left:0;bottom:0;font:850 46px/1.04 var(--gft-font-display);letter-spacing:-.045em;color:#f6f4ef;max-width:330px}
.xaf-me__fig[data-me-fig="2"],.xaf-me__fig[data-me-fig="3"]{font-size:40px}
.xaf-me__fig[data-me-fig="4"]{font-size:64px;color:var(--xaf-hi)}
.xaf-me__fig[data-me-fig="5"]{font-size:38px}
.xaf-me__tags{list-style:none;margin:0;padding:0;display:grid;gap:8px;position:absolute;top:196px;left:0;right:0}
.xaf-me__tags li{display:grid;grid-template-columns:16px minmax(0,1fr);gap:4px 12px;align-items:center;padding:8px 0;border-top:1px solid #6bb68f40}
.xaf-me__tags i{width:16px;height:16px;background:var(--c)}
.xaf-me__tags span{font:700 20px var(--gft-font-mono);color:#f6f4ef}
.xaf-me__tags em{grid-column:2;font:normal 14px var(--gft-font-mono);color:var(--xaf-lab)}
.xaf-me__gauge{position:absolute;top:206px;left:0;right:0;height:56px}
.xaf-me__gl{position:absolute;left:0;right:0;top:26px;height:3px;background:linear-gradient(90deg,#6bb68f80,var(--xaf-hi))}
.xaf-me__gd{position:absolute;top:0;font:600 14px var(--gft-font-mono);white-space:nowrap;color:#e6efe9}
.xaf-me__gd::after{content:'';position:absolute;left:0;top:20px;width:14px;height:14px;border-radius:50%;background:var(--xaf-u);border:2px solid #fff}
.xaf-me__gd--r{left:8%}.xaf-me__gd--q{left:52%;color:#f3d7a4;transition:transform 600ms cubic-bezier(.16,1,.3,1)}
.xaf-me__gd span{display:block}
.xaf-me__sum{position:absolute;top:196px;left:0;right:0;font:600 18px/1.5 var(--gft-font-mono);color:#f6f4ef;margin:0}
.xaf-me__mirror{position:absolute;top:186px;left:0;right:0;display:grid;gap:14px}
.xaf-me__ghost{display:flex;gap:16px;align-items:flex-end}
.xaf-me__gsvg{width:178px}
.xaf-me__glab{display:grid;gap:4px;font:15px/1.4 var(--gft-font-mono);color:var(--xaf-lab);margin:0}
.xaf-me__glab b{font-size:26px;color:var(--xaf-hi)}
.xaf-seg--dark{color:#eef5f0;width:max-content}
.xaf-me__eqs{position:absolute;left:0;right:0;top:438px}
.xaf-me__eq{position:absolute;left:0;right:0;top:0;display:grid;gap:4px;margin:0}
.xaf-me__eq code{font:15px/1.5 var(--gft-font-mono);color:#f3d7a4}
.xaf-me__track{position:relative;z-index:1;list-style:none;margin:-100svh 0 0;padding:0;pointer-events:none}
.xaf-me__step{min-height:100svh;display:flex;align-items:center;padding:0 max(40px,calc((100vw - 1360px) / 2))}
.xaf-me__step:last-child{min-height:120svh}
.xaf-me__card{pointer-events:auto;width:min(34vw,470px);background:#fffdf8;color:var(--xaf-ink);border:1px solid #c9d4cc;border-left:4px solid var(--xaf-u);padding:26px 28px;box-shadow:0 20px 50px #072d2b1f}
.xaf-me__card .xaf-kicker{color:#2c5b52}
.xaf-me__num{display:block;font:300 88px/0.9 var(--gft-font-mono);letter-spacing:-.06em;color:#9a5f12;margin:-4px 0 12px}
.xaf-me__step:nth-child(3) .xaf-me__num,.xaf-me__step:nth-child(4) .xaf-me__num{color:var(--xaf-hi)}
.xaf-me__card h3{font-size:28px;line-height:1.1;margin-bottom:12px}
.xaf-me__card p{font-size:17px;line-height:1.6}
.xaf-me__step:nth-child(3),.xaf-me__step:nth-child(4){align-items:flex-end;padding-bottom:9svh}
.xaf-me__step:nth-child(3) .xaf-me__card,.xaf-me__step:nth-child(4) .xaf-me__card{background:#072d2bf0;color:var(--xaf-text);border-color:#6bb68f70;width:min(30vw,420px)}
.xaf-me__step:nth-child(3) .xaf-kicker,.xaf-me__step:nth-child(4) .xaf-kicker{color:var(--xaf-lab)}
.xaf-me__step:nth-child(5),.xaf-me__step:nth-child(6){justify-content:flex-end}
.xaf-cite{margin-top:8px}
/* unspool: rod and frame draw, the cloth unrolls downward, the step number turns over */
:root[data-m-go] .xaf-me[data-xarm]:not([data-xin]) .xaf-me__unroll{clip-path:inset(0 0 100% 0)}
:root[data-m-go] .xaf-me[data-xin] .xaf-me__unroll{animation-name:xaf-unroll-d;animation-duration:560ms;animation-delay:250ms;animation-timing-function:cubic-bezier(.65,0,.35,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .xaf-me[data-xarm]:not([data-xin]) .xaf-me__rail{opacity:0;clip-path:inset(0 100% 0 0)}
:root[data-m-go] .xaf-me[data-xin] .xaf-me__rail{animation-name:xaf-rail;animation-duration:320ms;animation-timing-function:cubic-bezier(.4,0,.6,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .xaf-me[data-xarm]:not([data-xin]) .xaf-me__panel{opacity:0;transform:translateY(16px)}
:root[data-m-go] .xaf-me[data-xin] .xaf-me__panel{animation-name:xaf-up;animation-duration:420ms;animation-delay:420ms;animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes xaf-unroll-d{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes xaf-rail{from{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}

/* ---------- 5 · provenance: paper with a sticky forest panel ---------- */
.xaf-pv{position:relative;background:var(--xaf-paper);color:var(--xaf-ink)}
.xaf-pv__grid{display:grid;grid-template-columns:42% minmax(0,58%)}
.xaf-pv__panel{position:relative;background:var(--xaf-forest);color:var(--xaf-text)}
.xaf-pv__pin{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;justify-content:center;gap:14px;padding:28px 40px 28px max(40px,calc((100vw - 1360px) / 2))}
.xaf-pv__pin .xaf-kicker{color:var(--xaf-lab)}
.xaf-pv__ro{display:grid;gap:4px}
.xaf-pv__total{font:850 40px/1 var(--gft-font-display);letter-spacing:-.04em;color:#f6f4ef}
.xaf-pv__ro p{display:flex;gap:18px;font:16px var(--gft-font-mono);color:#dcebe2}
.xaf-pv__ro p output{color:var(--xaf-hi);font-weight:700}
.xaf-pv__loom{position:relative}
.xaf-pv__svg{width:min(330px,100%)}
.xaf-pv__tag{font:14px var(--gft-font-mono);color:#f3d7a4;margin-top:6px}
.xaf-pv__lit{font-size:16px;line-height:1.5;color:#e6f0ea;border-left:3px solid var(--xaf-hi);padding-left:12px;min-height:4.5em}
.xaf-pv__svg .xc-c,.xaf-pv__svg .xc-rod{transition:opacity 360ms}
.xaf-pv__panel:not([data-focus=budgetXaf]):not([data-focus=machinery]):not([data-focus=none]) .xaf-pv__svg :is(.xc-body,.xc-fr) .xc-c{opacity:.22}
.xaf-pv__panel[data-focus=peg] .xaf-pv__svg .xc-rod{filter:drop-shadow(0 0 6px #e9b45e)}
.xaf-pv__panel[data-focus=peg] .xaf-pv__svg .xc-e{opacity:.7!important}
.xaf-pv__panel[data-focus=eurShare] .xaf-pv__svg .xc-e,.xaf-pv__panel[data-focus=usdShare] .xaf-pv__svg :is(.xc-u,.xc-v),.xaf-pv__panel[data-focus=xafShare] .xaf-pv__svg .xc-x,.xaf-pv__panel:is([data-focus=shockPct],[data-focus=shockMode]) .xaf-pv__svg :is(.xc-f,.xc-v){opacity:1!important}
.xaf-pv__panel[data-focus=usdRate] .xaf-pv__svg .xc-u{opacity:.6!important}
.xaf-pv__panel:not([data-focus=usdRate]) .xaf-pv__tag{color:#cfe3d7}
.xaf-pv__reg{padding:64px max(40px,calc((100vw - 1360px) / 2)) 72px 48px;min-width:0}
.xaf-pv__head{display:grid;gap:14px;margin-bottom:26px}
.xaf-pv__head .gft-eyebrow{color:#2c5b52}
.xaf-pv__head h2{font-size:clamp(36px,3.6vw,54px);line-height:1.02;max-width:15ch}
.xaf-pv__lede{font-size:17px;line-height:1.6}
.xaf-pv__ctl{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px}
.xaf-pv__ctl .xaf-seg{border-color:#2c5b52}
.xaf-pv__ctl .xaf-seg input:checked+span{background:var(--xaf-forest);color:#fff}
.xaf-pv__count{font:15px var(--gft-font-mono)}
.xaf-pv__count b{font-size:22px}
.xaf-pv__ctl .xaf-primary{background:var(--xaf-forest)!important;color:#fff!important;border:1px solid var(--xaf-forest)!important;padding:8px 16px;font:600 14px var(--gft-font-mono)}
.xaf-pv__bands{display:grid;gap:22px}
.xaf-pv__bt{font:700 13px var(--gft-font-mono);letter-spacing:.12em;text-transform:uppercase;color:#2c5b52;border-bottom:2px solid #2c5b52;padding-bottom:6px;margin-bottom:4px}
.xaf-pv__row{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr) minmax(174px,1.38fr) minmax(0,.74fr) 150px;grid-template-areas:'lab def cur st mini' 'basis basis basis basis basis';gap:4px 12px;align-items:center;padding:10px 12px 10px 14px;border-bottom:1px solid #d3dbd5;border-left:4px solid transparent;transition:background-color 300ms,border-color 300ms;min-height:60px}
.xaf-pv__row[data-hot]{background:#e6efe9;border-left-color:var(--xaf-u)}
.xaf-pv__row[data-changed]{border-left-color:var(--xaf-hi)}
.xaf-pv__lab{grid-area:lab;display:grid;font-size:16px;font-weight:700;margin:0}
.xaf-pv__lab small{font:13px var(--gft-font-mono);font-weight:400;color:#3f5a53}
.xaf-pv__def{grid-area:def;display:grid;margin:0}
.xaf-pv__k{font:13px var(--gft-font-mono);color:#3f5a53}
.xaf-pv__cur{grid-area:cur;min-width:0}
.xaf-pv__row :is(input,select){width:100%;background:#fff;color:var(--xaf-ink);border-color:#7d998d}
.xaf-pv__row button{padding:6px 12px;border:1px solid #2c5b52;background:#fff;color:var(--xaf-ink);font:600 13px var(--gft-font-mono)}
.xaf-fixed{display:flex;gap:8px;align-items:center}
.xaf-fixed em{font-style:normal;font-size:13px;padding:2px 6px;background:var(--xaf-forest);color:#fff;text-transform:uppercase;letter-spacing:.06em}
.xaf-pv__st{grid-area:st;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.xaf-badge{font:600 13px var(--gft-font-mono);padding:4px 8px;border:1px solid #6b8a80;color:#2f4c45}
.xaf-badge[data-changed]{background:#f6e2bd;border-color:#a8701c;color:#5a3b08}
.xaf-badge--fixed{background:var(--xaf-forest);color:#fff;border-color:var(--xaf-forest)}
.xaf-reset{min-height:44px}
.xaf-pv__mini{grid-area:mini;font:13px var(--gft-font-mono);color:#2f4c45}
.xaf-pv__basis{grid-area:basis;font-size:15px;line-height:1.5;color:#2f4c45;max-width:none}
.xaf-pv__bands[data-view=default] .xaf-pv__cur{opacity:.35;pointer-events:none}
.xaf-mini-rod{display:flex;align-items:center;gap:14px;height:18px;border-top:4px solid #50656f;width:120px;padding-top:0}
.xaf-mini-rod i{width:10px;height:10px;border-radius:50%;background:#50656f;margin-top:-7px}
.xaf-mini-unit{display:flex;gap:8px;align-items:center}
.xaf-mini-unit i{width:14px;height:14px;background:var(--xaf-x);border:1px solid #6b8a80}
.xaf-mini-strip{display:flex;gap:2px}
.xaf-mini-strip i{width:11px;height:20px;border:1px solid var(--c)}
.xaf-mini-strip i.on{background:var(--c)}
.xaf-mini-rib{position:relative;display:block;height:34px;width:150px;border-bottom:2px solid #50656f}
.xaf-mini-rib i{position:absolute;bottom:0;height:16px}
.xaf-mini-rib .w23{background:#c98a2b55}.xaf-mini-rib .wnow{background:#6bb68f66}
.xaf-mini-rib b{position:absolute;bottom:-6px;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:var(--xaf-u);border:2px solid #fff;transition:left 300ms}
.xaf-mini-rib em{position:absolute;top:-2px;font-style:normal;font-size:13px}
.xaf-mini-rib em:first-of-type{left:0}.xaf-mini-rib em:last-of-type{right:0}
.xaf-mini-gauge{position:relative;display:block;height:34px;width:150px}
.xaf-mini-gauge i{position:absolute;left:0;right:0;bottom:6px;height:2px;background:#50656f}
.xaf-mini-gauge i::after{content:'';position:absolute;left:50%;top:-6px;width:2px;height:14px;background:#50656f}
.xaf-mini-gauge b{position:absolute;bottom:0;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:var(--xaf-u);border:2px solid #fff}
.xaf-mini-gauge em{position:absolute;top:-2px;font-style:normal;font-size:13px}
.xaf-mini-gauge em:first-of-type{left:0}.xaf-mini-gauge em:last-of-type{right:0}
.xaf-mini-arrow{font:600 15px var(--gft-font-mono)}
.xaf-mini-preset{display:flex;width:140px;height:16px;gap:2px}
.xaf-mini-preset i:nth-child(1){background:var(--xaf-e)}.xaf-mini-preset i:nth-child(2){background:var(--xaf-u)}.xaf-mini-preset i:nth-child(3){background:var(--xaf-x)}
.xaf-pv__more{margin-top:26px;background:var(--xaf-forest);color:#eef5f0;padding:16px 22px}
.xaf-pv__more summary{min-height:44px;display:flex;align-items:center;font:600 15px var(--gft-font-mono);cursor:pointer}
.xaf-pv__more p{font-size:16px;line-height:1.6;margin-top:8px;max-width:none}
/* heddle: rows lift in their bands, the panel's cells light band by band */
:root[data-m-go] .xaf-pv[data-xarm]:not([data-xin]) .xaf-pv__row{opacity:0;transform:translateY(-16px)}
:root[data-m-go] .xaf-pv[data-xin] .xaf-pv__row{animation-name:xaf-heddle;animation-duration:420ms;animation-delay:calc(var(--d,0) * 30ms);animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .xaf-pv[data-xarm]:not([data-xin]) .xaf-pv__svg .xc-body{opacity:0}
:root[data-m-go] .xaf-pv[data-xin] .xaf-pv__svg .xc-body{animation-name:xaf-light;animation-duration:450ms;animation-delay:400ms;animation-timing-function:steps(4,end);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes xaf-heddle{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}
@keyframes xaf-light{from{opacity:0;clip-path:inset(0 0 100% 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}
/* hand-over: the panel's fringe falls through the seam into the interlude */
@supports (animation-timeline:view()){:root[data-m-go] .xaf-pv__svg .xc-fr{animation-name:xaf-fall;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--xaf-pv;animation-range-start:exit 40%;animation-range-end:exit 100%}.xaf-pv{view-timeline-name:--xaf-pv;view-timeline-axis:block}}
@keyframes xaf-fall{from{transform:none}to{transform:translateY(180px)}}

/* ---------- 6 · interlude: the cloth at full bleed (night) ---------- */
.xaf-il{position:relative;background:var(--xaf-night);color:var(--xaf-text);overflow:clip;min-height:100svh;display:flex;align-items:center}
.xaf-il__braid{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.xaf-il__braid g{overflow-anchor:none}
.xaf-il__in{position:relative;width:min(1360px,calc(100% - 80px));margin-inline:auto;padding:56px 0 48px;display:grid;gap:22px}
.xaf-il__top{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:40px;align-items:end}
.xaf-il__h .gft-eyebrow{color:var(--xaf-lab)}
.xaf-il__h h2{font-size:clamp(40px,4.4vw,64px);line-height:1;color:#f6f4ef;max-width:17ch;margin-top:10px}
.xaf-il__ratio{display:grid;justify-items:end;text-align:right;margin:0;max-width:none}
.xaf-il__rv{font:850 160px/.86 var(--gft-font-display);letter-spacing:-.06em;color:var(--xaf-hi)}
.xaf-il__ratio small{font-size:17px;line-height:1.45;color:#e6f0ea;max-width:30ch;margin-top:8px}
.xaf-il__stage{display:grid;gap:12px;justify-items:center}
.xaf-il__iris{position:relative}
.xaf-il__svg--wide{width:min(1282px,100%)}
.xaf-il__svg--hang{display:none}
.xaf-il__svg .xc-x{opacity:.32}
.xaf-il__weft{position:absolute;top:0;bottom:0;left:0;width:120px;background:linear-gradient(90deg,transparent,#ffffff2e,transparent);pointer-events:none;opacity:0}
:root[data-m-go] .xaf-il[data-on] .xaf-il__weft{animation-name:xaf-weft;animation-duration:5s;animation-delay:900ms;animation-timing-function:cubic-bezier(.45,.05,.55,.95);animation-iteration-count:infinite;animation-direction:normal}
@keyframes xaf-weft{0%{opacity:0;transform:translateX(0)}8%{opacity:1}40%{opacity:1;transform:translateX(1180px)}46%,100%{opacity:0;transform:translateX(1180px)}}
:root[data-m-go] .xaf-il[data-on] .xaf-il__svg .xc-fr{animation-name:xaf-breathe;animation-duration:2.4s;animation-delay:1s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes xaf-breathe{from{opacity:.55}to{opacity:1}}
.xaf-il__key{display:flex;flex-wrap:wrap;gap:8px 26px;justify-content:center;font:13px var(--gft-font-mono);letter-spacing:.05em;color:#e2ede6}
.xaf-il__key span{display:flex;align-items:center;gap:8px}
.xaf-il__key span::before{content:'';width:16px;height:16px;background:var(--xaf-e)}
.xaf-il__key .k-u::before{background:var(--xaf-u)}.xaf-il__key .k-x::before{background:var(--xaf-x);opacity:.4}.xaf-il__key .k-f::before{background:var(--xaf-hi);outline:1px solid #fbe2b0}
.xaf-presets{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;justify-content:center}
.xaf-presets .xaf-kicker{margin:0 12px 0 0;color:var(--xaf-lab)}
.xaf-presets button{display:grid;gap:0;text-align:left;padding:8px 18px;border:1.5px solid var(--xaf-e);background:transparent;color:#eef5f0;transition:background-color 240ms,color 240ms}
.xaf-presets button strong{font-size:16px}
.xaf-presets button span{font:14px var(--gft-font-mono)}
.xaf-presets button[aria-pressed=true]{background:var(--xaf-e);color:var(--xaf-night)}
.xaf-presets__read{flex-basis:100%;text-align:center;font:15px var(--gft-font-mono);color:#f3d7a4;max-width:none;min-height:1.6em}
/* iris: the stage opens from the fringe point; cells fill row by row; the ratio rolls */
:root[data-m-go] .xaf-il[data-xarm]:not([data-xin]) .xaf-il__iris{clip-path:circle(0% at 46% 92%)}
:root[data-m-go] .xaf-il[data-xin] .xaf-il__iris{animation-name:xaf-iris;animation-duration:520ms;animation-timing-function:cubic-bezier(.65,0,.35,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .xaf-il[data-xarm]:not([data-xin]) .xaf-il__svg .xc-body .xc-c{opacity:0}
:root[data-m-go] .xaf-il[data-xin] .xaf-il__svg .xc-body .xc-c{animation-name:xaf-fade;animation-duration:260ms;animation-delay:calc(350ms + var(--r) * 80ms + var(--k) * 6ms);animation-timing-function:ease-out;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .xaf-il[data-xarm]:not([data-xin]) .xaf-il__rv{opacity:0}
@keyframes xaf-iris{from{clip-path:circle(0% at 46% 92%)}to{clip-path:circle(150% at 46% 92%)}}
/* hand-over: the cells pour down towards the two bars */
@supports (animation-timeline:view()){:root[data-m-go] .xaf-il__stage{animation-name:xaf-pour;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range-start:exit 30%;animation-range-end:exit 100%}}
@keyframes xaf-pour{from{transform:none}to{transform:translateY(160px) scaleY(.6)}}

/* ---------- 7 · reading: a night stage, five beats (deep) ---------- */
.xaf-rd{position:relative;background:var(--xaf-deep);color:var(--xaf-text)}
.xaf-rd__head{width:min(1360px,calc(100% - 80px));margin-inline:auto;padding:64px 0 8px;display:grid;gap:10px}
.xaf-rd__head .gft-eyebrow{color:var(--xaf-lab)}
.xaf-rd__head h2{font-size:clamp(36px,3.8vw,56px);color:#f6f4ef;line-height:1}
.xaf-rd__scene{position:relative}
.xaf-rd__pin{position:sticky;top:0;height:100svh;overflow:clip;display:flex;flex-direction:column;justify-content:center}
.xaf-rd__pin::before{content:'';position:absolute;inset:0;background-image:linear-gradient(#b4d4c50a 1px,transparent 1px),linear-gradient(90deg,#b4d4c50a 1px,transparent 1px);background-size:48px 48px;pointer-events:none}
.xaf-rd__stage{--rdw:min(900px,calc(100vw - 540px));--rdm:max(40px,calc((100vw - 1360px) / 2));position:relative;width:var(--rdw);margin-left:var(--rdm);transition:transform 720ms cubic-bezier(.65,0,.35,1)}

.xaf-rd__band{position:absolute;inset:0;background:var(--xaf-forest);clip-path:inset(0 100% 0 0);transition:clip-path 720ms cubic-bezier(.65,0,.35,1)}
.xaf-rd__scene:is([data-beat="2"],[data-beat="3"]) .xaf-rd__band{clip-path:inset(0 0 0 0)}
.xaf-rd__scene[data-beat="4"] .xaf-rd__band{clip-path:inset(0 0 0 100%)}
.xaf-rd__rail{display:flex;gap:6px;margin-bottom:18px}
.xaf-rd__rail a{display:grid;place-items:center;width:44px;height:44px;border:1px solid #6bb68f80;color:#e6efe9;text-decoration:none;font:600 14px var(--gft-font-mono);transition:background-color 300ms,color 300ms}
.xaf-rd__rail a[aria-current=step]{background:var(--xaf-hi);color:#1c1405;border-color:var(--xaf-hi)}
.xaf-rd__bars{position:relative;display:grid;gap:18px}
.xaf-rd__extra{position:relative;height:176px}
.xaf-rd__bh{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;margin:0 0 26px;max-width:none}
.xaf-rd__bh span{font:600 13px var(--gft-font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--xaf-lab);min-width:150px}
.xaf-rd__bh output{font:850 64px/1 var(--gft-font-display);letter-spacing:-.04em;color:#f6f4ef}
.xaf-rd__bar--risk .xaf-rd__bh output{color:var(--xaf-hi)}
.xaf-rd__bh small{font:15px var(--gft-font-mono);color:#e2ede6}
.xaf-rd__svg{display:block;width:100%;height:auto;overflow:visible}
.xr-c{transform-box:fill-box;transform-origin:50% 100%;transition:opacity 400ms,translate 600ms cubic-bezier(.16,1,.3,1)}
.xr-e{fill:var(--xaf-e)}.xr-u{fill:var(--xaf-u)}.xr-x{fill:none;stroke:#c9d8ee66;stroke-width:1}
.xr-f{fill:var(--xaf-hi)}.xr-v{fill:none;stroke:var(--xaf-hi);stroke-dasharray:3 3}.xr-o{opacity:0}
.xr-track{fill:#cfe3d755}
.xaf-rd__scene[data-beat="0"] .xr-e{opacity:.42}
.xaf-rd__scene:not([data-beat="0"]) .xaf-rd__bh small[data-rd-held]{opacity:.8}
.xaf-rd__scene[data-beat="0"] [data-rd-risk] .xr-c{opacity:0;translate:0 -60px}
.xaf-rd__scene[data-beat="1"] [data-rd-imp] .xr-u{scale:1 1.18}
.xr-u{transition:opacity 400ms,scale 600ms cubic-bezier(.16,1,.3,1)}
.xaf-rd__scene[data-beat="4"] :is(.xr-e,.xr-u,.xr-f){fill:none;stroke-width:1.2}
.xaf-rd__scene[data-beat="4"] .xr-e{stroke:var(--xaf-e)}.xaf-rd__scene[data-beat="4"] .xr-u{stroke:var(--xaf-u)}.xaf-rd__scene[data-beat="4"] .xr-f{stroke:var(--xaf-hi)}
.xaf-rd__riskrow{position:relative}
.xaf-rd__loose{position:absolute;top:40px;left:calc(var(--risk,3) * 1% + 14px);width:520px;height:150px;overflow:visible;opacity:0;transition:opacity 500ms}
.xaf-rd__scene[data-beat="3"] .xaf-rd__loose{opacity:1}
.xr-loose{fill:none;stroke:#cfe3d7;stroke-width:2;stroke-dasharray:4 5;transition:opacity 300ms}
.xr-tied{fill:none;stroke:var(--xaf-hi);stroke-width:3;stroke-dasharray:6 4;opacity:0;transition:opacity 300ms}
[data-thread][data-on] .xr-loose{opacity:0}[data-thread][data-on] .xr-tied{opacity:1}
.xaf-rd__ghosts{position:absolute;left:0;top:0;display:flex;gap:28px}
.xaf-rd__ghosts p{display:grid;gap:2px;margin:0;padding:6px 12px;border:1px dashed #e9b45e99;font:14px var(--gft-font-mono);color:#e2ede6}
.xaf-rd__ghosts b{font-size:20px;color:var(--xaf-hi)}
.xaf-rd__axis{display:flex;justify-content:space-between;width:100%;font:13px var(--gft-font-mono);color:var(--xaf-lab);margin:0;max-width:none}
.xaf-rd__rib{position:absolute;left:0;top:78px;width:520px;height:46px;border-bottom:2px solid #cfe3d7aa}
.xaf-rd__w{position:absolute;bottom:0;height:22px;font:13px/22px var(--gft-font-mono);color:#f6f4ef;padding-left:6px;white-space:nowrap;overflow:visible}
.xaf-rd__w--23{background:#c98a2b66}.xaf-rd__w--now{background:#6bb68f66}
.xaf-rd__rib b{position:absolute;bottom:-8px;width:16px;height:16px;margin-left:-8px;border-radius:50%;background:var(--xaf-hi);border:2px solid #fff;transition:left 200ms}
.xaf-rd__rib em{position:absolute;top:-4px;font-style:normal;font:13px var(--gft-font-mono);color:var(--xaf-lab)}
.xaf-rd__rib em:first-of-type{left:0}.xaf-rd__rib em:last-of-type{right:0}
.xaf-rd__inv{position:absolute;left:560px;top:84px;font:15px var(--gft-font-mono);color:#e2ede6;margin:0}
.xaf-rd__inv output{color:#f3d7a4;font-weight:700;font-size:18px}
.xaf-rd__split{position:absolute;left:0;top:0;display:flex;gap:28px;align-items:flex-end}
.xaf-rd__split figure{margin:0;display:grid;gap:6px}
.xaf-rd__cs{width:128px}
.xaf-rd__split figcaption,.xaf-rd__split p{font:600 14px var(--gft-font-mono);color:#e2ede6;margin:0}
.xaf-rd__split p{color:#f3d7a4;align-self:center}
.xaf-rd__ann{font-size:16px;line-height:1.5;color:#e6f0ea;margin-top:18px;max-width:62ch;border-left:3px solid var(--xaf-hi);padding-left:12px}
.xaf-rd__track{position:relative;z-index:1;list-style:none;margin:-100svh 0 0;padding:0;pointer-events:none}
.xaf-rd__beat{min-height:84svh;display:flex;align-items:center;justify-content:flex-end;padding:0 max(40px,calc((100vw - 1360px) / 2))}
.xaf-rd__beat:last-child{min-height:100svh}
.xaf-rd__beat:nth-child(3),.xaf-rd__beat:nth-child(4){align-items:flex-end;padding-bottom:8svh}
.xaf-rd__card{pointer-events:auto;width:min(30vw,400px);background:#072d2bf2;border:1px solid #6bb68f66;border-top:3px solid var(--xaf-hi);padding:24px 26px;color:var(--xaf-text)}
.xaf-rd__card .xaf-kicker{color:var(--xaf-lab)}
.xaf-rd__card h3{font-size:25px;line-height:1.12;margin-bottom:10px;color:#f6f4ef}
.xaf-rd__card p{font-size:17px;line-height:1.6;color:#e6f0ea}
.xaf-rd__scrub{display:grid;gap:4px;margin-top:14px;font:14px var(--gft-font-mono);color:#f3d7a4}
.xaf-rd__scrub input{accent-color:var(--xaf-hi);width:100%}
.xaf-excl{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.xaf-excl button{padding:6px 10px;border:1.5px solid var(--xaf-hi);background:transparent;color:#f6f4ef;font:14px/1.3 var(--gft-font-display);text-align:left}
.xaf-excl button[aria-pressed=true]{background:var(--xaf-hi);color:#1c1405}
.xaf-rd__marked{font:14px/1.5 var(--gft-font-mono)!important;color:#f3d7a4!important;margin-top:10px}
/* shed: the stage parts like a shed to show the axis; the cells pour into the bars */
:root[data-m-go] .xaf-rd[data-xarm]:not([data-xin]) .xaf-rd__bar--imp{transform:translateY(-40px);opacity:0}
:root[data-m-go] .xaf-rd[data-xarm]:not([data-xin]) .xaf-rd__bar--risk{transform:translateY(40px);opacity:0}
:root[data-m-go] .xaf-rd[data-xin] .xaf-rd__bar--imp{animation-name:xaf-shed-a;animation-duration:420ms;animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .xaf-rd[data-xin] .xaf-rd__bar--risk{animation-name:xaf-shed-b;animation-duration:420ms;animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .xaf-rd[data-xarm]:not([data-xin]) [data-rd-imp] .xr-c{opacity:0}
:root[data-m-go] .xaf-rd[data-xin] [data-rd-imp] .xr-c{animation-name:xaf-fade;animation-duration:200ms;animation-delay:calc(350ms + var(--i) * 4.5ms);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes xaf-shed-a{from{transform:translateY(-40px);opacity:0}to{transform:none;opacity:1}}
@keyframes xaf-shed-b{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}

/* ---------- 8 · next: the swatch book (forest) ---------- */
.xaf-nx{position:relative;background:var(--xaf-forest);color:var(--xaf-text);overflow:clip}
.xaf-nx::before{content:'';position:absolute;inset:0;background-image:linear-gradient(#b4d4c50c 1px,transparent 1px),linear-gradient(90deg,#b4d4c50c 1px,transparent 1px);background-size:48px 48px;pointer-events:none}
.xaf-nx__grid{position:relative;width:min(1360px,calc(100% - 80px));margin-inline:auto;padding:64px 0 56px;display:grid;grid-template-columns:minmax(0,64fr) minmax(0,36fr);grid-template-areas:'lead oee' 'book oee' 'src src';gap:24px 48px}
.xaf-nx__lead{grid-area:lead;display:grid;gap:12px}
.xaf-nx__lead .gft-eyebrow{color:var(--xaf-lab)}
.xaf-nx__lead h2{font-size:clamp(34px,3.4vw,50px);line-height:1.04;color:#f6f4ef;max-width:20ch}
.xaf-nx__intro{font-size:17px;line-height:1.6;color:#e2ede6}
.xaf-nx__book{grid-area:book;position:relative;height:max(680px,76svh)}
.xaf-nx__fan{list-style:none;margin:0;padding:0;position:absolute;inset:0}
.xaf-sw{position:absolute;left:24px;bottom:140px;width:min(34vw,470px);height:calc(100% - 150px);transform-origin:26px calc(100% - 26px);transition:transform 640ms cubic-bezier(.16,1,.3,1);z-index:calc(3 - var(--o,0))}
.xaf-sw__leaf{position:relative;height:100%;display:flex;flex-direction:column;gap:10px;padding:26px 66px 26px 28px;background:#0b3f3c;border:1px solid #6bb68f66;border-top:8px solid var(--tc);box-shadow:0 18px 40px #02191766;overflow:clip}
.xaf-sw__leaf::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,#ffffff06 0 2px,transparent 2px 8px),repeating-linear-gradient(0deg,#ffffff05 0 2px,transparent 2px 8px);pointer-events:none}
.xaf-sw__id{font:600 13px var(--gft-font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--xaf-lab)}
.xaf-sw h3{font-size:28px;line-height:1.08;color:#f6f4ef}
.xaf-sw h3 cite{font-style:normal}
.xaf-sw__use{font-size:17px;line-height:1.5;color:#e2ede6}
.xaf-sw__thumb{position:relative;margin:auto 0 0;display:grid;gap:6px;justify-items:start}
.xaf-sw__svg{width:170px}
.xaf-sw__thumb figcaption{font:13px var(--gft-font-mono);color:#f3d7a4}
.xaf-sw__mark{position:absolute;pointer-events:none}
.xaf-sw__thumb--bracket .xaf-sw__mark{left:178px;top:8px;width:16px;height:200px;border:2px solid var(--xaf-hi);border-left:0}
.xaf-sw__thumb--window .xaf-sw__mark{left:58px;top:0;width:54px;height:226px;border:2px dashed var(--xaf-hi)}
.xaf-sw__thumb--landed .xaf-sw__mark{left:186px;top:40px;width:70px;height:3px;background:var(--xaf-x);box-shadow:0 60px 0 var(--xaf-x)}
.xaf-sw__go{font:600 14px var(--gft-font-mono);color:#f6f4ef;min-height:44px;display:inline-flex;align-items:center}
.xaf-sw__spine{position:absolute;right:14px;top:22px;writing-mode:vertical-rl;font:700 15px var(--gft-font-mono);letter-spacing:.14em;color:var(--tc)}
.xaf-nx__book[data-front="0"] .xaf-sw[data-sw="1"],.xaf-nx__book[data-front="1"] .xaf-sw[data-sw="0"],.xaf-nx__book[data-front="2"] .xaf-sw[data-sw="0"]{--o:1;transform:rotate(8deg)}
.xaf-nx__book[data-front="0"] .xaf-sw[data-sw="2"],.xaf-nx__book[data-front="1"] .xaf-sw[data-sw="2"],.xaf-nx__book[data-front="2"] .xaf-sw[data-sw="1"]{--o:2;transform:rotate(16deg)}
.xaf-nx__rivet{position:absolute;left:38px;bottom:154px;width:26px;height:26px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#f6d79a,#a8701c);box-shadow:0 0 0 4px #072d2b;z-index:5}
.xaf-nx__read{font-size:16px;line-height:1.5;color:#f3d7a4;border-left:3px solid var(--xaf-hi);padding-left:12px}
.xaf-nx__oee{grid-area:oee;align-self:stretch;display:grid;align-content:center;gap:16px;background:#072d2b;border:1px solid #6bb68f55;border-left:6px solid var(--xaf-x);padding:32px 30px}
.xaf-nx__oee .xaf-kicker{color:var(--xaf-lab)}
.xaf-nx__oee p{font-size:17px;line-height:1.6;color:#e6f0ea}
.xaf-nx__source{grid-area:src;font-size:15px;line-height:1.6;color:#dcebe2;max-width:none}
/* spin: the book fans out around the rivet; thumbnails draw */
:root[data-m-go] .xaf-nx[data-xarm]:not([data-xin]) .xaf-sw{transform:rotate(-24deg);opacity:0}
:root[data-m-go] .xaf-nx[data-xin] .xaf-sw{animation-name:xaf-fan;animation-duration:520ms;animation-delay:calc(var(--i) * 70ms);animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .xaf-nx[data-xarm]:not([data-xin]) .xaf-sw__thumb{clip-path:inset(0 100% 0 0)}
:root[data-m-go] .xaf-nx[data-xin] .xaf-sw__thumb{animation-name:xaf-unroll;animation-duration:450ms;animation-delay:400ms;animation-timing-function:cubic-bezier(.65,0,.35,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes xaf-fan{from{transform:rotate(-24deg);opacity:0}}
/* alive: the swatches sway on the rivet */
:root[data-m-go] .xaf-nx[data-on] .xaf-sw__leaf{animation-name:xaf-swing;animation-duration:6s;animation-delay:calc(1.2s + var(--i) * -2s);animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;transform-origin:26px calc(100% - 26px)}
@keyframes xaf-swing{from{transform:rotate(-1.5deg)}to{transform:rotate(1.5deg)}}

/* ---------- 9 · closing: the invoice woven from the cloth (night) ---------- */
.xaf-cl{position:relative;background:var(--xaf-night);color:var(--xaf-text);overflow:clip;min-height:100svh}
.xaf-cl::before{content:'';position:absolute;inset:0;background-image:linear-gradient(#b4d4c50c 1px,transparent 1px),linear-gradient(90deg,#b4d4c50c 1px,transparent 1px);background-size:48px 48px;pointer-events:none}
.xaf-cl__grid{position:relative;width:min(1360px,calc(100% - 80px));margin-inline:auto;display:grid;grid-template-columns:minmax(0,42fr) minmax(0,58fr);gap:48px;align-items:center;min-height:100svh;padding:48px 0 0}
.xaf-cl__copy{display:grid;gap:18px;align-content:center;padding-bottom:40px}
.xaf-cl__copy .gft-eyebrow{color:var(--xaf-lab)}
.xaf-cl__copy h2{font-size:clamp(36px,3.6vw,54px);line-height:1.02;color:#f6f4ef;max-width:14ch}
.xaf-cl__text{font-size:17px;line-height:1.6;color:#e6f0ea}
.xaf-cl__ctl{display:grid;gap:10px;padding:18px 20px;background:#0e4d4a;border:1px solid #6bb68f55}
.xaf-cl__scrub{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font:600 14px var(--gft-font-mono);color:#e6efe9}
.xaf-cl__scrub output{font:850 30px var(--gft-font-display);color:var(--xaf-hi);letter-spacing:-.03em}
.xaf-cl__track{position:relative}
.xaf-cl__track input{width:100%;accent-color:var(--xaf-hi);position:relative;z-index:1}
.xaf-cl__ghost{position:absolute;left:0;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;border:2px dashed #f3d7a4;opacity:0;transition:transform 900ms cubic-bezier(.65,0,.35,1),opacity 400ms;pointer-events:none}
.xaf-cl__ghost[data-on]{opacity:.9}
.xaf-cl__note{font:14px/1.5 var(--gft-font-mono);color:var(--xaf-lab);min-height:3em}
.xaf-cl__acts{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}
.xaf-cl__back{font:600 14px var(--gft-font-mono);color:#f6f4ef;min-height:44px;display:inline-flex;align-items:center}
.xaf-cl__inv{position:relative;align-self:stretch;display:flex;flex-direction:column;justify-content:center;padding-bottom:0}
.xaf-inv{position:relative;z-index:1;background:#f6f4ef;color:var(--xaf-ink);padding:28px 34px 26px;box-shadow:0 30px 70px #00110f80;border-top:8px solid var(--xaf-forest);min-height:min(82svh,760px);display:flex;flex-direction:column;gap:14px}
.xaf-inv__hd{display:flex;justify-content:space-between;align-items:center;font:600 15px var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#244a43;border-bottom:2px solid #244a43;padding-bottom:10px;max-width:none}
.xaf-inv__rivets{display:flex;gap:10px}
.xaf-inv__rivets i{width:12px;height:12px;border-radius:50%;background:#50656f}
:root[data-m-go] .xaf-inv__rivets[data-glint] i{animation-name:xaf-glint;animation-duration:600ms;animation-timing-function:ease-out;animation-iteration-count:1;animation-direction:normal}
@keyframes xaf-glint{50%{filter:brightness(2.2) drop-shadow(0 0 6px #e9b45e)}}
.xaf-inv__lines{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.xaf-inv__line{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto;grid-template-areas:'k calc amt' 'w w w';gap:6px 18px;align-items:baseline;padding:10px 0 12px;border-bottom:1px solid #cfd8d2;border-left:5px solid var(--c);padding-left:14px}
.xaf-inv__k{grid-area:k;display:grid;margin:0}
.xaf-inv__k b{font:800 18px var(--gft-font-mono)}
.xaf-inv__k span{font:14px var(--gft-font-mono);color:#3f5a53}
.xaf-inv__calc{grid-area:calc;display:grid;font:16px var(--gft-font-mono);color:#244a43;margin:0}
.xaf-inv__amt{grid-area:amt;font:700 22px var(--gft-font-mono);margin:0;text-align:right}
.xaf-inv__weave{grid-area:w;width:100%;height:24px}
.xi-c{fill:var(--c)}.xi-f{fill:var(--xaf-u);stroke:#7a4f12;stroke-width:1}.xi-v{fill:none;stroke:#a8701c;stroke-dasharray:2 2}.xi-o{fill:#e3e8e4}
.xi-c,.xi-f,.xi-v,.xi-o{transition:opacity 300ms}
.xaf-inv__tot{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;padding-top:4px}
.xaf-inv__sum{display:grid;font:800 40px/1.05 var(--gft-font-display);letter-spacing:-.04em;margin:0}
.xaf-inv__sum span,.xaf-inv__delta span{font:600 13px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#3f5a53}
.xaf-inv__delta{display:grid;justify-items:end;margin:0}
.xaf-inv__delta output{font:850 64px/1 var(--gft-font-display);letter-spacing:-.05em;color:#9a5f12}
.xaf-inv__terms{margin-top:auto;border-top:2px dashed #9fb2a8;padding-top:12px}
.xaf-inv__terms h3{font-size:18px;letter-spacing:-.01em;margin-bottom:4px}
.xaf-inv__terms p{font-size:15px;line-height:1.55;color:#2f4c45;max-width:none}
.xaf-cl__selv{position:relative;display:block;width:100%;height:max(60px,calc(100svh - min(82svh,760px) - 48px));min-height:60px;margin-top:-4px}
.xaf-cl__selv path{stroke-linecap:round}
/* beat-up: the lines beat up into place like weft picks; total and delta roll; the selvedge threads draw down */
:root[data-m-go] .xaf-cl[data-xarm]:not([data-xin]) .xaf-inv__line{opacity:0;transform:translateY(26px)}
:root[data-m-go] .xaf-cl[data-xin] .xaf-inv__line{animation-name:xaf-pick;animation-duration:380ms;animation-delay:calc(var(--n,0) * 90ms + 80ms);animation-timing-function:cubic-bezier(.34,1.3,.64,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
.xaf-inv__line:nth-child(2){--n:1}.xaf-inv__line:nth-child(3){--n:2}
:root[data-m-go] .xaf-cl[data-xarm]:not([data-xin]) .xaf-inv{transform:translateY(22px) scale(.98);opacity:.2}
:root[data-m-go] .xaf-cl[data-xin] .xaf-inv{animation-name:xaf-up2;animation-duration:420ms;animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .xaf-cl[data-xarm]:not([data-xin]) .xaf-cl__selv{clip-path:inset(0 0 100% 0)}
:root[data-m-go] .xaf-cl[data-xin] .xaf-cl__selv{animation-name:xaf-unroll-d;animation-duration:450ms;animation-delay:450ms;animation-timing-function:cubic-bezier(.65,0,.35,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes xaf-pick{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes xaf-up2{from{transform:translateY(22px) scale(.98);opacity:.2}to{transform:none;opacity:1}}

/* ---------- headings that wait for their section ---------- */
:root[data-m-go] [data-xarm]:not([data-xin]) [data-xh]:not([data-m]){opacity:0;transform:translateY(10px)}
:root[data-m-go] [data-xin] [data-xh]:not([data-m]){animation-name:xaf-up;animation-duration:200ms;animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:both;animation-iteration-count:1;animation-direction:normal}

/* ---------- phone and narrow widths ---------- */
@media(max-width:1100px){
 .xaf-bench__a{grid-template-columns:minmax(0,1fr);gap:28px}
 .xaf-bench__stage{order:-1}
 .xaf-bench__threads{display:none}
 .xaf-ab__grid{grid-template-columns:minmax(0,1fr);grid-template-areas:'text' 'stage' 'table'}
 .xaf-pv__row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:'lab def' 'cur st' 'mini mini' 'basis basis'}
 .xaf-nx__grid{grid-template-columns:minmax(0,1fr);grid-template-areas:'lead' 'book' 'oee' 'src'}
 .xaf-cl__grid{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:640px){
 [data-splash=xaf-exposure] .gft-splash__content{padding-bottom:600px}
 [data-splash=xaf-exposure] h1{font-size:46px;line-height:1.04;white-space:normal}
 [data-splash=xaf-exposure] .gft-splash__lede{font-size:17px}
 [data-splash=xaf-exposure] .gft-splash__structure{inset:auto 0 64px 0;height:600px}
 [data-splash=xaf-exposure] .gft-splash__structure::after{display:none}
 .xaf-sp__stage{left:20px;right:20px;top:0;bottom:8px;align-items:stretch}
 .xaf-sp__rodtag{font-size:13px;margin-left:8px}
 .xaf-sp__loom{width:auto;height:auto;display:grid;grid-template-columns:240px minmax(0,1fr);gap:4px 12px;align-items:end}
 .xaf-sp__braid,.xaf-sp__cols{display:none}
 .xaf-sp__cloth{width:240px;grid-row:1/span 2}
 .xaf-sp__unit,.xaf-sp__move{position:static;width:auto;white-space:normal}
 .xaf-sp__unit{font-size:13px;align-self:start;margin-top:24px}
 .xaf-sp__move::before{display:none}
 .xaf-sp__move output{font-size:24px}
 .xaf-sp__move span{font-size:13px}
 .xaf-sp__total{margin:6px 0 0 8px}
 .xaf-sp__total output{font-size:40px}
 .xaf-sp__delta{font-size:15px;margin-left:8px}
 .xaf-sp__ctl{padding:0;margin-top:12px;gap:8px}
 .xaf-sp__chips{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%}
 .xaf-sp__chips button{min-width:0}
 .xaf-sp__scrub{min-width:0;width:100%}
 .xaf-bench{padding:28px 0 36px}
 .xaf-bench__panel{width:calc(100% - 24px);padding:22px 16px 26px}
 .xaf-bench__head h2{font-size:26px}
 .xaf-ro{grid-template-columns:minmax(0,1fr);padding:16px}
 .xaf-ro__total{font-size:48px}
 .xaf-ro__mini{grid-template-columns:minmax(0,1fr)}
 .xaf-ro__mini div{display:flex;justify-content:space-between;gap:10px}
 .xaf-ro__mini dd{margin:0;text-align:right}
 .xaf-bench__cloth{grid-template-columns:minmax(0,1fr);justify-items:center}
 .xaf-bench__svg{width:min(300px,82vw)}
 .xaf-cap{padding-top:30px;max-width:none}
 .xaf-field__row{grid-template-columns:minmax(0,1fr) 120px}
 .xaf-row{grid-template-columns:minmax(0,1fr)}
 .xaf-row__lab{grid-row:auto;grid-template-columns:auto auto auto;justify-content:start;gap:12px;align-items:baseline}
 .xaf-row__lab output{font-size:18px}
 .xaf-rows__scale{margin-left:0}
 .xaf-identity{font-size:20px}
 .xaf-formula{grid-template-columns:minmax(0,1fr);padding:16px}
 .xaf-formula>*,.xaf-formula__k{grid-column:1;grid-row:auto}
 .xaf-ab{padding:44px 0}
 .xaf-ab__grid{width:calc(100% - 32px)}
 .xaf-ab__stage{height:560px}
 .xaf-ab__stage{--cw:min(250px,44cqw);--off:min(140px,25cqw)}
 .xaf-ab__cl{top:40px}
 .xaf-ab__lab{min-height:4.2em;font-size:13px}
 .xaf-ab__delta output{font-size:40px}
 .xaf-ab__brace{bottom:98px}
 .xaf-ab__table table,.xaf-ab__table tbody,.xaf-ab__table tr{display:block}
 .xaf-ab__table thead{display:none}
 .xaf-ab__table tr{display:grid;grid-template-columns:1fr 1fr 1fr;gap:2px 10px;padding:10px 0;border-bottom:1px solid #6bb68f30}
 .xaf-ab__table tbody th{grid-column:1/-1;border:0;padding:0}
 .xaf-ab__table td{border:0;padding:0}
 .xaf-me__head{width:calc(100% - 32px);padding:44px 0 20px;grid-template-columns:1fr}
 .xaf-me__head h2{font-size:38px}
 .xaf-me__pin{height:40svh;z-index:2;border-bottom:3px solid var(--xaf-u)}
 .xaf-me__ground,.xaf-me__scene .xaf-me__ground{clip-path:none!important}
 .xaf-me__content,.xaf-me__scene .xaf-me__content{transform:none!important;padding:10px 12px;justify-content:flex-start}
 .xaf-me__rail{width:100%;margin-bottom:6px;gap:6px}
 .xaf-me__rail ol a{width:28px;height:28px;font-size:13px}
 .xaf-me__rail ol a{min-width:28px}
 .xaf-me__play,.xaf-me__fill{display:none}
 .xaf-me__body{grid-template-columns:150px minmax(0,1fr);gap:12px}
 .xaf-me__loom{padding:0}
 .xaf-me__svg{width:150px}
 .xaf-me__brace,.xaf-me__colk,.xaf-me__rivet,.xaf-me__flat,.xaf-me__cap,.xaf-me__tags,.xaf-me__gauge,.xaf-me__eqs{display:none}
 .xaf-me__panel{min-height:0;padding-top:0}
 .xaf-me__disp{height:96px}
 .xaf-me__fig,.xaf-me__fig[data-me-fig]{font-size:22px!important;max-width:100%;overflow-wrap:anywhere}
 .xaf-me__sum{top:100px;font-size:13px}
 .xaf-me__mirror{top:96px}
 .xaf-me__ghost{display:none}
 .xaf-me__mirror .xaf-seg{display:grid;width:100%}
 .xaf-me__mirror .xaf-seg span{padding:6px 8px;font-size:13px}
 .xaf-me__track{margin-top:0}
 .xaf-me__num,.xaf-me__step:nth-child(n) .xaf-me__num{font-size:56px;color:#9a5f12}
 .xaf-me__step,.xaf-me__step:nth-child(n){min-height:60svh;padding:24px 16px;align-items:center;justify-content:flex-start}
 .xaf-me__step:last-child{min-height:90svh}
 .xaf-me__card,.xaf-me__step:nth-child(n) .xaf-me__card{width:100%;background:#fffdf8;color:var(--xaf-ink);border-color:#c9d4cc}
 .xaf-me__step:nth-child(n) .xaf-kicker{color:#2c5b52}
 .xaf-me__card h3{font-size:24px}
 .xaf-pv__grid{grid-template-columns:minmax(0,1fr)}
 .xaf-pv__panel{position:sticky;top:0;z-index:2;height:35svh;border-bottom:3px solid var(--xaf-u)}
 .xaf-pv__pin{position:relative;height:35svh;display:grid;grid-template-columns:120px minmax(0,1fr);grid-template-rows:auto auto 1fr;gap:4px 12px;padding:10px 14px;align-content:start}
 .xaf-pv__pin .xaf-kicker{grid-column:1/-1;margin:0}
 .xaf-pv__loom{grid-row:2/span 2}
 .xaf-pv__svg{width:120px}
 .xaf-pv__tag{display:none}
 .xaf-pv__total{font-size:26px}
 .xaf-pv__ro p{font-size:14px}
 .xaf-pv__lit{font-size:14px;min-height:0;max-height:7.5em;overflow:clip}
 .xaf-pv__reg{padding:28px 16px 40px}
 .xaf-pv__head h2{font-size:34px}
 .xaf-pv__row{grid-template-columns:minmax(0,1fr);grid-template-areas:'lab' 'def' 'cur' 'st' 'mini' 'basis';padding:14px 12px}
 .xaf-il{min-height:0}
 .xaf-il__in{width:calc(100% - 32px);padding:44px 0 40px}
 .xaf-il__top{grid-template-columns:minmax(0,1fr);gap:12px}
 .xaf-il__h h2{font-size:34px}
 .xaf-il__ratio{justify-items:start;text-align:left}
 .xaf-il__rv{font-size:88px}
 .xaf-il__ratio small{font-size:15px}
 .xaf-il__svg--wide{display:none}
 .xaf-il__svg--hang{display:block;width:min(318px,88vw)}
 .xaf-presets{justify-content:stretch;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
 .xaf-presets .xaf-kicker,.xaf-presets__read{grid-column:1/-1}
 .xaf-presets button{padding:8px 8px}
 .xaf-presets button strong{font-size:14px}
 .xaf-presets button span{font-size:13px}
 .xaf-rd__head{width:calc(100% - 32px);padding:44px 0 10px}
 .xaf-rd__head h2{font-size:34px}
 .xaf-rd__pin{height:38svh;z-index:2;justify-content:flex-start;padding:10px 14px;background:var(--xaf-deep);border-bottom:3px solid var(--xaf-hi)}
 .xaf-rd__stage,.xaf-rd__scene .xaf-rd__stage{width:100%;margin-left:0;transform:none!important}
 .xaf-rd__extra,.xaf-rd__band{display:none}
 .xaf-rd__rail{margin-bottom:6px}
 .xaf-rd__rail a{width:30px;height:30px;font-size:13px}
 .xaf-rd__bars{min-height:0;gap:6px}
 .xaf-rd__bh{margin:0}
 .xaf-rd__bh span{min-width:0;font-size:13px}
 .xaf-rd__bh output{font-size:26px}
 .xaf-rd__bh small{display:none}
 .xaf-rd__svg{width:100%}
 .xaf-rd__axis{width:100%}
 .xaf-rd__axis span:nth-child(2),.xaf-rd__axis span:nth-child(4){display:none}
 .xaf-rd__loose,.xaf-rd__ghosts,.xaf-rd__rib,.xaf-rd__inv,.xaf-rd__split{display:none}
 .xaf-rd__ann{display:none}
 .xaf-rd__track{margin-top:0}
 .xaf-rd__beat,.xaf-rd__beat:nth-child(n){min-height:60svh;padding:24px 16px;align-items:center;justify-content:flex-start}
 .xaf-rd__beat:last-child{min-height:90svh}
 .xaf-rd__card{width:100%}
 .xaf-rd__card h3{font-size:22px}
 .xaf-nx__grid{width:calc(100% - 32px);padding:44px 0 40px}
 .xaf-nx__lead h2{font-size:32px}
 .xaf-nx__book{height:auto}
 .xaf-nx__fan{position:static;display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 2px 16px}
 .xaf-sw,.xaf-nx__book .xaf-sw[data-sw]{position:relative;left:auto;bottom:auto;flex:0 0 82%;height:auto;min-height:440px;transform:none!important;scroll-snap-align:start}
 .xaf-nx__rivet{left:6px;top:-6px;bottom:auto}
 .xaf-nx__book{height:auto}
 .xaf-nx__read{position:static;width:auto}
 .xaf-cl__grid{width:calc(100% - 32px);gap:24px;padding:44px 0 0}
 .xaf-cl__copy h2{font-size:34px}
 .xaf-inv{padding:20px 16px;min-height:60svh}
 .xaf-inv__line{grid-template-columns:minmax(0,1fr);grid-template-areas:'k' 'amt' 'calc' 'w';text-align:left}
 .xaf-inv__amt{text-align:left}
 .xaf-inv__sum{font-size:32px}
 .xaf-inv__delta{justify-items:start}
 .xaf-inv__delta output{font-size:40px}
 .xaf-cl__selv{height:80px}
}
@media(prefers-reduced-motion:reduce){.xaf-me__ground,.xaf-me__content,.xaf-rd__stage,.xaf-sw,.xaf-ab__mv,.xaf-ab__svg,[data-show]{transition:none!important}}
:root[data-motion=calm] :is(.xaf-me__ground,.xaf-me__content,.xaf-rd__stage,.xaf-sw,.xaf-ab__mv,.xaf-ab__svg,[data-show]){transition:none!important}
.xaf-bench__svg[data-lit] :is(.xc-body,.xc-fr) .xc-c{opacity:.25;transition:opacity 260ms}
.xaf-bench__svg[data-lit=e] .xc-e,.xaf-bench__svg[data-lit=u] :is(.xc-u,.xc-f,.xc-v),.xaf-bench__svg[data-lit=x] .xc-x{opacity:1}
/* alive: the fringe breathes wherever it is the reading's moving part */
:root[data-m-go] .xaf-bench[data-on] .xaf-bench__svg .xc-fr rect.xc-f,:root[data-m-go] .xaf-ab[data-on] .xaf-ab__stage[data-view=overlay] .xaf-ab__cl--b .xc-fr rect.xc-f{animation-name:xaf-breathe;animation-duration:2.2s;animation-delay:1s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
:root[data-m-go] .xaf-rd[data-on] .xaf-rd__scene:not([data-beat="0"]) [data-rd-risk] rect.xr-f{animation-name:xaf-breathe;animation-duration:2s;animation-delay:900ms;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
:root[data-m-go] .xaf-rd[data-on] .xaf-rd__scene[data-beat="0"] [data-rd-imp] rect.xr-u{animation-name:xaf-breathe;animation-duration:2.4s;animation-delay:1.2s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
.xaf-cl__scrub output,.xaf-ro__chg output,.xaf-rd__bh output,.xaf-pv__ro output{white-space:nowrap}

/* ---------- r8 + r9: review fixes (dark-glass method, 100svh swatch book, 200svh near-black interlude, enlarged instruments & 14px+ mint labels) ---------- */
/* splash: fuller stage and larger labels on 1440 laptop frame */
@media(min-width:1101px){
 .xaf-sp__stage{left:48%}
 .xaf-sp__unit,.xaf-sp__cols{font-size:14px}
}

/* bench: key read-out (4.25rem) pinned in the bench header; 6px slider tracks; 14px+ labels; hover read-out chip; full-width hand-over */
.xaf-bench{scroll-margin-top:88px}
.xaf-bench__head{display:grid;grid-template-columns:minmax(0,38fr) minmax(0,62fr);gap:24px 44px;align-items:start;padding-bottom:24px;border-bottom:1px solid #6bb68f45}
.xaf-bench__title{display:grid;gap:10px}
.xaf-bench__head h2{font-size:clamp(30px,2.7vw,40px);max-width:22ch;line-height:1.08;color:#f6f4ef}
.xaf-ro{margin:0;padding:22px 26px;background:#072d2b;border:1px solid #c98a2b88;border-top:4px solid var(--xaf-e);gap:10px 28px}
.xaf-ro__main{display:flex;align-items:baseline;gap:12px;margin:2px 0 0}
.xaf-ro__total{font:850 clamp(68px,4.8vw,76px)/0.98 var(--gft-font-display);letter-spacing:-.05em;color:#f6f4ef}
.xaf-ro__unit{font:700 20px var(--gft-font-mono);color:var(--xaf-lab)}
.xaf-ro__chg{font:600 16px var(--gft-font-mono);margin-top:6px;color:#e6f4ee}
.xaf-ro__mini dt{font:600 14px var(--gft-font-mono);color:var(--xaf-lab)}
.xaf-ro__mini dd{font:700 16px var(--gft-font-mono);color:#f6f4ef}
.xaf-ro__read{font-size:16px;color:#eef6f2}
.xaf-bench__a{grid-template-columns:minmax(0,42fr) minmax(0,58fr);gap:48px;margin-top:26px;align-items:start}
.xaf-field{padding:5px 0}
.xaf-field label{font-size:16px}
.xaf-field label small{font:600 14px var(--gft-font-mono);color:var(--xaf-lab)}
.xaf-field__track{display:flex;align-items:center;min-height:32px}
.xaf-range{-webkit-appearance:none;appearance:none;height:6px;background:#072d2b;border:1px solid #6bb68f88;border-radius:3px}
.xaf-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--xaf-e);border:2px solid #f6f4ef;cursor:pointer}
.xaf-field[data-goes=u] .xaf-range::-webkit-slider-thumb,.xaf-field[data-goes=tag] .xaf-range::-webkit-slider-thumb,.xaf-field[data-goes=f] .xaf-range::-webkit-slider-thumb{background:var(--xaf-u)}
.xaf-field[data-goes=x] .xaf-range::-webkit-slider-thumb{background:var(--xaf-x)}
.xaf-range::-moz-range-track{height:6px;background:#072d2b;border:1px solid #6bb68f88;border-radius:3px}
.xaf-range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--xaf-e);border:2px solid #f6f4ef;cursor:pointer}
.xaf-ctl input[type=number]{font:600 20px var(--gft-font-mono);font-variant-numeric:tabular-nums}
.xaf-bench__stage{position:sticky;top:92px;padding:20px 24px 36px;background:#093835;border:1px solid #6bb68f45}
.xaf-bench__rodtag{font-size:14px}
.xaf-bench__invtag{font-size:15px;bottom:-28px}
.xaf-cap{padding-top:16px;font-size:15.5px;color:#e6f4ee;max-width:36ch;display:grid;gap:12px}
.xaf-cap .xaf-kicker{color:var(--xaf-hi);margin:0}
.xaf-cap p{margin:0}
.xaf-bench__pills{list-style:none;margin:4px 0 0;padding:12px 0 0;border-top:1px solid #6bb68f40;display:grid;gap:8px;font:600 14px var(--gft-font-mono);color:#eef6f2}
.xaf-bench__pills li{display:flex;align-items:center;gap:10px}
.xaf-bench__pills i{width:14px;height:14px;flex:none;background:var(--xaf-e)}
.xaf-bench__pills .p-u{background:var(--xaf-u)}.xaf-bench__pills .p-x{background:var(--xaf-x)}.xaf-bench__pills .p-f{background:var(--xaf-hi)}
.xaf-bench__b{margin-top:56px;padding-top:36px;scroll-margin-top:96px}
.xaf-legend{font-size:14px}
.xaf-row__track{height:44px}
.xaf-row__tag{font-size:15px;color:#e6f4ee}
.xaf-rows__scale{font-size:14px;color:#e6f4ee;margin-top:6px}
.xaf-hover-wrap{display:flex;align-items:center;gap:14px;margin-top:14px;padding:12px 18px;background:#072d2b;border:1px solid var(--xaf-hi);border-left:4px solid var(--xaf-hi)}
.xaf-hover__badge{font:700 13px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;background:var(--xaf-hi);color:#1c1405;white-space:nowrap}
.xaf-hover{margin:0;font:600 15.5px/1.45 var(--gft-font-mono);color:#f6f4ef}
.xaf-bench__lift{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(180px,320px);align-items:center;gap:24px;margin-top:28px;padding:16px 22px;background:#072d2b;border:1px solid #6bb68f55}
.xaf-lift__copy{display:grid;gap:4px;text-transform:none;letter-spacing:0}
.xaf-lift__copy span{font:700 15px var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#f3d7a4}
.xaf-lift__copy small{font:14px var(--gft-font-mono);color:var(--xaf-lab)}
.xaf-lift__threads{width:100%;height:36px;display:block}

/* pressed chips, checked segments and current steps carry a visible outline, not only a fill */
:is(.xaf-sp__chips button,.xaf-presets button,.xaf-excl button)[aria-pressed=true],.xaf-seg input:checked+span,:is(.xaf-me__rail,.xaf-rd__rail) a[aria-current=step]{outline:2px solid #fbe2b0;outline-offset:2px}
.xaf-pv .xaf-seg input:checked+span{outline-color:#f6f4ef}

/* A / B: 70svh grid stage, 15px cell labels above each cloth, compact padding, zero overlap */
.xaf-ab{padding:48px 0 52px}
.xaf-ab__stage{height:max(668px,74svh);--cw:min(304px,40cqw);--off:min(182px,24cqw);top:max(84px,calc(50svh - 334px))}
:root[data-m-go] .xaf-ab__stage{animation:none!important}
.xaf-ab__cl{top:20px}
.xaf-ab__lab{font:600 14.5px/1.35 var(--gft-font-mono);color:#eef6f2;min-height:2.7em;margin:0 0 4px 4px}
.xaf-ab__cl--a .xaf-ab__lab{color:var(--xaf-lab)}
.xaf-ab__cellmeta{display:flex;justify-content:space-between;gap:8px;margin:0 4px 8px;padding:4px 0;border-top:1px solid #6bb68f40;border-bottom:1px solid #6bb68f40;font:600 14px var(--gft-font-mono);color:#dceee6;transition:opacity 400ms}
.xaf-ab__cl--b .xaf-ab__cellmeta{opacity:calc(1 - var(--k) * 3)}
.xaf-ab__cl--b .xaf-ab__cellmeta span:nth-child(2){color:var(--xaf-hi)}
.xaf-ab__stage[data-view=overlay] .xaf-ab__cl--b .xaf-ab__cellmeta{opacity:0}
.xaf-ab__brace{bottom:124px}
.xaf-ab__delta{bottom:18px}
@media(max-width:1100px){
 .xaf-bench__head{grid-template-columns:minmax(0,1fr)}
 .xaf-bench__stage{position:relative;top:auto}
 .xaf-bench__lift{grid-template-columns:auto minmax(0,1fr)}
 .xaf-lift__threads{display:none}
 .xaf-ab__stage{position:relative;top:auto}
}
.xaf-seg--ab{flex-wrap:wrap}
.xaf-ab__blend{display:grid;gap:4px;width:min(100%,420px);font:600 14px var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#f3d7a4}
.xaf-ab__bv{display:grid;grid-template-columns:minmax(0,1fr) 6.5em;gap:12px;align-items:center}
.xaf-ab__bv input{width:100%;accent-color:var(--xaf-hi);min-height:28px}
.xaf-ab__bv output{font:700 20px var(--gft-font-mono);font-variant-numeric:tabular-nums;color:#f6f4ef;text-transform:none;letter-spacing:0}
.xaf-ab__bnote{font-size:15px;line-height:1.5;color:#e6f4ee;margin:-6px 0 0}
.xaf-ab__table caption,.xaf-ab__table thead th{font-size:14px}
.xaf-ab__table tbody tr{transition:background-color 220ms}
.xaf-ab__table tbody tr:is(:hover,:focus){background:#0e4d4a}
.xaf-ab__table tbody tr:focus{outline:2px solid var(--xaf-hi);outline-offset:-2px}
.xaf-ab__rowread{font:15px/1.5 var(--gft-font-mono);color:#f3d7a4;border-left:3px solid var(--xaf-hi);padding-left:12px;margin-top:12px}

/* method: full-bleed dark sticky stage behind translucent dark-glass step cards pinned to the left edge (max 380px); no cream slab */
.xaf-me{background:var(--xaf-night);color:var(--xaf-text);border-top:1px solid #6bb68f40}
.xaf-me__head{width:min(1360px,calc(100% - 80px));margin-inline:auto;padding:48px 0 24px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px 36px;background:transparent}
.xaf-me__head .gft-eyebrow{color:var(--xaf-lab);margin-bottom:8px}
.xaf-me__head h2{color:#f6f4ef;font-size:clamp(36px,3.6vw,52px);max-width:20ch;margin:0}
.xaf-me__meta{display:grid;gap:4px;margin:0;padding:12px 18px;background:rgba(14,77,74,.75);border:1px solid #c98a2b88;border-left:3px solid var(--xaf-hi)}
.xaf-me__meta span{font:600 13px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--xaf-lab)}
.xaf-me__meta strong{font:600 16px var(--gft-font-mono);color:var(--xaf-hi)}
.xaf-me__ground,.xaf-me__scene[data-step] .xaf-me__ground{clip-path:none!important;background:radial-gradient(ellipse at 68% 48%,#115955 0%,#0b423f 54%,#062927 100%)}
.xaf-me__content,.xaf-me__scene[data-step] .xaf-me__content{transform:none!important;padding:22px max(40px,calc((100vw - 1360px) / 2)) 26px calc(max(40px,(100vw - 1360px) / 2) + 416px);align-items:stretch}
.xaf-me__rail{width:100%;max-width:820px;align-self:start}
.xaf-me__body{grid-template-columns:auto minmax(0,1fr);gap:36px;align-self:start;width:100%}
.xaf-me__step,.xaf-me__step:nth-child(n){min-height:84svh;justify-content:flex-start!important;align-items:flex-start;padding:0 max(40px,calc((100vw - 1360px) / 2))}
.xaf-me__step:last-child{min-height:96svh}
.xaf-me__card,.xaf-me__step:nth-child(n) .xaf-me__card{width:min(100%,380px);max-width:380px;background:rgba(8,40,36,.88);border:1px solid #c98a2b;border-left:4px solid var(--xaf-hi);color:var(--xaf-text);padding:24px 26px;box-shadow:0 22px 50px rgba(3,18,16,.58);backdrop-filter:blur(8px)}
.xaf-me__card .xaf-kicker,.xaf-me__step:nth-child(n) .xaf-kicker{color:#f3d7a4;font-size:14px}
.xaf-me__num,.xaf-me__step:nth-child(n) .xaf-me__num{color:var(--xaf-hi);font-size:68px;margin:-2px 0 10px}
.xaf-me__card h3{color:#f6f4ef;font-size:26px;line-height:1.12;margin-bottom:10px}
.xaf-me__card p{color:#e8f3ee;font-size:16px;line-height:1.58}
@media(min-width:641px){
 .xaf-me__card,.xaf-me__step:nth-child(n) .xaf-me__card{position:sticky;top:16svh}
 .xaf-rd__beat,.xaf-rd__beat:nth-child(n){align-items:flex-start;padding-top:0;padding-bottom:0}
 .xaf-rd__card{position:sticky;top:14svh}
}
@media(min-width:641px) and (prefers-reduced-motion:no-preference){
 :root[data-m-go]:not([data-motion=calm]) :is(.xaf-me__step,.xaf-rd__beat):not([data-cur])>:is(.xaf-me__card,.xaf-rd__card){opacity:0;pointer-events:none;transition:opacity 180ms ease}
 :root[data-m-go]:not([data-motion=calm]) :is(.xaf-me__step,.xaf-rd__beat)[data-cur]>:is(.xaf-me__card,.xaf-rd__card){opacity:1;transition:opacity 220ms ease}
}

/* provenance: 14px+ light mint mono labels (#d4efe5) with high contrast on dark green */
.xaf-pv{background:var(--xaf-deep);color:var(--xaf-text);border-top:1px solid #6bb68f40}
.xaf-pv__total{font-size:52px}
.xaf-pv__tag{font-size:15px;color:#f3d7a4}
.xaf-pv__head .gft-eyebrow,.xaf-pv__bt,.xaf-pv__lab small,.xaf-pv__k{color:var(--xaf-lab);font-size:14px}
.xaf-pv__head h2{color:#f6f4ef}
.xaf-pv__lede{color:#e8f3ee;font-size:17.5px}
.xaf-pv__ctl .xaf-seg{border-color:#6bb68f}
.xaf-pv__ctl .xaf-seg input:checked+span{background:var(--xaf-e);color:var(--xaf-night)}
.xaf-pv__ctl .xaf-primary{background:var(--xaf-e)!important;color:var(--xaf-night)!important;border-color:var(--xaf-e)!important}
.xaf-pv__bt{border-bottom-color:#6bb68f80}
.xaf-pv__row{border-bottom-color:#6bb68f38;border-left-color:color-mix(in srgb,var(--c) 65%,transparent);padding:12px 14px}
.xaf-pv__row[data-hot]{background:#0e4d4a;border-left-color:var(--xaf-hi)}
.xaf-pv__lab span{font-size:17px;color:#f6f4ef}
.xaf-pv__def .xaf-mono{font-size:17px;font-variant-numeric:tabular-nums;color:#f2f8f5}
.xaf-pv__row :is(input,select){background:#072d2b;color:#f6f4ef;border-color:#6bb68f;box-shadow:inset 5px 0 0 var(--c);padding-left:14px}
.xaf-pv__row input{font:600 18px var(--gft-font-mono);font-variant-numeric:tabular-nums;padding-right:8px}
.xaf-pv__row select{font:600 14.5px var(--gft-font-mono)}
@media(min-width:1101px){.xaf-pv__row[data-row=shockMode]{grid-template-columns:minmax(0,1.08fr) minmax(0,.84fr) minmax(256px,1.98fr) auto auto}}
.xaf-pv__row button{background:transparent;color:#f6f4ef;border-color:#d4efe5;min-height:44px;font-size:14px}
.xaf-fixed{font-size:20px}
.xaf-fixed em{background:var(--xaf-e);color:var(--xaf-night);font-size:13px}
.xaf-badge{border-color:#9ec5b5;color:#eef6f2;min-height:32px;display:inline-flex;align-items:center;font-size:14px}
.xaf-badge--fixed{background:#eef3f6;color:#0b3a37;border-color:#eef3f6}
.xaf-pv__mini{color:#e6f4ee;font-size:14px}
.xaf-pv__basis{color:#e6f4ee;font-size:15.5px}
.xaf-mini-rib em,.xaf-mini-gauge em{font-size:13.5px;color:#e6f4ee}
.xaf-mini-rod{border-top-color:#8fa5b4}.xaf-mini-rod i{background:#8fa5b4}
.xaf-mini-unit i{border-color:#8fb5a5}
.xaf-mini-gauge i,.xaf-mini-gauge i::after{background:#8fa5b4}
.xaf-pv__svg{width:min(400px,100%,calc((100svh - 380px) * .8))}

/* interlude: near-black (#04120f) full-viewport sticky 200svh interlude, 3rem clear space above full-bleed 3-colour field, 70/30 scroll split, 15px+ toggles */
.xaf-il{background:#04120f;color:var(--xaf-text);border-top:1px solid #c98a2b55;border-bottom:1px solid #c98a2b55}
:root[data-m-go] .xaf-il__stage{animation:none!important}
@media(min-width:641px){
 .xaf-il{min-height:196svh;display:block}
 .xaf-il__pin{position:sticky;top:0;height:100svh;display:flex;align-items:center;overflow:clip}
 .xaf-il__steps{position:relative;margin-top:-100svh;height:196svh;display:grid;grid-template-rows:1fr 1fr;pointer-events:none}
}
.xaf-il__in{width:min(1380px,calc(100% - 64px));padding:16px 0;gap:14px}
.xaf-il__top{margin-bottom:3rem;align-items:end}
.xaf-il__h h2{font-size:clamp(36px,3.8vw,52px);line-height:1.02;max-width:18ch}
.xaf-il__rv{font-size:clamp(92px,8vw,122px)}
.xaf-il__ratio small{font-size:16px;color:#eef6f2}
.xaf-il__stage{gap:10px;width:100%}
.xaf-il__iris{width:100%;display:grid;justify-items:center;gap:8px}
.xaf-il__svg--wide{width:auto;max-width:min(1340px,100%);max-height:248px;height:auto}
.xaf-il__svg--wide .xc-c{transition:translate 640ms cubic-bezier(.16,1,.3,1),opacity 400ms}
.xaf-il[data-il-phase="1"] .xaf-il__svg--wide .xc-e{translate:-12px 0}
.xaf-il[data-il-phase="1"] .xaf-il__svg--wide :is(.xc-u,.xc-f,.xc-v){translate:-4px 0}
.xaf-il[data-il-phase="1"] .xaf-il__svg--wide .xc-x{translate:20px 0;opacity:.52}
.xaf-il__splitbar{display:grid;grid-template-columns:70fr 30fr;width:min(1340px,100%);border-top:2px solid #6bb68f66;padding-top:6px;font:600 14px var(--gft-font-mono);color:var(--xaf-lab);transition:border-color 400ms}
.xaf-il__splitbar span:first-child{color:#f3d7a4;border-right:2px solid var(--xaf-hi);padding-right:12px}
.xaf-il__splitbar span:last-child{padding-left:14px;color:#c9d8ee}
.xaf-il[data-il-phase="1"] .xaf-il__splitbar{border-top-color:var(--xaf-hi)}
.xaf-il__key{font:600 14px var(--gft-font-mono);color:#eef6f2;gap:8px 28px}
.xaf-presets{gap:10px 14px;margin-top:2px}
.xaf-presets .xaf-kicker{font-size:14px;color:var(--xaf-lab)}
.xaf-presets button{padding:10px 22px;border:1.5px solid var(--xaf-e);min-height:48px;background:#072d2bcc}
.xaf-presets button strong{font-size:16px}
.xaf-presets button span{font:600 14px var(--gft-font-mono)}
.xaf-presets__read{font-size:15.5px;color:#f3d7a4}

/* reading: enlarged 70.0% bar and +3.00% figure filling the stage, 14px+ light mint mono labels, 16px+ beat copy at 34ch */
.xaf-rd__stage{--rdw:min(920px,calc(100vw - 500px));--rdm:max(40px,calc((100vw - 1360px) / 2))}
.xaf-rd__bars{gap:20px}
.xaf-rd__bh{margin:0 0 14px;gap:6px 18px}
@media(min-width:641px){.xaf-rd__bar--imp .xaf-rd__bh{margin-bottom:36px}}
.xaf-rd__bh span{font-size:14px;color:var(--xaf-lab)}
.xaf-rd__bh output{font-size:clamp(74px,6vw,90px);line-height:.95}
.xaf-rd__bh small{font-size:16px;color:#eef6f2}
.xaf-rd__axis{font-size:14px;color:var(--xaf-lab)}
.xaf-rd__extra{height:168px}
.xaf-rd__scene[data-beat="0"] [data-rd-imp] .xr-x{translate:28px 0}
.xaf-rd__scene[data-beat="3"] [data-rd-imp] .xr-c{opacity:.3}
.xaf-rd__share,.xaf-rd__cascade{position:absolute;left:0;top:6px;right:0;display:flex;align-items:stretch;gap:14px}
.xaf-rd__share p,.xaf-rd__cascade p{display:grid;gap:4px;align-content:start;margin:0;padding:12px 16px;border:1px solid #6bb68f66;background:#072d2bcc;min-width:0}
.xaf-rd__share span,.xaf-rd__cascade span{font:600 14px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--xaf-lab)}
.xaf-rd__share b,.xaf-rd__cascade b{font:700 clamp(18px,1.7vw,25px)/1.1 var(--gft-font-mono);font-variant-numeric:tabular-nums;color:#f6f4ef}
.xaf-rd__share em,.xaf-rd__cascade em{font:15px var(--gft-font-mono);font-style:normal;color:#f3d7a4}
.xaf-rd__share i,.xaf-rd__cascade i{align-self:center;font:700 28px var(--gft-font-mono);font-style:normal;color:var(--xaf-hi)}
.xaf-rd__share p:first-child,.xaf-rd__cascade p:nth-of-type(1){border-color:var(--xaf-u)}
.xaf-rd__cas-hi{border-color:var(--xaf-hi)!important;background:#3a2a0ccc!important}
.xaf-rd__cas-hi b{color:var(--xaf-hi)}
.xaf-rd__ghosts p{font-size:14px;color:#eef6f2}
.xaf-rd__w{font-size:14px}
.xaf-rd__rib em{font-size:14px;color:var(--xaf-lab)}
.xaf-rd__inv{font-size:15.5px;color:#eef6f2}
.xaf-rd__split p{display:none}
.xaf-rd__ledger{position:absolute;left:310px;top:0;width:min(580px,calc(100% - 310px))}
.xaf-rd__lk{font:600 14px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#f3d7a4;margin:0 0 6px}
.xaf-rd__ledger table{width:100%;border-collapse:collapse;font:15px var(--gft-font-mono)}
.xaf-rd__ledger :is(th,td){text-align:left;padding:7px 10px 7px 0;border-bottom:1px dashed #e9b45e80;color:#eef5f0}
.xaf-rd__ledger thead th{font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--xaf-lab)}
.xaf-rd__ledger td:nth-child(2){color:#f3d7a4}
.xaf-rd__xl{position:absolute;left:auto;right:0;top:0;width:min(390px,47%);list-style:none;margin:0;padding:0;display:grid;gap:2px}
.xaf-rd__xl li{display:flex;justify-content:space-between;gap:10px;font:14px/1.35 var(--gft-font-mono);color:#eef6f2;padding:3px 0;border-bottom:1px solid #6bb68f38;white-space:nowrap}
.xaf-rd__xl em{font-style:normal;color:var(--xaf-hi);opacity:0;transition:opacity 260ms}
.xaf-rd__xl li:not([data-on]) em{display:none}
.xaf-rd__xl li[data-on]{text-decoration:line-through;text-decoration-color:var(--xaf-hi)}
.xaf-rd__xl li[data-on] em{opacity:1;text-decoration:none}
.xaf-rd__ann{font-size:16px;color:#eef6f2}
.xaf-rd__beat:last-child{min-height:86svh}
.xaf-rd__card{width:min(32vw,420px);background:rgba(7,45,43,.94);border:1px solid #c98a2b;border-top:3px solid var(--xaf-hi);padding:24px 26px}
.xaf-rd__card .xaf-kicker{font-size:14px;color:var(--xaf-lab)}
.xaf-rd__card h3{font-size:25px}
.xaf-rd__card p{font-size:16.5px;line-height:1.58;max-width:34ch;color:#eef6f2}
@media(min-width:641px){
 .xaf-rd__beat:nth-child(4) .xaf-rd__card{width:min(32vw,420px);padding:20px 22px}
 .xaf-rd__beat:nth-child(4) .xaf-excl button{font-size:14px;padding:6px 8px}
 .xaf-rd__beat:nth-child(4) .xaf-excl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .xaf-rd__beat:nth-child(4) .xaf-rd__card p{font-size:16px;line-height:1.5}
}

/* next: 100svh section, 6rem top clearance on card stack so no card is clipped, populated h3 titles, 14px+ card copy */
.xaf-nx{min-height:92svh;display:flex;align-items:center}
.xaf-nx__grid{grid-template-columns:minmax(0,60fr) minmax(0,40fr);grid-template-areas:'lead lead' 'book oee' 'src src';padding:20px 0;gap:12px 44px;align-items:center}
.xaf-nx__lead{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:48px;align-items:end;gap:6px}
.xaf-nx__lead .gft-eyebrow,.xaf-nx__lead h2{grid-column:1}
.xaf-nx__intro,.xaf-nx__read{grid-column:2}
.xaf-nx__intro{grid-row:2;font-size:16px}
.xaf-nx__read{grid-row:3;font-size:15px}
.xaf-nx__lead h2{grid-row:2/span 2;font-size:clamp(32px,3.1vw,44px)}
.xaf-nx__book{position:relative;height:592px;padding-top:6rem;box-sizing:border-box}
.xaf-nx__tabs{position:absolute;top:8px;left:16px;right:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;z-index:6}
.xaf-nx__tabs button{display:flex;align-items:center;gap:6px;min-height:44px;padding:6px 10px;background:#072d2b;border:1px solid #6bb68f88;color:#eef6f2;font:600 13.5px/1.2 var(--gft-font-mono);text-align:left;transition:background-color 220ms,border-color 220ms}
.xaf-nx__tabs button b{color:var(--xaf-hi);flex:none}
.xaf-nx__tabs button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xaf-nx__tabs button[aria-pressed=true]{background:#125954;border-color:var(--xaf-hi);outline:2px solid #fbe2b0;outline-offset:2px}
.xaf-sw{left:16px;top:6rem;bottom:106px;height:auto;width:min(38vw,500px);transform-origin:26px calc(100% - 26px)}
.xaf-nx__book[data-front="0"] .xaf-sw[data-sw="1"],.xaf-nx__book[data-front="1"] .xaf-sw[data-sw="0"],.xaf-nx__book[data-front="2"] .xaf-sw[data-sw="0"]{--o:1;transform:translateX(44px) rotate(5deg)}
.xaf-nx__book[data-front="0"] .xaf-sw[data-sw="2"],.xaf-nx__book[data-front="1"] .xaf-sw[data-sw="2"],.xaf-nx__book[data-front="2"] .xaf-sw[data-sw="1"]{--o:2;transform:translateX(88px) rotate(10deg)}
.xaf-sw__leaf{padding:16px 52px 14px 24px;gap:5px}
.xaf-sw__id{font-size:14px;color:var(--xaf-lab)}
.xaf-sw h3{font-size:23px;line-height:1.1;color:#f6f4ef;margin:0}
.xaf-sw__use{font-size:15px;line-height:1.4;color:#eef6f2;margin:0}
.xaf-sw__svg{width:104px}
.xaf-sw__thumb figcaption{font-size:14px;color:#f3d7a4}
.xaf-sw__thumb--bracket .xaf-sw__mark{left:110px;top:4px;height:122px}
.xaf-sw__thumb--window .xaf-sw__mark{left:36px;width:34px;height:132px}
.xaf-sw__thumb--landed .xaf-sw__mark{left:114px;top:24px;width:52px;box-shadow:0 40px 0 var(--xaf-x)}
.xaf-sw__go{font-size:14.5px;min-height:40px;padding-left:38px}
.xaf-nx__rivet{left:28px;bottom:118px}
.xaf-nx__book .xaf-sw[data-sw]:is(:hover,:focus-within){filter:drop-shadow(0 26px 30px #02191799)}
.xaf-nx__oee{align-self:center;background:#072d2bcc;border:1px solid #6bb68f55;border-left:6px solid var(--xaf-x);padding:24px 28px;gap:16px}
.xaf-nx__quote{margin:0}
.xaf-nx__quote p{font:italic 400 clamp(26px,2.4vw,34px)/1.18 var(--gft-font-serif,Georgia,serif);color:#f6f4ef}
.xaf-nx__chips{display:grid;gap:10px}
.xaf-nx__chip{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:48px;padding:10px 18px;border:1px solid #d4efe5;color:#f6f4ef;text-decoration:none;font:600 15px var(--gft-font-mono);transition:background-color 220ms,color 220ms}
.xaf-nx__chip:hover{background:#f6f4ef;color:var(--xaf-night)}
.xaf-nx__chip--sw{border-color:var(--xaf-e);background:#072d2b}
@media(max-width:1100px){
 .xaf-me__content,.xaf-me__scene[data-step] .xaf-me__content{padding:16px 24px}
 .xaf-nx__grid{grid-template-columns:minmax(0,1fr);grid-template-areas:'lead' 'book' 'oee' 'src'}
 .xaf-nx__lead{grid-template-columns:minmax(0,1fr)}
 .xaf-nx__lead>*{grid-column:1!important;grid-row:auto!important}
 .xaf-sw{width:min(70vw,510px)}
}
@media(max-width:640px){
 .xaf-ro__total{font-size:44px}
 .xaf-bench__stage{padding:16px}
 .xaf-hover-wrap{flex-direction:column;align-items: flex-start;gap:8px}
 .xaf-bench__lift{grid-template-columns:minmax(0,1fr)}
 :root[data-m-go] .xaf-lift__svg{animation:none!important}
 .xaf-me__head{width:calc(100% - 32px);padding:36px 0 18px}
 .xaf-me__content,.xaf-me__scene[data-step] .xaf-me__content{padding:10px 12px}
 .xaf-me__step,.xaf-me__step:nth-child(n){min-height:60svh;padding:20px 16px}
 .xaf-me__card,.xaf-me__step:nth-child(n) .xaf-me__card{width:100%;max-width:none;background:rgba(8,40,36,.94);color:var(--xaf-text);border:1px solid #c98a2b;border-left:4px solid var(--xaf-hi)}
 .xaf-pv__total{font-size:26px}
 .xaf-il{min-height:0}
 .xaf-il__pin{position:relative;height:auto}
 .xaf-il__steps,.xaf-il__splitbar{display:none}
 .xaf-il__top{margin-bottom:20px}
 .xaf-rd__card{width:100%;padding:18px 16px}
 .xaf-rd__card p{max-width:none}
 .xaf-sw h3{font-size:24px}
 .xaf-sw__svg{width:148px}
 .xaf-sw__go{padding-left:0}
 .xaf-nx{min-height:0}
 .xaf-nx__oee{padding:20px 18px}
 .xaf-nx__grid{padding:40px 0}
 .xaf-nx__book{height:auto;padding-top:0}
 .xaf-nx__tabs{position:static;margin-bottom:12px}
 .xaf-nx__rivet{display:none}
 .xaf-sw,.xaf-nx__book .xaf-sw[data-sw]{position:relative;left:auto;top:auto;bottom:auto;flex:0 0 84%;height:auto;min-height:420px;transform:none!important}
 .xaf-pv__svg{width:120px}
 .xaf-rd__share,.xaf-rd__cascade,.xaf-rd__ledger,.xaf-rd__xl{display:none}
 .xaf-me__body{align-self:stretch;width:100%}
 .xaf-me__fig,.xaf-me__fig[data-me-fig]{overflow-wrap:normal;word-break:normal}
 .xaf-ab__table caption{display:block;width:100%}
}
.xaf-ab__brace{translate:calc(var(--off) * (1 - var(--k))) 0;transition:translate 700ms cubic-bezier(.65,0,.35,1)}
.xaf-ab__stage[data-view=blend] .xaf-ab__brace{transition:none}
