/* /capabilities/factory-design-and-operating-models/: one floor, one lot, eight blocks.
   Stability: HTML is the end state; pre-states only under :root[data-m-go][data-fdo-js]; entrances once (two phases,
   settled by about 900 ms); transform, opacity, clip-path and filter only; sticky pins, never counter-translation;
   scroll-driven rules as longhands inside @supports; every read-out that changes is a grid stack of all its texts. */
.fdo-page{
 --n:#072d2b;--deep:#05221f;--forest:#0e4d4a;--sage:#6bb68f;--ochre:#c98a2b;--ochre-hi:#e0a644;--paper:#f6f4ef;--mist:#e2ebe6;
 --ink:#1f2b29;--ink-2:#34463f;--leaf-ink:#2a6e50;--on-dark:#e3f0eb;--on-dark-2:#d6e8e1;--gut:max(48px,calc((100vw - 1440px)/2 + 48px));
 --ease:cubic-bezier(.16,1,.3,1);--ease-io:cubic-bezier(.65,0,.35,1);
 overflow-x:clip;color:var(--ink);isolation:isolate}
.fdo-page *{box-sizing:border-box}
.fdo-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.fdo-k{display:block;font:600 13.5px/1.5 var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase}
.fdo-note{font:14px/1.68 var(--gft-font-mono);letter-spacing:.01em;max-width:none}
.fdo-lede{font-size:18px;line-height:1.6;max-width:40ch}
.fdo-stack{display:grid}
.fdo-stack>*{grid-area:1/1}
.fdo-sec{position:relative}
.fdo-sec h2{font-size:clamp(2.2rem,3.3vw,3.4rem);line-height:1.04;letter-spacing:-.05em;max-width:15ch}
.fdo-page button{font:inherit}
.fdo-page :is(a,button,summary,input):focus-visible{outline:3px solid var(--ochre-hi);outline-offset:3px}
.fdo-page .gft-eyebrow{font-size:13px;letter-spacing:.08em;font-weight:600;margin-bottom:18px}

