/* /tools/line-balancing/ : the work ribbon and the takt weft, one motif in ten states. Every class and keyframe is
   prefixed lb-. Animated properties: transform, opacity, clip-path, filter only. Pre-states live under :root[data-m-go];
   scroll-driven rules are longhands inside @supports and are killed by reduced motion and Calm.
   Grounds: act I night (bench #072d2b, bulletin deep #05302d, method night), act II paper (ledger #f6f4ef, compare
   sand #ece8df), act III night (interlude #072d2b, reading deep #05302d, provenance forest #0e4d4a, floor #072d2b). */
main{--lb-night:#072d2b;--lb-deep:#05302d;--lb-forest:#0e4d4a;--lb-paper:#f6f4ef;--lb-sand:#ece8df;--lb-sage:#6bb68f;--lb-ochre:#c98a2b;--lb-gold:#e0b989;--lb-ink:#1b2724;--lb-muted:#3a514b;--lb-lt:#d3e3d9;--lb-ltm:#b9cfc3;--lb-mono:var(--gft-font-mono);--lb-out:cubic-bezier(.16,1,.3,1);--lb-gut:48px;--header:0px;--rule:#6bb68f40;--ground:#072d2b}
.lb-sec{position:relative;font-variant-numeric:tabular-nums;min-width:0;color:var(--lb-ink);isolation:isolate}
.lb-wrap{width:min(1440px,calc(100% - 2 * var(--lb-gut)));margin-inline:auto;min-width:0}
.lb-sec h2{font-size:clamp(2.1rem,3.4vw,3.5rem);letter-spacing:-.05em;line-height:1.03;margin:0 0 16px;max-width:18ch}
.lb-sec h3{font-size:clamp(1.15rem,1.6vw,1.5rem);letter-spacing:-.03em;line-height:1.2;margin:0 0 10px}
.lb-sec h4{font-size:15px;letter-spacing:-.01em;margin:14px 0 6px}
.lb-sec p{max-width:66ch;font-size:16px;line-height:1.65}
.lb-kick,.lb-eyebrow{font:12px/1.6 var(--lb-mono);letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px;color:var(--lb-forest)}
.lb-sec .lb-eyebrow{margin:0 0 6px}
.lb-kick--dark{color:#a8d4bd}
.lb-note{font-size:14px!important;line-height:1.7!important;color:var(--lb-muted)}
.lb-note--dark{color:var(--lb-lt)}
.lb-tip{font:13px/1.6 var(--lb-mono)!important;color:var(--lb-ltm);margin:10px 0 0;max-width:none!important}
.lb-sec button{min-height:44px;padding:10px 16px;border:1px solid var(--lb-forest);background:transparent;color:var(--lb-forest);font:600 13px/1.3 var(--gft-font-display);cursor:pointer;border-radius:0;transition:background-color .2s,color .2s}
.lb-sec button:hover:not(:disabled){background:#dfe9e3}
.lb-sec button:disabled{opacity:.45;cursor:not-allowed}
.lb-sec :is(button,input,summary,a,[tabindex]):focus-visible{outline:3px solid #2c3e7a;outline-offset:3px}
:is(.lb-bench,.lb-ops,.lb-ms,.lb-int,.lb-rd,.lb-pv,.lb-fl) :is(button,input,summary,a,[tabindex]):focus-visible{outline-color:var(--lb-gold)}
:is(.lb-bench,.lb-ops,.lb-ms,.lb-int,.lb-rd,.lb-pv,.lb-fl) button{border-color:#6bb68f99;color:var(--lb-paper)}
:is(.lb-bench,.lb-ops,.lb-ms,.lb-int,.lb-rd,.lb-pv,.lb-fl) button:hover:not(:disabled){background:#6bb68f26}
.lb-sec [hidden]{display:none!important}
.lb-sr{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0!important}
.lb-chip{display:inline-block;font:12px/1.5 var(--lb-mono);text-transform:uppercase;letter-spacing:.07em;padding:6px 10px;border:1px solid currentColor;flex-shrink:0}
.lb-chip--ochre{color:#1b1204;background:var(--lb-gold);border-color:var(--lb-gold);align-self:flex-start}
.lb-link{color:inherit;font-size:14px;font-weight:650;text-underline-offset:5px;display:inline-flex;align-items:center;min-height:44px}
.lb-formula{font:14px/1.6 var(--lb-mono)!important;padding:8px 12px;border-left:2px solid var(--lb-gold);background:#ffffff0d;margin-top:12px}
.lb-formula b{color:var(--lb-gold);font-weight:600;display:inline-block}
/* dark fields with a sage border */
:is(.lb-bench,.lb-ops) input:is([type=number],[type=text]){width:100%;min-height:44px;padding:8px 10px;background:#031c1b;color:var(--lb-paper);border:1px solid #6bb68f8c;border-radius:0;font:14px var(--lb-mono)}
:is(.lb-bench,.lb-ops) input[aria-invalid=true]{border-color:#ff9c7a}
.lb-sec input[type=range]{accent-color:var(--lb-sage);width:100%;min-height:44px;margin:0}
/* woven 96 px grid on the night grounds (a pseudo layer, so the ground itself stays one flat tone for the seams) */
:is(.lb-bench,.lb-ms__stage,.lb-fl,.lb-rd__stage)::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(#b4d4c512 1px,transparent 1px),linear-gradient(90deg,#b4d4c512 1px,transparent 1px);background-size:96px 96px}
/* stable read-outs: live text and hidden copies of its other states share one grid cell */
.lb-stack{display:grid!important}
.lb-stack>*{grid-area:1/1}
.lb-stack__g{visibility:hidden}

/* ===== the stacked-bar grammar shared by the small live charts ===== */
.lb-mini{display:block;width:100%;height:auto;overflow:visible}
.lb-mini text{font-family:var(--lb-mono)}
.lb-base{stroke:#b6cdbf;stroke-opacity:.55;fill:none}
.lb-seg{stroke:#072d2b;stroke-width:1}
.lb-seg-id{fill:#072d2b;font:700 14px var(--lb-mono);pointer-events:none}
.lb-load{fill:var(--lb-paper);font:14px var(--lb-mono)}
.lb-st{fill:var(--lb-lt);font:14px var(--lb-mono)}
.lb-idle{stroke:#b6cdbf;stroke-opacity:.45;stroke-dasharray:3 3}
.lb-over{fill:var(--lb-ochre);fill-opacity:.85;stroke:var(--lb-gold)}
.lb-takt{stroke:var(--lb-gold);stroke-width:2;stroke-dasharray:5 5;fill:none}
.lb-takt-t{fill:var(--lb-gold);font:14px var(--lb-mono)}
.lb-bar[data-bott="1"] .lb-seg{stroke:var(--lb-gold);stroke-width:1.6}
.lb-seg.is-hot,.lb-bar.is-hot .lb-seg,.lb-bar.is-scan .lb-seg{stroke:#fff;stroke-width:2.5}
[data-lb-mark].is-hot rect,[data-lb-mark].is-scan rect{stroke:#fff;stroke-width:2.5}
.lb-mini--paper .lb-load,.lb-mini--paper .lb-st{fill:#25302e}
.lb-mini--paper text{font-size:22px}
.lb-mini--paper :is(.lb-load,.lb-seg-id){display:none}
.lb-mini--paper .lb-takt-t{fill:#7a4f10}
.lb-mini--paper .lb-takt{stroke:#a8691b}
.lb-mini--paper .lb-base{stroke:#25302e}
.lb-mini--paper .lb-idle{stroke:#25302e;stroke-opacity:.5}
.lb-mini--paper .lb-bar.is-hot .lb-seg{stroke:#072d2b;stroke-width:3}
@keyframes lb-glow{from{opacity:.62}to{opacity:1}}
:root[data-m-go] [data-m-live~=lb-glow][data-m-on] .lb-bar[data-bott="1"] .lb-seg{animation-name:lb-glow;animation-duration:2.2s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}

/* ===== 1 splash: the loom beat-up ===== */
[data-splash="line-balancing"].gft-splash .gft-splash__mesh{background-image:linear-gradient(#b4d4c514 1px,transparent 1px),linear-gradient(90deg,#b4d4c514 1px,transparent 1px);background-size:96px 96px}
[data-splash="line-balancing"].gft-splash .gft-splash__structure{inset:0;display:block;pointer-events:none}
[data-splash="line-balancing"].gft-splash .gft-splash__structure::after{background:linear-gradient(90deg,#072d2b 0%,#072d2bf0 30%,#072d2b00 44%);z-index:-1}
[data-splash="line-balancing"].gft-splash .gft-splash__lede{font-size:18px;line-height:1.65;color:#dbe7e0;max-width:40ch}
[data-splash="line-balancing"].gft-splash :is(.gft-splash__data,.gft-splash__data span,.gft-splash__signal,.gft-splash__position){font-size:12px}
[data-splash="line-balancing"].gft-splash .gft-splash__data{color:#c3d6cb}
[data-splash="line-balancing"].gft-splash .gft-splash__content{pointer-events:none}
[data-splash="line-balancing"].gft-splash .gft-splash__content :is(a,button,h1,p){pointer-events:auto}
[data-splash="line-balancing"].gft-splash h1 .gft-serif{display:inline-block}
.lb-sbwrap{position:absolute;left:46%;right:var(--lb-gut);top:72px;bottom:calc(var(--splash-strip-h,70px) + 10px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"read" "stage" "scrub";gap:10px;color:var(--lb-paper)}
.lb-sbread{grid-area:read;justify-self:end;display:flex;gap:28px;margin:0;padding:10px 16px;background:#072d2bd9;border:1px solid #6bb68f55}
.lb-sbread dt{font:12px var(--lb-mono);letter-spacing:.14em;text-transform:uppercase;color:#b9cfc3}
.lb-sbread dd{margin:4px 0 0;font:600 18px var(--lb-mono);color:var(--lb-gold);display:block}
.lb-sbstage{grid-area:stage;min-height:0;position:relative;transform-origin:50% 100%}
.lb-sbfig{position:absolute;inset:0}
.lb-lm{width:100%;height:100%;display:block;overflow:visible}
.lb-lm text{font:22px var(--lb-mono);letter-spacing:.02em}
.lb-lm-warp{stroke:#b4d4c5;stroke-opacity:.16;fill:none}
.lb-lm-beam{stroke:#b4d4c5;stroke-opacity:.6;stroke-width:4;fill:none}
.lb-lm-b{stroke:#072d2b;stroke-width:1.4;transform-box:view-box;transform-origin:0 0}
.lb-lm-st[data-bott="1"] .lb-lm-b{stroke:var(--lb-gold);stroke-width:2}
.lb-lm-sw{transform-box:fill-box;transform-origin:50% 100%}
.lb-lm-s{fill:#cfe3d7}
.lb-lm-vbg,.lb-ms-vbg,.lb-fl-vbg,.lb-bal-vbg{fill:#072d2b;fill-opacity:.92}
.lb-lm-v{fill:var(--lb-paper)}
.lb-lm-chev{fill:none;stroke:var(--lb-gold);stroke-width:3}
.lb-lm-reedw,.lb-lm-reed{transform-box:view-box;transform-origin:0 0}
.lb-lm-reedl{stroke:var(--lb-gold);stroke-width:2.5;stroke-dasharray:8 7;fill:none}
.lb-lm-tt{fill:var(--lb-gold);letter-spacing:.1em}
.lb-lm-glint{fill:#fff3dc;opacity:0;transform-box:view-box;transform-origin:0 0}
.lb-sbscrub{grid-area:scrub;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px 16px;padding:8px 14px;background:#072d2bd9;border:1px solid #6bb68f40;pointer-events:auto}
.lb-sbscrub label{font:600 13px var(--gft-font-display)}
.lb-sbscrub small{display:block;font:12px var(--lb-mono);color:#b9cfc3;font-weight:400}
.lb-sbscrub output{font:600 18px var(--lb-mono);color:var(--lb-gold);min-width:3ch;text-align:right}
.lb-sbpresets{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.lb-sbpresets button{min-height:44px;padding:6px 12px;border:1px solid #6bb68f8c;background:#052422;color:var(--lb-lt);font:600 12px/1.2 var(--lb-mono);cursor:pointer}
.lb-sbpresets button:hover{background:#0a3a37}
.lb-sbpresets button[aria-pressed=true],[data-lbf-preset-pill][aria-pressed=true]{background:var(--lb-gold)!important;border-color:var(--lb-gold)!important;color:#1b1204!important}
/* entrance: the headline masks in per line, the accent arrives as the reed lands */
@keyframes lb-h1{from{clip-path:inset(0 0 100% 0);transform:translateY(.1em)}to{clip-path:inset(-.3em -.3em -.4em -.3em);transform:none}}
@keyframes lb-h1b{from{opacity:0;transform:translateY(.4em);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(-.3em -.3em -.4em -.3em)}}
:root[data-m-go] [data-splash="line-balancing"].gft-splash h1[data-m-in]{animation-name:lb-h1;animation-duration:600ms;animation-timing-function:cubic-bezier(.3,.7,.2,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:0ms}
:root[data-m-go] [data-splash="line-balancing"].gft-splash h1[data-m-in] .gft-serif{animation-name:lb-h1b;animation-duration:360ms;animation-timing-function:var(--lb-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:540ms}
/* entrance: ribbon on the beam (0 to 250 ms), the reed swings down and beats it into stacks (250 to 900 ms) */
@keyframes lb-beat{0%{transform:translateX(-46px) var(--rb);opacity:.45}26%{transform:var(--rb);opacity:1}62%{transform:none}78%{transform:translateY(-6px)}100%{transform:none}}
@keyframes lb-reed{0%,24%{transform:translateY(var(--dy)) rotate(-3deg);opacity:.5}60%{transform:translateY(4px);opacity:1}100%{transform:none;opacity:1}}
@keyframes lb-fadein{from{opacity:0}to{opacity:1}}
:root[data-m-go] .lb-sbfig[data-lbf-first] .lb-lm-b{animation-name:lb-beat;animation-duration:760ms;animation-timing-function:cubic-bezier(.45,.05,.25,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:calc(var(--i,0) * 16ms)}
:root[data-m-go] .lb-sbfig[data-lbf-first] .lb-lm-reed{animation-name:lb-reed;animation-duration:620ms;animation-timing-function:cubic-bezier(.5,0,.2,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .lb-sbfig[data-lbf-first] .lb-lm-lab{animation-name:lb-fadein;animation-duration:260ms;animation-timing-function:linear;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:620ms}
/* lives: stacks sway on the loom, the reed breathes, a shuttle glint crosses the takt line every 6 s */
@keyframes lb-sway{from{transform:translateX(-2.5px) rotate(-.4deg)}to{transform:translateX(2.5px) rotate(.4deg)}}
@keyframes lb-breath{from{opacity:.6}to{opacity:1}}
@keyframes lb-glint{0%{transform:translateX(0);opacity:0}4%{opacity:.95}26%{transform:translateX(740px);opacity:.95}30%,100%{transform:translateX(740px);opacity:0}}
:root[data-m-go] [data-m-live~=lb-sway][data-m-on]:not([data-lbf-first]) .lb-lm-sw{animation-name:lb-sway;animation-duration:6s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;animation-delay:calc(var(--i,0) * -.75s)}
:root[data-m-go] [data-m-live~=lb-sway][data-m-on] .lb-lm-reedl{animation-name:lb-breath;animation-duration:3.2s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
:root[data-m-go] [data-m-live~=lb-sway][data-m-on] .lb-lm-glint{animation-name:lb-glint;animation-duration:6s;animation-timing-function:cubic-bezier(.5,0,.5,1);animation-iteration-count:infinite;animation-direction:normal;animation-delay:1.2s}

/* ===== 2 bench: the instrument ===== */
.lb-bench{background:var(--lb-night);color:var(--lb-paper);padding:24px 0 24px;view-timeline-name:--lb-bench;view-timeline-axis:block}
.lb-bench__reed{position:absolute;left:0;right:0;top:0;height:0;border-top:2px dashed var(--lb-gold);opacity:.85;z-index:2;pointer-events:none;overflow-anchor:none}
.lb-bench__grid{display:grid;grid-template-columns:minmax(340px,30%) minmax(0,1fr);gap:44px;align-items:start}
.lb-bench__right{position:sticky;top:18px}
.lb-bench h2{font-size:clamp(1.9rem,2.5vw,2.5rem);max-width:16ch;color:var(--lb-paper)}
.lb-bench .lb-kick{color:#a8d4bd}
.lb-basis{display:grid;justify-items:start;gap:6px;margin:2px 0 12px}
.lb-basis .lb-chip{color:var(--lb-gold)}
.lb-basis p{font-size:13px!important;line-height:1.55!important;color:var(--lb-lt);margin:0}
.lb-form,.lb-controls{border:0;margin:0;padding:0;min-width:0}
.lb-controls>legend,.lb-routing>legend{font:600 14px var(--gft-font-display);margin:0 0 6px;padding:0;color:var(--lb-paper)}
.lb-control{display:grid;grid-template-columns:minmax(0,1fr) 104px;gap:0 12px;align-items:center;margin:0 0 4px}
.lb-control label{font:600 14px/1.3 var(--gft-font-display);color:var(--lb-paper)}
.lb-control label small{display:block;font:12px var(--lb-mono);font-weight:400;color:var(--lb-lt)}
.lb-control input[type=range]{grid-column:1/-1;min-height:28px}
.lb-routing{border:0;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 18px}
.lb-routing>legend{flex-basis:100%}
.lb-routing label{display:inline-flex;gap:8px;align-items:center;min-height:32px;font-size:14px}
.lb-routing input{accent-color:var(--lb-sage);width:18px;height:18px}
.lb-bench .lb-note{color:var(--lb-lt);margin:4px 0 10px;font-size:13px!important}
.lb-presets{display:flex;flex-wrap:wrap;gap:6px}
.lb-bench .lb-presets button{padding:8px 10px}
.lb-result{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 30px;padding:14px 18px;border:1px solid #6bb68f59;background:#0a3a37}
.lb-result .lb-eyebrow{color:#b9dcc8;display:flex;gap:10px;align-items:center}
.lb-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--lb-sage)}
.lb-main{display:flex;align-items:baseline;gap:12px;margin:0}
.lb-main__fig{display:inline-block;overflow:clip;font:850 clamp(4rem,5.6vw,5.6rem)/.92 var(--gft-font-display);letter-spacing:-.06em;color:var(--lb-paper)}
.lb-main__fig output{display:inline-block}
.lb-main>span[data-lb-main-unit]{font:600 14px/1.3 var(--gft-font-display);color:var(--lb-lt);max-width:9ch}
.lb-answer{font:700 18px/1.3 var(--gft-font-display)!important;color:var(--lb-gold);margin:0 0 8px}
.lb-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:8px}
.lb-metrics div{display:grid;gap:2px;border-top:1px solid #6bb68f40;padding-top:6px}
.lb-metrics span{font:12px var(--lb-mono);color:var(--lb-lt);text-transform:uppercase;letter-spacing:.06em}
.lb-metrics output{font:600 16px var(--lb-mono);color:var(--lb-paper)}
.lb-interpretation{font-size:14px!important;line-height:1.55!important;color:var(--lb-lt);margin:0;max-width:none!important}
.lb-error{margin:10px 0;padding:10px 14px;border:1px solid #ff9c7a;color:#ffd2c2;font-size:14px}
.lb-exhibit{margin:10px calc(-1 * var(--lb-gut)) 0 0}
.lb-exhibit__head{display:flex;justify-content:space-between;align-items:end;gap:20px;padding-right:var(--lb-gut)}
.lb-exhibit h3{color:var(--lb-paper);margin:0}
.lb-exhibit .lb-eyebrow{color:#b9dcc8}
.lb-chart-foot{display:flex;gap:18px;margin:0;font:12.5px var(--lb-mono)!important;color:var(--lb-lt);flex-wrap:wrap;justify-content:flex-end}
.lb-chart-foot output{color:var(--lb-paper)}
.lb-chart-scroll{overflow-x:auto;overflow-y:hidden;margin-top:6px;scrollbar-width:thin;overscroll-behavior-x:contain}
.lb-chart{display:block;width:100%;height:auto;min-width:760px;max-height:345px}
.lb-chart text{font-family:var(--lb-mono)}
.lb-exhibit .lb-tip{padding-right:var(--lb-gut);margin-top:4px;min-height:2.4em;color:var(--lb-lt)}
.lb-actionbar{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.lb-actionbar [data-lb-save]{background:var(--lb-sage);color:var(--lb-night)!important;border-color:var(--lb-sage)!important}
.lb-status{font:13px var(--lb-mono)!important;color:var(--lb-gold);margin:6px 0 0;min-height:1.6em}
.lb-share-url{width:100%;margin-top:6px;background:#031c1b;color:var(--lb-paper);border:1px solid #6bb68f8c;padding:8px;font:13px var(--lb-mono)}
.lb-noscript{color:var(--lb-lt);font-size:14px}
.lb-bench .lb-bar,[data-lb-mark]{transform-box:fill-box;transform-origin:50% 100%}
/* entrance: beat-up. Stacks rise to the reed with one beat, the result figure rolls in from blank */
@keyframes lb-beatup{0%{transform:scaleY(.28)}62%{transform:scaleY(1.05)}100%{transform:none}}
@keyframes lb-rise{from{opacity:.3;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes lb-blank{from{transform:translateY(105%);opacity:0}to{transform:none;opacity:1}}
:root[data-m-go] .lb-bench:not([data-m-in]) [data-lbf-first] [data-lb-mark]{transform:scaleY(.28)}
:root[data-m-go] .lb-bench[data-m-in] [data-lbf-first] [data-lb-mark]{animation-name:lb-beatup;animation-duration:640ms;animation-timing-function:cubic-bezier(.3,.6,.25,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:calc(var(--i,0) * 14ms + 80ms)}
:root[data-m-go] .lb-bench:not([data-m-in]) :is(.lb-bench__left>*,.lb-result,.lb-actionbar){opacity:.3;transform:translateY(16px)}
:root[data-m-go] .lb-bench[data-m-in] :is(.lb-bench__left>*,.lb-result,.lb-actionbar){animation-name:lb-rise;animation-duration:600ms;animation-timing-function:var(--lb-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .lb-bench[data-m-in] .lb-bench__left>:nth-child(2){animation-delay:40ms}
:root[data-m-go] .lb-bench[data-m-in] .lb-bench__left>:nth-child(3){animation-delay:90ms}
:root[data-m-go] .lb-bench[data-m-in] .lb-bench__left>:nth-child(4){animation-delay:140ms}
:root[data-m-go] .lb-bench[data-m-in] .lb-actionbar{animation-delay:200ms}
:root[data-m-go] .lb-bench:not([data-m-in]) .lb-main__fig output{transform:translateY(105%);opacity:0}
:root[data-m-go] .lb-bench[data-m-in] .lb-main__fig output{animation-name:lb-blank;animation-duration:420ms;animation-timing-function:var(--lb-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:420ms}

/* ===== hand-over bands: the motif morphs across the boundary (scroll-linked transform only) ===== */
.lb-band{position:relative;padding:16px 0 4px;view-timeline-name:--lb-band;view-timeline-axis:block;overflow-anchor:none}
.lb-band__cap{width:min(1440px,calc(100% - 2 * var(--lb-gut)));margin:0 auto 6px!important;font:12px/1.5 var(--lb-mono)!important;letter-spacing:.06em;color:var(--lb-ltm);max-width:none!important}
.lb-band__cap b{color:var(--lb-paper);font-weight:600}
.lb-band__fig{width:min(1440px,calc(100% - 2 * var(--lb-gut)));margin:0 auto;height:clamp(70px,9vw,128px)}
.lb-band__svg{display:block;width:100%;height:100%;overflow:visible}
.lb-band__line{stroke:#b4d4c5;stroke-opacity:.3;fill:none}
.lb-band__ghost{fill:#b4d4c50d;stroke:#b4d4c5;stroke-opacity:.45;stroke-dasharray:4 3}
.lb-band__ghost--s1{stroke:var(--lb-gold);stroke-opacity:.8}
.lb-band__takt{stroke:var(--lb-gold);stroke-width:2;stroke-dasharray:6 6;fill:none;vector-effect:non-scaling-stroke}
.lb-mo{stroke:#072d2b;stroke-width:1;transform-box:view-box;transform-origin:0 0}
.lb-band--ribbon .lb-band__fig{height:clamp(56px,6vw,84px)}
.lb-band--drop .lb-band__fig{height:clamp(110px,14vw,190px)}
.lb-band--wipe{background:#05302d;border-top:1px solid #6bb68f33;padding:18px 0 18px}
.lb-band--wipe .lb-band__fig{height:clamp(124px,14vw,176px)}
.lb-band__st{font:700 15px var(--lb-mono);fill:var(--lb-paper)}
.lb-band__v{font:600 14px var(--lb-mono);fill:var(--lb-gold)}
.lb-band__tt{font:600 13px var(--lb-mono);fill:var(--lb-gold);letter-spacing:.08em}
@keyframes lb-morph{from{transform:var(--mf)}to{transform:none}}

/* ===== 3 bulletin: threads against takt beside a pinned live chart ===== */
.lb-ops{background:var(--lb-deep);color:var(--lb-paper);padding:0 0 8px}
.lb-ops__grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(340px,1.05fr);gap:44px;align-items:start;padding-top:20px}
.lb-ops__band{grid-column:2;grid-row:1;position:sticky;top:20px}
.lb-ops__main{grid-column:1;grid-row:1;min-width:0}
.lb-ops__pin{padding:20px 22px;border:1px solid #6bb68f40;background:#072d2b}
.lb-ops h2{font-size:clamp(2rem,3vw,3rem);color:var(--lb-paper)}
.lb-ops__state{display:flex;align-items:center;gap:10px;margin:8px 0 10px!important;padding:6px 10px;background:#052422;border:1px solid #e0b98966;font:13px/1.35 var(--lb-mono)!important;color:var(--lb-paper);max-width:none!important}
.lb-ops__state b{color:var(--lb-gold);font-weight:600}
.lb-ops__chart{margin:6px 0 10px}
.lb-tally{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0}
.lb-tally dt{font:12px var(--lb-mono);color:var(--lb-lt);text-transform:uppercase;letter-spacing:.06em}
.lb-tally dd{margin:2px 0 0;font:600 17px var(--lb-mono);color:var(--lb-paper)}
.lb-tally dd span,.lb-tally dd[data-lbf]{display:inline-block}
.lb-ops__stlist{list-style:none;margin:12px 0 0;padding:10px 0 0;border-top:1px solid #6bb68f40;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;font:12px var(--lb-mono)}
.lb-ops__stlist li{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:6px;align-items:center}
.lb-ops__stlist b{color:var(--lb-paper);font-weight:600}
.lb-ops__stlist li[data-bott="1"] b{color:var(--lb-gold)}
.lb-ops__stlist i{display:block;height:8px;background:#031c1b;border:1px solid #6bb68f59;position:relative}
.lb-ops__stlist i::after{content:'';position:absolute;left:0;top:0;bottom:0;width:var(--w,0%);background:var(--lb-sage)}
.lb-ops__stlist li[data-bott="1"] i::after{background:var(--lb-gold)}
.lb-ops__stlist span{color:var(--lb-lt)}
.lb-ops__intro{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:start;margin-bottom:12px}
.lb-ops__intro .lb-note{color:var(--lb-lt);margin:0}
.lb-operation-head,.lb-operation{display:grid;grid-template-columns:34px minmax(0,1.25fr) minmax(0,1fr) 92px 104px 44px;gap:10px;align-items:center}
.lb-operation-head{font:12px var(--lb-mono);color:var(--lb-lt);text-transform:uppercase;letter-spacing:.06em;padding:0 0 6px;border-bottom:1px solid #6bb68f40}
.lb-operation{min-height:52px;padding:4px 0;border-bottom:1px solid #6bb68f1f;position:relative}
.lb-operation.is-hot-row{background:#6bb68f24;outline:1px solid #e0b98980}
.lb-id{font:600 14px var(--lb-mono);color:var(--lb-gold)}
.lb-operation button{min-height:44px;padding:0;width:44px;font-size:18px}
.lb-thr{position:relative;display:block;height:16px;background:repeating-linear-gradient(90deg,#b4d4c51a 0 1px,transparent 1px 10px);overflow:visible}
.lb-thr i{position:absolute;inset:0;background:var(--c);transform-origin:0 50%;transform:scaleX(var(--w,0));transition:transform .5s var(--lb-out)}
.lb-thr::after{content:'';position:absolute;top:-5px;bottom:-5px;left:calc(var(--tk,1) * 100% - 1px);border-left:2px dashed var(--lb-gold)}
.lb-opfoot{margin-top:14px;padding:12px 14px;border:1px solid #6bb68f40;background:#072d2b}
.lb-opfoot .lb-eyebrow{color:#b9dcc8}
.lb-opfoot__line{margin:0;font-size:14px!important;display:grid;gap:2px;max-width:none!important}
.lb-opfoot__line b{color:var(--lb-gold)}
@keyframes lb-thpulse{from{filter:brightness(1)}to{filter:brightness(1.35)}}
.lb-operation.is-hot-row .lb-thr i{animation-name:lb-thpulse;animation-duration:.9s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
/* entrance: unspool. Rows unspool from the left, 20 ms apart, capped at 250 ms */
@keyframes lb-unspool{from{clip-path:inset(0 72% 0 0);opacity:.35}to{clip-path:inset(0 -2% 0 0);opacity:1}}
@keyframes lb-slide-l{from{opacity:.3;transform:translateX(28px)}to{opacity:1;transform:none}}
:root[data-m-go] .lb-ops:not([data-m-in]) [data-lbf-first] .lb-operation{clip-path:inset(0 72% 0 0);opacity:.35}
:root[data-m-go] .lb-ops[data-m-in] [data-lbf-first] .lb-operation{animation-name:lb-unspool;animation-duration:560ms;animation-timing-function:var(--lb-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:calc(min(var(--j,0),12) * 20ms + 60ms)}
:root[data-m-go] .lb-ops:not([data-m-in]) :is(.lb-ops__pin,.lb-ops__intro){opacity:.3;transform:translateX(28px)}
:root[data-m-go] .lb-ops[data-m-in] :is(.lb-ops__pin,.lb-ops__intro){animation-name:lb-slide-l;animation-duration:620ms;animation-timing-function:var(--lb-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}

/* ===== 4 method: a full-height stage bled to the right edge, cards on the left ===== */
.lb-ms{background:var(--lb-night);color:var(--lb-paper);view-timeline-name:--lb-ms;view-timeline-axis:block;overflow-anchor:none}
.lb-ms__steps{display:grid;grid-template-columns:minmax(320px,30%) minmax(0,1fr);position:relative}
.lb-ms__stage{grid-column:2;grid-row:1;position:sticky;top:0;height:100svh;min-height:600px;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;padding:34px var(--lb-gut) 18px 36px;background:#05302d;isolation:isolate;overflow:clip;overflow-anchor:none}
.lb-ms__stage::before{background-image:linear-gradient(90deg,#b4d4c514 1px,transparent 1px);background-size:48px 100%}
.lb-ms__head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 28px;align-items:end}
.lb-ms__head .lb-kick{grid-column:1/-1;margin:0}
.lb-ms h2{font-size:clamp(1.9rem,2.9vw,3rem);margin:0;color:var(--lb-paper);max-width:20ch}
.lb-ms__rail{display:grid;grid-template-columns:auto auto;gap:6px 14px;align-items:center}
.lb-ms__count{font:600 14px var(--lb-mono)!important;color:var(--lb-gold);margin:0}
.lb-ms__count b{display:inline-block}
.lb-ms__dots{display:flex;gap:6px}
.lb-ms__dots button{min-height:44px;min-width:44px;padding:4px 10px;display:grid;justify-items:center;font:12px var(--lb-mono)}
.lb-ms__dots button span{font-weight:700;font-size:14px}
.lb-ms__dots button em{font-style:normal;font-size:12px;color:var(--lb-ltm)}
.lb-ms__dots button[aria-pressed=true]{background:var(--lb-sage);color:var(--lb-night);border-color:var(--lb-sage)}
.lb-ms__dots button[aria-pressed=true] em{color:var(--lb-night)}
.lb-ms__prog{grid-column:1/-1;display:block;height:3px;background:#6bb68f33;position:relative;overflow:clip}
.lb-ms__prog>i{position:absolute;inset:0;background:var(--lb-gold);transform-origin:0 50%;transform:scaleX(var(--p,.2));transition:transform .7s var(--lb-out)}
.lb-ms__disp{display:grid;margin:14px 0 0;min-height:0}
.lb-ms__fig{grid-area:1/1;margin:0;max-width:none!important;display:grid;gap:2px;opacity:0;transform:translateY(.35em);transition:opacity .22s linear,transform .4s var(--lb-out)}
.lb-ms__big{font:800 clamp(2.6rem,4.4vw,4rem)/1 var(--gft-font-display);letter-spacing:-.04em;color:var(--lb-paper)}
.lb-ms__big b{color:var(--lb-gold);display:inline-block}
.lb-ms__sub{font:13px var(--lb-mono);color:var(--lb-ltm)}
.lb-ms__sub b{color:var(--lb-paper);font-weight:500}
.lb-ms__steps:not([data-step]) .lb-ms__fig[data-d="4"],
.lb-ms__steps[data-step="0"] .lb-ms__fig[data-d="0"],.lb-ms__steps[data-step="1"] .lb-ms__fig[data-d="1"],.lb-ms__steps[data-step="2"] .lb-ms__fig[data-d="2"],
.lb-ms__steps[data-step="3"] .lb-ms__fig[data-d="3"],.lb-ms__steps[data-step="4"] .lb-ms__fig[data-d="4"]{opacity:1;transform:none;transition-delay:.2s}
.lb-ms__plot{min-height:0;position:relative;overflow:clip}
.lb-ms__svg{display:block;width:100%;height:100%;overflow:visible}
.lb-ms__svg text{font:16px var(--lb-mono);fill:var(--lb-lt)}
.lb-ms__note{font:12px/1.5 var(--lb-mono)!important;color:var(--lb-ltm);margin:6px 0 0;max-width:none!important}
.lb-ms-axis{stroke:#b4d4c5;stroke-opacity:.55;stroke-width:2;fill:none}
.lb-ms-grid{stroke:#b4d4c5;stroke-opacity:.12;fill:none}
.lb-ms__svg .lb-ms-gt{font-size:15px;fill:var(--lb-ltm)}
.lb-ms-takt{stroke:var(--lb-gold);stroke-width:2.5;stroke-dasharray:8 7;fill:none}
.lb-ms__svg .lb-ms-tkt{fill:var(--lb-gold);letter-spacing:.08em}
.lb-ms-pulse{fill:#fff3dc;opacity:0;transform-box:view-box;transform-origin:0 0}
.lb-ms__svg .lb-ms-id{fill:#072d2b;font-weight:700}
.lb-ms-brace{fill:none;stroke:var(--lb-ltm);stroke-width:1.5}
.lb-ms__svg .lb-ms-cap{font-size:15px;letter-spacing:.1em;fill:var(--lb-ltm)}
.lb-ms-tick{stroke:var(--lb-gold);stroke-width:2;stroke-dasharray:4 4}
.lb-ms__svg .lb-ms-tt{fill:var(--lb-gold)}
.lb-ms-ghost{fill:none;stroke:#b6cdbf;stroke-dasharray:5 5;stroke-opacity:.7}
.lb-ms__svg .lb-ms-v{fill:var(--lb-paper)}
.lb-ms-gap{stroke:var(--lb-gold);stroke-opacity:.5}
.lb-ms-cyc{stroke:var(--lb-sage);stroke-width:2.5;fill:none;transform-box:fill-box;transform-origin:0 50%;transition:transform .7s var(--lb-out) .15s}
.lb-ms__svg .lb-ms-ct{fill:var(--lb-sage)}
.lb-ms-chev{fill:none;stroke:var(--lb-gold);stroke-width:3}
.lb-msb rect,.lb-msp rect{stroke:#072d2b;stroke-width:1.2}
/* the five states: every mark persists; only the marks that change move, outgoing first */
.lb-msb,.lb-msp{transform-box:view-box;transform-origin:0 0;transition:transform .85s var(--lb-out),opacity .26s linear}
.lb-msp{opacity:0;transform:var(--m)}
.lb-ms-l{transition:opacity .3s linear}
.lb-ms-l0,.lb-ms-l1,.lb-ms-l2{opacity:0}
.lb-ms__steps:is([data-step="0"],[data-step="1"]) .lb-msb{transform:var(--r)}
.lb-ms__steps:is([data-step="0"],[data-step="1"]) .lb-msp{transform:none}
.lb-ms__steps[data-step="2"] .lb-msb{transform:var(--c3);opacity:0}
.lb-ms__steps[data-step="2"] .lb-msp{opacity:1}
.lb-ms__steps:is([data-step="0"],[data-step="1"]) .lb-ms-l0{opacity:1;transition-delay:.25s}
.lb-ms__steps[data-step="1"] .lb-ms-l1{opacity:1;transition-delay:.25s}
.lb-ms__steps[data-step="2"] .lb-ms-l2{opacity:1;transition-delay:.4s}
.lb-ms__steps[data-step]:not([data-step="3"]):not([data-step="4"]) .lb-ms-l3{opacity:0}
.lb-ms__steps[data-step="3"] .lb-ms-l3{transition-delay:.55s}
.lb-ms__steps[data-step]:not([data-step="4"]) .lb-ms-l4{opacity:0}
.lb-ms__steps[data-step]:not([data-step="4"]) .lb-ms-cyc{transform:scaleX(0)}
.lb-ms-turn{transform-box:view-box;transform-origin:450px 320px}
.lb-ms__track{grid-column:1;grid-row:1;padding:0 26px 0 var(--lb-gut);min-width:0}
.lb-ms__track>article{min-height:78svh;padding:0 0 0 18px;display:grid;align-content:center}
.lb-ms__track>article:first-child{min-height:78svh;align-content:center;padding-top:4svh;padding-bottom:4svh}
.lb-ms__track>article:last-child{min-height:92svh}
.lb-ms__card{background:#0a3d3a;border:1px solid #6bb68f4d;padding:22px 22px 18px;max-width:440px}
.lb-ms__card p{font-size:17px!important;line-height:1.6!important;color:var(--lb-lt)}
.lb-ms__card h3{color:var(--lb-paper)}
.lb-ms__card .lb-eyebrow{color:#b9dcc8}
/* lives: a takt pulse travels the takt line every 4 s */
@keyframes lb-pulse{0%{transform:translateX(0);opacity:0}6%{opacity:1}46%{transform:translateX(800px);opacity:1}50%,100%{transform:translateX(800px);opacity:0}}
:root[data-m-go] [data-m-live~=lb-pulse][data-m-on] .lb-ms-pulse{animation-name:lb-pulse;animation-duration:4s;animation-timing-function:cubic-bezier(.45,0,.55,1);animation-iteration-count:infinite;animation-direction:normal}
/* entrance: warp. The stage threads draw vertically, then the ribbon lays across them */
@keyframes lb-warpdraw{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
@keyframes lb-lay{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 -2% 0 0)}}
:root[data-m-go] .lb-ms:not([data-m-in]) .lb-ms__stage::before{clip-path:inset(0 0 70% 0)}
:root[data-m-go] .lb-ms[data-m-in] .lb-ms__stage::before{animation-name:lb-warpdraw;animation-duration:520ms;animation-timing-function:var(--lb-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .lb-ms:not([data-m-in]) [data-lbf-first] .lb-ms-blocks{clip-path:inset(0 70% 0 0)}
:root[data-m-go] .lb-ms[data-m-in] [data-lbf-first] .lb-ms-blocks{animation-name:lb-lay;animation-duration:560ms;animation-timing-function:var(--lb-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:300ms}

/* ===== 5 ledger (paper, act II): stations as cloth rows on the cutting table ===== */
.lb-ledger{background:var(--lb-paper);color:var(--lb-ink);padding:56px 0 56px}
.lb-ledger__grid{display:grid;grid-template-columns:minmax(250px,23%) minmax(0,1fr);gap:48px;align-items:start}
.lb-ledger__mini{position:sticky;top:24px}
.lb-ledger__pin{padding:16px;border:1px solid #25302e33;background:#fffdf8}
.lb-ledger__cap{font:12px var(--lb-mono)!important;color:var(--lb-muted);margin:6px 0 0}
.lb-ledger h2{max-width:22ch}
/* Keep each dropping word inside its line box. Shared clip margins otherwise let
   the second line paint over the first before the entrance settles. */
.lb-ledger #lb-ledger-title .m-w{overflow:hidden;overflow-clip-margin:0px;padding-block:0;margin-block:0}
.lb-seg-ctl{border:0;margin:6px 0 10px;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:0}
.lb-seg-ctl legend{font:12px var(--lb-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--lb-muted);margin-bottom:6px;padding:0}
.lb-seg-ctl label{position:relative;cursor:pointer}
.lb-seg-ctl input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.lb-seg-ctl span{display:block;padding:8px 20px;border:1px solid var(--lb-forest);font:750 clamp(1.15rem,1.8vw,1.6rem)/1.2 var(--gft-font-display);letter-spacing:-.03em;color:var(--lb-forest);margin-left:-1px}
.lb-seg-ctl input:checked+span{background:var(--lb-night);color:var(--lb-paper)}
.lb-seg-ctl input:focus-visible+span{outline:3px solid #2c3e7a;outline-offset:2px}
.lb-ledger .lb-note{margin:0 0 12px}
.lb-ledger__table{position:relative;padding-right:200px}
.lb-table-scroll{overflow-x:auto}
.lb-ledger table{width:100%;border-collapse:collapse;font-size:14px}
.lb-ledger thead th{font:12px var(--lb-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--lb-muted);text-align:left;padding:6px 8px;border-bottom:2px solid #25302e}
.lb-ledger tbody tr{border-bottom:1px solid #25302e26;cursor:default}
.lb-ledger tbody tr.is-hot-row{background:#e2ebe6}
.lb-ledger tbody th{font:700 15px var(--lb-mono);text-align:left;padding:8px;white-space:nowrap}
.lb-ledger tbody tr[data-bott="1"] th{color:#8a5a12}
.lb-ledger td{padding:8px;vertical-align:middle;font-family:var(--lb-mono)}
.lb-ledger td.lb-lops{font:13px/1.45 var(--gft-font-display);min-width:180px}
.lb-lbar{width:40%;min-width:220px}
.lb-lbar__track{position:relative;display:flex;height:30px;background:linear-gradient(90deg,#25302e10 0 var(--t),transparent var(--t))}
.lb-hseg{flex:0 0 var(--w);display:grid;place-items:center;background:var(--c) repeating-linear-gradient(90deg,#072d2b14 0 1px,transparent 1px 4px);background-blend-mode:multiply;border:1px solid #072d2b;margin-left:-1px;font:700 12px var(--lb-mono);color:#072d2b;overflow:hidden}
.lb-hseg.is-hot{outline:3px solid #072d2b;outline-offset:-3px}
.lb-lbar__idle{flex:0 0 var(--w);position:relative;overflow:clip;border:1px dashed #25302e80;border-left:0}
.lb-lbar__idle::before{content:'';position:absolute;inset:0 -14px 0 -14px;background:repeating-linear-gradient(135deg,#25302e59 0 1px,transparent 1px 7px)}
.lb-lbar__takt{position:absolute;top:-6px;bottom:-6px;left:var(--t);border-left:2px dashed #a8691b}
.lb-ledger .lb-rowchip{position:absolute;top:0;right:0;width:186px;margin:0;display:grid;gap:2px;padding:8px 10px;background:var(--lb-night);color:var(--lb-paper);font:13px/1.4 var(--lb-mono);opacity:0;transition:opacity .2s linear,transform .35s var(--lb-out);pointer-events:none}
.lb-rowchip b{color:var(--lb-gold)}
.lb-rowchip[data-on]{opacity:1}
.lb-equation{display:grid;gap:4px;margin:18px 0 0;padding:14px 18px;border:1px solid #25302e33;background:#fffdf8;max-width:none!important}
.lb-equation .lb-eyebrow{color:var(--lb-muted)}
.lb-equation__eq{font:600 clamp(1.05rem,1.6vw,1.45rem)/1.4 var(--lb-mono);color:var(--lb-ink)}
.lb-equation__eq b{color:#7a4f10;display:inline-block}
/* lives: a sweep passes down the rows; the idle hatch drifts */
@keyframes lb-sweepdown{from{transform:translateY(-40px);opacity:0}10%{opacity:.9}90%{opacity:.9}to{transform:translateY(var(--sh,360px));opacity:0}}
@keyframes lb-hatch{from{transform:translateX(0)}to{transform:translateX(7px)}}
.lb-ledger__table::after{content:'';position:absolute;left:0;right:200px;top:30px;height:2px;background:linear-gradient(90deg,transparent,#a8691b,transparent);opacity:0;pointer-events:none}
:root[data-m-go] [data-m-live~=lb-sweep][data-m-on]::after{animation-name:lb-sweepdown;animation-duration:5.5s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:normal}
:root[data-m-go] [data-m-live~=lb-sweep][data-m-on] .lb-lbar__idle::before{animation-name:lb-hatch;animation-duration:2.8s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal}
/* entrance: wipe down from the seam, rows cascade 30 ms apart, each work bar grows from 0 by clip */
@keyframes lb-row{from{opacity:.25;transform:translateX(-18px)}to{opacity:1;transform:none}}
@keyframes lb-grow{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(-8px -8px -8px 0)}}
:root[data-m-go] .lb-ledger[data-m]:not([data-m-in]){clip-path:inset(-10% -10% 64% -10%);opacity:1;transform:none}
:root[data-m-go] .lb-ledger[data-m][data-m-in]{animation-name:m-wipe-d;animation-duration:700ms}
:root[data-m-go] .lb-ledger:not([data-m-in]) [data-lbf-first] tbody tr{opacity:.25;transform:translateX(-18px)}
:root[data-m-go] .lb-ledger[data-m-in] [data-lbf-first] tbody tr{animation-name:lb-row;animation-duration:480ms;animation-timing-function:var(--lb-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:calc(var(--i,0) * 30ms + 160ms)}
:root[data-m-go] .lb-ledger:not([data-m-in]) [data-lbf-first] .lb-lbar__track{clip-path:inset(0 100% 0 0)}
:root[data-m-go] .lb-ledger[data-m-in] [data-lbf-first] .lb-lbar__track{animation-name:lb-grow;animation-duration:480ms;animation-timing-function:var(--lb-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:calc(var(--i,0) * 30ms + 220ms)}

/* ===== 6 compare (sand, act II): two cloths under one divider ===== */
.lb-cmp{background:var(--lb-sand);color:var(--lb-ink);padding:56px 0 64px;view-timeline-name:--lb-cmp;view-timeline-axis:block}
.lb-cmp__head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:48px;align-items:end}
.lb-cmp__head .lb-note{margin:0 0 16px}
.lb-cmp__box{margin-top:18px}
.lb-cmp__frame{position:relative}
.lb-cmp__layers{position:relative;aspect-ratio:1000/420;background:#f6f4ef;border:1px solid #25302e26}
.lb-cmp__la,.lb-cmp__lb{position:absolute;inset:0}
.lb-cmp__lb{clip-path:inset(0 0 0 var(--mw-p,50%))}
.lb-cmp__svg{display:block;width:100%;height:100%}
.lb-cmp__svg text{font:16px var(--lb-mono);fill:#25302e}
.lb-cmp-base{stroke:#25302e;stroke-width:1.5;fill:none}
.lb-cmp-a{fill:#25302e0d;stroke:#25302e;stroke-width:1.6;stroke-dasharray:6 5}
.lb-cmp-b{stroke:#072d2b;stroke-width:1.2}
.lb-cmp-takt{stroke:#a8691b;stroke-width:2;stroke-dasharray:7 6;fill:none}
.lb-cmp-takt--a{stroke:#25302e;stroke-opacity:.6}
.lb-cmp-ag{transform-box:fill-box;transform-origin:50% 100%}
.lb-cmp__div{position:absolute;left:0;top:0;width:100%;aspect-ratio:1000/420;transform:translateX(var(--mw-p,50%));pointer-events:none;z-index:2}
.lb-cmp__line{position:absolute;left:-1px;top:0;bottom:0;width:2px;background:var(--lb-night)}
.lb-cmp__handle{position:absolute;left:-22px;top:calc(50% - 22px);width:44px;height:44px;border-radius:50%;background:var(--lb-night);box-shadow:0 0 0 4px #f6f4ef}
.lb-cmp__handle::after{content:'⟷';position:absolute;inset:0;display:grid;place-items:center;color:var(--lb-paper);font:700 16px/1 var(--gft-font-display)}
.lb-cmp__tag{position:absolute;bottom:10px;font:700 14px var(--lb-mono);padding:2px 8px;background:var(--lb-night);color:var(--lb-paper)}
.lb-cmp__tag--a{right:10px}
.lb-cmp__tag--b{left:10px}
.lb-cmp__range{position:absolute;left:0;top:0;width:100%;aspect-ratio:1000/420;height:auto;margin:0;opacity:0;cursor:ew-resize;z-index:3}
.lb-cmp__frame:has(.lb-cmp__range:focus-visible) .lb-cmp__handle{outline:3px solid #2c3e7a;outline-offset:3px}
.lb-cmp__area .lb-deltas{position:absolute;left:14px;right:14px;top:12px;width:auto;margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;transform:none;pointer-events:none;z-index:4}
.lb-delta{transform:none;display:grid;grid-template-columns:auto auto;gap:0 10px;align-items:baseline;padding:6px 12px;background:#f6f4ef;border:1px solid #25302e;box-shadow:0 2px 0 #25302e1a;font:12.5px var(--lb-mono);white-space:nowrap}
.lb-delta span{grid-column:1/-1;text-transform:uppercase;letter-spacing:.06em;color:var(--lb-muted)}
.lb-delta b{font-weight:600}
.lb-delta i{font-style:normal;color:#1d5d3f}
.lb-delta--up i{color:#7a4f10}
.lb-cmp__caps{display:flex;justify-content:space-between;gap:20px;margin:8px 0 0!important;font:13px var(--lb-mono)!important;color:var(--lb-muted);max-width:none!important}
.lb-cmp__caps b{color:var(--lb-ink)}
.lb-spec{margin-top:10px}
.lb-spec summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:650;font-size:14px}
.lb-spec table{border-collapse:collapse;font-size:14px;min-width:520px}
.lb-spec caption{text-align:left;font-size:13px;color:var(--lb-muted);padding:4px 0}
.lb-spec :is(th,td){padding:6px 10px;border-bottom:1px solid #25302e22;text-align:left}
.lb-cmp__toggle{display:none;gap:6px;margin-top:10px}
.lb-cmp__ctl{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end;margin-top:22px}
.lb-bscrub{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;align-items:center}
.lb-bscrub label{grid-column:1/-1;font:650 14px var(--gft-font-display)}
.lb-bscrub label small{display:block;font:12px var(--lb-mono);color:var(--lb-muted);font-weight:400}
.lb-bscrub input{accent-color:var(--lb-forest)!important}
.lb-bscrub output{font:600 18px var(--lb-mono);min-width:3ch}
.lb-empty{font-size:15px;padding:24px 0}
@keyframes lb-hbreathe{from{transform:scale(1)}to{transform:scale(1.1)}}
:root[data-m-go] .lb-cmp__handle[data-m-live~=breathe][data-m-on]{animation-name:lb-hbreathe;animation-duration:2.4s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
/* entrance: reed. The divider sweeps across once like a reed and parks at the centre */
@keyframes lb-reedsweep{0%{transform:translateX(3%)}55%{transform:translateX(96%)}}
@keyframes lb-reedclip{0%{clip-path:inset(0 0 0 3%)}55%{clip-path:inset(0 0 0 96%)}}
:root[data-m-go] .lb-cmp:not([data-m-in]) [data-lbf-first] .lb-cmp__div{transform:translateX(3%)}
:root[data-m-go] .lb-cmp:not([data-m-in]) [data-lbf-first] .lb-cmp__lb{clip-path:inset(0 0 0 3%)}
:root[data-m-go] .lb-cmp[data-m-in] [data-lbf-first] .lb-cmp__div{animation-name:lb-reedsweep;animation-duration:880ms;animation-timing-function:cubic-bezier(.5,0,.3,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .lb-cmp[data-m-in] [data-lbf-first] .lb-cmp__lb{animation-name:lb-reedclip;animation-duration:880ms;animation-timing-function:cubic-bezier(.5,0,.3,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}

/* ===== 7 interlude (night, full bleed, opens act III): one long thread ===== */
.lb-int{background:var(--lb-night);color:var(--lb-paper);padding:72px 0 0;overflow:clip}
.lb-int__bg{position:absolute;inset:0;z-index:-1;overflow:clip;pointer-events:none}
.lb-int__drift{position:absolute;inset:-4% -6%;overflow-anchor:none}
.lb-int__drift svg{width:100%;height:100%}
.lb-int__drift rect{fill:#0e4d4a;opacity:.42}
.lb-int__drift path{stroke:#6bb68f;stroke-opacity:.12;stroke-width:1.5}
.lb-int__head h2{font-size:clamp(2.6rem,5.2vw,5.4rem);max-width:15ch;color:var(--lb-paper)}
.lb-int__lead{font-size:clamp(1.05rem,1.4vw,1.3rem)!important;color:var(--lb-lt);max-width:56ch!important}
.lb-int__lead b{color:var(--lb-gold);display:inline-block}
.lb-int__thread{position:relative;margin-top:22px}
.lb-int__h{width:100%;overflow:visible}
.lb-int__v{display:none}
.lb-th{display:block;width:100%;height:auto;overflow:visible}
.lb-th text{font:20px var(--gft-font-display);fill:var(--lb-lt)}
.lb-th-w{fill:none;stroke-width:22;transition:opacity .3s}
.lb-th-w--knot{stroke:#cfe0d6}
.lb-th-i{fill:none;stroke:var(--lb-gold);stroke-width:6;stroke-linecap:round;transition:opacity .3s,stroke-width .3s;transform-box:fill-box;transform-origin:50% 0}
.lb-th-k{fill:var(--lb-night);stroke:var(--lb-paper);stroke-width:2}
.lb-th .lb-th-s{font:600 18px var(--lb-mono);fill:var(--lb-paper)}
.lb-th-l path{stroke:#9fb3aa;stroke-width:7;stroke-dasharray:12 9;fill:none}
.lb-th .lb-th-lm{font:16px var(--lb-mono);fill:var(--lb-ltm)}
.lb-th-o path{stroke:var(--lb-ochre);stroke-width:3}
.lb-th-o text{font:16px var(--lb-mono)!important;fill:var(--lb-gold)!important}
.lb-th-arrow{fill:none;stroke:#9fb3aa;stroke-width:3}
.lb-th-l,.lb-th-o{transition:opacity .3s}
.lb-int__thread:is([data-sel=idle],[data-sel=work],[data-sel=over],[data-sel=avail],[data-sel=perf],[data-sel=qual],[data-sel=bought]) :is(.lb-th-w,.lb-th-i,.lb-th-l,.lb-th-o){opacity:.35}
.lb-int__thread[data-sel=idle] .lb-th-i,.lb-int__thread[data-sel=work] .lb-th-w,.lb-int__thread[data-sel=over] .lb-th-o,.lb-int__thread[data-sel=bought] :is(.lb-th-w,.lb-th-i),
.lb-int__thread[data-sel=avail] .lb-th-l[data-seg=avail],.lb-int__thread[data-sel=perf] .lb-th-l[data-seg=perf],.lb-int__thread[data-sel=qual] .lb-th-l[data-seg=qual]{opacity:1}
.lb-int__thread[data-sel=idle] .lb-th-i{stroke-width:7}
.lb-int__flow{position:absolute;left:0;top:0;width:100%;height:auto;pointer-events:none}
.lb-int__read{margin-top:6px!important}
.lb-int__readline{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:4px 18px;align-items:baseline;margin:0;padding:12px 16px;border:1px solid #6bb68f4d;background:#05302de6;max-width:none!important;font-size:15px!important}
.lb-int__readline [data-o=n]{font-weight:700}
.lb-int__readline [data-o=v]{font:600 18px var(--lb-mono);color:var(--lb-gold)}
.lb-int__readline [data-o=t]{color:var(--lb-lt)}
.lb-int__ctl{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,30%);gap:28px;align-items:start;margin-top:14px}
.lb-int__segs{display:flex;flex-wrap:wrap;gap:8px}
.lb-int__segs button{display:grid;gap:0;text-align:left;padding:8px 12px}
.lb-int__segs button span{font:12px var(--lb-mono);color:var(--lb-ltm);text-transform:uppercase;letter-spacing:.05em}
.lb-int__segs button b{font:600 15px var(--lb-mono);color:var(--lb-paper)}
.lb-int__segs button[aria-pressed=true]{background:var(--lb-gold);border-color:var(--lb-gold)}
.lb-int__segs button[aria-pressed=true] :is(span,b){color:#1b1204}
.lb-int__oee{font-size:14px!important;color:var(--lb-lt);margin:0}
.lb-int__oee a{color:var(--lb-gold);font-weight:650}
.lb-int .lb-band{margin-top:26px}
.lb-int .lb-band__cap{color:var(--lb-ltm)}
/* lives: the backdrop drifts, the slack loops sway */
@keyframes lb-drift{from{transform:translate3d(-1.5%,0,0)}to{transform:translate3d(1.5%,-1%,0)}}
@keyframes lb-loop{from{transform:rotate(-4deg)}to{transform:rotate(4deg)}}
:root[data-m-go] [data-m-live~=lb-drift][data-m-on]{animation-name:lb-drift;animation-duration:16s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
:root[data-m-go] [data-m-live~=lb-loops][data-m-on] .lb-th-i{animation-name:lb-loop;animation-duration:3.6s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;animation-delay:calc(var(--i,0) * -.45s)}
/* entrance: iris from the bottleneck, then the thread draws left to right */
:root[data-m-go] .lb-int:not([data-m-in]) .lb-int__h{clip-path:inset(0 70% 0 0)}
:root[data-m-go] .lb-int[data-m-in] .lb-int__h{animation-name:lb-lay;animation-duration:560ms;animation-timing-function:var(--lb-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:300ms}

/* ===== 8 reading (deep): stacks under a diagnostic lens, four steps ===== */
.lb-rd{background:var(--lb-deep);color:var(--lb-paper);view-timeline-name:--lb-rd;view-timeline-axis:block;overflow-anchor:none}
.lb-rd__steps{position:relative}
.lb-rd__stage{position:sticky;top:0;height:100svh;min-height:600px;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;padding:26px var(--lb-gut) 14px;z-index:0;isolation:isolate;overflow:clip;overflow-anchor:none;background:var(--lb-deep)}
.lb-rd__head{display:grid;gap:6px;max-width:66%}
.lb-rd__head .lb-kick{margin:0}
.lb-rd h2{font-size:clamp(1.9rem,2.9vw,3rem);margin:0;color:var(--lb-paper);max-width:17ch}
.lb-rd__chips{border:0;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.lb-rd__chips label{position:relative;cursor:pointer}
.lb-rd__chips input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.lb-rd__chips span{display:block;padding:8px 16px;border:1px solid #6bb68f99;font:750 clamp(1rem,1.5vw,1.4rem)/1.25 var(--gft-font-display);letter-spacing:-.02em;color:var(--lb-lt)}
.lb-rd__chips input:checked+span{background:var(--lb-sage);color:var(--lb-night);border-color:var(--lb-sage)}
.lb-rd__chips input:focus-visible+span{outline:3px solid var(--lb-gold);outline-offset:2px}
.lb-rd__read{display:grid;margin:14px 0 0;max-width:62%}
.lb-rd__read p{grid-area:1/1;margin:0;font:600 clamp(1rem,1.4vw,1.25rem)/1.4 var(--lb-mono);color:var(--lb-paper);opacity:0;transform:translateY(.3em);transition:opacity .22s linear,transform .4s var(--lb-out);max-width:none}
.lb-rd__read b{color:var(--lb-gold);display:inline-block}
.lb-rd__steps:not([data-step]) .lb-rd__read [data-rs="3"],.lb-rd__steps[data-step="0"] [data-rs="0"],.lb-rd__steps[data-step="1"] [data-rs="1"],.lb-rd__steps[data-step="2"] [data-rs="2"],.lb-rd__steps[data-step="3"] [data-rs="3"]{opacity:1;transform:none;transition-delay:.2s}
.lb-rd__eq{display:inline-block;font-size:.92em}
.lb-rd__steps[data-step="3"] .lb-rd__eq{animation-name:lb-write;animation-duration:900ms;animation-timing-function:steps(18,end);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:.25s}
@keyframes lb-write{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 -2% 0 0)}}
.lb-rd__plot{min-height:0;position:relative;max-width:68%}
.lb-rd__svg{display:block;width:100%;height:100%;overflow:visible}
.lb-rd__svg text{font:16px var(--lb-mono);fill:var(--lb-lt)}
.lb-rd-hit{fill:transparent}
.lb-rd-base{stroke:#b4d4c5;stroke-opacity:.55;stroke-width:2;fill:none}
.lb-rd-bar{transform-box:fill-box;transform-origin:50% 100%;transition:transform .5s var(--lb-out)}
.lb-rd-takt{stroke:var(--lb-gold);stroke-width:2.5;stroke-dasharray:8 7;fill:none;transition:opacity .4s}
.lb-rd__svg .lb-rd-tt{fill:var(--lb-gold)}
.lb-rd-cyc{stroke:var(--lb-sage);stroke-width:2.5;fill:none;transform-box:fill-box;transform-origin:0 50%;transition:transform .7s var(--lb-out) .15s,opacity .3s}
.lb-rd__svg .lb-rd-ct{fill:var(--lb-sage)}
.lb-rd-chev{fill:none;stroke:var(--lb-gold);stroke-width:3;transform-box:fill-box;transform-origin:50% 50%}
.lb-rd-tok{fill:var(--lb-sage);stroke:var(--lb-sage);stroke-width:2;transform-box:fill-box;transform-origin:50% 50%;transition:transform .5s var(--lb-out),opacity .3s;transition-delay:calc(var(--i,0) * 40ms)}
.lb-rd-tok--open{fill:none;stroke:var(--lb-gold);stroke-dasharray:4 3}
.lb-rd-gap{stroke:var(--lb-gold);stroke-opacity:.6;transition:opacity .4s}
.lb-rd-overband{fill:#c98a2b14;stroke:var(--lb-ochre);stroke-opacity:.5;stroke-dasharray:4 4;transition:opacity .4s}
.lb-rd__svg .lb-rd-ot{font-size:14px;fill:var(--lb-gold);transition:opacity .4s}
.lb-rd-lens{transform:translateX(var(--lx,0px));transition:transform .55s var(--lb-out),opacity .3s}
.lb-rd-lens circle{fill:#fff3dc0f;stroke:var(--lb-paper);stroke-width:2.5;transform-box:fill-box;transform-origin:50% 50%}
.lb-rd-leader{fill:none;stroke:var(--lb-paper);stroke-width:1.5}
.lb-rd__svg .lb-rd-lt{fill:var(--lb-paper);font-weight:600}
.lb-rd__svg .lb-rd-lv{fill:var(--lb-gold)}
.lb-rd-bar.is-scan .lb-seg{stroke:#fff;stroke-width:2.5}
.lb-rd__scan{font:13px/1.5 var(--lb-mono)!important;color:var(--lb-ltm);margin:4px 0 0;max-width:62%!important}
/* the four states (no step attribute: everything composed) */
.lb-rd__steps[data-step="0"] .lb-rd-bar[data-bott="1"]{transform:translateY(-14px)}
.lb-rd__steps[data-step]:not([data-step="1"]) .lb-rd-tok{opacity:0;transform:translateY(-22px)}
.lb-rd__steps[data-step]:not([data-step="2"]) .lb-rd-cyc{transform:scaleX(0)}
.lb-rd__steps[data-step]:not([data-step="2"]) .lb-rd-ct{opacity:0}
.lb-rd__steps[data-step="2"] .lb-rd-takt{opacity:.35}
.lb-rd__steps[data-step]:not([data-step="3"]) :is(.lb-rd-gap,.lb-rd-overband,.lb-rd-ot){opacity:0}
.lb-rd__steps:is([data-step="1"],[data-step="3"]) .lb-rd-lens{opacity:0}
.lb-rd__steps[data-step]:not([data-step="0"]) .lb-rd-chev{opacity:.35}
.lb-rd__track{position:relative;z-index:1;margin-top:-100svh;pointer-events:none}
.lb-rd__track>article{min-height:96svh;padding:0 var(--lb-gut);display:grid;align-content:center;justify-items:end}
.lb-rd__track>article:first-child{align-content:end;padding-bottom:12svh}
.lb-rd__track>article:last-child{min-height:120svh}
.lb-rd .mw-steps__track>*::before,.lb-rd .mw-steps__track>*::after{display:none}
.lb-rd__card{pointer-events:auto;width:min(360px,27vw);background:#072d2bf2;border:1px solid #6bb68f59;border-left:3px solid var(--lb-gold);padding:20px 22px}
.lb-rd__card p{font-size:16px!important;line-height:1.6!important;color:var(--lb-lt)}
.lb-rd__card h3{color:var(--lb-paper)}
.lb-rd__card .lb-eyebrow{color:#b9dcc8}
@keyframes lb-chev{from{transform:translateY(0);opacity:.7}to{transform:translateY(-5px);opacity:1}}
:root[data-m-go] .lb-rd__plot[data-m-on] .lb-rd-chev{animation-name:lb-chev;animation-duration:1.4s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
/* entrance: weft. Stacks enter from alternate sides, then the lens lands on the bottleneck */
@keyframes lb-from-l{from{opacity:.25;transform:translateX(-70px)}to{opacity:1;transform:none}}
@keyframes lb-from-r{from{opacity:.25;transform:translateX(70px)}to{opacity:1;transform:none}}
@keyframes lb-lens{from{opacity:0;transform:scale(1.7)}to{opacity:1;transform:none}}
:root[data-m-go] .lb-rd:not([data-m-in]) [data-lbf-first] .lb-rd-bar:nth-child(odd){opacity:.25;transform:translateX(-70px)}
:root[data-m-go] .lb-rd:not([data-m-in]) [data-lbf-first] .lb-rd-bar:nth-child(even){opacity:.25;transform:translateX(70px)}
:root[data-m-go] .lb-rd[data-m-in] [data-lbf-first] .lb-rd-bar:nth-child(odd){animation-name:lb-from-l;animation-duration:600ms;animation-timing-function:var(--lb-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:calc(var(--i,0) * 22ms)}
:root[data-m-go] .lb-rd[data-m-in] [data-lbf-first] .lb-rd-bar:nth-child(even){animation-name:lb-from-r;animation-duration:600ms;animation-timing-function:var(--lb-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:calc(var(--i,0) * 22ms)}
:root[data-m-go] .lb-rd[data-m-in] [data-lbf-first] .lb-rd-lens circle{animation-name:lb-lens;animation-duration:380ms;animation-timing-function:var(--lb-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:480ms}

/* ===== 9 provenance (forest): a pinned map lit by the register and the sources ===== */
.lb-pv{background:var(--lb-forest);color:var(--lb-paper);padding:64px 0 72px}
.lb-pv__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:56px;align-items:start}
.lb-pv__mapcol{position:sticky;top:24px;display:grid;gap:14px}
.lb-pv__pin{position:relative;padding:16px 18px;background:#072d2b;border:1px solid #6bb68f4d}
.lb-pv__tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-bottom:12px}
.lb-pv__tabs button{min-height:44px;padding:4px 6px;display:grid;justify-items:center;align-content:center;gap:1px;border:1px solid #6bb68f66;background:#052422;color:var(--lb-lt);font:12px/1.15 var(--lb-mono)}
.lb-pv__tabs button span{font-weight:700;color:var(--lb-gold)}
.lb-pv__tabs button em{font-style:normal;font-size:12px}
.lb-pv__tabs button[aria-pressed=true]{background:var(--lb-gold);border-color:var(--lb-gold);color:#1b1204}
.lb-pv__tabs button[aria-pressed=true] :is(span,em){color:#1b1204}
.lb-pv__out{min-height:4.2em}
.lb-pv__out .lb-eyebrow{color:#b9dcc8}
.lb-pv__cite{margin:2px 0 4px!important;font:700 14px/1.35 var(--gft-font-display)!important;color:var(--lb-gold)}
.lb-pv__use{margin:0!important;font-size:15px!important;color:var(--lb-paper)}
.lb-pv__map svg{display:block;width:100%;height:auto}
.lb-pm text{font:16px var(--lb-mono);fill:var(--lb-lt)}
.lb-pm-base{stroke:#b4d4c5;stroke-opacity:.5;fill:none}
.lb-pm-p{transition:opacity .35s,filter .35s;opacity:.4;transform-box:fill-box;transform-origin:50% 100%}
.lb-pm-bar{fill:none;stroke:#cfe0d6;stroke-width:1.5}
.lb-pm-seg{stroke:#072d2b}
.lb-pm-takt{stroke:var(--lb-gold);stroke-width:2.5;stroke-dasharray:7 6;fill:none}
.lb-pm-ops circle{fill:none;stroke:var(--lb-sage);stroke-width:2}
.lb-pm-ops path{stroke:var(--lb-sage)}
.lb-pm-oee rect{fill:#9fb3aa22;stroke:#9fb3aa;stroke-dasharray:5 4}
.lb-pv__pin[data-part=takt] [data-part=takt],.lb-pv__pin[data-part=bars] :is([data-part=bars],[data-part=segs]),.lb-pv__pin[data-part=assign] [data-part=assign],.lb-pv__pin[data-part=oee] [data-part=oee],.lb-pv__pin[data-part=segs] [data-part=segs],.lb-pv__pin[data-part=ops] [data-part=ops]{opacity:1;filter:drop-shadow(0 0 6px #e0b98999)}
.lb-pv__pin[data-part=bars] [data-part=bars]{opacity:1}
.lb-pv__where{font:13px/1.5 var(--lb-mono)!important;color:var(--lb-gold);margin:6px 0 0!important;max-width:none!important}
.lb-pv__thread{position:absolute;left:100%;top:calc(46svh - 24px);width:58px;height:2px;background:var(--lb-gold);transform-origin:0 50%;pointer-events:none}
.lb-headline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.lb-headline>div{display:grid;gap:2px;padding:10px 12px;background:#072d2b;border:1px solid #6bb68f40;transition:border-color .2s,background-color .2s}
.lb-headline>div.is-lit{border-color:var(--lb-gold);background:#0a3d3a}
.lb-headline span{font:12px var(--lb-mono);color:var(--lb-ltm);text-transform:uppercase;letter-spacing:.05em}
.lb-headline b{font:800 clamp(1.4rem,2vw,1.9rem)/1.1 var(--gft-font-display);letter-spacing:-.03em;color:var(--lb-paper);display:block}
.lb-kchip{font:12px var(--lb-mono);font-style:normal;color:var(--lb-ltm)}
.lb-kchip[data-kind=up]{color:var(--lb-gold)}
.lb-kchip[data-kind=down]{color:#9fe0bd}
.lb-pv h2{color:var(--lb-paper);max-width:17ch}
.lb-pv__head .lb-note{margin:6px 0 0}
.lb-seg-ctl--dark legend{color:var(--lb-ltm)}
.lb-seg-ctl--dark span{border-color:#6bb68f99;color:var(--lb-lt);font-size:15px;font-weight:650;letter-spacing:0;padding:10px 16px}
.lb-seg-ctl--dark input:checked+span{background:var(--lb-sage);color:var(--lb-night)}
.lb-reg{margin-top:24px}
.lb-asm{width:100%;border-collapse:collapse}
.lb-asm tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 16px;padding:12px 14px;border-top:1px solid #6bb68f40;position:relative;transition:background-color .2s}
.lb-asm tbody tr.is-lit-row{background:#072d2b}
.lb-asm tbody th{text-align:left;font:700 15px var(--gft-font-display);padding:0}
.lb-asm td{padding:0;font-size:14.5px;line-height:1.5;color:var(--lb-lt)}
.lb-asm .lb-reg__v{display:flex;gap:10px;align-items:baseline;justify-content:flex-end;flex-wrap:wrap}
.lb-asm .lb-reg__v b{font:600 15px var(--lb-mono);color:var(--lb-gold);display:inline-block}
.lb-asm :is(.lb-reg__b,.lb-reg__r){grid-column:1/-1}
.lb-asm .lb-reg__r{color:var(--lb-lt)}
.lb-edit{font-size:13px;color:var(--lb-paper);min-height:24px}
.lb-badge{font:12px var(--lb-mono);font-style:normal;padding:1px 6px;background:var(--lb-gold);color:#1b1204;opacity:0;transition:opacity .2s}
.lb-badge[data-on]{opacity:1}
.lb-reg__in{view-timeline-name:--lb-in;view-timeline-axis:block}
.lb-reg__in>th::before{content:'';position:absolute;right:100%;top:22px;width:56px;height:2px;background:var(--lb-gold);transform-origin:0 50%}
.lb-srcs{margin-top:36px}
.lb-srcs__t{color:var(--lb-paper)}
.lb-cards{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;align-items:start}
.lb-card{padding:14px 16px;border:1px solid #6bb68f59;background:#083b38;display:grid;gap:8px;transition:border-color .2s,background-color .2s}
.lb-card:nth-child(even){margin-top:14px}
.lb-card[data-on]{border-color:var(--lb-gold);background:#072d2b;box-shadow:inset 3px 0 0 var(--lb-gold)}
.lb-card__top{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:start}
.lb-card__i{font:700 20px/1 var(--lb-mono);color:var(--lb-gold)}
.lb-card__t{display:grid;gap:3px;font-size:15px;line-height:1.35}
.lb-card__t a,.lb-card__t strong{font-weight:700;color:var(--lb-paper)}
.lb-card__by{font:12.5px/1.4 var(--lb-mono);color:var(--lb-lt)}
.lb-card__use{margin:0!important;font-size:14px!important;line-height:1.5!important;color:var(--lb-paper)}
.lb-card__act{margin:0}
.lb-card__inspect{width:100%;min-height:44px;padding:6px 10px;text-align:left;font:600 12px/1.25 var(--lb-mono)!important;color:var(--lb-gold)!important;border-color:#e0b98966!important;background:#052422!important}
.lb-card[data-on] .lb-card__inspect{background:var(--lb-gold)!important;color:#1b1204!important;border-color:var(--lb-gold)!important}
.lb-card__more{margin:0}
.lb-card__more summary{cursor:pointer;min-height:40px;display:flex;align-items:center;font:600 13px var(--gft-font-display);color:var(--lb-gold)}
.lb-card__body p{font-size:14px!important;color:var(--lb-lt)}
.lb-card__body h4{color:var(--lb-paper)}
.lb-card__body a{color:var(--lb-paper)}
/* entrance: knot. Map nodes knot in, tiles deal 60 ms apart */
@keyframes lb-knot{from{opacity:.2;transform:scale(.82) rotate(-3deg)}to{opacity:1;transform:none}}
@keyframes lb-deal{from{opacity:.25;transform:translateY(-16px) rotate(-2deg)}to{opacity:1;transform:none}}
:root[data-m-go] .lb-pv:not([data-m-in]) [data-lbf-first] svg>g{transform:scale(.82) rotate(-3deg)}
:root[data-m-go] .lb-pv[data-m-in] [data-lbf-first] svg>g{animation-name:lb-knot;animation-duration:560ms;animation-timing-function:var(--lb-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .lb-pv[data-m-in] [data-lbf-first] svg>g:nth-of-type(2){animation-delay:60ms}
:root[data-m-go] .lb-pv[data-m-in] [data-lbf-first] svg>g:nth-of-type(3){animation-delay:120ms}
:root[data-m-go] .lb-pv[data-m-in] [data-lbf-first] svg>g:nth-of-type(4){animation-delay:180ms}
:root[data-m-go] .lb-pv[data-m-in] [data-lbf-first] svg>g:nth-of-type(n+5){animation-delay:240ms}
:root[data-m-go] .lb-pv:not([data-m-in]) .lb-headline>div{opacity:.25;transform:translateY(-16px) rotate(-2deg)}
:root[data-m-go] .lb-pv[data-m-in] .lb-headline>div{animation-name:lb-deal;animation-duration:520ms;animation-timing-function:var(--lb-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:calc(var(--k,0) * 60ms + 200ms)}
:root[data-m-go] .lb-pv:not([data-m-in]) :is(.lb-asm tbody tr,.lb-card){opacity:.3;transform:translateY(14px)}
:root[data-m-go] .lb-pv[data-m-in] .lb-asm tbody tr{animation-name:lb-rise;animation-duration:480ms;animation-timing-function:var(--lb-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:calc(min(var(--r,0),5) * 35ms + 80ms)}
:root[data-m-go] .lb-pv[data-m-in] .lb-card{animation-name:lb-rise;animation-duration:520ms;animation-timing-function:var(--lb-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:calc(min(var(--k,0),5) * 40ms + 120ms)}

/* ===== 10 closing (night): the floor loom ===== */
.lb-fl{background:var(--lb-night);color:var(--lb-paper);min-height:100svh;display:grid;grid-template-rows:auto 1fr auto;padding:44px 0 0;overflow:clip;view-timeline-name:--lb-fl;view-timeline-axis:block}
.lb-fl__lanes{position:absolute;left:0;right:0;top:10px;height:34px;pointer-events:none;overflow-anchor:none}
.lb-fl__lanes i{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#e0b98999 20%,#e0b98999 80%,transparent)}
.lb-fl__lanes i:nth-child(1){top:0}.lb-fl__lanes i:nth-child(2){top:10px}.lb-fl__lanes i:nth-child(3){top:20px}.lb-fl__lanes i:nth-child(4){top:30px}
.lb-fl__grid{display:grid;grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);gap:48px;align-items:start}
.lb-fl h2{color:var(--lb-paper)}
.lb-fl__lede{color:var(--lb-lt);font-size:16px!important}
.lb-picks{border:0;margin:14px 0 0;padding:0}
.lb-picks legend{font:12px var(--lb-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--lb-lt);margin-bottom:6px;padding:0}
.lb-picks label{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:0 10px;align-items:center;min-height:56px;border-top:1px solid #6bb68f33;cursor:pointer;font-size:15.5px;font-weight:600}
.lb-picks label:last-child{border-bottom:1px solid #6bb68f33}
.lb-picks input{appearance:none;width:26px;height:26px;margin:0;border:2px solid var(--lb-sage);display:grid;place-items:center;cursor:pointer;background:transparent}
.lb-picks input:checked{background:var(--lb-sage)}
.lb-picks input:checked::after{content:'';width:8px;height:14px;border:solid var(--lb-night);border-width:0 3px 3px 0;transform:translateY(-2px) rotate(45deg)}
.lb-picks__lane{position:absolute;left:40px;right:0;bottom:-1px;height:3px;background:var(--lb-gold);transform-origin:0 50%;transform:scaleX(0);transition:transform .6s var(--lb-out)}
.lb-picks input:checked~.lb-picks__lane{transform:scaleX(1)}
.lb-picks__tag{font:600 12px/1 var(--lb-mono);font-style:normal;padding:4px 8px;border:1px solid #6bb68f66;color:var(--lb-ltm);background:#052422}
.lb-picks input:checked~.lb-picks__tag{background:var(--lb-gold);border-color:var(--lb-gold);color:#1b1204}
.lb-fl__qact{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.lb-fl__meter{height:6px;background:#6bb68f33;margin-top:14px;overflow:clip}
.lb-fl__meter i{display:block;height:100%;background:var(--lb-gold);transform-origin:0 50%;transform:scaleX(var(--m,0));transition:transform .6s var(--lb-out)}
.lb-fl__checks{font:600 14px var(--lb-mono)!important;color:var(--lb-gold);margin:8px 0 0!important}
.lb-fl__verdict p{margin:4px 0 0;font-size:16px!important;color:var(--lb-paper)}
.lb-fl__stage{display:grid;gap:10px}
.lb-fl__readbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:10px 14px;background:#05302d;border:1px solid #6bb68f4d}
.lb-fl__badge{font:700 12px/1.2 var(--lb-mono);text-transform:uppercase;letter-spacing:.08em;padding:4px 8px;background:var(--lb-gold);color:#1b1204}
.lb-fl__read{font:600 14.5px var(--lb-mono)!important;color:var(--lb-lt);margin:0!important}
.lb-fl__read b{color:var(--lb-gold);display:inline-block}
.lb-fl__loom svg{display:block;width:100%;height:auto;max-height:54svh;overflow:visible}
.lb-flsvg text{font:16px var(--lb-mono);fill:var(--lb-lt)}
.lb-flsvg .lb-fl-tt{fill:var(--lb-gold)}
.lb-flsvg .lb-fl-v{fill:var(--lb-paper);font-weight:600}
.lb-fl-frame rect{fill:none;stroke:#b4d4c5;stroke-opacity:.45;stroke-width:3}
.lb-fl-hed path{stroke:#b4d4c5;stroke-opacity:.16}
.lb-fl-base{stroke:#b4d4c5;stroke-opacity:.6;stroke-width:2;fill:none}
.lb-fl-reed{stroke:var(--lb-gold);stroke-width:2.5;stroke-dasharray:8 7;fill:none}
.lb-fl-st{transform:translateX(calc(var(--dx,0px) * var(--f,0)));transition:transform .75s var(--lb-out);transition-delay:calc(var(--i,0) * 24ms)}
.lb-fl-out{fill:url(#lb-flh);stroke:var(--lb-sage);stroke-width:1.6;stroke-dasharray:5 4;transition:opacity .5s}
.lb-fl-fill{transform-box:fill-box;transform-origin:50% 100%;transform:scaleY(calc(.38 + .62 * var(--f,0)));transition:transform .75s var(--lb-out)}
.lb-fl-fill rect{stroke:#072d2b;stroke-width:1}
.lb-fl-st[data-bott="1"] .lb-fl-out{stroke:var(--lb-gold)}
.lb-fl-vtick{opacity:0;transition:opacity .35s}
.lb-fl-vtick circle{fill:var(--lb-gold);stroke:#072d2b;stroke-width:1.5}
.lb-fl-vtick path{fill:none;stroke:#1b1204;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.lb-fl__loom[data-p0] .lb-fl-st:is([data-st="1"],[data-st="2"]) .lb-fl-vtick,.lb-fl__loom[data-p1] .lb-fl-st:is([data-st="3"],[data-st="4"]) .lb-fl-vtick,.lb-fl__loom[data-p2] .lb-fl-st:is([data-st="5"],[data-st="6"]) .lb-fl-vtick,.lb-fl__loom[data-p3] .lb-fl-st:is([data-st="7"],[data-st="8"]) .lb-fl-vtick{opacity:1}
.lb-fl-lane0{stroke:#b4d4c5;stroke-opacity:.3;stroke-dasharray:3 6;fill:none}
.lb-fl-pick{stroke:var(--lb-gold);stroke-width:3;fill:none;transform-box:fill-box;transform-origin:0 50%;transform:scaleX(0);transition:transform .6s var(--lb-out)}
.lb-fl__loom[data-p0] [data-k="0"] .lb-fl-pick,.lb-fl__loom[data-p1] [data-k="1"] .lb-fl-pick,.lb-fl__loom[data-p2] [data-k="2"] .lb-fl-pick,.lb-fl__loom[data-p3] [data-k="3"] .lb-fl-pick{transform:scaleX(1)}
.lb-fl-ltick{opacity:.55;transition:opacity .35s}
.lb-fl-ltick rect{fill:#052422;stroke:#6bb68f66;stroke-width:1}
.lb-fl-ltick text{font:700 12px var(--lb-mono)!important;fill:var(--lb-ltm)!important}
.lb-fl__loom[data-p0] [data-k="0"] .lb-fl-ltick,.lb-fl__loom[data-p1] [data-k="1"] .lb-fl-ltick,.lb-fl__loom[data-p2] [data-k="2"] .lb-fl-ltick,.lb-fl__loom[data-p3] [data-k="3"] .lb-fl-ltick{opacity:1}
.lb-fl__loom[data-p0] [data-k="0"] .lb-fl-ltick rect,.lb-fl__loom[data-p1] [data-k="1"] .lb-fl-ltick rect,.lb-fl__loom[data-p2] [data-k="2"] .lb-fl-ltick rect,.lb-fl__loom[data-p3] [data-k="3"] .lb-fl-ltick rect{fill:var(--lb-gold);stroke:var(--lb-gold)}
.lb-fl__loom[data-p0] [data-k="0"] .lb-fl-ltick text,.lb-fl__loom[data-p1] [data-k="1"] .lb-fl-ltick text,.lb-fl__loom[data-p2] [data-k="2"] .lb-fl-ltick text,.lb-fl__loom[data-p3] [data-k="3"] .lb-fl-ltick text{fill:#1b1204!important}
.lb-fl-shut{fill:#fff3dc;opacity:0;transform-box:view-box;transform-origin:0 0}
.lb-fl-mark{fill:var(--lb-gold);transform-box:fill-box;transform-origin:50% 50%}
.lb-fl__loom[data-checks="4"] .lb-fl-out{opacity:0}
.lb-warn{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;padding:14px 16px;border:1px solid #e0b98966;border-left:3px solid var(--lb-gold);background:#05302d}
.lb-warn h3{font-size:16px;color:var(--lb-gold);letter-spacing:-.01em}
.lb-warn p{font-size:14px!important;line-height:1.55!important;color:var(--lb-lt);margin:0}
.lb-fl__cloth{position:relative;margin-top:36px;padding:34px 0 30px;background:#05302d;border-top:2px solid #6bb68f59;display:grid;grid-template-columns:minmax(0,1fr);gap:18px;view-timeline-name:--lb-cloth;view-timeline-axis:block;overflow-anchor:none}
.lb-fl__closehead{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,42%);gap:12px 36px;align-items:end}
.lb-fl .lb-fl__echo{position:static;margin:0!important;font:400 italic clamp(2.3rem,4.2vw,3.8rem)/.98 var(--gft-font-serif);color:var(--lb-paper);letter-spacing:-.03em}
.lb-fl__cap{width:auto;margin:0!important;font:13px/1.55 var(--lb-mono)!important;color:var(--lb-lt);max-width:none!important}
.lb-fl__strip{height:auto;position:relative;padding:16px 20px 10px;background:#072d2b;border:1px solid #6bb68f59}
.lb-bal{display:block;width:100%;height:auto;overflow:visible}
.lb-bal text{font-family:var(--lb-mono)}
.lb-bal-warp{stroke:#b4d4c5;stroke-opacity:.14;fill:none}
.lb-bal-id{font:700 13px var(--lb-mono);fill:#072d2b;pointer-events:none}
.lb-bal-grid{stroke:#b4d4c5;stroke-opacity:.14;fill:none}
.lb-bal-base{stroke:#b4d4c5;stroke-opacity:.6;stroke-width:2;fill:none}
.lb-bal-idle{fill:url(#lb-balh);stroke:#b4d4c5;stroke-opacity:.45;stroke-dasharray:4 3}
.lb-bal-seg{stroke:#072d2b;stroke-width:1.2}
.lb-bal-st[data-bott="1"] .lb-bal-seg{stroke:var(--lb-gold);stroke-width:1.8}
.lb-bal-fill{transform-box:fill-box;transform-origin:50% 100%;transform:scaleY(calc(var(--r,1) + (1 - var(--r,1)) * var(--bal,0) * .18));transition:transform .8s var(--lb-out);transition-delay:calc(var(--i,0) * 30ms)}
.lb-bal-v{font:600 15px var(--lb-mono);fill:var(--lb-paper)}
.lb-bal-s{font:700 16px var(--lb-mono);fill:var(--lb-lt)}
.lb-bal-st[data-bott="1"] .lb-bal-s{fill:var(--lb-gold)}
.lb-bal-t{stroke:var(--lb-gold);stroke-width:2.5;stroke-dasharray:8 7;vector-effect:non-scaling-stroke;fill:none}
.lb-bal-tt{font:600 14px var(--lb-mono);fill:var(--lb-gold);letter-spacing:.08em}
.lb-fl__closerun{display:grid;grid-template-columns:minmax(0,1.2fr) auto;gap:14px 28px;align-items:center;padding:12px 16px;background:#072d2b;border:1px solid #6bb68f40}
.lb-fl__scrub{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;align-items:center}
.lb-fl__scrub label{grid-column:1/-1;font:600 14px var(--gft-font-display);color:var(--lb-paper)}
.lb-fl__scrub label small{display:block;font:12px var(--lb-mono);color:var(--lb-lt);font-weight:400}
.lb-fl__scrub output{font:600 18px var(--lb-mono);color:var(--lb-gold);min-width:3ch;text-align:right}
.lb-fl__presets{display:flex;flex-wrap:wrap;gap:8px}
.lb-fl__selvedge{position:relative;width:min(1440px,calc(100% - 2 * var(--lb-gut)));margin:4px auto 0}
.lb-fl__selline{position:absolute;left:0;right:calc(-1 * var(--lb-gut) - 50vw);top:50%;height:3px;background:var(--lb-ochre);transform-origin:0 50%}
.lb-actions{position:relative;display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:0!important}
.lb-actions .gft-button{box-shadow:0 0 0 8px #05302d}
.lb-actions .lb-link{background:#05302d;padding:0 10px;color:var(--lb-paper)}
.lb-fl[data-locked] .lb-fl__echo{color:var(--lb-gold)}
/* lives: a ghost shuttle crosses the next unconfirmed pick lane every 5 s; the bottleneck takt mark breathes */
@keyframes lb-shut{0%{transform:translateX(0);opacity:0}6%{opacity:.9}40%{transform:translateX(660px);opacity:.9}46%,100%{transform:translateX(660px);opacity:0}}
@keyframes lb-mark{from{transform:scale(.8);opacity:.6}to{transform:scale(1.25);opacity:1}}
:root[data-m-go] [data-m-live~=lb-shuttle][data-m-on]:is([data-next="0"]) [data-k="0"] .lb-fl-shut,:root[data-m-go] [data-m-live~=lb-shuttle][data-m-on]:is([data-next="1"]) [data-k="1"] .lb-fl-shut,:root[data-m-go] [data-m-live~=lb-shuttle][data-m-on]:is([data-next="2"]) [data-k="2"] .lb-fl-shut,:root[data-m-go] [data-m-live~=lb-shuttle][data-m-on]:is([data-next="3"]) [data-k="3"] .lb-fl-shut{animation-name:lb-shut;animation-duration:5s;animation-timing-function:cubic-bezier(.45,0,.55,1);animation-iteration-count:infinite;animation-direction:normal}
:root[data-m-go] [data-m-live~=lb-shuttle][data-m-on] .lb-fl-mark{animation-name:lb-mark;animation-duration:1.6s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
/* entrance: selvedge-draw. Frame edges draw, then the stacks set into the heddles */
@keyframes lb-selv{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(-4% -4% -4% -4%)}}
@keyframes lb-set{from{opacity:.25;transform:translateY(-34px)}to{opacity:1;transform:none}}
:root[data-m-go] .lb-fl:not([data-m-in]) [data-lbf-first] .lb-fl-frame{clip-path:inset(0 0 0 70%)}
:root[data-m-go] .lb-fl[data-m-in] [data-lbf-first] .lb-fl-frame{animation-name:lb-selv;animation-duration:520ms;animation-timing-function:var(--lb-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .lb-fl:not([data-m-in]) [data-lbf-first] .lb-fl-stacks{opacity:.25;transform:translateY(-34px)}
:root[data-m-go] .lb-fl[data-m-in] [data-lbf-first] .lb-fl-stacks{animation-name:lb-set;animation-duration:520ms;animation-timing-function:var(--lb-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:300ms}
:root[data-m-go] .lb-fl:not([data-m-in]) .lb-picks label{opacity:.3;transform:translateY(14px)}
:root[data-m-go] .lb-fl[data-m-in] .lb-picks label{animation-name:lb-rise;animation-duration:520ms;animation-timing-function:var(--lb-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:calc(var(--k,0) * 50ms + 150ms)}

/* ===== the sections' own entrances are drawn by their parts; the block itself stays put (except iris and wipe) ===== */
:root[data-m-go] :is(.lb-bench,.lb-ops,.lb-ms,.lb-cmp,.lb-rd,.lb-pv,.lb-fl)[data-m]:not([data-m-in]){opacity:1;transform:none;clip-path:none}
:root[data-m-go] :is(.lb-bench,.lb-ops,.lb-ms,.lb-cmp,.lb-rd,.lb-pv,.lb-fl)[data-m][data-m-in]{animation-name:none}

/* ===== scroll-linked hand-overs (transform and opacity only, longhands, one per element) ===== */
@keyframes lb-press{to{transform:scale(.92) translateY(3%)}}
@keyframes lb-reeddown{to{transform:translateY(96px)}}
@keyframes lb-reedland{from{transform:translateY(-220px);opacity:.2}to{transform:none;opacity:.85}}
@keyframes lb-lie{to{transform:translateY(-8px) scale(.98)}}
@keyframes lb-unfold{from{transform:scaleY(.05)}to{transform:none}}
@keyframes lb-threadin{from{transform:scaleX(0)}to{transform:none}}
@keyframes lb-lanes{from{transform:translateY(-90px);opacity:.15}to{transform:none;opacity:1}}
@keyframes lb-clothrise{from{transform:translateY(22px) scaleY(.86);opacity:.72}to{transform:none;opacity:1}}
@supports (animation-timeline:view()){
 :root[data-m-go] .lb-sbstage{animation-name:lb-press;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--gft-splash;animation-range-start:exit 0%;animation-range-end:exit 85%}
 :root[data-m-go] .lb-lm-reedw{animation-name:lb-reeddown;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--gft-splash;animation-range-start:exit 0%;animation-range-end:exit 85%}
 :root[data-m-go] .lb-bench__reed{animation-name:lb-reedland;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--lb-bench;animation-range-start:entry 0%;animation-range-end:entry 60%}
 :root[data-m-go] .lb-band .lb-mo{animation-name:lb-morph;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--lb-band;animation-range-start:entry 30%;animation-range-end:cover 55%}
 :root[data-m-go] .lb-ms-turn{animation-name:lb-lie;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--lb-ms;animation-range-start:exit 0%;animation-range-end:exit 60%}
 :root[data-m-go] .lb-cmp-ag{animation-name:lb-unfold;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--lb-cmp;animation-range-start:entry 5%;animation-range-end:entry 75%}
 :root[data-m-go] .lb-reg__in>th::before{animation-name:lb-threadin;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--lb-in;animation-range-start:entry 0%;animation-range-end:cover 40%}
 :root[data-m-go] .lb-fl__lanes{animation-name:lb-lanes;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--lb-fl;animation-range-start:entry 0%;animation-range-end:entry 45%}
 :root[data-m-go] .lb-bal-st{transform-box:fill-box;transform-origin:50% 100%;animation-name:lb-clothrise;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--lb-cloth;animation-range-start:entry 5%;animation-range-end:cover 45%}
}

/* ===== tablets ===== */
@media (max-width:1100px){
 main{--lb-gut:28px}
 .lb-bench__grid{grid-template-columns:minmax(0,1fr);gap:24px}
 .lb-bench__right{position:static}
 .lb-exhibit{margin-right:0}.lb-exhibit__head,.lb-exhibit .lb-tip{padding-right:0}
 .lb-ops__grid{grid-template-columns:minmax(0,1fr) 300px;gap:28px}
 .lb-operation-head,.lb-operation{grid-template-columns:30px minmax(0,1.2fr) minmax(0,.8fr) 84px 92px 40px;gap:8px}
 .lb-ledger__grid{grid-template-columns:minmax(0,1fr)}.lb-ledger__mini{display:none}
 .lb-pv__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px}
 .lb-cards{grid-template-columns:minmax(0,1fr)}.lb-card:nth-child(even){margin-top:0}
 .lb-headline{grid-template-columns:repeat(2,minmax(0,1fr))}
 .lb-fl__grid{grid-template-columns:minmax(0,1fr);gap:28px}
 .lb-fl__closehead,.lb-fl__closerun{grid-template-columns:minmax(0,1fr)}
 .lb-int__ctl{grid-template-columns:minmax(0,1fr)}
 .lb-rd__plot{max-width:100%}
 .lb-rd__track>article{justify-items:stretch;align-content:end;padding-bottom:4svh}
 .lb-rd__track>article:first-child{padding-bottom:4svh}
 .lb-rd__card{width:auto;max-width:560px;justify-self:end}
}
@media (max-width:900px){
 .lb-int__h,.lb-int__flow{display:none}
 .lb-int__v{display:block;width:min(420px,100%);margin:0 auto}
 .lb-th--v text{font-size:15px}
 .lb-th--v .lb-th-s{font-size:15px}
 .lb-th--v .lb-th-w{stroke-width:12}
 .lb-th--v .lb-th-d{font:13px var(--lb-mono);fill:var(--lb-lt)}
 .lb-int__v{width:100%}
 .lb-int__read{position:sticky;bottom:0;z-index:2;padding:8px 0;background:var(--lb-night)}
 .lb-int__readline{grid-template-columns:auto 1fr;font-size:14px!important}
 .lb-int__readline [data-o=t]{grid-column:1/-1}
 :root[data-m-go] .lb-int:not([data-m-in]) .lb-int__h,:root[data-m-go] .lb-int[data-m-in] .lb-int__h{animation-name:none;clip-path:none}
 /* method: an opaque pinned band at the top, cards scroll beneath */
 .lb-ms__steps{display:block}
 .lb-ms__stage{height:46svh;min-height:350px;z-index:2;padding:12px 16px 8px;grid-template-rows:auto auto minmax(0,1fr);box-shadow:0 10px 18px -12px #000}
 .lb-ms__head{grid-template-columns:1fr}
 .lb-ms__head .lb-kick{display:none}
 .lb-ms .lb-ms__head h2{font-size:1.2rem;max-width:none;letter-spacing:-.03em}
 .lb-ms__rail{grid-template-columns:auto 1fr}
 .lb-ms__dots button{min-width:44px;padding:2px 4px}
 .lb-ms__dots button em{display:none}
 .lb-ms__disp{margin-top:6px}
 .lb-ms__big{font-size:1.7rem}
 .lb-ms__note{display:none}
 .lb-ms__svg text{font-size:34px}
 .lb-ms__svg :is(.lb-ms-gt,.lb-ms-v,.lb-ms-vbg,.lb-ms-cap,.lb-ms-id){display:none}
 .lb-ms__track{padding:0 16px}
 .lb-ms__track>article,.lb-ms__track>article:first-child{min-height:68svh;padding:6svh 0;align-content:start}
 .lb-ms__track>article:last-child{min-height:120svh}
 /* reading: a pinned band with the stacks and the four chips; panels scroll beneath */
 .lb-rd__stage{height:48svh;min-height:370px;padding:10px 16px 6px;grid-template-rows:auto auto minmax(0,1fr);z-index:2;box-shadow:0 10px 18px -12px #000}
 .lb-rd__head{max-width:none}
 .lb-rd__head .lb-kick{display:none}
 .lb-rd .lb-rd__head h2{font-size:1.2rem;max-width:none;letter-spacing:-.03em}
 .lb-rd__chips{justify-content:flex-start;gap:4px}
 .lb-rd__chips span{font-size:13px;padding:8px 10px;min-height:40px}
 .lb-rd__read{max-width:none;margin-top:6px}
 .lb-rd__read p{font-size:13px}
 .lb-rd__plot{overflow:clip}
 .lb-rd__svg{width:138%}
 .lb-rd__svg text{font-size:32px}
 .lb-rd__svg :is(.lb-rd-lt,.lb-rd-lv,.lb-rd-ct,.lb-rd-tt,.lb-rd-ot){display:none}
 .lb-rd__scan,.lb-rd__scan.lb-stack{display:none!important}
 .lb-rd__track{margin-top:0}
 .lb-rd__track>article,.lb-rd__track>article:first-child{min-height:56svh;padding:6svh 16px;align-content:start;justify-items:stretch}
 .lb-rd__track>article:last-child{min-height:120svh}
 .lb-rd__card{width:auto;justify-self:stretch}
}
@media (min-width:641px) and (max-width:900px){
 .lb-lm text{font-size:26px}
 .lb-ops .lb-mini text{font-size:21px}
 .lb-ops .lb-mini :is(.lb-load,.lb-seg-id){display:none}
 .lb-cmp__svg text{font-size:19px}
 .lb-pm text{font-size:27px}
}
/* ===== phones ===== */
@media (max-width:640px){
 main{--lb-gut:16px}
 .lb-sec h2{font-size:clamp(1.8rem,8.2vw,2.3rem)}
 .lb-sec p{font-size:15px}
 [data-splash="line-balancing"].gft-splash .gft-splash__content{padding-bottom:calc(min(46svh,380px) + 16px)}
 [data-splash="line-balancing"].gft-splash .gft-splash__lede{font-size:16px}
 [data-splash="line-balancing"].gft-splash .gft-splash__structure{inset:auto 0 var(--splash-strip-h,60px) 0;height:min(46svh,380px)}
 [data-splash="line-balancing"].gft-splash .gft-splash__structure::after{display:none}
 .lb-sbwrap{left:16px;right:16px;top:0;bottom:6px;grid-template-rows:minmax(0,1fr) auto auto;grid-template-areas:"stage" "read" "scrub";gap:6px}
 .lb-sbread{justify-self:stretch;display:grid;grid-template-columns:repeat(2,1fr);gap:6px 10px;padding:6px 10px}
 .lb-sbread dd{font-size:15px}
 .lb-sbscrub{grid-template-columns:minmax(0,1fr) auto;padding:6px 10px}
 .lb-sbscrub label{grid-column:1/-1}
 .lb-sbpresets{display:none}
 .lb-lm text{font-size:36px}
 .lb-lm :is(.lb-lm-v,.lb-lm-vbg){display:none}
 .lb-bench{padding-top:24px}
 .lb-result{grid-template-columns:minmax(0,1fr)}
 .lb-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
 .lb-exhibit__head{display:block}
 .lb-chart-foot{justify-content:flex-start;margin-top:6px}
 .lb-chart-scroll{scroll-snap-type:x proximity}
 .lb-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 14px}
 .lb-controls>legend,.lb-routing,.lb-controls>.lb-note,.lb-presets{grid-column:1/-1}
 .lb-control{grid-template-columns:minmax(0,1fr);margin:0}
 .lb-control:nth-of-type(3){grid-column:1/-1}
 .lb-control input[type=range]{grid-column:1/-1}
 .lb-actionbar button{flex:1 1 45%}
 .lb-band__cap{font-size:12px!important}
 /* bulletin: an opaque 35 vh band with heading and chart; two-line operation cards */
 .lb-ops__grid{display:block;padding-top:8px}
 .lb-ops__band{position:sticky;top:0;z-index:3;margin:0 -16px;padding:0 16px;background:var(--lb-deep)}
 .lb-ops__pin{height:35svh;min-height:250px;padding:8px 0;border:0;background:var(--lb-deep);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"k k" "h c" "t c";gap:4px 12px;box-shadow:0 10px 14px -12px #000}
 .lb-ops__pin .lb-kick{grid-area:k;margin:0}
 .lb-ops h2{grid-area:h;font-size:1.55rem;margin:0;align-self:start}
 .lb-ops__state,.lb-ops__stlist{display:none!important}
 .lb-ops__chart{grid-area:c;margin:0;min-height:0}
 .lb-ops__chart svg{height:100%;width:100%}
 .lb-ops .lb-mini text{font-size:29px}
 .lb-ops .lb-mini :is(.lb-load,.lb-takt-t,.lb-seg-id){display:none}
 .lb-tally{grid-area:t;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-self:end;gap:4px}
 .lb-tally dd{font-size:15px}
 .lb-ops__intro{grid-template-columns:minmax(0,1fr);margin-top:12px}
 .lb-operation-head{display:none}
 .lb-operation{grid-template-columns:30px minmax(0,1fr) minmax(0,1fr) 44px;grid-template-areas:"id name name rm" "thr thr thr thr" "smv smv pred pred";gap:6px 8px;padding:10px 0}
 .lb-operation .lb-id{grid-area:id}.lb-op-name{grid-area:name}.lb-operation .lb-thr{grid-area:thr;height:8px}.lb-op-smv{grid-area:smv}.lb-op-pred{grid-area:pred}
 .lb-operation [data-lb-remove]{grid-area:rm}
 /* ledger: each station a card */
 .lb-ledger{padding:44px 0 40px}
 .lb-seg-ctl{display:grid;grid-template-columns:repeat(3,1fr)}
 .lb-seg-ctl legend{grid-column:1/-1}
 .lb-seg-ctl span{text-align:center;padding:10px 6px;font-size:1.05rem}
 .lb-ledger__table{padding-right:0}
 .lb-ledger table,.lb-ledger tbody{display:block}
 .lb-ledger thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .lb-ledger tbody tr{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"st ops" "bar bar" "ld ld";gap:4px 12px;padding:10px 0}
 .lb-ledger tbody th{grid-area:st;padding:0}
 .lb-ledger td{padding:0}
 .lb-ledger td.lb-lops{grid-area:ops;min-width:0}
 .lb-ledger td.lb-lbar{grid-area:bar;width:auto;min-width:0}
 .lb-ledger td:nth-child(4),.lb-ledger td:nth-child(5),.lb-ledger td:nth-child(6){display:none}
 .lb-ledger tbody tr::after{content:'idle ' attr(data-idle) ' min · ' attr(data-pct) '% of takt';grid-area:ld;justify-self:start;font:13px var(--lb-mono);padding:2px 8px;background:var(--lb-night);color:var(--lb-paper)}
 .lb-rowchip,.lb-ledger__table::after{display:none}
 .lb-equation__eq{font-size:15px}
 /* compare: the divider also toggles; chips three-up under the chart */
 .lb-cmp{padding:44px 0 48px}
 .lb-cmp__head{grid-template-columns:minmax(0,1fr);gap:4px}
 .lb-cmp__layers,.lb-cmp__div,.lb-cmp__range{aspect-ratio:1000/520}
 .lb-cmp__svg text{font-size:34px}
 .lb-cmp__area .lb-deltas{position:static;transform:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:10px}
 .lb-delta{transform:none;white-space:normal;grid-template-columns:1fr}
 .lb-cmp__caps{display:grid;gap:2px}
 .lb-cmp__toggle{display:flex}
 .lb-cmp__toggle button{flex:1}
 .lb-cmp__ctl{grid-template-columns:minmax(0,1fr)}
 .lb-presets button{flex:1 1 45%}
 /* interlude */
 .lb-int{padding-top:44px}
 .lb-int__head h2{font-size:2.5rem}
 /* provenance: the map pinned in a 35 vh band, rows and cards scroll beneath */
 .lb-pv{padding:0 0 48px}
 .lb-pv__grid{display:block}
 .lb-pv__mapcol{display:contents}
 .lb-pv__pin{position:sticky;top:0;z-index:3;height:35svh;min-height:260px;margin:0 -16px;padding:8px 16px;border:0;background:var(--lb-forest);display:grid;grid-template-rows:auto minmax(0,1fr) auto;box-shadow:0 10px 14px -12px #000}
 .lb-pv__tabs,.lb-pv__cite{display:none!important}
 .lb-pv__out{min-height:0}
 .lb-pv__out .lb-eyebrow{margin:0}
 .lb-pv__use{font-size:13px!important}
 .lb-pv__map{min-height:0}
 .lb-pv__map svg{height:100%}
 .lb-pm text{font-size:30px}
 .lb-pv__where{font-size:12px!important;margin:0!important}
 .lb-pv__thread{display:none}
 .lb-headline{margin-top:16px}
 .lb-pv__head{margin-top:24px}
 .lb-asm tbody tr{grid-template-columns:minmax(0,1fr)}
 .lb-asm .lb-reg__v{justify-content:flex-start}
 .lb-reg__in>th::before{display:none}
 .lb-card__use,.lb-card__more{margin-left:0!important}
 /* closing: loom band, four 56 px pick rows, verdict, selvedge */
 .lb-fl{padding-top:36px}
 .lb-fl__grid{display:flex;flex-direction:column;gap:10px}
 .lb-fl__copy,.lb-fl__stage{display:contents}
 .lb-fl__copy>.lb-kick{order:1}.lb-fl h2{order:2}.lb-fl__lede{order:3}.lb-fl__readbar{order:4}.lb-fl__loom{order:5}.lb-picks{order:6}.lb-fl__qact{order:7}.lb-fl__meter{order:8}.lb-fl__checks{order:9}.lb-fl__verdict{order:10}.lb-warn{order:11}
 .lb-fl__loom{height:46svh;display:grid}
 .lb-fl__loom svg{height:100%;max-height:none}
 .lb-flsvg text{font-size:27px}
 .lb-flsvg .lb-fl-tt{font-size:28px}
 .lb-flsvg :is(.lb-fl-v,.lb-fl-vbg,.lb-fl-ltick){display:none}
 .lb-warn{grid-template-columns:minmax(0,1fr)}
 .lb-fl .lb-fl__echo{font-size:2rem}
 .lb-fl__strip{height:auto;padding:10px}
 .lb-bal :is(.lb-bal-v,.lb-bal-vbg,.lb-bal-tt){display:none}
 .lb-bal .lb-bal-s{font-size:24px}
}
@media (prefers-reduced-motion:reduce){
 .lb-sbstage,.lb-lm-reedw,.lb-bench__reed,.lb-band .lb-mo,.lb-ms-turn,.lb-cmp-ag,.lb-reg__in>th::before,.lb-fl__lanes,.lb-bal-st{animation-name:none!important;animation-timeline:auto!important}
}
:root[data-motion=calm] :is(.lb-sbstage,.lb-lm-reedw,.lb-bench__reed,.lb-band .lb-mo,.lb-ms-turn,.lb-cmp-ag,.lb-reg__in>th::before,.lb-fl__lanes,.lb-bal-st){animation-name:none!important;animation-timeline:auto!important}
@media print{.lb-ms__stage,.lb-rd__stage,.lb-ops__band,.lb-ledger__mini,.lb-pv__mapcol{position:static;height:auto}}
