/* Industrial AI and computer vision. Motif: the inspection frame (field, eight boxes A to H, scan head, trace) cut by
   the ochre threshold hairline and labelled by its slate. Prefix vis-. Animation: transform, opacity, clip-path and
   filter only; every pre-state lives under :root[data-m-go]; entrances key on [data-vis-in=go], set when about 38
   percent of the viewport is filled by the section (client.ts); lives run only on [data-m-on]. */
.vis-page{--v-night:#072d2b;--v-deep:#041d1c;--v-forest:#0e4d4a;--v-sage:#6bb68f;--v-mint:#9fd8b8;--v-ochre:#c98a2b;--v-och:#e8b464;--v-paper:#f6f4ef;--v-ink:#14201e;--v-txt:#dcebe4;--v-lab:#cfe3da;--v-indigo:#2c3e7a;--v-ease:cubic-bezier(.16,1,.3,1);--v-mono:var(--gft-font-mono);isolation:isolate;overflow-x:clip}
.vis-page .gft-eyebrow{font-size:13px;letter-spacing:.06em}
.vis-sec{position:relative}
.vis-lede{font-size:clamp(17px,1.25vw,19px);line-height:1.6;max-width:46ch}
.vis-range{width:100%;accent-color:var(--v-ochre);min-height:44px;cursor:pointer}

/* ---------- the inspection frame ---------- */
.vis-fr{container-type:inline-size;position:relative;width:100%;color:var(--v-txt)}
.vis-fr__box{position:relative;aspect-ratio:var(--ar)}
.vis-fr__svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.vis-fr__ov{position:absolute;inset:0;pointer-events:none}
.vis-fr__ov>*{position:absolute;left:calc(var(--x) * .1cqw);top:calc((var(--y) - var(--vy)) * .1cqw)}
.vis-fr__slate{position:absolute;z-index:2;left:calc(54 * .1cqw);top:calc((97 - var(--vy)) * .1cqw);margin:0;max-width:none;padding:3px 8px;font:600 clamp(13px,1.3cqw,16px)/1.3 var(--v-mono);letter-spacing:.06em;color:#f4f8f6;background:#072d2bdb;border-left:3px solid var(--v-ochre);white-space:nowrap}
.vis-fr__slate-x{color:var(--v-och)}
.vis-fr__cap{margin-top:8px;font:13px/1.5 var(--v-mono);letter-spacing:.04em;color:var(--v-lab);max-width:none}
.vis-tag{font:700 clamp(13px,1.4cqw,18px)/1 var(--v-mono);color:#e9f3ee;background:#072d2bcc;padding:2px 4px;transform:translateY(calc(-100% - 5px));white-space:nowrap}
.vis-tag[data-flag="1"]{color:var(--v-och)}
.vis-flagt{font:600 13px/1 var(--v-mono);letter-spacing:.05em;padding:2px 4px;transform:translateY(5px);background:#072d2bcc;white-space:nowrap;color:var(--v-lab)}
.vis-flagt[data-status=caught]{color:var(--v-mint)}.vis-flagt[data-status=false-alarm]{color:var(--v-och)}
.vis-fr[data-truth=off] .vis-flagt{opacity:0}
.vis-case .vis-box{stroke:#cfe6da;stroke-opacity:.5;stroke-width:2.5;fill:#cfe6da;fill-opacity:.03;transition:fill-opacity .3s,stroke .3s,stroke-opacity .3s}
.vis-case[data-flag="1"] .vis-box{stroke:var(--v-och);stroke-opacity:1;stroke-width:4;fill:var(--v-ochre);fill-opacity:.14}
.vis-fr--bench[data-truth=on] .vis-case[data-status=caught] .vis-box{stroke:var(--v-mint);fill:var(--v-sage);fill-opacity:.38;stroke-width:4}
.vis-fr--bench[data-truth=on] .vis-case[data-status=false-alarm] .vis-box{stroke:var(--v-och);fill:none;stroke-width:4}
.vis-fr--bench[data-truth=on] .vis-case[data-status=missed] .vis-box{stroke:#eef6f2;stroke-opacity:.9;stroke-dasharray:9 7;fill:none}
.vis-fr--bench[data-truth=on] .vis-case[data-status=clear] .vis-box{stroke-opacity:.35}
.vis-mark{stroke:#f6f4ef;stroke-opacity:.7;stroke-width:2}
.vis-hi{stroke:var(--v-mint);stroke-width:3;opacity:0}
.vis-peak{fill:#a6cdb8;fill-opacity:.4;stroke:#a6cdb8;stroke-width:1.5;transform-box:fill-box;transform-origin:50% 100%}
.vis-peak[data-flag="1"]{fill:var(--v-ochre);fill-opacity:.9;stroke:var(--v-och)}
.vis-hair{transition:transform .25s var(--v-ease)}
.vis-scan{will-change:transform}
@container (max-width:560px){.vis-tag:not([data-flag="1"]),.vis-flagt,.vis-fr--interlude .vis-gates{display:none}.vis-fr__slate{position:relative;left:0;top:0;display:inline-block;margin-bottom:6px;white-space:normal}}

/* ---------- 1 · splash ---------- */
.vis-page .gft-splash{min-height:max(600px,calc(100svh - 88px - 14svh))}
.vis-page .gft-splash__content{padding-block:40px 40px}
.vis-page .gft-splash h1{font-size:clamp(3.4rem,5.8vw,6.4rem);max-width:none;line-height:1.02;margin-top:22px;text-shadow:0 2px 24px #072d2b}
.vis-page .gft-splash__lede{max-width:27em;font-size:17px;color:#dbe8e0}
.vis-page .gft-splash__data,.vis-page .gft-splash__position{font-size:13px;color:#c9ddd6;letter-spacing:.06em}
.vis-page .gft-splash__caption{font-size:13px;color:#c9ddd6}
.vis-page .gft-splash__cue{font-size:15px}
.vis-page .gft-splash__structure::after{background:linear-gradient(90deg,#072d2bd9 0%,#072d2b00 12%)}
.vis-page .gft-splash.gft-splash--instrument .gft-splash__structure{inset:0 -4% 0 40%;display:flex;align-items:flex-end;padding-bottom:calc(var(--splash-strip-h) + 6px)}
.vis-hero{width:100%}
.vis-hero .vis-fr__cap{display:none}
.vis-hero__act{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.vis-hero__act .gft-button{width:280px;max-width:100%}
.vis-hero__chip{display:flex;align-items:center;gap:10px;font:600 13px/1.4 var(--v-mono);letter-spacing:.05em;color:var(--v-och);margin:0}
.vis-hero__chip i{width:8px;height:8px;border-radius:50%;background:var(--v-ochre);flex:none}
/* the splash entrance: field from the brackets, the head crosses and boxes each box as it passes, peaks rise, the hairline sets */
:root[data-m-go] .vis-fr--hero .vis-fr__field{animation:vis-field 300ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-fr--hero .vis-scan__in{animation:vis-head-in 760ms 100ms cubic-bezier(.45,0,.3,1) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-fr--hero .vis-case{animation:vis-box-draw 170ms calc(100ms + var(--sx) * 560ms) linear backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-fr--hero .vis-tag{animation:vis-tag-in 220ms calc(160ms + var(--sx) * 560ms) var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-fr--hero .vis-peak{animation:vis-peak-in 220ms calc(140ms + var(--sx) * 560ms) var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-fr--hero .vis-hair__l{animation:vis-wipe-x 200ms 680ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-fr--hero .vis-fr__slate{animation:vis-fade 260ms 600ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes vis-field{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
@keyframes vis-head-in{0%{transform:translateX(calc(40px - var(--hx,684px)))}74%{transform:translateX(calc(960px - var(--hx,684px)))}100%{transform:translateX(0)}}
@keyframes vis-box-draw{from{clip-path:inset(-20px 100% -20px -20px)}to{clip-path:inset(-20px -20px -20px -20px)}}
@keyframes vis-tag-in{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}
@keyframes vis-peak-in{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes vis-wipe-x{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
@keyframes vis-wipe-y{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
@keyframes vis-fade{from{opacity:0}to{opacity:1}}
@keyframes vis-rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}

/* ---------- 2 · bench (night) ---------- */
.vis-bench{background:var(--v-night);color:var(--v-txt);background-image:linear-gradient(#cfe6da0f 1px,transparent 1px),linear-gradient(90deg,#cfe6da0f 1px,transparent 1px);background-size:16px 16px}
.vis-bench__grid{position:relative;display:grid;grid-template-columns:minmax(360px,29%) minmax(0,1fr);grid-template-areas:'ctl stage';column-gap:44px;row-gap:28px;padding:26px 48px 84px;max-width:1600px;margin-inline:auto;align-items:start}
.vis-ctl{grid-area:ctl;display:grid;gap:18px}
.vis-ctl__th{display:grid;grid-template-columns:1fr auto;align-items:end;column-gap:16px;padding:14px 18px 6px;background:#0a3a37;border:1px solid #cfe6da2e}
.vis-ctl__label{font:600 13px/1.3 var(--v-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--v-lab);align-self:center}
.vis-ctl__value{font:800 56px/1 var(--gft-font-display);letter-spacing:-.04em;color:var(--v-och);font-variant-numeric:tabular-nums}
.vis-ctl__th .vis-range{grid-column:1/-1}
.vis-ctl__scale{grid-column:1/-1;display:flex;justify-content:space-between;font:13px var(--v-mono);color:var(--v-lab);padding-bottom:6px}
.vis-lots{border:0;padding:0;margin:0}
.vis-lots legend,.vis-modes legend,.vis-conds legend,.vis-seg legend{font:600 13px/1.4 var(--v-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--v-lab);margin-bottom:8px;padding:0}
.vis-lots__row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.vis-chip{position:relative;cursor:pointer}
.vis-chip input,.vis-mode input,.vis-cond input,.vis-bin-row input,.vis-seg input,.vis-dstep__in{position:absolute;opacity:0;width:1px;height:1px}
.vis-chip span{display:grid;gap:2px;min-height:58px;padding:9px 10px;border:1px solid #cfe6da55;background:#0a3a37;transition:background .2s,border-color .2s}
.vis-chip b{font-size:15px;line-height:1.2}.vis-chip small{font-size:13px;color:var(--v-lab)}
.vis-chip input:checked+span{background:var(--v-sage);border-color:var(--v-sage);color:var(--v-night)}
.vis-chip input:checked+span small{color:#0b2a26}
.vis-chip input:focus-visible+span,.vis-mode input:focus-visible+span,.vis-cond input:focus-visible+span,.vis-bin-row input:focus-visible+.vis-bin-row__in,.vis-seg input:focus-visible+span{outline:3px solid var(--v-ochre);outline-offset:2px}
.vis-toggle{display:flex;gap:12px;align-items:center;min-height:44px;font-size:17px;cursor:pointer}
.vis-toggle input{width:22px;height:22px;accent-color:var(--v-sage)}
.vis-tally{display:grid;grid-template-columns:1fr 1fr;margin:0;border:1px solid #cfe6da33}
.vis-tally div{padding:12px 14px;border:1px solid #cfe6da1f}
.vis-tally dt{font:600 13px/1.3 var(--v-mono);letter-spacing:.04em;color:var(--v-lab)}
.vis-tally dd{margin:4px 0 0;font:800 32px/1.1 var(--gft-font-display);letter-spacing:-.03em;color:#f4f8f6}
.vis-tally dd small{font-size:17px;font-weight:600;color:var(--v-lab)}
.vis-tally [data-vis-cell=flagged] dd{color:var(--v-och)}
.vis-status{font-size:17px;line-height:1.55;color:#f0f6f3;max-width:none}
.vis-verdict{font-size:17px;line-height:1.55;color:var(--v-lab);border-left:3px solid var(--v-ochre);padding-left:14px;max-width:none}
.vis-ctl__ns{font-size:15px}
.vis-bench__stage{grid-area:stage;display:grid;gap:18px;min-width:0}
.vis-bench__head{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:28px;align-items:end}
.vis-bench__head h2{font-size:clamp(2rem,2.9vw,3.1rem);margin-top:10px;color:#f6f4ef}
.vis-bench__head .vis-lede{color:var(--v-lab)}
.vis-bench__fig{margin:0}
.vis-ladder{position:relative}
.vis-ladder__track{position:relative;height:160px;margin-inline:4%;container-type:inline-size}
.vis-ladder__zone{position:absolute;inset:22px 0 40px 0;background:repeating-linear-gradient(135deg,#c98a2b33 0 6px,#c98a2b14 6px 12px);clip-path:inset(0 0 0 calc(var(--t) * 100%));transition:clip-path .25s var(--v-ease)}
.vis-ladder__axis{position:absolute;left:0;right:0;bottom:38px;height:2px;background:#a6cdb8}
.vis-ladder__tick{position:absolute;bottom:0;left:calc(var(--s) * 100%);transform:translateX(-50%);font:13px/1 var(--v-mono);color:var(--v-lab);padding-top:16px}
.vis-ladder__tick::before{content:'';position:absolute;left:50%;top:0;height:10px;width:1px;background:#a6cdb8}
.vis-ladder__hair{position:absolute;left:0;top:0;bottom:38px;width:100%;pointer-events:none}
.vis-ladder__hair i{position:absolute;left:-1.5px;top:0;bottom:0;width:3px;background:var(--v-ochre);transform:translateX(calc(var(--t) * 100cqw));transition:transform .25s var(--v-ease)}
.vis-ladder__hair i::before{content:'';position:absolute;left:-8px;top:-2px;border:9px solid transparent;border-top:12px solid var(--v-ochre);border-bottom:0}
.vis-ladder__hair b{position:absolute;right:12px;top:-2px;font:700 13px/1 var(--v-mono);letter-spacing:.08em;color:var(--v-och);white-space:nowrap}
.vis-ladder__scan{position:absolute;left:0;top:10px;bottom:38px;width:2px;background:var(--v-sage);opacity:0}
.vis-ldot{position:absolute;left:calc(var(--s) * 100%);top:calc(16px + var(--lane) * 36px);width:44px;height:44px;margin-left:-22px;padding:0;border:0;background:none;color:inherit;z-index:1;transition:left 0s}
.vis-ldot__e,.vis-ldot__l{display:grid;place-items:center;width:100%;height:100%}
.vis-ldot__l{width:32px;height:32px;margin:6px;border-radius:50%;font:700 14px/1 var(--v-mono);background:#0a3a37;border:2px solid #cfe6da80;color:#e9f3ee;transition:background .25s,border-color .25s,color .25s}
.vis-ldot[data-status=caught] .vis-ldot__l{background:var(--v-sage);border-color:var(--v-mint);color:var(--v-night)}
.vis-ldot[data-status=false-alarm] .vis-ldot__l{border:3px solid var(--v-och);color:var(--v-och)}
.vis-ldot[data-status=missed] .vis-ldot__l{border:2px dashed #eef6f2}
.vis-page[data-truth=off] .vis-ldot:is([data-status=caught],[data-status=false-alarm]) .vis-ldot__l{background:#0a3a37;border:3px solid var(--v-och);color:var(--v-och)}
.vis-page[data-truth=off] .vis-ldot[data-status=missed] .vis-ldot__l{border:2px solid #cfe6da80}
.vis-ldot:focus-visible{outline:3px solid var(--v-ochre);outline-offset:0;border-radius:50%}
.vis-ladder__cap{margin:6px 4% 0;font:13px/1.5 var(--v-mono);color:var(--v-lab);max-width:none}
.vis-notes{position:relative;z-index:5;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);grid-template-rows:auto 1fr;column-gap:28px;row-gap:10px;padding:16px 20px;margin-inline:4%;background:#0a3a37;border:1px solid #cfe6da2e;border-top:3px solid var(--v-ochre)}
.vis-notes__body{grid-column:2;grid-row:1/3}
.vis-notes__h{font-size:22px;color:#f6f4ef}
.vis-notes__tabs{display:flex;gap:8px}
.vis-tab{min-height:44px;padding:8px 16px;border:1px solid #cfe6da66;background:transparent;font-size:15px;font-weight:600}
.vis-tab[aria-pressed=true]{background:var(--v-ochre);border-color:var(--v-ochre);color:var(--v-night)}
.vis-notes__body{display:grid}
.vis-notes__t{grid-area:1/1;font-size:17px;line-height:1.55;color:var(--v-txt);transition:opacity .25s}
.vis-notes:not([data-note="0"]) [data-vis-note="0"],.vis-notes:not([data-note="1"]) [data-vis-note="1"],.vis-notes:not([data-note="2"]) [data-vis-note="2"]{opacity:0;visibility:hidden}
/* the hairline drops through the bench's foot, across the seam, to the compare divider */
.vis-drop{position:absolute;inset:0;pointer-events:none;z-index:4;opacity:0;overflow:visible}
.vis-drop[data-ok]{opacity:1}
.vis-drop__v{position:absolute;left:-1.5px;top:var(--dt,0);width:3px;height:var(--dh,0);background:var(--v-ochre);transform:translateX(var(--dx,0));transition:transform .25s var(--v-ease)}
.vis-drop__c{position:absolute;left:calc(50% - 1.5px);bottom:0;width:3px;height:29px;background:var(--v-ochre)}
.vis-drop__h{position:absolute;left:50%;bottom:26px;width:100px;height:3px;background:var(--v-ochre);transform-origin:0 50%;transform:scaleX(var(--ds,0));transition:transform .25s var(--v-ease)}
/* bench entrance: the console wipes in behind a scan line; the frame's boxes set; the ladder dots travel from trace to score */
.vis-bench__grid::before{content:'';position:absolute;z-index:3;left:48px;top:26px;width:3px;height:560px;background:var(--v-mint);box-shadow:0 0 18px var(--v-sage);opacity:0;pointer-events:none}
:root[data-m-go] .vis-page[data-vis-armed] .vis-sec:not([data-vis-in]) [data-vis-h],:root[data-m-go] .vis-page[data-vis-armed] .vis-sec[data-vis-in=go] [data-vis-h]:not([data-m-in]){opacity:0}
:root[data-m-go] .vis-page[data-vis-armed] .vis-sec:not([data-vis-in]) [data-vis-lede]{opacity:0}
:root[data-m-go] .vis-bench[data-vis-in=go] [data-vis-lede]{animation:vis-rise 520ms 220ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-page[data-vis-armed] .vis-bench:not([data-vis-in]) :is(.vis-ctl>:not(.vis-ctl__th),.vis-bench__fig,.vis-ldot__e,.vis-notes,.vis-drop__v,.vis-drop__h,.vis-drop__c){opacity:0}
:root[data-m-go] .vis-bench[data-vis-in=go] .vis-bench__grid::before{animation:vis-scanline 620ms var(--v-ease) 1 normal}
:root[data-m-go] .vis-bench[data-vis-in=go] .vis-ctl>:not(.vis-ctl__th){animation:vis-wipe-x 620ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-bench[data-vis-in=go] .vis-bench__fig{animation:vis-wipe-y 520ms 80ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-bench[data-vis-in=go] .vis-ldot__e{animation:vis-dot-travel 500ms calc(200ms + var(--k) * 28ms) var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-bench[data-vis-in=go] .vis-notes{animation:vis-rise 480ms 380ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-bench[data-vis-in=go] .vis-drop__v{animation:vis-wipe-y 380ms 500ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-bench[data-vis-in=go] .vis-drop__c{animation:vis-fade 300ms 600ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-bench[data-vis-in=go] .vis-drop__h{animation:vis-fade 300ms 600ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes vis-scanline{0%{opacity:1;transform:translateX(0)}85%{opacity:1}100%{opacity:0;transform:translateX(min(29vw,420px))}}
@keyframes vis-dot-travel{from{opacity:.25;transform:translate(calc((var(--sx) - var(--s)) * 100cqw),calc(-90px + var(--lane) * -36px))}to{opacity:1;transform:none}}

/* ---------- 3 · evidence (paper) ---------- */
.vis-ev,.vis-seq{background-color:var(--v-paper);background-image:linear-gradient(#0e4d4a1a 1px,transparent 1px),linear-gradient(90deg,#0e4d4a1a 1px,transparent 1px);background-size:16px 16px;color:var(--v-ink)}
.vis-ev{padding-bottom:64px}
.vis-cmp{position:relative}
.vis-cmp__view{position:relative;height:62vh;min-height:470px;max-height:660px;overflow:clip;container-type:size;background:var(--v-forest)}
.vis-cmp__line,.vis-cmp__benchw,.vis-cmp__bench,.vis-cmp__labs,.vis-cmp__divw{position:absolute;inset:0}
.vis-cmp-svg{width:100%;height:100%}
.vis-cmp__bench{clip-path:inset(0 calc(100% - var(--p) * 1%) 0 0)}
.vis-cmp-box{stroke:#f6f4ef;stroke-width:3;fill:#f6f4ef;fill-opacity:.06}
.vis-cmp-box--yours{stroke:var(--v-och)}
.vis-cmp-unit{stroke:var(--v-och);stroke-width:3;stroke-dasharray:10 8;fill:none}
.vis-ov{opacity:0;transition:opacity .35s}
.vis-cmp[data-chip=light] .vis-ov-light,.vis-cmp[data-chip=speed] .vis-ov-speed,.vis-cmp[data-chip=fabric] .vis-ov-fabric,.vis-cmp[data-chip=unit] .vis-ov-unit,.vis-cmp[data-chip=taxonomy] .vis-ov-taxonomy{opacity:1}
.vis-cmp-lamp{opacity:.85}
.vis-cmp-b{transition:transform .4s var(--v-ease),opacity .4s}
.vis-cmp[data-chip=light] .vis-cmp-svg--line .vis-cmp-b--1{opacity:.5}
.vis-cmp[data-chip=speed] .vis-cmp-svg--line .vis-cmp-b{transform:translateX(-24px)}
.vis-cmp[data-chip=fabric] .vis-cmp-svg--line .vis-cmp-b--2{opacity:.35}
.vis-cmp-sweepw{position:absolute;inset:0;pointer-events:none;overflow:clip}
.vis-cmp-sweepw i{position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--v-sage);box-shadow:-40px 0 50px #6bb68f40}
.vis-cmp__lab{position:absolute;bottom:18px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0;font:600 13px/1.2 var(--v-mono);letter-spacing:.06em;color:#f4f8f6;max-width:44%}
.vis-cmp__lab b{padding:6px 8px;background:#072d2be6}
.vis-cmp__lab span{display:none;padding:6px 8px;background:#072d2bc0;color:var(--v-och)}
.vis-cmp__lab--a{left:24px}.vis-cmp__lab--b{right:24px;justify-content:flex-end}
.vis-cmp[data-chip=light] [data-c=light],.vis-cmp[data-chip=speed] [data-c=speed],.vis-cmp[data-chip=fabric] [data-c=fabric],.vis-cmp[data-chip=taxonomy] [data-c=taxonomy],.vis-cmp[data-chip=unit] [data-c=unit]{display:inline-block}
.vis-cmp__slate{position:absolute;right:24px;top:96px;margin:0;display:grid;gap:6px;max-width:min(380px,34%);padding:16px 20px;background:#072d2bea;border-left:4px solid var(--v-ochre);color:#f4f8f6}
.vis-cmp__slate strong{font:800 40px/1 var(--gft-font-display);letter-spacing:-.03em;color:var(--v-och)}
.vis-cmp__slate span{font:600 15px/1.4 var(--v-mono);letter-spacing:.03em}
.vis-cmp__div{position:absolute;left:-1.5px;top:0;bottom:0;width:3px;background:var(--v-ochre);transform:translateX(calc(var(--p) * 1cqw))}
.vis-cmp__div i{position:absolute;left:50%;bottom:64px;width:48px;height:48px;margin-left:-24px;border-radius:50%;border:3px solid var(--v-ochre);background:#072d2b;box-shadow:0 0 0 6px #c98a2b33}
.vis-cmp__div i::before{content:'‹ ›';position:absolute;inset:0;display:grid;place-items:center;color:var(--v-och);font:700 16px/1 var(--v-mono)}
.vis-ev__card{position:absolute;z-index:2;left:24px;top:24px;width:min(470px,34vw);padding:24px 26px;background:var(--v-paper);color:var(--v-ink);border-top:4px solid var(--v-ochre)}
.vis-ev__card h2{font-size:clamp(1.8rem,2.4vw,2.5rem);margin:10px 0 12px}
.vis-ev__card .vis-lede{font-size:17px;color:#26332f}
.vis-cmp__chips{position:absolute;z-index:2;top:24px;right:24px;left:calc(min(470px,34vw) + 48px);display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.vis-pill{min-height:44px;padding:8px 16px;border:1px solid #f6f4ef88;background:#072d2bdd;color:#f4f8f6;font-size:15px;font-weight:600}
.vis-pill[aria-pressed=true]{background:var(--v-ochre);border-color:var(--v-ochre);color:var(--v-night)}
.vis-cmp__rangewrap{display:block;padding-inline:0;margin-top:-2px}
.vis-range--paper{accent-color:var(--v-ochre)}
.vis-ev__bar{display:grid;grid-template-columns:minmax(0,1.4fr) auto;gap:32px;align-items:center;padding:14px 48px 18px;border-bottom:1px solid #0e4d4a33;max-width:1600px;margin-inline:auto}
.vis-ev__read{font-size:19px;line-height:1.55;max-width:none}
.vis-ev__r29{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font:600 13px/1.4 var(--v-mono);letter-spacing:.04em;padding:6px 6px 6px 14px;border:1px solid #0e4d4a66;background:#ece8df;max-width:none;margin:0}
.vis-ev__spec{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:20px 40px;padding:20px 48px 0;max-width:1600px;margin-inline:auto;align-items:start}
.vis-ev__spec-cap{font-size:17px;line-height:1.6}
.vis-ticks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.vis-ticks li{display:grid;gap:8px;align-content:start;padding:12px;border:1px solid #0e4d4a40;background:#fbfaf7;font-size:15px;font-weight:600;line-height:1.3;transition:background .3s,border-color .3s}
.vis-ticks i{width:24px;height:24px;border:2px solid #0e4d4a88;display:grid;place-items:center}
.vis-ticks li[data-lit]{border-color:var(--v-ochre);background:#f8ecd6}
.vis-ticks li[data-lit] i{background:var(--v-ochre);border-color:var(--v-ochre)}
.vis-ticks li[data-lit] i::before{content:'';width:10px;height:6px;border:solid var(--v-night);border-width:0 0 3px 3px;transform:translateY(-2px) rotate(-45deg)}
.vis-ev__note{grid-column:1/-1;font:13px/1.6 var(--v-mono);color:#33423d;max-width:none}
/* twill-shift: the halves slide in on a diagonal from opposite sides, then the divider drops */
:root[data-m-go] .vis-page[data-vis-armed] .vis-ev:not([data-vis-in]) :is(.vis-cmp__bench,.vis-cmp__line,.vis-cmp__div,.vis-ev__card,.vis-cmp__chips,.vis-cmp__slate,.vis-ev__bar,.vis-ev__spec){opacity:0}
:root[data-m-go] .vis-ev[data-vis-in=go] .vis-cmp__bench{animation:vis-twill-a 520ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-ev[data-vis-in=go] .vis-cmp__line{animation:vis-twill-b 520ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-ev[data-vis-in=go] .vis-cmp__div{animation:vis-wipe-y 260ms 480ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-ev[data-vis-in=go] .vis-ev__card{animation:vis-rise 420ms 160ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-ev[data-vis-in=go] :is(.vis-cmp__chips,.vis-cmp__slate){animation:vis-fade 360ms 520ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-ev[data-vis-in=go] :is(.vis-ev__bar,.vis-ev__spec){animation:vis-rise 420ms 420ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes vis-twill-a{from{opacity:.15;transform:translate(-9%,-7%)}to{opacity:1;transform:none}}
@keyframes vis-twill-b{from{opacity:.15;transform:translate(9%,7%)}to{opacity:1;transform:none}}

/* ---------- 4 · sequence (paper, cinema overlay, pinned) ---------- */
.vis-seq{--bw:min(100vw,186svh);--bh:min(53.75vw,100svh)}
.vis-seq__pin{position:sticky;top:0;height:100svh;display:grid;grid-template-areas:'a';place-items:center;overflow:clip;z-index:0}
.vis-seq__box{grid-area:a;position:relative;width:var(--bw);aspect-ratio:1600/860;container-type:inline-size}
.vis-seq__svg{position:absolute;inset:0;width:100%;height:100%}
.vis-seq__ov{position:absolute;inset:0;pointer-events:none}
.vis-sl{position:absolute;left:calc(var(--x) * 100cqw / 1600);top:calc(var(--y) * 100cqw / 1600);font:700 clamp(13px,1.05cqw,17px)/1.15 var(--v-mono);letter-spacing:.06em;color:#f4f8f6;white-space:nowrap;opacity:0;transition:opacity .35s}
.vis-sl--end{transform:translateX(-100%)}
.vis-sl--f{text-shadow:0 1px 2px #072d2b;padding:1px 4px;background:#072d2bb3}
.vis-seq[data-step="0"] .vis-sl--0,.vis-seq[data-step="1"] .vis-sl--1,.vis-seq[data-step="2"] .vis-sl--2{opacity:1}
.vis-seq__card{grid-area:a;align-self:start;justify-self:start;position:relative;z-index:3;margin-left:calc((100vw - var(--bw)) / 2 + var(--bw) * .025);margin-top:calc((100svh - var(--bh)) / 2 + var(--bw) * .056);width:calc(var(--bw) * .36);padding:22px 24px;background:var(--v-paper);border-top:4px solid var(--v-ochre);box-shadow:0 18px 50px #072d2b40}
.vis-seq__card h2{font-size:clamp(1.8rem,2.5vw,2.6rem);margin:10px 0 12px}
.vis-seq__card .vis-lede{font-size:17px}
.vis-seq__top{position:absolute;z-index:2;right:2.5cqw;top:6.4cqw;display:grid;justify-items:end;gap:10px}
.vis-seq__count{margin:0;padding:6px 14px;background:#072d2be6;color:#f4f8f6;font:800 56px/1 var(--gft-font-display);letter-spacing:-.03em}
.vis-seq__count span{font-size:28px;color:var(--v-lab)}
.vis-seq__count b{display:inline-block;min-width:.6em;text-align:center}
.vis-seq__ctl{display:flex;gap:6px}
.vis-step-btn{display:flex;gap:8px;align-items:center;min-height:44px;padding:6px 12px;border:1px solid #f6f4ef88;background:#072d2bdd;color:#f4f8f6;font:600 13px/1 var(--v-mono);letter-spacing:.06em}
.vis-step-btn em{font-style:normal}
.vis-step-btn[aria-pressed=true]{background:var(--v-ochre);border-color:var(--v-ochre);color:var(--v-night)}
.vis-seq__foot{position:absolute;left:2.5cqw;top:calc(784 * 100cqw / 1600);right:34cqw}
.vis-seq__read{margin:0;font:700 22px/1.3 var(--gft-font-display);letter-spacing:-.01em;max-width:none}
.vis-seq__read b{color:var(--v-ochre)}
.vis-seq__cap{margin-top:4px;font:13px/1.45 var(--v-mono);color:#33423d;max-width:none}
.vis-seq__legend{display:none}
.vis-st{opacity:0;transition:opacity .45s var(--v-ease)}
.vis-seq[data-step="0"] .vis-st-0,.vis-seq[data-step="1"] .vis-st-1,.vis-seq[data-step="2"] .vis-st-2{opacity:1}
.vis-sbox rect{stroke:var(--v-och);stroke-width:4;fill:var(--v-ochre);fill-opacity:.12}
.vis-sbox--miss rect{stroke:#f6f4ef;stroke-dasharray:12 9;fill:none}
.vis-sbox--false rect{stroke:#f08a7a;fill:none}
.vis-sbox--on rect{stroke:var(--v-mint);fill:var(--v-sage);fill-opacity:.3}
.vis-schip rect,.vis-bin rect{fill:#0e4d4a;stroke:#0e4d4a}
.vis-bin .vis-bin--act{fill:var(--v-ochre);stroke:var(--v-ochre)}
.vis-tint--dev{fill:var(--v-sage);fill-opacity:.12}.vis-tint--held{fill:var(--v-ochre);fill-opacity:.1}.vis-tint--scrim{fill:#031716;fill-opacity:.55}
.vis-bar{fill:#0e4d4a;transform-box:fill-box;transform-origin:0 50%;transition:transform .6s var(--v-ease)}
.vis-seq:not([data-step="1"]) .vis-bar{transform:scaleX(.05)}
.vis-thread path{stroke:var(--v-och);stroke-width:4;fill:none}
.vis-tick circle{fill:var(--v-sage)}.vis-tick path{stroke:var(--v-night);stroke-width:4;fill:none}
.vis-sl--d{padding:2px 6px;background:#0e4d4a}
.vis-sl--a{padding:2px 6px;background:var(--v-ochre);color:var(--v-night);text-shadow:none}
.vis-sl--p{color:var(--v-ink);text-shadow:none}
.vis-seq__steps{position:relative;z-index:-1;margin:-100svh 0 0;pointer-events:none}
.vis-step{height:100svh;position:relative}
.vis-step:last-child{height:130svh}
.vis-seq__cards{grid-area:a;align-self:end;justify-self:end;position:relative;z-index:3;display:grid;list-style:none;padding:0;margin:0 calc((100vw - var(--bw)) / 2 + var(--bw) * .025) calc((100svh - var(--bh)) / 2 + var(--bw) * .025) 0;width:min(440px,calc(var(--bw) * .3))}
.vis-step__card{grid-area:1/1;align-self:end;padding:22px 24px;background:var(--v-night);color:var(--v-txt);border-left:4px solid var(--v-ochre);box-shadow:0 18px 50px #072d2b55;opacity:0;visibility:hidden;transform:translateY(28px);transition:opacity .4s var(--v-ease),transform .5s var(--v-ease),visibility 0s .5s}
.vis-step__card[data-on]{opacity:1;visibility:visible;transform:none;transition:opacity .4s .12s var(--v-ease),transform .5s .12s var(--v-ease),visibility 0s}
.vis-step__lab{font:700 13px/1 var(--v-mono);letter-spacing:.08em;color:var(--v-och)}
.vis-step__card h3{font-size:clamp(1.4rem,1.8vw,1.9rem);color:#f6f4ef;margin:10px 0 10px}
.vis-step__card p:last-child{font-size:17px;line-height:1.55}
.vis-step__ap{position:absolute;left:0;top:78svh;width:1px;height:1px}
/* the aperture: six blades around the lens; at the end of step III they open and the interlude is inside */
.vis-seq{--ly:calc((100svh - var(--bh)) / 2 + var(--bw) * .03125)}
.vis-ap{grid-area:a;place-self:stretch;position:relative;pointer-events:none;z-index:4}
.vis-ap__open{position:absolute;inset:0;background:var(--v-night);clip-path:circle(0% at 50% var(--ly));transition:clip-path .75s cubic-bezier(.6,0,.2,1)}
.vis-ap__grid{position:absolute;inset:0;background-image:linear-gradient(#cfe6da12 1px,transparent 1px),linear-gradient(90deg,#cfe6da12 1px,transparent 1px);background-size:16px 16px}
.vis-ap__frame{position:absolute;left:50%;top:28px;width:min(100vw,calc((100svh - 170px) * 1.613));height:auto;aspect-ratio:1000/620;transform:translateX(-50%);opacity:.78}
.vis-ap__q{position:absolute;left:48px;top:34%;margin:0;padding:12px 32px 12px 0;font:italic 400 clamp(2.4rem,4.4vw,4.6rem)/1.12 var(--gft-font-serif);color:#f6f4ef;max-width:none;background:linear-gradient(90deg,#072d2bf2 70%,#072d2b00)}
.vis-ap__blades{position:absolute;left:50%;top:var(--ly);width:0;height:0;opacity:0;transition:opacity .3s}
.vis-ap__blades i{position:absolute;left:-26px;top:-34px;width:52px;height:30px;background:var(--v-ochre);clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);transform-origin:26px 34px;transform:rotate(calc(var(--i) * 60deg)) translateY(-14px);transition:transform .75s cubic-bezier(.6,0,.2,1),opacity .75s}
.vis-seq[data-step="2"] .vis-ap__blades{opacity:1}
.vis-seq[data-ap] .vis-ap__open{clip-path:circle(160vmax at 50% var(--ly))}
.vis-seq[data-ap] .vis-ap__blades i{transform:rotate(calc(var(--i) * 60deg + 40deg)) translateY(-70vmax);opacity:0}
.vis-seq__doors{position:absolute;left:calc(40 * 100cqw / 1600);top:calc(90 * 100cqw / 1600);width:calc(1520 * 100cqw / 1600);height:calc(470 * 100cqw / 1600);overflow:clip;pointer-events:none;z-index:1}
.vis-seq__door{position:absolute;left:0;right:0;height:50%;background-color:#0b4643;background-image:linear-gradient(#cfe6da24 1px,transparent 1px),linear-gradient(90deg,#cfe6da24 1px,transparent 1px);background-size:8px 8px;transform:translateY(-101%)}
.vis-seq__door--a{top:0;border-bottom:4px solid var(--v-ochre)}
.vis-seq__door--b{bottom:0;border-top:4px solid var(--v-ochre);transform:translateY(101%)}
:root[data-m-go] .vis-page[data-vis-armed] .vis-seq:not([data-vis-in]) .vis-seq__door{transform:none}
:root[data-m-go] .vis-page[data-vis-armed] .vis-seq:not([data-vis-in]) :is(.vis-seq__card,.vis-seq__cards,.vis-seq__foot,.vis-seq__ov){opacity:0}
:root[data-m-go] .vis-seq[data-vis-in=go] .vis-seq__door--a{animation:vis-shed-a 620ms cubic-bezier(.6,0,.2,1) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-seq[data-vis-in=go] .vis-seq__door--b{animation:vis-shed-b 620ms cubic-bezier(.6,0,.2,1) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-seq[data-vis-in=go] :is(.vis-seq__foot,.vis-seq__ov){animation:vis-fade 300ms 420ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-seq[data-vis-in=go] .vis-seq__cards{animation:vis-rise 360ms 560ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-seq[data-vis-in=go] .vis-seq__card{animation:vis-rise 320ms 520ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes vis-shed-a{from{transform:none}to{transform:translateY(-101%)}}
@keyframes vis-shed-b{from{transform:none}to{transform:translateY(101%)}}

/* ---------- 5 · interlude (night, full-bleed) ---------- */
.vis-int{background-color:var(--v-night);background-image:linear-gradient(#cfe6da12 1px,transparent 1px),linear-gradient(90deg,#cfe6da12 1px,transparent 1px);background-size:16px 16px;color:var(--v-txt);min-height:100svh;overflow:clip;view-timeline-name:--vis-int;view-timeline-axis:block}
.vis-int__art{grid-column:2;grid-row:1/3;align-self:center;justify-self:end;width:100%;min-width:0;display:grid;place-items:center end;opacity:.92}
.vis-int__tilt{width:min(100%,calc((100svh - 320px) * 1.613));transform-origin:50% 100%}
.vis-int .vis-fr--interlude .vis-fr__cap{display:none}
.vis-int .vis-fr--interlude .vis-fr__slate{position:relative;left:0;top:0;display:inline-block;margin:0 4% 6px;max-width:92%;font-size:clamp(13px,1.25cqw,15px);letter-spacing:.04em;white-space:normal}
.vis-int__inner{position:relative;z-index:1;min-height:100svh;display:grid;grid-template-columns:minmax(340px,38%) minmax(0,1fr);grid-template-rows:1fr auto auto auto;column-gap:36px;row-gap:16px;padding-block:44px 24px;align-items:center}
.vis-int__type{grid-column:1;grid-row:1;align-self:center;min-width:0;max-width:none;padding:0;margin:0}
.vis-int__type h2{font-size:clamp(1.9rem,2.7vw,3rem);color:#f6f4ef;margin:10px 0 16px}
.vis-quote{margin:0}
.vis-quote p{font:italic 400 clamp(2.1rem,3.6vw,3.9rem)/1.12 var(--gft-font-serif);color:#f6f4ef;max-width:15ch;letter-spacing:-.02em}
.vis-quote__w,.vis-quote__last{display:inline-block;white-space:pre}
.vis-quote__last{position:relative}
.vis-quote__ul{position:absolute;left:0;right:0;bottom:.02em;height:4px;background:var(--v-ochre);transform-origin:0 50%}
.vis-int__carry{grid-column:1;grid-row:2;align-self:end;display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline;margin:0;max-width:none;padding:10px 16px;background:#072d2bdd;border-left:4px solid var(--v-ochre);justify-self:start}
.vis-int__carry span{font:600 15px var(--v-mono);letter-spacing:.04em;color:var(--v-lab)}
.vis-int__carry b{font:800 32px/1.1 var(--gft-font-display);color:var(--v-och);letter-spacing:-.02em}
.vis-int__carry b span{font:inherit;color:inherit;letter-spacing:inherit}
.vis-modes{grid-column:1/-1;grid-row:3;border:0;margin:0;padding:0;min-width:0}
.vis-modes__row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.vis-mode{cursor:pointer;position:relative}
.vis-mode span{display:grid;gap:4px;min-height:72px;height:100%;padding:12px 18px;background:#072d2bec;border:1px solid #cfe6da55;border-top:4px solid #cfe6da55;transition:background .25s,border-color .25s}
.vis-mode b{font-size:22px;line-height:1.1;color:#f6f4ef}
.vis-mode small{font-size:17px;line-height:1.4;color:var(--v-lab)}
.vis-mode input:checked+span{background:#0e4d4af2;border-color:var(--v-ochre);border-top-color:var(--v-ochre)}
.vis-int__more{grid-column:1/-1;grid-row:4;max-width:72ch}
.vis-int__more summary{min-height:44px;display:flex;align-items:center;font-size:17px;font-weight:650;cursor:pointer;color:#f6f4ef}
.vis-int__more p{font-size:17px;line-height:1.6;color:var(--v-txt);padding:8px 0 4px}
.vis-int .vis-fr__slate-x{opacity:0}
.vis-int[data-mode=observe] .vis-fr__slate-x{opacity:1}
.vis-int[data-mode=observe] .vis-case .vis-box{fill-opacity:0}
.vis-rv circle{fill:var(--v-sage);stroke:#072d2b;stroke-width:2}.vis-rv path{stroke:var(--v-night);stroke-width:3;fill:none}
.vis-rv{opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.4);transition:opacity .3s,transform .3s var(--v-ease)}
.vis-int[data-mode=review] .vis-case[data-flag="1"] .vis-rv,.vis-int[data-mode=act] .vis-case[data-flag="1"] .vis-rv{opacity:1;transform:none;transition-delay:calc(var(--o) * 130ms)}
.vis-route{stroke:var(--v-och);stroke-width:3;fill:none;opacity:0;clip-path:inset(0 100% 0 0);transition:clip-path .7s var(--v-ease),opacity .2s}
.vis-int[data-mode=act] .vis-case[data-flag="1"]:not([data-status=false-alarm]) .vis-route--hold,.vis-int[data-mode=act] .vis-case[data-flag="1"][data-status=false-alarm] .vis-route--release{opacity:1;clip-path:inset(-20px)}
.vis-bead{fill:var(--v-och);stroke:#072d2b;stroke-width:2}
.vis-gate{fill:#072d2b;stroke:var(--v-och);stroke-width:2.5}.vis-gate--release{stroke:var(--v-mint)}
.vis-ilab{font:700 clamp(13px,1.45cqw,18px)/1.15 var(--v-mono);letter-spacing:.05em;color:#f4f8f6}
.vis-ilab--queue{color:var(--v-och);transform:translateY(4px)}
.vis-ilab--gate{top:calc((var(--y) + 15) * .1cqw);transform:translateY(-50%)}
@container (max-width:560px){.vis-ilab--gate{left:auto;right:4cqw;top:calc(51cqw + 2px);transform:none;padding:2px 6px;background:#072d2bee;border:1.5px solid var(--v-och)}.vis-ilab--gate:last-child{top:calc(51cqw + 28px);border-color:var(--v-mint)}}
.vis-int[data-mode=act] .vis-gate{stroke-width:4}
/* iris: the aperture completes (circle from the lens), then the quote's words beat up */
:root[data-m-go] .vis-page[data-vis-armed] .vis-int:not([data-vis-in]) :is(.vis-int__art,.vis-quote__w,.vis-quote__last,.vis-int__carry,.vis-modes,.vis-int__more){opacity:0}
:root[data-m-go] .vis-int[data-vis-in=go] .vis-int__art{animation:vis-iris 520ms cubic-bezier(.6,0,.2,1) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-int[data-vis-in=go] :is(.vis-quote__w,.vis-quote__last){animation:vis-beat 420ms calc(380ms + var(--k,9) * 26ms) cubic-bezier(.2,1.3,.4,1) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-int[data-vis-in=go] :is(.vis-int__carry,.vis-modes,.vis-int__more){animation:vis-rise 420ms 460ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes vis-iris{from{clip-path:circle(0% at 50% 4%)}to{clip-path:circle(180% at 50% 4%)}}
@keyframes vis-beat{from{opacity:0;transform:translateY(-.55em)}to{opacity:1;transform:none}}

/* ---------- 6 · delivery (forest, pinned axonometric stage) ---------- */
.vis-del{background-color:var(--v-forest);background-image:linear-gradient(#cfe6da0d 1px,transparent 1px),linear-gradient(90deg,#cfe6da0d 1px,transparent 1px);background-size:16px 16px;color:var(--v-txt)}
.vis-del__grid{display:grid;grid-template-columns:minmax(0,58%) minmax(0,1fr);gap:48px;padding:0 48px;max-width:1600px;margin-inline:auto}
.vis-del__pin{position:sticky;top:8svh;height:84svh;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:10px;padding-block:8px}
.vis-del__stage{position:relative;container-type:size;perspective:1700px;overflow:clip}
.vis-pl{position:absolute;left:50%;top:50%;width:58cqw;height:25cqw;margin:-12.5cqw 0 0 -29cqw;transform-style:preserve-3d;transition:opacity .34s var(--v-ease),filter .34s var(--v-ease);
 transform:translate(0,calc((var(--k) - 1.5) * (13cqh + var(--sp) * .35cqh) - 2cqh)) scale(1) rotateX(58deg) rotateZ(-36deg)}
.vis-del[data-step="1"] .vis-pl{transform:translate(calc((var(--k) - 1.5) * 25cqw),-12cqh) scale(.4) rotateX(0deg) rotateZ(0deg)}
.vis-del[data-step="2"] .vis-pl{transform:translate(calc((var(--k) - 2) * 30cqw),24cqh) scale(.42) rotateX(0deg) rotateZ(0deg)}
.vis-del[data-step="2"] .vis-pl--0{transform:translate(0,-22cqh) scale(.95) rotateX(0deg) rotateZ(0deg)}
.vis-pl__f,.vis-pl__face{display:block;width:100%;height:100%}
.vis-pl__face{position:relative;background-color:#0b3f3c;background-image:linear-gradient(#cfe6da1c 1px,transparent 1px),linear-gradient(90deg,#cfe6da1c 1px,transparent 1px);background-size:14px 14px;border:2px solid #9fd8b8aa;box-shadow:0 0 0 1px #072d2b,0 30px 60px #031a1966}
.vis-pl--0 .vis-pl__face{border-color:var(--v-och);background-color:#0e4d4a}
.vis-pl--1 .vis-pl__face{background-color:#123f52}.vis-pl--2 .vis-pl__face{background-color:#1d3b62}.vis-pl--3 .vis-pl__face{background-color:#2c3e7a;border-color:#c98a2bcc}
.vis-pl__box{position:absolute;left:calc((var(--x) - 40) / 920 * 100%);top:calc((var(--y) - 90) / 400 * 100%);width:calc(var(--w) / 920 * 100%);height:calc(var(--h) / 400 * 100%);border:2px solid var(--v-och)}
.vis-pl__lot{position:absolute;top:6%;bottom:6%;left:calc(1% + var(--j) * 19.8%);width:18.6%;display:grid;place-items:center;border:2px solid #cfe6da99;background:#072d2bcc;font:700 clamp(13px,1.8cqw,18px)/1 var(--v-mono);letter-spacing:.06em;color:#f4f8f6;opacity:0}
.vis-pl__lot--held{border-color:var(--v-och);background:#2c3e7acc}
.vis-del[data-step="2"] .vis-pl__lot{opacity:1}
.vis-del[data-step="2"] .vis-pl__box{opacity:0}
.vis-del__labs{position:absolute;inset:0;pointer-events:none}
.vis-plab{position:absolute;left:0;top:0;pointer-events:auto;min-height:44px;display:grid;align-items:center;padding:4px 10px;border:1px solid #cfe6da66;background:#072d2bee;color:#f4f8f6;font:700 13px/1.15 var(--v-mono);letter-spacing:.06em;white-space:nowrap;transition:opacity .34s var(--v-ease),filter .34s var(--v-ease),border-color .2s;
 transform:translate(77cqw,calc(50cqh + (var(--k) - 1.5) * (13cqh + var(--sp) * .35cqh) - 2cqh - 22px))}
.vis-plab:hover,.vis-plab:focus-visible{border-color:var(--v-ochre)}
.vis-plab--0{--k:0}.vis-plab--1{--k:1}.vis-plab--2{--k:2}.vis-plab--3{--k:3}
.vis-plab__t{grid-area:1/1;opacity:0}
.vis-del[data-step="0"] .vis-plab__t--0,.vis-del[data-step="1"] .vis-plab__t--1,.vis-del[data-step="2"] .vis-plab__t--2{opacity:1}
.vis-del[data-step="1"] .vis-plab{transform:translate(calc(50cqw + (var(--k) - 1.5) * 25cqw - 50%),calc(38cqh + 5.5cqw))}
.vis-del[data-step="2"] .vis-plab{transform:translate(calc(50cqw + (var(--k) - 2) * 30cqw - 50%),calc(74cqh + 5.6cqw))}
.vis-del[data-step="2"] .vis-plab--0{transform:translate(22.5cqw,calc(28cqh - 12cqw - 52px))}
.vis-del__extra{position:absolute;inset:0;pointer-events:none;transition:opacity .34s var(--v-ease),filter .34s var(--v-ease)}
.vis-del__stage[data-swap] :is(.vis-pl,.vis-plab,.vis-del__extra){opacity:.12;filter:blur(5px);transition:opacity .18s ease-in,filter .18s ease-in}
.vis-dx{position:absolute;opacity:0;font:700 13px/1.3 var(--v-mono);letter-spacing:.06em;color:#f4f8f6}
.vis-del[data-step="0"] .vis-dx--0,.vis-del[data-step="1"] .vis-dx--1,.vis-del[data-step="2"] .vis-dx--2{opacity:1}
.vis-dx__leader{left:2cqw;bottom:3cqh;color:var(--v-och);padding-left:16px;border-left:3px solid var(--v-ochre)}
.vis-dx__leader::before{content:'';position:absolute;left:-3px;bottom:100%;height:16cqh;width:3px;background:var(--v-ochre)}
.vis-dx__buf{left:10cqw;right:10cqw;top:calc(38cqh + 13cqw);min-height:48px;display:grid;place-items:center;border:2px solid #cfe6da99;background:#072d2bcc}
.vis-dx__buf::before{content:'';position:absolute;left:12%;right:12%;bottom:100%;height:calc(12cqh + 7.5cqw - 48px);background:repeating-linear-gradient(90deg,transparent 0 calc(33.3% - 2px),#cfe6da 0 33.3%);-webkit-mask:repeating-linear-gradient(180deg,#000 0 6px,transparent 6px 12px);mask:repeating-linear-gradient(180deg,#000 0 6px,transparent 6px 12px)}
.vis-dx__auth{left:2cqw;right:2cqw;top:12cqh;color:var(--v-och);padding-top:10px}
.vis-dx__auth i{position:absolute;left:0;right:0;top:0;height:3px;background:var(--v-ochre)}
.vis-dx__flow{left:12cqw;right:12cqw;top:calc(38cqh - 1px);height:3px;background:#c98a2b55;overflow:clip}
.vis-dx__flow i{position:absolute;inset:0;width:18%;background:var(--v-och)}
.vis-dx__held{left:calc(50cqw + 4cqw);width:22cqw;top:calc(28cqh - 12cqw - 36px);text-align:center;color:var(--v-och);border-top:3px solid var(--v-ochre);padding-top:4px}
.vis-dx__own{left:2cqw;bottom:2cqh;color:var(--v-och)}
.vis-del__foot{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:20px;align-items:center;padding:10px 14px;background:#072d2bd9;border-top:3px solid var(--v-ochre)}
.vis-del__read{margin:0;font-size:17px;line-height:1.45;color:#f4f8f6;max-width:none;min-height:2.9em}
.vis-spread{display:grid;gap:2px;font:600 13px var(--v-mono);letter-spacing:.04em;color:var(--v-lab);transition:opacity .3s}
.vis-del:not([data-step="0"]) .vis-spread{opacity:.45}
.vis-del__steps{border:0;margin:0;padding:12svh 0 0;min-width:0}
.vis-del__head h2{font-size:clamp(2.1rem,3.3vw,3.6rem);color:#f6f4ef;margin:12px 0 18px}
.vis-del__head .vis-lede{color:var(--v-lab)}
.vis-dstep{min-height:78svh;padding-top:16svh;opacity:.5;transition:opacity .4s}
.vis-dstep[data-on]{opacity:1}
.vis-dstep:last-child{min-height:112svh}
.vis-dstep__n{display:inline-block;cursor:pointer;font:italic 400 96px/1 var(--gft-font-serif);color:var(--v-och);min-height:44px;padding-right:10px;border-bottom:3px solid transparent}
.vis-dstep__in:checked+.vis-dstep__n{border-bottom-color:var(--v-ochre)}
.vis-dstep__in:focus-visible+.vis-dstep__n{outline:3px solid var(--v-ochre);outline-offset:4px}
.vis-dstep h3{font-size:28px;color:#f6f4ef;margin:16px 0 12px}
.vis-dstep p{font-size:17px;line-height:1.6;color:var(--v-txt);max-width:44ch}
/* fold: the planes unfold downward from the top plane */
:root[data-m-go] .vis-page[data-vis-armed] .vis-del:not([data-vis-in]) :is(.vis-pl__face,.vis-plab,.vis-del__foot){opacity:0}
:root[data-m-go] .vis-del[data-vis-in=go] .vis-pl__face{animation:vis-unfold 460ms calc(var(--k) * 120ms) var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
.vis-pl--0 .vis-pl__face{--k:0}.vis-pl--1 .vis-pl__face{--k:1}.vis-pl--2 .vis-pl__face{--k:2}.vis-pl--3 .vis-pl__face{--k:3}
:root[data-m-go] .vis-del[data-vis-in=go] .vis-plab{animation:vis-fade 300ms calc(300ms + var(--k) * 90ms) var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-del[data-vis-in=go] .vis-del__foot{animation:vis-wipe-x 420ms 360ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes vis-unfold{from{opacity:0;clip-path:inset(0 0 100% 0)}to{opacity:1;clip-path:inset(0)}}

/* ---------- 7 · gates board (deep night, indigo tapes) ---------- */
.vis-gates{background-color:var(--v-deep);background-image:radial-gradient(ellipse at 70% 20%,#2c3e7a40,#2c3e7a00 60%),linear-gradient(#cfe6da0b 1px,transparent 1px),linear-gradient(90deg,#cfe6da0b 1px,transparent 1px);background-size:auto,16px 16px,16px 16px;color:var(--v-txt);padding-block:72px 80px}
.vis-gates__head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px;align-items:end;margin-bottom:28px}
.vis-gates__head h2{font-size:clamp(2.1rem,3.3vw,3.6rem);color:#f6f4ef;margin-top:12px}
.vis-gates__side{display:grid;gap:14px}
.vis-gates__side .vis-lede{color:var(--v-lab)}
.vis-gates__range{display:grid;gap:2px;font:600 15px var(--v-mono);color:var(--v-lab)}
.vis-gates__range b{color:var(--v-och);font-size:22px}
.vis-board{--cols:210px minmax(0,1fr) 300px;position:relative;display:grid;gap:12px}
.vis-board__axis{display:grid;grid-template-columns:var(--cols);column-gap:28px}
.vis-board__axis{position:relative;height:22px}
.vis-board__axis span{position:absolute;left:calc(238px + var(--s) * (100% - 566px));transform:translateX(-50%);font:13px var(--v-mono);color:var(--v-lab)}
.vis-tape{display:grid;grid-template-columns:var(--cols);column-gap:28px;align-items:center;transition:opacity .4s,filter .4s}
.vis-tape__name{display:grid;gap:2px;margin:0}
.vis-tape__name b{font-size:19px;color:#f6f4ef}.vis-tape__name small{font:13px var(--v-mono);color:var(--v-lab)}
.vis-tape__track{position:relative;height:118px;background:#2c3e7a59;border:1px solid #7f93d4aa;background-image:linear-gradient(90deg,#cfe6da14 1px,transparent 1px);background-size:25% 100%}
.vis-cell{position:absolute;left:calc(var(--s) * 100%);top:calc(8px + var(--lane) * 35px);width:32px;height:32px;margin-left:-16px;display:grid;place-items:center;font:700 14px/1 var(--v-mono);background:#0a1f3d;border:2px solid #cfe6da80;color:#e9f3ee;transition:background .3s,border-color .3s,color .3s}
.vis-cell[data-status=caught]{background:var(--v-sage);border-color:var(--v-mint);color:var(--v-night)}
.vis-cell[data-status=false-alarm]{border:3px solid var(--v-och);color:var(--v-och)}
.vis-cell[data-status=missed]{border:2px dashed #eef6f2}
.vis-cell[data-status=manual]{background:#5a3a10;border:2px solid var(--v-och);color:#fff}
.vis-page[data-truth=off] .vis-cell:is([data-status=caught],[data-status=false-alarm]){background:#0a1f3d;border:3px solid var(--v-och);color:var(--v-och)}
.vis-page[data-truth=off] .vis-cell[data-status=missed]{border:2px solid #cfe6da80}
.vis-tape__read{display:grid;gap:4px;margin:0;max-width:none;position:relative}
.vis-tape__q{font:600 16px var(--v-mono);color:var(--v-lab)}
.vis-tape__q b{font:800 30px/1.1 var(--gft-font-display);color:var(--v-och);letter-spacing:-.01em}
.vis-tape__l{font-size:16px;color:var(--v-txt);line-height:1.4}
.vis-frac{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;opacity:0;transition:opacity .3s}
.vis-frac b{grid-area:1/1;font:800 24px/1 var(--gft-font-display);color:var(--v-mint);text-align:center;border-bottom:3px solid var(--v-ochre);padding:0 6px 3px}
.vis-frac i{grid-area:2/1;font:800 24px/1.1 var(--gft-font-display);font-style:normal;text-align:center;color:#f4f8f6}
.vis-frac small{grid-area:1/2/3/3;font:13px/1.3 var(--v-mono);color:var(--v-lab)}
.vis-gates[data-q="1"] .vis-frac{opacity:1}
.vis-gates[data-q="1"] .vis-tape__l{opacity:.6}
.vis-gates[data-q="0"] .vis-tape[data-vis-tape="0"]{opacity:.45;filter:saturate(.4)}
.vis-gates[data-q="0"] .vis-tape:not([data-vis-tape="0"]) .vis-tape__track,.vis-gates[data-q="2"] .vis-tape[data-vis-tape="1"] .vis-tape__track,.vis-gates[data-q="1"] .vis-tape__track{box-shadow:0 0 0 2px #c98a2b66,0 0 30px #2c3e7a}
.vis-board__hair{position:absolute;top:0;bottom:0;left:238px;right:328px;container-type:inline-size;pointer-events:none}
.vis-board__hair i{position:absolute;left:-1.5px;top:20px;bottom:0;width:3px;background:var(--v-ochre);transform:translateX(calc(var(--t) * 100cqw));transition:transform .25s var(--v-ease)}
.vis-board__hair b{position:absolute;left:10px;bottom:-26px;font:700 13px/1 var(--v-mono);letter-spacing:.06em;color:var(--v-och);white-space:nowrap;background:var(--v-deep);padding:2px 4px}
.vis-health{position:relative;display:grid;grid-template-columns:210px minmax(0,1fr) 300px;column-gap:28px;align-items:center;margin-top:18px}
.vis-health__lab{grid-column:1;grid-row:1;margin:0;font:700 13px/1.3 var(--v-mono);letter-spacing:.06em;color:var(--v-lab)}
.vis-health__svg{grid-column:2;grid-row:1;width:100%;height:64px}
.vis-health__band{fill:#2c3e7a33;stroke:#7f93d466}
.vis-sig{stroke:var(--v-mint);stroke-width:2.5;fill:none}
.vis-health__dot{grid-column:2;grid-row:1;justify-self:start;margin-left:42%;margin-top:34px;width:12px;height:12px;border-radius:50%;background:var(--v-ochre)}
.vis-chain{grid-column:3;grid-row:1;list-style:none;margin:0;padding:0;display:grid;gap:4px;font:600 13px/1.2 var(--v-mono);letter-spacing:.04em}
.vis-chain li{padding:5px 8px;border:1px solid #cfe6da55}
.vis-chain li+li::before{content:'↓ ';color:var(--v-och)}
.vis-gates[data-health=fail] .vis-chain__end{background:var(--v-ochre);color:var(--v-night);border-color:var(--v-ochre)}
.vis-gates[data-health=fail] .vis-sig{stroke:var(--v-och)}
.vis-qs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:40px;align-items:stretch}
.vis-q{position:relative;display:flex;flex-direction:column;gap:14px;min-width:0;min-height:380px;padding:30px 28px 26px;background:linear-gradient(180deg,#2c3e7a3d,#2c3e7a14);border:1px solid #7f93d44d;border-top:3px solid #cfe6da44;cursor:pointer;transition:background-color .25s,border-color .25s,box-shadow .25s}
.vis-q:hover{border-color:#a9b8e48c;border-top-color:#cfe6da88}
.vis-q[data-on]{background-color:#2c3e7a40;border-color:#c98a2b88;border-top-color:var(--v-ochre);box-shadow:0 18px 50px #00000059,0 0 0 1px #c98a2b40}
.vis-q__box{position:absolute;inset:12px;pointer-events:none}
.vis-q__box i{position:absolute;width:18px;height:18px;border:0 solid #cfe6da66;transition:transform .35s var(--v-ease),border-color .25s}
.vis-q__box i:nth-child(1){top:0;left:0;border-top-width:2px;border-left-width:2px;transform:translate(-5px,-5px)}
.vis-q__box i:nth-child(2){top:0;right:0;border-top-width:2px;border-right-width:2px;transform:translate(5px,-5px)}
.vis-q__box i:nth-child(3){bottom:0;left:0;border-bottom-width:2px;border-left-width:2px;transform:translate(-5px,5px)}
.vis-q__box i:nth-child(4){bottom:0;right:0;border-bottom-width:2px;border-right-width:2px;transform:translate(5px,5px)}
.vis-q:hover .vis-q__box i,.vis-q[data-on] .vis-q__box i{transform:none}
.vis-q[data-on] .vis-q__box i{border-color:var(--v-ochre)}
.vis-q__h{margin:0;font-size:inherit}
.vis-q__pick{all:unset;box-sizing:border-box;display:grid;gap:10px;width:100%;min-height:44px;cursor:pointer;text-align:left}
.vis-q__pick:focus-visible{outline:3px solid var(--v-ochre);outline-offset:6px}
.vis-q__n{font:italic 400 56px/1 var(--gft-font-serif);color:var(--v-och)}
.vis-q__t{font:750 22px/1.25 var(--gft-font-display);color:#f6f4ef;letter-spacing:-.01em}
.vis-q__test{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline;margin:0;font:600 14px/1.4 var(--v-mono);color:var(--v-lab);letter-spacing:.02em}
.vis-q__test span{padding:2px 7px;border:1px solid var(--v-och);color:var(--v-och);font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.vis-q__txt{margin:0;font-size:16px;line-height:1.6;color:var(--v-txt);max-width:none}
.vis-q__carry{display:grid;gap:2px;justify-self:start;align-self:flex-start;padding:10px 14px;border:1px dashed var(--v-och);color:var(--v-txt);text-decoration:none;background:#c98a2b14;transition:background-color .2s}
.vis-q__carry b{font:700 13px/1.3 var(--v-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--v-och)}
.vis-q__carry span{font-size:15px;line-height:1.4}
.vis-q__carry:hover{background:#c98a2b33}
.vis-q__carry:focus-visible{outline:3px solid var(--v-ochre);outline-offset:3px}
.vis-q__pass{display:flex;gap:12px;align-items:flex-start;margin:auto 0 0;padding-top:16px;border-top:1px dashed #cfe6da40;font-size:16px;line-height:1.45;color:var(--v-txt);max-width:none}
.vis-q__pass b{display:block;font:700 13px/1.4 var(--v-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--v-lab)}
.vis-q__pass i{position:relative;flex:none;width:26px;height:26px;margin-top:2px;border:2px solid #cfe6da77;transition:background-color .25s,border-color .25s}
.vis-q__pass i::after{content:'';position:absolute;left:7px;top:2px;width:7px;height:13px;border:solid #cfe6da77;border-width:0 3px 3px 0;transform:rotate(45deg)}
.vis-q[data-on] .vis-q__pass i{background:var(--v-ochre);border-color:var(--v-ochre)}
.vis-q[data-on] .vis-q__pass i::after{border-color:var(--v-night)}
.vis-q[data-on] .vis-q__pass b{color:var(--v-och)}
.vis-q__fine{font:13px var(--v-mono) !important;color:var(--v-lab) !important}
.vis-seg{border:0;margin:0;padding:0;min-width:0}
.vis-seg__row{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.vis-seg label{position:relative;cursor:pointer}
.vis-seg span{display:grid;place-items:center;min-height:44px;padding:6px;border:1px solid #cfe6da66;font-size:15px;font-weight:600;text-align:center}
.vis-seg input:checked+span{background:var(--v-ochre);color:var(--v-night);border-color:var(--v-ochre)}
.vis-switch{display:flex;gap:12px;align-items:center;min-height:44px;font-size:17px;cursor:pointer}
.vis-switch input{width:22px;height:22px;accent-color:var(--v-ochre)}
.vis-gates__foot{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px 48px;margin-top:32px;align-items:start}
.vis-gates__vendor{margin:0;font-size:17px;line-height:1.6;color:var(--v-txt);max-width:none;padding-left:18px;border-left:3px solid var(--v-ochre)}
.vis-gates__note{margin:0;font-size:15px;line-height:1.6;color:var(--v-lab);max-width:none}
.vis-q__lots{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.vis-q__lots li{display:grid;gap:2px;align-content:start;padding:9px 10px;border:2px dashed #e8b46499;min-width:0}
.vis-q__lots li[data-k="0"]{border-style:solid;border-color:#cfe6da44;opacity:.75}
.vis-q__lots b{font-size:14px;line-height:1.25;color:#f6f4ef}
.vis-q__lots small{font:13px/1.3 var(--v-mono);color:var(--v-lab)}
/* pick: each tape shoots in from the left like a weft pick; the hairline drops last */
:root[data-m-go] .vis-page[data-vis-armed] .vis-gates:not([data-vis-in]) :is(.vis-tape,.vis-board__hair i,.vis-health,.vis-board__axis){opacity:0}
:root[data-m-go] .vis-gates[data-vis-in=go] .vis-tape{animation:vis-pick 520ms calc(var(--k) * 110ms) cubic-bezier(.2,.9,.25,1) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-gates[data-vis-in=go] .vis-board__axis{animation:vis-fade 300ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-gates[data-vis-in=go] .vis-board__hair i{animation:vis-wipe-y 280ms 600ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-gates[data-vis-in=go] .vis-health{animation:vis-rise 420ms 420ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes vis-pick{from{opacity:.1;transform:translateX(-60%)}to{opacity:1;transform:none}}

/* ---------- 8 · closing desk (night) ---------- */
.vis-close{min-height:auto;background:var(--v-night);background-image:linear-gradient(#cfe6da0d 1px,transparent 1px),linear-gradient(90deg,#cfe6da0d 1px,transparent 1px);background-size:16px 16px;color:var(--v-txt);padding-block:32px 52px}
.vis-close__grid{position:relative;display:grid;grid-template-columns:minmax(0,58%) minmax(0,1fr);gap:44px;align-items:center}
.vis-close__fig{margin:0;min-width:0}
.vis-close__carry{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:baseline;margin-top:12px;padding-left:6.5%}
.vis-close .vis-fr__cap{padding-left:6.5%}
.vis-close__carry>span{font:600 15px var(--v-mono);color:var(--v-lab)}
.vis-close__carry b{font:800 32px/1.1 var(--gft-font-display);color:var(--v-och)}
.vis-close__conds{flex-basis:100%;display:grid}
.vis-close__cond{grid-area:1/1;font-size:17px;line-height:1.45;color:#f4f8f6;visibility:hidden}
.vis-close__cond b{font:800 13px var(--v-mono);letter-spacing:.06em;color:var(--v-och);margin-right:6px}
.vis-close[data-cond="0"] [data-vis-condt="0"],.vis-close[data-cond="1"] [data-vis-condt="1"],.vis-close[data-cond="2"] [data-vis-condt="2"]{visibility:visible}
.vis-close__why{flex-basis:100%;font:15px/1.5 var(--gft-font-display) !important}
.vis-stamp{opacity:0;transform:translate(-50%,-50%) rotate(-6deg);transition:opacity .25s;z-index:2}
.vis-stamp[data-flag="1"]{opacity:1}
.vis-stamp b{display:flex;flex-direction:column;align-items:center;font-weight:800}
.vis-stamp i{display:grid;text-align:center;font-style:normal;padding:3px 7px;border:2px solid var(--v-och);background:#072d2bee;color:var(--v-och);font:800 13px/1.1 var(--v-mono);letter-spacing:.06em;white-space:nowrap}
.vis-stamp b{grid-area:1/1;opacity:0;transition:opacity .2s}
.vis-close[data-cond="0"] .vis-stamp__t--0,.vis-close[data-cond="1"] .vis-stamp__t--1,.vis-close[data-cond="2"] .vis-stamp__t--2{opacity:1}
.vis-close[data-resolved] .vis-stamp b{opacity:0;transition-delay:calc(var(--k) * 90ms)}
.vis-close[data-resolved] .vis-stamp .vis-stamp__t--ok{opacity:1;color:var(--v-mint)}
.vis-close[data-resolved] .vis-stamp i{border-color:var(--v-mint)}
.vis-desk{display:grid;gap:10px;min-width:0}
.vis-close__head h2{font-size:clamp(1.8rem,2.3vw,2.4rem);color:#f6f4ef;margin:8px 0 4px}
.vis-close__lede{font-size:17px;color:var(--v-lab);max-width:none}
.vis-conds{border:0;margin:0;padding:0;min-width:0}
.vis-conds__row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.vis-cond{position:relative;cursor:pointer}
.vis-cond span{display:grid;gap:3px;height:100%;min-height:64px;padding:8px 10px;border:1px solid #cfe6da55;background:#0a3a37;transition:background .2s,border-color .2s}
.vis-cond b{font-size:15px;line-height:1.2}.vis-cond small{font-size:13px;line-height:1.3;color:var(--v-lab)}
.vis-cond input:checked+span{background:var(--v-ochre);border-color:var(--v-ochre);color:var(--v-night)}
.vis-cond input:checked+span small{color:#2a1a04}
.vis-bins{border:0;margin:0;padding:0;display:grid;gap:4px;min-width:0}
.vis-bins legend{font-size:15px;line-height:1.45;color:var(--v-lab);margin-bottom:6px;padding:0}
.vis-bin-row{position:relative;cursor:pointer;display:block}
.vis-bin-row__in{display:grid;grid-template-columns:72px 110px minmax(0,1fr);gap:14px;align-items:center;min-height:56px;padding:4px 12px 4px 4px;border:1px solid #cfe6da33;background:#0a3a37cc;transition:background .2s,border-color .2s}
.vis-bin-row input:checked+.vis-bin-row__in{border-color:var(--v-ochre);background:#0e4d4a;box-shadow:inset 4px 0 0 var(--v-ochre)}
.vis-mini{width:72px;height:48px;background:#072d2b;border:1px solid #cfe6da44}
.vis-mini__f{fill:#0e4d4a;stroke:#8fb8a5}.vis-mini__h{fill:var(--v-ochre);stroke:var(--v-och)}.vis-mini__s{fill:#f6f4ef;fill-opacity:.12;stroke:#cfe6da}
.vis-bin-row__k{font:600 13px var(--v-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--v-lab)}
.vis-bin-row__t{font-size:17px;font-weight:650;color:#f4f8f6;line-height:1.25}
.vis-bin-row__t.gft-serif{font-size:20px}
.vis-desk__read{display:grid;padding:12px 16px;background:#0e4d4a;border-left:4px solid var(--v-ochre);min-height:132px}
.vis-read{grid-area:1/1;display:grid;gap:4px;align-content:start;opacity:0;visibility:hidden;transition:opacity .25s}
.vis-close[data-bin="0"] [data-vis-read="0"],.vis-close[data-bin="1"] [data-vis-read="1"],.vis-close[data-bin="2"] [data-vis-read="2"],.vis-close[data-bin="3"] [data-vis-read="3"],.vis-close[data-bin="4"] [data-vis-read="4"]{opacity:1;visibility:visible}
.vis-read__k{font:600 13px var(--v-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--v-lab)}
.vis-read__stamp{color:var(--v-och)}
.vis-read h3{font-size:24px;color:#f6f4ef;letter-spacing:-.02em}
.vis-read h3.gft-serif{font-weight:400;font-size:28px}
.vis-read__l{font-size:17px;line-height:1.45;color:var(--v-txt)}
.vis-read__s{display:flex;gap:16px;align-items:center;flex-wrap:wrap;font:600 13px var(--v-mono);color:var(--v-lab)}
.vis-read__s a{display:inline-flex;align-items:center;min-height:44px;font:700 17px var(--gft-font-display);color:var(--v-och)}
.vis-read__off{color:var(--v-lab)}
.vis-desk__note{flex-basis:100%;font:13px/1.55 var(--v-mono);color:var(--v-lab);max-width:none}
.vis-close__thread{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.vis-close__thread path{stroke:var(--v-och);stroke-width:2.5;fill:none;stroke-dasharray:6 6}
.vis-close__bead{fill:var(--v-och);opacity:0}
.vis-close__exit{position:absolute;inset:0;pointer-events:none}
.vis-close__drop{position:absolute;left:-1.5px;top:0;bottom:0;width:3px;background:var(--v-ochre);transform:translateX(var(--fx,calc((100vw - min(1440px,100vw - 96px)) / 2 + 2.3%)));clip-path:inset(var(--fy,calc(100% - 64px)) 0 0 0)}
.vis-close__rulew{position:absolute;left:0;right:calc((100% - min(1440px,100% - 96px)) / 2);bottom:0;height:3px;clip-path:inset(0 0 0 var(--fx,calc((100vw - min(1440px,100vw - 96px)) / 2 + 2.3%)))}
.vis-close__rule{position:absolute;inset:0;background:var(--v-ochre)}
body[data-page=caps-a-vision] .gft-footer{border-top:0}
body[data-page=caps-a-vision] .gft-footer__next-line{background:#c98a2b3d}
body[data-page=caps-a-vision] .gft-footer__next-line i{background:var(--gft-ochre,#c98a2b)}
:root[data-m-go] body[data-page=caps-a-vision] .gft-footer__next:not([data-m-in]) .gft-footer__next-line{clip-path:inset(0 100% 0 0)}
:root[data-m-go] body[data-page=caps-a-vision] .gft-footer__next[data-m-in] .gft-footer__next-line{animation:vis-wipe-x 800ms 900ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
/* shutter: the frame opens from the centre, the desk's rows deal in, the stamps press last */
:root[data-m-go] .vis-page[data-vis-armed] .vis-close:not([data-vis-in]) :is(.vis-close__fig,.vis-cond,.vis-bin-row,.vis-desk__read,.vis-stamp i,.vis-close__drop,.vis-close__rule){opacity:0}
:root[data-m-go] .vis-close[data-vis-in=go] .vis-close__fig{animation:vis-shutter 520ms cubic-bezier(.6,0,.2,1) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-close[data-vis-in=go] :is(.vis-cond,.vis-bin-row){animation:vis-deal 360ms calc(200ms + var(--d,0) * 60ms) var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-close[data-vis-in=go] .vis-desk__read{animation:vis-fade 300ms 560ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-close[data-vis-in=go] .vis-stamp i{animation:vis-press 240ms calc(560ms + var(--k) * 30ms) cubic-bezier(.2,1.4,.4,1) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-close[data-vis-in=go] .vis-close__drop{animation:vis-fade 300ms 600ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .vis-close[data-vis-in=go] .vis-close__rule{animation:vis-wipe-x 500ms 760ms var(--v-ease) backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes vis-shutter{from{clip-path:inset(0 50% 0 50%)}to{clip-path:inset(0)}}
@keyframes vis-deal{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
@keyframes vis-press{from{opacity:0;transform:scale(1.5)}to{opacity:1;transform:none}}

/* ---------- lives (on screen only, never under Calm or reduced motion) ---------- */
:root[data-m-go] .vis-weave[data-m-on]{animation:vis-feed 2.6s linear infinite}
:root[data-m-go] .vis-seq__sweep[data-m-on]{animation:vis-sweep-seq 9s linear infinite}
:root[data-m-go] .vis-cmp-sweepw i[data-m-on]{animation:vis-sweep-cq 6s linear infinite}
:root[data-m-go] .vis-ladder[data-m-on] .vis-ladder__scan{animation:vis-lscan 7s linear infinite}
:root[data-m-go] .vis-ladder[data-m-on] .vis-ldot__l{animation:vis-lift 7s calc(var(--s) * 7s - 7s) linear infinite}
:root[data-m-go] .vis-ladder[data-m-on] .vis-ladder__hair i::before,:root[data-m-go] .vis-board__hair i b{animation:vis-breathe 2.8s ease-in-out infinite}
:root[data-m-go] .vis-pl__f[data-m-on]{animation:vis-float 5.5s calc(var(--k) * -1.3s) ease-in-out infinite alternate}
:root[data-m-go] .vis-dx__flow i[data-m-on]{animation:vis-run 2.4s linear infinite}
:root[data-m-go] .vis-cmp-boxes[data-m-on]{animation:vis-wobble 2.2s ease-in-out infinite}
:root[data-m-go] .vis-cmp-lamp[data-m-on]{animation:vis-lamp 5s ease-in-out infinite alternate}
:root[data-m-go] .vis-cmp-streaks[data-m-on]{animation:vis-streak 1.6s linear infinite}
:root[data-m-go] .vis-case[data-hit] .vis-hi{animation:vis-restroke 700ms var(--v-ease) 1 normal}
@keyframes vis-feed{from{transform:translateX(0)}to{transform:translateX(16px)}}
@keyframes vis-sweep-seq{from{transform:translateX(40px)}to{transform:translateX(1680px)}}
@keyframes vis-sweep-cq{from{transform:translateX(0)}to{transform:translateX(100cqw)}}
@keyframes vis-lscan{0%{opacity:.9;transform:translateX(0)}97%{opacity:.9}100%{opacity:0;transform:translateX(100cqw)}}
@keyframes vis-lift{0%{transform:translateY(-4px)}9%,100%{transform:translateY(0)}}
@keyframes vis-breathe{0%,100%{opacity:1}50%{opacity:.55}}
@keyframes vis-float{from{transform:translateY(0)}to{transform:translateY(-6px)}}
@keyframes vis-run{from{transform:translateX(-100%)}to{transform:translateX(560%)}}
@keyframes vis-wobble{0%,100%{transform:translate(0,0)}25%{transform:translate(2px,-1px)}50%{transform:translate(-1px,2px)}75%{transform:translate(-2px,-2px)}}
@keyframes vis-lamp{from{opacity:.55}to{opacity:1}}
@keyframes vis-streak{from{transform:translateX(0)}to{transform:translateX(-131px)}}
@keyframes vis-restroke{0%{opacity:1;clip-path:inset(0 100% 0 0)}45%{opacity:1;clip-path:inset(0)}100%{opacity:0;clip-path:inset(0)}}
@keyframes vis-press-again{from{transform:scale(1.12)}to{transform:none}}
.vis-weave,.vis-pl__f,.vis-cmp-boxes,.vis-cmp-streaks,.vis-seq__sweep,.vis-cmp-sweepw i,.vis-scan,.vis-ladder__scan{overflow-anchor:none}

/* ---------- scroll-linked hand-overs (Chromium and Safari; transform, opacity and clip-path on their own elements) ---------- */
@supports (animation-timeline:view()){
 :root[data-m-go] .vis-cmp__view{view-timeline-name:--vis-cmp;view-timeline-axis:block}
 :root[data-m-go] .vis-cmp__benchw{animation-name:vis-split-close;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--vis-cmp;animation-range-start:exit 8%;animation-range-end:exit 70%}
 :root[data-m-go] .vis-cmp__divw{animation-name:vis-div-sweep;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--vis-cmp;animation-range-start:exit 8%;animation-range-end:exit 70%}
 :root[data-m-go] .vis-int__tilt{animation-name:vis-tilt;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--vis-int;animation-range-start:exit 0%;animation-range-end:exit 90%}
 :root[data-m-go] .vis-quote__ul{animation-name:vis-ul;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range-start:cover 20%;animation-range-end:cover 55%}
}
@keyframes vis-split-close{from{clip-path:inset(0)}to{clip-path:inset(0 100% 0 0)}}
@keyframes vis-div-sweep{from{opacity:1}to{opacity:0}}
@keyframes vis-tilt{from{transform:none}to{transform:perspective(1500px) rotateX(58deg) scale(.82)}}
@keyframes vis-ul{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ---------- tablet and phone ---------- */
@media (max-width:1100px){
 .vis-bench__grid{grid-template-columns:minmax(0,1fr);grid-template-areas:'stage' 'ctl' 'notes';padding:24px 28px 96px}
 .vis-bench__grid::before{display:none}
 .vis-del__grid{grid-template-columns:minmax(0,1fr);padding:0 28px}
 .vis-del__pinw{position:sticky;top:0;z-index:2;order:0}
 .vis-del__pin{position:relative;top:0;height:58svh;background:var(--v-forest);padding-top:10px}
 .vis-del__steps{padding-top:24px}
 .vis-dstep{min-height:60svh;padding-top:24px}
 .vis-dstep:last-child{min-height:80svh}
 .vis-dstep__n{font-size:56px}
 .vis-del__foot{grid-template-columns:1fr}
 .vis-del__read{min-height:4.4em}
 .vis-drop{display:none}
 .vis-notes{grid-template-columns:1fr;margin-inline:0}
 .vis-notes__body{grid-column:1;grid-row:auto}
 .vis-close__grid{grid-template-columns:minmax(0,1fr)}
 .vis-close__thread{display:none}
 .vis-gates__head{grid-template-columns:1fr}
 .vis-board{--cols:minmax(0,1fr)}
 .vis-board__axis{display:none}
 .vis-tape{grid-template-columns:minmax(0,1fr);row-gap:6px}
 .vis-board__hair{display:none}
 .vis-tape__track{background-image:linear-gradient(90deg,#cfe6da14 1px,transparent 1px),linear-gradient(90deg,transparent calc(var(--t) * 100% - 1.5px),var(--v-ochre) calc(var(--t) * 100% - 1.5px) calc(var(--t) * 100% + 1.5px),transparent 0)}
 .vis-health{grid-template-columns:minmax(0,1fr);row-gap:8px}
 .vis-health__lab,.vis-health__svg,.vis-health__dot,.vis-chain{grid-column:1;grid-row:auto}
 .vis-health__dot{display:none}
 .vis-qs{grid-template-columns:minmax(0,1fr)}
 .vis-q{min-height:0;padding:26px 22px 22px}
 .vis-gates__foot{grid-template-columns:minmax(0,1fr)}
 .vis-ev__bar,.vis-ev__spec{grid-template-columns:minmax(0,1fr);padding-inline:28px}
 .vis-ticks{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
 .vis-ev__card{position:relative;left:auto;top:auto;width:auto;margin:0;padding:40px 20px 16px;border-top:0;background:transparent}
 .vis-cmp__chips{position:relative;top:auto;left:auto;right:auto;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 20px 12px;scrollbar-width:none}
 .vis-pill{flex:none;scroll-snap-align:start}
 .vis-cmp__view{height:46svh;min-height:320px}
 .vis-cmp__slate{right:12px;top:12px;max-width:62%;padding:10px 12px}
 .vis-cmp__slate strong{font-size:26px}.vis-cmp__slate span{font-size:13px}
 .vis-cmp__lab{max-width:48%;bottom:10px}.vis-cmp__lab--a{left:10px}.vis-cmp__lab--b{right:10px}
 .vis-cmp__div i{bottom:96px}
 .vis-seq{--bw:100vw;--bh:53.75vw;display:flex;flex-direction:column}
 .vis-seq__pin{display:contents}
 .vis-seq__card{order:0;margin:0;width:auto;padding:40px 20px 20px;box-shadow:none;border-top:0;background:transparent}
 .vis-seq__box{order:1;position:sticky;top:0;z-index:3;width:100%;aspect-ratio:auto;background:var(--v-paper);padding-bottom:8px;box-shadow:0 10px 24px #072d2b26}
 .vis-seq__svg{position:relative;inset:auto;height:auto;aspect-ratio:1600/860}
 .vis-seq__ov{bottom:auto;aspect-ratio:1600/860}
 .vis-sl{display:none}
 .vis-seq__doors{aspect-ratio:auto}
 .vis-seq__top{position:static;display:flex;justify-content:space-between;align-items:center;padding:8px 12px 0;gap:8px}
 .vis-seq__count{font-size:32px;padding:4px 10px;order:2;white-space:nowrap;flex:none}
 .vis-seq__ctl{flex:1 1 auto;min-width:0}.vis-seq__count span{font-size:18px}
 .vis-step-btn{padding:6px 8px}
 .vis-seq__legend{display:grid;list-style:none;margin:8px 12px 0;padding:0}
 .vis-lg{grid-area:1/1;display:flex;flex-wrap:wrap;gap:6px;align-content:start;visibility:hidden}
 .vis-lg span{padding:4px 8px;background:#0e4d4a;color:#f4f8f6;font:700 13px/1.2 var(--v-mono);letter-spacing:.04em}
 .vis-seq[data-step="0"] .vis-lg--0,.vis-seq[data-step="1"] .vis-lg--1,.vis-seq[data-step="2"] .vis-lg--2{visibility:visible}
 .vis-seq__foot{position:static;padding:6px 12px 0}
 .vis-seq__read{font-size:17px;min-height:2.7em}
 .vis-seq__cap{display:none}
 .vis-seq__steps{display:none}
 .vis-seq__cards{order:2;margin:0;width:auto;align-self:auto;justify-self:auto;gap:36svh;padding:20svh 16px 28svh}
 .vis-step__card,.vis-step__card[data-on]{grid-area:auto;opacity:1;visibility:visible;transform:none}
 .vis-ap{display:none}
 .vis-int__inner{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto auto auto;padding-block:40px 28px;row-gap:16px}
 .vis-int__art{grid-column:1;grid-row:1;place-items:center}
 .vis-int__tilt{width:100%}
 .vis-int__type{grid-column:1;grid-row:2;padding:4px 0}
 .vis-int__carry{grid-column:1;grid-row:3}
 .vis-modes{grid-column:1;grid-row:4}
 .vis-int__more{grid-column:1;grid-row:5}
 .vis-quote p{font-size:34px}
 .vis-int__carry b{font-size:26px}
 .vis-modes__row{grid-template-columns:1fr}
 .vis-mode span{min-height:56px}
 .vis-mode b{font-size:19px}
}
@media (max-width:640px){
 .vis-page .gft-splash__content{padding-top:40px;padding-bottom:calc(62vw + 72px)}
 .vis-page .gft-splash h1{font-size:clamp(2.6rem,12vw,3.5rem)}
 .vis-page .gft-splash.gft-splash--instrument .gft-splash__structure{inset:auto 0 calc(var(--splash-strip-h) + 4px) 0;height:auto;padding:0 12px}
 .vis-page .gft-splash__structure::after{display:none}
 .vis-page .gft-splash__lede{font-size:17px}
 .vis-hero__act .gft-button{width:100%}
 .vis-page .gft-splash__data{display:none}
 .vis-bench__grid{padding:20px 16px 88px}
 .vis-bench__head{grid-template-columns:1fr;gap:10px}
 .vis-bench__head h2{font-size:2rem}
 .vis-ctl__value{font-size:44px}
 .vis-tally dd{font-size:28px}
 .vis-ldot{width:44px;height:44px}
 .vis-ldot__l{width:28px;height:28px;margin:8px;font-size:13px}
 .vis-ladder__track{height:150px}
 .vis-ladder__tick:nth-child(5),.vis-ladder__tick:nth-child(7){display:none}
 .vis-ladder__hair b{display:none}
 .vis-ev__bar,.vis-ev__spec{padding-inline:16px}
 .vis-ev__card h2{font-size:2.2rem}
 .vis-del__grid{padding:0 16px}
 .vis-dx__auth,.vis-dx__own,.vis-dx__leader{display:none}
 .vis-plab{font-size:13px;padding:2px 6px;white-space:normal;max-width:30cqw;text-align:center;line-height:1.1}
 .vis-pl__lotk,.vis-dx__held{display:none}
 .vis-del[data-step="2"] .vis-plab--0{visibility:hidden}
 .vis-del[data-step="2"] .vis-pl--0{transform:translate(0,-20cqh) scale(1.25) rotateX(0deg) rotateZ(0deg)}
 .vis-del[data-step="0"] .vis-plab{white-space:nowrap;max-width:none;min-height:30px;transform:translate(calc(100cqw - 100%),calc(50cqh + (var(--k) - 1.5) * 13cqh - 2cqh - 15px))}
 .vis-pl{transform:translate(-17cqw,calc((var(--k) - 1.5) * (13cqh + var(--sp) * .35cqh) - 2cqh)) scale(.78) rotateX(58deg) rotateZ(-36deg)}
 .vis-del:not([data-step="0"]) .vis-spread{visibility:hidden}
 .vis-gates{padding-block:56px}
 .vis-gates .gft-container,.vis-close .gft-container{width:calc(100% - 32px)}
 .vis-tape__track{height:116px}
 .vis-cell{width:30px;height:30px;margin-left:-15px;font-size:13px}
 .vis-tape__read{grid-template-columns:auto 1fr;column-gap:12px}
 .vis-tape__q b{font-size:24px}
 .vis-conds__row{grid-template-columns:1fr}
 .vis-cond span{min-height:48px}
 .vis-bin-row__in{grid-template-columns:72px minmax(0,1fr);row-gap:0;min-height:56px}
 .vis-bin-row__k{grid-column:2;grid-row:1}
 .vis-bin-row__t{grid-column:2;grid-row:2}
 .vis-mini{grid-row:1/3}
 .vis-close__rulew{right:16px}
}
@media (prefers-reduced-motion:reduce){
 .vis-ladder__zone,.vis-ladder__hair i,.vis-drop__v,.vis-drop__h,.vis-board__hair i,.vis-pl,.vis-plab,.vis-ap__open,.vis-ap__blades i,.vis-hair,.vis-route,.vis-rv,.vis-bar{transition:none}
}
:root[data-motion=calm] :is(.vis-ladder__zone,.vis-ladder__hair i,.vis-drop__v,.vis-drop__h,.vis-board__hair i,.vis-pl,.vis-plab,.vis-ap__open,.vis-ap__blades i,.vis-hair,.vis-route,.vis-rv,.vis-bar){transition:none}