/* ---------- the floor (Iso) ---------- */
.fdo-iso-box{position:relative;width:100%;container-type:inline-size}
.fdo-iso{display:block;width:100%;height:auto;overflow:visible}
.fdo-tile{fill:#6bb68f;fill-opacity:calc(.06 + var(--k) * .022)}
.fdo-floor-grid{stroke:#cfe3d7;stroke-opacity:.16}
.fdo-floor-edge{stroke:#8fd0ae;stroke-opacity:.75;stroke-width:1.5}
.fdo-peel{fill:#6bb68f;fill-opacity:.12;stroke:#8fd0ae;stroke-width:1.5;opacity:0}
.fdo-route-base{stroke:#c98a2b;stroke-width:7;stroke-opacity:.24}
.fdo-route-line{stroke:#e0a644;stroke-width:3;stroke-dasharray:6 9}
.fdo-seg-lit{stroke:#f0b54f;stroke-width:6;stroke-linecap:round;opacity:0;transition:opacity .4s}
.fdo-rework{stroke:#e0a644;stroke-opacity:.7;stroke-width:2}
.fdo-ring{stroke:#e0a644;stroke-width:2;opacity:0;transition:opacity .35s}
.fdo-cube{fill:#0f5a56;stroke:#b4d8c4;stroke-width:1.6}
.fdo-edge{stroke:#b4d8c4;stroke-opacity:.7}
.fdo-glyph{stroke:#e8f3ec;stroke-width:2}
.fdo-pin{fill:#e0a644}
.fdo-st-body{transform-box:view-box;transition:transform .5s var(--ease),opacity .4s}
.fdo-trav{transform:translate(var(--lx2),var(--ly2));transition:transform .8s var(--ease-io)}
.fdo-trav-halo{stroke:#f0b54f;stroke-width:2;transform-box:fill-box;transform-origin:center}
.fdo-trav-gem{fill:#e0a644;stroke:#f6f4ef;stroke-width:1.6}
.fdo-layer,.fdo-l-seq0,.fdo-l-seq1,.fdo-l-seq2,.fdo-l-g0,.fdo-l-g1,.fdo-l-g2{opacity:0;transition:opacity .45s}
.fdo-labs{position:absolute;inset:0;pointer-events:none}
.fdo-lab{position:absolute;left:calc(var(--x) * .1cqw);top:calc(var(--y) * .1cqw);translate:-50% -50%;white-space:nowrap;
 font:600 clamp(13px,1.6cqw,19px)/1.25 var(--gft-font-mono);letter-spacing:.04em;color:#f1f8f3;background:#072d2b;border:1px solid #6bb68f80;border-radius:3px;padding:.28em .62em}
.fdo-lab--note{font-weight:500;color:#d7e6e0}
.fdo-lab--hi{color:#fff;border-color:#e0a64499}
.fdo-lab--owner{font-size:clamp(13px,1.4cqw,15px)}
.fdo-lab--ctr{min-width:4.2em;text-align:center;font-size:clamp(13px,1.3cqw,15px)}
.fdo-lab--bay{font-size:clamp(13px,1.5cqw,17px);min-width:2em;text-align:center;border-color:#e0a644aa}
.fdo-layer path,.fdo-layer circle,.fdo-layer rect{vector-effect:non-scaling-stroke}
.fdo-ink-hi{stroke:#e0a644;stroke-width:2.5}
.fdo-qbay{stroke:#e0a644;stroke-dasharray:4 5}
.fdo-trace{stroke:#f6f4ef;stroke-opacity:.9;stroke-width:3}
.fdo-dot{fill:#f6f4ef}
.fdo-hand-arrow{stroke:#f6f4ef;stroke-width:3}
.fdo-owner-tie{stroke:#6bb68f;stroke-width:2}
.fdo-hold{stroke:#e0a644;stroke-width:2}
.fdo-bolt{stroke:#f6f4ef;stroke-width:4;stroke-linejoin:round}
.fdo-held-box{fill:#072d2b;stroke:#e0a644}
.fdo-loop{stroke:#6bb68f;stroke-width:3;stroke-dasharray:3 6}
.fdo-skill-on{fill:#f6f4ef;stroke:#f6f4ef}
.fdo-skill-gap{fill:none;stroke:#f6f4ef;stroke-dasharray:2 3}
.fdo-skill rect{fill:#6bb68f}
.fdo-gap-mark{stroke:#e0a644;stroke-width:2}
.fdo-qb-box{fill:#6bb68f;fill-opacity:.6;stroke:#f6f4ef}
.fdo-qb-tag{stroke:#e0a644;stroke-width:2}
.fdo-gate-frame{stroke:#f6f4ef;stroke-width:3}
.fdo-ctr{fill:#072d2b;stroke:#6bb68f}
.fdo-iso--ghost .fdo-cube{fill:#0c4744;stroke:#7fc7a1}
.fdo-iso--ghost .fdo-trav,.fdo-iso--ghost .fdo-ring,.fdo-iso--ghost .fdo-seg-lit{display:none}

/* lit and chosen stations (hero data-lit, lens data-st, sequence and closing set below) */
:is(.fdo-hero[data-lit="0"],.fdo-lens[data-st="0"]) .fdo-st[data-i="0"],
:is(.fdo-hero[data-lit="1"],.fdo-lens[data-st="1"]) .fdo-st[data-i="1"],
:is(.fdo-hero[data-lit="2"],.fdo-lens[data-st="2"]) .fdo-st[data-i="2"],
:is(.fdo-hero[data-lit="3"],.fdo-lens[data-st="3"]) .fdo-st[data-i="3"]{--on:1}
.fdo-st{--on:0}
.fdo-hero .fdo-st .fdo-st-body{transform:translateY(calc(var(--on) * -10px))}
:is(.fdo-hero,.fdo-lens,.fdo-close,.fdo-reh) .fdo-st .fdo-ring{opacity:var(--on)}
.fdo-hero .fdo-st .fdo-cube{fill:color-mix(in srgb,#1f8274 calc(var(--on) * 100%),#0f5a56)}
.fdo-hero[data-lit="0"] .fdo-trav{transform:translate(var(--lx0),var(--ly0))}
.fdo-hero[data-lit="1"] .fdo-trav{transform:translate(var(--lx1),var(--ly1))}
.fdo-hero[data-lit="3"] .fdo-trav{transform:translate(var(--lx3),var(--ly3))}
.fdo-hero .fdo-lab[data-i]{transition:color .3s}

/* ---------- #1 splash ---------- */
.fdo-page .gft-splash{min-height:max(640px,calc(92svh - 88px))}
.fdo-page .gft-splash__content{padding-block:34px 44px}
.fdo-page .gft-splash h1{font-size:clamp(3.3rem,min(5.4vw,8.2svh),5.5rem);max-width:9.6em;line-height:1.02;margin-top:16px}
.fdo-page .gft-splash__lede{max-width:30em;font-size:17px;line-height:1.58;margin-top:16px;color:#e3f0eb}
.fdo-page .gft-splash__actions{margin-top:18px}
.fdo-page .gft-splash__data,.fdo-page .gft-splash__data *{font-size:13.5px}
.fdo-page .gft-splash__caption,.fdo-page .gft-splash__cue{font-size:13.5px;color:#e3f0eb}
.fdo-page .gft-splash__position{font-size:13.5px;color:#e3f0eb}
.fdo-page .gft-splash.gft-splash--instrument .gft-splash__structure{inset:0 -4% 58px 25%;display:block;overflow:clip}
.fdo-page .gft-splash__structure::after{background:linear-gradient(90deg,#072d2b 0%,#072d2bb0 6%,#072d2b00 24%)}
.fdo-hero{position:absolute;left:0;right:0;top:48%;bottom:auto;transform:translateY(-48%)}
.fdo-hero .fdo-cube{fill:#146863;stroke:#cfe8da}
.fdo-hero .fdo-lab{font-size:clamp(13.5px,1.5cqw,19px)}
/* Keep Receive and its backing clear of the desktop control panel. */
@media (min-width:761px){
 .fdo-hero .fdo-lab[data-i="0"]{left:calc((var(--x) + 100) * .1cqw)}
}
.fdo-hero-act{display:grid;gap:14px;max-width:36rem;padding:14px 16px;background:#062624cc;border:1px solid #6bb68f66;border-radius:4px}
.fdo-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.fdo-chips-k{width:100%;font:600 13.5px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#e3f0eb}
.fdo-chip{min-height:48px;padding:0 20px;font-weight:700;font-size:15.5px;color:#f1f8f3;background:#0b3b39;border:1px solid #6bb68f99;border-radius:4px;transition:background-color .25s,color .25s}
.fdo-chip:hover{border-color:#e0a644}
.fdo-chip[aria-pressed=true]{background:#e0a644;color:#072d2b;border-color:#e0a644}
.fdo-ticker{display:grid;gap:3px;padding:12px 16px;border:1px solid #6bb68f88;border-left:4px solid #e0a644;background:#05221f;max-width:26rem}
.fdo-ticker-k{font:600 13.5px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#e3f0eb}
.fdo-ticker-v{display:grid}
.fdo-tk{grid-area:1/1;font-size:23px;font-weight:750;letter-spacing:-.02em;color:#fff;opacity:0;transform:translateY(6px);transition:opacity .16s,transform .16s}
.fdo-ticker[data-lit="0"] .fdo-tk[data-i="0"],.fdo-ticker[data-lit="1"] .fdo-tk[data-i="1"],.fdo-ticker[data-lit="2"] .fdo-tk[data-i="2"],.fdo-ticker[data-lit="3"] .fdo-tk[data-i="3"]{opacity:1;transform:none;transition-duration:.22s;transition-delay:.16s}
/* the floor assembles in process order: tiles, cubes, route; the lot joins at 900 ms */
:root[data-m-go] .fdo-hero :is(.fdo-tile,.fdo-st,.fdo-route,.fdo-floor-grid,.fdo-floor-edge,.fdo-trav-in,.fdo-lab){animation-timing-function:var(--ease);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards}
:root[data-m-go] .fdo-hero .fdo-tile{animation-name:fdo-tile;animation-duration:200ms;animation-delay:calc(var(--k) * 40ms)}
:root[data-m-go] .fdo-hero :is(.fdo-floor-grid,.fdo-floor-edge){animation-name:fdo-fade;animation-duration:360ms}
:root[data-m-go] .fdo-hero .fdo-st{animation-name:fdo-rise;animation-duration:220ms;animation-delay:calc(200ms + var(--i) * 160ms)}
:root[data-m-go] .fdo-hero .fdo-route{animation-name:fdo-draw;animation-duration:300ms;animation-delay:600ms;animation-timing-function:linear}
:root[data-m-go] .fdo-hero .fdo-trav-in{animation-name:fdo-fade;animation-duration:260ms;animation-delay:900ms}
:root[data-m-go] .fdo-hero .fdo-lab{animation-name:fdo-fade;animation-duration:300ms;animation-delay:560ms}
@keyframes fdo-tile{from{opacity:0;transform:translateY(-14px)}}
@keyframes fdo-fade{from{opacity:0}}
@keyframes fdo-rise{from{opacity:0;transform:translateY(24px)}}
@keyframes fdo-draw{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.fdo-hero .fdo-tile,.fdo-hero .fdo-st,.fdo-st{transform-box:view-box}
:root[data-m-go] .fdo-hero .fdo-trav-halo{animation-name:fdo-halo;animation-duration:2.4s;animation-iteration-count:infinite;animation-direction:alternate;animation-timing-function:ease-in-out}
@keyframes fdo-halo{from{opacity:.35;transform:scale(.85)}to{opacity:1;transform:scale(1.25)}}
.fdo-hero .fdo-sweep{display:none}

/* ---------- #2 lens (night, Act I) ---------- */
.fdo-lens{background:var(--n);color:var(--on-dark);z-index:2;padding:0 0 28px;
 background-image:linear-gradient(#cfe3d714 1px,transparent 1px),linear-gradient(90deg,#cfe3d714 1px,transparent 1px);background-size:42px 42px}
.fdo-lens-stage{position:relative;container-type:inline-size;width:min(100%,1600px);margin:0 auto;--u:.088cqw;--fx:7cqw;--fy:9.4cqw}
.fdo-lens-head{position:absolute;left:var(--gut);top:clamp(24px,2.6cqw,40px);width:min(31cqw,450px);z-index:3}
.fdo-lens-head h2{color:#fff;font-size:clamp(2rem,3cqw,2.9rem);max-width:12ch}
.fdo-lens-head .fdo-lede{margin-top:16px;font-size:17px;color:var(--on-dark)}
.fdo-lens .gft-eyebrow{color:#cfe3d7}
.fdo-rail{position:absolute;right:var(--gut);top:clamp(20px,1.8cqw,30px);margin:0;padding:0;border:0;display:flex;align-items:center;gap:16px;z-index:4}
.fdo-rail legend{float:left;font:600 13px var(--gft-font-mono);letter-spacing:.06em;color:#cfe3d7;max-width:15em;margin-right:4px}
.fdo-rail-opts{display:flex;gap:6px}
.fdo-rail-opt{position:relative}
.fdo-rail-opt input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.fdo-rail-opt span{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 16px;font-weight:650;font-size:15px;color:#f1f8f3;background:#0b3b39;border:1px solid #6bb68f88;border-radius:4px}
.fdo-rail-opt i{font:600 13px var(--gft-font-mono);font-style:normal;color:#cfe3d7}
.fdo-rail-opt input:checked+span{background:#e0a644;color:#072d2b;border-color:#e0a644}
.fdo-rail-opt input:checked+span i{color:#072d2b}
.fdo-rail-opt input:focus-visible+span{outline:3px solid #e0a644;outline-offset:3px}
.fdo-lens-floor{position:relative;margin-left:var(--fx);width:88cqw;padding-top:var(--fy);margin-bottom:-6cqw}
.fdo-lens .fdo-st{transition:opacity .4s}
.fdo-lens .fdo-st .fdo-st-body{opacity:calc(.4 + var(--on) * .6);transform:translateY(calc(var(--on) * -30px))}
.fdo-lens .fdo-cube{fill:color-mix(in srgb,#1f8274 calc(var(--on) * 100%),#0f5a56)}
.fdo-lens .fdo-lab[data-i]{opacity:.55}
.fdo-lens[data-st="0"] .fdo-lab[data-i="0"],.fdo-lens[data-st="1"] .fdo-lab[data-i="1"],.fdo-lens[data-st="2"] .fdo-lab[data-i="2"],.fdo-lens[data-st="3"] .fdo-lab[data-i="3"]{opacity:1;border-color:#e0a644}
.fdo-lens[data-st="0"] .fdo-seg-lit[data-k="0"],
.fdo-lens[data-st="1"] .fdo-seg-lit:is([data-k="0"],[data-k="1"]),
.fdo-lens[data-st="2"] .fdo-seg-lit:is([data-k="1"],[data-k="2"]),
.fdo-lens[data-st="3"] .fdo-seg-lit[data-k="2"]{opacity:1}
.fdo-lens[data-st="0"] .fdo-trav{transform:translate(var(--lx0),calc(var(--ly0) - 30px))}
.fdo-lens[data-st="1"] .fdo-trav{transform:translate(var(--lx1),calc(var(--ly1) - 30px))}
.fdo-lens[data-st="2"] .fdo-trav{transform:translate(var(--lx2),calc(var(--ly2) - 30px))}
.fdo-lens[data-st="3"] .fdo-trav{transform:translate(var(--lx3),calc(var(--ly3) - 30px))}
.fdo-cube-btn{position:absolute;left:calc(var(--x) * .1cqw);top:calc(var(--y) * .1cqw);width:13cqw;height:12cqw;translate:-50% -50%;background:transparent;border:0;border-radius:8px;z-index:2}
.fdo-cube-btn:hover{outline:1px dashed #e0a64499}
.fdo-hangers{position:absolute;left:0;top:var(--fy);width:100%;height:auto;overflow:visible;pointer-events:none}
.fdo-hanger{stroke:#e0a644;stroke-width:1.5;stroke-dasharray:3 4;opacity:0;transition:opacity .3s;vector-effect:non-scaling-stroke}
.fdo-lens[data-st="0"] .fdo-hanger[data-i="0"],.fdo-lens[data-st="1"] .fdo-hanger[data-i="1"],.fdo-lens[data-st="2"] .fdo-hanger[data-i="2"],.fdo-lens[data-st="3"] .fdo-hanger[data-i="3"]{opacity:1}
.fdo-plate--3{position:relative}
.fdo-plate--3::after{content:'';position:absolute;left:100%;top:50%;height:1px;background:#cfe3d7;width:calc(100cqw - var(--gut) - min(21cqw,300px) - var(--fx) - (var(--px) + 150) * var(--u))}
.fdo-plates-wrap{position:absolute;inset:0;pointer-events:none;z-index:3}
.fdo-plates{position:absolute;left:calc(var(--fx) + (var(--px) - 150) * var(--u));top:calc(var(--fy) + var(--py) * var(--u));width:calc(300 * var(--u));
 display:flex;flex-direction:column-reverse;gap:8px;translate:0 -100%;visibility:hidden;opacity:0;transition:opacity .35s,visibility 0s .35s}
.fdo-lens[data-st="0"] .fdo-plates[data-i="0"],.fdo-lens[data-st="1"] .fdo-plates[data-i="1"],.fdo-lens[data-st="2"] .fdo-plates[data-i="2"],.fdo-lens[data-st="3"] .fdo-plates[data-i="3"]{visibility:visible;opacity:1;transition:opacity .35s,visibility 0s}
.fdo-plate{background:#0b3d3a;border:1px solid #6bb68f;border-left:4px solid #e0a644;padding:10px 14px 12px;color:#fff;transition:transform .5s var(--ease)}
.fdo-plate .fdo-k{color:#cfe3d7;margin-bottom:2px}
.fdo-plate p{font-size:20px;line-height:1.25;font-weight:650;letter-spacing:-.015em;max-width:none}
.fdo-plate--1 .fdo-plate-t{font-size:22px;font-weight:750}
.fdo-lens .fdo-plate--2{transform:translateY(0)}
.fdo-ghost{position:absolute;width:calc(300 * var(--u));display:grid;gap:8px;opacity:0;transition:opacity .25s;translate:0 -100%;top:calc(var(--fy) + 190 * var(--u))}
.fdo-ghost i{display:block;height:64px;border:1px dashed #e0a644cc}
.fdo-lens[data-pv="0"] .fdo-ghost{opacity:1;left:calc(var(--fx) + 380 * var(--u))}
.fdo-lens[data-pv="1"] .fdo-ghost{opacity:1;left:calc(var(--fx) + 450 * var(--u))}
.fdo-lens[data-pv="2"] .fdo-ghost{opacity:1;left:calc(var(--fx) + 450 * var(--u))}
.fdo-lens[data-pv="3"] .fdo-ghost{opacity:1;left:calc(var(--fx) + 470 * var(--u));top:calc(var(--fy) + 286 * var(--u))}
.fdo-lens-text{position:absolute;right:var(--gut);top:calc(var(--fy) + 40 * var(--u));width:min(21cqw,300px);z-index:3;padding:14px 16px;background:#072d2bee;border:1px solid #6bb68f55}
.fdo-lens-text .fdo-k{color:#cfe3d7;margin-bottom:6px}
.fdo-lens-tx{font-size:17px;line-height:1.6;color:var(--on-dark);visibility:hidden;opacity:0;transition:opacity .3s,visibility 0s .3s}
.fdo-lens-tx b{color:#fff}
.fdo-lens[data-st="0"] .fdo-lens-tx[data-i="0"],.fdo-lens[data-st="1"] .fdo-lens-tx[data-i="1"],.fdo-lens[data-st="2"] .fdo-lens-tx[data-i="2"],.fdo-lens[data-st="3"] .fdo-lens-tx[data-i="3"]{visibility:visible;opacity:1;transition:opacity .3s .1s,visibility 0s}
.fdo-lens-note{position:relative;margin:0 var(--gut);max-width:none;color:#c3d6cc;padding-top:10px;border-top:1px solid #6bb68f40}
/* live: the lot breathes on the chosen ring; a bead runs in and out of the station */
:root[data-m-go] .fdo-lens[data-fdo-on] .fdo-trav-halo{animation-name:fdo-halo;animation-duration:1.8s;animation-iteration-count:infinite;animation-direction:alternate;animation-timing-function:ease-in-out}
:root[data-m-go] .fdo-lens[data-fdo-on] .fdo-seg-lit{stroke-dasharray:10 30;animation-name:fdo-run;animation-duration:3s;animation-timing-function:linear;animation-iteration-count:infinite}
@keyframes fdo-run{from{stroke-dashoffset:40}to{stroke-dashoffset:0}}
/* entrance (knot): cubes knot onto the route one by one, then the chosen station's plates separate upward */
:root[data-m-go][data-fdo-js] .fdo-lens:not([data-fdo-in]) :is(.fdo-st,.fdo-plate,.fdo-lens-text){opacity:0}
:root[data-m-go][data-fdo-js] .fdo-lens[data-fdo-in] :is(.fdo-st,.fdo-plate,.fdo-lens-text){animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards;animation-timing-function:var(--ease)}
:root[data-m-go][data-fdo-js] .fdo-lens[data-fdo-in] .fdo-st{animation-name:fdo-knot;animation-duration:360ms;animation-delay:calc(var(--i) * 80ms)}
:root[data-m-go][data-fdo-js] .fdo-lens[data-fdo-in] .fdo-plate{animation-name:fdo-plate;animation-duration:380ms}
:root[data-m-go][data-fdo-js] .fdo-lens[data-fdo-in] .fdo-plate--1{animation-delay:420ms}
:root[data-m-go][data-fdo-js] .fdo-lens[data-fdo-in] .fdo-plate--2{animation-delay:540ms}
:root[data-m-go][data-fdo-js] .fdo-lens[data-fdo-in] .fdo-plate--3{animation-delay:660ms}
:root[data-m-go][data-fdo-js] .fdo-lens[data-fdo-in] .fdo-lens-text{animation-name:fdo-fade;animation-duration:300ms;animation-delay:580ms}
@keyframes fdo-knot{from{opacity:0;transform:scale(.6) rotate(-6deg)}}
@keyframes fdo-plate{from{opacity:0;transform:translateY(46px) scaleY(.6)}}
.fdo-lens .fdo-st{transform-box:fill-box;transform-origin:center}

/* ---------- #3 evidence (sage, Act II) ---------- */
.fdo-ev{background:var(--mist);color:var(--ink);padding:clamp(56px,6vw,84px) 0 clamp(56px,6vw,80px);
 background-image:linear-gradient(#2a6e501a 1px,transparent 1px),linear-gradient(90deg,#2a6e501a 1px,transparent 1px);background-size:32px 32px}
.fdo-ev-grid{display:grid;grid-template-columns:minmax(0,62fr) minmax(0,38fr);gap:clamp(28px,3vw,48px);padding-inline:var(--gut);align-items:start}
.fdo-ev-head h2{max-width:15ch;color:var(--ink)}
.fdo-ev .gft-eyebrow{color:var(--leaf-ink)}
.fdo-slabs{position:relative;margin-top:-34px}
.fdo-slab-svg{display:block;width:min(100%,calc(66svh * 1.2857));height:auto;overflow:visible}
.fdo-slab{cursor:pointer;transform-box:view-box;transition:transform .35s var(--ease)}
.fdo-slab-in{transform-box:view-box}
.fdo-slab-top{fill:#f6f4ef;stroke:#2a6e50;stroke-width:1.4;vector-effect:non-scaling-stroke}
.fdo-slab-side{fill:#c9d9cf;stroke:#2a6e50;stroke-width:1}
.fdo-slab-end{fill:#b5cbbd;stroke:#2a6e50;stroke-width:1}
.fdo-slab-lit{fill:#3f8f6b;transform-box:fill-box;transform-origin:0 50%}
.fdo-slab-gap{opacity:.9}
.fdo-slab-men{stroke:#e2ebe6;stroke-width:2;vector-effect:non-scaling-stroke;transform-box:fill-box}
.fdo-arq{fill:#f6f4efcc;stroke:#a86a12;stroke-width:1.5;stroke-dasharray:5 4;vector-effect:non-scaling-stroke;opacity:0;transition:opacity .3s calc(var(--q) * 60ms)}
.fdo-arq-t{font:700 17px var(--gft-font-mono);fill:#1f2b29;opacity:0;transition:opacity .3s calc(var(--q) * 60ms)}
.fdo-arq-note{font:600 15px var(--gft-font-mono);fill:#7a4a08;opacity:0;transition:opacity .3s}
.fdo-ev[data-unseen=true] .fdo-slab .fdo-arq,.fdo-ev[data-unseen=true] .fdo-slab .fdo-arq-t,.fdo-ev[data-unseen=true] .fdo-arq-note{opacity:1}
.fdo-slab-v{font:800 22px var(--gft-font-display);fill:#1f2b29;letter-spacing:-.02em}
.fdo-slab-g{font:500 15px var(--gft-font-mono);fill:#34463f}
.fdo-slab-n{font:700 17px var(--gft-font-display);fill:#1f2b29}
.fdo-slab-scale{font:500 15px var(--gft-font-mono);fill:#34463f}
.fdo-ev[data-site="0"] .fdo-slab[data-k="0"],.fdo-ev[data-site="1"] .fdo-slab[data-k="1"],.fdo-ev[data-site="2"] .fdo-slab[data-k="2"]{--sel:1}
.fdo-slab{--sel:0}
.fdo-slab .fdo-slab-top{stroke-width:calc(1.4px + var(--sel) * 1.6px)}
.fdo-slab .fdo-slab-lit{fill:color-mix(in srgb,#2f8a62 calc(var(--sel) * 100%),#6aa98a)}
.fdo-ev[data-hover="0"] .fdo-slab[data-k="0"],.fdo-ev[data-hover="1"] .fdo-slab[data-k="1"],.fdo-ev[data-hover="2"] .fdo-slab[data-k="2"]{transform:translateY(-8px)}
.fdo-ev-lot{transform:translate(var(--ex0),var(--ey0));transition:transform .6s var(--ease-io)}
.fdo-ev[data-site="1"] .fdo-ev-lot{transform:translate(var(--ex1),var(--ey1))}
.fdo-ev[data-site="2"] .fdo-ev-lot{transform:translate(var(--ex2),var(--ey2))}
.fdo-ev-lot .fdo-trav-halo{stroke:#a86a12}
.fdo-tracks{display:none}
.fdo-quote{margin:4px 0 0;padding-left:20px;border-left:3px solid var(--ochre)}
.fdo-quote p{font-size:28px;line-height:1.3;color:#173a33;max-width:30ch}
.fdo-ev-read{display:grid;gap:18px;padding-top:6px}
.fdo-sites{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.fdo-site{min-height:52px;display:grid;justify-items:start;align-content:center;padding:6px 12px;background:#f6f4ef;border:1px solid #2a6e5066;border-radius:4px;color:var(--ink);text-align:left}
.fdo-site span{font-size:15px;font-weight:650}
.fdo-site b{font:600 14px var(--gft-font-mono)}
.fdo-site[aria-pressed=true]{background:#0e4d4a;border-color:#0e4d4a;color:#fff}
.fdo-big .fdo-k{color:var(--leaf-ink)}
.fdo-big-n{display:flex;align-items:baseline;gap:16px;visibility:hidden;opacity:0;transition:opacity .25s,visibility 0s .25s}
.fdo-big-n[data-on]{visibility:visible;opacity:1;transition:opacity .25s,visibility 0s}
.fdo-big-n strong{font-size:72px;line-height:1;font-weight:850;letter-spacing:-.05em;color:#0e4d4a;font-variant-numeric:tabular-nums}
.fdo-big-n span{font-size:20px;font-weight:700;color:#7a4a08}
.fdo-ev-say{min-height:0}
.fdo-ev-line{font-size:22px;line-height:1.35;font-weight:650;letter-spacing:-.015em;color:var(--ink);visibility:hidden;opacity:0;transition:opacity .3s,visibility 0s .3s;max-width:none}
.fdo-ev[data-unseen=false][data-site="0"] .fdo-ev-line[data-i="0"],.fdo-ev[data-unseen=false][data-site="1"] .fdo-ev-line[data-i="1"],
.fdo-ev[data-unseen=false][data-site="2"] .fdo-ev-line[data-i="2"],.fdo-ev[data-unseen=true] .fdo-ev-line--q{visibility:visible;opacity:1;transition:opacity .3s .05s,visibility 0s}
.fdo-switch{display:flex;align-items:center;gap:12px;min-height:48px;font-weight:650;font-size:17px;cursor:pointer;position:relative}
.fdo-switch input{position:absolute;opacity:0;width:52px;height:30px;margin:0}
.fdo-switch-box{width:52px;height:30px;border-radius:15px;background:#b5cbbd;border:1px solid #2a6e50;position:relative;flex:none}
.fdo-switch-box::after{content:'';position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .25s var(--ease)}
.fdo-switch input:checked+.fdo-switch-box{background:#c98a2b}
.fdo-switch input:checked+.fdo-switch-box::after{transform:translateX(22px)}
.fdo-switch input:focus-visible+.fdo-switch-box{outline:3px solid #c98a2b;outline-offset:3px}
.fdo-ev-cap{font-size:17px;line-height:1.6;color:var(--ink-2)}
.fdo-source{display:flex;gap:12px;align-items:flex-start;border-top:1px solid #2a6e5055;padding-top:12px}
.fdo-source p{font:13px/1.7 var(--gft-font-mono);color:#34463f;max-width:none}
.fdo-carrier{position:absolute;pointer-events:none;opacity:0}
.fdo-carrier--slab{left:var(--gut);bottom:0;width:min(55vw,720px);height:auto;z-index:3}
.fdo-carrier--slab polygon{fill:#6bb68f55;stroke:#2a6e50;stroke-width:2}
/* live: the lit fill's edge shimmers; the lot pulses on the boundary */
:root[data-m-go] .fdo-ev[data-fdo-on] .fdo-slab-men{animation-name:fdo-men;animation-duration:3s;animation-iteration-count:infinite;animation-direction:alternate;animation-timing-function:ease-in-out}
@keyframes fdo-men{from{transform:translateX(-1px)}to{transform:translateX(1px)}}
:root[data-m-go] .fdo-ev[data-fdo-on] .fdo-ev-lot .fdo-trav-halo{animation-name:fdo-halo;animation-duration:1.6s;animation-iteration-count:infinite;animation-direction:alternate;animation-timing-function:ease-in-out}
/* entrance (comb): slabs combed in from the left, then the fills grow and the figure rolls */
:root[data-m-go][data-fdo-js] .fdo-ev:not([data-fdo-in]) :is(.fdo-slab-in,.fdo-ev-lot-in,.fdo-big){opacity:0}
:root[data-m-go][data-fdo-js] .fdo-ev:not([data-fdo-in]) .fdo-slab-lit{transform:scaleX(0)}
:root[data-m-go][data-fdo-js] .fdo-ev[data-fdo-in] :is(.fdo-slab-in,.fdo-slab-lit,.fdo-ev-lot-in,.fdo-big){animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards;animation-timing-function:var(--ease)}
:root[data-m-go][data-fdo-js] .fdo-ev[data-fdo-in] .fdo-slab-in{animation-name:fdo-comb;animation-duration:420ms;animation-delay:calc(var(--k) * 90ms)}
:root[data-m-go][data-fdo-js] .fdo-ev[data-fdo-in] .fdo-slab-lit{animation-name:fdo-grow;animation-duration:360ms;animation-delay:calc(380ms + var(--k) * 60ms)}
:root[data-m-go][data-fdo-js] .fdo-ev[data-fdo-in] .fdo-ev-lot-in{animation-name:fdo-fade;animation-duration:240ms;animation-delay:660ms}
:root[data-m-go][data-fdo-js] .fdo-ev[data-fdo-in] .fdo-big{animation-name:fdo-fade;animation-duration:240ms;animation-delay:300ms}
@keyframes fdo-comb{from{opacity:0;transform:translateX(-90px)}}
@keyframes fdo-grow{from{transform:scaleX(0)}}

/* ---------- #4 sequence (paper drafting sheet, sticky camera) ---------- */
.fdo-seq{background:var(--paper);color:var(--ink);z-index:1}
.fdo-seq-pin{position:sticky;top:0;height:100svh;z-index:1}
.fdo-seq-sheet{position:absolute;inset:14px 16px 0 16px;border:2px solid #2a6e50;border-bottom:0;background:var(--paper);overflow:clip}
.fdo-seq-grid{position:absolute;inset:0;background-image:linear-gradient(#2a6e5024 1px,transparent 1px),linear-gradient(90deg,#2a6e5024 1px,transparent 1px);background-size:32px 32px}
.fdo-seq-sheet::after{content:'';position:absolute;inset:10px 10px 0 10px;border:1px solid #2a6e5066;border-bottom:0;pointer-events:none}
.fdo-seq-head{position:absolute;left:30px;top:28px;width:min(34cqw,450px);z-index:3;background:#f6f4efef;padding:6px 14px 14px 8px}
.fdo-seq-head h2{font-size:clamp(2rem,2.5vw,2.45rem);max-width:15ch}
.fdo-seq-head .fdo-lede{margin-top:12px;font-size:17px;color:var(--ink-2)}
.fdo-seq .gft-eyebrow{color:var(--leaf-ink)}
.fdo-seq-band{position:absolute;inset:0}
.fdo-cam-frame{position:absolute;inset:0;container-type:size;overflow:clip}
.fdo-cam{position:absolute;left:0;top:0;width:100cqw;transform-origin:0 0;--fx:38cqw;--fy:57cqh;--s:var(--cs0);--x:var(--cx0);--y:var(--cy0);
 transform:translate(calc(var(--fx) - var(--x) * .1cqw * var(--s)),calc(var(--fy) - var(--y) * .1cqw * var(--s))) scale(var(--s));transition:transform .7s var(--ease-io)}
.fdo-seq[data-step="1"] .fdo-cam{--s:var(--cs1);--x:var(--cx1);--y:var(--cy1);--fx:50.7cqw;--fy:68.3cqh}
.fdo-seq:is([data-step="2"],[data-step="3"]) .fdo-cam{--s:var(--cs2);--x:var(--cx2);--y:var(--cy2);--fx:52cqw;--fy:64.5cqh}
.fdo-iso--ink .fdo-tile{fill:#2a6e50;fill-opacity:calc(.03 + var(--k) * .012)}
.fdo-iso--ink .fdo-floor-grid{stroke:#2a6e50;stroke-opacity:.22}
.fdo-iso--ink .fdo-floor-edge{stroke:#2a6e50;stroke-opacity:.9}
.fdo-iso--ink .fdo-cube{fill:#fbfaf6;stroke:#1f4d3c}
.fdo-iso--ink .fdo-edge{stroke:#1f4d3c}
.fdo-iso--ink .fdo-glyph{stroke:#1f4d3c}
.fdo-iso--ink .fdo-route-base{stroke:#c98a2b;stroke-opacity:.3}
.fdo-iso--ink .fdo-route-line{stroke:#a86a12}
.fdo-iso--ink .fdo-rework{stroke:#a86a12}
.fdo-iso--ink .fdo-lab{background:#f6f4ef;color:#17302a;border-color:#2a6e5099}
.fdo-iso--ink .fdo-lab--hi{border-color:#a86a12;color:#17302a}
.fdo-iso--ink .fdo-trace{stroke:#1f4d3c}
.fdo-iso--ink .fdo-dot{fill:#1f4d3c}
.fdo-iso--ink .fdo-hand-arrow{stroke:#1f4d3c}
.fdo-iso--ink .fdo-held-box{fill:#f6f4ef;stroke:#a86a12}
.fdo-iso--ink .fdo-bolt{stroke:#a86a12}
.fdo-iso--ink .fdo-loop{stroke:#2a6e50}
.fdo-seq .fdo-cam .fdo-trav{transform:translate(var(--lx3),var(--ly3))}
.fdo-seq[data-step="1"] .fdo-cam .fdo-trav{transform:translate(492px,250px)}
.fdo-seq:is([data-step="2"],[data-step="3"]) .fdo-cam .fdo-trav{transform:translate(var(--lx2),var(--ly2))}
.fdo-seq[data-step="0"] :is(.fdo-seq0,.fdo-l-seq0),.fdo-seq[data-step="1"] :is(.fdo-seq1,.fdo-l-seq1),.fdo-seq:is([data-step="2"],[data-step="3"]) :is(.fdo-seq2,.fdo-l-seq2){opacity:1}
.fdo-seq[data-step="1"] .fdo-st:is([data-i="1"],[data-i="2"]),.fdo-seq:is([data-step="2"],[data-step="3"]) .fdo-st[data-i="2"]{--on:1}
.fdo-seq .fdo-st .fdo-ring{opacity:var(--on)}
.fdo-seq-btns{position:absolute;right:30px;top:28px;display:flex;gap:6px;z-index:3}
.fdo-seq-btns button{min-width:64px;min-height:48px;display:grid;justify-items:center;align-content:center;gap:0;background:#f6f4ef;border:1px solid #2a6e50;border-radius:4px;color:var(--ink);padding:4px 10px}
.fdo-seq-btns b{font-size:17px}
.fdo-seq-btns span{font:600 13px var(--gft-font-mono);letter-spacing:.04em}
.fdo-seq-btns button[aria-pressed=true]{background:#0e4d4a;color:#fff;border-color:#0e4d4a}
.fdo-tblock{position:absolute;right:26px;bottom:26px;width:min(400px,32cqw);z-index:3;background:#f6f4ef;border:2px solid #1f4d3c;display:grid}
.fdo-tb-top{padding:8px 14px;border-bottom:1px solid #1f4d3c;background:#e9efe9}
.fdo-tb-top .fdo-k{color:#17302a}
.fdo-tb-step,.fdo-tb-n,.fdo-tb-read dd>span{visibility:hidden;opacity:0;transition:opacity .3s,visibility 0s .3s}
.fdo-seq[data-step="0"] [data-i="0"]:is(.fdo-tb-step,.fdo-tb-n,span),.fdo-seq[data-step="1"] [data-i="1"]:is(.fdo-tb-step,.fdo-tb-n,span),
.fdo-seq:is([data-step="2"],[data-step="3"]) [data-i="2"]:is(.fdo-tb-step,.fdo-tb-n,span){visibility:visible;opacity:1;transition:opacity .35s .15s,visibility 0s}
.fdo-tb-step{padding:12px 14px 10px}
.fdo-tb-t{font-size:24px;font-weight:800;letter-spacing:-.03em;line-height:1.15;color:#17302a}
.fdo-tb-x{margin-top:8px;font-size:17px;line-height:1.55;color:#1f2b29}
.fdo-tb-foot{display:grid;grid-template-columns:1fr 124px;border-top:1px solid #1f4d3c}
.fdo-tb-read{margin:0;padding:8px 12px;display:grid;gap:4px}
.fdo-tb-read dt{font:600 13px var(--gft-font-mono);letter-spacing:.04em;color:#2a6e50}
.fdo-tb-read dd{margin:0;font-size:15px;font-weight:600;line-height:1.3;color:#17302a}
.fdo-locator{position:relative;border-left:1px solid #1f4d3c;padding:6px 2px;display:grid;align-content:center}
.fdo-locator svg{width:120px;height:76px}
.fdo-loc-floor{fill:#2a6e5018;stroke:#2a6e50}
.fdo-loc-route{fill:none;stroke:#a86a12;stroke-width:2}
.fdo-locator circle{fill:#1f4d3c}
.fdo-loc-cam{fill:none;stroke:#c98a2b;stroke-width:2.2;transform-box:view-box;transform-origin:0 0;transition:transform .7s var(--ease-io);vector-effect:non-scaling-stroke}
.fdo-seq[data-step="1"] .fdo-loc-cam{transform:translate(-2.1px,-3.3px) scale(1.02,.88)}
.fdo-seq:is([data-step="2"],[data-step="3"]) .fdo-loc-cam{transform:translate(30.2px,.9px) scale(.74,.95)}
.fdo-loc-hit{position:absolute;top:0;bottom:0;width:33.4%;background:transparent;border:0}
.fdo-loc-hit[data-fdo-loc="0"]{left:0}.fdo-loc-hit[data-fdo-loc="1"]{left:33.3%}.fdo-loc-hit[data-fdo-loc="2"]{right:0}
.fdo-seq-cap{position:absolute;right:30px;top:92px;width:min(30cqw,400px);z-index:3;font-size:15px;line-height:1.55;color:#34463f;background:#f6f4efee;padding:8px 10px;max-width:none}
.fdo-seq-handover{position:absolute;left:30px;bottom:0;z-index:4;display:flex;align-items:flex-end;gap:10px;pointer-events:none;opacity:.92;transition:opacity .35s}
.fdo-seq:is([data-step="2"],[data-step="3"]) .fdo-seq-handover{opacity:1}
.fdo-seq-handover-line{width:3px;height:48px;background:repeating-linear-gradient(180deg,#a86a12 0 6px,transparent 6px 11px)}
.fdo-seq-handover-tag{margin-bottom:8px;padding:4px 10px;background:#f6f4ef;border:1px solid #a86a12;font:600 13px var(--gft-font-mono);color:#17302a;border-radius:2px}
.fdo-seq-steps{position:relative;margin-top:-100svh;pointer-events:none;z-index:0}
.fdo-step{height:100svh}
.fdo-step:nth-child(3){height:148svh}
.fdo-step>*{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* live: hand-over arrows pulse; route dashes flow; the bolt flickers */
:root[data-m-go] .fdo-seq[data-fdo-on] .fdo-hand-arrow{animation-name:fdo-pulse;animation-duration:1.4s;animation-iteration-count:infinite;animation-direction:alternate;animation-delay:calc(var(--k) * 200ms)}
:root[data-m-go] .fdo-seq[data-fdo-on] .fdo-route-line{animation-name:fdo-dash;animation-duration:2s;animation-timing-function:linear;animation-iteration-count:infinite}
@keyframes fdo-pulse{from{opacity:.35}to{opacity:1}}
@keyframes fdo-dash{to{stroke-dashoffset:-30}}
/* entrance (reed): the grid beats in left to right, then the route traces and the title block slides up */
:root[data-m-go][data-fdo-js] .fdo-seq:not([data-fdo-in]) :is(.fdo-seq-grid,.fdo-cam .fdo-route,.fdo-cam .fdo-st,.fdo-tblock){opacity:0}
:root[data-m-go][data-fdo-js] .fdo-seq[data-fdo-in] :is(.fdo-seq-grid,.fdo-cam .fdo-route,.fdo-cam .fdo-st,.fdo-tblock){animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards;animation-timing-function:var(--ease)}
:root[data-m-go][data-fdo-js] .fdo-seq[data-fdo-in] .fdo-seq-grid{animation-name:fdo-reed;animation-duration:420ms;animation-timing-function:linear}
:root[data-m-go][data-fdo-js] .fdo-seq[data-fdo-in] .fdo-cam .fdo-st{animation-name:fdo-fade;animation-duration:300ms;animation-delay:calc(160ms + var(--i) * 60ms)}
:root[data-m-go][data-fdo-js] .fdo-seq[data-fdo-in] .fdo-cam .fdo-route{animation-name:fdo-draw;animation-duration:460ms;animation-delay:360ms;animation-timing-function:var(--ease-io)}
:root[data-m-go][data-fdo-js] .fdo-seq[data-fdo-in] .fdo-tblock{animation-name:fdo-tb;animation-duration:420ms;animation-delay:440ms}
@keyframes fdo-reed{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes fdo-tb{from{opacity:0;transform:translateY(24px)}}

/* ---------- #5 interlude (deep night, sticky two states) ---------- */
.fdo-int{background:var(--deep);color:var(--on-dark);z-index:1}
.fdo-int-pin{position:sticky;top:0;height:100svh;overflow:clip}
.fdo-int-stage{position:relative;height:100%;
 background-image:linear-gradient(#cfe3d70d 1px,transparent 1px),linear-gradient(90deg,#cfe3d70d 1px,transparent 1px);background-size:42px 42px}
.fdo-int-ghost{position:absolute;right:-6vw;top:-8svh;width:min(64vw,980px);opacity:.34;pointer-events:none}
.fdo-int-head{position:absolute;left:var(--gut);top:clamp(28px,6svh,64px);right:var(--gut)}
.fdo-int .gft-eyebrow{color:#cfe3d7}
.fdo-int-head h2{font-size:clamp(2.6rem,5vw,5.2rem);line-height:1.06;letter-spacing:-.03em;color:#fff;max-width:20ch;font-weight:400}
.fdo-int-lead{margin-top:10px;font:500 18px/1.5 var(--gft-font-mono);color:#e7f1ec}
.fdo-int-rail{position:absolute;left:0;right:0;top:44svh;height:220px}
.fdo-int-line{position:absolute;left:0;right:0;top:31px;height:4px;background:#c98a2b40;perspective:600px}
.fdo-int-seg{position:absolute;top:0;height:4px;left:calc(12.5% + var(--k) * 25%);width:25%;background:#e0a644;transform-origin:50% 0;transform-box:border-box}
.fdo-int-nodes{list-style:none;margin:0;padding:0}
.fdo-int-nodes li{position:absolute;top:0;left:calc(12.5% + var(--i) * 25%);translate:-50% 0}
.fdo-int-node{min-width:64px;min-height:64px;padding:0 18px;border-radius:32px;background:#0b3d3a;border:2px solid #6bb68f;color:#fff;font-weight:700;font-size:16px}
.fdo-int[data-hand="0"] .fdo-int-nodes li:nth-child(1) .fdo-int-node,.fdo-int[data-hand="1"] .fdo-int-nodes li:nth-child(2) .fdo-int-node,
.fdo-int[data-hand="2"] .fdo-int-nodes li:nth-child(3) .fdo-int-node,.fdo-int[data-hand="3"] .fdo-int-nodes li:nth-child(4) .fdo-int-node{border-color:#e0a644;background:#174c3f}
.fdo-int-marker{position:absolute;left:0;top:-40px;width:0;height:0;pointer-events:none}
.fdo-int-marker i{position:absolute;left:-14px;top:0;width:28px;height:28px;background:#e0a644;border:2px solid #f6f4ef;rotate:45deg}
.fdo-queue{position:absolute;left:42%;top:92px;width:16%;height:120px}
.fdo-bundle{position:absolute;left:calc(var(--c) * 38px);top:calc(var(--r) * 36px);width:28px;height:28px;background:#6bb68f;border:1px solid #cfe8da;opacity:0;transform:translateX(-80px);transition:opacity .35s,transform .5s var(--ease);transition-delay:calc(var(--k) * 40ms)}
.fdo-bundle b{position:absolute;right:-5px;top:-7px;width:8px;height:12px;background:#e0a644;transition:transform .5s var(--ease),opacity .4s}
.fdo-bundle::after{content:'';position:absolute;inset:-4px;border:2px dashed #f0b54f;opacity:0;transition:opacity .4s .2s}
.fdo-int .fdo-bundle{opacity:1;transform:none}
.fdo-int[data-state="1"] .fdo-bundle[data-k="6"]{background:#05221f}
.fdo-int[data-state="1"] .fdo-bundle[data-k="6"] b{transform:translateY(26px) rotate(40deg);opacity:0}
.fdo-int[data-state="1"] .fdo-bundle[data-k="6"]::after{opacity:1}
.fdo-queue-k{position:absolute;left:0;top:116px;width:max(26vw,340px);font:13px/1.5 var(--gft-font-mono);color:#c3d6cc}
.fdo-held{position:absolute;left:calc(87.5% - 18px);top:96px;display:grid;justify-items:start;gap:8px;width:min(22vw,260px)}
.fdo-held i{width:36px;height:36px;background:#e0a644;border:2px solid #e0a644;transition:background-color .4s}
.fdo-held span{font:13px/1.45 var(--gft-font-mono);color:#e7f1ec;opacity:0;transition:opacity .4s .2s;translate:-60% 0}
.fdo-int[data-state="1"] .fdo-held i{background:transparent;border-style:dashed}
.fdo-int[data-state="1"] .fdo-held span{opacity:1}
.fdo-int-low{position:absolute;left:var(--gut);right:var(--gut);bottom:clamp(20px,4svh,44px);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(28px,4vw,72px);align-items:end}
.fdo-int-ctl{display:grid;gap:8px}
.fdo-int-ctl .fdo-k{color:#cfe3d7}
.fdo-int-ctl input{width:100%;accent-color:#e0a644;min-height:48px}
.fdo-int-read p{display:grid;gap:2px;visibility:hidden;opacity:0;transition:opacity .2s,visibility 0s .2s;max-width:none}
.fdo-int-read b{font-size:22px;line-height:1.3;font-weight:650;color:#fff}
.fdo-int[data-hand="0"] .fdo-int-read p[data-i="0"],.fdo-int[data-hand="1"] .fdo-int-read p[data-i="1"],.fdo-int[data-hand="2"] .fdo-int-read p[data-i="2"],.fdo-int[data-hand="3"] .fdo-int-read p[data-i="3"]{visibility:visible;opacity:1;transition:opacity .25s,visibility 0s}
.fdo-int:not([data-hand]) .fdo-int-read p[data-i="0"]{visibility:visible;opacity:1}
.fdo-int-copy{display:grid}
.fdo-int-copy p{grid-area:1/1;font-size:18px;line-height:1.65;color:var(--on-dark);visibility:hidden;opacity:0;transform:translateY(10px);transition:opacity .35s,transform .45s var(--ease),visibility 0s .35s;max-width:58ch}
.fdo-int-copy .fdo-k{color:#f0b54f;margin-bottom:6px}
.fdo-int[data-state="0"] .fdo-int-copy p[data-i="0"],.fdo-int[data-state="1"] .fdo-int-copy p[data-i="1"]{visibility:visible;opacity:1;transform:none;transition:opacity .35s .1s,transform .45s var(--ease) .1s,visibility 0s}
.fdo-int-steps i{display:block;height:109svh}
.fdo-int-steps i+i{height:109svh}
.fdo-int-steps{position:relative;margin-top:-100svh;pointer-events:none}
/* live: Cut runs fast in state A; the held lot breathes */
:root[data-m-go] .fdo-int[data-fdo-on][data-state="0"] .fdo-int-nodes li:nth-child(2) .fdo-int-node{animation-name:fdo-fast;animation-duration:.7s;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes fdo-fast{from{box-shadow:0 0 0 0 #e0a64400}to{box-shadow:0 0 0 8px #e0a64455}}
/* entrance (unspool): the rail unspools from the left edge, then nodes knot on */
:root[data-m-go][data-fdo-js] .fdo-int:not([data-fdo-in]) :is(.fdo-int-line,.fdo-int-nodes li,.fdo-queue){opacity:0}
:root[data-m-go][data-fdo-js] .fdo-int[data-fdo-in] :is(.fdo-int-line,.fdo-int-nodes li,.fdo-queue){animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards;animation-timing-function:var(--ease)}
:root[data-m-go][data-fdo-js] .fdo-int[data-fdo-in] .fdo-int-line{animation-name:fdo-draw;animation-duration:440ms;animation-timing-function:var(--ease-io)}
:root[data-m-go][data-fdo-js] .fdo-int[data-fdo-in] .fdo-int-nodes li{animation-name:fdo-knot;animation-duration:320ms;animation-delay:calc(90ms + var(--i) * 70ms)}
:root[data-m-go][data-fdo-js] .fdo-int[data-fdo-in] .fdo-queue{animation-name:fdo-fade;animation-duration:300ms;animation-delay:240ms}

/* ---------- #6 dossier (forest drafting table) ---------- */
.fdo-dos{background:var(--forest);color:var(--on-dark);padding:22px var(--gut) 24px;z-index:1;
 background-image:linear-gradient(#cfe3d712 1px,transparent 1px),linear-gradient(90deg,#cfe3d712 1px,transparent 1px);background-size:28px 28px}
.fdo-dos-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:28px;align-items:end;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid #6bb68f4d}
.fdo-dos-head h2{color:#fff;grid-row:2;font-size:clamp(1.95rem,2.7vw,2.55rem);line-height:1.08;max-width:19ch}
.fdo-dos-head .gft-eyebrow{grid-column:1/-1;color:#e3f0eb;margin:0}
.fdo-dos-head .fdo-lede{grid-row:2;color:var(--on-dark);font-size:17px;line-height:1.5}
.fdo-dos-grid{display:grid;grid-template-columns:minmax(0,34fr) minmax(0,66fr);gap:clamp(20px,2.2vw,32px);align-items:start}
.fdo-dos-left{display:grid;gap:9px}
.fdo-dos-left .fdo-note{color:#d6e8e1;font-size:13.5px;line-height:1.5}
.fdo-dos-sheets{margin:0;padding:0;border:0;display:grid;gap:5px;perspective:900px}
.fdo-dos-sheets legend{font:600 13.5px var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#e3f0eb;margin-bottom:4px}
.fdo-dsheet{position:relative;display:block;overflow:clip;border-radius:3px}
.fdo-dsheet input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;z-index:2}
.fdo-dsheet-in{display:grid;grid-template-columns:84px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:6px 10px;background:#0b3d3a;border:1px solid #6bb68f77;transform:rotateX(5deg);transform-origin:50% 100%;transition:transform .35s var(--ease),background-color .25s}
.fdo-dsheet-in svg{grid-row:1/3;width:84px;height:38px;color:#9fd2b5}
.fdo-dsheet-in .fdo-k{color:#e3f0eb}
.fdo-dsheet-in strong{font-size:16px;color:#fff;line-height:1.22}
.fdo-dsheet-edge{position:absolute;left:0;right:0;top:0;height:4px;background:#e0a644;transform:scaleX(0);transform-origin:0 50%;transition:transform .35s var(--ease)}
.fdo-dsheet input:checked~.fdo-dsheet-in{transform:none;background:#072d2b;border-color:#e0a644}
.fdo-dsheet input:checked~.fdo-dsheet-edge{transform:none}
.fdo-dsheet input:focus-visible~.fdo-dsheet-in{outline:3px solid #e0a644;outline-offset:-3px}
.fdo-zrows{list-style:none;margin:0;padding:0;display:grid;gap:4px;visibility:hidden;opacity:0;transition:opacity .3s,visibility 0s .3s}
.fdo-dos[data-sel="0"] .fdo-zrows[data-i="0"],.fdo-dos[data-sel="1"] .fdo-zrows[data-i="1"],.fdo-dos[data-sel="2"] .fdo-zrows[data-i="2"]{visibility:visible;opacity:1;transition:opacity .3s,visibility 0s}
.fdo-zrows button{width:100%;min-height:40px;display:flex;gap:10px;align-items:center;text-align:left;padding:4px 10px;background:transparent;border:1px solid #6bb68f66;border-radius:3px;color:var(--on-dark);font-size:14.5px;line-height:1.25}
.fdo-zrows button b{flex:none;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;border:1px solid #9fd2b5;font:600 13px var(--gft-font-mono)}
.fdo-zrows:is([data-z="0"]) li:nth-child(1) button,.fdo-zrows[data-z="1"] li:nth-child(2) button,.fdo-zrows[data-z="2"] li:nth-child(3) button,.fdo-zrows[data-z="3"] li:nth-child(4) button{background:#072d2b;border-color:#e0a644;color:#fff}
.fdo-zrows:is([data-z="0"]) li:nth-child(1) b,.fdo-zrows[data-z="1"] li:nth-child(2) b,.fdo-zrows[data-z="2"] li:nth-child(3) b,.fdo-zrows[data-z="3"] li:nth-child(4) b{background:#e0a644;color:#072d2b;border-color:#e0a644}
.fdo-dpanel{background:#072d2b;border:1px solid #6bb68f99;border-top:3px solid #e0a644;padding:12px 18px 10px;display:grid;gap:8px;visibility:hidden;opacity:0;transition:opacity .35s,visibility 0s .35s}
.fdo-dos[data-sel="0"] .fdo-dpanel[data-i="0"],.fdo-dos[data-sel="1"] .fdo-dpanel[data-i="1"],.fdo-dos[data-sel="2"] .fdo-dpanel[data-i="2"]{visibility:visible;opacity:1;transition:opacity .35s,visibility 0s}
.fdo-dpanel-head{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,3.3fr);column-gap:18px;align-items:start}
.fdo-dpanel-head .fdo-k{grid-column:1/-1;color:#e3f0eb;margin-bottom:2px}
.fdo-dpanel-head h3{color:#fff;font-size:24px}
.fdo-dpanel-head p{font-size:15.5px;line-height:1.45;color:var(--on-dark)}
.fdo-plan-box{position:relative;container-type:inline-size;max-width:660px;margin-inline:auto;width:100%}
.fdo-plan{display:block;width:100%;height:auto}
.fdo-plan-floor{stroke:#8fd0ae;stroke-opacity:.75;stroke-width:1.8;fill:#0b3d3a;stroke-dasharray:1900;stroke-dashoffset:0}
.fdo-plan-base{stroke:#9fd2b5}
.fdo-plan .z-line,.fdo-plan .z-line *{stroke:#9fd2b5;stroke-width:1.8;fill:none;stroke-dasharray:900;stroke-dashoffset:0}
.fdo-plan .z-fill,.fdo-plan .z-fill-g rect{fill:#6bb68f;fill-opacity:.08;stroke:#6bb68f;stroke-opacity:.45;transition:fill-opacity .3s}
.fdo-plan .fdo-zbadge{transform-box:fill-box;transform-origin:center}
.fdo-plan .fdo-zbadge circle{fill:#0e4d4a;stroke:#9fd2b5;stroke-width:2;stroke-dasharray:120;stroke-dashoffset:0}
.fdo-plan .fdo-zbadge text{font:700 20px var(--gft-font-mono);fill:#fff}
.fdo-zone[data-z="0"]{--zi:0}.fdo-zone[data-z="1"]{--zi:1}.fdo-zone[data-z="2"]{--zi:2}.fdo-zone[data-z="3"]{--zi:3}
.fdo-dpanel[data-z="0"] .fdo-zone[data-z="0"],.fdo-dpanel[data-z="1"] .fdo-zone[data-z="1"],.fdo-dpanel[data-z="2"] .fdo-zone[data-z="2"],.fdo-dpanel[data-z="3"] .fdo-zone[data-z="3"]{--zon:1}
.fdo-zone{--zon:0}
.fdo-plan .fdo-zone :is(.z-fill,.z-fill-g rect){fill-opacity:calc(.08 + var(--zon) * .3)}
.fdo-plan .fdo-zone .fdo-zbadge circle{stroke:color-mix(in srgb,#e0a644 calc(var(--zon) * 100%),#9fd2b5)}
.fdo-zbtn{position:absolute;left:calc(var(--x) * 100cqw / 640);top:calc(var(--y) * 100cqw / 640);width:46px;height:46px;translate:-50% -50%;border-radius:50%;background:transparent;border:0;z-index:2}
.fdo-zlot{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;transition:transform .5s var(--ease-io);transform:translate(calc(var(--zx0) * 100cqw / 640 + 24px),calc(var(--zy0) * 100cqw / 640 - 24px))}
.fdo-dpanel[data-z="1"] .fdo-zlot{transform:translate(calc(var(--zx1) * 100cqw / 640 + 24px),calc(var(--zy1) * 100cqw / 640 - 24px))}
.fdo-dpanel[data-z="2"] .fdo-zlot{transform:translate(calc(var(--zx2) * 100cqw / 640 - 24px),calc(var(--zy2) * 100cqw / 640 + 24px))}
.fdo-dpanel[data-z="3"] .fdo-zlot{transform:translate(calc(var(--zx3) * 100cqw / 640 + 24px),calc(var(--zy3) * 100cqw / 640 - 24px))}
.fdo-zlot i{position:absolute;left:-11px;top:-11px;width:22px;height:22px;background:#e0a644;border:2px solid #f6f4ef;rotate:45deg}
.fdo-dpanel-foot{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;padding-top:8px;border-top:1px solid #6bb68f40}
.fdo-zread p{font-size:18.5px;line-height:1.38;font-weight:650;color:#fff;visibility:hidden;opacity:0;transition:opacity .25s,visibility 0s .25s;max-width:none}
.fdo-zread b{color:#f0b54f}
.fdo-dpanel[data-z="0"] .fdo-zread p[data-k="0"],.fdo-dpanel[data-z="1"] .fdo-zread p[data-k="1"],.fdo-dpanel[data-z="2"] .fdo-zread p[data-k="2"],.fdo-dpanel[data-z="3"] .fdo-zread p[data-k="3"]{visibility:visible;opacity:1;transition:opacity .25s,visibility 0s}
.fdo-dstatus{font-size:15px;color:#e3f0eb}
.fdo-cap{font:600 13.5px var(--gft-font-mono);color:#d6e8e1;margin-left:6px}
/* live: the active zone breathes */
:root[data-m-go] .fdo-dos[data-fdo-on] .fdo-zlot i{animation-name:fdo-pulse;animation-duration:1.3s;animation-iteration-count:infinite;animation-direction:alternate}
/* entrance (plan-sheet draw-on): sheet frame and numbered nodes 1-4 draw in with stroke-dashoffset */
:root[data-m-go][data-fdo-js] .fdo-dos:not([data-fdo-in]) :is(.fdo-dsheet-in,.fdo-plan .fdo-zbadge){opacity:0}
:root[data-m-go][data-fdo-js] .fdo-dos:not([data-fdo-in]) #fdo-dos-h{clip-path:inset(0 100% 0 0)!important;opacity:.2!important}
:root[data-m-go][data-fdo-js] .fdo-dos:not([data-fdo-in]) .fdo-plan-floor{stroke-dashoffset:1900}
:root[data-m-go][data-fdo-js] .fdo-dos:not([data-fdo-in]) :is(.fdo-plan .z-line,.fdo-plan .z-line *){stroke-dashoffset:900}
:root[data-m-go][data-fdo-js] .fdo-dos[data-fdo-in] :is(.fdo-dsheet-in,.fdo-plan-floor,.fdo-plan .z-line,.fdo-plan .z-line *,.fdo-plan .fdo-zbadge,.fdo-plan .fdo-zbadge circle){animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards;animation-timing-function:cubic-bezier(.4,0,.2,1)}
:root[data-m-go][data-fdo-js] .fdo-dos[data-fdo-in] #fdo-dos-h{animation:fdo-heading-wipe 720ms cubic-bezier(.4,0,.2,1) 60ms both!important}
:root[data-m-go][data-fdo-js] .fdo-dos[data-fdo-in] .fdo-dsheet-in{animation-name:fdo-deal;animation-duration:560ms;animation-delay:calc(120ms + var(--i) * 140ms)}
:root[data-m-go][data-fdo-js] .fdo-dos[data-fdo-in] .fdo-plan-floor{animation-name:fdo-framedraw;animation-duration:760ms;animation-delay:100ms;animation-timing-function:linear}
:root[data-m-go][data-fdo-js] .fdo-dos[data-fdo-in] :is(.fdo-plan .z-line,.fdo-plan .z-line *){animation-name:fdo-linedraw;animation-duration:680ms;animation-delay:calc(180ms + var(--zi,0) * 110ms);animation-timing-function:linear}
:root[data-m-go][data-fdo-js] .fdo-dos[data-fdo-in] .fdo-plan .fdo-zbadge{animation-name:fdo-znode;animation-duration:460ms;animation-delay:calc(200ms + var(--zi,0) * 140ms)}
:root[data-m-go][data-fdo-js] .fdo-dos[data-fdo-in] .fdo-plan .fdo-zbadge circle{animation-name:fdo-badgedraw;animation-duration:480ms;animation-delay:calc(200ms + var(--zi,0) * 140ms);animation-timing-function:linear}
@keyframes fdo-deal{from{opacity:0;translate:0 28px}}
@keyframes fdo-framedraw{from{stroke-dashoffset:1900}to{stroke-dashoffset:0}}
@keyframes fdo-linedraw{from{stroke-dashoffset:900}to{stroke-dashoffset:0}}
@keyframes fdo-badgedraw{from{stroke-dashoffset:120}to{stroke-dashoffset:0}}
@keyframes fdo-znode{from{opacity:0;transform:scale(.45)}to{opacity:1;transform:scale(1)}}

/* ---------- #7 rehearsal (night, two-column sticky layout with readiness lamps) ---------- */
.fdo-reh{background:var(--n);color:var(--on-dark);padding:32px 0 clamp(44px,4.5vw,60px);z-index:1;
 background-image:repeating-linear-gradient(30deg,#cfe3d70f 0 1px,transparent 1px 36px),repeating-linear-gradient(150deg,#cfe3d70f 0 1px,transparent 1px 36px)}
.fdo-reh-grid{display:grid;grid-template-columns:minmax(0,42fr) minmax(0,58fr);gap:clamp(24px,2.6vw,40px);padding-inline:var(--gut);align-items:start}
.fdo-reh .gft-eyebrow{color:#e3f0eb}
.fdo-reh-left{display:grid;gap:14px;align-content:start}
.fdo-reh-left h2{color:#fff}
.fdo-reh-left .fdo-lede{color:var(--on-dark)}
.fdo-meter{display:grid;gap:8px;padding:12px 16px;border:1px solid #6bb68f66;background:#062826}
.fdo-meter-segs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.fdo-meter-segs i{height:18px;border:1px solid #9fd2b5;background:transparent;transform-origin:0 50%;position:relative;overflow:clip}
.fdo-meter-segs i::after{content:'';position:absolute;inset:0;background:#e0a644;transform:scaleX(0);transform-origin:0 50%;transition:transform .4s var(--ease)}
.fdo-meter-segs i[data-on]::after{transform:none}
.fdo-meter-t span{font-size:21px;font-weight:700;line-height:1.3;color:#fff;visibility:hidden;opacity:0}
.fdo-meter[data-n="0"] .fdo-meter-t span[data-n="0"],.fdo-meter[data-n="1"] .fdo-meter-t span[data-n="1"],.fdo-meter[data-n="2"] .fdo-meter-t span[data-n="2"],.fdo-meter[data-n="3"] .fdo-meter-t span[data-n="3"]{visibility:visible;opacity:1}
.fdo-meter-cap{font-size:15px;line-height:1.5;color:#d6e8e1}
.fdo-gate-list{display:grid;gap:10px}
.fdo-gate{border:1px solid #6bb68f66;background:#0a3735;transition:border-color .25s,background-color .25s}
.fdo-gate[data-active=true]{border-color:#e0a644;background:#0d3f3c}
.fdo-gate[data-checked=true]{border-color:#6bb68f}
.fdo-gate summary{display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:center;min-height:52px;padding:10px 14px;cursor:pointer;list-style:none;font-size:17px;font-weight:650;color:#fff}
.fdo-gate summary::-webkit-details-marker{display:none}
.fdo-gate-m{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#0e4d4a;border:1px solid #9fd2b5;font:600 14px var(--gft-font-mono)}
.fdo-gate[data-active=true] .fdo-gate-m{background:#e0a644;color:#072d2b;border-color:#e0a644}
.fdo-gate[data-checked=true] .fdo-gate-m{background:#6bb68f;color:#072d2b;border-color:#6bb68f}
.fdo-gate-chip{font:600 13px var(--gft-font-mono);letter-spacing:.04em;text-transform:uppercase;padding:4px 8px;background:#f6f4ef;color:#17302a;border-radius:2px}
.fdo-gate[data-active=true] .fdo-gate-chip{background:#e0a644;color:#072d2b}
.fdo-gate[data-checked=true] .fdo-gate-chip{background:#6bb68f;color:#072d2b}
.fdo-gate-b{padding:0 14px 14px 56px;display:grid;gap:8px}
.fdo-gate-b p{font-size:16.5px;line-height:1.55;color:var(--on-dark)}
.fdo-gate-check{display:flex;gap:10px;align-items:center;min-height:44px;font-size:15px;font-weight:600;color:#fff;cursor:pointer}
.fdo-gate-check input{width:20px;height:20px;accent-color:#e0a644}
.fdo-reh .fdo-note{color:#d6e8e1;font-size:14px}
.fdo-reh-art{position:sticky;top:68px;display:grid;gap:12px;align-content:start;background:#062624;border:1px solid #6bb68f77;border-top:3px solid #e0a644;padding:14px 18px 20px;border-radius:4px;overflow:clip}
.fdo-lamps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.fdo-lamp{display:grid;grid-template-columns:20px 1fr auto;gap:8px;align-items:center;padding:8px 10px;background:#0a3735;border:1px solid #6bb68f66;border-radius:3px;text-align:left;color:#fff;cursor:pointer;transition:border-color .25s,background-color .25s}
.fdo-lamp[aria-pressed=true]{border-color:#e0a644;background:#11423c}
.fdo-lamp[data-checked=true]{border-color:#6bb68f;background:#124a3e}
.fdo-lamp-bulb{width:20px;height:20px;border-radius:50%;border:2px solid #9fd2b5;display:grid;place-items:center;background:#05221f}
.fdo-lamp-bulb i{width:10px;height:10px;border-radius:50%;background:#6bb68f66;transition:transform .25s,background-color .25s}
.fdo-lamp[aria-pressed=true] .fdo-lamp-bulb{border-color:#e0a644}
.fdo-lamp[aria-pressed=true] .fdo-lamp-bulb i{background:#e0a644;transform:scale(1.15)}
.fdo-lamp[data-checked=true] .fdo-lamp-bulb{border-color:#6bb68f}
.fdo-lamp[data-checked=true] .fdo-lamp-bulb i{background:#6bb68f;transform:scale(1.2)}
.fdo-lamp-txt .fdo-k{font-size:12.5px;color:#d6e8e1;line-height:1.2}
.fdo-lamp-txt b{display:block;font-size:14px;line-height:1.25;color:#fff;margin-top:2px}
.fdo-lamp-state{font:700 12.5px var(--gft-font-mono);text-transform:uppercase;padding:3px 6px;border-radius:2px;background:#072d2b;color:#d6e8e1;border:1px solid #6bb68f55}
.fdo-lamp[aria-pressed=true] .fdo-lamp-state{background:#e0a644;color:#072d2b;border-color:#e0a644}
.fdo-lamp[data-checked=true] .fdo-lamp-state{background:#6bb68f;color:#072d2b;border-color:#6bb68f}
.fdo-reh-iso-wrap{position:relative}
.fdo-reh-art .fdo-iso-box{width:96%;margin-inline:auto;container-type:inline-size}
.fdo-iso-lamp{transform-box:fill-box;transform-origin:center}
.fdo-iso-lamp-stem{stroke:#9fd2b5;stroke-width:2;stroke-dasharray:3 3}
.fdo-iso-lamp-halo{fill:#e0a644;fill-opacity:.18;stroke:#e0a644;stroke-width:1.5;opacity:.45;transform-box:fill-box;transform-origin:center;transition:opacity .3s,transform .3s}
.fdo-iso-lamp-core{fill:#0b3d3a;stroke:#9fd2b5;stroke-width:2;transition:fill .3s,stroke .3s}
.fdo-iso-lamp[data-active=true] .fdo-iso-lamp-halo{opacity:1;transform:scale(1.18)}
.fdo-iso-lamp[data-active=true] .fdo-iso-lamp-core{fill:#e0a644;stroke:#fff}
.fdo-iso-lamp[data-checked=true] .fdo-iso-lamp-halo{fill:#6bb68f;stroke:#6bb68f;opacity:1;transform:scale(1.22)}
.fdo-iso-lamp[data-checked=true] .fdo-iso-lamp-core{fill:#6bb68f;stroke:#fff}
.fdo-reh .fdo-st[data-i="2"]{--on:1}
.fdo-reh[data-gt="1"] .fdo-st[data-i="2"],.fdo-reh[data-gt="2"] .fdo-st[data-i="2"]{--on:0}
.fdo-reh[data-gt="1"] .fdo-st[data-i="1"],.fdo-reh[data-gt="2"] .fdo-st[data-i="3"]{--on:1}
.fdo-reh .fdo-st .fdo-cube{fill:color-mix(in srgb,#1f8274 calc(var(--on) * 100%),#0f5a56)}
.fdo-reh[data-gt="0"] :is(.fdo-g0,.fdo-l-g0),.fdo-reh[data-gt="1"] :is(.fdo-g1,.fdo-l-g1),.fdo-reh[data-gt="2"] :is(.fdo-g2,.fdo-l-g2){opacity:1}
.fdo-reh[data-gt="1"] .fdo-trav{transform:translate(492px,250px)}
.fdo-reh[data-gt="2"] .fdo-trav{transform:translate(var(--lx3),var(--ly3))}
.fdo-watch{position:absolute;left:0;right:0;top:1cqw;pointer-events:none}
.fdo-watch p{position:absolute;top:0;translate:-50% 0;white-space:nowrap;font:700 16px var(--gft-font-display);color:#072d2b;background:#e0a644;padding:5px 12px;border-radius:3px;visibility:hidden;opacity:0;transition:opacity .3s,visibility 0s .3s}
.fdo-watch p::after{content:'';position:absolute;left:50%;top:100%;width:2px;height:var(--lh);background:#e0a644}
.fdo-watch p[data-i="0"]{left:58.4%;--lh:11cqw}
.fdo-watch p[data-i="1"]{left:49.2%;--lh:19cqw}
.fdo-watch p[data-i="2"]{left:75.7%;--lh:21cqw}
.fdo-reh[data-gt="0"] .fdo-watch p[data-i="0"],.fdo-reh[data-gt="1"] .fdo-watch p[data-i="1"],.fdo-reh[data-gt="2"] .fdo-watch p[data-i="2"]{visibility:visible;opacity:1;transition:opacity .3s,visibility 0s}
/* live: the watched ring pulses; queue bundles shuffle keeping their tags; the counter lights In, Done, Held, Open */
:root[data-m-go] .fdo-reh[data-fdo-on] .fdo-ring{animation-name:fdo-pulse;animation-duration:1.2s;animation-iteration-count:infinite;animation-direction:alternate}
:root[data-m-go] .fdo-reh[data-fdo-on] .fdo-qb{animation-name:fdo-shuffle;animation-duration:2s;animation-iteration-count:infinite;animation-timing-function:steps(1,end)}
@keyframes fdo-shuffle{0%{transform:translate(0,0)}50%{transform:translate(16px,6px)}}
:root[data-m-go] .fdo-reh[data-fdo-on] .fdo-ctr{animation-name:fdo-ctr;animation-duration:4s;animation-iteration-count:infinite;animation-delay:calc(var(--k) * 1s)}
@keyframes fdo-ctr{0%,25%{fill-opacity:1;opacity:1}26%,100%{opacity:.55}}
.fdo-qb,.fdo-ctr{transform-box:view-box}
.fdo-ctr{fill:#0e6b55}
/* entrance (heddle & lamps): clip-path wipe on the heading while the readiness lamps ignite in sequence */
:root[data-m-go][data-fdo-js] .fdo-reh:not([data-fdo-in]) #fdo-reh-h{clip-path:inset(0 100% 0 0)!important;opacity:.2!important}
:root[data-m-go][data-fdo-js] .fdo-reh:not([data-fdo-in]) .fdo-reh-art .fdo-iso-box{clip-path:inset(50% 0 50% 0);opacity:.15}
:root[data-m-go][data-fdo-js] .fdo-reh:not([data-fdo-in]) :is(.fdo-lamp,.fdo-iso-lamp,.fdo-gate,.fdo-meter-segs,.fdo-watch){opacity:0}
:root[data-m-go][data-fdo-js] .fdo-reh[data-fdo-in] :is(.fdo-reh-art .fdo-iso-box,.fdo-lamp,.fdo-iso-lamp,.fdo-gate,.fdo-meter-segs,.fdo-watch){animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards;animation-timing-function:cubic-bezier(.4,0,.2,1)}
:root[data-m-go][data-fdo-js] .fdo-reh[data-fdo-in] #fdo-reh-h{animation:fdo-heading-wipe 740ms cubic-bezier(.4,0,.2,1) 80ms both!important}
:root[data-m-go][data-fdo-js] .fdo-reh[data-fdo-in] :is(.fdo-lamp,.fdo-iso-lamp){animation-name:fdo-lamp-ignite;animation-duration:520ms;animation-delay:calc(120ms + var(--li,0) * 160ms)}
:root[data-m-go][data-fdo-js] .fdo-reh[data-fdo-in] .fdo-reh-art .fdo-iso-box{animation-name:fdo-shed;animation-duration:660ms;animation-delay:110ms}
:root[data-m-go][data-fdo-js] .fdo-reh[data-fdo-in] .fdo-watch{animation-name:fdo-fade;animation-duration:420ms;animation-delay:380ms}
:root[data-m-go][data-fdo-js] .fdo-reh[data-fdo-in] .fdo-gate{animation-name:fdo-lift;animation-duration:480ms;animation-delay:calc(200ms + var(--i) * 130ms)}
:root[data-m-go][data-fdo-js] .fdo-reh[data-fdo-in] .fdo-meter-segs{animation-name:fdo-draw;animation-duration:520ms;animation-delay:240ms}
@keyframes fdo-heading-wipe{from{clip-path:inset(0 100% 0 0);opacity:.2}to{clip-path:inset(0 0 0 0);opacity:1}}
@keyframes fdo-lamp-ignite{0%{opacity:0;transform:scale(.76);filter:brightness(.35)}65%{opacity:1;transform:scale(1.05);filter:brightness(1.35)}100%{opacity:1;transform:scale(1);filter:brightness(1)}}
@keyframes fdo-shed{from{clip-path:inset(50% 0 50% 0);opacity:.15}to{clip-path:inset(0 0 0 0);opacity:1}}
@keyframes fdo-lift{from{opacity:0;transform:translateY(20px)}}

/* ---------- #8 closing (night, the release run, into the footer) ---------- */
.fdo-close{background:var(--n);color:var(--on-dark);padding:clamp(44px,4.5vw,64px) 0 clamp(36px,3.8vw,48px);z-index:1;
 background-image:repeating-linear-gradient(30deg,#cfe3d70f 0 1px,transparent 1px 36px),repeating-linear-gradient(150deg,#cfe3d70f 0 1px,transparent 1px 36px)}
.fdo-close-grid{display:grid;grid-template-columns:minmax(0,36fr) minmax(0,64fr);gap:clamp(20px,2.4vw,36px);padding-left:var(--gut);align-items:start}
.fdo-console{display:grid;gap:14px;align-content:start}
.fdo-console h2{color:#fff}
.fdo-close .gft-eyebrow{color:#e3f0eb}
.fdo-console .fdo-lede{font-size:17px;color:var(--on-dark)}
.fdo-conds{margin:0;padding:0;border:0;display:grid;gap:6px}
.fdo-conds legend{font:600 13.5px var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#e3f0eb;margin-bottom:6px}
.fdo-cond{position:relative;display:block}
.fdo-cond input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.fdo-cond span{display:flex;justify-content:space-between;align-items:center;min-height:48px;padding:6px 14px;border:1px solid #6bb68f66;background:#0a3735;border-radius:3px}
.fdo-cond b{font-size:17px;color:#fff}
.fdo-cond i{font:600 13.5px var(--gft-font-mono);font-style:normal;color:#e3f0eb}
.fdo-cond input:checked+span{border-color:#e0a644;background:#123f37;box-shadow:inset 4px 0 #e0a644}
.fdo-cond input:focus-visible+span{outline:3px solid #e0a644;outline-offset:2px}
.fdo-cq>div{visibility:hidden;opacity:0;transform:translateY(10px);transition:opacity .3s,transform .4s var(--ease),visibility 0s .3s}
.fdo-close[data-ci="0"] .fdo-cq>[data-i="0"],.fdo-close[data-ci="1"] .fdo-cq>[data-i="1"],.fdo-close[data-ci="2"] .fdo-cq>[data-i="2"]{visibility:visible;opacity:1;transform:none;transition:opacity .3s .1s,transform .4s var(--ease) .1s,visibility 0s}
.fdo-cq-q{font-size:24px;font-weight:750;line-height:1.25;letter-spacing:-.02em;color:#fff;max-width:none}
.fdo-cq-t{margin-top:6px;font-size:17px;line-height:1.5;color:var(--on-dark)}
.fdo-cq-t b{color:#fff}
.fdo-run{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fdo-btn{min-height:48px;padding:0 16px;border:1px solid #9fd2b5;background:#0b3d3a;color:#fff;font-weight:700;font-size:16px;border-radius:3px}
.fdo-btn--go{background:#e0a644;border-color:#e0a644;color:#072d2b}
.fdo-final span{font-size:22px;font-weight:700;line-height:1.3;color:#f0b54f;visibility:hidden;opacity:0;transition:opacity .3s,visibility 0s .3s}
.fdo-final span.gft-serif{font-size:28px;font-weight:400;color:#fff}
.fdo-close:not([data-run="out"])[data-ci="0"] .fdo-final [data-i="0"][data-s="held"],.fdo-close:not([data-run="out"])[data-ci="1"] .fdo-final [data-i="1"][data-s="held"],.fdo-close:not([data-run="out"])[data-ci="2"] .fdo-final [data-i="2"][data-s="held"],
.fdo-close[data-run="out"][data-ci="0"] .fdo-final [data-i="0"][data-s="out"],.fdo-close[data-run="out"][data-ci="1"] .fdo-final [data-i="1"][data-s="out"],.fdo-close[data-run="out"][data-ci="2"] .fdo-final [data-i="2"][data-s="out"]{visibility:visible;opacity:1;transition:opacity .3s,visibility 0s}
.fdo-console .fdo-note{color:#d6e8e1;font-size:14px}
.fdo-close-art{position:relative;display:grid;gap:10px;padding-right:var(--gut)}
.fdo-close-art .fdo-iso-box{margin-top:-8%;margin-right:calc(-1 * var(--gut));width:calc(100% + var(--gut));margin-bottom:-6%}
.fdo-dock-floor{fill:#6bb68f;fill-opacity:.08;stroke:#6bb68f;stroke-opacity:.5}
.fdo-dock-edge{stroke:#e0a644;stroke-width:3}
.fdo-bay-door{fill:#0f5a56;stroke:#9fd2b5;stroke-width:1.5;transform-box:fill-box;transform-origin:50% 0;transition:fill .01s}
.fdo-dock-route{stroke:#e0a644;stroke-width:2;stroke-dasharray:5 6;opacity:.8}
.fdo-close[data-bay="0"] .fdo-bay[data-k="0"] .fdo-bay-door,.fdo-close[data-bay="1"] .fdo-bay[data-k="1"] .fdo-bay-door,.fdo-close[data-bay="2"] .fdo-bay[data-k="2"] .fdo-bay-door,
.fdo-close[data-bay="3"] .fdo-bay[data-k="3"] .fdo-bay-door,.fdo-close[data-bay="4"] .fdo-bay[data-k="4"] .fdo-bay-door{fill:#e0a644;stroke:#fff}
.fdo-close[data-bay="0"] .fdo-lab--bay[data-k="0"],.fdo-close[data-bay="1"] .fdo-lab--bay[data-k="1"],.fdo-close[data-bay="2"] .fdo-lab--bay[data-k="2"],.fdo-close[data-bay="3"] .fdo-lab--bay[data-k="3"],.fdo-close[data-bay="4"] .fdo-lab--bay[data-k="4"]{background:#e0a644;color:#072d2b}
.fdo-close[data-ci="0"] .fdo-st[data-i="2"],.fdo-close[data-ci="1"] .fdo-st[data-i="1"],.fdo-close[data-ci="2"] .fdo-st[data-i="3"]{--on:1}
.fdo-close .fdo-ring{stroke-dasharray:6 5}
.fdo-close .fdo-st .fdo-cube{fill:color-mix(in srgb,#1f8274 calc(var(--on) * 100%),#0f5a56)}
.fdo-close[data-bay="0"] .fdo-st[data-i="2"] .fdo-st-body,.fdo-close[data-bay="1"] .fdo-st[data-i="2"] .fdo-st-body,.fdo-close[data-bay="2"] .fdo-st[data-i="1"] .fdo-st-body,
.fdo-close:is([data-bay="3"],[data-bay="4"]) .fdo-st[data-i="3"] .fdo-st-body{transform:translateY(-8px)}
.fdo-close .fdo-trav{transform:translate(var(--lx2),var(--ly2))}
.fdo-close[data-ci="1"] .fdo-trav{transform:translate(var(--lx1),var(--ly1))}
.fdo-close[data-ci="2"] .fdo-trav{transform:translate(var(--lx3),var(--ly3))}
.fdo-close[data-run="out"] .fdo-trav{opacity:0}
.fdo-ledger{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.fdo-ledger span{display:grid;gap:2px;padding:8px 12px;border:1px solid #6bb68f66;background:#062826;transition:background-color .3s,border-color .3s}
.fdo-ledger b{font:700 17px var(--gft-font-mono);color:#fff}
.fdo-ledger i{font-style:normal;font-size:13.5px;color:#d6e8e1}
.fdo-close[data-run="held"] .fdo-ledger :is([data-k="0"],[data-k="2"]),.fdo-close:is([data-run="run"],[data-run="going"]) .fdo-ledger :is([data-k="0"],[data-k="3"]),.fdo-close[data-run="out"] .fdo-ledger :is([data-k="0"],[data-k="1"]){background:#174c3f;border-color:#e0a644}
.fdo-bays{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.fdo-bay-btn{min-height:56px;display:flex;gap:8px;align-items:center;text-align:left;padding:6px 10px;border:1px solid #6bb68f66;background:#0a3735;color:#fff;font-size:14.5px;font-weight:600;line-height:1.25;border-radius:3px}
.fdo-bay-btn b{flex:none;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;border:1px solid #e0a644;font:600 13.5px var(--gft-font-mono)}
.fdo-bay-btn[aria-pressed=true]{border-color:#e0a644;background:#123f37}
.fdo-bay-btn[aria-pressed=true] b{background:#e0a644;color:#072d2b}
.fdo-bay-read>div{visibility:hidden;opacity:0;transition:opacity .25s,visibility 0s .25s;display:grid;gap:4px;padding:10px 14px;background:#062624;border:1px solid #6bb68f55;border-left:3px solid #e0a644}
.fdo-close[data-bay="0"] .fdo-bay-read>[data-k="0"],.fdo-close[data-bay="1"] .fdo-bay-read>[data-k="1"],.fdo-close[data-bay="2"] .fdo-bay-read>[data-k="2"],.fdo-close[data-bay="3"] .fdo-bay-read>[data-k="3"],.fdo-close[data-bay="4"] .fdo-bay-read>[data-k="4"]{visibility:visible;opacity:1;transition:opacity .25s,visibility 0s}
.fdo-bay-read .fdo-k{color:#e3f0eb;font-size:13.5px}
.fdo-bay-t{font-size:20px;font-weight:750;color:#fff}
.fdo-bay-t a{color:#fff;text-decoration-color:#e0a644;text-underline-offset:.2em}
.fdo-bay-desc{font-size:16.5px;line-height:1.45;color:var(--on-dark);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fdo-dock-foot{display:grid;gap:8px;padding-top:4px;border-top:1px solid #6bb68f40}
.fdo-dock-cap{color:#e3f0eb;font-size:14px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fdo-dock-disc{border:1px solid #6bb68f55;background:#062624;border-radius:3px;padding:6px 12px}
.fdo-dock-disc summary{cursor:pointer;color:#e3f0eb;font-size:13.5px;min-height:32px;display:flex;align-items:center;justify-content:space-between;list-style:none}
.fdo-dock-disc summary::-webkit-details-marker{display:none}
.fdo-dock-disc summary::after{content:'+';font-size:16px;color:#e0a644}
.fdo-dock-disc[open] summary::after{content:'-'}
.fdo-dock-disc p{margin-top:8px;color:#d6e8e1;font-size:14px;line-height:1.6}
.fdo-out-line{position:absolute;left:calc(var(--gut) + 64%);bottom:-44px;width:3px;height:44px;background:#e0a644;transform-origin:50% 0;transform:scaleY(0);transition:transform .7s var(--ease-io) .2s;z-index:3}
.fdo-close[data-run="out"] .fdo-out-line,.fdo-close[data-fdo-in] .fdo-out-line{transform:none}
/* live: the lot's halo breathes; the held ring turns */
:root[data-m-go] .fdo-close[data-fdo-on] .fdo-trav-halo{animation-name:fdo-halo;animation-duration:1.8s;animation-iteration-count:infinite;animation-direction:alternate;animation-timing-function:ease-in-out}
:root[data-m-go] .fdo-close[data-fdo-on] .fdo-ring{animation-name:fdo-ringdash;animation-duration:2.4s;animation-iteration-count:infinite;animation-timing-function:linear}
@keyframes fdo-ringdash{to{stroke-dashoffset:-22}}
/* entrance (thread): the route threads through the stations and along the dock, then the bays open */
:root[data-m-go][data-fdo-js] .fdo-close:not([data-fdo-in]) :is(.fdo-close-art .fdo-route,.fdo-bay-door,.fdo-cond,.fdo-close-art .fdo-st){opacity:0}
:root[data-m-go][data-fdo-js] .fdo-close[data-fdo-in] :is(.fdo-close-art .fdo-route,.fdo-bay-door,.fdo-cond,.fdo-close-art .fdo-st){animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards;animation-timing-function:var(--ease)}
:root[data-m-go][data-fdo-js] .fdo-close[data-fdo-in] .fdo-close-art .fdo-route{animation-name:fdo-draw;animation-duration:480ms;animation-timing-function:var(--ease-io)}
:root[data-m-go][data-fdo-js] .fdo-close[data-fdo-in] .fdo-close-art .fdo-st{animation-name:fdo-rise;animation-duration:300ms;animation-delay:calc(var(--i) * 70ms)}
:root[data-m-go][data-fdo-js] .fdo-close[data-fdo-in] .fdo-bay-door{animation-name:fdo-door;animation-duration:300ms}
.fdo-bay[data-k="0"] .fdo-bay-door{animation-delay:420ms}.fdo-bay[data-k="1"] .fdo-bay-door{animation-delay:490ms}.fdo-bay[data-k="2"] .fdo-bay-door{animation-delay:560ms}.fdo-bay[data-k="3"] .fdo-bay-door{animation-delay:630ms}.fdo-bay[data-k="4"] .fdo-bay-door{animation-delay:700ms}
:root[data-m-go][data-fdo-js] .fdo-close[data-fdo-in] .fdo-cond{animation-name:fdo-set;animation-duration:320ms;animation-delay:calc(440ms + var(--i) * 80ms)}
@keyframes fdo-door{from{opacity:0;transform:scaleY(0)}}
@keyframes fdo-set{from{opacity:0;transform:translateX(-18px)}}

/* footer bridge: the released lot's line continues as the ochre "Continue the thread" rule */
body[data-page=fdo-factory] .gft-footer__next-line{background:#c98a2b40}
body[data-page=fdo-factory] .gft-footer__next-line i{background:#e0a644;transform:none}
:root[data-m-go][data-fdo-js] body[data-page=fdo-factory] .gft-footer__next:not([data-fdo-draw]) .gft-footer__next-line i{clip-path:inset(0 100% 0 0)}
:root[data-m-go][data-fdo-js] body[data-page=fdo-factory] .gft-footer__next[data-fdo-draw] .gft-footer__next-line i{animation-name:fdo-draw;animation-duration:800ms;animation-timing-function:var(--ease-io);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:backwards}

/* ---------- hand-overs carried by the motif (scroll-linked, transform and opacity only, alone on their element) ---------- */
@supports (animation-timeline:view()){
 :root[data-m-go] .fdo-hero-move{animation-name:fdo-descend;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--gft-splash;animation-range-start:exit 0%;animation-range-end:exit 100%}
 .fdo-lens{view-timeline-name:--fdo-lensv;view-timeline-axis:block}
 :root[data-m-go] .fdo-lens .fdo-floor{transform-box:fill-box;transform-origin:50% 50%;animation-name:fdo-flatten;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--fdo-lensv;animation-range-start:exit 0%;animation-range-end:exit 70%}
 :root[data-m-go] .fdo-lens .fdo-peel-1{animation-name:fdo-peel1;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--fdo-lensv;animation-range-start:exit 0%;animation-range-end:exit 90%}
 :root[data-m-go] .fdo-lens .fdo-peel-2{animation-name:fdo-peel2;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--fdo-lensv;animation-range-start:exit 10%;animation-range-end:exit 100%}
 .fdo-ev{view-timeline-name:--fdo-evv;view-timeline-axis:block}
 :root[data-m-go] .fdo-carrier--slab{animation-name:fdo-slabdrop;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--fdo-evv;animation-range-start:exit 0%;animation-range-end:exit 100%}
 .fdo-int{view-timeline-name:--fdo-intv;view-timeline-axis:block}
 :root[data-m-go] .fdo-int-seg{animation-name:fdo-hinge;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--fdo-intv;animation-range-start:exit calc(var(--k) * 6%);animation-range-end:exit calc(30% + var(--k) * 6%)}
 :root[data-m-go] .fdo-int-drift{animation-name:fdo-ghostdrift;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--fdo-intv;animation-range-start:contain 0%;animation-range-end:contain 100%}
 .fdo-reh{view-timeline-name:--fdo-rehv;view-timeline-axis:block}
 :root[data-m-go] .fdo-reh .fdo-l-g2[data-k]{animation-name:fdo-toledger;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--fdo-rehv;animation-range-start:exit 0%;animation-range-end:exit 90%}
}
@keyframes fdo-descend{to{transform:translateY(8%)}}
@keyframes fdo-flatten{to{transform:scaleY(.62)}}
@keyframes fdo-peel1{0%{opacity:0;transform:translateY(0)}30%{opacity:.9}100%{opacity:.5;transform:translateY(260px)}}
@keyframes fdo-peel2{0%{opacity:0;transform:translateY(0)}30%{opacity:.8}100%{opacity:.4;transform:translateY(520px)}}
@keyframes fdo-slabdrop{0%{opacity:0;transform:translateY(0) scale(1)}25%{opacity:0;transform:translateY(15svh) scale(.88)}40%{opacity:.9}100%{opacity:0;transform:translateY(60svh) scale(.5)}}
@keyframes fdo-hinge{to{transform:rotateX(70deg)}}
@keyframes fdo-ghostdrift{from{transform:translateY(0)}to{transform:translateY(24px)}}
@keyframes fdo-toledger{to{transform:translate(60px,220px)}}
.fdo-hero-move,.fdo-carrier,.fdo-int-drift,.fdo-plan-box,.fdo-int-seg,.fdo-l-g2,.fdo-peel,.fdo-floor{overflow-anchor:none}
.fdo-peel{transform-box:fill-box}

/* ---------- reduced motion and Calm: the finished state, nothing moves ---------- */
@media (prefers-reduced-motion:reduce){.fdo-page *{transition-duration:.01ms!important;transition-delay:0s!important}}
:root[data-motion=calm] .fdo-page *{transition-duration:.01ms!important;transition-delay:0s!important}
.fdo-hidden-tab *{animation-play-state:paused!important}

/* ---------- tablet and phone ---------- */
@media (max-width:1100px){
 .fdo-lens-head{width:36cqw}
 .fdo-rail legend{display:none}
 .fdo-tblock{width:min(400px,44cqw)}
 .fdo-lamps{grid-template-columns:1fr}
}
@media (max-width:760px){
 .fdo-page{--gut:16px}
 .fdo-sec h2{font-size:clamp(2rem,9vw,2.5rem)}
 .fdo-page .gft-splash{min-height:calc(100svh - 76px)}
 .fdo-page .gft-splash__content{padding-top:32px;padding-bottom:calc(34svh + 8px)}
 .fdo-page .gft-splash h1{font-size:clamp(2.7rem,12vw,3.6rem)}
 .fdo-page .gft-splash__lede{font-size:17px}
 .fdo-page .gft-splash.gft-splash--instrument .gft-splash__structure{inset:auto 0 64px 0;height:34svh}
 .fdo-page .gft-splash__structure::after{background:none}
 .fdo-hero{left:-8%;right:auto;width:116%;bottom:auto;top:-34%;transform:none}
 .fdo-hero .fdo-lab{font-size:14px}
 .fdo-hero .fdo-lab-rework{display:none}
 .fdo-chips{gap:5px}
 .fdo-page .gft-splash__data{display:none}
 .fdo-chip{padding:0 9px;flex:1 1 auto}
 .fdo-hero-act{position:static;padding:10px}
 .fdo-ticker{position:absolute;left:0;right:0;bottom:6px;padding:6px 12px;max-width:none;background:#062826e6}
 .fdo-tk{font-size:20px;white-space:nowrap}
 .fdo-page .gft-splash h1{font-size:clamp(2.5rem,11vw,3.2rem)}
 /* lens: the floor in a pinned band, plates as cards beneath */
 .fdo-lens{padding-bottom:32px}
 .fdo-lens-stage{display:block;--fx:0px;--fy:0px}
 .fdo-lens-head{position:relative;left:auto;top:auto;width:auto;padding:40px var(--gut) 16px}
 .fdo-rail{position:sticky;top:0;right:auto;z-index:5;display:block;padding:8px var(--gut);background:#072d2b}
 .fdo-rail legend{display:block;float:none;margin-bottom:6px;max-width:none}
 .fdo-rail-opts{overflow-x:auto;scroll-snap-type:x mandatory}
 .fdo-rail-opt{scroll-snap-align:start;flex:none}
 .fdo-lens-floor{position:sticky;top:96px;z-index:4;margin:0;width:100%;padding:0;background:#072d2b;height:38svh;overflow:clip}
 .fdo-lens-floor .fdo-iso-box{width:118%;margin-left:-9%;margin-top:-6%}
 .fdo-hangers,.fdo-ghost,.fdo-cube-btn{display:none}
 .fdo-lens .fdo-lab--note{display:none}
 .fdo-plates-wrap{position:relative;display:grid;padding:16px var(--gut) 0}
 .fdo-plates{position:static;grid-area:1/1;width:auto;translate:none;flex-direction:column}
 .fdo-plate p{font-size:17px}
 .fdo-plate--1 .fdo-plate-t{font-size:22px}
 .fdo-lens-text{position:static;width:auto;margin:12px var(--gut) 0}
 .fdo-lens-note{margin-top:14px}
 /* evidence: tracks */
 .fdo-ev-grid{grid-template-columns:1fr}
 .fdo-slab-svg,.fdo-carrier--slab{display:none}
 .fdo-slabs{margin-top:16px}
 .fdo-tracks{display:grid;gap:14px}
 .fdo-track p{display:flex;justify-content:space-between;font-size:17px;font-weight:650;max-width:none}
 .fdo-track p b{font-size:22px}
 .fdo-track-bar{position:relative;display:block;height:26px;background:repeating-linear-gradient(60deg,#c98a2b66 0 3px,transparent 3px 9px);border:1px solid #2a6e50}
 .fdo-track-lit{position:absolute;inset:0;background:#3f8f6b;clip-path:inset(0 calc(100% - var(--p) * 1%) 0 0)}
 .fdo-track-arq{position:absolute;top:0;bottom:0;left:calc(var(--p) * 1%);right:0;display:grid;grid-template-columns:repeat(3,1fr);opacity:0;transition:opacity .3s}
 .fdo-track-arq u{display:grid;place-items:center;text-decoration:none;border:1px dashed #7a4a08;font:700 13px var(--gft-font-mono);color:#1f2b29;background:#f6f4efcc}
 .fdo-ev[data-unseen=true] .fdo-track-arq{opacity:1}
 .fdo-ev[data-site="0"] .fdo-track[data-k="0"] .fdo-track-bar,.fdo-ev[data-site="1"] .fdo-track[data-k="1"] .fdo-track-bar,.fdo-ev[data-site="2"] .fdo-track[data-k="2"] .fdo-track-bar{outline:2px solid #c98a2b;outline-offset:2px}
 .fdo-ev-read{order:-1}
 .fdo-big-n strong{font-size:56px}
 .fdo-quote p{font-size:24px}
 /* sequence: the camera in a pinned band, step cards beneath */
 .fdo-seq-pin,.fdo-seq-sheet{display:contents}
 .fdo-seq-grid,.fdo-tblock,.fdo-seq-handover,.fdo-seq-sheet::after{display:none}
 .fdo-seq{padding-bottom:24px;background-image:linear-gradient(#2a6e5024 1px,transparent 1px),linear-gradient(90deg,#2a6e5024 1px,transparent 1px);background-size:32px 32px}
 .fdo-seq-head{position:relative;left:auto;top:auto;width:auto;padding:40px var(--gut) 16px;background:none}
 .fdo-seq-band{position:sticky;top:0;height:38svh;z-index:3;background:#f6f4ef;border-block:2px solid #2a6e50}
 .fdo-seq-band .fdo-cam{--fx:50cqw;--fy:52cqh}
 .fdo-seq[data-step="1"] .fdo-seq-band .fdo-cam{--fx:50cqw;--fy:50cqh}
 .fdo-seq:is([data-step="2"],[data-step="3"]) .fdo-seq-band .fdo-cam{--fx:46cqw;--fy:50cqh}
 .fdo-seq .fdo-l-seq1,.fdo-seq .fdo-lab--note{display:none}
 .fdo-seq-btns{top:auto;bottom:8px;right:8px;left:8px;justify-content:stretch}
 .fdo-seq-btns button{flex:1;min-height:44px}
 .fdo-seq-cap{position:static;width:auto;margin:16px var(--gut) 0;background:none;padding:0}
 .fdo-seq-steps{margin-top:0;pointer-events:auto;padding:0 var(--gut)}
 .fdo-step{height:auto;min-height:56svh;padding:28px 0;display:grid;align-content:start;gap:8px;border-bottom:1px solid #2a6e5055}
 .fdo-step:nth-child(3){min-height:40svh}
 .fdo-step>*{position:static;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal}
 .fdo-step .fdo-k{color:#2a6e50}
 .fdo-step h3{font-size:24px}
 .fdo-step p{font-size:17px;line-height:1.6}
 .fdo-step dl{margin:6px 0 0;display:grid;gap:6px}
 .fdo-step dt{font:600 13px var(--gft-font-mono);color:#2a6e50}
 .fdo-step dd{margin:0;font-size:15px;font-weight:600}
 /* interlude: one flow, the rail across the width */
 .fdo-int-pin{position:relative;height:auto;overflow:visible}
 .fdo-int-stage{height:auto;padding:48px var(--gut) 40px;display:grid;gap:28px}
 .fdo-int-ghost{width:120vw;right:-30vw;top:0}
 .fdo-int-head,.fdo-int-rail,.fdo-int-low{position:relative;left:auto;right:auto;top:auto;bottom:auto}
 .fdo-int-head h2{font-size:2.3rem}
 .fdo-int-rail{height:250px;margin-inline:calc(-1 * var(--gut))}
 .fdo-int-node{min-width:44px;min-height:44px;padding:0 8px;font-size:13px;border-radius:22px}
 .fdo-int-line{top:21px}
 .fdo-int-marker{top:-36px}
 .fdo-queue{left:30%;top:70px}
 .fdo-bundle{left:calc(var(--c) * 24px);top:calc(var(--r) * 24px);width:18px;height:18px}
 .fdo-queue-k{top:80px;width:60vw;left:-10vw}
 .fdo-held{left:auto;right:16px;top:64px;width:120px;justify-items:end}
 .fdo-held span{translate:none;text-align:right}
 .fdo-int-low{grid-template-columns:1fr;gap:24px}
 .fdo-int-copy{gap:20px}
 .fdo-int-copy p{grid-area:auto;visibility:visible;opacity:1;transform:none}
 .fdo-int-steps{display:none}
 /* dossier */
 .fdo-dos-head,.fdo-dos-grid{grid-template-columns:1fr}
 .fdo-dos-head h2,.fdo-dos-head .fdo-lede{grid-row:auto}
 .fdo-dos-sheets{grid-template-columns:repeat(3,1fr);gap:6px}
 .fdo-dsheet-in{grid-template-columns:1fr;padding:8px;transform:none}
 .fdo-dsheet-in svg{display:none}
 .fdo-dsheet-in strong{font-size:14px}
 .fdo-dos-left{display:contents}
 .fdo-dos-sheets{order:1}.fdo-dos-right{order:2}.fdo-rows{order:3}.fdo-dos-left .fdo-note{order:4}
 .fdo-dos-grid{display:flex;flex-direction:column}
 .fdo-dpanel{padding:14px}
 .fdo-dpanel-head{grid-template-columns:1fr;gap:6px}
 .fdo-dpanel-head h3{font-size:22px}
 .fdo-zbtn{width:44px;height:44px}
 .fdo-plan .fdo-zbadge text{font-size:26px}
 /* rehearsal */
 .fdo-reh-grid{grid-template-columns:1fr;padding-right:var(--gut)}
 .fdo-reh-art{position:relative;top:auto;order:-1;margin-right:0;margin-left:0;padding:12px}
 .fdo-lamps{grid-template-columns:1fr}
 .fdo-reh-left{display:flex;flex-direction:column}
 .fdo-meter{order:3}.fdo-gate-list{order:4}.fdo-reh-left .fdo-note{order:5}
 .fdo-gate summary{grid-template-columns:30px 1fr;row-gap:4px}
 .fdo-gate-chip{grid-column:2;justify-self:start}
 .fdo-gate-b{padding-left:14px}
 .fdo-watch p{font-size:14px}
 .fdo-reh .fdo-lab--note{display:none}
 /* closing */
 .fdo-close-grid{grid-template-columns:1fr;padding-right:var(--gut)}
 .fdo-close-art{padding-right:0}
 .fdo-close-art .fdo-iso-box{margin-right:-16px;margin-left:-16px;width:calc(100% + 32px)}
 .fdo-ledger{grid-template-columns:repeat(4,1fr)}
 .fdo-ledger span{padding:6px}
 .fdo-ledger i{display:none}
 .fdo-bays{grid-template-columns:1fr}
 .fdo-bay-btn{min-height:48px}
 .fdo-out-line{left:50%}
 :is(.fdo-close,.fdo-reh,.fdo-lens) :is(.fdo-lab-rework,.fdo-lab-dock,.fdo-lab--bay){display:none}
 .fdo-reh-art .fdo-iso-box{width:100%;margin-left:0}
 .fdo-ev-grid{display:flex;flex-direction:column;gap:18px}
 .fdo-ev-art,.fdo-ev-read{display:contents}
 .fdo-ev-head{order:0}.fdo-sites{order:1}.fdo-big{order:2}.fdo-ev-say{order:3}.fdo-slabs{order:4}.fdo-switch{order:5}.fdo-ev-cap{order:6}.fdo-quote{order:7}.fdo-source{order:8}
}

.fdo-close .fdo-lab[data-i="3"]{left:calc(836 * .1cqw);top:calc(318 * .1cqw)}
.fdo-seq[data-step="1"] .fdo-lab--owner[data-k="3"]{opacity:0}
.fdo-seq:is([data-step="2"],[data-step="3"]) .fdo-lab-rework{opacity:0;transition:opacity .3s}

/* r8 fixes: the Test-step callout has its own slot above Make (left edge anchored, two lines, leader to the pin), the
   held-lot tag is the tag itself (no second box), and the zone caption keeps its own row above the sheet drawing. */
.fdo-l-call{translate:0 -100%;font-size:13px;line-height:1.3;text-align:left}
.fdo-l-call>span{display:block}
.fdo-iso--ink .fdo-leader{stroke:#a86a12;stroke-width:1.5;stroke-dasharray:4 3}
.fdo-iso--ink .fdo-held-box{display:none}
.fdo-seq .fdo-l-seq2.fdo-lab--note{font-size:13px}
.fdo-zread{position:relative;z-index:1;padding-top:0}
@media (max-width:760px){ .fdo-seq .fdo-l-seq2.fdo-lab--note{display:block} .fdo-seq .fdo-l-call{top:calc(206 * .1cqw)} }
