/* Edge architecture page. Every selector is prefixed ea-. Pre-states exist only under :root[data-m-go]. */
.ea-eyebrow{display:flex;align-items:center;gap:12px;font:12px/1.6 var(--gft-font-mono);letter-spacing:.12em;text-transform:uppercase;color:#0e4d4a;margin-bottom:20px}.ea-eyebrow::before{content:'';width:22px;height:1px;background:currentColor}.ea-eyebrow--dark{color:#9fd1b7}
.ea-lede{font-size:clamp(1.05rem,1.4vw,1.3rem);line-height:1.6;max-width:58ch}
.ea-note{font:13px/1.7 var(--gft-font-mono);color:#2f463c;max-width:62ch}.ea-note--dark{color:#c4d9cd}
.ea-btn{display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;border:1px solid currentColor;background:transparent;color:var(--gft-forest);font:600 13px/1.4 var(--gft-font-mono);text-decoration:none;cursor:pointer}.ea-btn:hover{background:var(--gft-forest);color:var(--gft-paper)}.ea-btn--light{color:var(--gft-paper);border-color:#9fd1b7}.ea-btn--light:hover{background:var(--gft-paper);color:var(--gft-night)}
.ea-textlink{display:inline-flex;align-items:center;min-height:44px;padding:8px 4px;font:600 14px var(--gft-font-mono);color:var(--gft-forest);text-underline-offset:5px}.ea-textlink--dark{color:#cfe6da}
.ea-chips{display:flex;flex-wrap:wrap;gap:6px}.ea-chips label{position:relative;display:block}.ea-chips input{position:absolute;opacity:0;width:1px;height:1px}
.ea-chips label>span,.ea-chips button{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border:1px solid var(--gft-forest);background:transparent;color:var(--gft-forest);font:600 13px/1.3 var(--gft-font-mono);cursor:pointer}
.ea-chips input:checked+span,.ea-chips button[aria-pressed=true]{background:var(--gft-forest);color:var(--gft-paper)}.ea-chips input:focus-visible+span,.ea-chips button:focus-visible{outline:3px solid var(--gft-ochre);outline-offset:3px}.ea-chips input:disabled+span{opacity:.4;cursor:not-allowed}
.ea-chips--dark label>span{border-color:#6bb68f;color:#dcebe3}.ea-chips--dark input:checked+span{background:#6bb68f;color:#072d2b}
.ea-switch{display:inline-flex;align-items:center;gap:12px;min-height:44px;font:600 14px var(--gft-font-mono);cursor:pointer}.ea-switch input{width:22px;height:22px;accent-color:var(--gft-forest)}.ea-switch--dark{color:#dcebe3}.ea-switch--dark input{accent-color:#6bb68f}
.ea-chip{display:inline-flex;align-items:center;min-height:40px;padding:6px 14px;font:700 14px var(--gft-font-mono);background:#6bb68f;color:#072d2b}.ea-chip[data-ok=false]{background:#e9b765;color:#2b1b00}
.ea-meter{display:block;height:8px;background:#ffffff22;overflow:hidden}.ea-meter b{display:block;height:100%;background:#6bb68f;transform-origin:left;transition:transform 520ms var(--m-out)}.ea-meter--wide{margin-block:20px}
.ea-rb{display:block;position:relative;height:8px;background:#0e4d4a26;margin:0 0 8px;min-width:120px}.ea-rb__fill{position:absolute;inset:0;background:#3f8f6b;transform-origin:left;transition:transform 420ms var(--m-out)}.ea-rb__def{position:absolute;top:-4px;width:2px;height:16px;background:#c98a2b}.ea-rb--big{height:12px;background:#ffffff26;margin-block:18px}.ea-rb--big .ea-rb__fill{background:#6bb68f}
.ea-flow{position:relative}
.ea-hl{outline:3px solid var(--gft-ochre);outline-offset:6px}

/* ---------- the stack (one component, four scales) ---------- */
.ea-stack3{width:100%;height:auto;display:block;overflow:visible}
.ea-rail{fill:none;stroke-width:1.5}.ea-rail--lan{stroke:#6bb68f}.ea-rail--wan{stroke:#c98a2b;stroke-dasharray:7 9}
.ea-lan{transition:opacity 500ms}.ea-stack3[data-lan=down] .ea-lan{opacity:.18}
.ea-wan{opacity:var(--ea-wan-o,1);transition:opacity 500ms}
.ea-wan-a,.ea-wan-b{transform-box:fill-box;transition:transform 700ms var(--m-out);transition-delay:calc(var(--s,0) * 80ms)}
.ea-stack3[data-link=down] .ea-wan-a{transform:translate(calc((var(--s) - 1) * 4px),-18px)}
.ea-stack3[data-link=down] .ea-wan-b{transform:translate(calc((1 - var(--s)) * 4px),18px)}
.ea-top{fill:var(--ea-fill,#0e4d4a);stroke:#6bb68f;stroke-opacity:.85}.ea-side{fill:none;stroke:#6bb68f;stroke-opacity:.45}.ea-tie{fill:none;stroke:#6bb68f;stroke-opacity:.6}
.ea-layer[data-layer=analytics],.ea-layer[data-layer=core]{--ea-fill:#243563}
.ea-layer{transform-box:fill-box;transform-origin:50% 50%;transition:opacity 420ms}
.ea-layer[data-s=stale] :is(.ea-top,.ea-side,.ea-tie){opacity:.8}.ea-layer[data-s=stale] .ea-top{stroke:#c98a2b;stroke-dasharray:6 6}
.ea-layer[data-s=down] :is(.ea-top,.ea-side,.ea-tie){opacity:.55}.ea-layer[data-s=down] .ea-top{--ea-fill:#122322;stroke-dasharray:3 7}
.ea-layer[data-s=queue] .ea-top{stroke:#c98a2b;stroke-opacity:1}.ea-layer[data-s=battery] .ea-top{stroke:#e7d7bc;stroke-opacity:1}
.ea-stack3 .ea-layer-title{font:600 15px var(--gft-font-mono);letter-spacing:2px;fill:#f6f4ef}.ea-stack3 .ea-layer-sub{font:12.5px var(--gft-font-mono);fill:#d3e6db}
.ea-stack3 .ea-layer-state{font:700 13px var(--gft-font-mono);letter-spacing:2px;fill:#6bb68f}.ea-layer[data-s=queue] .ea-layer-state{fill:#eec077}.ea-layer[data-s=battery] .ea-layer-state{fill:#e7d7bc}.ea-layer[data-s=stale] .ea-layer-state{fill:#eec077}.ea-layer[data-s=down] .ea-layer-state{fill:#d98a7a}
.ea-pkc{fill:#6bb68f;transform:translateY(0);opacity:0}.ea-pkc--wan{fill:#c98a2b}.ea-pk--wan{transition:opacity 500ms}.ea-stack3[data-link=down] .ea-pk--wan{opacity:0}
:root:not([data-m-go]) .ea-pk--lan .ea-pkc:nth-child(1){transform:translateY(-90px);opacity:1}:root:not([data-m-go]) .ea-pk--lan .ea-pkc:nth-child(2){transform:translateY(-200px);opacity:1}:root:not([data-m-go]) .ea-pk--lan .ea-pkc:nth-child(3){transform:translateY(-300px);opacity:1}
:root[data-m-go] [data-m-live~=ea-packets][data-m-on] .ea-pkc{animation-name:ea-pkrun;animation-duration:7s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal;animation-delay:var(--d,0s)}
@keyframes ea-pkrun{0%{transform:translateY(0);opacity:0}8%{opacity:1}90%{opacity:1}100%{transform:translateY(-377px);opacity:0}}
:root[data-ea-paused] .ea-pkc,:root[data-ea-paused] .ea-wan-a,:root[data-ea-paused] .ea-wan-b,:root[data-ea-paused] .ea-pk--wan,:root[data-ea-paused] .ea-day-cursor{animation-play-state:paused}
.ea-stack3--mini text{display:none}.ea-stack3--mini .ea-pkc{display:none}
[data-m-live~=ea-wan],[data-m-live~=ea-packets],[data-m-live~=ea-cursor]{overflow-anchor:none}
.ea-stack3--close .ea-layer-sub{display:none}.ea-stack3--close .ea-layer-title{font-size:16px}.ea-stack3--close .ea-layer-state{font-size:15px;transform:translateY(-18px)}

/* ---------- splash structure ---------- */
[data-splash=edge-architecture] .gft-splash__structure{inset:0 -3% 92px auto;width:min(60vw,880px);display:flex;flex-direction:column;align-items:center;justify-content:center}
[data-splash=edge-architecture] .gft-splash__structure::after{display:none}
[data-splash=edge-architecture] h1{max-width:11ch;font-size:clamp(3.2rem,6vw,6rem)}[data-splash=edge-architecture] .gft-splash__lede{max-width:40ch}
.ea-hero{width:100%}.ea-hero .ea-stack3{width:100%;max-height:calc(100svh - 330px)}.ea-hero .ea-stack3 .ea-layer-sub{font-size:14.5px}.ea-hero .ea-stack3 .ea-layer-title{font-size:17px}
.ea-hero__read{margin-top:14px;font:13px/1.7 var(--gft-font-mono);letter-spacing:.06em;color:#e9f3ed}.ea-hero__read p{max-width:none}.ea-hero__read b{color:#fff;font-weight:700;font-size:16px}.ea-hero__cap{font-size:12px!important;letter-spacing:.12em;color:#d3e6db}
.ea-hero__day{width:100%;height:34px;display:block;overflow:visible}
.ea-day-bar{fill:#ffffff1c}.ea-day-out{fill:#c98a2b;transform-box:fill-box;transform-origin:0 50%;transition:transform 520ms var(--m-out)}.ea-day-drain{fill:#6bb68f;transform-box:fill-box;transform-origin:0 50%;transition:transform 520ms var(--m-out)}
.ea-day-tick{stroke:#fff;stroke-width:2;fill:none}.ea-day-cursor{transition:transform 620ms var(--m-out)}
:root[data-m-go] [data-m-live~=ea-cursor][data-m-on]{animation-name:ea-cursor;animation-duration:12s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal}
@keyframes ea-cursor{from{transform:translateX(0)}to{transform:translateX(432px)}}
:root[data-m-go] .ea-hero .ea-layer{animation-name:ea-layer-in;animation-duration:900ms;animation-timing-function:var(--m-out);animation-delay:calc(240ms + (4 - var(--i)) * 120ms);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes ea-layer-in{from{opacity:0;transform:translateY(34px) scale(.97)}}
:root[data-m-go] .ea-hero [data-m-live~=ea-wan][data-m-on] .ea-wan-a{animation-name:ea-fray-a;animation-duration:12s;animation-timing-function:var(--m-out);animation-iteration-count:infinite;animation-direction:normal}
:root[data-m-go] .ea-hero [data-m-live~=ea-wan][data-m-on] .ea-wan-b{animation-name:ea-fray-b;animation-duration:12s;animation-timing-function:var(--m-out);animation-iteration-count:infinite;animation-direction:normal}
:root[data-m-go] .ea-hero [data-m-live~=ea-packets][data-m-on] .ea-pk--wan{animation-name:ea-wanvis;animation-duration:12s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal}
@keyframes ea-fray-a{0%,15%{transform:translateY(-18px)}22%,100%{transform:translateY(0)}}
@keyframes ea-fray-b{0%,15%{transform:translateY(18px)}22%,100%{transform:translateY(0)}}
@keyframes ea-wanvis{0%,17%{opacity:0}24%,100%{opacity:1}}
@media(max-width:1000px){[data-splash=edge-architecture] .gft-splash__structure{inset:auto -40px 40px auto;width:470px;opacity:.5}}
@media(max-width:640px){
 [data-splash=edge-architecture] .gft-splash__content{padding-bottom:400px}
 [data-splash=edge-architecture] .gft-splash__structure{inset:auto 0 62px 0;width:auto;height:340px;opacity:1}
 [data-splash=edge-architecture] h1{font-size:clamp(2.9rem,12vw,4.8rem);max-width:11ch}
 .ea-hero{display:grid;justify-items:center}.ea-hero .ea-stack3{height:268px;width:auto}.ea-hero__read{width:min(300px,86vw)}.ea-hero__read p:first-child{display:none}
}

/* ---------- custom entrances (distinct neighbours) ---------- */
@keyframes ea-from-l{from{opacity:0;transform:translateX(-4.5rem)}}@keyframes ea-from-r{from{opacity:0;transform:translateX(4.5rem)}}@keyframes ea-spine{from{transform:scaleY(0)}}
:root[data-m-go] [data-m=ea-reel]:not([data-m-in]) .ea-close__stack .ea-layer{opacity:0;transform:translateX(calc((var(--i) - 2) * 46px))}
:root[data-m-go] [data-m=ea-reel]:not([data-m-in]) .ea-close__title{opacity:0;transform:translateX(-3rem) rotate(-2.4deg)}
:root[data-m-go] [data-m=ea-reel][data-m-in] .ea-close__stack .ea-layer{animation-name:ea-reel-in;animation-duration:860ms;animation-timing-function:var(--m-out);animation-delay:calc(var(--i) * 50ms);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-m=ea-reel][data-m-in] .ea-close__title{animation-name:ea-title-in;animation-duration:860ms;animation-timing-function:var(--m-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes ea-reel-in{from{opacity:0;transform:translateX(calc((var(--i) - 2) * 46px))}}@keyframes ea-title-in{from{opacity:0;transform:translateX(-3rem) rotate(-2.4deg)}}

/* Edge architecture page, section layer. Every selector is prefixed ea-. Pre-states exist only under :root[data-m-go]. */
.ea-flow [hidden],.ea-band [hidden],.ea-close [hidden]{display:none!important}
.ea-chips--seg{gap:6px}.ea-chips--seg label{flex:1 1 112px}.ea-chips--seg button{flex:1 1 112px}
.ea-chips--seg label>span,.ea-chips--seg button{width:100%;justify-content:center;min-height:52px;font-size:14px;text-align:center}
.ea-chips--xl button{min-height:60px;font-size:15px;flex:1 1 200px}
.ea-btn--big{min-height:52px;font-size:14px;padding-inline:22px}
.ea-chips--dark button{border-color:#6bb68f;color:#dcebe3}.ea-chips--dark button[aria-pressed=true]{background:#6bb68f;color:#072d2b}
.ea-scrub{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center}.ea-scrub label{font:700 13px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase}.ea-scrub input{width:100%;min-height:48px;accent-color:#6bb68f}.ea-scrub output{font:600 14px var(--gft-font-mono);min-width:16ch;text-align:right}

/* ---------- instrument band: the splash ground continues into the tool ---------- */
.ea-band{position:relative;background:linear-gradient(180deg,#072d2b 0,#0a3d3a 100%);color:var(--gft-paper);padding-block:clamp(36px,4.4vw,64px) clamp(64px,8vw,112px);overflow:clip}
.ea-band__warp{position:absolute;inset:0;background:repeating-linear-gradient(90deg,#6bb68f12 0 1px,transparent 1px 38px);pointer-events:none}
.ea-band__wrap{position:relative;width:min(1440px,calc(100% - 96px));margin-inline:auto}
.ea-band__head{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);align-items:end;gap:20px 48px;margin-bottom:clamp(22px,3vw,40px)}
.ea-band h2{font-size:clamp(2.2rem,4.4vw,4.4rem);line-height:1.03;color:#fff;max-width:22ch}
.ea-band__head .ea-eyebrow{margin-bottom:14px}
.ea-band__one{font:14px/1.7 var(--gft-font-mono);color:#cfe3d8;max-width:34ch;justify-self:end;text-align:right}
.ea-band__method{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px);padding-top:36px;margin-top:48px;border-top:1px solid #6bb68f55}
.ea-band__method h3{color:#fff;margin-bottom:14px}.ea-band__method p{font-size:15px;line-height:1.7;color:#dcebe3}.ea-band__method a{color:#cfe6da}.ea-band__method .ea-eyebrow{margin-bottom:12px}
.ea-band .ea-tool{--ea-border:#ffffff30;color:#e9f3ed}
.ea-band .ea-tool p{color:#dcebe3}
.ea-band .ea-tool .ea-kicker{color:#9fd1b7}
.ea-band .ea-intro{max-width:none;margin-bottom:22px;font-size:15px}.ea-band .ea-intro .ea-kicker{display:block;margin-bottom:6px}
.ea-band .ea-tool .ea-note,.ea-band .ea-tool .ea-bars p{color:#c4d9cd}
.ea-band .ea-controls legend{color:#fff}
.ea-band .ea-field label{color:#f0f7f3}.ea-band .ea-field label span{color:#b9d6c7}
.ea-band .ea-pair input[type=number]{background:#0b3330;color:#fff;border-color:#4f8f73}
.ea-band .ea-pair input[type=range],.ea-band .ea-tool input[type=range]{accent-color:#6bb68f}
.ea-band .ea-tool button{border-color:#6bb68f;color:#dcebe3}
.ea-band .ea-tool button:hover,.ea-band .ea-tool button[aria-pressed=true]{background:#6bb68f;color:#072d2b}
.ea-band .ea-actions button[data-action=share]{background:#6bb68f;color:#072d2b}
.ea-band .ea-advanced{border-color:#ffffff30}.ea-band .ea-advanced summary{color:#f0f7f3}
.ea-band .ea-tool a{color:#cfe6da}
.ea-band .ea-visual{background:#05211f;border:1px solid #6bb68f44}
.ea-band .ea-metrics{border-color:#6bb68f44}.ea-band .ea-metrics>div{border-color:#6bb68f44}.ea-band .ea-metrics output{color:#fff}.ea-band .ea-metrics>div>span:first-child{color:#f0f7f3}.ea-band .ea-unit{color:#b9d6c7;font-size:12px}
.ea-band .ea-error{background:#3a2a10;color:#fbe9c8;border-left-color:#e9b765}.ea-band .ea-error{color:#fbe9c8!important}
.ea-band .ea-tool .ea-bars>div:not(.ea-bar){font-size:12px}.ea-band .ea-visual-state{font-size:13px}
.ea-band .ea-tool [data-feedback] input{background:#0b3330;color:#fff;border:1px solid #4f8f73;font-size:12px}
.ea-tool .ea-decision{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(24px,3vw,48px);padding:clamp(20px,3vw,40px);align-items:stretch;background:#d3e2d9}
.ea-band .ea-decision :is(p,dt,dd,h3){color:#13241f}.ea-band .ea-decision .ea-kicker{color:#0e4d4a}
.ea-decision dl>div.ea-decision__buf{display:grid;grid-template-columns:1fr auto;column-gap:16px;align-items:center}.ea-decision__buf .ea-rb{grid-column:1/-1;margin:8px 0 0;width:100%}
.ea-rb--day{height:10px}.ea-rb--day .ea-rb__fill{background:#c98a2b}
.ea-topo{margin:0;background:#072d2b;color:#e9f3ed;padding:clamp(14px,2vw,24px);display:grid;gap:12px;align-content:start;border-top:4px solid #c98a2b}
.ea-topo svg{width:100%;height:auto;display:block}.ea-topo figcaption{font:12px/1.6 var(--gft-font-mono);color:#c4d9cd}
.ea-tp-h{font:600 12px var(--gft-font-mono);letter-spacing:.14em;fill:#9fd1b7}.ea-tp-l{font:600 14px var(--gft-font-mono);fill:#f0f7f3}.ea-tp-s{font:12.5px var(--gft-font-mono);fill:#cfe3d8}.ea-tp-big{font:700 18px var(--gft-font-mono);fill:#fff}
.ea-tp-cam rect{fill:#0e4d4a;stroke:#6bb68f}.ea-tp-cam circle{fill:#6bb68f}.ea-tp-cam{transition:opacity 420ms}
.ea-tp-wire{stroke:#6bb68f;stroke-width:2;fill:none}.ea-tp-wire--wan{stroke:#c98a2b;stroke-dasharray:7 7}
.ea-tp-node{fill:#243563;stroke:#6bb68f;stroke-width:1.5}.ea-tp-tank{fill:#ffffff10;stroke:#6bb68f}.ea-tp-fill{fill:#c98a2b;transform-box:fill-box;transform-origin:50% 100%;transition:transform 520ms var(--m-out)}
.ea-tp-cloud{fill:#0e4d4a;stroke:#6bb68f}.ea-tp-wan{transition:opacity 420ms}
.ea-tp-w1,.ea-tp-w2{transform-box:fill-box;transition:transform 520ms var(--m-out)}
.ea-topo svg[data-down=true] .ea-tp-w1{transform:translateX(-14px)}.ea-topo svg[data-down=true] .ea-tp-w2{transform:translateX(14px)}
.ea-tp-x{font:12.5px var(--gft-font-mono);fill:#eec077;opacity:0;transition:opacity 420ms}.ea-topo svg[data-down=true] .ea-tp-x{opacity:1}
.ea-tp-verdict{font:700 15px var(--gft-font-mono);fill:#9fe0bd}.ea-tp-verdict[data-ok=false]{fill:#f4c27a}
.ea-tp-dot{fill:#6bb68f;opacity:0}
:root:not([data-m-go]) .ea-tp-dot{opacity:1}
:root[data-m-go] [data-m-live~=ea-packets][data-m-on] .ea-tp-dot{animation-name:ea-tpdot;animation-duration:3.3s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal;animation-delay:var(--d,0s)}
@keyframes ea-tpdot{0%{transform:translateX(0);opacity:0}10%{opacity:1}85%{opacity:1}100%{transform:translateX(76px);opacity:0}}
:root[data-ea-paused] .ea-tp-dot{animation-play-state:paused}
@media(max-width:1000px){.ea-band__wrap{width:calc(100% - 56px)}.ea-band__head{grid-template-columns:1fr}.ea-band__one{justify-self:start;text-align:left}.ea-band__method{grid-template-columns:1fr}.ea-tool .ea-decision{grid-template-columns:1fr}}
@media(max-width:640px){.ea-band__wrap{width:calc(100% - 40px)}.ea-tool .ea-decision{padding:20px 16px}}

/* ---------- entrances: every block arrives on its own, neighbours differ ---------- */
:root[data-m-go] [data-m=ea-up]:not([data-m-in]){opacity:0;transform:translateY(2.6rem)}
:root[data-m-go] [data-m=ea-left]:not([data-m-in]){opacity:0;transform:translateX(-4rem)}
:root[data-m-go] [data-m=ea-right]:not([data-m-in]){opacity:0;transform:translateX(4rem)}
:root[data-m-go] [data-m=ea-drop]:not([data-m-in]){opacity:0;transform:translateY(-3.4rem) rotate(-2.6deg)}
:root[data-m-go] [data-m=ea-curtain]:not([data-m-in]){clip-path:inset(0 0 100% 0)}
:root[data-m-go] [data-m=ea-wipe]:not([data-m-in]){clip-path:inset(0 100% 0 0)}
:root[data-m-go] [data-m=ea-iris]:not([data-m-in]){clip-path:circle(16% at 36% 52%)}
:root[data-m-go] :is([data-m=ea-up],[data-m=ea-left],[data-m=ea-right],[data-m=ea-drop],[data-m=ea-curtain],[data-m=ea-wipe],[data-m=ea-iris])[data-m-in]{animation-duration:900ms;animation-delay:var(--ea-d,0ms);animation-timing-function:var(--m-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-m=ea-up][data-m-in]{animation-name:ea-rise-in}
:root[data-m-go] [data-m=ea-left][data-m-in]{animation-name:ea-sec-from-l}
:root[data-m-go] [data-m=ea-right][data-m-in]{animation-name:ea-sec-from-r}
:root[data-m-go] [data-m=ea-drop][data-m-in]{animation-name:ea-drop-in;animation-timing-function:var(--m-snap)}
:root[data-m-go] [data-m=ea-curtain][data-m-in]{animation-name:ea-panel-in;animation-duration:960ms;animation-timing-function:var(--m-freight)}
:root[data-m-go] [data-m=ea-wipe][data-m-in]{animation-name:ea-comb-in;animation-duration:760ms}
:root[data-m-go] [data-m=ea-iris][data-m-in]{animation-name:ea-iris;animation-duration:1000ms;animation-timing-function:var(--m-freight)}
@keyframes ea-panel-in{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes ea-comb-in{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes ea-iris{from{clip-path:circle(16% at 36% 52%)}to{clip-path:circle(140% at 36% 52%)}}
@keyframes ea-drop-in{from{opacity:0;transform:translateY(-3.4rem) rotate(-2.6deg)}}@keyframes ea-rise-in{from{opacity:0;transform:translateY(2.4rem)}}
@keyframes ea-sec-from-l{from{opacity:0;transform:translateX(-4rem)}}@keyframes ea-sec-from-r{from{opacity:0;transform:translateX(4rem)}}
:root[data-m-go] .ea-steps [data-m=ea-card]:not([data-m-in]){opacity:0;transform:translateX(3.6rem)}
:root[data-m-go] .ea-steps [data-m=ea-card][data-m-dir=right]:not([data-m-in]){transform:translateX(-3.6rem)}
:root[data-m-go] .ea-steps [data-m=ea-card][data-m-in]{animation-name:ea-card-r;animation-duration:900ms;animation-timing-function:var(--m-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .ea-steps [data-m=ea-card][data-m-dir=right][data-m-in]{animation-name:ea-card-l}
@keyframes ea-card-r{from{opacity:0;transform:translateX(3.6rem)}}@keyframes ea-card-l{from{opacity:0;transform:translateX(-3.6rem)}}
:root[data-m-go] [data-m=ea-lines]:not([data-m-in]) .ea-ln{clip-path:inset(0 100% 0 0)}
:root[data-m-go] [data-m=ea-lines][data-m-in] .ea-ln{animation-name:ea-comb-in;animation-duration:820ms;animation-timing-function:var(--m-out);animation-delay:calc(120ms + var(--l,0) * 260ms);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-m=ea-lines]:not([data-m-in]) .ea-eyebrow{opacity:0}
:root[data-m-go] [data-m=ea-lines][data-m-in] .ea-eyebrow{animation:ea-rise-in 700ms var(--m-out) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .ea-step__card:not([data-m-in]) .ea-formulas code{clip-path:inset(0 100% 0 0)}
:root[data-m-go] .ea-step__card[data-m-in] .ea-formulas code{animation-name:ea-comb-in;animation-duration:700ms;animation-timing-function:var(--m-out);animation-delay:calc(260ms + var(--k,0) * 110ms);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
.ea-card:not([hidden]){animation-name:ea-deal;animation-duration:520ms;animation-timing-function:var(--m-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes ea-deal{from{opacity:0;transform:translateX(28px)}}

/* ---------- dock: an in-flow summary reserves its own space before the closing ---------- */
.ea-dockrail{position:relative;padding-block:10px;background:#0e4d4a;pointer-events:none}
.ea-dock{position:relative;margin-inline:auto;display:flex;align-items:center;gap:6px 22px;width:max-content;max-width:calc(100vw - 24px);min-height:48px;padding:6px 18px;background:#072d2bf2;color:var(--gft-paper);border:1px solid #6bb68f77;pointer-events:auto;font:12px/1.3 var(--gft-font-mono)}
.ea-dock__k{color:#9fd1b7;letter-spacing:.12em;text-transform:uppercase;font-size:12px}.ea-dock__i{display:flex;gap:8px;align-items:baseline}.ea-dock__i i{font-style:normal;color:#c4d9cd}.ea-dock__i b{font-size:14px}
.ea-dock__v{padding:4px 10px;background:#6bb68f;color:#072d2b;font-weight:700}.ea-dock__v[data-ok=false]{background:#e9b765;color:#2b1b00}.ea-dock__a{color:#dcebe3;min-height:44px;display:inline-flex;align-items:center;font-weight:700}
@media(max-width:760px){.ea-dock{gap:4px 12px;padding:4px 12px;font-size:12px;min-height:44px}.ea-dock__k,.ea-dock__i:nth-of-type(n+3),.ea-dock__i--wide{display:none}.ea-dock{white-space:nowrap}.ea-dock__i b{font-size:13px}}

/* ---------- compare ---------- */
.ea-cmp{position:relative;background:var(--gft-paper)}
.ea-cmp__top{width:min(1440px,calc(100% - 96px));margin-inline:auto;padding-block:clamp(64px,8vw,112px) clamp(28px,3vw,44px);display:grid;gap:clamp(18px,2.2vw,28px)}
.ea-cmp__head{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:20px clamp(24px,4vw,64px);align-items:end}
.ea-cmp h2{font-size:clamp(2.2rem,4.6vw,4.6rem);line-height:1.03}
.ea-cmp__pickers{display:grid;grid-template-columns:1fr 1fr;gap:20px}.ea-pick{border:0;padding:0;margin:0;min-width:0}.ea-pick legend{display:flex;align-items:center;gap:10px;font:700 12px var(--gft-font-mono);letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px;color:#0e4d4a}.ea-pick legend b{display:inline-grid;place-items:center;width:30px;height:30px;background:#0e4d4a;color:#fff;font-size:14px}
.ea-split{display:grid;gap:6px 24px;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:16px 22px;background:#0e4d4a;color:#fff}
.ea-split label{font:600 14px var(--gft-font-mono);grid-column:1/-1}.ea-split label b{color:#e7d7bc;letter-spacing:.08em;text-transform:uppercase}
.ea-split__rail{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;font:700 20px var(--gft-font-mono)}.ea-split input{width:100%;min-height:56px;accent-color:#c98a2b}
.ea-split output{font:700 14px var(--gft-font-mono);color:#e7d7bc;min-width:16ch;text-align:right}
.ea-cmp__dark{background:var(--gft-night);color:var(--gft-paper);padding-block:clamp(28px,4vw,52px) clamp(56px,7vw,96px)}
.ea-cmp__wrap{width:min(1440px,calc(100% - 96px));margin-inline:auto}
.ea-cmp__chart{position:relative;padding-bottom:22px;--ea-p:50}
.ea-cmp__read{font:600 14px/1.6 var(--gft-font-mono);color:#e3efe8;min-height:3.2em;max-width:none;padding-bottom:12px}
.ea-cmp__cols,.ea-cmp__row{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,230px) minmax(0,1fr);gap:clamp(12px,2vw,28px);align-items:center}
.ea-cmp__cols{font:700 14px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#9fd1b7;padding-bottom:18px;border-bottom:1px solid #6bb68f44}.ea-cmp__cols .ea-l{text-align:right}.ea-cmp__cols b{color:#fff}
.ea-cmp__rows{position:relative}
.ea-cmp__row{padding-block:14px;border-bottom:1px solid #ffffff14;transition:background-color 200ms}
.ea-cmp__row:hover,.ea-cmp__row[data-hot]{background:#183c3a}.ea-cmp__row:hover .ea-cmp__mid,.ea-cmp__row[data-hot] .ea-cmp__mid{background:#183c3a}.ea-cmp__row:focus-visible{outline:3px solid #c98a2b;outline-offset:-3px}
.ea-cmp__a,.ea-cmp__b{display:flex;align-items:center;gap:14px;min-width:0}
.ea-cmp__a output,.ea-cmp__b output{font:600 clamp(15px,1.5vw,22px) var(--gft-font-mono);min-width:7ch;color:#fff;white-space:nowrap}
.ea-cmp__a output{text-align:left}.ea-cmp__b output{text-align:right}
.ea-cmp__bar{display:block;flex:1;height:22px;min-width:0;transition:transform 520ms var(--m-out),opacity 320ms}.ea-cmp__bar--a{background:#6bb68f;transform-origin:right}.ea-cmp__bar--b{background:#c98a2b;transform-origin:left}
.ea-cmp__chart[data-lean=a] :is(.ea-cmp__bar--b,.ea-cmp__b output){opacity:.4}.ea-cmp__chart[data-lean=b] :is(.ea-cmp__bar--a,.ea-cmp__a output){opacity:.4}
.ea-cmp__mid{position:relative;z-index:1;background:var(--gft-night);transition:background-color 200ms;padding-block:4px;display:grid;justify-items:center;gap:6px;text-align:center;font-size:14px;line-height:1.3}.ea-cmp__mid em{font:12px var(--gft-font-mono);font-style:normal;color:#9fd1b7}
.ea-delta{display:inline-block;padding:3px 10px;font:700 13px var(--gft-font-mono);border:1px solid #ffffff55;color:#fff}.ea-delta[data-dir=up]{background:#c98a2b;border-color:#c98a2b;color:#1f1300}.ea-delta[data-dir=down]{background:#6bb68f;border-color:#6bb68f;color:#072d2b}
.ea-cmp__row--verdict{border-bottom:0}.ea-cmp__row--verdict .ea-cmp__a{justify-content:flex-end}.ea-cmp__row--verdict .ea-cmp__b{justify-content:flex-start}
.ea-spine-v{position:absolute;left:50%;top:44px;bottom:22px;width:1px;background:#6bb68f55;transform-origin:top;pointer-events:none}
.ea-cmp__handle{position:absolute;top:0;bottom:0;left:calc(var(--ea-p) * 1%);width:0;border-left:2px dashed #e7d7bc;pointer-events:none;z-index:0}
.ea-cmp__handle b{position:absolute;bottom:-4px;left:0;translate:-50% 100%;white-space:nowrap;background:#e7d7bc;color:#072d2b;padding:3px 10px;font:700 12px var(--gft-font-mono)}
.ea-morph{display:grid;grid-template-columns:minmax(220px,.5fr) minmax(0,1fr);gap:clamp(20px,3vw,48px);align-items:center;margin-top:44px;background:var(--gft-forest);color:var(--gft-paper);padding:clamp(20px,3vw,40px)}
.ea-morph__stack{max-width:320px}.ea-morph__body{display:grid;gap:16px;min-width:0}
.ea-morph__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0}.ea-morph__grid div{border-top:1px solid #9fd1b755;padding-top:10px}.ea-morph__grid dt{font:12px var(--gft-font-mono);color:#c4dccf;letter-spacing:.06em}.ea-morph__grid dd{margin:6px 0 0;font:600 clamp(16px,1.7vw,24px) var(--gft-font-mono)}
.ea-morph__up{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;font:12px var(--gft-font-mono);letter-spacing:.06em}
@media(max-width:1000px){.ea-cmp__top,.ea-cmp__wrap{width:calc(100% - 56px)}.ea-cmp__head{grid-template-columns:1fr}.ea-morph{grid-template-columns:1fr}.ea-morph__stack{max-width:260px}}
@media(max-width:640px){.ea-cmp__handle{display:none}.ea-cmp__top,.ea-cmp__wrap{width:calc(100% - 40px)}.ea-cmp__pickers{grid-template-columns:1fr}.ea-split{grid-template-columns:1fr}.ea-split output{text-align:left}
 .ea-cmp__cols,.ea-cmp__row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 12px}.ea-cmp__cols .ea-spine-h{display:none}.ea-cmp__mid{grid-column:1/-1;grid-row:1;justify-items:start;text-align:left;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}.ea-cmp__a,.ea-cmp__b{grid-row:2;flex-direction:column;align-items:stretch;gap:6px}.ea-cmp__a output{text-align:left}.ea-cmp__b output{text-align:right;order:2}.ea-cmp__bar{height:14px;flex:none;width:100%}.ea-spine-v{display:none}
 .ea-scrub{grid-template-columns:1fr}.ea-scrub output{text-align:left}.ea-morph__grid{grid-template-columns:1fr 1fr}.ea-cmp__a output,.ea-cmp__b output{min-width:0;font-size:15px}}

/* ---------- method ---------- */
.ea-method{background:#d9e6de;color:#13241f;position:relative;padding-bottom:clamp(64px,8vw,112px)}
.ea-method::before{content:'';position:absolute;inset:0 0 auto 0;height:72px;background:linear-gradient(#072d2b,#d9e6de);pointer-events:none}
.ea-method__wrap{width:min(1440px,calc(100% - 96px));margin-inline:auto}
.ea-method__head{position:relative;padding-block:clamp(84px,7vw,108px) clamp(28px,4vw,52px)}
.ea-method__head .ea-method__wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:12px clamp(24px,4vw,64px);align-items:end}.ea-method__head .ea-eyebrow{grid-column:1/-1;margin-bottom:0}
.ea-method h2{font-size:clamp(2.2rem,4.6vw,4.6rem);line-height:1.03}
.ea-steps{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:start}
.ea-steps__visual{position:sticky;top:72px;min-width:0}
.ea-panel{background:var(--gft-night);color:var(--gft-paper);padding:clamp(14px,2vw,26px);border-top:4px solid #c98a2b}
.ea-ticker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;gap:6px;margin:0 0 10px}
.ea-ticker button{min-height:48px;text-align:left;padding:8px 4px 4px;background:transparent;border:0;border-top:3px solid #ffffff38;color:#c4dacd;font:600 12px/1.3 var(--gft-font-mono);transition:border-color 420ms,color 420ms}.ea-ticker button span{display:block;font-size:18px;color:#e3efe8}
.ea-ticker button:hover{color:#fff}.ea-ticker button:focus-visible{outline:3px solid #c98a2b;outline-offset:2px}
.ea-steps[data-step="0"] [data-t="0"],.ea-steps[data-step="1"] [data-t="1"],.ea-steps[data-step="2"] [data-t="2"],.ea-steps[data-step="3"] [data-t="3"],.ea-steps[data-step="4"] [data-t="4"]{border-top-color:#c98a2b;color:#fff}
.ea-stepno{font:600 12px var(--gft-font-mono);color:#c4dacd;align-self:end;margin:0;padding-left:12px;max-width:none;white-space:nowrap}.ea-stepno b{font-size:28px;color:#fff;display:inline-block;min-width:2ch;letter-spacing:-.04em}
.ea-balance{width:100%;height:auto;display:block}
.ea-g{opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity 150ms linear,transform 0s linear 150ms,visibility 0s linear 150ms}
.ea-steps[data-step="0"] [data-g="0"],.ea-steps[data-step="1"] [data-g="1"],.ea-steps[data-step="2"] [data-g="2"],.ea-steps[data-step="3"] [data-g="3"],.ea-steps[data-step="4"] [data-g="4"]{opacity:1;visibility:visible;transform:none;transition:opacity 380ms ease 190ms,transform 620ms var(--m-out) 190ms,visibility 0s linear 0s}
.ea-h{font:600 13px var(--gft-font-mono);letter-spacing:.12em;fill:#9fd1b7}.ea-lab{font:500 17px var(--gft-font-display);fill:#eaf3ee}.ea-cap{fill:#cfe3d8;font-size:16px}
.ea-val{font:600 20px var(--gft-font-mono);fill:#fff}.ea-val--s{font-size:18px}.ea-val--xl{font-size:30px;fill:#f6f4ef}.ea-tick{font:12px var(--gft-font-mono);fill:#c4dacd}
.ea-track{fill:#ffffff16}.ea-bar,.ea-seg{transform-box:fill-box;transform-origin:0 50%;transition:transform 520ms var(--m-out)}.ea-col{transform-box:fill-box;transform-origin:50% 100%;transition:transform 520ms var(--m-out)}
.ea-bar--v{fill:#c98a2b}.ea-bar--e{fill:#6bb68f}.ea-bar--l{fill:#e7d7bc}.ea-col--arr{fill:#6bb68f}.ea-col--srv{fill:#e7d7bc}.ea-seg--n{fill:#6bb68f}.ea-seg--c{fill:#3f8f6b}.ea-seg--r{fill:#c98a2b}.ea-seg--l{fill:#b86f3a}
.ea-outband{fill:#c98a2b;opacity:.22;transform-box:fill-box;transform-origin:0 50%;transition:transform 520ms var(--m-out)}.ea-area{fill:#6bb68f;opacity:.3}.ea-curve{fill:none;stroke:#6bb68f;stroke-width:3;stroke-linejoin:round}.ea-dot{fill:#c98a2b}.ea-axis{stroke:#6bb68f99;fill:none}
.ea-sweep{fill:#fff;stroke:#c98a2b;stroke-width:3}.ea-sweep-read{fill:#e7d7bc;font-size:15px}
.ea-mark{stroke:#e7d7bc;stroke-width:2;stroke-dasharray:4 4;fill:none;transition:transform 520ms var(--m-out),opacity 420ms}.ea-mark--end{stroke:#6bb68f}
.ea-verdict{font-weight:700;fill:#9fe0bd}.ea-verdict[data-ok=false]{fill:#f4c27a}
.ea-steps__track{list-style:none;margin:0;padding:0;min-width:0}
.ea-step{min-height:78svh;display:flex;align-items:center;padding-block:4svh}
.ea-step__card{width:100%;max-width:540px;background:#fff;border-left:5px solid #c98a2b;padding:clamp(20px,2.4vw,34px);display:grid;gap:16px;box-shadow:0 22px 44px #072d2b22;transition:opacity 420ms,transform 520ms var(--m-out)}
.ea-step:not([data-active]) .ea-step__card{opacity:.8}.ea-step[data-active] .ea-step__card{transform:translateX(-10px);border-left-color:#0e4d4a}
.ea-step h3{font-size:clamp(1.6rem,2.4vw,2.4rem);line-height:1.1}.ea-step p{font-size:17px;line-height:1.65;max-width:34ch}.ea-step .ea-eyebrow{margin-bottom:0}
.ea-formulas{display:grid;gap:8px}.ea-formulas code{display:block;font:600 14px/1.7 var(--gft-font-mono);background:#eef4f0;border-left:4px solid var(--gft-indigo);padding:10px 14px;overflow-wrap:anywhere;color:#13241f}
.ea-step details{border-top:1px solid #0e4d4a44}.ea-step summary{min-height:48px;display:flex;align-items:center;font:700 13px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.ea-step details p{font-size:16px;margin-bottom:12px;max-width:none}
@media(max-width:1000px){.ea-method__wrap{width:calc(100% - 56px)}.ea-steps{grid-template-columns:1fr}.ea-steps__visual{top:60px;z-index:2;margin-inline:-28px;background:#d9e6de;padding-inline:28px;padding-block:6px}.ea-step{min-height:0;padding-block:18px}.ea-step__card{max-width:none}.ea-method__head .ea-method__wrap{grid-template-columns:1fr}}
@media(max-width:640px){.ea-method__wrap{width:calc(100% - 40px)}.ea-lab{font-size:20px}.ea-cap{font-size:19px}.ea-val{font-size:23px}.ea-val--s{font-size:21px}.ea-val--xl{font-size:30px}.ea-h{font-size:15px}.ea-tick{font-size:15px}.ea-steps__visual{margin-inline:-20px;padding-inline:20px}.ea-panel{padding:10px}.ea-ticker{grid-template-columns:repeat(5,minmax(0,1fr))}.ea-ticker button{font-size:12px;padding-inline:2px}.ea-ticker button span{font-size:14px}.ea-stepno{display:none}.ea-step p{font-size:16px}}

/* ---------- interlude ---------- */
.ea-int{position:relative;background:var(--gft-night);color:var(--gft-paper);overflow:clip;padding-block:clamp(72px,9vw,128px)}
.ea-int__warp{position:absolute;inset:0;background:repeating-linear-gradient(90deg,#6bb68f12 0 1px,transparent 1px 38px),radial-gradient(ellipse at 28% 50%,#0e4d4a 0%,#072d2b 68%);pointer-events:none}
.ea-int__wrap{position:relative;width:min(1560px,calc(100% - 64px));margin-inline:auto}
.ea-int__head{margin-bottom:clamp(20px,3vw,44px)}.ea-int__head .ea-eyebrow{margin-bottom:14px}
.ea-int h2{font-size:clamp(2.4rem,5vw,5.2rem);line-height:1.02;color:#f6f4ef;max-width:18ch}
.ea-int__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(24px,4vw,72px);align-items:center}
.ea-int__stage{margin-left:-2%}.ea-int__stage .ea-stack3{transform:perspective(1600px) rotateY(7deg) rotateX(2deg)}
.ea-clock{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px;align-items:end;border-top:1px solid #6bb68f55;padding-top:18px}
.ea-clock p{max-width:none;font:600 15px var(--gft-font-mono);color:#dcebe3}
.ea-clock__q{grid-column:1/-1;display:grid;gap:2px}.ea-clock__q > span{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#9fd1b7}.ea-clock__q b{font-size:clamp(3.2rem,7.4vw,7.4rem);line-height:1.02;color:#fff;letter-spacing:-.045em;font-weight:800;font-variant-numeric:tabular-nums}
.ea-clock__hour b{font-size:clamp(1.8rem,2.8vw,2.8rem);color:#fff;display:inline-block;min-width:2ch}.ea-clock__link{text-align:right}.ea-clock__link b{display:inline-block;padding:4px 12px;background:#6bb68f;color:#072d2b}.ea-clock__link[data-down=true] b{background:#e9b765;color:#2b1b00}
.ea-tray{grid-column:1/-1;width:100%;max-width:432px;height:auto}.ea-q{fill:#ffffff12;stroke:#6bb68f88}
.ea-tray[data-fill="1"] .ea-q:nth-child(-n+1),.ea-tray[data-fill="2"] .ea-q:nth-child(-n+2),.ea-tray[data-fill="3"] .ea-q:nth-child(-n+3),.ea-tray[data-fill="4"] .ea-q:nth-child(-n+4),.ea-tray[data-fill="5"] .ea-q:nth-child(-n+5),.ea-tray[data-fill="6"] .ea-q:nth-child(-n+6),.ea-tray[data-fill="7"] .ea-q:nth-child(-n+7),.ea-tray[data-fill="8"] .ea-q:nth-child(-n+8),.ea-tray[data-fill="9"] .ea-q:nth-child(-n+9),.ea-tray[data-fill="10"] .ea-q:nth-child(-n+10),.ea-tray[data-fill="11"] .ea-q:nth-child(-n+11),.ea-tray[data-fill="12"] .ea-q{fill:#c98a2b;stroke:#e9b765}
.ea-clock .ea-clock__note{grid-column:1/-1;font:500 16px/1.6 var(--gft-font-display);color:#eaf3ee;min-height:3.4em}
.ea-daybar{margin-top:18px;padding:18px 20px;border:1px solid #6bb68f77;background:#ffffff0d}.ea-daybar svg{width:100%;max-width:520px;height:auto;display:block;overflow:visible}.ea-daybar__ctl{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:14px;align-items:center;margin-top:8px}.ea-daybar__ctl label{font:600 13px var(--gft-font-mono);letter-spacing:.06em;color:#d3e6db}.ea-daybar__ctl input{width:100%;min-height:52px;accent-color:#6bb68f}
.ea-day-bar{fill:#ffffff1c}.ea-day-out{fill:#c98a2b;transform-box:fill-box;transform-origin:0 50%;transition:transform 520ms var(--m-out)}.ea-day-drain{fill:#6bb68f;transform-box:fill-box;transform-origin:0 50%;transition:transform 520ms var(--m-out)}
.ea-int .ea-btn{color:#e9f3ed;border-color:#9fd1b7}.ea-int .ea-btn:hover{background:#e9f3ed;color:#072d2b}.ea-int .ea-tick{fill:#d3e6db}
.ea-legend{font:12px var(--gft-font-mono);color:#d3e6db;display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;margin-top:8px;max-width:none}.ea-sw{display:inline-block;width:12px;height:12px;margin-right:6px;vertical-align:-1px}.ea-sw--out{background:#c98a2b}.ea-sw--drain{background:#6bb68f}.ea-sw--ok{background:#ffffff33}
.ea-int .ea-note{margin-top:18px}
@media(max-width:1000px){.ea-int__wrap{width:calc(100% - 56px)}.ea-int__grid{grid-template-columns:1fr}.ea-int__stage{margin-left:0;max-width:520px;justify-self:center;width:100%}.ea-int__stage .ea-stack3{transform:none}}
@media(max-width:640px){.ea-int__wrap{width:calc(100% - 40px)}.ea-daybar{padding:14px}.ea-daybar__ctl{grid-template-columns:auto 1fr}.ea-daybar__ctl label{grid-column:1/-1}}

/* ---------- assumptions ---------- */
.ea-asm{position:relative;background:var(--gft-paper);padding-block:clamp(72px,9vw,132px)}
.ea-asm__wrap{width:min(1440px,calc(100% - 96px));margin-inline:auto}
.ea-asm__top{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(24px,4vw,64px);align-items:start;margin-bottom:clamp(24px,3vw,40px)}
.ea-asm h2{font-size:clamp(2.2rem,4.4vw,4.4rem);line-height:1.03}.ea-asm__top .ea-lede{margin-top:20px}
.ea-asm__read{background:var(--gft-forest);color:var(--gft-paper);padding:clamp(20px,2.4vw,32px);border-left:5px solid #c98a2b;position:sticky;top:72px}
.ea-asm__read h3{font-size:clamp(1.3rem,1.8vw,1.8rem);line-height:1.15;margin-bottom:14px;color:#fff;min-height:2.3em}
.ea-asm__vals{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin:0}.ea-asm__vals div:last-child{grid-column:1/-1}.ea-asm__vals dt{font:12px var(--gft-font-mono);color:#c4dccf;letter-spacing:.06em}.ea-asm__vals dd{margin:4px 0 0;font:600 18px var(--gft-font-mono)}
.ea-asm__move{font-size:15px;line-height:1.55;color:#e3efe8;min-height:3.4em;max-width:none}
.ea-sens{list-style:none;padding:0;margin:0 0 20px}.ea-sens li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid #9fd1b744;font-size:14px}.ea-sens b{font:700 14px var(--gft-font-mono);text-align:right}
.ea-asm__tools{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;margin-bottom:20px}.ea-asm__tools .ea-chips{flex:1 1 420px;max-width:640px}.ea-asm__empty{font:14px var(--gft-font-mono);padding:16px;background:#f3e4cb;border-left:4px solid #c98a2b;margin-bottom:16px}
.ea-asm__body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(18px,2vw,32px);align-items:start}
.ea-asm__groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}
.ea-asm__col{align-self:stretch;background:var(--gft-night);color:#fff;border-top:5px solid #c98a2b;padding:18px}
.ea-asm__live{position:sticky;top:24px;display:grid;gap:12px}
.ea-asm__live .ea-eyebrow{margin-bottom:0}:is(.ea-asm__live,.ea-deck__stk,.ea-src__fig) .ea-stack3--close .ea-layer-title{font-size:20px}:is(.ea-asm__live,.ea-deck__stk,.ea-src__fig) .ea-stack3--close .ea-layer-state{font-size:18px;transform:translateY(-14px)}
.ea-asm__diff{display:flex;align-items:baseline;gap:10px;font:13px/1.5 var(--gft-font-mono);color:#e3efe8;max-width:none}.ea-asm__diff b{font:850 2.4rem/1 var(--gft-font-display);color:#fff;min-width:1.6ch;letter-spacing:-.04em}
.ea-grp{background:#fff;border:1px solid #bdc9c1;border-top:5px solid var(--gft-forest)}.ea-grp:nth-child(2){margin-top:36px}.ea-grp:nth-child(3){margin-top:72px}
.ea-grp summary{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:60px;padding:12px 20px;cursor:pointer;list-style:none}.ea-grp summary::-webkit-details-marker{display:none}
.ea-grp__t{font:850 clamp(1.2rem,1.6vw,1.6rem) var(--gft-font-display);letter-spacing:-.03em}.ea-grp__n{font:12px var(--gft-font-mono);color:#2f463c}.ea-grp__n::after{content:' / open or close';color:#3d5249}
.ea-spark{margin:0;background:var(--gft-night);color:#fff;padding:14px 16px 12px}.ea-spark svg{width:100%;height:auto}
.ea-sp-axis{stroke:#6bb68f88;fill:none}.ea-sp-area{fill:#6bb68f;opacity:.28}.ea-sp-line{fill:none;stroke:#6bb68f;stroke-width:3;stroke-linejoin:round}.ea-sp-drop{stroke:#e7d7bc;stroke-width:1.5;stroke-dasharray:4 4;fill:none}.ea-sp-dot{fill:#c98a2b;stroke:#fff;stroke-width:2}.ea-sp-x{font:12px var(--gft-font-mono);fill:#d3e6db}
.ea-spark[data-ok=false] .ea-sp-line{stroke:#eec077}.ea-spark[data-ok=false] .ea-sp-area{fill:#eec077}
.ea-spark figcaption{display:grid;gap:4px;font:13px/1.5 var(--gft-font-mono);color:#d3e6db}.ea-spark figcaption b{color:#fff;font-size:15px}
.ea-grp__rows{list-style:none;margin:0;padding:0}
.ea-row{display:grid;gap:10px;padding:16px 20px;border-top:1px solid #d3ddd6;transition:background-color 220ms,box-shadow 220ms}
.ea-row__name{display:block;font:650 15px/1.35 var(--gft-font-display)}.ea-row__basis{display:block;font:12px/1.55 var(--gft-font-mono);color:#3d5249;margin-top:2px}
.ea-row .ea-rb{width:100%;margin:2px 0 0}
.ea-row__v{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}.ea-asm__def{margin-right:auto;font:13px var(--gft-font-mono);color:#1f352c}
.ea-edit input{width:112px;min-height:44px;padding:8px 10px;border:1px solid #7f9a8b;background:#fff;color:#13241f;font:600 15px var(--gft-font-mono);text-align:right}.ea-edit input:focus-visible{outline:3px solid var(--gft-ochre)}.ea-edit input[aria-invalid]{outline:2px solid #9c521e}
.ea-chg{font:700 12px var(--gft-font-mono);background:#c98a2b;color:#1f1300;padding:4px 8px}
.ea-row[data-changed=true]{background:#fff4de;box-shadow:inset 5px 0 0 #c98a2b}.ea-row[data-changed=true] .ea-edit input{border-color:#98641c;background:#fff4de}
.ea-row[data-sel]{background:#dcebe2}.ea-row[data-sel][data-changed=true]{background:#fbe8c4}.ea-row:focus-visible{outline:3px solid var(--gft-ochre);outline-offset:-3px}
@media(max-width:1280px){.ea-asm__groups{grid-template-columns:1fr 1fr}.ea-grp:nth-child(n){margin-top:0}}
@media(max-width:1000px){.ea-asm__body{grid-template-columns:1fr}.ea-asm__col{order:-1;max-width:420px}.ea-asm__live{position:relative;top:auto}}
@media(max-width:1000px){.ea-asm__wrap{width:calc(100% - 56px)}.ea-asm__top{grid-template-columns:1fr}.ea-asm__read{position:relative;top:auto}}
@media(max-width:700px){.ea-asm__groups{grid-template-columns:1fr}}@media(max-width:640px){.ea-asm__wrap{width:calc(100% - 40px)}}

/* ---------- limits: deck, simulations, tracker ---------- */
.ea-lim{position:relative;background:#ece8df;color:#13241f}
.ea-lim__band{position:relative;background:var(--gft-night);color:#fff;overflow:clip;padding-block:clamp(72px,8vw,116px) clamp(104px,10vw,150px)}
.ea-lim__warp{position:absolute;inset:0;background:repeating-linear-gradient(90deg,#6bb68f12 0 1px,transparent 1px 38px),linear-gradient(180deg,#f6f4ef 0,#f6f4ef 0,#072d2b 56px);pointer-events:none}
.ea-lim__bandwrap{position:relative;width:min(1440px,calc(100% - 96px));margin-inline:auto;padding-top:clamp(20px,3vw,44px)}
.ea-ln{display:block}
.ea-lim__wrap{position:relative;z-index:1;width:min(1440px,calc(100% - 96px));margin-inline:auto;padding-bottom:clamp(40px,6vw,88px)}
.ea-lim h2{font-size:clamp(2.2rem,4.4vw,4.4rem);line-height:1.03;max-width:15em;color:#fff}.ea-lim__head .ea-eyebrow{max-width:none}
.ea-deck{display:grid;grid-template-columns:minmax(220px,.32fr) minmax(0,1fr);gap:clamp(16px,2.4vw,40px);align-items:start;margin-top:calc(-1 * clamp(52px,6vw,84px))}
.ea-deck__side{display:grid;gap:18px;align-content:start}
.ea-deck__tabs{display:grid;gap:12px}
.ea-deck__stk{margin:0;background:#072d2b;color:#fff;border-top:4px solid #c98a2b;padding:12px 16px 10px;max-width:360px}.ea-deck__stk figcaption{font:13px/1.55 var(--gft-font-mono);color:#e3efe8;margin-top:4px;min-height:3.2em}.ea-deck__stk .ea-stack3{max-height:300px}
.ea-deck__tabs button{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;min-height:88px;text-align:left;padding:14px 20px;background:#fff;color:#13241f;border:1px solid #bdb59f;border-left:5px solid #c98a2b;cursor:pointer;transition:transform 420ms var(--m-out),background-color 240ms,color 240ms}
.ea-deck__tabs button[aria-selected=true]{background:var(--gft-forest);color:#fff;border-left-color:#e7d7bc;transform:translateX(16px)}
.ea-deck__tabs button:focus-visible{outline:3px solid var(--gft-ochre);outline-offset:3px}
.ea-deck__n{font:850 2.6rem/1 var(--gft-font-display);letter-spacing:-.06em;color:#6f948a}.ea-deck__tabs [aria-selected=true] .ea-deck__n{color:#b9d6c7}.ea-deck__t{font:700 16px/1.3 var(--gft-font-display)}
.ea-deck__stage{position:relative}
.ea-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:#fff;border:1px solid #bdb59f;border-left:5px solid #c98a2b}
.ea-card__txt{padding:clamp(22px,2.6vw,40px)}
.ea-card__n{display:block;font:850 clamp(3rem,5vw,5rem)/1 var(--gft-font-display);color:#6f948a;letter-spacing:-.06em}.ea-card h3{margin:10px 0 14px;font-size:clamp(1.4rem,2vw,2rem);line-height:1.15}.ea-card p{font-size:16px;line-height:1.65}
.ea-card details{margin-top:14px;border-top:1px solid #bdb59f}.ea-card summary{min-height:48px;display:flex;align-items:center;font:700 13px var(--gft-font-mono);letter-spacing:.06em;cursor:pointer}.ea-card details p{margin-bottom:12px}
.ea-sim{background:#072d2b;color:#fff;padding:clamp(20px,2.6vw,36px);display:grid;gap:16px;align-content:start}
.ea-sim__k{font:600 12px var(--gft-font-mono);letter-spacing:.12em;text-transform:uppercase;color:#9fd1b7;max-width:none}
.ea-sim__layers{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.ea-sim__layers li{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:44px;padding:8px 14px;border:1px solid #6bb68f77;background:#ffffff0d;font:600 14px var(--gft-font-mono);transition:background-color 320ms,border-color 320ms}
.ea-sim__layers li b{padding:3px 10px;font-size:12px;background:#6bb68f;color:#072d2b;letter-spacing:.06em}
.ea-sim__layers li[data-s=queue] b,.ea-sim__layers li[data-s=stale] b{background:#e9b765;color:#2b1b00}.ea-sim__layers li[data-s=battery] b{background:#e7d7bc;color:#072d2b}.ea-sim__layers li[data-s=down] b{background:#d98a7a;color:#2b0b05}
.ea-sim__layers li[data-s=down]{border-style:dashed;border-color:#d98a7a99}
.ea-sim__layers--row{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.ea-sim__v,.ea-sim__big{font:600 16px/1.5 var(--gft-font-mono);color:#fff;max-width:none}.ea-sim__big{font-size:clamp(1.8rem,3vw,2.8rem);font-weight:800;font-family:var(--gft-font-display);letter-spacing:-.04em}
.ea-sim__bar .ea-meter{height:14px}
.ea-scrub--dark label{color:#d3e6db}.ea-scrub--dark output{color:#fff}
.ea-lane{border:1px solid #6bb68f77;padding:14px 16px;display:grid;gap:10px}.ea-lane__h{font:700 13px var(--gft-font-mono);color:#e3efe8;max-width:none}.ea-lane__s{font:15px/1.5 var(--gft-font-display);color:#fff;max-width:none}
.ea-lane--safe{border-color:#e7d7bc;background:#e7d7bc1a}
.ea-track3{background:var(--gft-forest);color:var(--gft-paper);padding-block:clamp(44px,6vw,88px)}
.ea-track3__wrap{width:min(1440px,calc(100% - 96px));margin-inline:auto;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(24px,4vw,72px);align-items:center}
.ea-track3__head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px;align-items:end}.ea-track3 h3{font-size:clamp(1.6rem,2.8vw,2.8rem);color:#fff;max-width:20ch}
.ea-track3__score{font:600 16px var(--gft-font-mono);max-width:none;color:#fff}.ea-track3__score b{font-size:clamp(2.6rem,5vw,4.6rem);line-height:1;display:inline-block;min-width:1.2ch;letter-spacing:-.04em}
.ea-checks{list-style:none;padding:0;margin:0 0 20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}.ea-checks li{border-top:1px solid #9fd1b744}.ea-checks label{display:flex;gap:14px;align-items:center;min-height:60px;font-size:16px;line-height:1.4;cursor:pointer;color:#fff}.ea-checks input{width:22px;height:22px;flex:none;accent-color:#6bb68f}.ea-track3[data-done] .ea-meter b{background:#e7d7bc}
.ea-track3__stack{max-width:430px;width:100%;justify-self:center}
.ea-track3__stack .ea-layer{transition:opacity 420ms}
@media(max-width:1000px){.ea-lim__wrap,.ea-track3__wrap,.ea-lim__bandwrap{width:calc(100% - 56px)}.ea-deck__stk{max-width:none;justify-self:center;width:min(100%,360px)}.ea-deck{grid-template-columns:1fr}.ea-deck__tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.ea-deck__tabs button{grid-template-columns:1fr;gap:4px;min-height:76px;padding:10px 12px}.ea-deck__tabs button[aria-selected=true]{transform:none}.ea-deck__n{font-size:1.8rem}.ea-card{grid-template-columns:1fr}.ea-checks{grid-template-columns:1fr}.ea-track3__wrap{grid-template-columns:1fr}}
@media(max-width:640px){.ea-lim__wrap,.ea-track3__wrap,.ea-lim__bandwrap{width:calc(100% - 40px)}.ea-deck__t{font-size:13px}}

/* ---------- sources ---------- */
.ea-src{position:relative;background:#e2ebe6;color:#13241f}
.ea-src__dark{background:var(--gft-night);color:var(--gft-paper);padding-block:clamp(64px,8vw,112px)}
.ea-src__wrap{width:min(1440px,calc(100% - 96px));margin-inline:auto;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,4vw,72px);align-items:start}
.ea-src h2{font-size:clamp(2.2rem,4.4vw,4.4rem);line-height:1.03;color:#fff}
.ea-src__lead p{font-size:17px;line-height:1.65;margin-top:18px;max-width:52ch;color:#dcebe3}.ea-src__lead .ea-src__links{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}
.ea-src__dark a:not(.ea-btn){color:#cfe6da}
.ea-src__sel{display:grid;gap:14px}
.ea-ledger{list-style:none;padding:0;margin:0;display:grid}
.ea-ledger__row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 18px;align-items:center;min-height:68px;padding:12px 16px;border-top:1px solid #6bb68f55;transition:background-color 200ms}
.ea-ledger__row:hover,.ea-ledger__row[data-hot]{background:#ffffff16}.ea-ledger__row:focus-visible{outline:3px solid #c98a2b;outline-offset:-3px}
.ea-ledger__h{font:650 clamp(1.05rem,1.4vw,1.3rem)/1.3 var(--gft-font-display);color:#fff}
.ea-src__mark{display:inline-block;padding:4px 12px;background:#6bb68f;color:#072d2b;font:700 12px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase}.ea-src__mark[data-w=no]{background:#e9b765;color:#2b1b00}
.ea-src__read{min-height:132px;border-left:4px solid #c98a2b;background:#ffffff12;padding:16px 20px}.ea-src__read p{font-size:17px;line-height:1.6;margin-top:10px;color:#eaf3ee;max-width:none}
.ea-src__fig{position:relative;margin:30px 0 0;max-width:460px;overflow:clip;border:1px solid #6bb68f55;background:#05211f;padding:14px 16px 10px}
.ea-src__fig figcaption{font:12px/1.6 var(--gft-font-mono);color:#d3e6db;margin-top:6px}
.ea-src__fig::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 0,transparent 47%,#9fd1b755 49.5%,#cfe6da 50%,#9fd1b755 50.5%,transparent 53%,transparent 100%);transform:translateY(-100%);opacity:0}
:root[data-m-go] .ea-src__fig[data-m-live~=ea-scan][data-m-on]::after{opacity:1;animation:ea-scan 7s linear infinite;animation-direction:normal;animation-iteration-count:infinite}
@keyframes ea-scan{from{transform:translateY(-100%)}to{transform:translateY(100%)}}
.ea-src__fig .ea-top{transition:fill 320ms,stroke 320ms}
.ea-src__fig .ea-layer[data-s=live] .ea-top{--ea-fill:#17695f;stroke:#cfe6da;stroke-opacity:1}.ea-src__fig .ea-layer[data-s=stale] .ea-top{--ea-fill:#4d3a14;stroke:#eec077;stroke-opacity:1;stroke-dasharray:none}
.ea-src__fig .ea-layer[data-s=down] .ea-layer-state{fill:#b9d6c7}
:root[data-m-go] .ea-src__fig[data-m-live~=ea-scan][data-m-on] :is(.ea-layer[data-s=live],.ea-layer[data-s=stale]) .ea-top{animation:ea-lit 3.2s ease-in-out infinite;animation-direction:normal;animation-iteration-count:infinite}
@keyframes ea-lit{0%,100%{opacity:1}50%{opacity:.66}}
.ea-src__q{display:grid;gap:8px;margin-top:14px}.ea-src__q span{font:12px/1.6 var(--gft-font-mono);color:#d3e6db}.ea-src__q .ea-meter{height:12px}.ea-src__q .ea-meter b{background:#c98a2b;transform:scaleX(.62);transition:none}
:root[data-m-go] .ea-src__q .ea-meter b{animation:ea-src-drain 3.2s var(--m-out) infinite;animation-direction:normal;animation-iteration-count:infinite}
@keyframes ea-src-drain{0%,12%{transform:scaleX(1)}80%,100%{transform:scaleX(.04)}}
@media(prefers-reduced-motion:reduce){.ea-src__fig::after{display:none}.ea-src__q .ea-meter b,.ea-src__fig .ea-top{animation:none!important}}

/* ---------- onward rail: the warp line with three layer nodes ---------- */
.ea-rail{position:relative;background:linear-gradient(180deg,#0e4d4a 0%,#0b403d 100%);color:#fff;overflow:clip;padding-block:clamp(56px,7vw,104px) clamp(48px,6vw,88px)}
.ea-rail::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,#6bb68f14 0 1px,transparent 1px 38px);pointer-events:none}
.ea-rail__wrap{position:relative;width:min(1440px,calc(100% - 96px));margin-inline:auto}
.ea-rail__h{font-size:clamp(1.8rem,3.2vw,3.2rem);line-height:1.08;color:#fff;max-width:20ch}
.ea-rail__lane{position:relative;margin-top:clamp(36px,4.4vw,60px)}
.ea-rail__line{position:absolute;left:-48px;right:-48px;top:0;height:2px;background:linear-gradient(90deg,transparent,#9fd1b7 10%,#9fd1b7 90%,transparent);transform-origin:0 50%}
.ea-rail__nodes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,3vw,48px);align-items:stretch;position:relative}
.ea-rail__node{--st:0px;position:relative;display:grid;align-content:start;gap:0;margin-top:calc(var(--st) + 26px);padding-bottom:44px}.ea-rail__node:nth-child(2){--st:34px}.ea-rail__node:nth-child(3){--st:68px}
.ea-rail__node::before{content:'';position:absolute;left:65px;top:calc((var(--st) + 26px) * -1);width:2px;height:calc(var(--st) + 32px);background:#9fd1b7;transform-origin:50% 0}
.ea-rail__a{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;min-height:72px;color:#fff;text-decoration:none;padding:6px 4px}
.ea-rail__a:focus-visible{outline:3px solid #e9b765;outline-offset:4px}
.ea-rail__dia{width:132px;height:64px;display:block;overflow:visible}.ea-rail__dia path{fill:#0e4d4a;stroke:#9fd1b7;stroke-width:1.5;transition:fill 320ms,stroke 320ms}.ea-rail__dia text{font:700 15px var(--gft-font-mono);fill:#e9f3ed;letter-spacing:.08em}
.ea-rail__node[data-on=true] .ea-rail__dia path{fill:#17695f;stroke:#fff}
.ea-rail__t{display:grid;gap:4px}.ea-rail__t b{font:800 clamp(1.2rem,1.7vw,1.7rem)/1.15 var(--gft-font-display);letter-spacing:-.03em}.ea-rail__t em{font:600 13px var(--gft-font-mono);font-style:normal;color:#cfe6da}
.ea-rail__a:hover .ea-rail__t em{color:#fff;text-decoration:underline;text-underline-offset:4px}
.ea-rail__thread{position:absolute;left:66px;bottom:0;width:2px;height:44px;background:#e9b765;transform-origin:50% 0;transform:scaleY(0);transition:transform 420ms var(--m-out)}.ea-rail__node[data-on=true] .ea-rail__thread{transform:scaleY(1)}
.ea-rail__read{border-left:4px solid #e9b765;background:#ffffff14;padding:20px 26px;min-height:128px}.ea-rail__read p{font-size:clamp(1rem,1.2vw,1.15rem);line-height:1.65;color:#eaf3ee;max-width:76ch}
:root[data-m-go] [data-m=ea-rail]:not([data-m-in]) .ea-rail__line{transform:scaleX(0)}
:root[data-m-go] [data-m=ea-rail]:not([data-m-in]) .ea-rail__node::before{transform:scaleY(0)}
:root[data-m-go] [data-m=ea-rail][data-m-in] .ea-rail__node::before{animation:ea-rail-stub 520ms var(--m-out) backwards;animation-delay:calc(160ms + var(--i,0) * 160ms);animation-iteration-count:1;animation-direction:normal}
@keyframes ea-rail-stub{from{transform:scaleY(0)}}
:root[data-m-go] [data-m=ea-rail]:not([data-m-in]) .ea-rail__dia{opacity:0;transform:translateY(-1.8rem) scale(.9)}
:root[data-m-go] [data-m=ea-rail]:not([data-m-in]) .ea-rail__t{clip-path:inset(0 100% 0 0)}
:root[data-m-go] [data-m=ea-rail][data-m-in] .ea-rail__line{animation:ea-rail-line 900ms var(--m-freight) backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-m=ea-rail][data-m-in] .ea-rail__dia{animation:ea-rail-dia 700ms var(--m-snap) backwards;animation-delay:calc(260ms + var(--i,0) * 160ms);animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] [data-m=ea-rail][data-m-in] .ea-rail__t{animation:ea-comb-in 700ms var(--m-out) backwards;animation-delay:calc(520ms + var(--i,0) * 160ms);animation-iteration-count:1;animation-direction:normal}
@keyframes ea-rail-line{from{transform:scaleX(0)}}@keyframes ea-rail-dia{from{opacity:0;transform:translateY(-1.8rem) scale(.9)}}
@media(max-width:1000px){.ea-src__wrap,.ea-rail__wrap{width:calc(100% - 56px)}.ea-src__wrap{grid-template-columns:1fr}.ea-rail__nodes{grid-template-columns:1fr;gap:6px}.ea-rail__node:nth-child(n){--st:0px;margin-top:0;padding-bottom:6px}.ea-rail__node::before{display:none}.ea-rail__thread{display:none}.ea-rail__line{display:none}}
@media(max-width:640px){.ea-src__wrap,.ea-rail__wrap{width:calc(100% - 40px)}.ea-ledger__row{grid-template-columns:1fr}.ea-rail__dia{width:96px;height:46px}}

/* ---------- closing: an instrument, held, then returned to the splash motif ---------- */
.ea-close{position:relative;background:linear-gradient(180deg,#072d2b 0%,#0a3d3a 100%);color:var(--gft-paper);overflow:clip;padding-block:clamp(96px,10vw,152px) clamp(96px,10vw,152px);min-height:100svh;display:grid;align-items:center;scroll-margin-top:3rem}
.ea-close::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,#6bb68f10 0 1px,transparent 1px 38px);pointer-events:none}
.ea-close__wrap{width:min(1440px,calc(100% - 96px));margin-inline:auto;position:relative;display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(16px,3vw,48px);align-items:center}
.ea-close__panel{display:grid;gap:20px;position:relative;z-index:2}
.ea-close__title{font-size:clamp(2.6rem,5.4vw,5.8rem);line-height:1;color:#fff;transform:rotate(-2.4deg);transform-origin:0 100%;margin:6px -12% 12px 0;max-width:12ch;text-shadow:0 2px 24px #072d2b}
.ea-close__lede{font-size:clamp(1.05rem,1.3vw,1.25rem);line-height:1.6;color:#e3efe8;max-width:52ch}
.ea-segs{border:0;margin:0;padding:0;display:grid;gap:10px;min-width:0}.ea-segs legend{font:700 12px var(--gft-font-mono);letter-spacing:.12em;text-transform:uppercase;color:#9fd1b7;margin-bottom:10px}
.ea-close__read{border-top:1px solid #6bb68f66;padding-top:16px}.ea-close__count{font:850 clamp(1.8rem,3vw,3rem)/1.1 var(--gft-font-display);letter-spacing:-.04em;color:#fff;max-width:none}.ea-close__line{font-size:17px;line-height:1.55;color:#e3efe8;margin-top:8px;min-height:3.3em}
.ea-close__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0 0}.ea-close__stats dt{font:12px var(--gft-font-mono);color:#c4dccf;letter-spacing:.06em}.ea-close__stats dd{margin:4px 0 0;font:700 clamp(15px,1.5vw,20px) var(--gft-font-mono)}
.ea-close__callout{border-left:4px solid #c98a2b;background:#ffffff10;padding:16px 20px}.ea-close__callout h3{font-size:1.3rem;margin-bottom:8px;color:#fff}.ea-close__callout p{font-size:15px;line-height:1.6;color:#e3efe8}
.ea-close__cta{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center}.ea-close .gft-button{min-height:52px}
.ea-close__stack{position:sticky;top:96px;align-self:start;margin-right:-6%;margin-left:-4%}.ea-close__stack .ea-stack3{transform:perspective(1600px) rotateY(-7deg)}
.ea-close__stack::after{content:'';position:absolute;inset:auto -4% -2% -4%;height:34%;background:linear-gradient(180deg,transparent,#0a3d3a 92%);pointer-events:none}
.ea-mode{position:absolute;left:0;right:0;bottom:-6px;z-index:1;text-align:center;font:600 14px var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:#e3efe8;max-width:none}
@media(max-width:1000px){.ea-close__wrap{grid-template-columns:1fr;width:calc(100% - 56px)}.ea-close__title{margin-right:0}.ea-close__stack{position:relative;top:auto;max-width:560px;margin:0 auto;width:100%}.ea-close__stack .ea-stack3{transform:none}.ea-close{min-height:0}}
@media(max-width:640px){.ea-close__wrap{width:calc(100% - 40px)}.ea-close__title{font-size:clamp(2.4rem,11vw,3.6rem)}.ea-close__stats{grid-template-columns:1fr 1fr}.ea-close__cta .gft-button{width:100%}}

@media(prefers-reduced-motion:reduce){.ea-flow *,.ea-close *,.ea-band *{transition:none!important}.ea-int__stage .ea-stack3,.ea-close__stack .ea-stack3{transform:none}}
