/* /tools/oee-line/ : the shift thread. 480 planned minutes run as one thread through three measurement gates; loops of
   lost time are drawn off it (stop ochre, speed periwinkle, reject terracotta) and the good remainder (sage) winds onto
   the dial. The same thread is laid straight (console), split onto bobbins (creel), unwound and rewound (method), cut
   open (interlude), plied (A/B), tensioned (register) and set as a clock (closing). Animated properties: transform,
   opacity, clip-path, filter only. Pre-states live under :root[data-m-go] and, for blocks, once film.ts has armed
   <main>. Classes, properties and keyframes are prefixed oee-. */

/* ---------- shell ---------- */
.oee-film{--o-night:#072d2b;--o-fn:#0a3834;--o-forest:#0e4d4a;--o-deep:#05302d;--o-sage:#6bb68f;--o-mint:#b6dfc8;--o-paper:#f6f4ef;--o-ochre:#c98a2b;--o-peri:#7f95d6;--o-terra:#d9906a;--o-pale:#d7e4dc;--o-ink:#10201d;--o-quiet:#41564f;--o-on:#d3e4da;--o-label:#c4dccf;--o-out:cubic-bezier(.16,1,.3,1);--o-io:cubic-bezier(.65,0,.35,1);--o-gut:max(48px,calc((100% - 1440px) / 2));position:relative;min-width:0;overflow-x:clip;font-variant-numeric:tabular-nums;color:var(--o-ink);padding-block:clamp(64px,8vw,112px)}
.oee-film *{box-sizing:border-box}.oee-film [hidden]{display:none!important}
.oee-film h2{font-size:clamp(2.2rem,4vw,3.8rem);line-height:1.04;letter-spacing:-.05em;margin:0;max-width:17ch}
/* Keep this drop entrance inside each word's rendered line band. The shared mask's
   vertical padding and clip margin let delayed words paint over the preceding line. */
.oee-film #oee-loss-title .m-w{overflow:hidden;overflow-clip-margin:0;padding-block:0;margin-block:0}
.oee-film h3{font-size:clamp(1.2rem,1.6vw,1.45rem);line-height:1.2;letter-spacing:-.025em;margin:0 0 10px}
.oee-film p{margin:0}.oee-film .gft-eyebrow{margin:0 0 16px}
.oee-film :is(button,input,summary,a,[tabindex]):focus-visible{outline:3px solid #8fd6b0;outline-offset:3px}
.oee-film a{text-underline-offset:4px}
.oee-mono{font:500 13px/1.4 var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase}
.oee-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.oee-stack{display:grid}.oee-stack>*{grid-area:1/1}.oee-ghost{visibility:hidden}
.oee-stack3{display:grid}.oee-stack3>*{grid-area:1/1}
/* the kit's section-level grammar is replaced by the staged entrances below (it stays the block's coverage label) */
:root[data-m-go] main .oee-film.oee-film[data-m]{opacity:1;transform:none;clip-path:none;animation-name:none}
/* swatches, rings, loops */
.oee-sw{display:inline-block;width:12px;height:12px;flex:none;background:#ffffff66}
.oee-sw--a,.oee-sw--prod{background:#6bb68f}.oee-sw--p,.oee-sw--stop{background:#c98a2b}.oee-sw--q{background:#d7e4dc}.oee-sw--speed{background:#7f95d6}.oee-sw--rej{background:#d9906a}.oee-sw--none{background:transparent;border:1px dashed currentColor}
.oee-ring-track{fill:none;stroke:#ffffff1c}
.oee-ring{fill:none;stroke-linecap:butt;transition:opacity .35s}
.oee-ring--a{stroke:#6bb68f}.oee-ring--p{stroke:#c98a2b}.oee-ring--q{stroke:#d7e4dc}
.oee-hs[data-hot] .oee-ring{opacity:.22}
.oee-hs[data-hot=""] .oee-ring,.oee-hs[data-hot~=a] .oee-ring--a,.oee-hs[data-hot~=p] .oee-ring--p,.oee-hs[data-hot~=q] .oee-ring--q{opacity:1}
.oee-cseg{fill:none;transition:opacity .3s}
.oee-cseg--stop{stroke:#c98a2b}.oee-cseg--speed{stroke:#7f95d6}.oee-cseg--rej{stroke:#d9906a}.oee-cseg--prod{stroke:#6bb68f}
.oee-loop{--h:150px;position:relative;display:block;width:28px;height:var(--h);color:#c98a2b}
.oee-loop--speed{color:#7f95d6}.oee-loop--rej{color:#d9906a}
.oee-loop__leg{position:absolute;inset:0 0 auto;height:var(--h);border:3px solid currentColor;border-block:0;transform-origin:50% 0;transform:scaleY(var(--s,.5));transition:transform .6s var(--o-out)}
.oee-loop__cap{position:absolute;left:0;right:0;top:0;height:14px;border:3px solid currentColor;border-top:0;border-radius:0 0 14px 14px;transform:translateY(calc(var(--h) * var(--s,.5) - 14px));transition:transform .6s var(--o-out)}
.oee-loop__cap b{position:absolute;left:50%;top:100%;translate:-50% 6px;font:700 14px/1 var(--gft-font-mono);color:#f6f4ef;white-space:nowrap}
/* buttons, presets, segmented controls */
.oee-film button{font:600 14px/1.2 var(--gft-font-display);min-height:44px;padding:10px 16px;border:1px solid currentColor;background:transparent;color:inherit;cursor:pointer;transition:background .2s,color .2s}
.oee-film button:disabled{opacity:.45;cursor:not-allowed}
.oee-presets{display:flex;flex-wrap:wrap;gap:8px}
.oee-presets button[aria-pressed=true]{background:#f6f4ef;color:#072d2b;border-color:#f6f4ef}
.oee-seg{display:inline-flex;border:1px solid #7ea79b}
.oee-seg label{position:relative;display:block}
.oee-seg input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.oee-seg span{display:flex;align-items:center;min-height:44px;padding:8px 16px;font:600 15px/1.3 var(--gft-font-display)}
.oee-seg input:checked+span{background:#0e4d4a;color:#fff}
.oee-seg input:focus-visible+span{outline:3px solid #2c3e7a;outline-offset:-3px}
.oee-film input[type=range]{accent-color:#6bb68f;width:100%;min-height:44px;margin:0;cursor:pointer}

/* ---------- 1 splash: wind through gates ---------- */
[data-splash="oee-line"].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="oee-line"].gft-splash .gft-splash__structure{inset:0;display:block}
[data-splash="oee-line"].gft-splash .gft-splash__structure::after{background:radial-gradient(ellipse 40% 34% at 22% 22%,#072d2bf0 0 50%,#072d2b00 100%);z-index:1}
[data-splash="oee-line"].gft-splash .gft-splash__content{position:static;pointer-events:none}
[data-splash="oee-line"].gft-splash .gft-splash__content :is(a,button,h1,p,input,label){pointer-events:auto}
[data-splash="oee-line"].gft-splash h1{font-size:clamp(3.4rem,min(6.7vw,10.7svh),6rem);max-width:none;width:fit-content}
[data-splash="oee-line"].gft-splash h1 .gft-serif{display:inline-block;font-size:.62em;margin-top:.12em}
[data-splash="oee-line"].gft-splash .gft-splash__lede{font-size:18.5px;line-height:1.6;color:#e6f0eb;max-width:46ch;margin-top:22px}
[data-splash="oee-line"].gft-splash :is(.gft-splash__data,.gft-splash__data span,.gft-splash__signal,.gft-splash__position){font-size:13.5px;letter-spacing:.06em}
[data-splash="oee-line"].gft-splash .gft-splash__data{color:#dcebe3}
[data-splash="oee-line"].gft-splash .gft-splash__caption{font-size:13.5px;color:#dcebe3}
[data-splash="oee-line"].gft-splash .gft-splash__position{color:#dcebe3}
[data-splash="oee-line"].gft-splash .gft-splash__bottom{position:relative;z-index:2}
[data-splash="oee-line"].gft-splash .gft-splash__actions{position:absolute;z-index:3;left:max(48px,calc((100% - 1440px) / 2));top:calc(58% + min(148px,16.5svh));margin:0}
.oee-wg{position:absolute;inset:0;color:#f6f4ef}
.oee-wg__stage,.oee-wg__band{position:absolute;inset:0}
.oee-wg__stage{transform-origin:50% 58%;overflow-anchor:none}
.oee-wg__thread{position:absolute;left:0;top:58%;width:78%;height:16px;translate:0 -50%}
.oee-wg__warp{position:absolute;left:0;right:0;top:7px;height:2px;background:linear-gradient(90deg,#b6dfc8a6 0 66%,#6bb68f 80%)}
.oee-wg__good{position:absolute;left:66.6%;right:0;top:5px;height:6px;background:#6bb68f;border-radius:3px 0 0 3px}
.oee-wg__ticks{position:absolute;inset:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 0 92%,transparent);mask-image:linear-gradient(90deg,#000 0 92%,transparent)}
.oee-wg__ticks i{position:absolute;inset:0 -12vw 0 -8vw;background:repeating-linear-gradient(90deg,#d8ece0 0 1px,transparent 1px 1.625vw);opacity:.6;clip-path:inset(2px 0 2px 0)}
.oee-wg__tl{position:absolute;top:calc(58% - 38px);font:600 14px/1 var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#dfeee6;white-space:nowrap}
.oee-wg__tl b{font-weight:700;color:#f6f4ef}
.oee-wg__tl--in{left:max(48px,calc((100% - 1440px) / 2));top:calc(58% + 18px)}.oee-wg__tl--out{left:58.5%;color:#b6dfc8}
.oee-wg__gate{position:absolute;left:var(--x);top:58%;width:0;height:0}
.oee-wg__weft{position:absolute;left:-1px;top:-46px;width:2px;height:92px;background:linear-gradient(#b6dfc800,#b6dfc8 30% 70%,#b6dfc800)}
.oee-wg__node{position:absolute;left:-8px;top:-8px;width:16px;height:16px;border-radius:50%;background:#072d2b;border:3px solid #6bb68f;box-shadow:0 0 0 6px #6bb68f22}
.oee-wg__sway{position:absolute;left:-14px;top:6px;transform-origin:50% 0}
.oee-wg__label{position:absolute;left:24px;top:16px;display:grid;gap:2px;white-space:nowrap}
.oee-wg__label span{font:600 14px/1.3 var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#dfeee6}
.oee-wg__label b{font:800 28px/1.05 var(--gft-font-display);letter-spacing:-.03em}
.oee-wg__label small{font:600 14px/1.3 var(--gft-font-mono);color:#eaf4ee}
.oee-wg__gate--q .oee-wg__label{left:auto;right:26px;top:80px;text-align:right}
.oee-wg__dial{position:absolute;left:78%;top:58%;width:min(60svh,42vw,600px);aspect-ratio:1;translate:-50% -50%;container-type:inline-size}
.oee-wg__dial>*{position:absolute;inset:0}
.oee-wg__base,.oee-wg__arcs svg{width:100%;height:100%;overflow:visible}
.oee-wg__orbit{inset:-1.5%;overflow-anchor:none}
.oee-wg__orbit i{position:absolute;left:50%;top:0;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:#c98a2b;box-shadow:0 0 0 6px #c98a2b33}
.oee-wg__core{display:grid;place-content:center;text-align:center;margin:0}
.oee-wg__core output{font:850 17cqw/1 var(--gft-font-display);letter-spacing:-.06em}
.oee-wg__core span{font:600 14px/1.4 var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:#dfeee6;margin-top:6px}
.oee-sc{display:grid;gap:6px;width:min(760px,62vw)}
.oee-sc__label{display:flex;justify-content:space-between;gap:16px;width:min(520px,100%);font:600 14px/1.3 var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#dfeee6}
.oee-sc__ends{display:flex;gap:24px}.oee-sc__ends b{font-weight:600;color:#eaf4ee}
.oee-sc input{width:min(520px,100%)}
.oee-sc__read{display:flex;flex-wrap:wrap;gap:0 14px;font:800 28px/1.2 var(--gft-font-display);letter-spacing:-.03em;color:#f6f4ef}
.oee-sc__read span+span::before{content:'·';margin-right:14px;color:#6bb68f}
.oee-sc__read b{font-weight:800;color:#b6dfc8}
.oee-sc__read span:first-child b{color:#f6f4ef}

/* ---------- 2 instrument: the thread laid on the console ---------- */
.oee-ins{background:#0a3834;color:#f6f4ef}
.oee-ins__handover{position:absolute;left:0;right:0;top:0;height:clamp(56px,6vw,84px);pointer-events:none;opacity:.88}
.oee-ins__handover svg,.oee-ins__out svg{width:100%;height:100%;display:block;overflow:visible}
.oee-ins__out{position:absolute;left:0;right:0;bottom:0;height:clamp(52px,5.5vw,88px);pointer-events:none;opacity:.88}
.oee-ins .gft-eyebrow{color:#b6dfc8}
.oee-ins__head{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:end}
.oee-ins__side{display:grid;gap:12px}.oee-ins__side .oee-mono{color:#c4dccf}
.oee-ins__note{font-size:15px;line-height:1.55;color:#d3e4da}
.oee-shift{margin-top:clamp(28px,4vw,48px)}
.oee-shift__axis{display:flex;justify-content:space-between;align-items:baseline;font:500 13px/1.4 var(--gft-font-mono);letter-spacing:.06em;color:#c4dccf;margin-bottom:8px}
.oee-shift__axis b{font-weight:700;color:#f6f4ef}
.oee-shift__bar{display:flex;gap:3px;height:32px;background:#ffffff0d}
.oee-id{position:relative;display:block;min-width:0;height:100%;flex:1 1 0%;overflow:hidden}
.oee-id--stop{background:#c98a2b}.oee-id--speed{background:#7f95d6}.oee-id--rej{background:#d9906a}.oee-id--prod{background:#6bb68f}
.oee-id u{position:absolute;inset:0;background:linear-gradient(90deg,#fff0,#ffffff8c,#fff0);transform:translateX(-110%);opacity:0}
.oee-id[data-largest] u{opacity:1}
.oee-shift__legend{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 24px}
.oee-shift__legend li{display:flex;align-items:center;gap:10px;font-size:15px;color:#d3e4da}
.oee-shift__legend output{margin-left:auto;font:600 17px var(--gft-font-mono);color:#f6f4ef}
.oee-line{margin-top:28px}
.oee-line__art{position:relative;aspect-ratio:1200/200;container-type:inline-size}
.oee-line__drawing{position:absolute;inset:0;width:100%;height:100%}
.oee-line__mobile{display:none;width:100%;height:auto}
.oee-line__st{position:absolute;left:var(--x);top:0;height:100%;width:0}
.oee-line__lab{position:absolute;left:0;top:0;translate:-50% 0;display:grid;justify-items:center;white-space:nowrap}
.oee-line__lab span{font:500 13px/1.3 var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#c4dccf}
.oee-line__lab b{font:800 22px/1.15 var(--gft-font-display);letter-spacing:-.02em}
.oee-loop--sm{--h:min(70px,6cqw);position:absolute;left:-10px;top:66%;width:20px}
.oee-loop--sm .oee-loop__cap{height:10px;border-radius:0 0 10px 10px;transform:translateY(calc(var(--h) * var(--s,.5) - 10px))}
.oee-loop--sm .oee-loop__cap b{display:none}
.oee-line__summary{position:absolute;left:66%;right:0;top:4%;display:grid;gap:2px}
.oee-line__summary .oee-mono{color:#c4dccf}
.oee-line__summary output{font:850 clamp(2.6rem,5cqw,4rem)/1 var(--gft-font-display);letter-spacing:-.05em}
.oee-line__summary span:not(.oee-mono){font-size:15px;color:#d3e4da}
.oee-line__summary p{font-size:15px;line-height:1.45;color:#d3e4da;margin-top:6px}
.oee-garment{transform-box:fill-box}
:root[data-m-go] [data-m-live~=flow][data-m-on] .oee-garment{animation-name:oee-flow;animation-duration:7.7s;animation-timing-function:linear;animation-iteration-count:infinite;animation-delay:var(--oee-delay)}
@keyframes oee-flow{from{transform:translateX(-40px)}to{transform:translateX(80px)}}
.oee-line__caption{margin-top:12px;font-size:13px;line-height:1.55;color:#c4dccf;max-width:110ch}
.oee-console{display:grid;grid-template-columns:minmax(0,45fr) minmax(0,55fr);gap:clamp(28px,4vw,56px);margin-top:clamp(32px,4vw,56px);align-items:start}
.oee-controls fieldset{border:0;margin:0;padding:0;min-width:0}
.oee-controls legend{font:800 22px/1.2 var(--gft-font-display);letter-spacing:-.02em;margin-bottom:12px;padding:0}
.oee-field{display:grid;gap:4px;padding:10px 0;border-bottom:1px solid #ffffff1a}
.oee-field label{display:flex;justify-content:space-between;gap:12px;font-size:15px;font-weight:600}
.oee-field label small{font:500 13px/1.4 var(--gft-font-mono);letter-spacing:.06em;color:#c4dccf;font-weight:500;text-align:right}
.oee-field__pair{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:16px;align-items:center}
.oee-field__number{display:flex;align-items:center;background:#072d2b;border:1px solid #ffffff2b;border-bottom:2px solid #6bb68f}
.oee-field__number input{width:100%;min-width:0;min-height:44px;padding:8px 10px;border:0;background:transparent;color:#f6f4ef;font:600 16px var(--gft-font-mono)}
.oee-field__number span{padding-right:10px;font:500 13px var(--gft-font-mono);letter-spacing:.06em;color:#c4dccf}
.oee-field__number input[aria-invalid=true]{outline:2px solid #e0a46c}
.oee-attribution{margin-top:12px;border-top:1px solid #ffffff1a}
.oee-attribution summary{min-height:44px;display:flex;align-items:center;font-weight:700;cursor:pointer}
.oee-attribution .oee-note{font-size:15px;line-height:1.55;color:#d3e4da;margin-bottom:6px}
.oee-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.oee-actions__status{min-height:22px;margin-top:8px;font-size:14px;color:#d3e4da}
.oee-link{width:100%;margin-top:8px;min-height:44px;padding:8px;background:#072d2b;color:#f6f4ef;border:1px solid #ffffff2b;font:13px var(--gft-font-mono)}
.oee-read{position:sticky;top:24px;background:#072d2b;border:1px solid #ffffff1f;padding:clamp(22px,2.6vw,36px);display:grid;gap:14px}
.oee-read .gft-eyebrow{margin:0;color:#b6dfc8}
.oee-read__top{display:grid;grid-template-columns:min(220px,42%) minmax(0,1fr);gap:24px;align-items:center}
.oee-read__dial svg{display:block;width:100%;height:auto}
.oee-read__score{display:grid;gap:4px}
.oee-read__score output{font:850 64px/1 var(--gft-font-display);letter-spacing:-.06em;display:inline-block}
.oee-read__score span{font:500 13px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#c4dccf}
.oee-read__f{list-style:none;margin:0;padding:0;display:grid}
.oee-read__f li{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid #ffffff1a;font-size:16px}
.oee-read__f output{font:800 22px var(--gft-font-display);letter-spacing:-.02em}
.oee-read__eq{font:500 15px/1.4 var(--gft-font-mono);color:#dbe7e0}
.oee-timebar{height:10px;background:#ffffff14}.oee-timebar span{display:block;height:100%;background:#6bb68f;transform-origin:0 50%;transition:transform .6s var(--o-out)}
.oee-read__time p{display:flex;justify-content:space-between;margin-top:6px;font-size:15px;color:#d3e4da}.oee-read__time output{font:600 15px var(--gft-font-mono);color:#f6f4ef}
.oee-read__interp{font-size:17px;line-height:1.5;padding:12px 14px;border-left:3px solid #c98a2b;background:#ffffff08}
.oee-read__six{display:grid;gap:8px;padding-top:10px;border-top:1px solid #ffffff1a}
.oee-read__six .oee-mono{color:#c4dccf}
.oee-read__sixbar{display:flex;gap:2px;height:12px;background:#ffffff12}
.oee-rsix{display:block;height:100%;min-width:2px;transition:flex-grow .5s var(--o-out)}
.oee-rsix--a{background:#c98a2b}.oee-rsix--p{background:#7f95d6}.oee-rsix--q{background:#d9906a}
.oee-read__sixgrid{display:grid;grid-template-columns:1fr 1fr;gap:4px 14px;font-size:13.5px;color:#dbe7e0}
.oee-rsix__item{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:6px;align-items:center}
.oee-rsix__item i{width:8px;height:8px;background:#c98a2b}
.oee-rsix__item--p i{background:#7f95d6}.oee-rsix__item--q i{background:#d9906a}
.oee-rsix__item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.oee-rsix__item b{font:600 13.5px var(--gft-font-mono);color:#f6f4ef}
.oee-read__status{font:500 13px/1.45 var(--gft-font-mono);letter-spacing:.04em;color:#c4dccf}
.oee-read .oee-note{font-size:14px;line-height:1.5;color:#c4dccf}
.oee-error{margin-top:16px;padding:12px 14px;border:1px solid #e0a46c;color:#ffe2c4;font-size:15px}

/* ---------- 3 creel: six bobbins under the fallen loops ---------- */
.oee-creel{background-color:#f6f4ef;background-image:linear-gradient(#0e4d4a0f 1px,transparent 1px),linear-gradient(90deg,#0e4d4a0f 1px,transparent 1px);background-size:96px 96px;color:#10201d;padding-bottom:0}
.oee-creel .gft-eyebrow{color:#2f5c49}
.oee-creel__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(24px,4vw,64px);align-items:end}
.oee-creel__tools{display:grid;gap:12px;justify-items:start}
.oee-creel__lede{font-size:17px;line-height:1.55;color:#41564f;max-width:46ch}
.oee-creel__grid{display:grid;grid-template-columns:minmax(0,69fr) minmax(0,31fr);gap:clamp(24px,3vw,48px);margin-top:clamp(28px,4vw,48px);align-items:stretch}
.oee-creel__scale{color:#41564f;margin-bottom:14px}
.oee-creel__pairs{display:flex;gap:18px;align-items:stretch}
.oee-pair{flex:var(--w,20) 1 0;min-width:228px;display:grid;grid-template-rows:auto 1fr;gap:8px;transition:flex-grow .6s var(--o-out)}
.oee-pair__head{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto 1fr;align-items:start;gap:2px 12px;min-height:150px;border-top:2px solid currentColor;padding-top:10px}
.oee-pair__head .oee-loop{grid-row:span 2}
.oee-pair--a .oee-pair__head{color:#8a5a12}.oee-pair--p .oee-pair__head{color:#3d4f94}.oee-pair--q .oee-pair__head{color:#8f4a26}
.oee-pair__head span{font:600 15px/1.3 var(--gft-font-display);color:#10201d}
.oee-pair__head output{font:700 17px var(--gft-font-mono);color:#10201d}
.oee-loop--head{--h:132px;width:24px;margin-top:-12px}
.oee-loop--head .oee-loop__cap{height:12px;border-radius:0 0 12px 12px;transform:translateY(calc(var(--h) * var(--s,.5) - 12px))}
.oee-pair__bobs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.oee-bob{all:unset;box-sizing:border-box;display:grid;gap:4px;justify-items:center;text-align:center;padding:10px 4px 12px;border:1px solid #0e4d4a2e;background:#fffdf8;cursor:pointer;min-height:44px;transition:border-color .2s,background .2s}
.oee-bob[aria-pressed=true]{border-color:#10201d;background:#fff}
.oee-bob:focus-visible{outline:3px solid #2c3e7a;outline-offset:3px}
.oee-bob__spool{position:relative;width:64px;height:clamp(150px,22svh,210px);display:block}
.oee-bob__spool::before,.oee-bob__spool::after{content:'';position:absolute;left:0;right:0;height:8px;background:#0e4d4a;border-radius:2px}
.oee-bob__spool::before{top:0}.oee-bob__spool::after{bottom:0}
.oee-bob__core{position:absolute;left:16px;right:16px;top:8px;bottom:8px;background:#0e4d4a14;overflow:hidden;display:block}
.oee-bob__fill{position:absolute;inset:0;display:block;clip-path:inset(calc((1 - var(--v,0)) * 100%) 0 0 0);transition:clip-path .7s var(--o-out);background:repeating-linear-gradient(170deg,var(--c) 0 4px,var(--c2) 4px 6px)}
.oee-bob[data-f=a]{--c:#c98a2b;--c2:#a86f1c}.oee-bob[data-f=p]{--c:#7f95d6;--c2:#6377b8}.oee-bob[data-f=q]{--c:#d9906a;--c2:#b8714c}
.oee-bob__fill u{position:absolute;left:0;right:0;bottom:0;height:40%;background:linear-gradient(#fff0,#ffffff70,#fff0);opacity:0}
.oee-bob[aria-pressed=true] .oee-bob__fill u{opacity:1}
.oee-bob__min{font:700 16px var(--gft-font-mono);margin-top:4px;white-space:nowrap}
.oee-bob__name{font-size:14px;font-weight:600;line-height:1.25;min-height:2.5em;padding-inline:2px}
.oee-bob__sub{font:500 13px/1.35 var(--gft-font-mono);color:#41564f}
.oee-bob__tag{font:600 13px/1 var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#7a4d0e;padding:5px 7px;border:1px solid #c98a2b;visibility:hidden}
.oee-bob[data-largest=true] .oee-bob__tag{visibility:visible}
.oee-creel__note{margin-top:14px;font-size:15px;line-height:1.55;color:#41564f;max-width:70ch}
.oee-bk{background:#fffdf8;border:1px solid #10201d;border-left-width:4px;padding:clamp(20px,2.4vw,32px);display:grid;align-content:start;gap:12px}
.oee-bk .gft-eyebrow{margin:0;color:#2f5c49}
.oee-bk h3{font-size:clamp(1.5rem,2.2vw,2rem);margin:0}
.oee-bk__big{display:grid;gap:4px}.oee-bk__big output{font:850 40px/1 var(--gft-font-display);letter-spacing:-.04em;display:inline-block}.oee-bk__big span{font:500 15px var(--gft-font-mono);color:#41564f}
.oee-bk__tag{font:600 13px/1.4 var(--gft-font-mono);letter-spacing:.05em;text-transform:uppercase;color:#7a4d0e}
.oee-bk__q{font-size:18px;line-height:1.5;padding-top:12px;border-top:1px solid #10201d26}
.oee-bk__bars{display:grid;gap:5px;padding-top:12px;border-top:1px solid #10201d26}
.oee-bk__bars .oee-mono{color:#2f5c49;margin-bottom:2px}
.oee-bk__row{display:grid;grid-template-columns:minmax(0,1fr) 82px auto;gap:8px;align-items:center;font-size:13.5px;color:#41564f;padding:3px 6px;border-left:3px solid transparent;transition:background .2s,color .2s}
.oee-bk__row[data-active]{background:#0e4d4a12;color:#10201d;font-weight:700;border-left-color:#c98a2b}
.oee-bk__row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.oee-bk__row i{position:relative;display:block;height:8px;background:#0e4d4a18;overflow:hidden}
.oee-bk__row u{position:absolute;inset:0;display:block;transform-origin:0 50%;transform:scaleX(var(--v,0));transition:transform .5s var(--o-out);background:#c98a2b}
.oee-bk__row--p u{background:#7f95d6}.oee-bk__row--q u{background:#d9906a}
.oee-bk__row b{font:600 13.5px var(--gft-font-mono);color:#10201d;min-width:4.4em;text-align:right}
.oee-bk__hint{font-size:14px;line-height:1.5;color:#41564f}
.oee-creel[data-hot=a] .oee-pair:not(.oee-pair--a),.oee-creel[data-hot=p] .oee-pair:not(.oee-pair--p),.oee-creel[data-hot=q] .oee-pair:not(.oee-pair--q){opacity:.62;transition:opacity .3s}
.oee-ledger{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(28px,3vw,40px);border-top:2px solid #10201d}
.oee-ledger__cell{display:grid;gap:4px;padding:14px 16px 14px 0}
.oee-ledger__cell+.oee-ledger__cell{padding-left:16px;border-left:1px solid #10201d26}
.oee-ledger__label{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600}
.oee-ledger__cell output{font:800 22px var(--gft-font-mono);letter-spacing:-.02em}
.oee-ledger__cell small{font:500 13px var(--gft-font-mono);color:#41564f}
.oee-ledger__recon{margin-top:6px;font:500 15px/1.5 var(--gft-font-mono);color:#2a3b36}
.oee-creel__reel{position:relative;height:clamp(110px,14vw,170px);margin-top:20px}
.oee-creel__reel svg{width:100%;height:100%;display:block;overflow:visible}
.oee-reel{fill:none;stroke-width:3;vector-effect:non-scaling-stroke}
.oee-reel--stop{stroke:#c98a2b}.oee-reel--speed{stroke:#7f95d6}.oee-reel--rej{stroke:#d9906a}

/* ---------- 4 method: the pinned forest stage ---------- */
.oee-method{background-color:#f6f4ef;background-image:linear-gradient(#0e4d4a0f 1px,transparent 1px),linear-gradient(90deg,#0e4d4a0f 1px,transparent 1px);background-size:96px 96px;color:#10201d;padding:0}
.oee-method__grid{display:grid;grid-template-columns:minmax(0,42fr) minmax(0,58fr)}
.oee-ms{grid-column:2;grid-row:1;align-self:start;position:sticky;top:0;height:100svh;background:#0e4d4a;color:#f6f4ef;overflow:hidden;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:12px;padding:clamp(20px,3svh,32px) clamp(24px,3.4vw,52px) clamp(14px,2svh,22px)}
.oee-ms .gft-eyebrow{color:#b6dfc8;margin-bottom:8px}
.oee-ms h2{font-size:clamp(1.8rem,2.8vw,2.5rem);max-width:none}
.oee-ms__head{display:grid;gap:12px}
.oee-ms__rail{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.oee-ms__rail button{min-width:44px;padding:8px 10px;border-color:#ffffff40;font:600 14px var(--gft-font-mono)}
.oee-ms__dot[aria-current=step]{background:#f6f4ef;color:#0e4d4a}
.oee-ms__count{margin-left:12px;color:#c4dccf}.oee-ms__count b{color:#f6f4ef}
.oee-ms__display{display:grid;min-height:0}
.oee-ms__display p{grid-area:1/1;display:grid;gap:4px;opacity:0;visibility:hidden;transform:translateY(14px);transition:none}
.oee-ms[data-step="1"] [data-s="1"],.oee-ms[data-step="2"] [data-s="2"],.oee-ms[data-step="3"] [data-s="3"],.oee-ms[data-step="4"] [data-s="4"],.oee-ms[data-step="5"] [data-s="5"]{opacity:1;visibility:visible;transform:none;transition:opacity .38s var(--o-out),transform .45s var(--o-out)}
.oee-ms__display b{font:850 clamp(2.6rem,min(5vw,8svh),4.5rem)/1 var(--gft-font-display);letter-spacing:-.05em;display:inline-block;width:fit-content}
.oee-ms__display span{font:500 17px/1.4 var(--gft-font-mono);color:#dbe7e0}
.oee-ms__view{position:relative;min-height:0}
.oee-ms__cam{position:absolute;inset:0;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:clamp(10px,2svh,22px);transform-origin:58% 45%;transition:transform .9s var(--o-io)}
.oee-ms[data-step="2"] .oee-ms__dial{transform:scale(1.14)}
.oee-ms[data-step="3"] .oee-ms__cam,.oee-ms[data-step="4"] .oee-ms__cam{transform:translateY(-6%)}
.oee-ms__dialwrap{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(16px,2.4vw,36px);align-items:center;min-height:0}
.oee-ms__dial{position:relative;width:min(30svh,280px);aspect-ratio:1;transform-origin:0 50%;transition:transform .9s var(--o-io)}
.oee-ms[data-step="3"] .oee-ms__dial,.oee-ms[data-step="4"] .oee-ms__dial{transform:scale(.62)}
.oee-ms__dial svg{width:100%;height:100%;display:block;overflow:visible}
.oee-ms__dial svg :is(circle,g){transform-box:view-box;transform-origin:0 0}
.oee-ms__fullring{fill:none;transition:opacity .5s}
.oee-ms__fullring--a{stroke:#6bb68f}.oee-ms__fullring--p{stroke:#c98a2b}.oee-ms__fullring--q{stroke:#d7e4dc}
.oee-ms__rings .oee-ring{transition:opacity .5s,transform .8s var(--o-io)}
.oee-ms[data-step="1"] .oee-ms__rings .oee-ring,.oee-ms[data-step="2"] .oee-ms__rings .oee-ring:not(.oee-ring--a),.oee-ms[data-step="3"] .oee-ms__rings .oee-ring--q{opacity:0}
.oee-ms:not([data-step="1"]) .oee-ms__fullring--a,.oee-ms:is([data-step="3"],[data-step="4"],[data-step="5"]) .oee-ms__fullring--p,.oee-ms:is([data-step="4"],[data-step="5"]) .oee-ms__fullring--q{opacity:0}
.oee-ms[data-step="5"] .oee-ms__rings .oee-ring{opacity:0}
.oee-ms[data-step="5"] .oee-ms__rings .oee-ring--a{transform:scale(.79)}.oee-ms[data-step="5"] .oee-ms__rings .oee-ring--q{transform:scale(1.36)}
.oee-ms[data-step="5"] .oee-ms__rings .oee-ring-track{opacity:0}
.oee-ms__rings .oee-ring-track{transition:opacity .5s}
.oee-ms__one{opacity:0;transform:scale(.9);transition:opacity .6s .25s,transform .8s .2s var(--o-io)}
.oee-ms[data-step="5"] .oee-ms__one{opacity:1;transform:none}
.oee-ms__onearc{fill:none;stroke:#6bb68f}
.oee-ms[data-hot=a] .oee-ring--a,.oee-ms[data-hot=p] .oee-ring--p,.oee-ms[data-hot=q] .oee-ring--q{filter:drop-shadow(0 0 6px #ffffffa0)}
.oee-ms__peel{position:absolute;left:30%;top:2%;width:40%;height:7px;border-radius:4px;opacity:0;pointer-events:none}
.oee-ms__peel--stop{background:#c98a2b}.oee-ms__peel--speed{background:#7f95d6}.oee-ms__peel--rej{background:#d9906a}
:root[data-m-go] .oee-ms[data-step="2"] .oee-ms__peel--stop,:root[data-m-go] .oee-ms[data-step="3"] .oee-ms__peel--speed,:root[data-m-go] .oee-ms[data-step="4"] .oee-ms__peel--rej{animation-name:oee-peel;animation-duration:900ms;animation-timing-function:var(--o-io);animation-iteration-count:1;animation-direction:normal;animation-fill-mode:both}
@keyframes oee-peel{0%{opacity:1;transform:translateY(0) rotate(-14deg) scaleX(.6)}55%{opacity:1}100%{opacity:0;transform:translateY(min(34svh,320px)) rotate(0) scaleX(1)}}
.oee-ms__rows{list-style:none;margin:0;padding:0;display:grid;align-content:center;min-width:0}
.oee-ms__row{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px 6px;border-bottom:1px solid #ffffff1f;font-size:16px;transition:background .35s,opacity .35s;opacity:.62}
.oee-ms__row output{font:600 16px var(--gft-font-mono)}
.oee-ms[data-step="1"] .oee-ms__row--plan,.oee-ms[data-step="2"] .oee-ms__row--stop,.oee-ms[data-step="3"] .oee-ms__row--speed,.oee-ms[data-step="4"] .oee-ms__row--rej,.oee-ms[data-step="5"] .oee-ms__row{opacity:1}
.oee-ms[data-step="2"] .oee-ms__row--stop,.oee-ms[data-step="3"] .oee-ms__row--speed,.oee-ms[data-step="4"] .oee-ms__row--rej,.oee-ms[data-step="5"] .oee-ms__row--prod{background:#ffffff14}
.oee-ms__ledger{display:grid;gap:6px;padding-bottom:16px}
.oee-ms__bar{position:relative;height:clamp(28px,4.4svh,44px);transform-origin:0 50%;transition:transform .9s var(--o-io)}
.oee-ms[data-step="3"] .oee-ms__bar,.oee-ms[data-step="4"] .oee-ms__bar{transform:scaleY(1.35)}
.oee-ms__base{position:absolute;inset:0;background:#b6dfc840}
.oee-ms__seg{position:absolute;top:0;bottom:0;transform-origin:0 50%;transform:scaleX(0);opacity:0;transition:transform .7s var(--o-out) .35s,opacity .3s .35s}
.oee-ms__seg--stop{background:#c98a2b}.oee-ms__seg--speed{background:#7f95d6}.oee-ms__seg--rej{background:#d9906a}.oee-ms__seg--prod{background:#6bb68f}
.oee-ms:not([data-step="1"]) .oee-ms__seg--stop,.oee-ms:is([data-step="3"],[data-step="4"],[data-step="5"]) .oee-ms__seg--speed,.oee-ms:is([data-step="4"],[data-step="5"]) .oee-ms__seg--rej,.oee-ms[data-step="5"] .oee-ms__seg--prod{transform:none;opacity:1}
.oee-ms__axis{display:flex;justify-content:space-between;font:500 13px var(--gft-font-mono);letter-spacing:.06em;color:#c4dccf}.oee-ms__axis b{color:#f6f4ef}
.oee-ms__garments{display:grid;grid-template-columns:repeat(40,1fr);gap:2px;height:clamp(36px,5.8svh,52px);opacity:.3;transition:opacity .5s}
.oee-ms__garments i{background:#b6dfc8;transition:transform .6s var(--o-out),opacity .6s,background .4s}
.oee-ms:is([data-step="4"],[data-step="5"]) .oee-ms__garments{opacity:1}
.oee-ms:is([data-step="4"],[data-step="5"]) .oee-ms__garments i[data-rej]{background:#d9906a;transform:translateY(12px);opacity:.55}
.oee-ms__key{font-size:13px;line-height:1.5;color:#c4dccf;max-width:80ch;padding-top:4px}
.oee-ms__key span{display:block;font-family:var(--gft-font-mono);color:#dbe7e0}
.oee-ms__runner{transform-box:view-box;transform-origin:0 0}
.oee-method__steps{grid-column:1;grid-row:1;list-style:none;margin:0;padding:12svh clamp(24px,3vw,48px) 0 var(--o-gut)}
.oee-step{min-height:88svh;display:grid;align-content:center;gap:12px;max-width:56ch;padding-left:20px;border-left:3px solid #10201d1f;transition:border-color .4s}
.oee-step:last-child{min-height:120svh;align-content:start;padding-top:30svh}
.oee-step[data-on]{border-left-color:#c98a2b}
.oee-step__n{color:#2f5c49}
.oee-step h3{font-size:clamp(1.4rem,2vw,1.8rem)}
.oee-step p:not(.oee-step__n){font-size:18px;line-height:1.65;color:#2a3b36}
.oee-step__strip{position:relative;height:14px;background:#0e4d4a1f;margin:4px 0 6px}
.oee-step__strip i{position:absolute;top:0;bottom:0;opacity:.25}
.oee-step__strip[data-k=plan]{background:#b6dfc8}.oee-step__strip[data-k=plan] i{opacity:0}
.oee-step__strip[data-k=stop] .oee-ms__seg--stop,.oee-step__strip[data-k=speed] .oee-ms__seg--speed,.oee-step__strip[data-k=rej] .oee-ms__seg--rej,.oee-step__strip[data-k=prod] i{opacity:1}
.oee-step code{font:500 15px/1.5 var(--gft-font-mono);color:#0e4d4a;background:#0e4d4a12;padding:8px 10px;width:fit-content}

/* ---------- 5 interlude: the thread cut open at display scale ---------- */
.oee-il{background:#072d2b;color:#f6f4ef;padding:0;view-timeline-name:--oee-il;view-timeline-axis:block}
.oee-il__stage{position:sticky;top:0;height:100svh;overflow:hidden;isolation:isolate}
.oee-il__bridge{position:absolute;left:0;right:0;top:0;height:clamp(56px,6svh,88px);pointer-events:none;opacity:.88}
.oee-il__bridge svg{width:100%;height:100%;display:block;overflow:visible}
.oee-il__night{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 76% 10%,#0c3d3a 0%,#072d2b 60%)}
.oee-il__paper{display:none;position:absolute;inset:0;background-color:#f6f4ef;background-image:linear-gradient(#0e4d4a0f 1px,transparent 1px),linear-gradient(90deg,#0e4d4a0f 1px,transparent 1px);background-size:96px 96px;pointer-events:none;--oee-r:150vmax;clip-path:polygon(evenodd,0 0,100% 0,100% 100%,0 100%,0 0,calc(76% + var(--oee-r) * 1.0000) calc(var(--oee-r) * 0.0000),calc(76% + var(--oee-r) * 0.9749) calc(var(--oee-r) * 0.2225),calc(76% + var(--oee-r) * 0.9010) calc(var(--oee-r) * 0.4339),calc(76% + var(--oee-r) * 0.7818) calc(var(--oee-r) * 0.6235),calc(76% + var(--oee-r) * 0.6235) calc(var(--oee-r) * 0.7818),calc(76% + var(--oee-r) * 0.4339) calc(var(--oee-r) * 0.9010),calc(76% + var(--oee-r) * 0.2225) calc(var(--oee-r) * 0.9749),calc(76% + var(--oee-r) * 0.0000) calc(var(--oee-r) * 1.0000),calc(76% + var(--oee-r) * -0.2225) calc(var(--oee-r) * 0.9749),calc(76% + var(--oee-r) * -0.4339) calc(var(--oee-r) * 0.9010),calc(76% + var(--oee-r) * -0.6235) calc(var(--oee-r) * 0.7818),calc(76% + var(--oee-r) * -0.7818) calc(var(--oee-r) * 0.6235),calc(76% + var(--oee-r) * -0.9010) calc(var(--oee-r) * 0.4339),calc(76% + var(--oee-r) * -0.9749) calc(var(--oee-r) * 0.2225),calc(76% + var(--oee-r) * -1.0000) calc(var(--oee-r) * 0.0000),calc(76% + var(--oee-r) * -0.9749) calc(var(--oee-r) * -0.2225),calc(76% + var(--oee-r) * -0.9010) calc(var(--oee-r) * -0.4339),calc(76% + var(--oee-r) * -0.7818) calc(var(--oee-r) * -0.6235),calc(76% + var(--oee-r) * -0.6235) calc(var(--oee-r) * -0.7818),calc(76% + var(--oee-r) * -0.4339) calc(var(--oee-r) * -0.9010),calc(76% + var(--oee-r) * -0.2225) calc(var(--oee-r) * -0.9749),calc(76% + var(--oee-r) * -0.0000) calc(var(--oee-r) * -1.0000),calc(76% + var(--oee-r) * 0.2225) calc(var(--oee-r) * -0.9749),calc(76% + var(--oee-r) * 0.4339) calc(var(--oee-r) * -0.9010),calc(76% + var(--oee-r) * 0.6235) calc(var(--oee-r) * -0.7818),calc(76% + var(--oee-r) * 0.7818) calc(var(--oee-r) * -0.6235),calc(76% + var(--oee-r) * 0.9010) calc(var(--oee-r) * -0.4339),calc(76% + var(--oee-r) * 0.9749) calc(var(--oee-r) * -0.2225),calc(76% + var(--oee-r) * 1.0000) calc(var(--oee-r) * -0.0000))}
.oee-il__warp{position:absolute;inset:-4%;width:108%;height:108%;overflow-anchor:none}
.oee-il__head{position:absolute;left:var(--o-gut);top:clamp(28px,7svh,72px);width:min(50%,760px)}
.oee-il__head .gft-eyebrow{color:#b6dfc8}
.oee-il h2{font-size:clamp(2.4rem,4.4vw,4rem);max-width:15ch}
.oee-il__states{list-style:none;margin:18px 0 0;padding:0;display:flex;gap:18px;font:500 13px/1 var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#a9c4b6}
.oee-il__states li{padding-bottom:6px;border-bottom:2px solid transparent;transition:color .3s,border-color .3s}
.oee-il__stage[data-state="1"] .oee-il__states [data-s="1"],.oee-il__stage[data-state="2"] .oee-il__states [data-s="2"],.oee-il__stage[data-state="3"] .oee-il__states [data-s="3"]{color:#f6f4ef;border-color:#c98a2b}
.oee-il__field{position:absolute;left:0;right:0;top:55%;height:0;transition:opacity .5s}
.oee-il__dots{position:absolute;left:0;top:-22px;width:100%;height:44px}
.oee-il__thread{position:absolute;left:0;right:calc(var(--o-gut) + 156px);top:-3px;width:auto;height:22px}
.oee-il__b{position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,#b6dfc8b3 0 26%,#b6dfc8b3 56%,#6bb68f 62%);border-radius:0 3px 3px 0}
.oee-il__a{position:absolute;left:0;right:3%;top:16px;height:3px;background:repeating-linear-gradient(90deg,#e6efe9 0 12px,transparent 12px 20px);transform:translateX(-102%);opacity:0;transition:transform 1s var(--o-out),opacity .5s}
.oee-il__stage[data-state="3"] .oee-il__a{transform:none;opacity:1}
.oee-il__score{position:absolute;left:auto;right:var(--o-gut);top:-30px;display:grid;justify-items:end;text-align:right;padding-left:0}
.oee-il__score b{font:850 clamp(2rem,3vw,2.8rem)/1 var(--gft-font-display);letter-spacing:-.04em}
.oee-il__score span{font:500 13px var(--gft-font-mono);letter-spacing:.08em;color:#c4dccf}
.oee-il__gates{position:absolute;inset:0;transition:opacity .5s}
.oee-il__gate{position:absolute;left:var(--x);top:55%;width:0;height:0}
.oee-il__weft{position:absolute;left:-1px;top:-70px;width:2px;height:140px;background:linear-gradient(#b6dfc800,#b6dfc8 30% 70%,#b6dfc800)}
.oee-il__glab{position:absolute;left:14px;top:-72px;display:grid;white-space:nowrap}
.oee-il__glab span{font:500 13px/1.3 var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#c4dccf}
.oee-il__glab b{font:800 24px/1.1 var(--gft-font-display)}
.oee-il .oee-il__pick{position:absolute;left:0;top:6px;translate:-50% 0;display:grid;justify-items:center;border:0;padding:0;min-width:150px;min-height:120px;align-content:start;background:none}
.oee-il__loop{--h:clamp(150px,32svh,300px);position:relative;display:block;width:60px;height:var(--h);color:#c98a2b;transform-origin:50% 0;opacity:.6;transition:opacity .3s}
.oee-il__loop--speed{color:#7f95d6}.oee-il__loop--rej{color:#d9906a}
.oee-il__loop .oee-loop__leg{border-width:6px}
.oee-il__loop .oee-loop__cap{height:30px;border-width:6px;border-radius:0 0 30px 30px;transform:translateY(calc(var(--h) * var(--s,.5) - 30px))}
.oee-il .oee-il__min{position:absolute;left:50%;top:100%;translate:-50% 14px;font:800 clamp(1.6rem,2.4vw,2.2rem)/1 var(--gft-font-display);letter-spacing:-.03em;white-space:nowrap;color:#f6f4ef}
.oee-il__stage[data-pick=a] .oee-il__gate--a .oee-il__loop,.oee-il__stage[data-pick=p] .oee-il__gate--p .oee-il__loop,.oee-il__stage[data-pick=q] .oee-il__gate--q .oee-il__loop{opacity:1}
.oee-il__stage[data-pick=a] .oee-il__gate--a .oee-il__loop,.oee-il__stage[data-pick=p] .oee-il__gate--p .oee-il__loop,.oee-il__stage[data-pick=q] .oee-il__gate--q .oee-il__loop{filter:drop-shadow(0 0 10px #ffffff40)}
.oee-il__stage[data-state="3"] :is(.oee-il__field,.oee-il__gates){opacity:.4}
.oee-il__cap{position:absolute;left:62%;right:var(--o-gut);top:63%;bottom:7%;opacity:0;visibility:hidden;transform:translateY(28px);transition:none;pointer-events:none}
.oee-il__stage[data-state="3"] .oee-il__cap{opacity:1;visibility:visible;transform:none;transition:opacity .42s var(--o-out),transform .6s var(--o-out)}
.oee-il__captitle{position:absolute;left:0;top:-30px;color:#e6c08a}
.oee-il__axis{position:absolute;left:0;top:0;bottom:0;width:56px;border-right:2px solid #c4dccf80;display:flex;flex-direction:column;justify-content:space-between;font:500 13px var(--gft-font-mono);color:#c4dccf}
.oee-il__bob{position:absolute;bottom:0;top:0;width:clamp(70px,7vw,100px);border:2px dashed #e6c08a99}
.oee-il__bob--a{left:90px}.oee-il__bob--b{left:calc(90px + clamp(70px,7vw,100px) + 40px)}
.oee-il__bob i{position:absolute;inset:0;background:repeating-linear-gradient(135deg,#c98a2b 0 6px,#c98a2b66 6px 12px);transform-origin:50% 100%;transform:scaleY(var(--v))}
.oee-il__bob b{position:absolute;left:0;right:0;bottom:calc(var(--v) * 100% + 8px);font:600 13px/1.3 var(--gft-font-mono);color:#f6f4ef;text-align:center}
.oee-il__bracket{position:absolute;left:calc(90px + 2 * clamp(70px,7vw,100px) + 52px);bottom:calc(var(--a) * 100%);height:calc((var(--b) - var(--a)) * 100%);width:16px;border:2px solid #f6f4ef;border-left:0}
.oee-il__bracket b{position:absolute;left:26px;top:50%;translate:0 -50%;font:800 22px/1.1 var(--gft-font-display);white-space:nowrap}
.oee-il__stage[data-util=a] .oee-il__bob--b,.oee-il__stage[data-util=b] .oee-il__bob--a,.oee-il__stage:is([data-util=a],[data-util=b]) .oee-il__bracket{opacity:.35}
.oee-il__panel{position:absolute;right:var(--o-gut);top:clamp(28px,7svh,72px);width:min(36%,520px);display:grid;gap:18px}
.oee-il__card,.oee-il__tool{opacity:0;visibility:hidden;transform:translateY(14px);transition:none}
.oee-il__stage[data-state="1"] [data-s="1"]:is(.oee-il__card,.oee-il__tool),.oee-il__stage[data-state="2"] [data-s="2"]:is(.oee-il__card,.oee-il__tool),.oee-il__stage[data-state="3"] [data-s="3"]:is(.oee-il__card,.oee-il__tool){opacity:1;visibility:visible;transform:none;transition:opacity .38s var(--o-out),transform .48s var(--o-out)}
.oee-il__card h3{font-size:clamp(1.25rem,1.7vw,1.5rem);color:#f6f4ef}
.oee-il__card p{font-size:17px;line-height:1.6;color:#dbe7e0}
.oee-il__card a,.oee-il__tool a{color:#f6f4ef}
.oee-il__tool{display:grid;gap:10px}
.oee-il__lab{color:#c4dccf}
.oee-il__forks{display:flex;flex-wrap:wrap;gap:8px}
.oee-il .oee-il__chipbtn{display:inline-flex;align-items:center;gap:8px;border-color:#ffffff4d}
.oee-il .oee-il__chipbtn[aria-pressed=true]{background:#f6f4ef;color:#072d2b}
.oee-il__q p{font-size:17px;line-height:1.55;color:#dbe7e0;visibility:hidden}
.oee-il__stage[data-pick=a] [data-fork-q=a],.oee-il__stage[data-pick=p] [data-fork-q=p],.oee-il__stage[data-pick=q] [data-fork-q=q]{visibility:visible}
.oee-il__trade{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center}
.oee-il__trade output{font:700 17px var(--gft-font-mono)}
.oee-il__read{font:700 17px/1.5 var(--gft-font-display);color:#f6f4ef}
.oee-il__seg{border-color:#ffffff59}.oee-il__seg input:checked+span{background:#f6f4ef;color:#072d2b}
.oee-il__rank{position:absolute;left:62%;right:var(--o-gut);top:64%;display:flex;flex-direction:column;gap:12px;transition:opacity .42s var(--o-out),transform .5s var(--o-out)}
.oee-il__rank .oee-mono{color:#c4dccf}
.oee-il__rk{display:grid;grid-template-columns:9.5em minmax(0,1fr) auto;gap:14px;align-items:center;font-size:16px;color:#dbe7e0}
.oee-il__rk i{height:14px;transform-origin:0 50%;transform:scaleX(var(--w,0));transition:transform .6s var(--o-out);background:#c98a2b}
.oee-il__rk--speed i{background:#7f95d6}.oee-il__rk--rej i{background:#d9906a}
.oee-il__rk b{font:800 22px var(--gft-font-display);color:#f6f4ef;min-width:4.5em;text-align:right}
.oee-il__stage[data-state="3"] .oee-il__rank{opacity:0;visibility:hidden;transform:translateY(20px);transition:none}
.oee-il__track{position:relative;margin-top:-100svh;pointer-events:none}
.oee-il__track i{display:block;height:100svh}.oee-il__track i:last-child{height:120svh}

/* ---------- 6 A/B record: two plied threads ---------- */
.oee-cmp{background:#0e4d4a;color:#f6f4ef}
.oee-cmp .gft-eyebrow{color:#b6dfc8}
.oee-cmp__plyin{position:absolute;left:0;right:0;top:-56px;height:112px;z-index:2;pointer-events:none}
.oee-cmp__plyin svg{width:100%;height:100%;display:block;overflow:visible}
.oee-cmp__plya{fill:none;stroke:#e6efe9;stroke-width:3;stroke-dasharray:12 8;vector-effect:non-scaling-stroke}
.oee-cmp__plyb{fill:none;stroke:#6bb68f;stroke-width:4;vector-effect:non-scaling-stroke}
.oee-cmp__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:end}
.oee-cmp__note{font-size:17px;line-height:1.55;color:#dbe7e0}
.oee-cmp__bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:28px}
.oee-film .oee-primary{background:#f6f4ef;color:#0e4d4a;border-color:#f6f4ef}
.oee-cmp__set{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-left:auto}.oee-cmp__set>span{font:500 13px var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#c4dccf}
.oee-cmp__empty{margin-top:20px;font-size:17px}
.oee-cmp__stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,1fr);gap:clamp(20px,3vw,48px);align-items:center;margin-top:clamp(28px,4vw,48px)}
.oee-cring{margin:0;display:grid;justify-items:center;gap:12px}
.oee-cring__dial{position:relative;width:min(34svh,300px,100%);aspect-ratio:1}
.oee-cring__dial svg{width:100%;height:100%;display:block;overflow:visible}
.oee-cring--a .oee-cseg{opacity:.78}
.oee-cring__val{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.oee-cring__val b{font:850 clamp(2rem,3.2vw,2.8rem)/1 var(--gft-font-display);letter-spacing:-.05em;display:inline-block}
.oee-cring__val span{font:500 13px var(--gft-font-mono);letter-spacing:.08em;color:#c4dccf}
.oee-cring figcaption{text-align:center;font-size:15px;color:#dbe7e0}.oee-cring figcaption>b{font:800 22px var(--gft-font-display);margin-right:6px;color:#f6f4ef}
.oee-cring figcaption small{display:block;font:500 13px/1.5 var(--gft-font-mono);color:#c4dccf}
.oee-cmp__stage[data-focus=stop] .oee-cseg:not(.oee-cseg--stop),.oee-cmp__stage[data-focus=speed] .oee-cseg:not(.oee-cseg--speed),.oee-cmp__stage[data-focus=rej] .oee-cseg:not(.oee-cseg--rej),.oee-cmp__stage[data-focus=prod] .oee-cseg:not(.oee-cseg--prod){opacity:.22}
.oee-cmp__mid{display:grid;gap:14px}
.oee-chip{position:relative;justify-self:center;display:grid;justify-items:center;padding:6px 18px 10px}
.oee-chip span{font:500 13px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#c4dccf}
.oee-chip b{font:850 clamp(2.6rem,4.4vw,4rem)/1 var(--gft-font-display);letter-spacing:-.05em;display:inline-block}
.oee-chip[data-sign=up] b{color:#b6dfc8}.oee-chip[data-sign=down] b{color:#f0c68c}
.oee-chip__knot{position:absolute;left:50%;bottom:-8px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:#c98a2b;box-shadow:0 0 0 5px #c98a2b40}
.oee-diffs{display:grid;gap:6px}
.oee-diff{display:grid;grid-template-columns:minmax(0,9.5em) auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 6px;border-bottom:1px solid #ffffff1a;transition:background .25s}
.oee-diff[data-on]{background:#ffffff12}
.oee-diff__name{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600}
.oee-diff output{font:600 17px var(--gft-font-mono);white-space:nowrap}
.oee-diff__va{color:#dbe7e0}
.oee-diff__bars{display:grid;gap:5px}
.oee-diff__bar{display:block;height:9px;transform-origin:0 50%;transition:transform .6s var(--o-out)}
.oee-diff__bar--a{border:2px dashed #e6efe9;height:10px}
.oee-diff__bar--b{background:#6bb68f}
.oee-diff[data-k=stop] .oee-diff__bar--b{background:#c98a2b}.oee-diff[data-k=speed] .oee-diff__bar--b{background:#7f95d6}.oee-diff[data-k=rej] .oee-diff__bar--b{background:#d9906a}
.oee-cmp__scale{display:flex;justify-content:space-between;color:#c4dccf;padding-inline:6px}.oee-cmp__scale b{color:#f6f4ef}
.oee-cmp__read{margin-top:22px;font:700 19px/1.45 var(--gft-font-display);text-align:center;color:#f6f4ef}
.oee-cmp__table{margin-top:22px;overflow-x:auto}
.oee-cmp__table table{width:100%;border-collapse:collapse;font-size:16px}
.oee-cmp__table caption{text-align:left;font-size:14px;color:#dbe7e0;padding-bottom:8px}
.oee-cmp__table :is(th,td){padding:10px 12px;border-bottom:1px solid #ffffff1f;text-align:left;white-space:nowrap}
.oee-cmp__table thead th{font:500 13px var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#c4dccf}
.oee-cmp__table td{font-family:var(--gft-font-mono)}
.oee-cmp__table tr[data-on]{background:#ffffff12}
.oee-dcell{position:relative}
.oee-dcell::after{content:'';position:absolute;left:12px;bottom:4px;height:3px;width:calc(var(--dw,0) * 80%);background:#b6dfc8}
.oee-dcell[data-sign=down]::after{background:#f0c68c}

/* ---------- 7 register: the tension board ---------- */
.oee-reg{background:#05302d;color:#f6f4ef;padding-bottom:clamp(48px,5vw,72px)}
.oee-reg .gft-eyebrow{color:#b6dfc8}
.oee-reg__fan{position:absolute;left:0;right:0;top:-70px;height:140px;z-index:2;pointer-events:none}
.oee-reg__fan svg{width:100%;height:100%;display:block;overflow:visible}
.oee-reg__fan path{fill:none;stroke:#b6dfc8;stroke-opacity:.55;stroke-width:2;vector-effect:non-scaling-stroke}
.oee-reg__rail{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-top:22px}
.oee-reg__railline{position:absolute;left:0;right:0;top:0;height:3px;background:#b6dfc8;transform-origin:0 50%}
.oee-knot{position:relative;display:grid;gap:4px;color:#f6f4ef;text-decoration:none;padding-top:6px}
.oee-knot i{position:absolute;left:0;top:-31px;width:18px;height:18px;border-radius:50%;background:#05302d;border:4px solid #c98a2b}
.oee-knot span{font-size:16px}.oee-knot b{font-weight:800}
.oee-knot small{font-size:14px;line-height:1.45;color:#dbe7e0}
a.oee-knot:hover span{text-decoration:underline}
.oee-knot--r12 i{border-color:#e6c08a}
.oee-reg__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:end;margin-top:clamp(36px,4vw,56px)}
.oee-reg__presets{display:grid;gap:10px}
.oee-reg__pread{font-size:15px;line-height:1.5;color:#dbe7e0}
.oee-reg__board{display:grid;grid-template-columns:minmax(0,1fr) min(36svh,320px);gap:clamp(24px,3vw,48px);margin-top:clamp(24px,3vw,40px);align-items:start}
.oee-reg__tablewrap{overflow-x:auto}
.oee-board{width:100%;border-collapse:collapse;font-size:16px}
.oee-board caption{text-align:left;font-size:14px;line-height:1.5;color:#dbe7e0;padding-bottom:10px}
.oee-board :is(th,td){position:relative;padding:14px 10px;text-align:left;white-space:nowrap;border-bottom:1px solid #ffffff14}
.oee-board thead th{font:500 13px var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#c4dccf}
.oee-board thead abbr{text-decoration:none;font-weight:700;font-size:15px}
.oee-board thead .oee-board__post{text-align:center;width:56px}
.oee-board__post--a abbr{color:#6bb68f}.oee-board__post--p abbr{color:#e0a64a}.oee-board__post--q abbr{color:#d7e4dc}
.oee-board tbody tr{cursor:pointer;transition:background .3s}
.oee-board tbody tr[data-on]{background:#ffffff10}
.oee-board tbody .oee-board__k::after{content:'';position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;background:#b6dfc8;opacity:.18;pointer-events:none;transition:opacity .3s}
.oee-board tbody tr[data-on] .oee-board__k::after{opacity:.75}
.oee-board tbody th{font-weight:700}
.oee-board tbody :is(th,td)>:not(.oee-sr){position:relative;z-index:1}
.oee-board tbody th,.oee-board tbody td:not(.oee-board__k){background-clip:padding-box}
.oee-board tbody .oee-board__k{text-align:center}
.oee-board__k::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:4px;margin-left:-2px;transform-origin:50% 100%}
.oee-board__k--a::before{background:#6bb68f}.oee-board__k--p::before{background:#c98a2b}.oee-board__k--q::before{background:#d7e4dc}
.oee-board__knot{position:relative;z-index:2;display:inline-block;width:18px;height:18px;border-radius:50%;background:#f6f4ef;box-shadow:0 0 0 4px #05302d;vertical-align:middle;transition:transform .3s}
.oee-board tbody tr[data-on] .oee-board__knot{transform:scale(1.3)}
.oee-board__live output{font:600 16px var(--gft-font-mono)}
.oee-board__bead{display:inline-block;width:10px;height:10px;margin-left:8px;border-radius:50%;background:#c98a2b;opacity:0;transform:scale(.4);transition:opacity .3s,transform .3s}
.oee-board tr[data-changed] .oee-board__bead{opacity:1;transform:none}
.oee-board__chip{font:500 13px var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border:1px solid #ffffff40;color:#dbe7e0}
.oee-reg__bobs{display:flex;align-items:center;gap:8px;margin-top:10px;font:500 13px var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#c4dccf}
.oee-reg__bobs i{width:12px;height:22px;border-radius:2px;background:linear-gradient(#c98a2b,#c98a2b) bottom/100% 50% no-repeat,#ffffff1a}
.oee-reg__bobs i:nth-of-type(n+3){background:linear-gradient(#7f95d6,#7f95d6) bottom/100% 30% no-repeat,#ffffff1a}.oee-reg__bobs i:nth-of-type(n+5){background:linear-gradient(#d9906a,#d9906a) bottom/100% 30% no-repeat,#ffffff1a}
.oee-reg__dial{display:grid;gap:14px}
.oee-reg__ring{position:relative}
.oee-reg__ring svg{display:block;width:100%;height:auto}
.oee-reg__ring p{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.oee-reg__ring output{font:850 clamp(2rem,3vw,2.6rem)/1 var(--gft-font-display);letter-spacing:-.05em;display:inline-block}
.oee-reg__ring span{font:500 13px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#c4dccf}
.oee-reg__legend{list-style:none;margin:0;padding:0}
.oee-reg__legend li{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid #ffffff1a;font-size:15px}
.oee-reg__legend output{font:700 17px var(--gft-font-mono)}
.oee-reg__note{font-size:17px;line-height:1.5;color:#e6efe9}
.oee-reg__receipts{list-style:none;margin:clamp(28px,3vw,40px) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.4vw,36px)}
.oee-reg__receipts li{font-size:15px;line-height:1.6;color:#dbe7e0;padding-top:12px;border-top:1px solid #ffffff2b}
.oee-reg__receipts b{color:#f6f4ef}
.oee-reg__research{margin-top:22px;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:baseline;font-size:15px;line-height:1.6;color:#dbe7e0}
.oee-reg__research b{font-family:var(--gft-font-mono);color:#f6f4ef}
.oee-reg__research a{color:#f6f4ef;font-weight:700}

/* ---------- 8 closing: the shift clock ---------- */
.oee-close{background:#072d2b;color:#f6f4ef;min-height:100svh;padding-block:clamp(28px,5svh,56px);display:grid;align-items:stretch;view-timeline-name:--oee-close;view-timeline-axis:block}
.oee-close__gather{position:absolute;left:0;right:0;top:-52px;height:104px;z-index:2;pointer-events:none}
.oee-close__gather svg{width:100%;height:100%;display:block;overflow:visible}
.oee-close .gft-eyebrow{color:#b6dfc8}
.oee-close__halo{position:absolute;right:-10%;top:-10%;width:80%;height:120%;background:radial-gradient(closest-side,#6bb68f2e,#6bb68f00);pointer-events:none;overflow-anchor:none}
.oee-close__grid{display:grid;grid-template-columns:minmax(0,40fr) minmax(0,60fr);gap:clamp(24px,3vw,48px);align-items:stretch;min-height:calc(100svh - 2 * clamp(28px,5svh,56px))}
.oee-close__text{display:grid;align-content:center;gap:16px}
.oee-close h2{font-size:clamp(2.2rem,3.8vw,3.6rem)}
.oee-close__lede{font-size:17px;line-height:1.6;color:#dbe7e0;max-width:46ch}
.oee-clock__ctl{display:grid;gap:4px}
.oee-clock__ctl label{color:#c4dccf}.oee-clock__ctl label span{text-transform:none;letter-spacing:0;color:#a9c4b6;margin-left:6px}
.oee-close__read{font-size:17px;line-height:1.55;color:#f6f4ef;padding:12px 14px;border-left:3px solid #c98a2b;background:#ffffff08}
.oee-clock__bz{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;font:500 15px var(--gft-font-mono)}
.oee-clock__bz b{color:#f6f4ef}
.oee-close__mix{font-size:15px;line-height:1.5;color:#dbe7e0}
.oee-close__fine{font-size:15px;line-height:1.55;color:#c4dccf}
.oee-close__col{position:relative;display:flex;flex-direction:column;align-items:flex-end;gap:10px;container-type:inline-size}
.oee-clock{position:relative;width:min(78svh,100cqw);aspect-ratio:1;container-type:inline-size}
.oee-clock__svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;cursor:grab;touch-action:pan-y}
.oee-clock__svg :is(g,rect,circle){transform-box:view-box;transform-origin:0 0}
.oee-clock__bezel{transform:rotate(var(--bezel,0deg));transition:transform .5s var(--o-out)}
.oee-clock__detent text{font:800 16px var(--gft-font-display);fill:#f6f4ef}
.oee-clock__detent .oee-clock__bt{fill:#072d2b}
.oee-clock__index{fill:#c98a2b}
.oee-clock__svg .oee-clock__tick{fill:#b6dfc8;opacity:.55;transform-box:fill-box;transform-origin:50% 100%}
.oee-clock__svg .oee-clock__tick[data-major]{fill:#f6f4ef;opacity:1}
.oee-clock__ghost .oee-ring{opacity:.4}
.oee-clock__ghost .oee-ring-track{stroke:#ffffff10}
.oee-clock__hand{transform:rotate(var(--hand,0deg));transition:transform .25s var(--o-out)}
.oee-clock__q{position:absolute;translate:-50% -50%;font:500 13px/1 var(--gft-font-mono);letter-spacing:.06em;color:#dbe7e0;white-space:nowrap;pointer-events:none}
.oee-clock__q b{font-weight:600;color:#f6f4ef}
.oee-clock__core{position:absolute;inset:32%;display:grid;place-content:center;text-align:center;gap:6px;pointer-events:none}
.oee-clock__core output{font:850 12.5cqw/1 var(--gft-font-display);letter-spacing:-.05em;display:inline-block}
.oee-clock__core p{font:600 clamp(13px,3.1cqw,22px)/1.35 var(--gft-font-display);color:#e6efe9}
.oee-clock__run{position:absolute;left:50%;right:0;top:12.5%;height:5px;margin-top:-2px;background:#6bb68f;transform-origin:0 50%;border-radius:0 3px 3px 0}
.oee-close__down{position:absolute;right:0;top:calc(min(78svh,100cqw) * .125);bottom:calc(-1 * clamp(28px,5svh,56px));width:5px;background:#6bb68f;transform-origin:50% 0}
.oee-clock__cap{color:#c4dccf;padding-right:28px;text-align:right}
.oee-close__links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px 22px;padding-right:28px;font-size:17px;margin-top:auto}
.oee-close__links a{color:#f6f4ef;font-weight:700;min-height:44px;display:inline-flex;align-items:center;position:relative}
.oee-close__links a::after{content:'';position:absolute;left:100%;top:50%;width:12px;height:2px;background:#6bb68f66;margin-left:4px}
body[data-page="oee-line"] .gft-footer__next{position:relative}
body[data-page="oee-line"] .gft-footer__next::before{content:'';position:absolute;right:0;top:-1px;width:5px;height:clamp(64px,7vw,96px);background:#6bb68f}
body[data-page="oee-line"] .gft-footer .gft-footer__next .gft-footer__next-line{background:#6bb68f66;height:3px}
body[data-page="oee-line"] .gft-footer .gft-footer__next .gft-footer__next-line i{background:#6bb68f}

/* ---------- entrances: splash (on load) ---------- */
:root[data-m-go] [data-splash="oee-line"].gft-splash h1[data-m-in]{animation-name:oee-h1;animation-duration:560ms;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="oee-line"].gft-splash h1[data-m-in] .gft-serif{animation-name:oee-h1;animation-duration:480ms;animation-timing-function:cubic-bezier(.3,.7,.2,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:330ms}
@keyframes oee-h1{from{opacity:.1;transform:translateY(.32em) skewY(6deg)}to{opacity:1;transform:none}}
:root[data-m-go] .oee-wg__thread{animation-name:oee-draw;animation-duration:620ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .oee-wg__gate .oee-loop{animation-name:oee-drop;animation-duration:420ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:calc(250ms + var(--i,0) * 110ms)}
:root[data-m-go] .oee-wg__label{animation-name:oee-rise;animation-duration:380ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:calc(360ms + var(--i,0) * 90ms)}
:root[data-m-go] .oee-wg__arcs{animation-name:oee-sector;animation-duration:420ms;animation-timing-function:linear;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:480ms}
:root[data-m-go] .oee-wg__core output{animation-name:oee-blank;animation-duration:380ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:520ms}
:root[data-m-go] .oee-sc{animation-name:oee-rise;animation-duration:420ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:420ms}
@keyframes oee-draw{from{clip-path:inset(0 70% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes oee-drop{from{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:none}}
@keyframes oee-rise{from{opacity:.2;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes oee-blank{from{opacity:0;transform:translateY(.4em);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0 0 0 0)}}
@keyframes oee-sector{0%{clip-path:polygon(50% 50%,50% -20%,50% -20%,50% -20%,50% -20%,50% -20%,50% -20%)}25%{clip-path:polygon(50% 50%,50% -20%,120% -20%,120% 50%,120% 50%,120% 50%,120% 50%)}50%{clip-path:polygon(50% 50%,50% -20%,120% -20%,120% 120%,50% 120%,50% 120%,50% 120%)}75%{clip-path:polygon(50% 50%,50% -20%,120% -20%,120% 120%,-20% 120%,-20% 50%,-20% 50%)}100%{clip-path:polygon(50% 50%,50% -20%,120% -20%,120% 120%,-20% 120%,-20% -20%,50% -20%)}}
@keyframes oee-wipe{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes oee-wipe-up{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes oee-part-up{from{opacity:.3;transform:translateY(-32px)}to{opacity:1;transform:none}}
@keyframes oee-part-down{from{opacity:.3;transform:translateY(32px)}to{opacity:1;transform:none}}
@keyframes oee-from-l{from{opacity:.3;transform:translateX(-80px)}to{opacity:1;transform:none}}
@keyframes oee-from-r{from{opacity:.3;transform:translateX(80px)}to{opacity:1;transform:none}}
@keyframes oee-centre{from{clip-path:inset(0 50% 0 50%)}to{clip-path:inset(0 0 0 0)}}
@keyframes oee-grow-y{from{transform:scaleY(0)}to{transform:none}}
@keyframes oee-grow-x{from{transform:scaleX(0)}to{transform:none}}
@keyframes oee-tie{from{transform:scale(.4)}to{transform:none}}
@keyframes oee-turn-in{from{transform:rotate(-90deg);clip-path:polygon(50% 50%,50% -20%,50% -20%,50% -20%,50% -20%,50% -20%,50% -20%)}25%{clip-path:polygon(50% 50%,50% -20%,120% -20%,120% 50%,120% 50%,120% 50%,120% 50%)}50%{clip-path:polygon(50% 50%,50% -20%,120% -20%,120% 120%,50% 120%,50% 120%,50% 120%)}75%{clip-path:polygon(50% 50%,50% -20%,120% -20%,120% 120%,-20% 120%,-20% 50%,-20% 50%)}to{transform:none;clip-path:polygon(50% 50%,50% -20%,120% -20%,120% 120%,-20% 120%,-20% -20%,50% -20%)}}
@keyframes oee-hand-in{from{transform:rotate(52deg)}}
@keyframes oee-cascade{from{opacity:.25;transform:translateX(-14px)}to{opacity:1;transform:none}}

/* ---------- entrances: blocks (armed by film.ts; partial pre-states) ---------- */
/* 2 shed: the bar draws across, then the console halves part from the bar line */
:root[data-m-go] main[data-oee-armed] [data-oee-ent=shed]:not([data-oee-on]) .oee-shift__bar{clip-path:inset(0 70% 0 0)}
:root[data-m-go] main[data-oee-armed] [data-oee-ent=shed]:not([data-oee-on]) [data-oee-part=top]{opacity:.3;transform:translateY(-32px)}
:root[data-m-go] main[data-oee-armed] [data-oee-ent=shed]:not([data-oee-on]) :is([data-oee-part=bottom],.oee-line__art){opacity:.3;transform:translateY(32px)}
:root[data-m-go] [data-oee-ent=shed][data-oee-on]:not([data-oee-done]) .oee-shift__bar{animation-name:oee-draw;animation-duration:400ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-oee-ent=shed][data-oee-on]:not([data-oee-done]) [data-oee-part=top]{animation-name:oee-part-up;animation-duration:550ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:300ms}
:root[data-m-go] [data-oee-ent=shed][data-oee-on]:not([data-oee-done]) :is([data-oee-part=bottom],.oee-line__art){animation-name:oee-part-down;animation-duration:550ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:300ms}
:root[data-m-go] [data-oee-ent=shed][data-oee-on]:not([data-oee-done]) .oee-read__score output{animation-name:oee-blank;animation-duration:380ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:500ms}
/* 3 wind: the loops settle on the pairs, the bobbins wind up from the base */
:root[data-m-go] main[data-oee-armed] [data-oee-ent=wind]:not([data-oee-on]) .oee-pair__head{opacity:.3;transform:translateY(-20px)}
:root[data-m-go] main[data-oee-armed] [data-oee-ent=wind]:not([data-oee-on]) .oee-bob__core{clip-path:inset(72% 0 0 0)}
:root[data-m-go] main[data-oee-armed] [data-oee-ent=wind]:not([data-oee-on]) .oee-bk{opacity:.3;transform:translateX(24px)}
:root[data-m-go] [data-oee-ent=wind][data-oee-on]:not([data-oee-done]) .oee-pair__head{animation-name:oee-drop;animation-duration:300ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-oee-ent=wind][data-oee-on]:not([data-oee-done]) .oee-bob__core{animation-name:oee-wipe-up;animation-duration:600ms;animation-timing-function:var(--o-io);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:calc(200ms + min(var(--j,0) * 40ms,250ms))}
:root[data-m-go] [data-oee-ent=wind][data-oee-on]:not([data-oee-done]) .oee-bob__min{animation-name:oee-blank;animation-duration:360ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:480ms}
:root[data-m-go] [data-oee-ent=wind][data-oee-on]:not([data-oee-done]) .oee-bk{animation-name:oee-from-r;animation-duration:520ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:300ms}
:root[data-m-go] main[data-oee-armed] [data-oee-ent=reel]:not([data-oee-on]) svg{clip-path:inset(0 0 70% 0)}
:root[data-m-go] [data-oee-ent=reel][data-oee-on]:not([data-oee-done]) svg{animation-name:oee-reel-in;animation-duration:800ms;animation-timing-function:var(--o-io);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes oee-reel-in{from{clip-path:inset(0 0 70% 0)}to{clip-path:inset(0 0 0 0)}}
/* 4 spin: the dial turns in as its arcs sweep, then the ledger wipes and the rows cascade */
:root[data-m-go] main[data-oee-armed] [data-oee-ent=spin]:not([data-oee-on]) .oee-ms__dial svg{transform:rotate(-60deg);clip-path:polygon(50% 50%,50% -20%,120% -20%,120% 50%,120% 50%,120% 50%,120% 50%)}
:root[data-m-go] main[data-oee-armed] [data-oee-ent=spin]:not([data-oee-on]) .oee-ms__ledger{clip-path:inset(0 70% 0 0)}
:root[data-m-go] main[data-oee-armed] [data-oee-ent=spin]:not([data-oee-on]) .oee-ms__row{opacity:.25;transform:translateX(-14px)}
:root[data-m-go] [data-oee-ent=spin][data-oee-on]:not([data-oee-done]) .oee-ms__dial svg{animation-name:oee-turn-in;animation-duration:450ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-oee-ent=spin][data-oee-on]:not([data-oee-done]) .oee-ms__ledger{animation-name:oee-wipe;animation-duration:550ms;animation-timing-function:var(--o-io);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:350ms}
:root[data-m-go] [data-oee-ent=spin][data-oee-on]:not([data-oee-done]) .oee-ms__row{animation-name:oee-cascade;animation-duration:420ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:380ms}
:root[data-m-go] [data-oee-ent=spin][data-oee-on]:not([data-oee-done]) .oee-ms__row:nth-child(2){animation-delay:410ms}
:root[data-m-go] [data-oee-ent=spin][data-oee-on]:not([data-oee-done]) .oee-ms__row:nth-child(3){animation-delay:440ms}
:root[data-m-go] [data-oee-ent=spin][data-oee-on]:not([data-oee-done]) .oee-ms__row:nth-child(4){animation-delay:470ms}
:root[data-m-go] [data-oee-ent=spin][data-oee-on]:not([data-oee-done]) .oee-ms__row:nth-child(5){animation-delay:500ms}
/* 5 iris: the night opens from the ring's cut point (scroll-linked), then the thread lays out and the loops drop */
:root[data-m-go] main[data-oee-armed] [data-oee-ent=iris]:not([data-oee-on]) .oee-il__thread{clip-path:inset(0 72% 0 0)}
:root[data-m-go] main[data-oee-armed] [data-oee-ent=iris]:not([data-oee-on]) .oee-il__pick{opacity:.25;transform:translateY(-30px)}
:root[data-m-go] main[data-oee-armed] [data-oee-ent=iris]:not([data-oee-on]) .oee-il__panel{opacity:.3;transform:translateY(20px)}
:root[data-m-go] [data-oee-ent=iris][data-oee-on]:not([data-oee-done]) .oee-il__thread{animation-name:oee-wipe;animation-duration:520ms;animation-timing-function:var(--o-io);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:200ms}
:root[data-m-go] [data-oee-ent=iris][data-oee-on]:not([data-oee-done]) .oee-il__pick{animation-name:oee-drop;animation-duration:380ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:calc(420ms + var(--i,0) * 90ms)}
:root[data-m-go] [data-oee-ent=iris][data-oee-on]:not([data-oee-done]) .oee-il__panel{animation-name:oee-rise;animation-duration:480ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:120ms}
.oee-il__gate .oee-il__pick{--i:0}.oee-il__gate--p .oee-il__pick{--i:1}.oee-il__gate--q .oee-il__pick{--i:2}
/* 6 ply: the rings slide in from opposite edges, then the thread pairs open from the centre knot */
:root[data-m-go] main[data-oee-armed] [data-oee-ent=ply]:not([data-oee-on]) .oee-cring--a{opacity:.3;transform:translateX(-80px)}
:root[data-m-go] main[data-oee-armed] [data-oee-ent=ply]:not([data-oee-on]) .oee-cring--b{opacity:.3;transform:translateX(80px)}
:root[data-m-go] main[data-oee-armed] [data-oee-ent=ply]:not([data-oee-on]) .oee-diff__bars{clip-path:inset(0 40% 0 40%)}
:root[data-m-go] [data-oee-ent=ply][data-oee-on]:not([data-oee-done]) .oee-cring--a{animation-name:oee-from-l;animation-duration:400ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-oee-ent=ply][data-oee-on]:not([data-oee-done]) .oee-cring--b{animation-name:oee-from-r;animation-duration:400ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-oee-ent=ply][data-oee-on]:not([data-oee-done]) .oee-diff__bars{animation-name:oee-centre;animation-duration:560ms;animation-timing-function:var(--o-io);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:300ms}
:root[data-m-go] [data-oee-ent=ply][data-oee-on]:not([data-oee-done]) .oee-chip b{animation-name:oee-blank;animation-duration:380ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:420ms}
/* 7 knot: the posts rise and the top rail draws, then the threads pull taut row by row and the knots tie */
:root[data-m-go] main[data-oee-armed] [data-oee-ent=knot]:not([data-oee-on]) .oee-board__k::before{transform:scaleY(.25)}
:root[data-m-go] main[data-oee-armed] [data-oee-ent=knot]:not([data-oee-on]) .oee-reg__railline{transform:scaleX(.3)}
:root[data-m-go] main[data-oee-armed] [data-oee-ent=knot]:not([data-oee-on]) .oee-board tbody :is(th,td){clip-path:inset(0 100% 0 0)}
:root[data-m-go] main[data-oee-armed] [data-oee-ent=knot]:not([data-oee-on]) .oee-board__knot{transform:scale(.4)}
:root[data-m-go] [data-oee-ent=knot][data-oee-on]:not([data-oee-done]) .oee-board__k::before{animation-name:oee-grow-y;animation-duration:350ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-oee-ent=knot][data-oee-on]:not([data-oee-done]) .oee-reg__railline{animation-name:oee-grow-x;animation-duration:350ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-oee-ent=knot][data-oee-on]:not([data-oee-done]) .oee-board tbody :is(th,td){animation-name:oee-wipe;animation-duration:420ms;animation-timing-function:var(--o-io);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:calc(300ms + var(--i,0) * 40ms)}
:root[data-m-go] [data-oee-ent=knot][data-oee-on]:not([data-oee-done]) .oee-board__knot{animation-name:oee-tie;animation-duration:300ms;animation-timing-function:cubic-bezier(.3,1.6,.5,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:calc(560ms + var(--i,0) * 40ms)}
/* 8 heddle: the ticks rise round the face, then the segments sweep in and the hand turns to its minute */
:root[data-m-go] main[data-oee-armed] [data-oee-ent=heddle]:not([data-oee-on]) .oee-clock__tick{transform:scaleY(.2)}
:root[data-m-go] main[data-oee-armed] [data-oee-ent=heddle]:not([data-oee-on]) .oee-clock__face{clip-path:polygon(50% 50%,50% -20%,120% -20%,120% 50%,120% 50%,120% 50%,120% 50%)}
:root[data-m-go] main[data-oee-armed] [data-oee-ent=heddle]:not([data-oee-on]) .oee-clock__hand{transform:rotate(52deg)}
:root[data-m-go] main[data-oee-armed] [data-oee-ent=heddle]:not([data-oee-on]) :is(.oee-clock__run,.oee-close__down){opacity:0}
:root[data-m-go] [data-oee-ent=heddle][data-oee-on]:not([data-oee-done]) .oee-clock__tick{animation-name:oee-grow-y;animation-duration:380ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:min(calc(var(--i,0) * 6ms),250ms)}
:root[data-m-go] [data-oee-ent=heddle][data-oee-on]:not([data-oee-done]) .oee-clock__face{animation-name:oee-sector;animation-duration:450ms;animation-timing-function:linear;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:300ms}
:root[data-m-go] [data-oee-ent=heddle][data-oee-on]:not([data-oee-done]) .oee-clock__hand{animation-name:oee-hand-in;animation-duration:600ms;animation-timing-function:var(--o-io);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:300ms}
:root[data-m-go] [data-oee-ent=heddle][data-oee-on]:not([data-oee-done]) .oee-clock__run{animation-name:oee-grow-x;animation-duration:260ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:640ms}
:root[data-m-go] [data-oee-ent=heddle][data-oee-on]:not([data-oee-done]) .oee-close__down{animation-name:oee-grow-y-top;animation-duration:300ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:620ms}
:root[data-m-go] [data-oee-ent=heddle][data-oee-on]:not([data-oee-done]) .oee-clock__core output{animation-name:oee-blank;animation-duration:380ms;animation-timing-function:var(--o-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:480ms}
@keyframes oee-grow-y-top{from{transform:scaleY(0)}to{transform:none}}

/* ---------- lives (on screen only, off in Calm and reduced motion) ---------- */
:root[data-m-go] [data-m-live~=oee-tick][data-m-on] i{animation-name:oee-tick;animation-duration:8s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal}
@keyframes oee-tick{from{transform:translateX(0)}to{transform:translateX(6.5vw)}}
:root[data-m-go] [data-m-live~=oee-sway][data-m-on]{animation-name:oee-sway;animation-duration:4.8s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;animation-delay:calc(var(--i,0) * -1.3s)}
@keyframes oee-sway{from{transform:rotate(-1.2deg)}to{transform:rotate(1.2deg)}}
:root[data-m-go] [data-m-live~=oee-orbit][data-m-on]{animation-name:oee-orbit;animation-duration:36s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal}
@keyframes oee-orbit{to{transform:rotate(360deg)}}
:root[data-m-go] [data-m-live~=oee-glint][data-m-on]{animation-name:oee-glint;animation-duration:6s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:normal;animation-delay:1s}
@keyframes oee-glint{0%{transform:translateX(-110%)}18%,100%{transform:translateX(110%)}}
:root[data-m-go] [data-m-live~=oee-breathe][data-m-on]{animation-name:oee-breathe;animation-duration:6s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes oee-breathe{from{transform:scale(.975)}to{transform:scale(1)}}
:root[data-m-go] [data-m-live~=oee-shimmer][data-m-on]{animation-name:oee-shimmer;animation-duration:5s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:normal}
@keyframes oee-shimmer{from{transform:translateY(100%)}to{transform:translateY(-250%)}}
:root[data-m-go] [data-m-live~=oee-tag][data-m-on]{animation-name:oee-tag;animation-duration:3.2s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes oee-tag{from{opacity:.7}to{opacity:1}}
:root[data-m-go] [data-m-live~=oee-run][data-m-on] .oee-ms__runner{animation-name:oee-orbit;animation-duration:4s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal}
:root[data-m-go] [data-m-live~=oee-breathe-chip][data-m-on]{animation-name:oee-breathe;animation-duration:4s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
:root[data-m-go] [data-m-live~=oee-knot][data-m-on]{animation-name:oee-knotpulse;animation-duration:2.6s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes oee-knotpulse{from{transform:scale(.8)}to{transform:scale(1.15)}}
:root[data-m-go] [data-m-live~=oee-halo][data-m-on]{animation-name:oee-halo;animation-duration:14s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes oee-halo{from{transform:translate(0,0)}to{transform:translate(-4%,3%)}}
:root[data-m-go] [data-m-live~=oee-bead][data-m-on]{animation-name:oee-bead;animation-duration:8s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal}
@keyframes oee-bead{from{transform:rotate(var(--g0,75deg))}to{transform:rotate(var(--g1,360deg))}}
:root[data-m-go] [data-m-live~=oee-tip][data-m-on]{animation-name:oee-tag;animation-duration:1.8s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
.oee-clock__bead{transform:rotate(var(--g0,75deg))}

/* ---------- hand-overs carried by the motif (scroll-linked: transform and opacity only, longhands) ---------- */
@supports (animation-timeline:view()){
 :root[data-m-go] [data-splash="oee-line"] .oee-wg__band{animation-name:oee-lower;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--gft-splash;animation-range-start:exit 0%;animation-range-end:exit 100%}
 :root[data-m-go] .oee-pair__head .oee-loop--head{animation-name:oee-fall;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range-start:entry 0%;animation-range-end:cover 42%}
 :root[data-m-go] .oee-il__paper{display:block;animation-name:oee-iris;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--oee-il;animation-range-start:entry 0%;animation-range-end:entry 42%}
 :root[data-m-go] .oee-cmp__plyin svg{animation-name:oee-twist;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range-start:entry 0%;animation-range-end:cover 60%}
 :root[data-m-go] .oee-reg__fan svg{animation-name:oee-fan;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range-start:entry 0%;animation-range-end:cover 60%}
 :root[data-m-go] .oee-close .oee-clock{animation-name:oee-grow;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--oee-close;animation-range-start:entry 0%;animation-range-end:entry 85%}
}
@keyframes oee-lower{to{transform:translateY(7vh);opacity:.4}}
@keyframes oee-fall{from{transform:translateY(-36vh) rotate(-12deg)}to{transform:none}}
@property --oee-r{syntax:'<length>';inherits:false;initial-value:150vmax}
@keyframes oee-iris{from{--oee-r:16vmax}to{--oee-r:150vmax}}
@keyframes oee-twist{from{transform:scaleY(-1) translateX(-6%)}to{transform:none}}
@keyframes oee-grow{from{transform:translate(6%,-34vh) scale(.45)}to{transform:none}}
@keyframes oee-fan{from{transform:scaleY(.2) translateX(-12%)}to{transform:none}}

/* ---------- tablet ---------- */
@media (max-width:1100px){
 .oee-film{--o-gut:28px}
 .oee-console{grid-template-columns:1fr}
 .oee-read{position:static}
 .oee-creel__grid{grid-template-columns:1fr}
 .oee-method__grid{grid-template-columns:minmax(0,44fr) minmax(0,56fr)}
 .oee-il__panel{width:min(42%,460px)}
 .oee-cmp__stage{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.oee-cmp__mid{grid-column:1/-1;grid-row:2}
 .oee-reg__board{grid-template-columns:1fr}.oee-reg__dial{grid-template-columns:min(260px,40%) minmax(0,1fr);align-items:center}.oee-reg__note{grid-column:1/-1}
 .oee-reg__receipts{grid-template-columns:1fr}
 .oee-close__grid{grid-template-columns:1fr;min-height:0}.oee-close__col{align-items:center}.oee-clock{width:min(70svh,100cqw)}
 .oee-close__down,.oee-clock__run{display:none}
}
@media (max-width:1000px){[data-splash="oee-line"].gft-splash .gft-splash__structure{inset:0}}

/* ---------- phone ---------- */
@media (max-width:700px){
 .oee-film{--o-gut:20px;padding-block:56px}
 .oee-film h2{font-size:clamp(2rem,9vw,2.6rem)}
 [data-splash="oee-line"].gft-splash{--oee-band:450px}
 [data-splash="oee-line"].gft-splash h1{font-size:clamp(2.6rem,13vw,3.5rem);max-width:8ch}
 [data-splash="oee-line"].gft-splash h1 .gft-serif{font-size:.6em}
 [data-splash="oee-line"].gft-splash .gft-splash__lede{font-size:16px;max-width:none}
 [data-splash="oee-line"].gft-splash .gft-splash__content{padding-top:40px;padding-bottom:calc(var(--oee-band) + 12px)}
 [data-splash="oee-line"].gft-splash .gft-splash__structure{inset:auto 0 var(--splash-strip-h,60px) 0;height:var(--oee-band)}
 [data-splash="oee-line"].gft-splash .gft-splash__structure::after{display:none}
 [data-splash="oee-line"].gft-splash .gft-splash__actions{top:auto;bottom:calc(var(--splash-strip-h,60px) + 10px);left:20px;right:20px}
 .oee-sc{width:auto}
 .oee-sc__label,.oee-sc input{width:100%}
 .oee-sc__read{font-size:22px;gap:0 10px;display:grid;grid-template-columns:auto auto;justify-content:start}
 .oee-sc__read span+span::before{display:none}
 .oee-sc__read span:last-child{grid-column:1/-1}
 .oee-wg__thread{left:28px;top:0;width:16px;height:290px;translate:-50% 0}
 .oee-wg__warp{left:7px;right:auto;top:0;bottom:0;width:2px;height:auto;background:linear-gradient(#b6dfc8a6 0 70%,#6bb68f)}
 .oee-wg__good{left:5px;right:auto;top:76%;bottom:0;width:6px;height:auto;border-radius:0}
 .oee-wg__ticks i{inset:-60px 0 -20px 0;background:repeating-linear-gradient(180deg,#d8ece0 0 1px,transparent 1px 12px)}
 .oee-wg__tl{display:none}
 .oee-wg__gate{left:28px;top:calc(30px + var(--i) * 92px)}
 [data-splash="oee-line"].gft-splash .gft-splash__data{display:none}
 .oee-wg__label small,.oee-sc__ends{display:none}
 .oee-wg__weft{left:-20px;top:-1px;width:40px;height:2px;background:linear-gradient(90deg,#b6dfc800,#b6dfc8 30% 70%,#b6dfc800)}
 .oee-wg__sway{left:-12px;top:0;rotate:-90deg;transform-origin:50% 0}
 .oee-wg .oee-loop{--h:64px;width:24px}
 .oee-wg .oee-loop__cap b{display:none}
 .oee-wg__label,.oee-wg__gate--q .oee-wg__label{left:18px;right:auto;top:16px;text-align:left}
 .oee-wg__label b{font-size:22px}
 .oee-wg__dial{left:auto;right:4px;top:10px;width:min(48vw,200px);translate:none}
 .oee-wg__core span{display:none}
 :root[data-m-go] [data-m-live~=oee-tick][data-m-on] i{animation-name:oee-tick-v}
 .oee-ins__head,.oee-creel__head,.oee-cmp__head,.oee-reg__head{grid-template-columns:1fr}
 .oee-shift__legend{grid-template-columns:1fr 1fr}
 .oee-line__art{display:none}.oee-line__mobile{display:block}
 .oee-read__top{grid-template-columns:150px minmax(0,1fr)}
 .oee-read__score output{font-size:48px}
 .oee-read__sixgrid{grid-template-columns:1fr}
 .oee-field__pair{grid-template-columns:1fr}
 .oee-creel__pairs{flex-direction:column;align-items:stretch}
 .oee-pair{flex:none;min-width:0;grid-template-columns:110px minmax(0,1fr);align-items:end}
 .oee-pair__head{min-height:0;grid-template-columns:auto minmax(0,1fr);align-content:start}
 .oee-pair__head output{grid-column:2}
 .oee-loop--head{--h:96px;grid-row:span 2}
 .oee-bob__spool{height:130px;width:56px}
 .oee-ledger{grid-template-columns:1fr 1fr}.oee-ledger__cell:nth-child(3){padding-left:0;border-left:0}
 .oee-method__grid{display:block}
 .oee-ms{position:sticky;top:0;height:40svh;z-index:2;grid-template-rows:auto auto minmax(0,1fr);gap:6px;padding:12px 20px 10px}
 .oee-ms .gft-eyebrow,.oee-ms__rail,.oee-ms__rows,.oee-ms__key,.oee-ms__garments{display:none}
 .oee-ms h2{font-size:20px;line-height:1.15}
 .oee-ms__display b{font-size:30px}.oee-ms__display span{font-size:13px}
 .oee-ms__dialwrap{grid-template-columns:auto}
 .oee-ms__dial{width:min(17svh,150px)}
 .oee-ms__ledger{padding-bottom:0}
 .oee-method__steps{padding:8svh 20px 0}
 .oee-step{min-height:62svh;max-width:none}.oee-step:last-child{min-height:90svh;padding-top:10svh}
 .oee-il__head{left:20px;right:20px;top:20px;width:auto}
 .oee-il h2{font-size:clamp(1.7rem,7.6vw,2.2rem)}
 .oee-il__states{margin-top:10px;gap:12px}
 .oee-il__field,.oee-il__gate{top:27%}
 .oee-il .oee-il__gate--a{left:13%}.oee-il .oee-il__gate--p{left:39%}.oee-il .oee-il__gate--q{left:65%}
 .oee-il__glab{left:0;translate:-50% 0;top:-44px;text-align:center}.oee-il__glab span{display:none}.oee-il__glab b{font-size:18px}
 .oee-il__loop{--h:64px;width:28px}
 .oee-il .oee-il__min{font-size:17px;translate:-50% 8px}
 .oee-ins__handover,.oee-ins__out,.oee-il__bridge,.oee-close__gather{display:none}
 .oee-il__score{left:auto;right:20px;top:-58px;padding-left:0;text-align:right}.oee-il__score b{font-size:26px}
 .oee-il__pick{min-width:96px}
 .oee-il__thread{left:0;right:auto;width:100%}
 .oee-il__panel{left:20px;right:20px;top:auto;bottom:14px;width:auto;gap:10px}
 .oee-il__head .gft-eyebrow{display:none}
 .oee-il__card h3{font-size:19px}
 .oee-il__card p{font-size:16px;line-height:1.5}
 .oee-il__cap{left:20px;right:20px;top:calc(27% + 34px);bottom:auto;height:110px}
 .oee-il__captitle{top:-24px}
 .oee-il__bob{width:56px}.oee-il__bob--a{left:70px}.oee-il__bob--b{left:150px}.oee-il__bracket{left:216px}.oee-il__bracket b{font-size:17px;left:20px}
 .oee-il__stage[data-state="3"] :is(.oee-il__gates,.oee-il__field){opacity:0;visibility:hidden}
 .oee-il__rank{display:none}
 .oee-cmp__stage{grid-template-columns:1fr 1fr;gap:12px}
 .oee-cring__dial{width:140px}
 .oee-cring__val b{font-size:26px}
 .oee-cmp__set{margin-left:0}
 .oee-diff{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:'n va vb' 'b b b'}
 .oee-diff__name{grid-area:n}.oee-diff__va{grid-area:va}.oee-diff__vb{grid-area:vb}.oee-diff__bars{grid-area:b}
 .oee-cmp__table :is(th,td){padding:8px 6px;font-size:15px}
 .oee-reg__rail{grid-template-columns:1fr;gap:14px}
 .oee-knot i{top:12px;left:-26px}.oee-knot{margin-left:26px}
 .oee-reg__railline{left:-17px;right:auto;top:0;bottom:0;width:3px;height:auto;transform-origin:50% 0}
 .oee-reg__dial{position:sticky;top:0;z-index:2;background:#05302d;grid-template-columns:120px minmax(0,1fr);gap:12px;padding:10px 0;height:auto}
 .oee-reg__note{font-size:15px}
 .oee-reg__dial{order:-1}
 .oee-reg__ring span{display:none}
 .oee-board,.oee-board tbody,.oee-board caption{display:block}.oee-board thead{display:none}
 .oee-board tbody tr{display:grid;grid-template-columns:repeat(3,auto) minmax(0,1fr);gap:4px 10px;padding:12px 0;border-bottom:1px solid #ffffff1f}
 .oee-board tbody :is(th,td){padding:4px 0;border:0;white-space:normal}
 .oee-board tbody th{grid-column:1/-1;font-size:17px}
 .oee-board tbody td:nth-of-type(1){grid-column:1/-1;font-size:15px;color:#dbe7e0}
 .oee-board tbody td:nth-of-type(2){grid-column:1/-1}
 .oee-board__live output{font-size:22px;font-weight:800}
 .oee-board__k{width:44px}
 .oee-board__k::before{top:4px;bottom:4px}
 .oee-board tbody .oee-board__k::after{display:none}
 .oee-close{padding-block:48px}
 .oee-close__text{display:contents}
 .oee-close__grid{gap:14px}
 .oee-close__col{display:contents}
 .oee-close .gft-eyebrow{order:1}.oee-close h2{order:2}.oee-close__lede{order:3}.oee-clock{order:4;justify-self:center}.oee-clock__cap{order:5}.oee-clock__ctl{order:6}.oee-close__read{order:7}.oee-clock__ctl--bezel{order:8}.oee-close__fine{order:9}.oee-close__links{order:10}
 .oee-clock{width:min(340px,calc(100vw - 40px))}
 .oee-clock__core p{display:none}
 .oee-clock__q{font-size:13px}
 .oee-close__links{justify-content:flex-start;padding-right:0}.oee-close__links a::after{display:none}
 .oee-clock__cap{text-align:left;padding-right:0}
}
@keyframes oee-tick-v{from{transform:translateY(0)}to{transform:translateY(48px)}}
@media (prefers-reduced-motion:reduce){
 .oee-il__paper{display:none}
 .oee-wg__stage,.oee-wg__band,.oee-pair__head .oee-loop--head,.oee-cmp__plyin svg,.oee-reg__fan svg,.oee-close .oee-clock{animation-name:none;animation-timeline:auto}
}
.oee-film .gft-eyebrow,[data-splash="oee-line"].gft-splash .gft-eyebrow,[data-splash="oee-line"].gft-splash .gft-splash__cue{font-size:13px}
body[data-page="oee-line"] .gft-footer :is(.gft-footer__next-k,.gft-mono,.gft-footer__bottom a,.gft-footer__bottom button){font-size:13px}
