/* Glossary film. Every class, keyframe and custom property carries the gl- prefix and belongs to /glossary/ only. */
.gl-page{--gl-ink:#25302e;--gl-forest:#0e4d4a;--gl-night:#072d2b;--gl-ochre:#c98a2b;--gl-ochre-ink:#8a5a14;--gl-mist:#e2ebe6;--gl-line:#abc1b6;--gl-sage:#6bb68f;--gl-paper:#f6f4ef;--gl-gutter:48px;overflow-x:clip;color:var(--gl-ink);position:relative}
.gl-wrap{width:min(1440px,calc(100% - 96px));margin-inline:auto;position:relative}
.gl-sec{position:relative;padding-block:clamp(96px,9vw,140px) clamp(120px,12vw,180px)}
.gl-lede{font-size:clamp(1.05rem,1.3vw,1.3rem);line-height:1.65;max-width:46ch;color:#33403d}
.gl-copy{font-size:clamp(1.0625rem,1.2vw,1.1875rem);line-height:1.75;max-width:60ch}
.gl-copy p{max-width:60ch}.gl-copy p+p{margin-top:1.3em}
.gl-kicker{font:12px/1.7 var(--gft-font-mono);text-transform:uppercase;letter-spacing:.12em}
.gl-note{font:12px/1.75 var(--gft-font-mono);color:#52655d;max-width:70ch}
.gl-card{background:#fcfbf8;border:1px solid var(--gl-line);padding:clamp(22px,2.4vw,40px);position:relative;min-width:0}
.gl-card--dark{background:#0a3d3a;border-color:#ffffff2b;color:#eef5f0}
.gl-card--dark .gl-note{color:#b4c7bd}
.gl-card figcaption{display:grid;gap:8px;margin-bottom:22px}
.gl-card figcaption b{font-size:clamp(1.15rem,1.6vw,1.5rem);line-height:1.3;letter-spacing:-.02em;max-width:34ch}

/* ---------- native segmented control ---------- */
.gl-seg{display:flex;flex-wrap:nowrap;margin:0 0 24px;padding:0;border:1px solid var(--gl-forest);min-width:0}
.gl-seg legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.gl-seg label{position:relative;flex:1 1 0;min-width:0;cursor:pointer;display:block;font-size:inherit;font-weight:inherit}
.gl-seg input{position:absolute;opacity:0;width:1px;height:1px;inset:0}
.gl-seg span{display:grid;place-items:center;min-height:52px;padding:8px 14px;font:650 15px/1.25 var(--gft-font-display);text-align:center;transition:background-color 260ms,color 260ms}
.gl-seg label+label span{border-left:1px solid var(--gl-forest)}
.gl-seg input:checked+span{background:var(--gl-forest);color:#fff}
.gl-seg input:focus-visible+span{outline:3px solid var(--gft-ochre);outline-offset:-3px}
.gl-seg label:hover span{background:#0e4d4a14}.gl-seg input:checked+span:hover{background:var(--gl-forest)}
.gl-seg--dark{border-color:#ffffff55}.gl-seg--dark label+label span{border-left-color:#ffffff33}.gl-seg--dark input:checked+span{background:#f6f4ef;color:var(--gl-night)}.gl-seg--dark label:hover span{background:#ffffff14}.gl-seg--dark input:checked+span:hover{background:#f6f4ef}
.gl-seg--small{display:inline-flex;margin:0}.gl-seg--small span{min-height:44px;font-size:13px}
.gl-seg--wrap{flex-wrap:wrap;border:0;gap:8px}.gl-seg--wrap label{flex:1 1 220px}.gl-seg--wrap span{border:1px solid var(--gl-forest)}.gl-seg--wrap label+label span{border-left:1px solid var(--gl-forest)}

/* ---------- seams: one amber thread crosses every hand-over ---------- */
.gl-seam{position:absolute;z-index:6;top:-110px;left:max(18px,calc((100% - 1440px) / 2 + 31px));width:14px;height:220px;pointer-events:none;view-timeline-name:--gl-seam;view-timeline-axis:block}
.gl-seam__line{position:absolute;left:6px;top:0;width:2px;height:100%;background:var(--gl-ochre);transform-origin:50% 0}
.gl-seam__dot{position:absolute;left:0;top:0;width:14px;height:14px;border-radius:50%;background:var(--gl-ochre);transform:translateY(206px);box-shadow:0 0 0 6px #c98a2b33}
@supports (animation-timeline:view()){
 :root[data-m-go] .gl-seam__line{animation-name:gl-seam-line;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--gl-seam;animation-range-start:entry 0%;animation-range-end:cover 55%}
 :root[data-m-go] .gl-seam__dot{animation-name:gl-seam-dot;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--gl-seam;animation-range-start:entry 0%;animation-range-end:cover 55%}
}
@keyframes gl-seam-line{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes gl-seam-dot{from{transform:translateY(0)}to{transform:translateY(206px)}}

/* ---------- rail: section index and live term count ---------- */
.gl-rail{position:fixed;z-index:40;right:6px;top:18svh;height:64svh;display:flex;gap:10px;justify-content:flex-end;color:#f6f4ef;pointer-events:none;transition:color 400ms}
.gl-rail[data-tone=light]{color:var(--gl-forest)}
.gl-rail__track{display:block;width:2px;height:100%;background:currentColor;opacity:.9;position:relative;flex:none}
.gl-rail__track::before{content:'';position:absolute;inset:0;background:var(--gl-page-bg,#0e4d4a);opacity:.0}
.gl-rail__fill{position:absolute;inset:0;display:block;background:var(--gl-ochre);transform-origin:50% 0;transform:scaleY(1)}
.gl-rail__text{display:none;writing-mode:vertical-rl;transform:rotate(180deg);font:12px/1.2 var(--gft-font-mono);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;gap:18px;align-items:center;padding:6px 4px;background:var(--gl-night);color:var(--gl-paper)}
.gl-rail__text b{font-weight:700;margin-inline-end:14px}
.gl-rail__terms{opacity:.8}.gl-rail__terms b{margin:0 .4em 0 0;display:inline}
@media(min-width:1200px){.gl-rail{right:8px}.gl-rail__text{display:flex}}
@supports (animation-timeline:scroll()){
 :root[data-m-go] .gl-rail__fill{animation-name:gl-rail-fill;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll(root block)}
}
@keyframes gl-rail-fill{from{transform:scaleY(0)}to{transform:scaleY(1)}}

/* ---------- glyph (the page motif) ---------- */
.gl-glyph{width:100%;height:100%;overflow:visible;font-family:var(--gft-font-mono);font-variant-numeric:tabular-nums;color:inherit}
.gl-glyph [data-m-live]{transform-box:fill-box;transform-origin:center;overflow-anchor:none}
.gl-glyph__label{letter-spacing:.1em}
.gl-glyph--shear .gl-glyph__a{transform:skewX(-16deg);transform-box:fill-box;transform-origin:50% 100%}
.gl-glyph--shear .gl-glyph__z{transform:translateX(30px)}
.gl-glyph--dark .gl-glyph__a{transform:translateX(-30px)}
@keyframes gl-sway{from{transform:translate(-12px,7px)}to{transform:translate(14px,-8px)}}
@keyframes gl-sweep{from{transform:translateX(-26px)}to{transform:translateX(26px)}}
:root[data-m-go] .gl-page .gl-glyph__drift[data-m-on]{animation-name:gl-sway;animation-duration:15s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
:root[data-m-go] .gl-page .gl-glyph__shuttle[data-m-on]{animation-name:gl-sweep;animation-duration:7s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}

/* ---------- splash ---------- */
.gl-page .gft-splash__content{padding-top:66px;padding-bottom:50px}
.gl-page .gft-splash h1{max-width:11ch;font-size:clamp(3.7rem,7.4vw,9rem);line-height:1.02;letter-spacing:-.065em}
.gl-page .gft-splash h1>br{display:none}
.gl-page .gft-splash h1>.gft-serif{display:block;line-height:1.12}
.gl-page .gft-splash__lede{max-width:44ch;font-size:clamp(16px,1.3vw,19px);line-height:1.65;min-height:6.8em}
.gl-page .gft-splash__actions{margin-top:28px}
.gl-page .gft-splash__structure{color:#a6d7ba;align-items:center}
.gl-page .gft-splash__structure::after{background:linear-gradient(90deg,#072d2bd9,transparent 40%)}
@media(min-width:1001px){.gl-page .gft-splash__structure{inset:0 -9% 0 31%}}
@media(max-width:640px){.gl-page .gft-splash h1{font-size:clamp(2.25rem,10.5vw,3.6rem)}.gl-page .gft-splash h1>.gft-serif{font-size:.86em;white-space:nowrap;letter-spacing:-.055em}.gl-page .gft-splash__lede{font-size:15px;max-width:36ch}.gl-page .gft-splash__structure::after{background:linear-gradient(#072d2b55,transparent 35%)}}
.gl-page .gft-splash__structure [data-splash-draw]{overflow-anchor:none}
/* Keep the complete signal label clear of the fixed alphabet badge. */
@media(min-width:1200px){.gl-page .gft-splash__signal{margin-right:24px}}

/* ---------- lexicon ---------- */
.gl-lex{background:var(--gl-paper);padding-block:clamp(64px,6vw,96px) clamp(96px,10vw,150px)}
.gl-lex__head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:20px clamp(32px,8vw,140px);align-items:end;margin-bottom:36px}
.gl-lex__head .gft-eyebrow{grid-column:1/-1}
.gl-lex__head h2{font-size:clamp(2.6rem,5.4vw,6rem);max-width:12ch}
.gl-lex__tool{display:grid;gap:32px;min-width:0}
.gl-search{display:grid;gap:12px;border-block:1px solid var(--gl-line);padding-block:24px}
.gl-search label{font:650 13px/1.4 var(--gft-font-display);text-transform:uppercase;letter-spacing:.08em}
.gl-search__row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center}
.gl-search input{width:100%;min-width:0;min-height:60px;padding:14px 18px;border:1px solid #8ea596;background:#fcfbf8;color:var(--gl-night);font:500 clamp(1.1rem,1.6vw,1.5rem)/1.3 var(--gft-font-display);border-radius:0}
.gl-search input:focus-visible{outline:3px solid var(--gft-ochre);outline-offset:2px}
.gl-quiet{min-height:48px;padding:10px 4px;background:transparent;border:0;border-bottom:1px solid currentColor;font:600 14px var(--gft-font-display);color:var(--gl-forest)}
.gl-quiet:disabled{opacity:.45}
.gl-search__count{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 24px;font:13px/1.6 var(--gft-font-mono);max-width:none;color:#33403d}
.gl-search__count output{font-weight:700;color:var(--gl-forest)}
.gl-strip{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(26,minmax(0,1fr));gap:4px;align-items:end}
.gl-bar{display:grid;grid-template-rows:150px auto auto;justify-items:center;gap:6px;min-height:44px;padding-bottom:6px;text-decoration:none;color:var(--gl-forest);border-bottom:3px solid transparent;outline-offset:2px}
.gl-bar[aria-current=true]{border-bottom-color:var(--gl-ochre)}
.gl-bar__track{display:flex;align-items:flex-end;width:100%;height:150px}
.gl-bar__fill{display:block;width:100%;height:100%;background:var(--gl-forest);opacity:.3;transform-origin:50% 100%;transform:scaleY(max(var(--s,0),.025));transition:transform 650ms var(--gft-ease-out),opacity 260ms}
.gl-bar:hover .gl-bar__fill{opacity:.62}
.gl-bar[aria-current=true] .gl-bar__fill{opacity:1;background:var(--gl-ochre)}
.gl-bar b{font:800 clamp(.95rem,1.2vw,1.2rem)/1 var(--gft-font-display)}
.gl-bar em{font:12px/1 var(--gft-font-mono);font-style:normal;color:#52655d}
.gl-bar[data-empty]{opacity:.38}
.gl-lex__body{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(24px,3vw,48px);align-items:start}
.gl-lex__list{max-height:560px;overflow:auto;border-top:1px solid var(--gl-forest);scrollbar-width:thin;overscroll-behavior:contain}
.gl-lex__list:focus-visible{outline:3px solid var(--gft-ochre);outline-offset:3px}
.gl-lex__tool[data-ready] .gl-panel:not([data-on]){display:none}
.gl-panel h3{display:flex;align-items:baseline;gap:16px;padding:16px 0 6px}
.gl-panel h3 span{font-size:clamp(3rem,5vw,5rem);line-height:1;font-weight:850;color:var(--gl-forest)}
.gl-panel h3 small{font:12px var(--gft-font-mono);letter-spacing:.08em;color:#52655d;text-transform:uppercase}
.gl-terms{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}
.gl-terms li[hidden]{display:none}
.gl-terms li{border-bottom:1px solid #c1cec4;min-width:0}
.gl-terms button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:14px;min-height:50px;padding:6px 8px;text-align:left;border:0;background:transparent;color:var(--gl-forest);font:600 15px/1.3 var(--gft-font-display);transition:background-color 220ms,color 220ms}
.gl-terms button:hover:not(:disabled){background:#0e4d4a12}
.gl-terms button[aria-pressed=true]{background:var(--gl-forest);color:#fff}
.gl-term__defs p{font-size:14px;line-height:1.7;margin:6px 8px 12px}
.gl-term__defs small,.gl-detail small{display:block;font:12px/1.8 var(--gft-font-mono);color:#52655d;margin-top:6px}
.gl-lex__tool[data-ready] .gl-term__defs{display:none}
.gl-detail{background:var(--gl-forest);color:#eef5f0;padding:clamp(24px,2.6vw,40px);position:sticky;top:104px;min-width:0;overflow:hidden}
.gl-detail .gl-kicker{color:#9dceaf}
.gl-detail__letter{font-weight:850;font-size:clamp(7rem,13vw,13rem);line-height:.9;letter-spacing:-.06em;color:#9dceaf;opacity:.38;margin-block:14px 6px}
.gl-detail h3{font-size:clamp(1.6rem,2.4vw,2.4rem);margin-bottom:18px;overflow-wrap:anywhere}
.gl-detail__body p{font-size:16px;line-height:1.7;margin-bottom:16px;max-width:none}
.gl-detail small{color:#b4c7bd}
.gl-detail .gl-note{color:#b4c7bd;margin-top:16px}
.gl-detail__thread{display:block;width:84px;height:3px;background:var(--gl-ochre);margin-top:20px}

/* ---------- denominator ---------- */
.gl-den{background:#ece8df}
.gl-den__glyph{position:absolute;z-index:0;right:-10%;top:4%;width:66%;color:var(--gl-forest);opacity:.45;pointer-events:none}
.gl-den__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2.2vw,32px);align-items:start;z-index:1}
.gl-den__head{grid-column:1/8;grid-row:1}
.gl-den__head h2{font-size:clamp(2.6rem,5vw,5.6rem);max-width:11ch;margin-top:18px}
.gl-den__copy{grid-column:1/6;grid-row:2;margin-top:44px}
.gl-den__tool{grid-column:7/13;grid-row:1/3;margin:0;align-self:center}
.gl-tokens{list-style:none;margin:0 0 22px;padding:0;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:8px}
.gl-token i{display:block;aspect-ratio:1;background:var(--gl-forest);transition:opacity 360ms,transform 480ms var(--gft-ease-out)}
.gl-token--a i{background:var(--gl-ochre)}
.gl-token--r i{background:var(--gl-forest)}
.gl-token--m i{background:transparent;border:2px solid var(--gl-forest)}
.gl-den__tool:has(#gl-den-released:checked) .gl-token--m i{opacity:.14;transform:scale(.6)}
.gl-den__tool:has(#gl-den-accepted:checked) :is(.gl-token--m,.gl-token--r) i{opacity:.14;transform:scale(.6)}
.gl-den__readout{display:grid;min-height:7.6rem}
.gl-den__fig{display:none;align-items:baseline;gap:20px;flex-wrap:wrap;max-width:none}
.gl-den__fig b{font:850 clamp(3rem,5.6vw,6rem)/.95 var(--gft-font-display);letter-spacing:-.05em;color:var(--gl-forest)}
.gl-den__fig span{font:700 clamp(1.3rem,2vw,2rem)/1 var(--gft-font-mono);color:var(--gl-ochre-ink)}
.gl-den__tool:has(#gl-den-made:checked) .gl-den__fig--made,.gl-den__tool:has(#gl-den-released:checked) .gl-den__fig--released,.gl-den__tool:has(#gl-den-accepted:checked) .gl-den__fig--accepted{display:flex;animation-name:gl-roll;animation-duration:620ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:both;animation-iteration-count:1;animation-direction:normal}
@keyframes gl-roll{from{opacity:0;transform:translateY(55%)}to{opacity:1;transform:none}}
.gl-den__key,.gl-int__key{display:flex;flex-wrap:wrap;gap:8px 22px;margin:18px 0 12px;font:12px/1.5 var(--gft-font-mono);text-transform:uppercase;letter-spacing:.08em;max-width:none}
.gl-den__key span::before,.gl-int__key span::before{content:'';display:inline-block;width:11px;height:11px;margin-right:8px;vertical-align:-1px}
.k-a::before{background:var(--gl-ochre)}.k-r::before{background:var(--gl-forest)}.k-m::before{border:2px solid var(--gl-forest)}

/* ---------- provenance ---------- */
.gl-prov{background:#d8e5dc}
.gl-prov__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2.2vw,32px);row-gap:44px;align-items:start}
.gl-prov__head{grid-column:1/8;grid-row:1}
.gl-prov__head h2{font-size:clamp(2.6rem,5vw,5.6rem);max-width:12ch;margin-top:18px}
.gl-prov__stack{grid-column:8/13;grid-row:1/3;min-width:0;align-self:center}
.gl-prov__copy{grid-column:1/8;grid-row:2;padding-top:0}
.gl-prov__tool{grid-column:1/-1;grid-row:3;margin-right:0;background:#fcfbf8}
/* Leave the full fixed rail and its A to Z badge outside this instrument. */
@media(min-width:1200px){.gl-prov__tool{margin-right:max(0px,calc(72px - var(--gl-gutter)))}}
.gl-prov__bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 32px;margin:16px 0 26px}
.gl-prov__meta{font:13px/1.6 var(--gft-font-mono);max-width:none}.gl-prov__meta b{font-size:1.1em}
.gl-prov__scroll{overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}
.gl-prov__scroll:focus-visible{outline:3px solid var(--gft-ochre);outline-offset:3px}
.gl-cols{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(20,minmax(44px,1fr));gap:6px;height:280px}
.gl-cols li{min-width:0;display:flex}
.gl-col{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px;width:100%;padding:0 0 4px;border:0;background:transparent;color:var(--gl-forest);cursor:pointer;border-bottom:3px solid transparent}
.gl-col[aria-pressed=true]{border-bottom-color:var(--gl-ochre)}
.gl-col:focus-visible{outline:3px solid var(--gft-ochre);outline-offset:2px}
.gl-col__track{display:flex;align-items:flex-end;height:100%;min-height:0;background:linear-gradient(#0e4d4a10,#0e4d4a10);position:relative}
.gl-col__fill{display:block;width:100%;height:100%;background:var(--gl-forest);opacity:.45;transform-origin:50% 100%;transform:scaleY(max(var(--all),.02));transition:transform 620ms var(--gft-ease-out),opacity 240ms}
.gl-prov__tool[data-mode=shared] .gl-col__fill{transform:scaleY(max(var(--shared),.02))}
.gl-col:hover .gl-col__fill{opacity:.8}
.gl-col[aria-pressed=true] .gl-col__fill{opacity:1;background:var(--gl-ochre)}
.gl-col b{font:700 12px/1 var(--gft-font-mono);letter-spacing:.04em}
.gl-prov__readout{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px 36px;margin:22px 0 14px;min-height:4.6rem}
.gl-prov__big{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;max-width:none}
.gl-prov__big b{font:850 clamp(2.6rem,4.4vw,4.6rem)/1 var(--gft-font-display);letter-spacing:-.05em;color:var(--gl-forest)}
.gl-prov__big span{font:700 clamp(1rem,1.5vw,1.4rem)/1.2 var(--gft-font-mono);color:var(--gl-ochre-ink)}

/* ---------- interlude ---------- */
.gl-int{background:radial-gradient(ellipse at 18% 30%,#0e4d4a 0%,#072d2b 62%);color:#d3dfd7;overflow:visible}
.gl-int__glyph{position:absolute;inset:0;overflow:clip;pointer-events:none;color:#9dceaf}
.gl-int__glyph-in{position:absolute;inset:-6% -12% -6% 30%;opacity:.32}
.gl-int__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2.2vw,32px);align-items:start;z-index:1}
.gl-int__head{grid-column:7/13;grid-row:1}
.gl-int__head h2{font-size:clamp(3rem,6.6vw,7.6rem);color:#fff;max-width:9ch;margin-top:18px;line-height:1}
.gl-int__head .gft-eyebrow{color:#9dceaf}
.gl-int__copy{grid-column:7/13;grid-row:2;margin-top:44px;color:#d3dfd7}
.gl-int__tool{grid-column:1/7;grid-row:1/4;margin:0;align-self:start;position:sticky;top:96px}
.gl-int__beats{grid-column:7/13;grid-row:3;list-style:none;margin:40px 0 0;padding:0;display:grid;gap:0}
.gl-pieces{position:relative;margin-bottom:22px}
.gl-pieces__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:8px}
.gl-piece i{display:block;aspect-ratio:1;transition:opacity 360ms,transform 480ms var(--gft-ease-out)}
.gl-piece--tn i{background:var(--gl-sage)}
.gl-piece--tp i{background:var(--gl-ochre)}
.gl-piece--fp i{background:var(--gl-sage);border:3px solid var(--gl-ochre)}
.gl-piece--fn i{background:transparent;border:2px dashed var(--gl-ochre)}
.gl-pieces__scan{position:absolute;left:-6px;right:-6px;top:50%;height:2px;background:#ffffff66;pointer-events:none}
.gl-int__tool:has(#gl-met-acc:checked) :is(.gl-piece--fp,.gl-piece--fn) i{transform:scale(.74)}
.gl-int__tool:has(#gl-met-rec:checked) :is(.gl-piece--fp,.gl-piece--tn) i{opacity:.13;transform:scale(.5)}
.gl-int__tool:has(#gl-met-rec:checked) .gl-piece--fn i{transform:scale(.74)}
.gl-int__tool:has(#gl-met-far:checked) :is(.gl-piece--tp,.gl-piece--fn) i{opacity:.13;transform:scale(.5)}
.gl-int__tool:has(#gl-met-far:checked) .gl-piece--tn i{transform:scale(.74)}
.gl-int__readout{display:grid;min-height:9.6rem}
.gl-met{display:none;grid-template-columns:auto 1fr;gap:6px 22px;align-items:baseline;max-width:none}
.gl-met b{font:850 clamp(3rem,5.4vw,5.8rem)/.95 var(--gft-font-display);letter-spacing:-.05em;color:#fff}
.gl-met span{font:700 clamp(1.3rem,2vw,2rem)/1 var(--gft-font-mono);color:var(--gl-ochre)}
.gl-met em{grid-column:1/-1;font-style:normal;font-size:15px;line-height:1.55;color:#c5d6cb;max-width:44ch}
.gl-int__tool:has(#gl-met-acc:checked) .gl-met--acc,.gl-int__tool:has(#gl-met-rec:checked) .gl-met--rec,.gl-int__tool:has(#gl-met-far:checked) .gl-met--far{display:grid;animation-name:gl-roll;animation-duration:620ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:both;animation-iteration-count:1;animation-direction:normal}
.k-tp::before{background:var(--gl-ochre)}.k-fn::before{border:2px dashed var(--gl-ochre)}.k-fp::before{background:var(--gl-sage);border:2px solid var(--gl-ochre)}.k-tn::before{background:var(--gl-sage)}

/* ---------- walk (sticky, four states) ---------- */
.gl-walk{background:var(--gl-paper)}
.gl-walk__head{margin-bottom:56px;max-width:1000px}
.gl-walk__head h2{font-size:clamp(2.6rem,5.4vw,6rem);max-width:14ch;margin-top:18px}
.gl-walk__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,6vw,96px);align-items:start}
.gl-walk__stage{position:sticky;top:104px;align-self:start;min-width:0}
.gl-stage{background:var(--gl-forest);color:#d8ece0;padding:clamp(20px,2.4vw,36px);min-height:min(74svh,640px);display:grid;grid-template-rows:auto 1fr auto auto auto;gap:14px}
.gl-stage .gl-kicker{color:#9dceaf}
.gl-stage__svg{width:100%;height:100%;max-height:430px;font-family:var(--gft-font-mono);align-self:center}
.gl-stage__svg text{fill:currentColor}
.gl-st{opacity:0;transform:translateY(16px);transition:opacity 520ms var(--gft-ease-out),transform 640ms var(--gft-ease-out)}
.gl-st [data-m-live]{transform-box:fill-box;transform-origin:center}
.gl-walk__grid[data-step="0"] .gl-st--0,.gl-walk__grid[data-step="1"] .gl-st--1,.gl-walk__grid[data-step="2"] .gl-st--2,.gl-walk__grid[data-step="3"] .gl-st--3{opacity:1;transform:none}
.gl-stage__track{display:block;height:3px;background:#ffffff26}
.gl-stage__track i{display:block;height:100%;background:var(--gl-ochre);transform-origin:0 50%;transform:scaleX(.25);transition:transform 640ms var(--gft-ease-out)}
.gl-walk__grid[data-step="1"] .gl-stage__track i{transform:scaleX(.5)}.gl-walk__grid[data-step="2"] .gl-stage__track i{transform:scaleX(.75)}.gl-walk__grid[data-step="3"] .gl-stage__track i{transform:scaleX(1)}
.gl-stage__tabs{display:flex;flex-wrap:wrap;gap:8px}
.gl-stage__tabs a{display:inline-flex;align-items:center;min-height:44px;padding:8px 18px;border:1px solid #ffffff55;text-decoration:none;font:650 13px var(--gft-font-display);color:#eef5f0;transition:background-color 260ms,color 260ms}
.gl-stage__tabs a[aria-current=step]{background:#f6f4ef;color:var(--gl-night);border-color:#f6f4ef}
.gl-stage .gl-note{color:#b4c7bd}
.gl-step{min-height:72svh;display:grid;align-content:center;gap:16px;padding:6svh 0 6svh 30px;position:relative;border-left:1px solid var(--gl-line);color:#52655d;transition:color 360ms}
.gl-step::after{content:'';position:absolute;left:-1px;top:6svh;bottom:6svh;width:3px;background:var(--gl-ochre);transform-origin:50% 0;transform:scaleY(0);transition:transform 640ms var(--gft-ease-out)}
.gl-step h3{font-size:clamp(1.8rem,2.8vw,3rem);color:var(--gl-ink)}
.gl-step p{font-size:clamp(1.0625rem,1.2vw,1.1875rem);line-height:1.75;max-width:52ch}
.gl-step .gl-kicker{color:var(--gl-ochre-ink)}
.gl-walk__grid[data-step="0"] [data-gl-step="0"],.gl-walk__grid[data-step="1"] [data-gl-step="1"],.gl-walk__grid[data-step="2"] [data-gl-step="2"],.gl-walk__grid[data-step="3"] [data-gl-step="3"]{color:#25302e}
.gl-walk__grid[data-step="0"] [data-gl-step="0"]::after,.gl-walk__grid[data-step="1"] [data-gl-step="1"]::after,.gl-walk__grid[data-step="2"] [data-gl-step="2"]::after,.gl-walk__grid[data-step="3"] [data-gl-step="3"]::after{transform:scaleY(1)}
.gl-step__thread{display:block;width:84px;height:3px;background:var(--gl-ochre)}

/* ---------- neighbours ---------- */
.gl-nb{background:#f1ede4}
.gl-nb__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2.2vw,32px);row-gap:40px;align-items:start}
.gl-nb__head{grid-column:1/8;grid-row:1}
.gl-nb__head h2{font-size:clamp(2.6rem,5.2vw,5.8rem);max-width:12ch;margin-top:18px}
.gl-nb__pv{grid-column:8/13;grid-row:1/3;min-width:0}
.gl-nb__copy{grid-column:1/7;grid-row:2}
.gl-nb__tool{grid-column:1/-1;grid-row:3}
.gl-nb__more{grid-column:1/9;grid-row:4}
.gl-nb__picks{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:20px;align-items:end;margin-bottom:28px}
.gl-nb__picks label{display:grid;gap:8px;font:650 12px/1.4 var(--gft-font-mono);text-transform:uppercase;letter-spacing:.1em}
.gl-nb__picks select{width:100%;min-width:0;min-height:52px;padding:12px 14px;border:1px solid #8ea596;background:#fcfbf8;color:var(--gl-night);font:500 16px var(--gft-font-display);border-radius:0}
.gl-nb__picks select:focus-visible{outline:3px solid var(--gft-ochre);outline-offset:2px}
.gl-nb__vs{display:grid;justify-items:center;gap:6px;font:12px var(--gft-font-mono);text-transform:uppercase;letter-spacing:.14em;color:#52655d;padding-bottom:14px}
.gl-nb__vs i{display:block;width:44px;height:3px;background:var(--gl-ochre)}
.gl-nb__cards{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;border-block:1px solid var(--gl-line)}
.gl-nb__card{padding:clamp(20px,2.6vw,40px)}
.gl-nb__card+.gl-nb__card{border-left:1px solid var(--gl-line);background:#0e4d4a0d}
.gl-nb__card h3{font-size:clamp(1.8rem,3vw,3.2rem);margin-bottom:16px;overflow-wrap:anywhere}
.gl-nb__def{font-size:clamp(1.0625rem,1.3vw,1.25rem);line-height:1.7;max-width:none;min-height:5.2em}
.gl-nb__def mark,.gl-nb__verdict mark{background:linear-gradient(transparent 58%,#c98a2b66 58%);color:inherit}
.gl-nb__card .gl-note{margin-top:14px}
.gl-nb__verdict{display:flex;align-items:baseline;gap:20px;margin-top:26px;max-width:none;font-size:clamp(1rem,1.2vw,1.125rem);line-height:1.6}
.gl-nb__verdict b{font:850 clamp(3rem,5vw,5rem)/1 var(--gft-font-display);letter-spacing:-.05em;color:var(--gl-forest)}
.gl-nb__verdict span{max-width:58ch}
.gl-chips{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.gl-chips li{padding:10px 18px;border:1px solid var(--gl-forest);font:600 13px var(--gft-font-display)}

/* ---------- closing instrument ---------- */
.gl-end{background:radial-gradient(ellipse at 80% 18%,#0e4d4a 0%,#072d2b 60%);color:#d3dfd7}
.gl-end__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2.2vw,32px);align-items:start}
.gl-end__head{grid-column:1/7;grid-row:1}
.gl-end__head h2{font-size:clamp(2.8rem,5.6vw,6.4rem);color:#fff;max-width:11ch;margin-top:18px}
.gl-end__head .gft-eyebrow{color:#9dceaf}
.gl-end__copy{grid-column:1/6;grid-row:2;margin-top:44px}
.gl-end__tool{grid-column:7/13;grid-row:1/3;align-self:center}
.gl-end__letter{display:grid;grid-template-columns:minmax(0,.5fr) minmax(0,1.5fr);gap:22px;align-items:center;margin-block:18px 20px}
.gl-end__glyph{position:relative;aspect-ratio:1.45;color:#9dceaf;min-width:0}
.gl-end__big{position:absolute;inset:0;display:grid;place-items:center;font:italic 400 clamp(5.5rem,10vw,10rem)/1 var(--gft-font-serif);color:#f6f4ef;padding-bottom:.1em}
.gl-end__fields{display:grid;gap:12px;min-width:0}
.gl-end__decision-value{min-height:2.8em;font:500 14px/1.4 var(--gft-font-display);text-transform:none;letter-spacing:0;overflow-wrap:anywhere;color:#f6f4ef}
@media(min-width:1400px){.gl-end__decision-value{display:none}}
.gl-end__tool label{display:grid;gap:6px;font:650 12px/1.4 var(--gft-font-mono);text-transform:uppercase;letter-spacing:.1em;color:#b4c7bd}
.gl-end__tool input,.gl-end__tool select,.gl-end__tool textarea{width:100%;min-width:0;background:#072d2b;border:1px solid #6bb68f80;color:#f6f4ef;border-radius:0;padding:12px 14px;min-height:48px;font:500 16px/1.4 var(--gft-font-display);text-transform:none;letter-spacing:0}
.gl-end__tool input:focus-visible,.gl-end__tool select:focus-visible,.gl-end__tool textarea:focus-visible{outline:3px solid var(--gft-ochre);outline-offset:2px}
.gl-end__tool textarea{font:12.5px/1.65 var(--gft-font-mono);resize:vertical;min-height:210px;color:#d3dfd7}
.gl-end__actions{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0 14px}
.gl-btn{display:inline-flex;align-items:center;gap:14px;min-height:48px;padding:12px 20px;border:1px solid #f6f4ef;background:#f6f4ef;color:var(--gl-night);font:650 14px var(--gft-font-display);text-decoration:none;cursor:pointer;position:relative}
.gl-btn:disabled{opacity:.45;cursor:default}
.gl-btn--ghost{background:transparent;color:#f6f4ef}
.gl-btn--amber{background:var(--gl-ochre);border-color:var(--gl-ochre);color:var(--gl-night)}
.gl-btn--amber::after{content:'↗';font-size:18px;font-weight:400}
.gl-end__thread{position:absolute;left:100%;top:50%;margin-left:14px;width:46px;height:3px;background:var(--gl-ochre)}
.gl-btn:focus-visible{outline:3px solid var(--gft-ochre);outline-offset:3px}
.gl-end__links{margin-top:clamp(90px,10vw,150px)}
.gl-end__links h3{font-size:clamp(2.2rem,4.4vw,4.6rem);color:#fff;margin-bottom:36px}
.gl-end__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.gl-linkcard{border:1px solid #ffffff2b;padding:clamp(20px,2.2vw,32px);background:#ffffff08}
.gl-linkcard h4{font:12px/1.6 var(--gft-font-mono);text-transform:uppercase;letter-spacing:.14em;color:#9dceaf;margin-bottom:12px}
.gl-linkcard ul{list-style:none;margin:0;padding:0}
.gl-linkcard li{border-top:1px solid #ffffff22}
.gl-linkcard a,.gl-linkcard__wait{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:64px;padding-block:12px;color:#fff;text-decoration:none;font:650 clamp(1.05rem,1.4vw,1.3rem)/1.3 var(--gft-font-display);letter-spacing:-.02em}
.gl-linkcard a i{font-style:normal;color:var(--gl-ochre);transition:transform 300ms var(--gft-ease-out)}
.gl-linkcard a:hover i{transform:translate(4px,-4px)}
.gl-linkcard__wait{color:#b4c7bd}.gl-linkcard__wait small{font:12px var(--gft-font-mono);text-transform:uppercase;letter-spacing:.08em}
.gl-end__more{display:flex;flex-wrap:wrap;gap:12px 32px;margin-top:30px;max-width:none}
.gl-end__more a{color:#f6f4ef;font-size:15px;min-height:44px;display:inline-flex;align-items:center}

/* ---------- tablet and phone ---------- */
@media(max-width:1000px){
 .gl-page{--gl-gutter:28px}
 .gl-wrap{width:calc(100% - 56px)}
 .gl-lex__head{grid-template-columns:1fr}
 .gl-lex__body{grid-template-columns:1fr}
 .gl-detail{position:relative;top:auto;order:-1}
 .gl-den__head,.gl-den__copy,.gl-den__tool,.gl-prov__head,.gl-prov__stack,.gl-prov__copy,.gl-prov__tool,.gl-int__head,.gl-int__copy,.gl-int__beats,.gl-int__tool,.gl-nb__head,.gl-nb__pv,.gl-nb__copy,.gl-nb__tool,.gl-nb__more,.gl-end__head,.gl-end__copy,.gl-end__tool{grid-column:1/-1;grid-row:auto}
 .gl-prov__copy{padding-top:0}
 .gl-lex__head .gl-lex__side{max-width:60ch}
 .gl-den__copy,.gl-int__copy,.gl-end__copy{margin-top:28px}
 .gl-den__tool,.gl-int__tool,.gl-end__tool{margin-top:48px}
 .gl-int__head{order:-1}.gl-int__grid{display:flex;flex-direction:column}
 .gl-int__head{order:1}.gl-int__copy{order:2}.gl-int__beats{order:3;margin-top:28px}.gl-int__tool{order:4;position:relative;top:auto}
 .gl-den__glyph{width:120%;right:-30%;opacity:.3}
 .gl-walk__grid{grid-template-columns:1fr;gap:24px}
 .gl-walk__stage{top:76px;z-index:3}
 .gl-stage{min-height:0;padding:16px;gap:10px}
 .gl-stage__svg{max-height:210px}
 .gl-stage>.gl-note{display:none}
 .gl-step{min-height:58svh}
 .gl-nb__picks{grid-template-columns:1fr}.gl-nb__vs{display:none}
 .gl-nb__cards{grid-template-columns:1fr}.gl-nb__card+.gl-nb__card{border-left:0;border-top:1px solid var(--gl-line)}
 .gl-end__cards{grid-template-columns:1fr}
 .gl-prov__tool{margin-right:0}
}
@media(max-width:640px){
 .gl-wrap{width:calc(100% - 40px)}
 .gl-page{--gl-gutter:20px}
 .gl-sec{padding-block:96px 90px}
 .gl-strip{display:flex;overflow-x:auto;gap:2px;padding-bottom:6px;scroll-snap-type:x proximity;scrollbar-width:thin}
 .gl-strip li{flex:0 0 46px;scroll-snap-align:start}
 .gl-bar{grid-template-rows:110px auto auto}.gl-bar__track{height:110px}
 .gl-terms{grid-template-columns:1fr}
 .gl-lex__list{max-height:420px}
 .gl-search__row{grid-template-columns:1fr}
 .gl-seg span{padding:8px 6px;font-size:13px;min-height:48px}
 .gl-seg--small{display:flex}.gl-seg--small label{flex:1 1 0}
 .gl-den__fig b,.gl-met b{font-size:3rem}
 .gl-cols{height:240px}
 .gl-end__letter{grid-template-columns:1fr}.gl-end__glyph{aspect-ratio:1.9;max-height:180px}
 .gl-card{padding:20px}
 .gl-stage__svg{max-height:170px}
 .gl-stage__tabs a{padding:8px 12px;font-size:12px}
 .gl-step{min-height:54svh}
 .gl-seam{left:14px}
 .gl-rail{right:3px}
 .gl-nb__verdict{flex-wrap:wrap;gap:8px 16px}
 .gl-note{font-size:12px}
}

/* ---------- reduced motion and Calm: composed stills ---------- */
:root[data-motion="calm"] .gl-page :is(.gl-seam__line,.gl-seam__dot,.gl-rail__fill){animation-name:none;animation-timeline:auto}
:root[data-motion="calm"] .gl-page :is(.gl-glyph__drift,.gl-glyph__shuttle,.gl-den__fig,.gl-met){animation-name:none}
:root[data-motion="calm"] .gl-page :is(.gl-st,.gl-stage__track i,.gl-step::after,.gl-bar__fill,.gl-col__fill,.gl-token i,.gl-piece i){transition:none}
@media(prefers-reduced-motion:reduce){
 .gl-page :is(.gl-seam__line,.gl-seam__dot,.gl-rail__fill,.gl-glyph__drift,.gl-glyph__shuttle,.gl-den__fig,.gl-met){animation-name:none!important;animation-timeline:auto!important}
 .gl-page :is(.gl-st,.gl-stage__track i,.gl-step::after,.gl-bar__fill,.gl-col__fill,.gl-token i,.gl-piece i,.gl-seg span,.gl-linkcard a i){transition:none}
}

/* =====================================================================
   Round two: spine, hero read-out, lexicon preview, paper deck,
   pinned interlude, neighbour weave, term router, closing warp.
   ===================================================================== */
@property --gl-px{syntax:'<number>';inherits:false;initial-value:0}
@property --gl-py{syntax:'<number>';inherits:false;initial-value:0}

/* ---------- spine: one amber thread runs the whole film ---------- */
.gl-page::before,.gl-page::after{content:'';position:absolute;z-index:5;left:max(24px,calc((100% - 1440px) / 2 + 37px));top:100svh;bottom:0;width:2px;background:var(--gl-ochre);pointer-events:none;overflow-anchor:none}
.gl-page::before{opacity:.3}
.gl-page::after{transform-origin:50% 0}
@supports (animation-timeline:scroll()){
 :root[data-m-go] .gl-page::after{animation-name:gl-spine-fill;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll(root block);animation-range-start:8%;animation-range-end:100%}
}
@keyframes gl-spine-fill{from{transform:scaleY(0)}to{transform:scaleY(1)}}

/* ---------- hero read-out and pointer-reactive weave ---------- */
.gl-hero{position:absolute;inset:0}
.gl-hero__warp{position:absolute;inset:0;transform:translate3d(calc(var(--gl-px) * -18px),calc(var(--gl-py) * -10px),0);overflow-anchor:none}
.gl-hero__read{position:absolute;right:clamp(150px,22%,300px);bottom:clamp(64px,13%,130px);width:min(310px,calc(100% - 40px));padding:16px 18px 18px;background:#072d2bd9;border:1px solid #9dceaf66;color:#eef5f0;z-index:2}
.gl-hero__read .gl-kicker{color:#9dceaf;font-size:12px;margin-bottom:10px}
.gl-hero__read dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 14px}
.gl-hero__read dt{font:12px/1.4 var(--gft-font-mono);text-transform:uppercase;letter-spacing:.06em;color:#9dceaf}
.gl-hero__read dd{margin:0;font:850 clamp(1.8rem,2.4vw,2.4rem)/1.05 var(--gft-font-display);letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:#fff}
.gl-hero__samp{display:grid;gap:2px;border-top:1px solid #ffffff2b;padding-top:12px;max-width:none}
.gl-hero__samp span{font:12px/1.4 var(--gft-font-mono);text-transform:uppercase;letter-spacing:.08em;color:#9dceaf}
.gl-hero__samp em,.gl-hero__samp small{transition:opacity 380ms var(--gft-ease-out)}
.gl-hero__samp em{font:italic 400 1.45rem/1.25 var(--gft-font-serif);color:var(--gl-paper);overflow-wrap:anywhere}
.gl-hero__samp small{font:12px/1.5 var(--gft-font-mono);color:#c5d6cb}
.gl-hero__samp.is-out :is(em,small){opacity:0}
.gl-hero__read--inline{display:none}
@media(max-width:1000px){
 .gl-hero__read--wide{display:none}
 .gl-hero__actions{display:grid;gap:18px;justify-items:start}
 .gl-hero__read--inline{display:block;position:static;width:min(340px,100%);padding:12px 14px;background:#072d2bb3}
 .gl-hero__read--inline dl{margin-bottom:10px}
 .gl-hero__read--inline dd{font-size:1.5rem}
 .gl-hero__samp em{font-size:1.2rem}
}

/* ---------- lexicon: the preview histogram beside the headline ---------- */
.gl-lex__side{display:grid;gap:14px;min-width:0}
.gl-mini{position:relative;display:grid;grid-template-columns:repeat(26,minmax(0,1fr));gap:3px;align-items:end;height:64px;overflow:clip}
.gl-mini i{display:block;height:100%;background:var(--gl-forest);opacity:.32;transform-origin:50% 100%;transform:scaleY(max(var(--s,0),.04));transition:transform 520ms var(--gft-ease-out),opacity 260ms}
.gl-mini i[data-cur]{background:var(--gl-ochre);opacity:1}
.gl-mini__scan{position:absolute;left:0;right:0;top:0;height:100%;background:linear-gradient(90deg,transparent 40%,#c98a2b33 50%,transparent 60%);pointer-events:none}
.gl-mini__cap{margin-top:-6px}
:root[data-m-go] .gl-page .gl-mini__scan[data-m-on]{animation-name:gl-mini-sweep;animation-duration:6s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal}
@keyframes gl-mini-sweep{from{transform:translateX(-60%)}to{transform:translateX(60%)}}

/* ---------- provenance: the deck of the last three papers opened ---------- */
.gl-prov__stack .gl-kicker{color:#33403d;margin-bottom:14px;font-size:12px}
.gl-pstack{list-style:none;margin:0;padding:0;position:relative;height:calc(262px + 124px)}
.gl-pcard-li{position:absolute;left:0;top:0;width:calc(100% - 40px);height:262px;translate:calc(var(--slot) * 20px) calc(var(--slot) * 62px);z-index:calc(var(--slot) + 1);transition:translate 560ms var(--gft-ease-out)}
.gl-pcard{display:grid;grid-template-rows:auto auto 1fr auto;gap:8px;width:100%;height:100%;padding:16px 18px;text-align:left;background:#fcfbf8;border:1px solid var(--gl-line);color:var(--gl-ink);cursor:pointer;overflow:hidden;box-shadow:0 14px 24px -18px #072d2b99}
.gl-pcard-li[data-slot="2"] .gl-pcard{border-color:var(--gl-forest);border-width:2px}
.gl-pcard:focus-visible{outline:3px solid var(--gft-ochre);outline-offset:3px}
.gl-pcard__head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.gl-pcard__head b{font:850 1.3rem/1 var(--gft-font-display);letter-spacing:-.03em;color:var(--gl-forest)}
.gl-pcard__head span{font:12px/1.3 var(--gft-font-mono);color:#3f4f49;text-align:right}
.gl-pcard__term{font:700 1.05rem/1.3 var(--gft-font-display);color:var(--gl-night)}
.gl-pcard__clause{display:block;font-size:14px;line-height:1.6;overflow:hidden}
.gl-pcard mark{background:linear-gradient(transparent 56%,#c98a2b66 56%);color:inherit;transition:background-color 220ms}
.gl-pcard:hover mark{background:linear-gradient(transparent 20%,#c98a2baa 20%)}
.gl-pcard small{font:12px/1.4 var(--gft-font-mono);color:#3f4f49}
.gl-prov__stack>.gl-note{margin-top:14px;max-width:46ch}

/* ---------- interlude: pinned grid, paragraph beats ---------- */
.gl-int__beats li{border-left:2px solid #ffffff33;padding:14px 0 14px 20px;display:grid;gap:4px;position:relative}
.gl-int__beats li::after{content:'';position:absolute;left:-2px;top:0;bottom:0;width:2px;background:var(--gl-ochre);transform-origin:50% 0;transform:scaleY(0);transition:transform 560ms var(--gft-ease-out)}
.gl-int__beats li[data-on]::after{transform:scaleY(1)}
.gl-int__beats b{font:700 12px/1.4 var(--gft-font-mono);text-transform:uppercase;letter-spacing:.12em;color:#9dceaf}
.gl-int__beats span{font-size:16px;line-height:1.6;color:#c5d6cb;transition:color 360ms}
.gl-int__beats li[data-on] span{color:#fff}
.gl-int__beats li[data-on] b{color:var(--gl-ochre)}

/* ---------- neighbours: two entries, a woven preview ---------- */
.gl-nb__pv .gl-kicker{font-size:12px;color:#33403d;margin-bottom:14px}
.gl-pv__stage{position:relative;aspect-ratio:1.55;min-width:0}
.gl-pv__card{position:absolute;width:38%;display:grid;align-content:start;gap:6px;padding:clamp(14px,1.6vw,22px);min-width:0}
.gl-pv__card small{font:12px/1.4 var(--gft-font-mono);text-transform:uppercase;letter-spacing:.1em}
.gl-pv__card b{font:800 clamp(1.15rem,1.9vw,1.9rem)/1.15 var(--gft-font-display);letter-spacing:-.03em;overflow-wrap:anywhere}
.gl-pv__card--a{left:0;top:4%;height:60%;background:#fcfbf8;border:1px solid var(--gl-line);color:var(--gl-night)}
.gl-pv__card--a small{color:#3f4f49}
.gl-pv__card--b{right:0;top:36%;height:60%;background:var(--gl-forest);color:#fff}
.gl-pv__card--b small{color:#b9dbc7}
.gl-pv__threads{position:absolute;left:38%;right:38%;top:0;height:100%;width:24%;overflow:visible}
.gl-pv__threads path{fill:none;stroke:var(--gl-ochre);stroke-width:2;stroke-linecap:round}
.gl-pv__words{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.gl-pv__words li{padding:5px 12px;border:1px solid var(--gl-forest);font:600 13px/1.3 var(--gft-font-display);color:var(--gl-forest);background:linear-gradient(transparent 62%,#c98a2b55 62%)}
.gl-pv__words li.gl-pv__more{background:none;border-style:dashed;color:#33403d}
.gl-nb__more p{max-width:62ch}
.gl-nb__copy p{max-width:56ch}

/* ---------- closing: the term router ---------- */
.gl-route{--gl-end-gap:20px}
.gl-route__lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:2}
.gl-route__lines path{fill:none;stroke:var(--gl-ochre);stroke-width:2}
.gl-route__lines circle{fill:var(--gl-ochre)}
.gl-route__lines>*{animation-name:gl-trace;animation-duration:640ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:both;animation-iteration-count:1;animation-direction:normal}
@keyframes gl-trace{from{opacity:0}to{opacity:1}}
.gl-route__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px 40px;margin-bottom:14px}
.gl-end__links .gl-route__head h3{margin-bottom:0}
.gl-route__node{display:flex;align-items:center;gap:16px;max-width:none;padding:12px 18px;border:1px solid #ffffff33;background:#ffffff0d}
.gl-route__dot{display:block;flex:none;width:14px;height:14px;border-radius:50%;background:var(--gl-ochre);box-shadow:0 0 0 6px #c98a2b44}
.gl-route__what{display:grid;gap:2px;min-width:0}
.gl-route__what b{font:700 1.15rem/1.25 var(--gft-font-display);color:#fff;overflow-wrap:anywhere}
.gl-route__what em{font-style:normal;font-size:14px;color:#c5d6cb}
.gl-route__n{font:13px/1.4 var(--gft-font-mono);color:#c5d6cb;display:grid;justify-items:end;text-align:right}
.gl-route__n b{font:850 2.2rem/1 var(--gft-font-display);color:var(--gl-ochre);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.gl-route__lede{max-width:56ch;color:#c5d6cb;font-size:16px;line-height:1.6;margin:0 0 76px}
.gl-route .gl-linkcard ul{display:flex;flex-direction:column}
.gl-route .gl-linkcard li[data-match]{order:-1}
.gl-route .gl-linkcard li[data-match] a{background:#ffffff14;box-shadow:inset 3px 0 0 var(--gl-ochre);padding-inline:14px}
.gl-route .gl-linkcard li:not([data-match]) a{color:#c5d6cb}
.gl-route .gl-linkcard li[data-match] a::before{content:'Matches';order:1;margin-left:auto;font:12px/1 var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--gl-ochre)}
.gl-route .gl-linkcard li[data-match] a i{order:2}
.gl-linkcard h4{font-size:12px}

/* ---------- closing: A to Z resolves to the chosen term ---------- */
.gl-fin{margin-top:clamp(64px,8vw,110px);padding-top:30px;border-top:1px solid #ffffff2b;position:relative;overflow:clip}
.gl-fin__warp{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(26,minmax(0,1fr));height:96px}
.gl-fin__warp li{display:flex;align-items:flex-end;justify-content:center;border-left:1px solid #ffffff2b;padding-bottom:4px;transition:border-color 420ms}
.gl-fin__warp b{font:700 12px/1 var(--gft-font-mono);color:#9dceaf;transition:color 420ms}
.gl-fin__warp li[data-on]{border-left:2px solid var(--gl-ochre)}
.gl-fin__warp li[data-on] b{color:var(--gl-ochre)}
.gl-fin__shuttle{position:absolute;left:0;right:0;top:calc(30px + 44px);height:4px;background:linear-gradient(90deg,transparent 38%,var(--gl-ochre) 50%,transparent 62%);pointer-events:none;opacity:.9}
:root[data-m-go] .gl-page .gl-fin__shuttle[data-m-on]{animation-name:gl-fin-sweep;animation-duration:9s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes gl-fin-sweep{from{transform:translateX(-56%)}to{transform:translateX(56%)}}
.gl-fin__cap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;margin-top:18px;max-width:none}
.gl-fin__cap span{font:12px/1.4 var(--gft-font-mono);text-transform:uppercase;letter-spacing:.12em;color:#9dceaf}
.gl-fin__cap b{font:italic 400 clamp(1.4rem,2.4vw,2.2rem)/1.2 var(--gft-font-serif);color:#f6f4ef}

@media(max-width:1000px){
 .gl-route__lines{display:none}
 .gl-route__lede{margin-bottom:36px}
 .gl-pstack{height:calc(280px + 124px)}
 .gl-pcard-li{height:280px}
 .gl-pv__stage{aspect-ratio:1.4}
}
@media(max-width:640px){
 .gl-page::before,.gl-page::after{left:12px}
 .gl-pstack{height:calc(300px + 100px)}
 .gl-pcard-li{height:300px;translate:calc(var(--slot) * 14px) calc(var(--slot) * 50px);width:calc(100% - 28px)}
 .gl-pv__card{width:42%}.gl-pv__threads{left:42%;right:42%;width:16%}
 .gl-pv__stage{aspect-ratio:1.15}
 .gl-fin__warp b{font-size:12px}
 .gl-fin__warp{height:80px}
 .gl-route__n{justify-items:start;text-align:left}
}

/* reduced motion and Calm: composed stills */
:root[data-motion="calm"] .gl-page::after,:root[data-motion="calm"] .gl-page :is(.gl-mini__scan,.gl-fin__shuttle,.gl-route__lines>*){animation-name:none;animation-timeline:auto}
:root[data-motion="calm"] .gl-page :is(.gl-pcard-li,.gl-mini i,.gl-int__beats li::after,.gl-hero__samp em,.gl-hero__samp small,.gl-fin__warp li,.gl-fin__warp b){transition:none}
@media(prefers-reduced-motion:reduce){
 .gl-page::after{animation-name:none!important;animation-timeline:auto!important}
 .gl-page :is(.gl-mini__scan,.gl-fin__shuttle,.gl-route__lines>*){animation-name:none!important;animation-timeline:auto!important}
 .gl-page :is(.gl-pcard-li,.gl-mini i,.gl-int__beats li::after,.gl-hero__samp em,.gl-hero__samp small,.gl-fin__warp li,.gl-fin__warp b){transition:none}
 .gl-hero__warp{transform:none}
}
:root[data-motion="calm"] .gl-hero__warp{transform:none}

/* =====================================================================
   Round four: legible split headings, layered denominator and paper
   fan, a bridge into the walk, numbered steps, the acronym expander,
   a traced resource router and a scrubbable closing ruler.
   ===================================================================== */

/* ---------- split headings: capped blur, no scaling over neighbours ---------- */
@keyframes gl-split-blur{from{translate:0 .35em;opacity:0;filter:blur(4px)}to{translate:0 0;opacity:1;filter:blur(0)}}
:root[data-m-go] .gl-page [data-m=split][data-m-fx=blur]:not([data-m-in]) .m-c{filter:blur(4px)}
:root[data-m-go] .gl-page [data-m=split][data-m-fx=blur][data-m-in] .m-c{animation-name:gl-split-blur;animation-iteration-count:1;animation-direction:normal}

/* ---------- disclosure for the second paragraph ---------- */
.gl-more{margin-top:1.1em}
.gl-more summary{display:inline-flex;align-items:center;gap:12px;min-height:44px;padding:6px 0;font:650 15px var(--gft-font-display);color:var(--gl-forest);border-bottom:1px solid currentColor;cursor:pointer;list-style:none}
.gl-more summary::-webkit-details-marker{display:none}
.gl-more summary::after{content:'+';display:inline-block;font:400 22px/1 var(--gft-font-display);transition:transform 320ms var(--gft-ease-out)}
.gl-more[open] summary::after{transform:rotate(45deg)}
.gl-more summary:focus-visible{outline:3px solid var(--gft-ochre);outline-offset:3px}
.gl-more p{margin-top:14px}

/* ---------- denominator: a forest band the card overhangs ---------- */
.gl-den__band{position:absolute;z-index:0;top:0;bottom:0;right:0;width:46%;background:var(--gl-forest);pointer-events:none}
.gl-den__glyph{right:-8%;top:6%;width:62%;color:#9dceaf;opacity:.38}
@media(min-width:1001px){
 .gl-den__head{grid-column:1/7}
 .gl-den__copy{grid-column:1/6}
 .gl-den__tool{grid-column:6/13;margin-right:-24px;box-shadow:0 40px 60px -40px #072d2bcc}
 .gl-den__fig b{font-size:clamp(3.4rem,7vw,7.4rem)}
 .gl-tokens{gap:10px}
}
@media(max-width:1000px){
 .gl-den__band{top:auto;width:100%;height:56%}
 .gl-den__glyph{width:130%;right:-30%;opacity:.3}
}

/* ---------- provenance: the deck fans across a full-bleed forest band ---------- */
.gl-prov__stack{position:relative;isolation:isolate;padding-block:56px 48px;align-self:stretch}
.gl-prov__stack::before{content:'';position:absolute;z-index:-2;top:0;bottom:0;left:50%;width:100vw;margin-left:-50vw;background:radial-gradient(ellipse at 20% 30%,#0e4d4a 0%,#072d2b 70%)}
.gl-prov__glyph{position:absolute;z-index:-1;left:-4%;right:-4%;top:50%;aspect-ratio:2/1;translate:0 -50%;color:#9dceaf;opacity:.2;pointer-events:none}
.gl-prov__stack .gl-kicker{color:#b9dbc7}
.gl-prov__stack>.gl-note{color:#b4c7bd;margin-top:22px}
@media(min-width:1001px){
 .gl-prov__head{grid-column:1/7;grid-row:1}
 .gl-prov__copy{grid-column:7/13;grid-row:1;align-self:end}
 .gl-prov__stack{grid-column:1/-1;grid-row:2}
 .gl-prov__tool{grid-row:3}
 .gl-pstack{height:292px;margin-top:6px}
 .gl-pcard-li{width:31%;height:272px;left:2%;rotate:calc((var(--slot) - 1) * 1.8deg);translate:calc(var(--slot) * 106%) calc((2 - var(--slot)) * 14px);transition:translate 560ms var(--gft-ease-out),rotate 560ms var(--gft-ease-out)}
 .gl-pcard{box-shadow:0 22px 34px -18px #000000aa}
}

/* ---------- walk: bridge from the dark interlude ---------- */
.gl-walk__bridge{position:absolute;z-index:0;top:0;left:0;right:0;height:clamp(110px,11vw,170px);pointer-events:none;overflow:clip;background:linear-gradient(#072d2b 0%,#0a3d3a 38%,#f6f4ef00 100%)}
.gl-walk__bridge::before{content:'';position:absolute;left:0;right:0;top:34%;height:14px;background:repeating-linear-gradient(90deg,#9dceaf66 0 1px,transparent 1px 28px)}
.gl-walk__bridge-thread{position:absolute;left:0;right:0;top:calc(34% + 18px);height:2px;background:linear-gradient(90deg,transparent,var(--gl-ochre) 14%,var(--gl-ochre) 86%,transparent)}
.gl-walk__bridge-dot{position:absolute;left:calc(50% - 7px);top:calc(34% + 12px);width:14px;height:14px;border-radius:50%;background:var(--gl-ochre);box-shadow:0 0 0 6px #c98a2b44}
.gl-walk .gl-wrap{z-index:1}
.gl-st__az{fill:#cfe8d8;opacity:.9;letter-spacing:.14em}
.gl-walk__grid{grid-template-columns:minmax(0,6.4fr) minmax(0,5.6fr)}
.gl-step{min-height:54svh;padding:5svh 0 5svh 36px;gap:12px;align-content:center}
.gl-step__no{display:block;font:850 clamp(4rem,7.4vw,7.6rem)/.86 var(--gft-font-display);letter-spacing:-.07em;color:var(--gl-ochre-ink);font-variant-numeric:tabular-nums}
.gl-step .gl-kicker{font-size:13px;font-weight:700;letter-spacing:.14em}
.gl-step h3{font-size:clamp(1.7rem,2.5vw,2.7rem);max-width:20ch}
.gl-step .gl-step__pull{font:italic 400 clamp(1.3rem,1.8vw,1.8rem)/1.3 var(--gft-font-serif);color:var(--gl-forest);max-width:30ch}
.gl-step__mini{display:block;width:min(320px,100%);height:44px;color:var(--gl-forest);margin-top:4px;overflow:visible}
.gl-step__mini [data-m-live]{transform-box:fill-box;transform-origin:center}
@media(max-width:1000px){
 .gl-walk__grid{grid-template-columns:1fr}
 .gl-step{min-height:46svh;padding-left:22px}
 .gl-step__no{font-size:3.4rem}
 .gl-step h3{max-width:none}
}
@media(max-width:640px){.gl-step{min-height:44svh}}

/* ---------- neighbours: the acronym expander on a dark band ---------- */
.gl-nb{padding-bottom:0}
.gl-nb__ax{grid-column:1/-1;grid-row:4;position:relative;isolation:isolate;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2.2vw,32px);align-items:center;margin-top:clamp(16px,3vw,48px);padding-block:clamp(72px,8vw,120px) clamp(96px,10vw,150px);color:#d3dfd7}
.gl-nb__ax::before{content:'';position:absolute;z-index:-1;top:0;bottom:0;left:50%;width:100vw;margin-left:-50vw;background:linear-gradient(#0a3d3a,#072d2b 40%)}
.gl-nb__axcopy{grid-column:1/6;color:#d3dfd7}
.gl-nb__axcopy p{max-width:50ch}
.gl-ax{grid-column:7/13;min-width:0}
.gl-ax .gl-kicker{color:#9dceaf}
.gl-seg--ax{margin:16px 0 30px;flex-wrap:wrap;border-color:#ffffff55}
.gl-seg--ax label{flex:1 1 90px}
.gl-ax__panes{display:grid}
.gl-ax__pane{display:none;gap:18px;align-content:start}
.gl-nb__ax:has(input[value="OEE"]:checked) .gl-ax__pane[data-ax="OEE"],
.gl-nb__ax:has(input[value="FPY"]:checked) .gl-ax__pane[data-ax="FPY"],
.gl-nb__ax:has(input[value="CAPA"]:checked) .gl-ax__pane[data-ax="CAPA"],
.gl-nb__ax:has(input[value="AAMA DXF"]:checked) .gl-ax__pane[data-ax="AAMA DXF"]{display:grid}
.gl-ax__short{font:italic 400 clamp(4.2rem,9vw,8.6rem)/1 var(--gft-font-serif);color:var(--gl-ochre);letter-spacing:-.02em;max-width:none}
.gl-ax__body{display:grid;gap:16px;min-width:0}
.gl-ax__words{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 28px}
.gl-ax__words li{display:flex;align-items:baseline;animation-name:gl-ax-in;animation-duration:520ms;animation-timing-function:var(--gft-ease-out);animation-delay:calc(var(--i) * 110ms + 100ms);animation-fill-mode:both;animation-iteration-count:1;animation-direction:normal}
.gl-ax__words b{font:850 clamp(2.4rem,4vw,4rem)/1 var(--gft-font-display);color:var(--gl-ochre);letter-spacing:-.04em}
.gl-ax__words span{font:600 clamp(1.1rem,1.5vw,1.5rem)/1.2 var(--gft-font-display);color:#fff}
@keyframes gl-ax-in{from{opacity:0;transform:translateY(60%)}to{opacity:1;transform:none}}
.gl-ax__nospell{font-size:16px;line-height:1.6;color:#fff;max-width:46ch}
.gl-ax__def{font-size:17px;line-height:1.65;color:#d3dfd7;max-width:52ch}
.gl-ax .gl-note{color:#b4c7bd}
@media(max-width:1000px){
 .gl-nb__axcopy,.gl-ax{grid-column:1/-1}
 .gl-nb__ax{display:block}
 .gl-ax{margin-top:36px}
 .gl-seg--ax label{flex:1 1 40%}
}

/* ---------- closing ---------- */
.gl-end{background:linear-gradient(#072d2b,#072d2b00 260px),radial-gradient(ellipse at 80% 18%,#0e4d4a 0%,#072d2b 60%)}
.gl-end__steps{grid-column:1/6;grid-row:2;list-style:none;margin:44px 0 0;padding:0}
.gl-end__steps li{display:grid;grid-template-columns:52px minmax(0,1fr);gap:16px;padding:18px 0;border-top:1px solid #ffffff2b;align-items:start}
.gl-end__steps b{font:850 3rem/1 var(--gft-font-display);color:var(--gl-ochre);letter-spacing:-.04em}
.gl-end__steps p{font-size:16px;line-height:1.6;color:#d3dfd7;max-width:46ch;margin:0}
.gl-end__steps strong{display:block;color:#fff;font-size:1.12rem;margin-bottom:4px;letter-spacing:-.01em}
.gl-route__tr{font:12px/1.3 var(--gft-font-mono);text-transform:uppercase;letter-spacing:.14em;color:#9dceaf}
.gl-route__lede{margin-bottom:18px}
.gl-route__why{font:13px/1.5 var(--gft-font-mono);color:#d3dfd7;min-height:1.6em;margin:0 0 56px;max-width:none}
.gl-route[data-traced] .gl-linkcard li:not([data-match]) a{color:#a9c2b4}
.gl-route[data-traced] .gl-linkcard li:not([data-match]) a i{opacity:.35}
.gl-route[data-traced] .gl-linkcard li:not([data-match]){border-top-color:#ffffff14}
.gl-route .gl-linkcard li:hover a,.gl-route .gl-linkcard li:focus-within a{background:#ffffff10}
.gl-end__more .gl-btn{min-height:56px;padding:14px 28px;font-size:16px}
.gl-end__more a.gl-btn--ghost{color:#f6f4ef}
.gl-end__more a.gl-btn--amber{color:var(--gl-night)}
.gl-end__more a.gl-btn:hover{transform:translateY(-2px)}
.gl-end__more a.gl-btn{transition:transform 260ms var(--gft-ease-out)}

/* closing ruler: the hero glyph returns, an amber marker rides to the chosen letter */
.gl-fin{padding-top:34px}
.gl-fin__glyph{position:absolute;z-index:0;left:-4%;width:108%;top:50%;aspect-ratio:2/1;translate:0 -50%;color:#9dceaf;opacity:.1;pointer-events:none}
.gl-fin__glyph :is(.gl-glyph__thread,.gl-glyph__shuttle),.gl-prov__glyph :is(.gl-glyph__thread,.gl-glyph__shuttle){display:none}
.gl-fin>:not(.gl-fin__glyph){position:relative;z-index:1}
.gl-fin__hint{color:#9dceaf;margin:0 0 14px}
.gl-fin__rule{position:relative}
.gl-fin__shuttle{top:44px}
.gl-fin__marker{position:absolute;left:0;top:0;width:calc(100% / var(--n,26));height:100%;pointer-events:none;transform:translateX(calc(var(--k,0) * 100%));transition:transform 520ms var(--gft-ease-out)}
.gl-fin__marker i{position:absolute;left:50%;top:-7px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:var(--gl-ochre);box-shadow:0 0 0 6px #c98a2b44}
.gl-fin__marker::after{content:'';position:absolute;left:calc(50% - 1px);top:8px;bottom:26px;width:2px;background:var(--gl-ochre)}
.gl-fin__scrub{position:absolute;top:0;height:100%;left:calc(50% / var(--n,26));width:calc(100% - 100% / var(--n,26));margin:0;padding:0;opacity:0;cursor:ew-resize;touch-action:pan-y;-webkit-appearance:none;appearance:none;background:transparent}
.gl-fin__scrub::-webkit-slider-thumb{-webkit-appearance:none;width:1px;height:96px}
.gl-fin__scrub::-moz-range-thumb{width:1px;height:96px;border:0}
.gl-fin__rule:has(.gl-fin__scrub:focus-visible){outline:3px solid var(--gft-ochre);outline-offset:6px}
.gl-fin__warp b{font-size:13px}
.gl-fin__cap b{font-size:clamp(1.6rem,3vw,2.8rem)}

/* ---------- rail: a letter that follows the reader from A to Z ---------- */
.gl-rail__az{display:none}
@media(min-width:1200px){
 .gl-rail__az{display:grid;justify-items:center;gap:2px;position:absolute;right:0;top:-58px;width:40px;color:inherit;text-align:center}
 .gl-rail__az b{font:850 28px/1 var(--gft-font-display);color:var(--gl-ochre)}
 .gl-rail__az i{font:12px/1 var(--gft-font-mono);font-style:normal;letter-spacing:.08em;text-transform:uppercase}
}

/* ---------- tablet and phone ---------- */
@media(max-width:1000px){
 .gl-end__steps{grid-column:1/-1;grid-row:auto;margin-top:28px}
 .gl-route__why{margin-bottom:28px}
 .gl-fin__glyph{width:200%;left:-50%;opacity:.07}
}
@media(max-width:640px){
 .gl-end__more .gl-btn{width:100%;justify-content:space-between}
 .gl-fin__warp b{font-size:12px}
}

/* ---------- reduced motion and Calm ---------- */
:root[data-motion="calm"] .gl-page :is(.gl-ax__words li){animation-name:none}
:root[data-motion="calm"] .gl-page :is(.gl-fin__marker,.gl-pcard-li,.gl-more summary::after){transition:none}
@media(prefers-reduced-motion:reduce){
 .gl-page .gl-ax__words li{animation-name:none!important}
 .gl-page :is(.gl-fin__marker,.gl-pcard-li,.gl-more summary::after,.gl-end__more a.gl-btn){transition:none}
}

/* =====================================================================
   Round five: shorter reading columns, authored stage entrances, a
   dark compare weave, ghosted acronym letters, larger closing type and
   a term-to-enquiry closing instrument.
   Pre-states apply only while the runtime and this page's client run.
   ===================================================================== */
@keyframes gl-wipe-x{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes gl-wipe-y{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes gl-wipe-up{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes gl-drop{from{opacity:0;transform:translateY(-46px)}to{opacity:1;transform:none}}
@keyframes gl-pop{from{opacity:0;transform:scale(.55)}to{opacity:1;transform:none}}
@keyframes gl-grow-x{from{transform:scaleX(0)}to{transform:none}}
@keyframes gl-grow-y{from{transform:scaleY(0)}to{transform:none}}
@keyframes gl-from-l{from{opacity:0;transform:translateX(-90px)}to{opacity:1;transform:none}}
@keyframes gl-from-r{from{opacity:0;transform:translateX(90px)}to{opacity:1;transform:none}}
@keyframes gl-flip{from{opacity:0;transform:perspective(600px) rotateX(-86deg)}to{opacity:1;transform:none}}

/* ---------- denominator: heading and instrument share one screen ---------- */
.gl-den{padding-top:clamp(72px,7vw,108px)}
.gl-den__head h2{font-size:clamp(2.4rem,4.3vw,4.8rem);max-width:13ch}

/* ---------- interlude: a two-line lead, the reasoning behind a disclosure, beats that operate the grid ---------- */
.gl-int__glyph :is(.gl-glyph__shuttle,.gl-glyph__thread){display:none}
.gl-int__lead{font:italic 400 clamp(1.5rem,2.2vw,2.2rem)/1.32 var(--gft-font-serif);color:#fff;max-width:30ch}
.gl-more--dark summary{color:#eef5f0}
.gl-more--dark p{color:#d3dfd7}
.gl-int__copy{margin-top:30px}
.gl-int__beats label{display:grid;gap:4px;cursor:pointer;min-height:44px}
.gl-int__beats li{transition:background-color 260ms}
.gl-int__beats li:hover{background:#ffffff0a}
.gl-int__beats li:has(label:focus-visible){outline:3px solid var(--gft-ochre);outline-offset:2px}

/* ---------- walk: each stage arrives with its own drawing ---------- */
.gl-st :is(.gl-st__a,.gl-st__z,.gl-st__line,.gl-st__box,.gl-st__fill,.gl-st__in,.gl-st__cut,.gl-st__col,.gl-st__branch,.gl-st__leaf){transform-box:fill-box}
.gl-st__line{transform-origin:0 50%}.gl-st__cut{transform-origin:50% 0}.gl-st__box{transform-origin:50% 50%}.gl-st__leaf{transform-origin:0 50%}
:root[data-m-go] .gl-walk__grid[data-step="0"] .gl-st--0 .gl-st__a{animation-name:gl-wipe-up;animation-duration:1100ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .gl-walk__grid[data-step="0"] .gl-st--0 .gl-st__z{animation-name:gl-wipe-x;animation-duration:1100ms;animation-delay:160ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .gl-walk__grid[data-step="0"] .gl-st--0 .gl-st__line{animation-name:gl-grow-x;animation-duration:1000ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .gl-walk__grid[data-step="1"] .gl-st--1 .gl-st__box{animation-name:gl-pop;animation-duration:900ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .gl-walk__grid[data-step="1"] .gl-st--1 .gl-st__fill{animation-name:gl-wipe-y;animation-duration:1100ms;animation-delay:180ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .gl-walk__grid[data-step="1"] .gl-st--1 .gl-st__in{animation-name:gl-wipe-x;animation-duration:1000ms;animation-delay:240ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .gl-walk__grid[data-step="1"] .gl-st--1 .gl-st__cut{animation-name:gl-grow-y;animation-duration:900ms;animation-delay:120ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .gl-walk__grid[data-step="2"] .gl-st--2 .gl-st__col{animation-name:gl-drop;animation-duration:860ms;animation-delay:calc(var(--i) * 60ms);animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .gl-walk__grid[data-step="2"] .gl-st--2 .gl-st__line{animation-name:gl-grow-x;animation-duration:1100ms;animation-delay:200ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .gl-walk__grid[data-step="3"] .gl-st--3 .gl-st__branch{animation-name:gl-wipe-x;animation-duration:1100ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .gl-walk__grid[data-step="3"] .gl-st--3 .gl-st__leaf{animation-name:gl-pop;animation-duration:760ms;animation-delay:calc(420ms + var(--i) * 120ms);animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
.gl-st{transition-duration:700ms,800ms}

/* ---------- neighbours: a compact head, the compare weave on a forest band ---------- */
.gl-nb{padding-top:clamp(80px,7vw,110px)}
.gl-nb__grid{row-gap:20px;align-items:end}
.gl-nb__head{grid-column:1/8}
.gl-nb__head h2{font-size:clamp(2.4rem,4.4vw,4.9rem);max-width:15ch}
.gl-nb__copy{grid-column:8/13;grid-row:1;align-self:end}
.gl-nb__lead{font:italic 400 clamp(1.25rem,1.6vw,1.6rem)/1.4 var(--gft-font-serif);color:var(--gl-forest);max-width:34ch}
.gl-nb__band{position:relative;margin-top:clamp(36px,4vw,56px);padding-block:clamp(40px,4vw,64px) clamp(56px,6vw,90px);background:radial-gradient(ellipse at 50% 0%,#0e4d4a 0%,#0a3d3a 55%,#072d2b 100%);color:#eef5f0}
.gl-nb__band::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,#9dceaf0f 0 1px,transparent 1px 40px);pointer-events:none}
.gl-nb__tool{position:relative}
.gl-nb__bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;margin-bottom:16px}
.gl-nb__bar .gl-kicker{color:#9dceaf}
.gl-nb__note{font:italic 400 clamp(1.1rem,1.4vw,1.35rem)/1.3 var(--gft-font-serif);color:#f6f4ef;max-width:none}
.gl-nb__presets{margin-bottom:22px}
.gl-nb__presets span{border-color:#ffffff55;color:#eef5f0}
.gl-seg--dark.gl-seg--wrap label+label span{border-left-color:#ffffff55}
.gl-nb__picks label{color:#b9dbc7}
.gl-nb__picks select{background:#072d2b;color:#f6f4ef;border-color:#6bb68f99}
.gl-nb__vs{color:#b9dbc7}
.gl-weave{position:relative;display:grid;grid-template-columns:minmax(0,1fr) clamp(90px,12vw,190px) minmax(0,1fr);align-items:stretch;margin-top:8px}
.gl-weave__threads{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:2}
.gl-weave__threads path{fill:none;stroke:var(--gl-ochre);stroke-width:2;stroke-linecap:round}
.gl-weave__threads circle{fill:var(--gl-ochre)}
.gl-weave__card{display:grid;align-content:start;gap:12px;padding:clamp(22px,2.6vw,40px);min-width:0;position:relative}
.gl-weave__card--a{background:#fcfbf8;color:var(--gl-ink)}
.gl-weave__card--b{background:#f6f4ef;color:var(--gl-ink);box-shadow:inset 4px 0 0 var(--gl-ochre)}
.gl-weave__card small{font:12px/1.4 var(--gft-font-mono);text-transform:uppercase;letter-spacing:.12em;color:#3f4f49}
.gl-weave__card h3{font:850 clamp(2.2rem,4vw,4.4rem)/1 var(--gft-font-display);letter-spacing:-.05em;color:var(--gl-night);overflow-wrap:anywhere}
.gl-weave__def{font-size:clamp(1.0625rem,1.3vw,1.25rem);line-height:1.7;max-width:none;min-height:5.2em}
.gl-weave__def mark{background:linear-gradient(transparent 56%,#c98a2b70 56%);color:inherit}
.gl-weave__gap{background:repeating-linear-gradient(0deg,#9dceaf22 0 1px,transparent 1px 22px)}
.gl-nb__foot{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px 40px;align-items:center;margin-top:26px}
.gl-nb__foot .gl-nb__verdict{margin:0;color:#eef5f0}
.gl-nb__foot .gl-nb__verdict b{color:var(--gl-ochre)}
.gl-nb__foot .gl-pv__words{margin:0;grid-column:1}
.gl-nb__foot .gl-pv__words li{border-color:#9dceaf88;color:#f6f4ef;background:linear-gradient(transparent 62%,#c98a2b66 62%)}
.gl-nb__foot .gl-pv__words li.gl-pv__more{color:#d3dfd7;background:none}
.gl-nb__foot .gl-chips{grid-column:2;grid-row:1/3;margin:0;justify-content:flex-end}
.gl-nb__foot .gl-chips li{border-color:#f6f4ef;color:#f6f4ef;font-size:15px;padding:12px 20px}
:root[data-m-go][data-gl-armed] .gl-weave:not([data-gl-in]) .gl-weave__card--a{opacity:0;transform:translateX(-90px)}
:root[data-m-go][data-gl-armed] .gl-weave:not([data-gl-in]) .gl-weave__card--b{opacity:0;transform:translateX(90px)}
:root[data-m-go][data-gl-armed] .gl-weave:not([data-gl-in]) .gl-weave__threads{opacity:0}
:root[data-m-go] .gl-weave[data-gl-in] .gl-weave__card--a{animation-name:gl-from-l;animation-duration:1000ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .gl-weave[data-gl-in] .gl-weave__card--b{animation-name:gl-from-r;animation-duration:1000ms;animation-delay:90ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .gl-weave[data-gl-in] .gl-weave__threads{animation-name:gl-wipe-x;animation-duration:1100ms;animation-delay:420ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}

/* ---------- acronyms: a light band, ghosted letters on the left change with the tab ---------- */
.gl-nb__ax{grid-column:auto;grid-row:auto;display:block;margin-top:0;padding-block:clamp(72px,7vw,110px) clamp(100px,10vw,150px);color:var(--gl-ink);background:var(--gl-paper)}
.gl-nb__ax::before{display:none}
.gl-nb__axgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2.2vw,32px);align-items:start}
.gl-nb__axhead{grid-column:1/6;grid-row:1;display:grid;gap:14px;align-content:start}
.gl-nb__axhead h3{font:850 clamp(2rem,3.4vw,3.6rem)/1.04 var(--gft-font-display);letter-spacing:-.045em;color:var(--gl-ink);max-width:14ch}
.gl-ax{grid-column:7/13;grid-row:1/3}
.gl-ax .gl-kicker{color:#33403d}
.gl-seg--ax{border-color:var(--gl-forest)}
.gl-ax__pane{gap:20px}
.gl-ax__ghost{grid-column:1/6;grid-row:2;display:none;grid-template-columns:repeat(var(--c,3),max-content);gap:0 .04em;margin-top:clamp(20px,3vw,44px);font:850 calc(min(34vw,520px) / var(--c,3))/0.9 var(--gft-font-display);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1.5px var(--gl-forest);user-select:none}
.gl-ax__ghost span{display:block}
.gl-ax__ghost span:first-child{color:#0e4d4a1a}
.gl-nb__ax:has(input[value="OEE"]:checked) .gl-ax__ghost[data-ax="OEE"],
.gl-nb__ax:has(input[value="FPY"]:checked) .gl-ax__ghost[data-ax="FPY"],
.gl-nb__ax:has(input[value="CAPA"]:checked) .gl-ax__ghost[data-ax="CAPA"],
.gl-nb__ax:has(input[value="AAMA DXF"]:checked) .gl-ax__ghost[data-ax="AAMA DXF"]{display:grid}
.gl-ax__ghost span{animation-name:gl-flip;animation-duration:900ms;animation-delay:calc(var(--i) * 70ms);animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;transform-origin:50% 100%}
.gl-ax__words b{color:var(--gl-ochre-ink)}
.gl-ax__words span{color:var(--gl-night)}
.gl-ax__nospell{color:var(--gl-ink)}
.gl-ax__def{color:#33403d}
.gl-ax .gl-note{color:#52655d}
:root[data-m-go][data-gl-armed] .gl-nb__ax:not([data-gl-in]) :is(.gl-ax__ghost span,.gl-ax__words li){opacity:0}
:root[data-m-go][data-gl-armed] .gl-nb__ax:not([data-gl-in]) :is(.gl-ax__ghost span,.gl-ax__words li){animation-name:none}

/* ---------- closing: larger brief, cards with a visual each, the amber enquiry as the end ---------- */
.gl-end__tool textarea{font:15px/1.6 var(--gft-font-mono);min-height:220px;color:#e4eee8}
.gl-end__tool .gl-note{font-size:13px;color:#c5d6cb}
.gl-end__steps p{font-size:16px}
.gl-route__head{align-items:flex-end;margin-bottom:10px}
.gl-route__title{display:grid;gap:12px;min-width:0}
.gl-route__title .gl-route__lede{margin:0;font-size:17px;color:#d3dfd7}
.gl-route__why{font-size:14px;margin-bottom:30px}
.gl-linkcard{padding:clamp(22px,2.4vw,36px);background:#ffffff0d}
.gl-linkcard__head{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:16px;align-items:center;margin-bottom:12px;color:#9dceaf}
.gl-linkcard__ico{width:56px;height:56px}
.gl-linkcard__head h4{margin:0;font-size:13px;color:#cfe8d8}
.gl-linkcard__n{font:850 2rem/1 var(--gft-font-display);color:#f6f4ef;letter-spacing:-.04em}
.gl-linkcard a,.gl-linkcard__wait{font-size:clamp(1.15rem,1.5vw,1.4rem);min-height:68px}
.gl-route[data-traced] .gl-linkcard li:not([data-match]) a{color:#c5d6cb}

/* ---------- closing instrument: A to Z threads converge into one enquiry ---------- */
.gl-fin{margin-top:clamp(80px,9vw,140px);padding-top:clamp(40px,4vw,64px);overflow:visible}
.gl-fin__head{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px 48px;align-items:end;margin-bottom:clamp(28px,3vw,44px)}
.gl-fin__head .gft-eyebrow{grid-column:1/-1;color:#9dceaf}
.gl-fin__title{font:850 clamp(2.6rem,5.4vw,6rem)/1 var(--gft-font-display);letter-spacing:-.055em;color:#fff;max-width:13ch}
.gl-fin__hint{font-size:16px;line-height:1.6;color:#d3dfd7;max-width:40ch;margin:0}
.gl-fin__warp b{font-size:14px;color:#cfe8d8}
.gl-fin__fan{display:block;width:100%;height:clamp(150px,17vw,250px);overflow:visible}
.gl-fin__fan path{fill:none;stroke:#9dceaf;stroke-opacity:.3;stroke-width:1;transition:stroke-opacity 420ms}
.gl-fin__fan path[data-on]{stroke:var(--gl-ochre);stroke-opacity:1;stroke-width:3}
.gl-fin__knot{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:20px clamp(24px,3vw,48px);align-items:center;margin-top:0}
.gl-fin .gl-fin__cap{display:flex;justify-content:flex-end;align-items:center;gap:18px;margin:0;text-align:right}
.gl-fin__letter{font:italic 400 clamp(4.4rem,7vw,7.6rem)/.9 var(--gft-font-serif);color:#9dceaf}
.gl-fin__what{display:grid;gap:4px;min-width:0}
.gl-fin__what>span{font:12px/1.4 var(--gft-font-mono);text-transform:uppercase;letter-spacing:.12em;color:#b9dbc7}
.gl-fin .gl-fin__what b{font:italic 400 clamp(1.5rem,2.4vw,2.4rem)/1.15 var(--gft-font-serif);color:#f6f4ef;overflow-wrap:anywhere}
.gl-fin__cta{min-height:68px;padding:18px 34px;font-size:18px;box-shadow:0 0 0 10px #c98a2b26,0 24px 50px -20px #000}
.gl-fin__knotdot{position:absolute;left:50%;top:-8px;width:16px;height:16px;margin-left:-8px;border-radius:50%;background:var(--gl-ochre);pointer-events:none}
.gl-fin__after{font-size:15px;line-height:1.6;color:#d3dfd7;max-width:34ch;margin:0}
:root[data-m-go][data-gl-armed] .gl-fin:not([data-gl-in]) .gl-fin__fan{clip-path:inset(0 0 100% 0)}
:root[data-m-go][data-gl-armed] .gl-fin:not([data-gl-in]) .gl-fin__knot{opacity:0;transform:translateY(30px)}
:root[data-m-go] .gl-fin[data-gl-in] .gl-fin__fan{animation-name:gl-wipe-y;animation-duration:1200ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .gl-fin[data-gl-in] .gl-fin__knot{animation-name:gl-drop-up;animation-duration:900ms;animation-delay:520ms;animation-timing-function:var(--gft-ease-out);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes gl-drop-up{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}

/* ---------- rail ---------- */
.gl-rail__az i{white-space:nowrap}
@media(min-width:1200px){.gl-rail__az{width:48px}}

/* ---------- tablet and phone ---------- */
@media(max-width:1000px){
 .gl-nb__head,.gl-nb__copy{grid-column:1/-1;grid-row:auto}
 .gl-nb__grid{align-items:start}
 .gl-weave{grid-template-columns:1fr;gap:14px}
 .gl-weave__gap{display:none}
 .gl-weave__threads{display:none}
 .gl-nb__foot{grid-template-columns:1fr}
 .gl-nb__foot .gl-chips{grid-column:1;grid-row:auto;justify-content:flex-start}
 .gl-nb__axhead,.gl-ax,.gl-ax__ghost{grid-column:1/-1;grid-row:auto}
 .gl-nb__axgrid{display:flex;flex-direction:column}
 .gl-nb__axhead{order:1}.gl-ax__ghost{order:2;font-size:calc(min(80vw,520px) / var(--c,3));margin-top:24px}.gl-ax{order:3;margin-top:28px}
 .gl-fin__head{grid-template-columns:1fr}
 .gl-fin__knot{grid-template-columns:1fr;justify-items:start}
 .gl-fin .gl-fin__cap{justify-content:flex-start;text-align:left}
 .gl-fin__knot .gl-fin__cta{justify-self:center}
 .gl-fin__knot .gl-fin__cap{order:-1}
}
@media(max-width:640px){
 .gl-nb__presets label{flex:1 1 100%}
 .gl-fin__fan{height:120px}
 .gl-fin__warp b{font-size:12px}
 .gl-fin__cta{width:100%;justify-content:center}
 .gl-linkcard__head{grid-template-columns:44px minmax(0,1fr) auto}.gl-linkcard__ico{width:44px;height:44px}
 .gl-end__tool textarea{font-size:14px}
}

/* ---------- reduced motion and Calm ---------- */
:root[data-motion="calm"] .gl-page :is(.gl-st__a,.gl-st__z,.gl-st__line,.gl-st__box,.gl-st__fill,.gl-st__in,.gl-st__cut,.gl-st__col,.gl-st__branch,.gl-st__leaf,.gl-weave__card,.gl-weave__threads,.gl-ax__ghost span,.gl-fin__fan,.gl-fin__knot){animation-name:none}
:root[data-motion="calm"] .gl-page .gl-fin__fan path{transition:none}
@media(prefers-reduced-motion:reduce){
 .gl-page :is(.gl-st__a,.gl-st__z,.gl-st__line,.gl-st__box,.gl-st__fill,.gl-st__in,.gl-st__cut,.gl-st__col,.gl-st__branch,.gl-st__leaf,.gl-weave__card,.gl-weave__threads,.gl-ax__ghost span,.gl-fin__fan,.gl-fin__knot){animation-name:none!important}
 .gl-page .gl-fin__fan path{transition:none}
}
.gl-fin .gl-fin__cap .gl-fin__letter{font:italic 400 clamp(4.4rem,7vw,7.6rem)/.9 var(--gft-font-serif);color:#9dceaf;letter-spacing:0;text-transform:none}
.gl-fin .gl-fin__cap .gl-fin__what>span{font:12px/1.4 var(--gft-font-mono);text-transform:uppercase;letter-spacing:.12em;color:#b9dbc7}
.gl-weave__threads text{fill:#f6f4ef;font:600 13px var(--gft-font-mono);letter-spacing:.04em}
@media(min-width:1001px){.gl-weave{grid-template-columns:minmax(0,1fr) clamp(150px,15vw,230px) minmax(0,1fr)}}
.gl-nb__ax{padding-bottom:clamp(64px,6vw,96px)}
@media(min-width:1200px){
 .gl-rail__az{padding:6px 0 8px;background:#072d2bd9;border-radius:2px;transition:background-color 400ms}
 .gl-rail[data-tone=light] .gl-rail__az{background:#f6f4efe6}
}
@media(min-width:1200px){.gl-rail__az{right:-2px;width:52px}.gl-rail__az i{letter-spacing:.02em}}
