/* /programmes/cameroon-textile/go-to-market/ : "Seven knots, tied in order". Imported only by this route.
   Motif: the seven knots of the segment-channel weave (Wave 1 sage, Wave 2 ochre, Wave 3 indigo outline), one
   geometry from go-to-market-data.ts: a cloth in perspective (splash), laid flat (knot board), pulled apart into
   wefts (pinned stage), gathered as the price-ladder marker, untied into three threads (interlude), seated on the
   loop ring, split onto three dials, and tied around the launch-year ring that hands into the footer.
   Stability: animated properties are transform, opacity, clip-path and filter only; pins are position: sticky; every
   pre-state lives under :root[data-m-go]; entrances run once and settle within about 900 ms; scroll-driven rules are
   longhands; read-out boxes are fixed and their content swaps in place. */

body[data-page="go-to-market"] {
  --gtm-night: #072d2b;
  --gtm-forest: #0e4d4a;
  --gtm-deep: #0a3d3a;
  --gtm-paper: #f6f4ef;
  --gtm-ink: #25302e;
  --gtm-on: #e8f0ec;
  --gtm-on2: rgba(232, 240, 236, .9);
  --gtm-line: rgba(232, 240, 236, .2);
  --gtm-sage: #6bb68f;
  --gtm-ochre: #c98a2b;
  --gtm-indigo: #8391b6;
  --gtm-out: cubic-bezier(.16, 1, .3, 1);
  --gtm-io: cubic-bezier(.65, 0, .35, 1);
  --gtm-step-ease: cubic-bezier(.45, .05, .2, 1);
  --header: 0px;
  --gutter: clamp(20px, 4vw, 56px);
  --ground: var(--gtm-paper);
  --rule: #b8c8bd;
}
body[data-page="go-to-market"] main { overflow-x: clip; }
body[data-page="go-to-market"] [data-p="1"] { --pc: #6bb68f; --pt: #9fd8b8; --pl: #3f8f6b; --pd: #2b6a50; }
body[data-page="go-to-market"] [data-p="2"] { --pc: #c98a2b; --pt: #e8b86a; --pl: #8a5d17; --pd: #7d5417; }
body[data-page="go-to-market"] [data-p="3"] { --pc: #8391b6; --pt: #c3cdeb; --pl: #2c3e7a; --pd: #2c3e7a; }
body[data-page="go-to-market"] [data-p="0"] { --pc: #e8f0ec; --pt: #e8f0ec; --pl: #25302e; --pd: #25302e; }

/* ---------- blocks and grounds ---------- */
.prog-c-gtm-blk { position: relative; }
.prog-c-gtm-blk--night { background: var(--gtm-night); color: var(--gtm-on); }
.prog-c-gtm-blk--forest { background: var(--gtm-forest); color: var(--gtm-on); }
.prog-c-gtm-blk--paper { background: var(--gtm-paper); color: var(--gtm-ink); }
/* the block's kit entrance name is played by this stylesheet on the block's own parts (see "entrances"), on the
   block's reading line; the section box itself never moves */
:root[data-m-go] .prog-c-gtm-blk[data-m]:not([data-m-in]) { opacity: 1; transform: none; clip-path: none; }
:root[data-m-go] .prog-c-gtm-blk[data-m][data-m-in] { animation-name: none; }
/* kit live tokens hosted for coverage and on-screen sleep; the page animates their children instead */
:root[data-m-go] .prog-c-gtm-lv[data-m-live], :root[data-m-go] .prog-c-gtm-lv[data-m-live][data-m-on] { animation-name: none; }

/* small text: 13 px minimum, information text on dark grounds at 7:1 or better */
body[data-page="go-to-market"] .gft-cite { font-size: 13px; min-height: 30px; min-width: 34px; padding: 2px 7px; margin-inline: 2px; vertical-align: baseline; }
.prog-c-gtm-blk--night .gft-cite, .prog-c-gtm-blk--forest .gft-cite { color: var(--gtm-on); border-color: rgba(232, 240, 236, .6); }
body[data-page="go-to-market"] .gft-text-link { font-size: 15px; }

/* ---------- heads ---------- */
.prog-c-gtm-hd__eb { font: 500 13px/1.5 var(--gft-font-mono); letter-spacing: .08em; text-transform: uppercase; margin: 0 0 14px; color: inherit; }
.prog-c-gtm-blk--night .prog-c-gtm-hd__eb, .prog-c-gtm-blk--forest .prog-c-gtm-hd__eb { color: #b9dcc8; }
.prog-c-gtm-blk--paper .prog-c-gtm-hd__eb { color: #2b6a50; }
.prog-c-gtm-hd__h { font-size: clamp(2rem, 3.05vw, 2.75rem); line-height: 1.06; letter-spacing: -.035em; font-weight: 800; max-width: 30ch; margin: 0; text-wrap: balance; }
.prog-c-gtm-hd__lede { font-size: 17px; line-height: 1.6; max-width: 56ch; margin: 14px 0 0; text-wrap: pretty; }
.prog-c-gtm-blk--night .prog-c-gtm-hd__lede, .prog-c-gtm-blk--forest .prog-c-gtm-hd__lede { color: var(--gtm-on); }
.prog-c-gtm-hd--row { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 56px; align-items: end; }
.prog-c-gtm-hd--row .prog-c-gtm-hd__lede { margin: 0; }
.prog-c-gtm-hd--stage { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px; align-items: end; }
.prog-c-gtm-hd--stage .prog-c-gtm-hd__h { max-width: 42ch; }
.prog-c-gtm-hd--stage > div:first-child:not(:only-child):has(+ .prog-c-gtm-hd__lede) { grid-column: 1 / -1; }
.prog-c-gtm-hd--stage > .prog-c-gtm-hd__lede { margin: 0; align-self: center; }
.prog-c-gtm-hd--stage { row-gap: 12px; }
.prog-c-gtm-sc__chips { flex-wrap: nowrap; max-width: none; }
.prog-c-gtm-hd--stage .prog-c-gtm-hd__lede { max-width: 80ch; margin-top: 10px; }
.prog-c-gtm-hd__h, .prog-c-gtm-hd__eb, .prog-c-gtm-hd__lede { transform-origin: 0 0; }

/* ---------- pills, play, segmented toggles ---------- */
.prog-c-gtm-pills { display: flex; flex-wrap: wrap; margin: 0; padding: 0; min-width: 0; border: 1px solid rgba(107, 182, 143, .6); }
.prog-c-gtm-pills legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.prog-c-gtm-pill { position: relative; cursor: pointer; flex: 1 1 auto; }
.prog-c-gtm-pill input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.prog-c-gtm-pill > span { display: grid; gap: 3px; align-content: center; min-height: 56px; padding: 8px 20px; border-right: 1px solid rgba(107, 182, 143, .35); color: var(--gtm-on); }
.prog-c-gtm-pill:last-child > span { border-right: 0; }
.prog-c-gtm-pill b { font: 700 15px/1.2 var(--gft-font-display); letter-spacing: -.01em; }
.prog-c-gtm-pill small { font: 13px/1.2 var(--gft-font-mono); letter-spacing: .06em; text-transform: uppercase; }
.prog-c-gtm-pill b::before { content: ''; display: inline-block; width: 10px; height: 10px; margin-right: 8px; border-radius: 50%; background: var(--pc); vertical-align: 1px; }
.prog-c-gtm-pill[data-p="3"] b::before { background: transparent; box-shadow: inset 0 0 0 2px var(--pc); }
.prog-c-gtm-pill input:checked + span { background: var(--gtm-on); color: var(--gtm-night); }
.prog-c-gtm-pill input:checked + span b::before { background: var(--pd); }
.prog-c-gtm-pill input:focus-visible + span { outline: 2px solid var(--gtm-sage); outline-offset: -5px; }
.prog-c-gtm-pill:hover > span { background: rgba(232, 240, 236, .08); }
.prog-c-gtm-pill input:checked + span:hover { background: var(--gtm-on); }
.prog-c-gtm-play { min-height: 48px; padding: 0 22px; border: 1px solid rgba(232, 240, 236, .7); background: transparent; color: var(--gtm-on); font: 600 15px var(--gft-font-display); cursor: pointer; }
.prog-c-gtm-play[aria-pressed="true"] { background: var(--gtm-on); color: var(--gtm-night); }
.prog-c-gtm-play:focus-visible { outline: 2px solid var(--gtm-sage); outline-offset: 3px; }
.prog-c-gtm-seg { display: inline-flex; margin: 0 0 18px; padding: 0; border: 1px solid rgba(232, 240, 236, .5); }
.prog-c-gtm-seg--sm { margin: 0; }
.prog-c-gtm-seg legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.prog-c-gtm-seg label { position: relative; cursor: pointer; }
.prog-c-gtm-seg input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.prog-c-gtm-seg span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; font: 600 15px var(--gft-font-display); color: var(--gtm-on); }
.prog-c-gtm-seg--sm span { min-height: 36px; padding: 0 12px; font-size: 13px; }
.prog-c-gtm-seg input:checked + span { background: var(--gtm-on); color: var(--gtm-forest); }
.prog-c-gtm-seg input:focus-visible + span { outline: 2px solid var(--gtm-ochre); outline-offset: -4px; }

/* ---------- fixed read-out card (content swaps; the box never resizes) ---------- */
.prog-c-gtm-ro { box-sizing: border-box; width: 330px; height: 196px; padding: 18px 20px; display: grid; grid-template-rows: auto 1fr auto; gap: 6px; background: rgba(7, 45, 43, .82); border: 1px solid rgba(232, 240, 236, .28); border-top: 3px solid var(--gtm-sage); color: var(--gtm-on); align-self: start; }
.prog-c-gtm-ro__v { margin: 0; font: 800 50px/1 var(--gft-font-display); letter-spacing: -.045em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.prog-c-gtm-ro__l { margin: 0; font-size: 15px; line-height: 1.45; color: var(--gtm-on); }
.prog-c-gtm-ro__s { margin: 0; font: 13px/1.4 var(--gft-font-mono); letter-spacing: .06em; text-transform: uppercase; color: #cfe3d8; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }

/* ---------- pinned scenes: a sticky stage, spacer steps, layers stacked in one cell ---------- */
.prog-c-gtm-sc.mw-steps--overlay > .mw-steps__visual { height: 100svh; min-height: 0; z-index: 0; }
.prog-c-gtm-sc.mw-steps--overlay > .mw-steps__track > * { min-height: 78svh; padding: 0; }
.prog-c-gtm-sc.mw-steps--overlay > .mw-steps__track > :first-child { min-height: 98svh; }
.prog-c-gtm-sc.mw-steps--overlay > .mw-steps__track > :last-child { min-height: 90svh; }
.prog-c-gtm-wf.mw-steps--overlay > .mw-steps__track > :last-child { min-height: 94svh; }
.prog-c-gtm-sc__stage { overflow: clip; }
.prog-c-gtm-sc__layers { display: grid; min-height: 0; }
.prog-c-gtm-sc__layer { grid-area: 1 / 1; min-width: 0; opacity: 0; visibility: hidden; transition: opacity 95ms linear, visibility 0s linear 95ms; }
.prog-c-gtm-sc:not([data-step]) [data-layer="0"],
.prog-c-gtm-sc[data-step="0"] [data-layer="0"], .prog-c-gtm-sc[data-step="1"] [data-layer="1"],
.prog-c-gtm-sc[data-step="2"] [data-layer="2"], .prog-c-gtm-sc[data-step="3"] [data-layer="3"],
.prog-c-gtm-sc[data-step="4"] [data-layer="4"] {
  opacity: 1; visibility: visible; transition: opacity 640ms var(--gtm-step-ease) 110ms, visibility 0s linear 110ms;
}
:root[data-m-go] .prog-c-gtm-sc__layer :is(.prog-c-gtm-sc__card),
:root[data-m-go] .prog-c-gtm-sc__layer.prog-c-gtm-sc__card {
  transform: translateY(24px); clip-path: inset(0 0 38% 0);
  transition: transform 95ms linear, clip-path 95ms linear, opacity 95ms linear, visibility 0s linear 95ms;
}
:root[data-m-go] :is(.prog-c-gtm-sc:not([data-step]) [data-layer="0"], .prog-c-gtm-sc[data-step="0"] [data-layer="0"], .prog-c-gtm-sc[data-step="1"] [data-layer="1"], .prog-c-gtm-sc[data-step="2"] [data-layer="2"], .prog-c-gtm-sc[data-step="3"] [data-layer="3"], .prog-c-gtm-sc[data-step="4"] [data-layer="4"]) :is(.prog-c-gtm-sc__card),
:root[data-m-go] :is(.prog-c-gtm-sc:not([data-step]) [data-layer="0"], .prog-c-gtm-sc[data-step="0"] [data-layer="0"], .prog-c-gtm-sc[data-step="1"] [data-layer="1"], .prog-c-gtm-sc[data-step="2"] [data-layer="2"], .prog-c-gtm-sc[data-step="3"] [data-layer="3"], .prog-c-gtm-sc[data-step="4"] [data-layer="4"]).prog-c-gtm-sc__card {
  transform: none; clip-path: inset(0 0 0 0);
  transition: transform 640ms var(--gtm-step-ease) 110ms, clip-path 640ms var(--gtm-step-ease) 110ms, opacity 640ms var(--gtm-step-ease) 110ms, visibility 0s linear 110ms;
}
:root[data-m-go] .prog-c-gtm-sc__layer .prog-c-gtm-wf__fig {
  transform: translateY(28px) scale(.96);
  transition: transform 95ms linear;
}
:root[data-m-go] :is(.prog-c-gtm-sc:not([data-step]) [data-layer="0"], .prog-c-gtm-sc[data-step="0"] [data-layer="0"], .prog-c-gtm-sc[data-step="1"] [data-layer="1"], .prog-c-gtm-sc[data-step="2"] [data-layer="2"], .prog-c-gtm-sc[data-step="3"] [data-layer="3"], .prog-c-gtm-sc[data-step="4"] [data-layer="4"]) .prog-c-gtm-wf__fig {
  transform: none;
  transition: transform 660ms var(--gtm-step-ease) 120ms;
}
:root[data-m-go] .prog-c-gtm-sc__layer .prog-c-gtm-ro,
:root[data-m-go] .prog-c-gtm-sc__layer.prog-c-gtm-lp__ro {
  transform: translateX(26px);
  transition: transform 95ms linear, opacity 95ms linear, visibility 0s linear 95ms;
}
:root[data-m-go] :is(.prog-c-gtm-sc:not([data-step]) [data-layer="0"], .prog-c-gtm-sc[data-step="0"] [data-layer="0"], .prog-c-gtm-sc[data-step="1"] [data-layer="1"], .prog-c-gtm-sc[data-step="2"] [data-layer="2"], .prog-c-gtm-sc[data-step="3"] [data-layer="3"], .prog-c-gtm-sc[data-step="4"] [data-layer="4"]) .prog-c-gtm-ro,
:root[data-m-go] :is(.prog-c-gtm-sc:not([data-step]) [data-layer="0"], .prog-c-gtm-sc[data-step="0"] [data-layer="0"], .prog-c-gtm-sc[data-step="1"] [data-layer="1"], .prog-c-gtm-sc[data-step="2"] [data-layer="2"], .prog-c-gtm-sc[data-step="3"] [data-layer="3"], .prog-c-gtm-sc[data-step="4"] [data-layer="4"]).prog-c-gtm-lp__ro {
  transform: none;
  transition: transform 640ms var(--gtm-step-ease) 130ms, opacity 640ms var(--gtm-step-ease) 110ms, visibility 0s linear 110ms;
}
:root[data-m-go] .prog-c-gtm-sc__layer :is(.prog-c-gtm-ro__v, .prog-c-gtm-lp__v) {
  transform: translateY(20px); opacity: 0;
  transition: transform 95ms linear, opacity 95ms linear;
}
:root[data-m-go] :is(.prog-c-gtm-sc:not([data-step]) [data-layer="0"], .prog-c-gtm-sc[data-step="0"] [data-layer="0"], .prog-c-gtm-sc[data-step="1"] [data-layer="1"], .prog-c-gtm-sc[data-step="2"] [data-layer="2"], .prog-c-gtm-sc[data-step="3"] [data-layer="3"], .prog-c-gtm-sc[data-step="4"] [data-layer="4"]) :is(.prog-c-gtm-ro__v, .prog-c-gtm-lp__v) {
  transform: none; opacity: 1;
  transition: transform 620ms var(--gtm-step-ease) 150ms, opacity 620ms var(--gtm-step-ease) 150ms;
}
.prog-c-gtm-sc__chips { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; max-width: 580px; }
.prog-c-gtm-sc__chip { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border: 1px solid rgba(232, 240, 236, .45); background: transparent; color: var(--gtm-on); font: 600 15px var(--gft-font-display); cursor: pointer; }
.prog-c-gtm-sc__chip b { font: 600 13px var(--gft-font-mono); letter-spacing: .06em; color: var(--pt); }
.prog-c-gtm-sc__chip[aria-pressed="true"] { background: var(--gtm-on); color: var(--gtm-forest); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 5px; }
.prog-c-gtm-sc__chip[aria-pressed="true"] b { color: var(--pd); }
.prog-c-gtm-sc__chip:focus-visible { outline: 2px solid var(--gtm-ochre); outline-offset: 3px; }
.prog-c-gtm-sc__card { box-sizing: border-box; padding: 20px 24px 22px; background: var(--gtm-deep); border: 1px solid rgba(232, 240, 236, .24); border-left: 4px solid var(--pc, var(--gtm-sage)); color: var(--gtm-on); align-self: start; }
.prog-c-gtm-sc__k { margin: 0 0 8px; font: 500 13px/1.4 var(--gft-font-mono); letter-spacing: .06em; text-transform: uppercase; color: #b9dcc8; }
.prog-c-gtm-sc__card h3 { margin: 0 0 10px; font-size: 25px; line-height: 1.12; letter-spacing: -.025em; font-weight: 750; }
.prog-c-gtm-sc__p { margin: 0; font-size: 16.5px; line-height: 1.56; text-wrap: pretty; }
.prog-c-gtm-sc__p .gft-text-link { display: inline-flex; min-height: 30px; gap: 8px; margin-left: 6px; color: var(--gtm-on); }

/* ================= 1 · splash: the cloth in perspective ================= */
.gft-splash[data-splash="prog-c-go-to-market"] { min-height: max(620px, calc(100svh - 88px - 12svh)); }
.gft-splash[data-splash="prog-c-go-to-market"] .gft-splash__structure { inset: 0; z-index: -1; }
.gft-splash[data-splash="prog-c-go-to-market"] .gft-splash__structure::after { background: linear-gradient(90deg, #072d2b 0%, #072d2bd9 22%, #072d2b00 42%); }
.gft-splash[data-splash="prog-c-go-to-market"] h1 { font-size: clamp(2.6rem, min(4vw, 7.4svh), 4.8rem); max-width: 12.5ch; margin-top: 18px; }
.gft-splash[data-splash="prog-c-go-to-market"] h1 .gft-serif { display: block; font-size: .5em; line-height: 1.16; margin-top: .4em; max-width: 22ch; letter-spacing: -.03em; color: #9fd8b8; }
.gft-splash[data-splash="prog-c-go-to-market"] .gft-splash__lede { max-width: 40ch; margin-top: 18px; font-size: 17px; color: var(--gtm-on); }
.gft-splash[data-splash="prog-c-go-to-market"] .gft-splash__actions { margin-top: 22px; }
.gft-splash[data-splash="prog-c-go-to-market"] .gft-splash__data, .gft-splash[data-splash="prog-c-go-to-market"] .gft-splash__caption,
.gft-splash[data-splash="prog-c-go-to-market"] .gft-splash__position { font-size: 13px; letter-spacing: .06em; color: rgba(232, 240, 236, .86); }
.gft-splash[data-splash="prog-c-go-to-market"] .gft-splash__cue { font-size: 15px; }
.prog-c-gtm-spl-ctl { max-width: 540px; }
.prog-c-gtm-spl-ctl .prog-c-gtm-pills { width: 100%; background: rgba(7, 45, 43, .82); }
.prog-c-gtm-spl-ctl .prog-c-gtm-pill > span { padding: 8px 14px; min-height: 54px; }

.prog-c-gtm-spl { position: relative; min-height: 0; height: 100%; width: 100%; overflow: clip; }
.prog-c-gtm-spl__warp { position: absolute; inset: 0; pointer-events: none; overflow-anchor: none; }
.prog-c-gtm-spl__warpin { position: absolute; inset: 0; }
.prog-c-gtm-spl__warpin i { position: absolute; top: 0; bottom: 0; left: var(--x); width: 1px; background: linear-gradient(#6bb68f00, rgba(107, 182, 143, var(--o)) 30%, rgba(107, 182, 143, var(--o)) 70%, #6bb68f00); }
.prog-c-gtm-spl__stage { position: absolute; left: 34%; width: 65%; top: 6%; height: 78%; display: grid; grid-template-rows: minmax(0, 1fr) auto; }
.prog-c-gtm-spl__cloth { position: relative; min-height: 0; transform: perspective(1500px) rotateX(38deg) scale(.92); transform-origin: 70% 100%; }
.prog-c-gtm-spl__svg { width: 100%; height: 100%; overflow: visible; }
.prog-c-gtm-spl__bed { fill: rgba(14, 77, 74, .38); stroke: rgba(232, 240, 236, .18); }
.prog-c-gtm-spl__fine line { stroke: rgba(232, 240, 236, .1); stroke-width: 1; }
.prog-c-gtm-spl__warps line { stroke: rgba(232, 240, 236, .5); stroke-width: 2; }
.prog-c-gtm-spl__wefts line { stroke: var(--pc); stroke-opacity: .55; stroke-width: 3; }
.prog-c-gtm-spl__labels text { font: 600 22px var(--gft-font-mono); letter-spacing: .06em; fill: rgba(232, 240, 236, .86); }
.prog-c-gtm-spl__core { fill: var(--pc); stroke: #072d2b; stroke-width: 4; transition: opacity 360ms var(--gtm-out); }
.prog-c-gtm-spl__knot[data-p="3"] .prog-c-gtm-spl__core { fill: #072d2b; stroke: var(--pc); stroke-width: 5; }
.prog-c-gtm-spl__halo { fill: none; stroke: var(--pc); stroke-width: 3; opacity: 0; }
.prog-c-gtm-spl__front { opacity: 0; mix-blend-mode: screen; }
.prog-c-gtm-spl__fine line, .prog-c-gtm-spl__warps line, .prog-c-gtm-spl__wefts line, .prog-c-gtm-spl__core, .prog-c-gtm-spl__halo { transform-box: fill-box; transform-origin: center; }
.prog-c-gtm-spl__warps line, .prog-c-gtm-spl__fine line { transform-origin: 50% 0; }
.prog-c-gtm-spl__wefts line { transform-origin: 0 50%; }
.prog-c-gtm-spl[data-tier="1"] .prog-c-gtm-spl__knot:not([data-p="1"]) .prog-c-gtm-spl__core,
.prog-c-gtm-spl[data-tier="2"] .prog-c-gtm-spl__knot:not([data-p="2"]) .prog-c-gtm-spl__core,
.prog-c-gtm-spl[data-tier="3"] .prog-c-gtm-spl__knot:not([data-p="3"]) .prog-c-gtm-spl__core { opacity: .25; }
.prog-c-gtm-spl__ro { display: grid; justify-items: end; row-gap: 12px; padding: 14px 4% 0 0; }
.prog-c-gtm-spl__lit { margin: 0; font: 600 15px/1.1 var(--gft-font-display); color: var(--gtm-on); white-space: nowrap; }
.prog-c-gtm-spl__lit b { font-size: 34px; font-weight: 800; letter-spacing: -.03em; margin-right: 4px; font-variant-numeric: tabular-nums; }
.prog-c-gtm-spl__key { list-style: none; display: flex; flex-wrap: wrap; justify-content: flex-end; max-width: calc(100% + 34vw - 612px); gap: 6px 20px; margin: 0; padding: 0; font: 500 13px/1.3 var(--gft-font-mono); letter-spacing: .06em; color: rgba(232, 240, 236, .86); }
.prog-c-gtm-spl__key li::before { content: ''; display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--pc); margin-right: 8px; }
.prog-c-gtm-spl__key li[data-p="3"]::before { background: transparent; box-shadow: inset 0 0 0 2px var(--pc); }
.prog-c-gtm-spl__thread { position: absolute; bottom: 0; width: 2px; height: 11%; transform-origin: 50% 100%; }
.prog-c-gtm-spl__thread--1 { left: 84%; background: linear-gradient(#6bb68f00, #6bb68f); }
.prog-c-gtm-spl__thread--2 { left: 88%; background: linear-gradient(#c98a2b00, #c98a2b); }
.prog-c-gtm-spl__thread--3 { left: 92%; background: linear-gradient(#8391b600, #8391b6); }

/* ================= 2 · the knot board ================= */
.prog-c-gtm-kb-sec { z-index: 2; padding-block: 64px 88px; view-timeline-name: --prog-c-gtm-kb; view-timeline-axis: block; }
.prog-c-gtm-kb__bar { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin: 30px 0 26px; }
.prog-c-gtm-kb__body { display: grid; grid-template-columns: minmax(0, 62fr) minmax(0, 38fr); gap: 44px; align-items: start; }
.prog-c-gtm-kb__board { position: relative; --rh: 190px; }
.prog-c-gtm-kb__cols, .prog-c-gtm-kb__row { display: grid; grid-template-columns: var(--rh) repeat(4, minmax(0, 1fr)); position: relative; }
.prog-c-gtm-kb__cols { height: 44px; align-items: end; }
.prog-c-gtm-kb__cols span { padding-bottom: 12px; text-align: center; font: 500 13px/1.25 var(--gft-font-mono); letter-spacing: .06em; text-transform: uppercase; color: rgba(232, 240, 236, .9); }
.prog-c-gtm-kb__cols .prog-c-gtm-kb__corner { text-align: left; }
.prog-c-gtm-kb__row { height: 84px; border-top: 1px solid rgba(232, 240, 236, .14); }
.prog-c-gtm-kb__row:last-of-type { border-bottom: 1px solid rgba(232, 240, 236, .14); }
.prog-c-gtm-kb__row::before { content: ''; position: absolute; left: var(--rh); right: 0; top: calc(50% - 1px); height: 2px; background: rgba(232, 240, 236, .16); }
.prog-c-gtm-kb__name { display: flex; align-items: center; gap: 12px; font: 650 17px/1.2 var(--gft-font-display); }
.prog-c-gtm-kb__name b, .prog-c-gtm-kb__rk b { display: inline-grid; place-items: center; min-width: 36px; height: 26px; font: 600 13px var(--gft-font-mono); letter-spacing: .04em; color: var(--gtm-night); background: var(--pc); }
.prog-c-gtm-kb__cell { position: relative; display: grid; place-items: center; }
.prog-c-gtm-kb__cell::before { content: ''; position: absolute; left: 50%; top: 0; bottom: 0; width: 1px; background: rgba(232, 240, 236, .12); }
.prog-c-gtm-kb__off { width: 7px; height: 7px; border-radius: 50%; background: rgba(232, 240, 236, .3); position: relative; }
.prog-c-gtm-kb__knot { position: relative; z-index: 2; display: grid; justify-items: center; gap: 6px; min-width: 64px; min-height: 64px; padding: 6px 8px; border: 0; background: transparent; color: var(--gtm-on); cursor: pointer; transition: opacity 360ms var(--gtm-out); }
.prog-c-gtm-kb__glyph { position: relative; display: block; width: 22px; height: 22px; border-radius: 50%; background: var(--pc); box-shadow: 0 0 0 5px rgba(7, 45, 43, 1), 0 0 0 7px var(--pc); }
.prog-c-gtm-kb__knot[data-p="3"] .prog-c-gtm-kb__glyph { background: var(--gtm-night); box-shadow: inset 0 0 0 3px var(--pc), 0 0 0 5px rgba(7, 45, 43, 1); }
.prog-c-gtm-kb__pulse { position: absolute; inset: -8px; border-radius: 50%; border: 2px solid var(--pc); opacity: 0; }
.prog-c-gtm-kb__knot em { font: 600 14px/1.15 var(--gft-font-display); font-style: normal; white-space: nowrap; background: var(--gtm-night); padding: 1px 4px; }
.prog-c-gtm-kb__knot[aria-pressed="true"] em { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.prog-c-gtm-kb__knot:focus-visible { outline: 2px solid var(--gtm-on); outline-offset: 2px; }
.prog-c-gtm-kb__strand { position: absolute; z-index: 1; top: calc(50% - 1.5px); height: 3px; left: calc(var(--rh) + (100% - var(--rh)) * (var(--c) + .5) / 4); right: -44px; background: linear-gradient(90deg, var(--pc), rgba(232, 240, 236, .25)); overflow: clip; transform-origin: 0 50%; transition: opacity 400ms var(--gtm-out); }
.prog-c-gtm-kb__strand i { position: absolute; inset: 0; background: radial-gradient(circle at 0 50%, #fff 0 3px, transparent 6px) no-repeat; }
.prog-c-gtm-kb[data-tier="1"] :is(.prog-c-gtm-kb__knot, .prog-c-gtm-kb__strand):not([data-p="1"]),
.prog-c-gtm-kb[data-tier="2"] :is(.prog-c-gtm-kb__knot, .prog-c-gtm-kb__strand):not([data-p="2"]),
.prog-c-gtm-kb[data-tier="3"] :is(.prog-c-gtm-kb__knot, .prog-c-gtm-kb__strand):not([data-p="3"]) { opacity: .62; }
.prog-c-gtm-kb[data-tier="1"] .prog-c-gtm-kb__strand:not([data-p="1"]), .prog-c-gtm-kb[data-tier="2"] .prog-c-gtm-kb__strand:not([data-p="2"]), .prog-c-gtm-kb[data-tier="3"] .prog-c-gtm-kb__strand:not([data-p="3"]) { opacity: .12; }
.prog-c-gtm-kb[data-tier="1"] .prog-c-gtm-kb__knot:not([data-p="1"]) .prog-c-gtm-kb__glyph,
.prog-c-gtm-kb[data-tier="2"] .prog-c-gtm-kb__knot:not([data-p="2"]) .prog-c-gtm-kb__glyph,
.prog-c-gtm-kb[data-tier="3"] .prog-c-gtm-kb__knot:not([data-p="3"]) .prog-c-gtm-kb__glyph { opacity: .45; }
.prog-c-gtm-kb__pull { position: absolute; left: var(--rh); right: 0; top: 85px; height: 3px; background: linear-gradient(90deg, #6bb68f, #9fd8b8 60%, rgba(159, 216, 184, .2)); pointer-events: none; overflow-anchor: none; }
.prog-c-gtm-kb__foot { margin: 14px 0 0; font: 13px/1.5 var(--gft-font-mono); letter-spacing: .06em; color: rgba(232, 240, 236, .9); }
.prog-c-gtm-kb__side { display: grid; gap: 22px; align-content: start; }
.prog-c-gtm-kb__ro { padding: 20px 22px 18px; border: 1px solid rgba(232, 240, 236, .22); background: rgba(14, 77, 74, .45); }
.prog-c-gtm-kb__lit { display: flex; align-items: baseline; gap: 12px; margin: 0 0 10px; }
.prog-c-gtm-kb__lit b { font: 800 48px/1 var(--gft-font-display); letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.prog-c-gtm-kb__lit span { font-size: 17px; }
.prog-c-gtm-kb__waves { display: grid; }
.prog-c-gtm-kb__wave { grid-area: 1 / 1; opacity: 1; visibility: visible; transition: opacity 320ms var(--gtm-out) 160ms, visibility 0s; }
.prog-c-gtm-kb__wave[data-off] { opacity: 0; visibility: hidden; transition: opacity 180ms linear, visibility 0s linear 180ms; }
.prog-c-gtm-kb__wave h3 { margin: 0 0 8px; font-size: 28px; line-height: 1.1; letter-spacing: -.025em; }
.prog-c-gtm-kb__line { font-size: 17px; line-height: 1.55; }
.prog-c-gtm-kb__sel { margin: 14px 0 0; padding-top: 12px; border-top: 1px solid rgba(232, 240, 236, .2); font-size: 15px; line-height: 1.45; min-height: 5.6em; }
.prog-c-gtm-kb__selk { display: block; font: 500 13px var(--gft-font-mono); letter-spacing: .06em; text-transform: uppercase; color: #b9dcc8; margin-bottom: 4px; }
.prog-c-gtm-kb__rank { --rk: 58px; position: relative; list-style: none; margin: 0; padding: 0; height: calc(var(--rk) * 5); }
.prog-c-gtm-kb__rk { position: absolute; left: 0; right: 0; top: calc(var(--r) * var(--rk)); height: calc(var(--rk) - 6px); transform: translateY(calc((var(--slot, var(--r)) - var(--r)) * var(--rk))); transition: transform 650ms var(--gtm-out); }
.prog-c-gtm-kb__rkin { display: grid; grid-template-columns: 30px auto minmax(0, 1fr); align-items: center; gap: 10px; height: 100%; padding-right: 12px; background: rgba(232, 240, 236, .05); border-left: 3px solid var(--pc); }
.prog-c-gtm-kb__rkstrand { height: 3px; background: var(--pc); }
.prog-c-gtm-kb__rkname { font: 650 16px/1.15 var(--gft-font-display); }
.prog-c-gtm-kb__rk small { display: none; }
.prog-c-gtm-kb[data-tier="1"] .prog-c-gtm-kb__rk[data-p="1"] .prog-c-gtm-kb__rkin,
.prog-c-gtm-kb[data-tier="2"] .prog-c-gtm-kb__rk[data-p="2"] .prog-c-gtm-kb__rkin,
.prog-c-gtm-kb[data-tier="3"] .prog-c-gtm-kb__rk[data-p="3"] .prog-c-gtm-kb__rkin { background: rgba(232, 240, 236, .14); }

/* ================= 3 · five wefts (pinned, forest) ================= */
.prog-c-gtm-wf-sec { z-index: 1; }
.prog-c-gtm-wf { timeline-scope: --prog-c-gtm-wf4; }
.prog-c-gtm-wf__last { view-timeline-name: --prog-c-gtm-wf4; view-timeline-axis: block; }
.prog-c-gtm-wf__in { position: relative; height: 100%; box-sizing: border-box; display: grid; grid-template-rows: auto auto minmax(0, 1fr); gap: 14px; padding-block: 20px 16px; }
.prog-c-gtm-wf__loom { background: rgba(7, 45, 43, .64); border: 1px solid rgba(232, 240, 236, .24); padding: 8px 18px 10px; display: grid; gap: 4px; }
.prog-c-gtm-wf__wcols { position: relative; height: 22px; border-bottom: 1px solid rgba(232, 240, 236, .18); font: 600 13px/1 var(--gft-font-mono); letter-spacing: .04em; text-transform: uppercase; color: #cfe3d8; }
.prog-c-gtm-wf__whead { position: absolute; left: 0; top: 2px; color: #9fd8b8; }
.prog-c-gtm-wf__wcol { position: absolute; top: 2px; transform: translateX(-50%); white-space: nowrap; }
.prog-c-gtm-wf__wcol b { color: #9fd8b8; margin-right: 4px; }
.prog-c-gtm-wf__remnant { position: relative; display: grid; gap: 0; padding: 2px 0; }
.prog-c-gtm-wf__vwarp { position: absolute; top: 0; bottom: 0; width: 1px; background: rgba(232, 240, 236, .16); pointer-events: none; }
.prog-c-gtm-wf__rrow { position: relative; height: 20px; display: flex; align-items: center; z-index: 1; }
.prog-c-gtm-wf__rrow::before { content: ''; position: absolute; left: 165px; right: 0; top: 9px; height: 1.5px; background: rgba(232, 240, 236, .22); }
.prog-c-gtm-wf__rname { position: relative; z-index: 2; width: 160px; font: 600 13px/1 var(--gft-font-display); color: rgba(232, 240, 236, .78); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prog-c-gtm-wf__rname b { font: 600 13px var(--gft-font-mono); color: var(--pt); margin-right: 6px; }
.prog-c-gtm-wf__rrow i { position: absolute; top: 4px; width: 12px; height: 12px; margin-left: -6px; border-radius: 50%; background: var(--pc); opacity: .42; transition: opacity 420ms var(--gtm-step-ease), transform 420ms var(--gtm-step-ease); }
.prog-c-gtm-wf__rrow i em { display: none; }
.prog-c-gtm-wf__rrow i[data-p="3"] { background: var(--gtm-night); box-shadow: inset 0 0 0 2.5px var(--pc); }
.prog-c-gtm-wf__shuttle-bar { position: absolute; left: -6px; right: -6px; top: 2px; height: 20px; background: rgba(107, 182, 143, .16); border-left: 3px solid var(--gtm-sage); border-right: 3px solid var(--gtm-sage); pointer-events: none; transform: translateY(0); transition: transform 640ms var(--gtm-step-ease) 80ms; }
.prog-c-gtm-wf[data-step="1"] .prog-c-gtm-wf__shuttle-bar { transform: translateY(20px); }
.prog-c-gtm-wf[data-step="2"] .prog-c-gtm-wf__shuttle-bar { transform: translateY(40px); border-color: var(--gtm-ochre); background: rgba(201, 138, 43, .16); }
.prog-c-gtm-wf[data-step="3"] .prog-c-gtm-wf__shuttle-bar { transform: translateY(60px); border-color: var(--gtm-ochre); background: rgba(201, 138, 43, .16); }
.prog-c-gtm-wf[data-step="4"] .prog-c-gtm-wf__shuttle-bar { transform: translateY(80px); border-color: var(--gtm-indigo); background: rgba(131, 145, 182, .18); }
.prog-c-gtm-wf:not([data-step]) .prog-c-gtm-wf__rrow[data-r="0"] i, .prog-c-gtm-wf[data-step="0"] .prog-c-gtm-wf__rrow[data-r="0"] i,
.prog-c-gtm-wf[data-step="1"] .prog-c-gtm-wf__rrow[data-r="1"] i, .prog-c-gtm-wf[data-step="2"] .prog-c-gtm-wf__rrow[data-r="2"] i,
.prog-c-gtm-wf[data-step="3"] .prog-c-gtm-wf__rrow[data-r="3"] i, .prog-c-gtm-wf[data-step="4"] .prog-c-gtm-wf__rrow[data-r="4"] i { opacity: 1; transform: scale(1.45); }
.prog-c-gtm-wf:not([data-step]) .prog-c-gtm-wf__rrow[data-r="0"] .prog-c-gtm-wf__rname, .prog-c-gtm-wf[data-step="0"] .prog-c-gtm-wf__rrow[data-r="0"] .prog-c-gtm-wf__rname,
.prog-c-gtm-wf[data-step="1"] .prog-c-gtm-wf__rrow[data-r="1"] .prog-c-gtm-wf__rname, .prog-c-gtm-wf[data-step="2"] .prog-c-gtm-wf__rrow[data-r="2"] .prog-c-gtm-wf__rname,
.prog-c-gtm-wf[data-step="3"] .prog-c-gtm-wf__rrow[data-r="3"] .prog-c-gtm-wf__rname, .prog-c-gtm-wf[data-step="4"] .prog-c-gtm-wf__rrow[data-r="4"] .prog-c-gtm-wf__rname { color: #fff; font-weight: 700; }
.prog-c-gtm-wf__lane { position: relative; height: 58px; border-top: 1px solid rgba(232, 240, 236, .16); transform-origin: 62% 50%; }
.prog-c-gtm-wf__lanein { position: absolute; inset: 0; overflow: clip; }
.prog-c-gtm-wf__weft { position: absolute; left: 0; right: 0; top: 4px; height: 50px; opacity: 0; transform: translateX(-42%); transition: transform 95ms linear, opacity 95ms linear; }
.prog-c-gtm-wf__wname { position: absolute; left: 0; top: 2px; font: 650 15px/1 var(--gft-font-display); }
.prog-c-gtm-wf__wname b { font: 600 13px var(--gft-font-mono); color: var(--pt); margin-right: 6px; }
.prog-c-gtm-wf__thread { position: absolute; left: 0; right: 0; top: 23px; height: 5px; background: linear-gradient(90deg, rgba(232, 240, 236, .3), var(--pc) 10%, var(--pc)); overflow: clip; }
.prog-c-gtm-wf__weft--4 .prog-c-gtm-wf__thread { background: repeating-linear-gradient(90deg, var(--pc) 0 18px, transparent 18px 30px); }
.prog-c-gtm-wf__shuttle { position: absolute; left: 0; top: 0; bottom: 0; width: 22%; background: radial-gradient(ellipse 30px 6px at 50% 50%, #fff, transparent) no-repeat; transform: translateX(-100%); }
.prog-c-gtm-wf__knot { position: absolute; top: 13px; display: grid; justify-items: center; gap: 3px; transform: translateX(-50%); }
.prog-c-gtm-wf__knot i { width: 22px; height: 22px; border-radius: 50%; background: var(--pc); box-shadow: 0 0 0 4px var(--gtm-night), 0 0 0 6px var(--pc); }
.prog-c-gtm-wf__knot[data-p="3"] i { background: var(--gtm-night); box-shadow: inset 0 0 0 3px var(--pc), 0 0 0 4px var(--gtm-night); }
.prog-c-gtm-wf__knot em { font: 600 13px/1.15 var(--gft-font-display); font-style: normal; white-space: nowrap; color: var(--gtm-on); background: rgba(7, 45, 43, .9); padding: 1px 6px; border-radius: 3px; }
.prog-c-gtm-wf:not([data-step]) .prog-c-gtm-wf__weft--0, .prog-c-gtm-wf[data-step="0"] .prog-c-gtm-wf__weft--0,
.prog-c-gtm-wf[data-step="1"] .prog-c-gtm-wf__weft--1, .prog-c-gtm-wf[data-step="2"] .prog-c-gtm-wf__weft--2,
.prog-c-gtm-wf[data-step="3"] .prog-c-gtm-wf__weft--3, .prog-c-gtm-wf[data-step="4"] .prog-c-gtm-wf__weft--4 {
  opacity: 1; transform: none; transition: transform 640ms var(--gtm-step-ease) 100ms, opacity 640ms var(--gtm-step-ease) 100ms;
}
.prog-c-gtm-wf__layers { position: relative; }
.prog-c-gtm-wf__l { display: grid; gap: 24px; align-items: start; }
.prog-c-gtm-wf__l--0, .prog-c-gtm-wf__l--1, .prog-c-gtm-wf__l--3, .prog-c-gtm-wf__l--4 { grid-template-columns: 380px minmax(0, 1fr) 330px; }
.prog-c-gtm-wf__l--2 { grid-template-columns: 330px minmax(0, 1fr) 380px; }
.prog-c-gtm-wf__meta { list-style: none; margin: 14px 0 0; padding: 12px 0 0; border-top: 1px solid rgba(232, 240, 236, .18); display: grid; gap: 8px; }
.prog-c-gtm-wf__meta li { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 14px; line-height: 1.35; }
.prog-c-gtm-wf__meta span { font: 500 13px var(--gft-font-mono); letter-spacing: .04em; text-transform: uppercase; color: #b9dcc8; }
.prog-c-gtm-wf__meta b { font-weight: 650; color: var(--gtm-on); text-align: right; }
.prog-c-gtm-wf__fig { margin: 0; min-width: 0; color: var(--gtm-on); background: rgba(7, 45, 43, .46); border: 1px solid rgba(232, 240, 236, .2); padding: 16px 20px; box-sizing: border-box; }
.prog-c-gtm-wf__fhead { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.prog-c-gtm-wf__fcap { font: 500 13px var(--gft-font-mono); letter-spacing: .06em; text-transform: uppercase; color: #cfe3d8; margin: 0; }
/* step 0: woven cloth swatch + share bars with the hatched whitespace */
.prog-c-gtm-wf__swatch-grid { display: grid; grid-template-columns: 176px minmax(0, 1fr); gap: 16px; align-items: center; }
.prog-c-gtm-wf__swatch svg { width: 100%; height: auto; display: block; }
.prog-c-gtm-wf__sw-bg { fill: #072d2b; stroke: rgba(107, 182, 143, .45); stroke-width: 1.5; }
.prog-c-gtm-wf__sw-warp { stroke: rgba(232, 240, 236, .22); stroke-width: 1.5; }
.prog-c-gtm-wf__sw-weft { stroke: rgba(107, 182, 143, .42); stroke-width: 2; }
.prog-c-gtm-wf__sw-cell { fill: #6bb68f; opacity: .88; transition: fill 360ms var(--gtm-out), opacity 360ms var(--gtm-out); }
.prog-c-gtm-wf__sw-cell--gap { fill: #c98a2b; opacity: .28; }
.prog-c-gtm-wf__share[data-era="then"] .prog-c-gtm-wf__sw-cell--gap { fill: #6bb68f; opacity: .82; }
.prog-c-gtm-wf__sw-tag { font: 600 13px var(--gft-font-mono); letter-spacing: .05em; fill: #e8f0ec; }
.prog-c-gtm-wf__srow { display: grid; grid-template-columns: 118px minmax(0, 1fr) 76px; align-items: center; gap: 10px; margin-bottom: 14px; }
.prog-c-gtm-wf__slab { font-size: 14.5px; }
.prog-c-gtm-wf__srow b { font: 800 19px/1 var(--gft-font-display); letter-spacing: -.02em; text-align: right; white-space: nowrap; }
.prog-c-gtm-wf__strack { position: relative; height: 36px; background: rgba(232, 240, 236, .07); border: 1px solid rgba(232, 240, 236, .22); overflow: clip; }
.prog-c-gtm-wf__sbar { position: absolute; inset: 0; background: var(--gtm-sage); transform-origin: 0 50%; transform: scaleX(var(--v)); }
.prog-c-gtm-wf__srow--now .prog-c-gtm-wf__sbar { background: #9fd8b8; }
.prog-c-gtm-wf__gap { position: absolute; top: 0; bottom: 0; left: 5%; width: 80%; background: repeating-linear-gradient(-45deg, rgba(201, 138, 43, .55) 0 6px, transparent 6px 12px); display: grid; place-items: center; }
.prog-c-gtm-wf__gap em { font: 600 13px var(--gft-font-mono); letter-spacing: .04em; text-transform: uppercase; font-style: normal; background: var(--gtm-night); padding: 2px 6px; color: #f3d39b; white-space: nowrap; }
.prog-c-gtm-wf__fnote { margin: 4px 0 0; font-size: 14px; line-height: 1.48; color: var(--gtm-on); }
/* step 1: garments and e-commerce bars */
.prog-c-gtm-wf__glyphs { display: grid; gap: 6px; margin-bottom: 14px; }
.prog-c-gtm-wf__shirts { display: flex; gap: 10px; }
.prog-c-gtm-wf__shirts svg { width: 28px; height: 28px; fill: var(--gtm-sage); }
.prog-c-gtm-wf__gcap { font-size: 14.5px; line-height: 1.45; }
.prog-c-gtm-wf__bars { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; height: 156px; align-items: end; }
.prog-c-gtm-wf__bar { position: relative; display: grid; grid-template-rows: minmax(0, 1fr) auto; height: 100%; gap: 6px; }
.prog-c-gtm-wf__bval { position: absolute; left: 0; top: -2px; font: 600 13px var(--gft-font-mono); color: var(--gtm-on); }
.prog-c-gtm-wf__btrack { position: relative; border-bottom: 2px solid rgba(232, 240, 236, .5); }
.prog-c-gtm-wf__btrack i { position: absolute; left: 10%; right: 10%; bottom: 0; height: 82%; background: rgba(107, 182, 143, .55); transform-origin: 50% 100%; transform: scaleY(var(--v)); transition: background-color 300ms linear; }
.prog-c-gtm-wf__bar[data-mid] .prog-c-gtm-wf__btrack i { background: repeating-linear-gradient(-45deg, rgba(107, 182, 143, .6) 0 5px, rgba(107, 182, 143, .25) 5px 10px); }
.prog-c-gtm-wf__bar[data-on] .prog-c-gtm-wf__btrack i { background: #9fd8b8; }
.prog-c-gtm-wf__btrack b { position: absolute; left: 0; right: 0; top: -3px; height: 6px; background: #fff; border-radius: 3px; opacity: 0; }
.prog-c-gtm-wf__bar[data-on] .prog-c-gtm-wf__btrack b { opacity: .8; }
.prog-c-gtm-wf__bar em { font: 500 13px var(--gft-font-mono); font-style: normal; text-align: center; color: var(--gtm-on); }
.prog-c-gtm-wf__scrub { display: grid; gap: 4px; margin-top: 10px; }
.prog-c-gtm-wf__scrub label { font: 500 13px/1.4 var(--gft-font-mono); letter-spacing: .06em; text-transform: uppercase; color: #cfe3d8; }
.prog-c-gtm-wf__scrub input { width: 100%; min-height: 40px; accent-color: var(--gtm-sage); }
.prog-c-gtm-wf__ticks { display: flex; justify-content: space-between; font: 500 13px var(--gft-font-mono); }
/* step 2: tender gate and the Months 5 to 10 window */
.prog-c-gtm-wf__lamps { list-style: none; margin: 0 0 16px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.prog-c-gtm-wf__lamps li { display: grid; justify-items: start; align-content: start; gap: 6px; padding: 12px 14px; background: rgba(7, 45, 43, .58); border: 1px solid rgba(201, 138, 43, .65); }
.prog-c-gtm-wf__lamps i { width: 16px; height: 16px; border-radius: 50%; background: var(--gtm-ochre); box-shadow: 0 0 12px rgba(201, 138, 43, .75); }
.prog-c-gtm-wf__lamps b { font: 700 15px/1.2 var(--gft-font-display); color: #f3d39b; }
.prog-c-gtm-wf__lamps span { font-size: 13.5px; line-height: 1.4; color: var(--gtm-on); }
.prog-c-gtm-wf__gate[data-view="cv"] .prog-c-gtm-wf__lamps li:nth-child(2) { border-color: #f3d39b; background: rgba(201, 138, 43, .2); }
.prog-c-gtm-wf__months { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px; }
.prog-c-gtm-wf__months li { display: grid; place-items: center; align-content: center; gap: 2px; height: 52px; font: 600 13px/1.1 var(--gft-font-mono); background: rgba(232, 240, 236, .08); border: 1px solid rgba(232, 240, 236, .16); color: var(--gtm-on); }
.prog-c-gtm-wf__months li small { font-size: 13px; color: #cfe3d8; }
.prog-c-gtm-wf__months li[data-on] { background: var(--gtm-ochre); border-color: #f3d39b; color: var(--gtm-night); }
.prog-c-gtm-wf__months li[data-on] small { color: var(--gtm-night); font-weight: 700; }
/* step 3: regional CEMAC and CEEAC corridor map */
[data-gtm-reg-ro] { min-width: 0; }
[data-gtm-reg-ro] .prog-c-gtm-ro__v { min-width: 0; font-size: clamp(24px, 2.35vw, 34px); line-height: 1.08; white-space: normal; }
.prog-c-gtm-wf__ring { width: 100%; height: auto; max-height: 205px; display: block; }
.prog-c-gtm-wf__rframe { fill: #072d2b; stroke: rgba(232, 240, 236, .22); stroke-width: 1.5; }
.prog-c-gtm-wf__rbloc { fill: rgba(201, 138, 43, .12); stroke: var(--gtm-ochre); stroke-width: 2.5; stroke-dasharray: 7 5; }
.prog-c-gtm-wf__ray { stroke: rgba(232, 240, 236, .35); stroke-width: 1.8; stroke-dasharray: 4 4; }
.prog-c-gtm-wf__rdist { fill: var(--gtm-ochre); stroke: #072d2b; stroke-width: 3; transition: opacity 320ms var(--gtm-out); }
.prog-c-gtm-wf__regfig[data-corridor="hubs"] :is(.prog-c-gtm-wf__rdist, .prog-c-gtm-wf__ray, .prog-c-gtm-wf__rlab) { opacity: .28; }
.prog-c-gtm-wf__rlab { font: 600 13px var(--gft-font-mono); fill: #f3d39b; }
.prog-c-gtm-wf__rlink { stroke: #9fd8b8; stroke-width: 3; }
.prog-c-gtm-wf__rhub { fill: var(--gtm-sage); stroke: #072d2b; stroke-width: 3.5; }
.prog-c-gtm-wf__rgate { fill: #e8f0ec; stroke: #072d2b; stroke-width: 2.5; }
.prog-c-gtm-wf__rhublab { font: 700 13px var(--gft-font-mono); letter-spacing: .05em; fill: #9fd8b8; }
.prog-c-gtm-wf__rcentre { font: 600 18px var(--gft-font-mono); letter-spacing: .06em; fill: #e8f0ec; }
.prog-c-gtm-wf__rcentre-phone { display: none; }
@media (max-width: 1360px) {
  .prog-c-gtm-wf__rcentre-label { display: none; }
  .prog-c-gtm-wf__rcentre-phone { display: block; margin: 0; padding: 10px; background: #072d2b; color: #e8f0ec; text-align: center; font: 600 12px/1.5 var(--gft-font-mono); letter-spacing: .06em; }
}
.prog-c-gtm-wf__rcap { margin: 8px 0 0; font-size: 14px; line-height: 1.45; }
/* step 4: zoomed Africa continental map, horizon scrubber and trade gauge */
.prog-c-gtm-wf__hz { display: grid; grid-template-columns: 245px minmax(0, 1fr); gap: 20px; align-items: center; }
.prog-c-gtm-wf__afmap svg { width: 100%; height: auto; display: block; }
.prog-c-gtm-wf__continent { fill: rgba(14, 77, 74, .65); stroke: rgba(159, 216, 184, .5); stroke-width: 2; }
.prog-c-gtm-wf__horizon circle { fill: none; stroke: rgba(195, 205, 235, .48); stroke-width: 2; stroke-dasharray: 4 6; transform-box: view-box; transform-origin: 186px 144px; }
.prog-c-gtm-wf__horizon circle[data-on] { stroke: #c3cdeb; stroke-width: 3; stroke-dasharray: none; }
.prog-c-gtm-wf__aflane { fill: none; stroke: #8391b6; stroke-width: 2.2; stroke-dasharray: 5 4; }
.prog-c-gtm-wf__agoa-off { stroke: rgba(232, 184, 106, .55); stroke-width: 2; stroke-dasharray: 3 5; }
.prog-c-gtm-wf__agoa-dot { fill: #072d2b; stroke: #e8b86a; stroke-width: 2.5; }
.prog-c-gtm-wf__hc { fill: var(--gtm-sage); stroke: #072d2b; stroke-width: 3; }
.prog-c-gtm-wf__mpill { fill: rgba(7, 45, 43, .92); stroke: rgba(159, 216, 184, .65); stroke-width: 1.2; }
.prog-c-gtm-wf__mpill--afcfta { stroke: #8391b6; }
.prog-c-gtm-wf__mpill--agoa { stroke: #e8b86a; }
.prog-c-gtm-wf__maptags text { font: 600 13px var(--gft-font-mono); letter-spacing: .04em; fill: #e8f0ec; }
.prog-c-gtm-wf__hzside { display: grid; gap: 12px; }
.prog-c-gtm-wf__hzside .prog-c-gtm-wf__scrub { margin-top: 0; }
.prog-c-gtm-wf__gauge p { margin: 0 0 6px; display: grid; grid-template-columns: 185px minmax(0, 1fr) 64px; align-items: center; gap: 10px; font-size: 14.5px; }
.prog-c-gtm-wf__gauge b { font: 800 20px var(--gft-font-display); text-align: right; }
.prog-c-gtm-wf__gtrack { position: relative; height: 16px; background: rgba(232, 240, 236, .1); border: 1px solid rgba(232, 240, 236, .3); overflow: clip; }
.prog-c-gtm-wf__gtrack i { position: absolute; inset: 0; background: var(--gtm-indigo); transform-origin: 0 50%; transform: scaleX(var(--v)); }
.prog-c-gtm-wf__gauge .prog-c-gtm-wf__gnote { display: block; font-size: 13.5px; line-height: 1.45; margin-top: 4px; color: #cfe3d8; }
.prog-c-gtm-wf__cluster { position: absolute; right: calc(max(0px, (100% - 1100px) / 2) + 24px); bottom: 24px; display: grid; grid-template-columns: repeat(4, 16px); gap: 6px; opacity: 0; pointer-events: none; overflow-anchor: none; }
.prog-c-gtm-wf__cluster i { width: 16px; height: 16px; border-radius: 50%; background: var(--pc); }
.prog-c-gtm-wf__cluster i[data-p="3"] { background: transparent; box-shadow: inset 0 0 0 2px var(--pc); }
.prog-c-gtm-wf__l .prog-c-gtm-sc__card { --pc: var(--gtm-sage); }
.prog-c-gtm-wf__l--2 .prog-c-gtm-sc__card, .prog-c-gtm-wf__l--3 .prog-c-gtm-sc__card { --pc: var(--gtm-ochre); }
.prog-c-gtm-wf__l--4 .prog-c-gtm-sc__card { --pc: var(--gtm-indigo); }
.prog-c-gtm-wf__l--2 .prog-c-gtm-ro, .prog-c-gtm-wf__l--3 .prog-c-gtm-ro { border-top-color: var(--gtm-ochre); }
.prog-c-gtm-wf__l--4 .prog-c-gtm-ro { border-top-color: var(--gtm-indigo); }

/* ================= 4 · price ladder (pinned, paper) ================= */
.prog-c-gtm-ld-sec { --gtm-ink: #1d2b27; }
.prog-c-gtm-ld-sec .prog-c-gtm-sc__card { background: #fff; color: #1d2b27; border: 1.5px solid #bfb8a8; border-left: 5px solid #2b6a50; box-shadow: 0 8px 24px rgba(29, 43, 39, .06); }
.prog-c-gtm-ld-sec .prog-c-gtm-sc__p { color: #1d2b27; font-size: 16.5px; line-height: 1.58; }
.prog-c-gtm-ld-sec .prog-c-gtm-sc__k { color: #1f533e; }
.prog-c-gtm-ld-sec .gft-cite { color: #1d2b27; border-color: #6b7871; background: #f2efe8; }
.prog-c-gtm-ld__chead { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin: -20px -24px 14px; padding: 9px 24px; background: #072d2b; color: #e8f0ec; font: 600 13px/1.3 var(--gft-font-mono); letter-spacing: .06em; text-transform: uppercase; }
.prog-c-gtm-ld__chead b { color: #9fd8b8; }
.prog-c-gtm-ld__in { height: 100%; box-sizing: border-box; display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 18px; padding-block: 24px 20px; }
.prog-c-gtm-ld__body { display: grid; grid-template-columns: minmax(0, 38fr) minmax(0, 62fr); gap: 32px; min-height: 0; align-items: start; }
.prog-c-gtm-ld__text { display: grid; align-content: start; gap: 16px; }
.prog-c-gtm-ld__lede { margin: 0; font-size: 16.5px; line-height: 1.56; color: #1d2b27; max-width: 52ch; }
.prog-c-gtm-ld__fig { margin: 0; display: grid; grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); gap: 12px; min-height: 0; }
.prog-c-gtm-ld__ro { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 20px; align-items: center; height: 160px; box-sizing: border-box; overflow: visible; padding: 12px 20px; background: #fff; border: 1.5px solid #bfb8a8; border-top: 4px solid #2b6a50; box-shadow: 0 4px 14px rgba(29, 43, 39, .05); }
.prog-c-gtm-ld__ro-main { min-width: 0; }
.prog-c-gtm-ld__rol { margin: 0 0 4px; font: 600 13px/1.35 var(--gft-font-mono); letter-spacing: .05em; text-transform: uppercase; color: #1f533e; white-space: normal; overflow-wrap: anywhere; min-height: 4.05em; }
.prog-c-gtm-ld__roc { margin: 0; font-size: 15px; line-height: 1.42; color: #1d2b27; min-height: 4.26em; }
.prog-c-gtm-ld__rows { display: grid; grid-template-columns: 146px 146px; gap: 14px; align-items: baseline; padding-left: 16px; border-left: 1px solid #d6d0c2; }
.prog-c-gtm-ld__rows div { display: grid; gap: 2px; }
.prog-c-gtm-ld__rows small { font: 600 13px var(--gft-font-mono); text-transform: uppercase; letter-spacing: .05em; color: #364640; white-space: nowrap; }
.prog-c-gtm-ld__rows b { font: 800 26px/1 var(--gft-font-display); letter-spacing: -.035em; color: #072d2b; font-variant-numeric: tabular-nums; white-space: nowrap; }
/* Keep the ladder inside its sticky frame after reserving wrapped read-out labels. */
.prog-c-gtm-ld__lad { position: relative; height: min(501px, calc(100svh - 299px)); overflow-x: clip; overflow-y: hidden; background: #fbfaf6; border: 1.5px solid #bfb8a8; }
.prog-c-gtm-ld__cam { position: absolute; inset: 0; transform-origin: 8% 42%; }
.prog-c-gtm-ld__cam::before { content: ''; position: absolute; left: 66px; top: 0; bottom: 0; width: 134px; background: #f4f1e8; border-right: 1px dashed #bfb8a8; pointer-events: none; z-index: 1; }
.prog-c-gtm-ld__ruler { position: absolute; left: 0; top: 0; bottom: 0; width: 66px; background: #ede8dc; border-right: 2px solid #1d2b27; z-index: 2; }
.prog-c-gtm-ld__axis { position: absolute; left: 6px; top: 8px; font: 700 12px/1.1 var(--gft-font-mono); letter-spacing: .03em; text-transform: uppercase; color: #1d2b27; }
.prog-c-gtm-ld__axis em { font-style: normal; }
.prog-c-gtm-ld__rtick { position: absolute; left: 0; right: 0; display: flex; align-items: center; justify-content: flex-end; gap: 5px; transform: translateY(-50%); font: 700 13px/1 var(--gft-font-mono); color: #1d2b27; }
.prog-c-gtm-ld__rtick i { width: 8px; height: 2px; background: #1d2b27; }
.prog-c-gtm-ld__band { position: absolute; left: 210px; right: 14px; box-sizing: border-box; min-width: 0; padding: 8px 14px; background: #fff; border: 1.5px solid #1d2b27; transform-origin: 50% 100%; cursor: pointer; transition: opacity 500ms var(--gtm-out), border-color 240ms linear, box-shadow 240ms linear; z-index: 2; }
.prog-c-gtm-ld__band:is(:hover, :focus-visible) { outline: none; box-shadow: 0 0 0 3px rgba(43, 106, 80, .28); }
/* Let the imported-label copy retain its bottom padding without moving the scale. */
.prog-c-gtm-ld__band--top { top: 3%; height: auto; min-height: 18%; border-style: dashed; background: #f8f6f0; }
.prog-c-gtm-ld__band--gft { top: 24%; height: 31%; right: 108px; border: 2px solid #2b6a50; background: #eef6f1; }
.prog-c-gtm-ld__band--floor { top: 73%; height: 24%; border-color: #4a544f; background: repeating-linear-gradient(-45deg, rgba(29, 43, 39, .06) 0 6px, #fff 6px 12px); }
.prog-c-gtm-ld__bhead { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; flex-wrap: wrap; margin-bottom: 3px; }
.prog-c-gtm-ld__bt { margin: 0; font: 700 13px/1.2 var(--gft-font-mono); letter-spacing: .05em; text-transform: uppercase; color: #1d2b27; }
.prog-c-gtm-ld__bs { margin: 0; font-size: 13.5px; line-height: 1.35; color: #1d2b27; max-width: 54ch; }
.prog-c-gtm-ld__tag { font: 700 13px/1.2 var(--gft-font-mono); color: #5a3d0c; background: rgba(201, 138, 43, .18); padding: 2px 8px; }
.prog-c-gtm-ld__tag--gft { color: #072d2b; background: rgba(63, 143, 107, .24); }
.prog-c-gtm-ld__war { font: 700 13px/1.2 var(--gft-font-mono); letter-spacing: .04em; text-transform: uppercase; color: #5a3d0c; background: rgba(201, 138, 43, .2); padding: 2px 8px; }
.prog-c-gtm-ld__proof { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.prog-c-gtm-ld__proof li { position: relative; padding-left: 18px; font-size: 13.5px; line-height: 1.28; color: #1d2b27; font-weight: 500; }
.prog-c-gtm-ld__proof li::before { content: ''; position: absolute; left: 0; top: .25em; width: 10px; height: 10px; border-radius: 50%; background: #2b6a50; opacity: .35; transform: scale(.7); transition: opacity 520ms var(--gtm-step-ease) calc(110ms + var(--k) * 140ms), transform 520ms var(--gtm-step-ease) calc(110ms + var(--k) * 140ms); }
.prog-c-gtm-ld[data-step="2"] .prog-c-gtm-ld__proof li::before, .prog-c-gtm-ld[data-step="3"] .prog-c-gtm-ld__proof li::before { opacity: 1; transform: scale(1.12); }
.prog-c-gtm-ld__corr { position: absolute; right: 12px; top: 24%; height: 31%; width: 86px; border: 2px solid #7d5417; background: rgba(201, 138, 43, .12); display: grid; place-items: center; text-align: center; padding: 6px; box-sizing: border-box; cursor: pointer; clip-path: inset(100% 0 0 0); transition: clip-path 660ms var(--gtm-step-ease) 110ms; z-index: 2; }
.prog-c-gtm-ld__corr span { font: 700 13px/1.25 var(--gft-font-mono); color: #5a3d0c; text-transform: uppercase; }
.prog-c-gtm-ld__arrow { position: absolute; right: 6px; top: 6px; width: 12px; height: 12px; border-top: 2.5px solid #7d5417; border-right: 2.5px solid #7d5417; transform: rotate(-45deg); }
.prog-c-gtm-ld:is([data-step="2"], [data-step="3"]) .prog-c-gtm-ld__corr { clip-path: inset(0 0 0 0); }
.prog-c-gtm-ld[data-step="3"] .prog-c-gtm-ld__band--top { opacity: .82; }
.prog-c-gtm-ld__cost { position: absolute; left: 210px; right: 14px; top: 63%; height: 3px; background: #1d2b27; transform-origin: 0 50%; cursor: pointer; z-index: 2; }
.prog-c-gtm-ld__cost::after { content: ''; position: absolute; inset: 0; background: #7d5417; transform: scaleX(0); transform-origin: 0 50%; transition: transform 640ms var(--gtm-step-ease) 110ms; }
.prog-c-gtm-ld:is([data-step="1"], [data-step="2"], [data-step="3"]) .prog-c-gtm-ld__cost::after { transform: scaleX(1); }
.prog-c-gtm-ld__costl { position: absolute; left: 0; bottom: 5px; white-space: nowrap; font: 700 13px var(--gft-font-mono); letter-spacing: .05em; text-transform: uppercase; color: #1d2b27; background: #fbfaf6; padding-right: 8px; }
.prog-c-gtm-ld__costt { position: absolute; left: 0; top: 5px; box-sizing: border-box; max-width: 100%; padding: 2px 8px; line-height: 1.22; font: 600 13px var(--gft-font-mono); border: 1px solid #7d5417; background: #fff8eb; color: #5a3d0c; }
.prog-c-gtm-ld__scan { position: absolute; left: 66px; width: 134px; right: auto; top: 0; height: 100%; pointer-events: none; transform: translateY(73%); transition: transform 660ms var(--gtm-step-ease) 90ms; z-index: 3; }
.prog-c-gtm-ld__scan i { position: absolute; left: 0; right: 0; top: 0; height: 2.5px; background: #072d2b; }
.prog-c-gtm-ld__mtag { position: absolute; left: 6px; right: 6px; top: -4px; transform: translateY(-100%); background: #072d2b; color: #e8f0ec; font: 600 12px/1.2 var(--gft-font-mono); letter-spacing: .03em; padding: 4px 7px; border-left: 3px solid #6bb68f; white-space: normal; }
.prog-c-gtm-ld[data-step="1"] .prog-c-gtm-ld__scan { transform: translateY(63%); }
.prog-c-gtm-ld[data-step="2"] .prog-c-gtm-ld__scan { transform: translateY(38%); }
.prog-c-gtm-ld[data-step="3"] .prog-c-gtm-ld__scan { transform: translateY(24%); }
.prog-c-gtm-ld__cluster { position: absolute; left: 66px; width: 134px; right: auto; top: 0; height: 100%; pointer-events: none; transform: translateY(0); transition: transform 680ms var(--gtm-step-ease) 100ms; z-index: 3; }
.prog-c-gtm-ld__cluster i { position: absolute; top: calc(75.5% + var(--row, 0) * 18px); left: calc(33px + var(--col, 0) * 18px); width: 14px; height: 14px; border-radius: 50%; background: #5a6660; border: 2px solid #fff; transition: background-color 400ms linear; }
.prog-c-gtm-ld__cluster i:nth-child(n+6) { --row: 1; }
.prog-c-gtm-ld__cluster i:nth-child(2) { --col: 0; } .prog-c-gtm-ld__cluster i:nth-child(3) { --col: 1; } .prog-c-gtm-ld__cluster i:nth-child(4) { --col: 2; } .prog-c-gtm-ld__cluster i:nth-child(5) { --col: 3; }
.prog-c-gtm-ld__cluster i:nth-child(6) { --col: .5; } .prog-c-gtm-ld__cluster i:nth-child(7) { --col: 1.5; } .prog-c-gtm-ld__cluster i:nth-child(8) { --col: 2.5; }
.prog-c-gtm-ld__halo { position: absolute; top: calc(75.5% - 14px); left: 14px; width: 106px; height: 60px; border-radius: 50%; background: radial-gradient(closest-side, rgba(43, 106, 80, .28), transparent); }
.prog-c-gtm-ld[data-step="1"] .prog-c-gtm-ld__cluster { transform: translateY(-10%); }
.prog-c-gtm-ld[data-step="2"] .prog-c-gtm-ld__cluster { transform: translateY(-35%); }
.prog-c-gtm-ld[data-step="3"] .prog-c-gtm-ld__cluster { transform: translateY(-49%); }
.prog-c-gtm-ld:is([data-step="2"], [data-step="3"]) .prog-c-gtm-ld__cluster i { background: var(--pl); }
.prog-c-gtm-ld:is([data-step="2"], [data-step="3"]) .prog-c-gtm-ld__cluster i[data-p="3"] { background: #fff; box-shadow: inset 0 0 0 2.5px var(--pl); }
.prog-c-gtm-ld__nav { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.prog-c-gtm-ld__nav button { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border: 1.5px solid #5a6861; background: #fff; color: #1d2b27; font: 600 14px var(--gft-font-display); cursor: pointer; text-align: left; }
.prog-c-gtm-ld__nav b { font: 700 13px var(--gft-font-mono); color: #1f533e; }
.prog-c-gtm-ld__nav button[aria-pressed="true"] { background: #072d2b; border-color: #072d2b; color: #e8f0ec; }
.prog-c-gtm-ld__nav button[aria-pressed="true"] b { color: #9fd8b8; }
.prog-c-gtm-ld__nav button:focus-visible { outline: 2px solid #2b6a50; outline-offset: 2px; }
.prog-c-gtm-ld__margin { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 12px 14px; background: #fff; border: 1px solid #d6d0c2; visibility: hidden; opacity: 0; transform: translateY(14px); transition: opacity 95ms linear, transform 95ms linear, visibility 0s linear 95ms; }
.prog-c-gtm-ld[data-step="3"] .prog-c-gtm-ld__margin { visibility: visible; opacity: 1; transform: none; transition: opacity 620ms var(--gtm-step-ease) 140ms, transform 620ms var(--gtm-step-ease) 140ms, visibility 0s linear 140ms; }
.prog-c-gtm-ld__margin > div { margin: 0; display: grid; gap: 2px; padding-left: 10px; border-left: 3px solid #7d5417; }
.prog-c-gtm-ld__margin b { font: 800 20px/1.1 var(--gft-font-display); letter-spacing: -.02em; color: #1d2b27; }
.prog-c-gtm-ld__margin span { font-size: 13.5px; line-height: 1.38; color: #1d2b27; }
.prog-c-gtm-ld__note { margin: 0; font: 500 13px/1.45 var(--gft-font-mono); color: #2b3a35; }

/* ================= 5 · interlude: the cluster unties into three threads ================= */
.prog-c-gtm-il-sec { min-height: 900px; overflow: clip; view-timeline-name: --prog-c-gtm-il; view-timeline-axis: block; }
.prog-c-gtm-il { position: absolute; inset: 0; }
.prog-c-gtm-il__iris { position: absolute; inset: 0; }
.prog-c-gtm-il__svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.prog-c-gtm-il__strand { fill: none; stroke-width: 1.2; opacity: var(--o); }
.prog-c-gtm-il__strand--1, .prog-c-gtm-il__thread--1 { stroke: #6bb68f; }
.prog-c-gtm-il__strand--2, .prog-c-gtm-il__thread--2 { stroke: #c98a2b; }
.prog-c-gtm-il__strand--3, .prog-c-gtm-il__thread--3 { stroke: #8391b6; }
.prog-c-gtm-il__thread { fill: none; stroke-width: 3.5; }
.prog-c-gtm-il__ring { fill: none; stroke: rgba(232, 240, 236, .55); stroke-width: 2.5; }
.prog-c-gtm-il:has(.prog-c-gtm-il__fig--1:is(:hover, :focus-within)) .prog-c-gtm-il__thread--1,
.prog-c-gtm-il:has(.prog-c-gtm-il__fig--2:is(:hover, :focus-within)) .prog-c-gtm-il__thread--2,
.prog-c-gtm-il:has(.prog-c-gtm-il__fig--3:is(:hover, :focus-within)) .prog-c-gtm-il__thread--3 { stroke-width: 7; }
.prog-c-gtm-il__riders { position: absolute; inset: 0; pointer-events: none; }
.prog-c-gtm-il__rider { position: absolute; top: 0; height: 100%; width: 0; overflow-anchor: none; transform: translateY(0); }
.prog-c-gtm-il__rider--1 { left: 62%; } .prog-c-gtm-il__rider--2 { left: 70%; } .prog-c-gtm-il__rider--3 { left: 78%; }
.prog-c-gtm-il__rider i { position: absolute; left: -10px; top: calc(43.3% - var(--k) * 26px); width: 20px; height: 20px; border-radius: 50%; background: var(--pc); box-shadow: 0 0 0 4px var(--gtm-night), 0 0 18px var(--pc); }
.prog-c-gtm-il__rider--3 i { background: var(--gtm-night); box-shadow: inset 0 0 0 3px var(--pc), 0 0 0 4px var(--gtm-night); }
.prog-c-gtm-il__in { position: relative; padding-top: 64px; }
.prog-c-gtm-il__hd { max-width: 920px; }
.prog-c-gtm-il__hd .prog-c-gtm-hd__h { font-size: clamp(3rem, 6vw, 6rem); line-height: .98; letter-spacing: -.05em; max-width: 12ch; }
.prog-c-gtm-il__sub { margin: 18px 0 0; max-width: 30ch; font-size: clamp(1.25rem, 1.8vw, 1.6rem); line-height: 1.4; color: var(--gtm-on); }
.prog-c-gtm-il__figs { list-style: none; margin: 0; padding: 0; position: absolute; inset: 0; pointer-events: none; }
.prog-c-gtm-il__fig { --tx: 62%; position: absolute; left: max(28px, calc((100% - 1344px) / 2)); right: calc(100% - var(--tx)); display: grid; grid-template-columns: auto minmax(28px, 1fr); grid-template-areas: 'chip tie' 'cap tie'; align-items: center; column-gap: 0; pointer-events: auto; }
.prog-c-gtm-il__fig--1 { top: 54%; --tx: 62%; } .prog-c-gtm-il__fig--2 { top: 68%; --tx: 70%; } .prog-c-gtm-il__fig--3 { top: 82%; --tx: 78%; }
.prog-c-gtm-il__chip { grid-area: chip; display: grid; justify-items: start; gap: 2px; padding: 4px 18px 0 0; border: 0; background: transparent; color: var(--gtm-on); cursor: pointer; text-align: left; min-height: 44px; }
.prog-c-gtm-il__chip small { font: 500 13px var(--gft-font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--pt); }
.prog-c-gtm-il__chip b { font: 800 40px/1.05 var(--gft-font-display); letter-spacing: -.035em; white-space: nowrap; }
.prog-c-gtm-il__chip:focus-visible { outline: 2px solid var(--pc); outline-offset: 4px; }
.prog-c-gtm-il__cap { grid-area: cap; max-width: 34ch; padding: 4px 18px 0 0; font-size: 15px; line-height: 1.45; color: var(--gtm-on); }
.prog-c-gtm-il__tie { grid-area: tie; height: 2px; background: linear-gradient(90deg, rgba(232, 240, 236, .2), var(--pc)); transform-origin: 100% 50%; align-self: center; }
.prog-c-gtm-il__tie::after { content: ''; position: absolute; right: -6px; width: 12px; height: 12px; margin-top: -5px; border-radius: 50%; background: var(--pc); }
.prog-c-gtm-il__fig .prog-c-gtm-il__tie { position: relative; }

/* ================= 6 · the loop (pinned, night with an indigo layer in the ring) ================= */
.prog-c-gtm-lp-sec { view-timeline-name: --prog-c-gtm-lpsec; view-timeline-axis: block; }
.prog-c-gtm-lp__in { height: 100%; box-sizing: border-box; display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 18px; padding-block: 24px 20px; }
.prog-c-gtm-lp__body { display: grid; grid-template-columns: minmax(0, 40fr) minmax(0, 60fr); gap: 36px; min-height: 0; align-items: center; }
.prog-c-gtm-lp__left { display: grid; grid-template-rows: auto auto minmax(0, 1fr); gap: 16px; align-content: start; }
.prog-c-gtm-lp__bar { display: grid; gap: 10px; }
.prog-c-gtm-lp__count { margin: 0; font: 500 14px var(--gft-font-mono); letter-spacing: .06em; text-transform: uppercase; color: #cfe3d8; }
.prog-c-gtm-lp__count b { color: var(--gtm-on); }
.prog-c-gtm-lp__nav { display: flex; gap: 6px; flex-wrap: wrap; }
.prog-c-gtm-lp__nav button { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 12px; border: 1px solid rgba(232, 240, 236, .45); background: transparent; color: var(--gtm-on); font: 600 14px var(--gft-font-display); cursor: pointer; }
.prog-c-gtm-lp__nav b { font: 600 13px var(--gft-font-mono); }
.prog-c-gtm-lp__nav button[aria-pressed="true"] { background: var(--gtm-on); color: var(--gtm-night); }
.prog-c-gtm-lp__nav button:focus-visible { outline: 2px solid var(--gtm-sage); outline-offset: 2px; }
.prog-c-gtm-lp__ros { min-height: 118px; }
.prog-c-gtm-lp__v { margin: 0 0 6px; font: 800 52px/1 var(--gft-font-display); letter-spacing: -.045em; }
.prog-c-gtm-lp__rol { margin: 0; font-size: 16.5px; line-height: 1.5; max-width: 40ch; }
.prog-c-gtm-lp__ro--hint .prog-c-gtm-lp__rol { font-size: 18px; color: #c3cdeb; }
.prog-c-gtm-lp__tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 10px; }
.prog-c-gtm-lp__tags span { font: 600 20px var(--gft-font-mono); letter-spacing: .04em; padding: 6px 12px; border: 1px solid rgba(107, 182, 143, .7); color: #9fd8b8; }
.prog-c-gtm-lp__cards { align-self: end; }
.prog-c-gtm-lp__cards .prog-c-gtm-sc__card { background: rgba(10, 61, 58, .92); }
.prog-c-gtm-lp__fig { margin: 0; display: grid; place-items: center; min-height: 0; padding-block: 24px; }
.prog-c-gtm-lp__ringbox { position: relative; width: min(100%, calc(100svh - 360px), 440px); aspect-ratio: 1; }
.prog-c-gtm-lp__svg { width: 100%; height: 100%; overflow: visible; }
.prog-c-gtm-lp__ringg, .prog-c-gtm-lp__node, .prog-c-gtm-lp__knot, .prog-c-gtm-lp__pulse, .prog-c-gtm-lp__needle { transform-box: view-box; transform-origin: 300px 300px; }
.prog-c-gtm-lp__indigo { fill: #24356b; opacity: 0; transition: opacity 640ms var(--gtm-step-ease) 110ms; }
.prog-c-gtm-lp:is(:not([data-step]), [data-step="0"], [data-step="1"]) .prog-c-gtm-lp__indigo { opacity: .22; }
.prog-c-gtm-lp[data-step="2"] .prog-c-gtm-lp__indigo { opacity: .78; }
.prog-c-gtm-lp[data-step="3"] .prog-c-gtm-lp__indigo { opacity: .45; }
.prog-c-gtm-lp__inner-guide { fill: rgba(7, 45, 43, .72); stroke: rgba(232, 240, 236, .22); stroke-width: 1.5; stroke-dasharray: 4 5; }
.prog-c-gtm-lp__ring { fill: none; stroke: rgba(232, 240, 236, .28); stroke-width: 3; }
.prog-c-gtm-lp__arc { fill: none; stroke-width: 6; stroke-linecap: round; opacity: .12; transition: opacity 640ms var(--gtm-step-ease) 110ms; }
.prog-c-gtm-lp__arc--1 { stroke: #c98a2b; } .prog-c-gtm-lp__arc--2 { stroke: #8391b6; } .prog-c-gtm-lp__arc--3 { stroke: #8391b6; } .prog-c-gtm-lp__arc--4 { stroke: #6bb68f; }
.prog-c-gtm-lp:is([data-step="1"], [data-step="2"], [data-step="3"]) .prog-c-gtm-lp__arc--1,
.prog-c-gtm-lp:is([data-step="2"], [data-step="3"]) .prog-c-gtm-lp__arc--2,
.prog-c-gtm-lp[data-step="3"] :is(.prog-c-gtm-lp__arc--3, .prog-c-gtm-lp__arc--4) { opacity: 1; }
.prog-c-gtm-lp__needle { transform: rotate(0deg); transition: transform 640ms var(--gtm-step-ease) 110ms; }
.prog-c-gtm-lp[data-step="1"] .prog-c-gtm-lp__needle { transform: rotate(90deg); }
.prog-c-gtm-lp[data-step="2"] .prog-c-gtm-lp__needle { transform: rotate(180deg); }
.prog-c-gtm-lp[data-step="3"] .prog-c-gtm-lp__needle { transform: rotate(270deg); }
.prog-c-gtm-lp__needle line { stroke: var(--gtm-on); stroke-width: 3; stroke-linecap: round; }
.prog-c-gtm-lp__needle circle { fill: var(--gtm-sage); stroke: var(--gtm-night); stroke-width: 2; }
.prog-c-gtm-lp__node circle { transition: opacity 520ms var(--gtm-step-ease) 110ms; }
.prog-c-gtm-lp__dot { fill: #0a3d3a; stroke: rgba(232, 240, 236, .55); stroke-width: 3; }
.prog-c-gtm-lp__halo { fill: none; stroke: var(--gtm-sage); stroke-width: 2.5; opacity: 0; }
.prog-c-gtm-lp__node--1 .prog-c-gtm-lp__dot, .prog-c-gtm-lp:is([data-step="1"], [data-step="2"], [data-step="3"]) .prog-c-gtm-lp__node--2 .prog-c-gtm-lp__dot,
.prog-c-gtm-lp:is([data-step="2"], [data-step="3"]) .prog-c-gtm-lp__node--3 .prog-c-gtm-lp__dot, .prog-c-gtm-lp[data-step="3"] .prog-c-gtm-lp__node--4 .prog-c-gtm-lp__dot { fill: var(--gtm-on); stroke: var(--gtm-sage); }
.prog-c-gtm-lp:not([data-step]) .prog-c-gtm-lp__node--1 .prog-c-gtm-lp__halo, .prog-c-gtm-lp[data-step="0"] .prog-c-gtm-lp__node--1 .prog-c-gtm-lp__halo,
.prog-c-gtm-lp[data-step="1"] .prog-c-gtm-lp__node--2 .prog-c-gtm-lp__halo, .prog-c-gtm-lp[data-step="2"] .prog-c-gtm-lp__node--3 .prog-c-gtm-lp__halo, .prog-c-gtm-lp[data-step="3"] .prog-c-gtm-lp__node--4 .prog-c-gtm-lp__halo { opacity: 1; }
.prog-c-gtm-lp__knot circle { fill: var(--pc); stroke: var(--gtm-night); stroke-width: 4; transition: opacity 520ms var(--gtm-step-ease) 110ms; }
.prog-c-gtm-lp__knot[data-p="3"] circle { fill: var(--gtm-night); stroke: var(--pc); stroke-width: 4; }
.prog-c-gtm-lp:is(:not([data-step]), [data-step="0"]) .prog-c-gtm-lp__knot[data-p="2"] circle { opacity: .28; }
.prog-c-gtm-lp__pulse circle { fill: var(--pc); }
.prog-c-gtm-lp__pulse { opacity: 0; transition: opacity 400ms linear; }
.prog-c-gtm-lp__pulse--s0, .prog-c-gtm-lp:is([data-step="1"], [data-step="2"], [data-step="3"]) .prog-c-gtm-lp__pulse--s1,
.prog-c-gtm-lp:is([data-step="2"], [data-step="3"]) .prog-c-gtm-lp__pulse--s2, .prog-c-gtm-lp[data-step="3"] .prog-c-gtm-lp__pulse--s3 { opacity: 1; }
.prog-c-gtm-lp__nl { position: absolute; z-index: 3; font: 600 14.5px/1.2 var(--gft-font-display); white-space: nowrap; color: var(--gtm-on); background: #072d2b; border: 1.5px solid rgba(107, 182, 143, .65); border-radius: 999px; padding: 6px 14px; box-shadow: 0 4px 14px rgba(0, 0, 0, .42); transition: border-color 420ms var(--gtm-step-ease), background-color 420ms var(--gtm-step-ease); }
.prog-c-gtm-lp__nl b { font: 600 13px var(--gft-font-mono); color: #9fd8b8; margin-right: 5px; }
.prog-c-gtm-lp__nl--1 { left: 50%; bottom: calc(82.7% + 28px); top: auto; transform: translateX(-50%); }
.prog-c-gtm-lp__nl--2 { left: calc(82.7% + 26px); top: 50%; transform: translateY(-50%); }
.prog-c-gtm-lp__nl--3 { left: 50%; top: calc(82.7% + 28px); transform: translateX(-50%); }
.prog-c-gtm-lp__nl--4 { right: calc(82.7% + 26px); left: auto; top: 50%; transform: translateY(-50%); }
.prog-c-gtm-lp:is(:not([data-step]), [data-step="0"]) .prog-c-gtm-lp__nl--1,
.prog-c-gtm-lp[data-step="1"] .prog-c-gtm-lp__nl--2,
.prog-c-gtm-lp[data-step="2"] .prog-c-gtm-lp__nl--3,
.prog-c-gtm-lp[data-step="3"] .prog-c-gtm-lp__nl--4 { background: #0e4d4a; border-color: var(--gtm-on); }
.prog-c-gtm-lp__core { position: absolute; inset: 28%; border-radius: 50%; display: grid; place-items: center; text-align: center; pointer-events: none; z-index: 2; }
.prog-c-gtm-lp__cstep { grid-area: 1 / 1; display: grid; justify-items: center; align-content: center; gap: 2px; opacity: 0; visibility: hidden; transform: translateY(16px) scale(.92); transition: opacity 95ms linear, transform 95ms linear, visibility 0s linear 95ms; }
.prog-c-gtm-lp:is(:not([data-step]), [data-step="0"]) .prog-c-gtm-lp__cstep--0,
.prog-c-gtm-lp[data-step="1"] .prog-c-gtm-lp__cstep--1,
.prog-c-gtm-lp[data-step="2"] .prog-c-gtm-lp__cstep--2,
.prog-c-gtm-lp[data-step="3"] .prog-c-gtm-lp__cstep--3 { opacity: 1; visibility: visible; transform: none; transition: opacity 640ms var(--gtm-step-ease) 115ms, transform 640ms var(--gtm-step-ease) 115ms, visibility 0s linear 115ms; }
.prog-c-gtm-lp__ck { margin: 0 0 2px; font: 600 13px/1.2 var(--gft-font-mono); letter-spacing: .05em; text-transform: uppercase; color: #9fd8b8; }
.prog-c-gtm-lp__cv { margin: 0; font: 800 30px/1.02 var(--gft-font-display); letter-spacing: -.04em; white-space: nowrap; }
.prog-c-gtm-lp__cv--2 { margin-top: 4px; font-size: 24px; }
.prog-c-gtm-lp__cl { margin: 2px 0 0; font-size: 13px; line-height: 1.28; color: var(--gtm-on); max-width: 17ch; }

/* ================= 7 · fulfilment clocks (forest) ================= */
.prog-c-gtm-ck-sec { padding-block: 44px 48px; view-timeline-name: --prog-c-gtm-ck; view-timeline-axis: block; }
.prog-c-gtm-ck__dials { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; margin: 28px 0 0; padding: 0; border: 0; min-width: 0; }
.prog-c-gtm-ck__dials legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.prog-c-gtm-ck__dial { position: relative; min-width: 0; }
.prog-c-gtm-ck__dial--3 { z-index: 2; }
.prog-c-gtm-ck__pick { display: grid; justify-items: center; gap: 14px; cursor: pointer; }
.prog-c-gtm-ck__pick input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.prog-c-gtm-ck__svg { width: min(100%, 390px); height: auto; aspect-ratio: 1; transition: opacity 400ms var(--gtm-out); }
.prog-c-gtm-ck[data-armed="1"] .prog-c-gtm-ck__dial:not(.prog-c-gtm-ck__dial--1) .prog-c-gtm-ck__svg,
.prog-c-gtm-ck[data-armed="2"] .prog-c-gtm-ck__dial:not(.prog-c-gtm-ck__dial--2) .prog-c-gtm-ck__svg,
.prog-c-gtm-ck[data-armed="3"] .prog-c-gtm-ck__dial:not(.prog-c-gtm-ck__dial--3) .prog-c-gtm-ck__svg { opacity: .42; }
.prog-c-gtm-ck__face { fill: rgba(7, 45, 43, .55); stroke: rgba(232, 240, 236, .25); stroke-width: 2; }
.prog-c-gtm-ck__pick input:checked ~ .prog-c-gtm-ck__svg .prog-c-gtm-ck__face { stroke: var(--pc); stroke-width: 4; }
.prog-c-gtm-ck__pick input:focus-visible ~ .prog-c-gtm-ck__svg .prog-c-gtm-ck__face { stroke: var(--gtm-on); stroke-width: 6; }
.prog-c-gtm-ck__minor { stroke: rgba(232, 240, 236, .3); stroke-width: 1.5; }
.prog-c-gtm-ck__major { stroke: var(--gtm-on); stroke-width: 3; }
.prog-c-gtm-ck__m { font: 600 20px var(--gft-font-mono); fill: var(--gtm-on); }
.prog-c-gtm-ck__mark { fill: var(--gtm-ochre); stroke: var(--gtm-forest); stroke-width: 3; }
.prog-c-gtm-ck__ticks, .prog-c-gtm-ck__handin, .prog-c-gtm-ck__hand { transform-box: view-box; transform-origin: 200px 200px; }
.prog-c-gtm-ck__handin { transform: rotate(var(--a)); }
.prog-c-gtm-ck__hand line { stroke: var(--gtm-on); stroke-width: 5; stroke-linecap: round; }
.prog-c-gtm-ck__wedge { fill: var(--pc); opacity: .22; }
.prog-c-gtm-ck__hub { fill: var(--gtm-on); }
.prog-c-gtm-ck__knot { fill: var(--pc); stroke: var(--gtm-forest); stroke-width: 4; }
.prog-c-gtm-ck__knot[data-p="3"] { fill: var(--gtm-forest); stroke: var(--pc); stroke-width: 5; }
.prog-c-gtm-ck__tag { display: grid; justify-items: center; gap: 2px; text-align: center; }
.prog-c-gtm-ck__tag b { font-size: 20px; letter-spacing: -.015em; }
.prog-c-gtm-ck__tag small { font-size: 15px; color: var(--gtm-on); }
.prog-c-gtm-ck__band { display: grid; margin-top: 24px; padding-top: 18px; border-top: 1px solid rgba(232, 240, 236, .25); }
.prog-c-gtm-ck__ro { grid-area: 1 / 1; display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr) auto; gap: 32px; align-items: center; transition: opacity 320ms var(--gtm-out) 140ms, visibility 0s; }
.prog-c-gtm-ck__ro[data-off] { opacity: 0; visibility: hidden; transition: opacity 160ms linear, visibility 0s linear 160ms; }
.prog-c-gtm-ck__v { margin: 0; font: 800 32px/1.1 var(--gft-font-display); letter-spacing: -.025em; }
.prog-c-gtm-ck__hubs { font-size: 17px; line-height: 1.55; }
.prog-c-gtm-ck__ro .gft-text-link { color: var(--gtm-on); }
.prog-c-gtm-ck__foot { margin: 18px 0 0; font: 13px/1.5 var(--gft-font-mono); letter-spacing: .04em; color: var(--gtm-on); }

/* ================= 8 · closing: the launch-year ring & three-wave verdict ================= */
.prog-c-gtm-cl-sec { padding-block: 28px 0; min-height: 100svh; box-sizing: border-box; }
.prog-c-gtm-cl { display: grid; gap: 16px; --rb: min(100% - 700px, 500px, 100svh - 240px); }
.prog-c-gtm-cl__hd .prog-c-gtm-hd__h { font-size: clamp(1.75rem, 2.35vw, 2.2rem); max-width: 46ch; }
.prog-c-gtm-cl__body { display: grid; grid-template-columns: 320px minmax(0, 1fr) 330px; gap: 28px; align-items: start; }
.prog-c-gtm-cl__left { display: grid; gap: 14px; }
.prog-c-gtm-cl__doors { position: relative; list-style: none; margin: 0; padding: 0 0 0 4px; display: grid; gap: 2px; }
.prog-c-gtm-cl__doors::before { content: ''; position: absolute; left: 21px; top: 8px; bottom: 8px; width: 2px; background: rgba(232, 240, 236, .2); }
.prog-c-gtm-cl__doors a { position: relative; display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 44px; text-decoration: none; color: var(--gtm-on); transition: opacity 360ms var(--gtm-out); }
.prog-c-gtm-cl__dn { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; font: 600 13px var(--gft-font-mono); background: var(--gtm-night); border: 2px solid rgba(232, 240, 236, .45); }
.prog-c-gtm-cl__dt { display: grid; min-width: 0; }
.prog-c-gtm-cl__dt b { font: 650 15.5px/1.2 var(--gft-font-display); white-space: normal; overflow-wrap: anywhere; min-height: 2.4em; }
.prog-c-gtm-cl__dt small { font-size: 13px; line-height: 1.25; color: rgba(232, 240, 236, .9); }
.prog-c-gtm-cl__dw { display: flex; gap: 4px; }
.prog-c-gtm-cl__dw i { width: 9px; height: 9px; border-radius: 50%; background: var(--pc); }
.prog-c-gtm-cl__doors a:hover b, .prog-c-gtm-cl__doors a:focus-visible b { text-decoration: underline; text-underline-offset: 3px; }
.prog-c-gtm-cl__doors a:focus-visible { outline: 2px solid var(--gtm-sage); outline-offset: 2px; }
.prog-c-gtm-cl[data-pick="1"] .prog-c-gtm-cl__doors li:not([data-w~="1"]) a, .prog-c-gtm-cl[data-pick="2"] .prog-c-gtm-cl__doors li:not([data-w~="2"]) a, .prog-c-gtm-cl[data-pick="3"] .prog-c-gtm-cl__doors li:not([data-w~="3"]) a { opacity: .62; }
.prog-c-gtm-cl[data-pick="1"] .prog-c-gtm-cl__doors li[data-w~="1"] .prog-c-gtm-cl__dn, .prog-c-gtm-cl[data-pick="2"] .prog-c-gtm-cl__doors li[data-w~="2"] .prog-c-gtm-cl__dn, .prog-c-gtm-cl[data-pick="3"] .prog-c-gtm-cl__doors li[data-w~="3"] .prog-c-gtm-cl__dn { background: var(--gtm-on); color: var(--gtm-night); border-color: var(--gtm-on); }
.prog-c-gtm-cl__feat { display: grid; }
.prog-c-gtm-cl__card { grid-area: 1 / 1; box-sizing: border-box; width: 100%; min-height: 228px; height: auto; padding: 14px 18px; display: grid; grid-template-rows: auto auto 1fr auto; gap: 4px; background: var(--gtm-forest); border: 1px solid rgba(232, 240, 236, .25); border-top: 3px solid var(--gtm-ochre); transition: opacity 320ms var(--gtm-out) 140ms, visibility 0s; }
.prog-c-gtm-cl__card[data-off] { opacity: 0; visibility: hidden; transition: opacity 160ms linear, visibility 0s linear 160ms; }
.prog-c-gtm-cl__fk { margin: 0; font: 500 13px var(--gft-font-mono); letter-spacing: .06em; text-transform: uppercase; color: #b9dcc8; }
.prog-c-gtm-cl__card h3 { margin: 0; font-size: 20px; line-height: 1.15; }
.prog-c-gtm-cl__fs { margin: 0; font-size: 14.5px; line-height: 1.42; }
.prog-c-gtm-cl__card .gft-button { justify-self: stretch; min-height: 44px; font-size: 14px; padding: 6px 14px; gap: 12px; }
.prog-c-gtm-cl__ringwrap { margin: 0; display: grid; justify-items: center; gap: 10px; }
.prog-c-gtm-cl__ringbox { position: relative; width: min(100%, 490px, calc(100svh - 240px)); aspect-ratio: 1; }
.prog-c-gtm-cl__svg { width: 100%; height: 100%; overflow: visible; }
.prog-c-gtm-cl__rim, .prog-c-gtm-cl__knot, .prog-c-gtm-cl__hand, .prog-c-gtm-cl__handwrap { transform-box: view-box; transform-origin: 320px 320px; }
.prog-c-gtm-cl__face { fill: rgba(14, 77, 74, .35); stroke: rgba(232, 240, 236, .12); }
.prog-c-gtm-cl__rimline { fill: none; stroke: rgba(232, 240, 236, .35); stroke-width: 2; }
.prog-c-gtm-cl__win { fill: none; stroke: var(--pc); stroke-width: 16; stroke-linecap: butt; opacity: .35; transition: opacity 500ms var(--gtm-out); }
.prog-c-gtm-cl__win[data-p="3"] { stroke-dasharray: 10 6; }
.prog-c-gtm-cl[data-pick="1"] .prog-c-gtm-cl__win--1, .prog-c-gtm-cl[data-pick="2"] .prog-c-gtm-cl__win--2, .prog-c-gtm-cl[data-pick="3"] .prog-c-gtm-cl__win--3 { opacity: 1; }
.prog-c-gtm-cl__mo path { stroke: rgba(232, 240, 236, .7); stroke-width: 2; }
.prog-c-gtm-cl__mo text { font: 600 18px var(--gft-font-mono); fill: var(--gtm-on); }
.prog-c-gtm-cl__door circle { fill: var(--gtm-night); stroke: rgba(232, 240, 236, .5); stroke-width: 2; transition: opacity 400ms; }
.prog-c-gtm-cl__door text { font: 600 17px var(--gft-font-mono); fill: var(--gtm-on); }
.prog-c-gtm-cl[data-pick="1"] .prog-c-gtm-cl__door[data-w~="1"] circle, .prog-c-gtm-cl[data-pick="2"] .prog-c-gtm-cl__door[data-w~="2"] circle, .prog-c-gtm-cl[data-pick="3"] .prog-c-gtm-cl__door[data-w~="3"] circle { fill: #0e4d4a; stroke: var(--gtm-on); stroke-width: 3; }
.prog-c-gtm-cl__knot circle { fill: var(--pc); stroke: var(--gtm-night); stroke-width: 5; transition: opacity 400ms var(--gtm-out); }
.prog-c-gtm-cl__knot[data-p="3"] circle { fill: var(--gtm-night); stroke: var(--pc); stroke-width: 5; }
.prog-c-gtm-cl__knot[data-untied] circle { opacity: .22; }
.prog-c-gtm-cl__hand { transform: rotate(var(--a)); transition: transform 600ms var(--gtm-out); }
.prog-c-gtm-cl__hand line { stroke: var(--gtm-on); stroke-width: 4; stroke-linecap: round; }
.prog-c-gtm-cl__hand circle { fill: var(--gtm-on); }
.prog-c-gtm-cl__hub { fill: var(--gtm-on); }
.prog-c-gtm-cl__exit { fill: none; stroke: var(--gtm-ochre); stroke-width: 3; transition: opacity 500ms var(--gtm-out); }
.prog-c-gtm-cl:not([data-month="12"]) .prog-c-gtm-cl__exit, .prog-c-gtm-cl:not([data-month="12"]) .prog-c-gtm-cl__thread { opacity: .25; }
.prog-c-gtm-cl__centre { position: absolute; inset: 38%; display: grid; place-content: center; text-align: center; pointer-events: none; }
.prog-c-gtm-cl__cm { margin: 0; font: 500 13px var(--gft-font-mono); letter-spacing: .08em; text-transform: uppercase; color: #b9dcc8; }
.prog-c-gtm-cl__cv { margin: 0; display: flex; align-items: baseline; gap: 6px; }
.prog-c-gtm-cl__cv b { font: 800 50px/1 var(--gft-font-display); letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.prog-c-gtm-cl__cv span { font-size: 15px; }
.prog-c-gtm-cl__ctl { display: grid; gap: 14px; align-content: start; }
.prog-c-gtm-pills--stack { flex-direction: column; }
.prog-c-gtm-pills--stack .prog-c-gtm-pill > span { border-right: 0; border-bottom: 1px solid rgba(107, 182, 143, .35); grid-template-columns: auto 1fr; align-items: center; column-gap: 12px; min-height: 48px; }
.prog-c-gtm-pills--stack .prog-c-gtm-pill:last-child > span { border-bottom: 0; }
.prog-c-gtm-pills--stack small { justify-self: end; }
.prog-c-gtm-cl__mol { display: block; margin-bottom: 4px; font: 500 13px var(--gft-font-mono); letter-spacing: .06em; text-transform: uppercase; color: #b9dcc8; }
.prog-c-gtm-cl__morow { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.prog-c-gtm-cl__range { width: 100%; min-height: 44px; accent-color: var(--gtm-sage); }
.prog-c-gtm-cl__ro { margin: 0; padding: 10px 14px; border: 1px solid rgba(232, 240, 236, .3); font: 600 16.5px/1.4 var(--gft-font-display); }
.prog-c-gtm-cl__ro b { font-size: 22px; font-variant-numeric: tabular-nums; }
.prog-c-gtm-cl__recs { display: grid; }
.prog-c-gtm-cl__recs p { grid-area: 1 / 1; margin: 0; font-size: 16px; line-height: 1.5; transition: opacity 320ms var(--gtm-out) 140ms, visibility 0s; }
.prog-c-gtm-cl__recs p[data-off] { opacity: 0; visibility: hidden; transition: opacity 160ms linear, visibility 0s linear 160ms; }
.prog-c-gtm-cl__note { margin: 0; font-size: 13px; line-height: 1.48; color: rgba(232, 240, 236, .9); }
/* Verdict instrument & full-width Communications Calendar card */
.prog-c-gtm-cl__verdict { display: grid; gap: 20px; padding: 24px 26px; background: rgba(14, 77, 74, .34); border: 1px solid rgba(232, 240, 236, .24); border-top: 3px solid var(--gtm-sage); }
.prog-c-gtm-cl__vtop { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 24px; align-items: stretch; }
.prog-c-gtm-cl__vclauses { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.prog-c-gtm-cl__vclause { display: grid; align-content: space-between; gap: 6px; padding: 14px 16px; border: 1.5px solid rgba(232, 240, 236, .26); border-top: 4px solid var(--pc); background: rgba(7, 45, 43, .76); color: var(--gtm-on); text-align: left; cursor: pointer; transition: transform 320ms var(--gtm-out), background-color 320ms var(--gtm-out), border-color 320ms var(--gtm-out); }
.prog-c-gtm-cl__vclause[aria-pressed="true"] { background: #0e4d4a; border-color: var(--gtm-on); border-top-color: var(--pc); transform: translateY(-3px); }
.prog-c-gtm-cl__vclause:focus-visible { outline: 2px solid var(--gtm-sage); outline-offset: 2px; }
.prog-c-gtm-cl__vk { font: 600 13px/1.25 var(--gft-font-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--pt); }
.prog-c-gtm-cl__vp { font: italic 400 clamp(1.55rem, 2.1vw, 2.15rem)/1.08 var(--gft-font-serif); color: var(--gtm-on); letter-spacing: -.02em; }
.prog-c-gtm-cl__vclause small { font: 600 13px/1.2 var(--gft-font-mono); text-transform: uppercase; letter-spacing: .05em; color: rgba(232, 240, 236, .88); }
.prog-c-gtm-cl__vscrub { display: grid; grid-template-columns: 108px minmax(0, 1fr); gap: 16px; align-items: center; padding: 14px 18px; background: rgba(7, 45, 43, .8); border: 1px solid rgba(232, 240, 236, .22); }
.prog-c-gtm-cl__vdial svg { width: 108px; height: 108px; display: block; }
.prog-c-gtm-cl__vd-rim { fill: rgba(14, 77, 74, .45); stroke: rgba(232, 240, 236, .25); stroke-width: 2; }
.prog-c-gtm-cl__vd-arc { fill: none; stroke: var(--pc); stroke-width: 8; opacity: .35; transition: opacity 400ms var(--gtm-out); }
.prog-c-gtm-cl[data-pick="1"] .prog-c-gtm-cl__vd-arc--1, .prog-c-gtm-cl[data-pick="2"] .prog-c-gtm-cl__vd-arc--2, .prog-c-gtm-cl[data-pick="3"] .prog-c-gtm-cl__vd-arc--3 { opacity: 1; }
.prog-c-gtm-cl__vd-hand { transform-box: view-box; transform-origin: 60px 60px; transform: rotate(var(--a)); transition: transform 500ms var(--gtm-out); }
.prog-c-gtm-cl__vd-hand line { stroke: var(--gtm-on); stroke-width: 3; stroke-linecap: round; }
.prog-c-gtm-cl__vd-hand circle { fill: var(--gtm-sage); }
.prog-c-gtm-cl__vtrack { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: 6px; }
.prog-c-gtm-cl__vtrack span { display: flex; align-items: center; justify-content: space-between; gap: 4px; padding: 4px 8px; background: rgba(232, 240, 236, .06); border-top: 2px solid var(--pc); font: 600 13px/1.2 var(--gft-font-mono); color: var(--gtm-on); }
.prog-c-gtm-cl__vtrack i { width: 7px; height: 7px; border-radius: 50%; background: var(--pc); }
.prog-c-gtm-cl__vrank { display: grid; gap: 10px; }
.prog-c-gtm-cl__vrhead { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; font: 600 13px/1.3 var(--gft-font-mono); letter-spacing: .05em; text-transform: uppercase; color: #b9dcc8; }
.prog-c-gtm-cl__vrhead b { color: var(--gtm-on); }
.prog-c-gtm-cl__vrlist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.prog-c-gtm-cl__vrk { display: grid; align-content: start; gap: 5px; padding: 12px 14px; background: #072d2b; border: 1px solid rgba(232, 240, 236, .24); border-top: 3px solid var(--pc); transition: transform 360ms var(--gtm-out), background-color 360ms var(--gtm-out), border-color 360ms var(--gtm-out), box-shadow 360ms var(--gtm-out); }
.prog-c-gtm-cl__vrk[data-lit] { background: #0e4d4a; border-color: rgba(232, 240, 236, .75); border-top-color: var(--pc); box-shadow: 0 6px 18px rgba(0, 0, 0, .35); transform: translateY(-2px); }
.prog-c-gtm-cl__vrbadge { justify-self: start; padding: 2px 8px; background: var(--pt); color: #072d2b; font: 700 13px/1.2 var(--gft-font-mono); }
.prog-c-gtm-cl__vrname { font: 700 15px/1.2 var(--gft-font-display); color: var(--gtm-on); }
.prog-c-gtm-cl__vrch { font: 600 13px/1.3 var(--gft-font-mono); color: var(--pt); }
.prog-c-gtm-cl__vrwhy { font-size: 13.5px; line-height: 1.38; color: var(--gtm-on); }
.prog-c-gtm-cl__comm-card { position: relative; overflow: clip; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 24px; align-items: center; padding: 20px 24px; background: linear-gradient(90deg, #0e4d4a 0%, #0a3d3a 100%); border: 1.5px solid rgba(107, 182, 143, .65); border-left: 5px solid var(--gtm-ochre); color: var(--gtm-on); text-decoration: none; transition: transform 360ms var(--gtm-out), border-color 360ms var(--gtm-out); }
.prog-c-gtm-cl__comm-sheen { position: absolute; inset: 0; background: linear-gradient(105deg, transparent 30%, rgba(159, 216, 184, .18) 50%, transparent 70%); transform: translateX(-100%); transition: transform 680ms var(--gtm-out); pointer-events: none; }
.prog-c-gtm-cl__comm-card:is(:hover, :focus-visible) { transform: translateY(-3px); border-color: var(--gtm-on); outline: none; }
.prog-c-gtm-cl__comm-card:is(:hover, :focus-visible) .prog-c-gtm-cl__comm-sheen { transform: translateX(100%); }
.prog-c-gtm-cl__comm-copy h3 { margin: 4px 0 6px; font-size: 24px; line-height: 1.12; letter-spacing: -.02em; }
.prog-c-gtm-cl__comm-copy p:last-child { margin: 0; font-size: 15px; line-height: 1.48; max-width: 64ch; }
.prog-c-gtm-cl__comm-right { display: grid; gap: 12px; justify-items: end; }
.prog-c-gtm-cl__comm-tape { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 3px; width: 100%; }
.prog-c-gtm-cl__comm-tape span { display: grid; place-items: center; height: 32px; font: 600 13px var(--gft-font-mono); background: rgba(7, 45, 43, .75); border: 1px solid rgba(232, 240, 236, .2); color: var(--gtm-on); transition: transform 320ms var(--gtm-out); }
.prog-c-gtm-cl__comm-tape span[data-hit] { background: var(--gtm-ochre); color: var(--gtm-night); border-color: #f3d39b; font-weight: 700; }
.prog-c-gtm-cl__comm-card:is(:hover, :focus-visible) .prog-c-gtm-cl__comm-tape span[data-hit] { transform: translateY(-3px); }
.prog-c-gtm-cl__comm-cta { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 18px; background: var(--gtm-on); color: var(--gtm-night); font: 700 15px var(--gft-font-display); }
.prog-c-gtm-cl__comm-cta i { font-style: normal; transition: transform 300ms var(--gtm-out); }
.prog-c-gtm-cl__comm-card:is(:hover, :focus-visible) .prog-c-gtm-cl__comm-cta i { transform: translate(3px, -3px); }
.prog-c-gtm-cl__limits { position: relative; margin-top: 2px; padding: 14px 0 22px; border-top: 1px solid rgba(232, 240, 236, .2); }
.prog-c-gtm-cl__chips { display: inline-flex; flex-wrap: wrap; gap: 4px; vertical-align: middle; max-width: 100%; }
.prog-c-gtm-cl__limits > div { margin: 0; font-size: 13px; line-height: 1.6; color: var(--gtm-on); max-width: calc(100% - 220px); }
.prog-c-gtm-cl__thread { position: absolute; right: 48px; top: -48px; bottom: 0; width: 3px; background: var(--gtm-ochre); overflow: clip; transition: opacity 500ms var(--gtm-out); }
.prog-c-gtm-cl__thread i { position: absolute; left: -2px; right: -2px; top: 0; height: 30%; background: linear-gradient(transparent, #fff, transparent); opacity: 0; }

/* ================= entrances: on the block's reading line, staged over its parts ================= */
/* every head: eyebrow, heading (its own verb) and lede from a partial pre-state */
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) :is(.prog-c-gtm-hd__eb, .prog-c-gtm-hd__lede, .prog-c-gtm-il__sub) { opacity: .14; transform: translateY(24px); }
:root[data-m-go] [data-gtm-in] :is(.prog-c-gtm-hd__eb, .prog-c-gtm-hd__lede, .prog-c-gtm-il__sub) { animation-name: prog-c-gtm-up; animation-duration: 740ms; animation-timing-function: var(--gtm-step-ease); animation-delay: 110ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
:root[data-m-go] [data-gtm-in] .prog-c-gtm-hd__eb { animation-delay: 20ms; }
@keyframes prog-c-gtm-up { from { opacity: .14; transform: translateY(24px); } }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-hd__h { opacity: .14; }
:root[data-m-go] [data-gtm-in] .prog-c-gtm-hd__h { animation-duration: 760ms; animation-timing-function: var(--gtm-step-ease); animation-delay: 70ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) [data-fx="track"] .prog-c-gtm-hd__h { transform: scaleX(1.12) translateY(26px); }
:root[data-m-go] [data-gtm-in] [data-fx="track"] .prog-c-gtm-hd__h { animation-name: prog-c-gtm-h-track; }
@keyframes prog-c-gtm-h-track { from { opacity: .14; transform: scaleX(1.12) translateY(26px); } }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) [data-fx="skew"] .prog-c-gtm-hd__h { transform: translateY(26px) skewY(3.5deg); }
:root[data-m-go] [data-gtm-in] [data-fx="skew"] .prog-c-gtm-hd__h { animation-name: prog-c-gtm-h-skew; }
@keyframes prog-c-gtm-h-skew { from { opacity: .14; transform: translateY(26px) skewY(3.5deg); } }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) [data-fx="wdth"] .prog-c-gtm-hd__h { transform: translateY(22px) scaleX(.78); }
:root[data-m-go] [data-gtm-in] [data-fx="wdth"] .prog-c-gtm-hd__h { animation-name: prog-c-gtm-h-wdth; }
@keyframes prog-c-gtm-h-wdth { from { opacity: .14; transform: translateY(22px) scaleX(.78); } }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) [data-fx="zoom"] .prog-c-gtm-hd__h { transform: translateY(26px) scale(.92); filter: blur(4px); }
:root[data-m-go] [data-gtm-in] [data-fx="zoom"] .prog-c-gtm-hd__h { animation-name: prog-c-gtm-h-zoom; animation-delay: 90ms; }
@keyframes prog-c-gtm-h-zoom { from { opacity: .14; transform: translateY(26px) scale(.92); filter: blur(4px); } }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) [data-fx="drop"] :is(.prog-c-gtm-hd__eb, .prog-c-gtm-hd__h) { transform: translateY(-20px); }
:root[data-m-go] [data-gtm-in] [data-fx="drop"] :is(.prog-c-gtm-hd__eb, .prog-c-gtm-hd__h) { animation-name: prog-c-gtm-h-drop; animation-duration: 760ms; animation-delay: 50ms; }
@keyframes prog-c-gtm-h-drop { from { opacity: .14; transform: translateY(-20px); } }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) [data-fx="turn"] .prog-c-gtm-hd__h { transform: perspective(800px) rotateX(-44deg) translateY(20px); }
:root[data-m-go] [data-gtm-in] [data-fx="turn"] .prog-c-gtm-hd__h { animation-name: prog-c-gtm-h-turn; }
@keyframes prog-c-gtm-h-turn { from { opacity: .14; transform: perspective(800px) rotateX(-44deg) translateY(20px); } }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) [data-fx="swing"] .prog-c-gtm-hd__h { transform: perspective(900px) rotateY(30deg) translateY(20px); }
:root[data-m-go] [data-gtm-in] [data-fx="swing"] .prog-c-gtm-hd__h { animation-name: prog-c-gtm-h-swing; }
@keyframes prog-c-gtm-h-swing { from { opacity: .14; transform: perspective(900px) rotateY(30deg) translateY(20px); } }

/* 2 · beat-up: rows beat up into the fell, knots tie, rank rows enter */
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-kb__row { opacity: .12; transform: translateY(34px) scaleY(.88); }
:root[data-m-go] [data-gtm-in] .prog-c-gtm-kb__row { animation-name: prog-c-gtm-beat; animation-duration: 720ms; animation-timing-function: var(--gtm-step-ease); animation-delay: calc(60ms + var(--r) * 55ms); animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
@keyframes prog-c-gtm-beat { from { opacity: .12; transform: translateY(34px) scaleY(.88); } }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-kb__glyph { transform: scale(.2); }
:root[data-m-go] [data-gtm-in] .prog-c-gtm-kb__glyph { animation-name: prog-c-gtm-tie; animation-duration: 460ms; animation-timing-function: cubic-bezier(.34, 1.56, .64, 1); animation-delay: calc(220ms + var(--k) * 35ms); animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
@keyframes prog-c-gtm-tie { from { transform: scale(.2); } }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-kb__rkin { opacity: .12; transform: translateX(48px); }
:root[data-m-go] [data-gtm-in] .prog-c-gtm-kb__rkin { animation-name: prog-c-gtm-from-right; animation-duration: 720ms; animation-timing-function: var(--gtm-step-ease); animation-delay: calc(110ms + var(--r) * 45ms); animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
@keyframes prog-c-gtm-from-right { from { opacity: .12; transform: translateX(48px); } }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) :is(.prog-c-gtm-kb__ro, .prog-c-gtm-kb__bar) { opacity: .14; transform: translateY(24px); }
:root[data-m-go] [data-gtm-in] :is(.prog-c-gtm-kb__ro, .prog-c-gtm-kb__bar) { animation-name: prog-c-gtm-up14; animation-duration: 720ms; animation-timing-function: var(--gtm-step-ease); animation-delay: 90ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
@keyframes prog-c-gtm-up14 { from { opacity: .14; transform: translateY(24px); } }

/* 3 · pick: the remnant draws from the selvedge, the weft is inserted from the left, the figures reveal */
:root[data-m-go] .prog-c-gtm-wf__loom[data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-wf__remnant { clip-path: inset(0 100% 0 0); }
:root[data-m-go] .prog-c-gtm-wf__loom[data-gtm-in] .prog-c-gtm-wf__remnant { animation-name: prog-c-gtm-wipe; animation-duration: 720ms; animation-timing-function: var(--gtm-step-ease); animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
@keyframes prog-c-gtm-wipe { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
:root[data-m-go] .prog-c-gtm-wf__loom[data-gtm-e]:not([data-gtm-in]) { opacity: .14; transform: translateY(24px); }
:root[data-m-go] .prog-c-gtm-wf__loom[data-gtm-in] { animation-name: prog-c-gtm-up14; animation-duration: 740ms; animation-timing-function: var(--gtm-step-ease); animation-delay: 50ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
:root[data-m-go] .prog-c-gtm-wf__loom[data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-wf__lanein { opacity: .14; transform: translateX(-36vw); }
:root[data-m-go] .prog-c-gtm-wf__loom[data-gtm-in] .prog-c-gtm-wf__lanein { animation-name: prog-c-gtm-insert; animation-duration: 760ms; animation-timing-function: var(--gtm-step-ease); animation-delay: 80ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
@keyframes prog-c-gtm-insert { from { opacity: .14; transform: translateX(-36vw); } }
:root[data-m-go] .prog-c-gtm-wf__layers[data-gtm-e]:not([data-gtm-in]) { opacity: .14; transform: translateY(28px); }
:root[data-m-go] .prog-c-gtm-wf__layers[data-gtm-in] { animation-name: prog-c-gtm-up; animation-duration: 760ms; animation-timing-function: var(--gtm-step-ease); animation-delay: 90ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-sc__chips { opacity: .14; transform: translateX(28px); }
:root[data-m-go] [data-gtm-in] .prog-c-gtm-sc__chips { animation-name: prog-c-gtm-chips; animation-duration: 700ms; animation-timing-function: var(--gtm-step-ease); animation-delay: 90ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
@keyframes prog-c-gtm-chips { from { opacity: .14; transform: translateX(28px); } }

/* 4 · shed: the bands open upward from the shed line, then the knot cluster drops onto the floor */
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-ld__band { opacity: .14; transform: translateY(38px) scaleY(.76); }
:root[data-m-go] [data-gtm-in] .prog-c-gtm-ld__band { animation-name: prog-c-gtm-shed; animation-duration: 720ms; animation-timing-function: var(--gtm-step-ease); animation-delay: 50ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
:root[data-m-go] [data-gtm-in] .prog-c-gtm-ld__band--gft { animation-delay: 110ms; }
:root[data-m-go] [data-gtm-in] .prog-c-gtm-ld__band--top { animation-delay: 170ms; }
@keyframes prog-c-gtm-shed { from { opacity: .14; transform: translateY(38px) scaleY(.76); } }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-ld__cluster i { opacity: .14; transform: translateY(24px); }
:root[data-m-go] [data-gtm-in] .prog-c-gtm-ld__cluster i { animation-name: prog-c-gtm-fall; animation-duration: 540ms; animation-timing-function: var(--gtm-step-ease); animation-delay: calc(180ms + var(--k) * 30ms); animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
@keyframes prog-c-gtm-fall { from { opacity: .14; transform: translateY(24px); } }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-ld__text { opacity: .14; transform: translateX(-32px); }
:root[data-m-go] [data-gtm-in] .prog-c-gtm-ld__text { animation-name: prog-c-gtm-from-left; animation-duration: 740ms; animation-timing-function: var(--gtm-step-ease); animation-delay: 80ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
@keyframes prog-c-gtm-from-left { from { opacity: .14; transform: translateX(-32px); } }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) :is(.prog-c-gtm-ld__side, .prog-c-gtm-ld__ro) { opacity: .14; transform: translateY(24px); }
:root[data-m-go] [data-gtm-in] :is(.prog-c-gtm-ld__side, .prog-c-gtm-ld__ro) { animation-name: prog-c-gtm-up14; animation-duration: 720ms; animation-timing-function: var(--gtm-step-ease); animation-delay: 130ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }

/* 5 · iris: night opens from the corridor point, then the figures hang on their threads */
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-il__iris { clip-path: circle(8% at 72% 0%); }
:root[data-m-go] [data-gtm-in] .prog-c-gtm-il__iris { animation-name: prog-c-gtm-iris; animation-duration: 840ms; animation-timing-function: var(--gtm-step-ease); animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
@keyframes prog-c-gtm-iris { from { clip-path: circle(8% at 72% 0%); } to { clip-path: circle(150% at 72% 0%); } }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) :is(.prog-c-gtm-il__chip, .prog-c-gtm-il__cap, .prog-c-gtm-il__tie) { opacity: .12; transform: translateY(32px); }
:root[data-m-go] [data-gtm-in] :is(.prog-c-gtm-il__chip, .prog-c-gtm-il__cap, .prog-c-gtm-il__tie) { animation-name: prog-c-gtm-hang; animation-duration: 760ms; animation-timing-function: var(--gtm-step-ease); animation-delay: 110ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
@keyframes prog-c-gtm-hang { from { opacity: .12; transform: translateY(32px); } }

/* 6 · unspool: the ring unspools clockwise from the Ledger node, then the nodes knot on */
:root[data-m-go] .prog-c-gtm-lp__body[data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-lp__ringg { opacity: .14; transform: rotate(-120deg) scale(.84); }
:root[data-m-go] .prog-c-gtm-lp__body[data-gtm-in] .prog-c-gtm-lp__ringg { animation-name: prog-c-gtm-unspool; animation-duration: 780ms; animation-timing-function: var(--gtm-step-ease); animation-delay: 50ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
@keyframes prog-c-gtm-unspool { from { opacity: .14; transform: rotate(-120deg) scale(.84); } }
:root[data-m-go] .prog-c-gtm-lp__body[data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-lp__node { opacity: .14; transform: scale(.4); }
:root[data-m-go] .prog-c-gtm-lp__body[data-gtm-in] .prog-c-gtm-lp__node { animation-name: prog-c-gtm-nodeon; animation-duration: 500ms; animation-timing-function: cubic-bezier(.34, 1.56, .64, 1); animation-delay: calc(180ms + var(--k) * 70ms); animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
@keyframes prog-c-gtm-nodeon { from { opacity: .14; transform: scale(.4); } }
:root[data-m-go] .prog-c-gtm-lp__body[data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-lp__left { opacity: .14; transform: translateY(28px); }
:root[data-m-go] .prog-c-gtm-lp__body[data-gtm-in] .prog-c-gtm-lp__left { animation-name: prog-c-gtm-up16; animation-duration: 740ms; animation-timing-function: var(--gtm-step-ease); animation-delay: 90ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
@keyframes prog-c-gtm-up16 { from { opacity: .14; transform: translateY(28px); } }

/* 7 · wind: dials fade in in sequence, every dial's ticks wind clockwise, then its hand sweeps in from 12 */
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-ck__win { opacity: .14; }
:root[data-m-go] [data-gtm-in] .prog-c-gtm-ck__win { animation-name: prog-c-gtm-slide; animation-duration: 680ms; animation-timing-function: var(--gtm-step-ease); animation-delay: calc(40ms + var(--k) * 70ms); animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
:root[data-m-go] [data-gtm-in] .prog-c-gtm-ck__dial--3 .prog-c-gtm-ck__win { animation-name: prog-c-gtm-fade3; }
@keyframes prog-c-gtm-slide { from { opacity: .14; } }
@keyframes prog-c-gtm-fade3 { from { opacity: .14; } }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-ck__ticks { opacity: .14; transform: rotate(-110deg); }
:root[data-m-go] [data-gtm-in] .prog-c-gtm-ck__ticks { animation-name: prog-c-gtm-wind; animation-duration: 720ms; animation-timing-function: var(--gtm-step-ease); animation-delay: calc(70ms + var(--k) * 80ms); animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
.prog-c-gtm-ck__dial--1 { --k: 0; } .prog-c-gtm-ck__dial--2 { --k: 1; } .prog-c-gtm-ck__dial--3 { --k: 2; }
@keyframes prog-c-gtm-wind { from { opacity: .14; transform: rotate(-110deg); } }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-ck__handin { transform: rotate(0deg); }
:root[data-m-go] [data-gtm-in] .prog-c-gtm-ck__handin { animation-name: prog-c-gtm-sweep; animation-duration: 600ms; animation-timing-function: var(--gtm-step-ease); animation-delay: calc(160ms + var(--k) * 80ms); animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
@keyframes prog-c-gtm-sweep { from { transform: rotate(0deg); } }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-ck__band { opacity: .14; transform: translateY(24px); }
:root[data-m-go] [data-gtm-in] .prog-c-gtm-ck__band { animation-name: prog-c-gtm-up14; animation-duration: 720ms; animation-timing-function: var(--gtm-step-ease); animation-delay: 140ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }

/* 8 · selvedge-draw: the rim draws round from M1, the knots tie on as it passes, the controls and verdict draw in */
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-cl__rim { opacity: .14; transform: rotate(-90deg) scale(.88); }
:root[data-m-go] [data-gtm-in] .prog-c-gtm-cl__rim { animation-name: prog-c-gtm-rim; animation-duration: 760ms; animation-timing-function: var(--gtm-step-ease); animation-delay: 50ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
@keyframes prog-c-gtm-rim { from { opacity: .14; transform: rotate(-90deg) scale(.88); } }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-cl__knot { transform: scale(.4); opacity: .14; }
:root[data-m-go] [data-gtm-in] .prog-c-gtm-cl__knot { animation-name: prog-c-gtm-knot; animation-duration: 460ms; animation-timing-function: cubic-bezier(.34, 1.56, .64, 1); animation-delay: calc(160ms + var(--k) * 45ms); animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
@keyframes prog-c-gtm-knot { from { transform: scale(.4); opacity: .14; } }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-cl__ctl { opacity: .14; transform: translateX(36px); }
:root[data-m-go] [data-gtm-in] .prog-c-gtm-cl__ctl { animation-name: prog-c-gtm-selv; animation-duration: 740ms; animation-timing-function: var(--gtm-step-ease); animation-delay: 90ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
@keyframes prog-c-gtm-selv { from { opacity: .14; transform: translateX(36px); } to { opacity: 1; transform: none; } }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) .prog-c-gtm-cl__doors li { opacity: .14; transform: translateX(-32px); }
:root[data-m-go] [data-gtm-in] .prog-c-gtm-cl__doors li { animation-name: prog-c-gtm-from-left; animation-duration: 680ms; animation-timing-function: var(--gtm-step-ease); animation-delay: calc(60ms + var(--k) * 35ms); animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
:root[data-m-go] [data-gtm-e]:not([data-gtm-in]) :is(.prog-c-gtm-cl__feat, .prog-c-gtm-cl__ex) { opacity: .14; transform: translateY(28px); }
:root[data-m-go] [data-gtm-in] :is(.prog-c-gtm-cl__feat, .prog-c-gtm-cl__ex) { animation-name: prog-c-gtm-up16; animation-duration: 740ms; animation-timing-function: var(--gtm-step-ease); animation-delay: 120ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }

/* 8b · verdict & communications calendar hand-over entrance on its own reading line */
:root[data-m-go] .prog-c-gtm-cl__verdict[data-gtm-e]:not([data-gtm-in]) :is(.prog-c-gtm-cl__vtop, .prog-c-gtm-cl__vclauses) { opacity: .12; transform: translateY(30px); }
:root[data-m-go] .prog-c-gtm-cl__verdict[data-gtm-in] :is(.prog-c-gtm-cl__vtop, .prog-c-gtm-cl__vclauses) { animation-name: prog-c-gtm-up16; animation-duration: 740ms; animation-timing-function: var(--gtm-step-ease); animation-delay: 60ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
:root[data-m-go] .prog-c-gtm-cl__verdict[data-gtm-e]:not([data-gtm-in]) :is(.prog-c-gtm-cl__vscrub, .prog-c-gtm-cl__vrank) { opacity: .12; transform: translateY(34px); }
:root[data-m-go] .prog-c-gtm-cl__verdict[data-gtm-in] :is(.prog-c-gtm-cl__vscrub, .prog-c-gtm-cl__vrank) { animation-name: prog-c-gtm-up16; animation-duration: 760ms; animation-timing-function: var(--gtm-step-ease); animation-delay: 110ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
:root[data-m-go] .prog-c-gtm-cl__comm-card[data-gtm-e]:not([data-gtm-in]) { opacity: .12; transform: translateX(-32px); }
:root[data-m-go] .prog-c-gtm-cl__comm-card[data-gtm-in] { animation-name: prog-c-gtm-from-left; animation-duration: 760ms; animation-timing-function: var(--gtm-step-ease); animation-delay: 80ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }

/* 1 · splash (above the fold, plays from first paint): warps draw, wefts are picked in, a wave front ties the knots */
:root[data-m-go] .prog-c-gtm-spl__warpin { animation-name: prog-c-gtm-wipe; animation-duration: 600ms; animation-timing-function: var(--gtm-io); animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
:root[data-m-go] :is(.prog-c-gtm-spl__warps, .prog-c-gtm-spl__fine) line { animation-name: prog-c-gtm-draw-y; animation-duration: 440ms; animation-timing-function: var(--gtm-out); animation-delay: calc(var(--k) * 30ms); animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
@keyframes prog-c-gtm-draw-y { from { transform: scaleY(0); } }
:root[data-m-go] .prog-c-gtm-spl__wefts line { animation-name: prog-c-gtm-draw-x; animation-duration: 420ms; animation-timing-function: var(--gtm-out); animation-delay: calc(200ms + var(--k) * 60ms); animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
@keyframes prog-c-gtm-draw-x { from { transform: scaleX(0); } }
:root[data-m-go] .prog-c-gtm-spl__core { animation-name: prog-c-gtm-tie; animation-duration: 240ms; animation-timing-function: cubic-bezier(.34, 1.56, .64, 1); animation-delay: calc(380ms + var(--k) * 55ms); animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
:root[data-m-go] .prog-c-gtm-spl__front--in { animation-name: prog-c-gtm-front-in; animation-duration: 560ms; animation-timing-function: var(--gtm-io); animation-delay: 340ms; animation-iteration-count: 1; animation-direction: normal; }
@keyframes prog-c-gtm-front-in { 0% { opacity: .9; transform: translateX(0); } 85% { opacity: .9; } 100% { opacity: 0; transform: translateX(820px); } }
:root[data-m-go] .prog-c-gtm-spl__lit b { animation-name: prog-c-gtm-blank; animation-duration: 420ms; animation-timing-function: var(--gtm-out); animation-delay: 480ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }
@keyframes prog-c-gtm-blank { from { opacity: 0; transform: translateY(.5em); } }
:root[data-m-go] .prog-c-gtm-spl__thread { animation-name: prog-c-gtm-draw-y; animation-duration: 600ms; animation-timing-function: var(--gtm-out); animation-delay: 300ms; animation-iteration-count: 1; animation-direction: normal; animation-fill-mode: backwards; }

/* ================= lives (only while their host is on screen: [data-m-on]) ================= */
:root[data-m-go] .prog-c-gtm-spl__svg[data-m-on] .prog-c-gtm-spl__front--live { animation-name: prog-c-gtm-front-live; animation-duration: 9s; animation-timing-function: linear; animation-delay: 2s; animation-iteration-count: infinite; }
@keyframes prog-c-gtm-front-live { 0% { opacity: 0; transform: translateX(0); } 2% { opacity: .8; } 23% { opacity: .8; } 25%, 100% { opacity: 0; transform: translateX(820px); } }
:root[data-m-go] .prog-c-gtm-spl__svg[data-m-on] .prog-c-gtm-spl__halo { animation-name: prog-c-gtm-halo; animation-duration: 9s; animation-timing-function: ease-out; animation-delay: calc(2s + var(--fx) * 2.1s); animation-iteration-count: infinite; }
.prog-c-gtm-spl__knot { --fx: 0; }
.prog-c-gtm-spl__halo { transform-box: fill-box; transform-origin: center; }
@keyframes prog-c-gtm-halo { 0% { opacity: 0; transform: scale(.6); } 3% { opacity: .85; transform: scale(1.1); } 11%, 100% { opacity: 0; transform: scale(1.7); } }
:root[data-m-go] .prog-c-gtm-kb[data-m-on] .prog-c-gtm-kb__pulse { animation-name: prog-c-gtm-ping; animation-duration: 3.2s; animation-timing-function: ease-out; animation-delay: calc(var(--k, 0) * 260ms); animation-iteration-count: infinite; }
.prog-c-gtm-kb__knot .prog-c-gtm-kb__pulse { --k: inherit; }
.prog-c-gtm-kb[data-tier="1"] .prog-c-gtm-kb__knot:not([data-p="1"]) .prog-c-gtm-kb__pulse, .prog-c-gtm-kb[data-tier="2"] .prog-c-gtm-kb__knot:not([data-p="2"]) .prog-c-gtm-kb__pulse, .prog-c-gtm-kb[data-tier="3"] .prog-c-gtm-kb__knot:not([data-p="3"]) .prog-c-gtm-kb__pulse { display: none; }
@keyframes prog-c-gtm-ping { 0% { opacity: .9; transform: scale(.6); } 60%, 100% { opacity: 0; transform: scale(1.8); } }
:root[data-m-go] .prog-c-gtm-kb__strand[data-m-on] i { animation-name: prog-c-gtm-flow; animation-duration: 4s; animation-timing-function: linear; animation-iteration-count: infinite; }
@keyframes prog-c-gtm-flow { from { transform: translateX(0); } to { transform: translateX(100%); } }
:root[data-m-go] .prog-c-gtm-wf__in[data-m-on] :is(.prog-c-gtm-wf__weft--0, .prog-c-gtm-wf__weft--1, .prog-c-gtm-wf__weft--2, .prog-c-gtm-wf__weft--3, .prog-c-gtm-wf__weft--4) .prog-c-gtm-wf__shuttle { animation-name: prog-c-gtm-shuttle; animation-duration: 6s; animation-timing-function: var(--gtm-io); animation-iteration-count: infinite; animation-direction: alternate; }
@keyframes prog-c-gtm-shuttle { from { transform: translateX(-100%); } to { transform: translateX(455%); } }
:root[data-m-go] .prog-c-gtm-wf__share[data-m-on] .prog-c-gtm-wf__sbar { animation-name: prog-c-gtm-breathe; animation-duration: 5s; animation-timing-function: ease-in-out; animation-iteration-count: infinite; animation-direction: alternate; }
@keyframes prog-c-gtm-breathe { from { opacity: .72; } to { opacity: 1; } }
:root[data-m-go] .prog-c-gtm-wf__btrack b[data-m-on] { animation-name: prog-c-gtm-meniscus; animation-duration: 2.4s; animation-timing-function: ease-in-out; animation-iteration-count: infinite; animation-direction: alternate; }
@keyframes prog-c-gtm-meniscus { from { transform: scaleX(.7); } to { transform: scaleX(1); } }
:root[data-m-go] .prog-c-gtm-wf__lamps[data-m-on] i { animation-name: prog-c-gtm-lamp; animation-duration: 2.8s; animation-timing-function: ease-in-out; animation-iteration-count: infinite; animation-direction: alternate; }
.prog-c-gtm-wf__lamps li:nth-child(2) i { animation-delay: .5s; } .prog-c-gtm-wf__lamps li:nth-child(3) i { animation-delay: 1s; }
@keyframes prog-c-gtm-lamp { from { opacity: .55; transform: scale(.9); } to { opacity: 1; transform: scale(1.1); } }
:root[data-m-go] .prog-c-gtm-wf__horizon[data-m-on] circle { animation-name: prog-c-gtm-orbit; animation-duration: 40s; animation-timing-function: linear; animation-iteration-count: infinite; }
.prog-c-gtm-wf__horizon circle:nth-child(2) { animation-direction: reverse; }
@keyframes prog-c-gtm-orbit { to { transform: rotate(360deg); } }
:root[data-m-go] .prog-c-gtm-ld__scan i[data-m-on] { animation-name: prog-c-gtm-scan; animation-duration: 3.6s; animation-timing-function: ease-in-out; animation-iteration-count: infinite; animation-direction: alternate; }
@keyframes prog-c-gtm-scan { from { transform: translateY(-5px); opacity: .5; } to { transform: translateY(5px); opacity: 1; } }
:root[data-m-go] .prog-c-gtm-ld[data-step="3"] .prog-c-gtm-ld__arrow[data-m-on] { animation-name: prog-c-gtm-arrow; animation-duration: 5s; animation-timing-function: ease-out; animation-iteration-count: infinite; }
@keyframes prog-c-gtm-arrow { 0%, 70%, 100% { transform: rotate(-45deg) translate(0, 0); } 80% { transform: rotate(-45deg) translate(3px, -3px); } }
:root[data-m-go] .prog-c-gtm-lp__pulses[data-m-on] .prog-c-gtm-lp__pulse circle { animation-name: prog-c-gtm-pulse-run; animation-duration: 2.6s; animation-timing-function: var(--gtm-io); animation-delay: calc(var(--k) * 380ms); animation-iteration-count: infinite; }
.prog-c-gtm-lp__pulse { transform: rotate(var(--a0)); }
.prog-c-gtm-lp__pulse circle { transform-box: view-box; transform-origin: 300px 300px; opacity: 0; }
@keyframes prog-c-gtm-pulse-run { 0% { opacity: 0; transform: rotate(0deg); } 12% { opacity: 1; } 80% { opacity: 1; } 100% { opacity: 0; transform: rotate(calc(var(--a1) - var(--a0))); } }
.prog-c-gtm-lp__pulse circle { --a0: inherit; --a1: inherit; }
:root[data-m-go] .prog-c-gtm-ck__svg[data-m-on] .prog-c-gtm-ck__hand--1 { animation-name: prog-c-gtm-turn; animation-duration: 8s; animation-timing-function: linear; animation-iteration-count: infinite; }
:root[data-m-go] .prog-c-gtm-ck__svg[data-m-on] .prog-c-gtm-ck__hand--2 { animation-name: prog-c-gtm-turn; animation-duration: 24s; animation-timing-function: steps(12, end); animation-iteration-count: infinite; }
:root[data-m-go] .prog-c-gtm-ck__svg[data-m-on] .prog-c-gtm-ck__hand--3 { animation-name: prog-c-gtm-turn; animation-duration: 60s; animation-timing-function: linear; animation-iteration-count: infinite; }
@keyframes prog-c-gtm-turn { to { transform: rotate(360deg); } }
:root[data-m-go] .prog-c-gtm-cl[data-month="12"] .prog-c-gtm-cl__thread[data-m-on] i { animation-name: prog-c-gtm-exit; animation-duration: 3s; animation-timing-function: var(--gtm-io); animation-iteration-count: infinite; }
@keyframes prog-c-gtm-exit { 0% { opacity: 0; transform: translateY(-40%); } 20% { opacity: 1; } 100% { opacity: .2; transform: translateY(340%); } }

/* ================= hand-overs carried by the motif (scroll-driven, transform and opacity only) ================= */
@supports (animation-timeline: view()) {
  /* splash → board: the cloth lays flat toward the board below */
  :root[data-m-go] .prog-c-gtm-spl__cloth { animation-name: prog-c-gtm-lay; animation-duration: 1ms; animation-timing-function: linear; animation-fill-mode: both; animation-timeline: --gft-splash; animation-range-start: exit 0%; animation-range-end: exit 85%; }
  /* board → wefts: the Traditional weft is pulled out across the night → forest boundary */
  :root[data-m-go] .prog-c-gtm-kb__pull { animation-name: prog-c-gtm-pull; animation-duration: 1ms; animation-timing-function: linear; animation-fill-mode: both; animation-timeline: --prog-c-gtm-kb; animation-range-start: exit 0%; animation-range-end: exit 100%; }
  /* wefts → ladder: the wefts contract and the seven knots gather as a cluster that falls to the stage foot */
  :root[data-m-go] .prog-c-gtm-wf__lane { animation-name: prog-c-gtm-contract; animation-duration: 1ms; animation-timing-function: linear; animation-fill-mode: both; animation-timeline: --prog-c-gtm-wf4; animation-range-start: cover 44%; animation-range-end: cover 60%; }
  :root[data-m-go] .prog-c-gtm-wf__cluster { animation-name: prog-c-gtm-gather; animation-duration: 1ms; animation-timing-function: linear; animation-fill-mode: both; animation-timeline: --prog-c-gtm-wf4; animation-range-start: cover 46%; animation-range-end: cover 64%; }
  /* interlude: knots ride their wave's thread down; each figure is lit as its rider passes */
  :root[data-m-go] .prog-c-gtm-il__rider { animation-name: prog-c-gtm-ride; animation-duration: 1ms; animation-timing-function: linear; animation-fill-mode: both; animation-timeline: --prog-c-gtm-il; animation-range-start: cover 25%; animation-range-end: cover 75%; }
  :root[data-m-go] .prog-c-gtm-il__fig { animation-name: prog-c-gtm-litfig; animation-duration: 1ms; animation-timing-function: linear; animation-fill-mode: both; animation-timeline: --prog-c-gtm-il; }
  :root[data-m-go] .prog-c-gtm-il__fig--1 { animation-range-start: cover 25%; animation-range-end: cover 45%; }
  :root[data-m-go] .prog-c-gtm-il__fig--2 { animation-range-start: cover 39%; animation-range-end: cover 59%; }
  :root[data-m-go] .prog-c-gtm-il__fig--3 { animation-range-start: cover 53%; animation-range-end: cover 73%; }
  :root[data-m-go] .prog-c-gtm-il__fig:is(:hover, :focus-within) { animation-name: none; }
  /* clocks → closing: the year ring grows toward the centre while the other dials dock small at the edges */
  :root[data-m-go] .prog-c-gtm-ck__dial { animation-duration: 1ms; animation-timing-function: linear; animation-fill-mode: both; animation-timeline: --prog-c-gtm-ck; animation-range-start: exit 0%; animation-range-end: exit 90%; }
  :root[data-m-go] .prog-c-gtm-ck__dial--1 { animation-name: prog-c-gtm-dock-l; }
  :root[data-m-go] .prog-c-gtm-ck__dial--2 { animation-name: prog-c-gtm-dock-r; }
  :root[data-m-go] .prog-c-gtm-ck__dial--3 { animation-name: prog-c-gtm-grow; }
}
@keyframes prog-c-gtm-lay { from { transform: perspective(1500px) rotateX(38deg) scale(.92); } to { transform: perspective(1500px) rotateX(0deg) scale(1) translate(-4%, 16%); } }
@keyframes prog-c-gtm-pull { 0% { transform: translate(0, 0); opacity: 1; } 90% { opacity: 1; } 100% { transform: translate(8vw, var(--gtm-pull, 0px)); opacity: 0; } }
@keyframes prog-c-gtm-contract { from { transform: translateY(0); opacity: 1; } to { transform: translateY(6px); opacity: .78; } }
@keyframes prog-c-gtm-gather { from { opacity: 0; transform: translateY(-120px) scale(.6); } 40% { opacity: 1; } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes prog-c-gtm-ride { from { transform: translateY(0); } to { transform: translateY(43%); } }
@keyframes prog-c-gtm-litfig { 0% { opacity: .62; } 50% { opacity: 1; } 100% { opacity: .62; } }
@keyframes prog-c-gtm-dock-l { to { opacity: .38; } }
@keyframes prog-c-gtm-dock-r { to { opacity: .38; } }
@keyframes prog-c-gtm-grow { to { opacity: 1; } }

/* ================= tablet ================= */
@media (max-width: 1180px) {
  .prog-c-gtm-hd--row { grid-template-columns: 1fr; gap: 16px; }
  .prog-c-gtm-kb__body { grid-template-columns: 1fr; }
  .prog-c-gtm-wf__loom { grid-template-columns: 1fr; }
  .prog-c-gtm-wf__l--0, .prog-c-gtm-wf__l--1 { grid-template-columns: 360px minmax(0, 1fr); }
  .prog-c-gtm-wf__l--2 { grid-template-columns: minmax(0, 1fr) 360px; }
  .prog-c-gtm-wf__l--3, .prog-c-gtm-wf__l--4 { grid-template-columns: 360px minmax(0, 1fr); }
  .prog-c-gtm-wf__l .prog-c-gtm-ro { display: none; }
  .prog-c-gtm-cl__body { grid-template-columns: minmax(0, 1fr) 320px; }
  .prog-c-gtm-cl__left { grid-column: 1 / -1; grid-row: 2; grid-template-columns: 1fr 1fr; }
  .prog-c-gtm-cl__thread { display: none; }
  .prog-c-gtm-cl__vtop { grid-template-columns: 1fr; }
  .prog-c-gtm-cl__vclauses { grid-template-columns: 1fr; }
  .prog-c-gtm-cl__vrlist { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .prog-c-gtm-cl__comm-card { grid-template-columns: 1fr; }
  .prog-c-gtm-cl__comm-right { justify-items: start; }
}

@media (min-width: 761px) {
  .prog-c-gtm-ld__band--top { top: 1%; }
  .prog-c-gtm-ld__band--top .prog-c-gtm-ld__tag { top: 10px; bottom: auto; }
}
@media (min-width: 761px) and (max-width: 1280px) {
  .prog-c-gtm-ld__body { grid-template-columns: minmax(0, 38fr) minmax(0, 62fr); gap: 22px; }
}

/* ================= phone (and no script): pinned scenes become composed steps in reading order ================= */
@media (max-width: 760px) {
  .prog-c-gtm-hd--stage { grid-template-columns: 1fr; gap: 14px; }
  .prog-c-gtm-hd__h { font-size: clamp(1.75rem, 7.4vw, 2.2rem); }
  .prog-c-gtm-sc__chips { justify-content: flex-start; }
  .prog-c-gtm-sc.mw-steps--overlay > .mw-steps__visual { position: relative; height: auto; }
  .prog-c-gtm-sc.mw-steps--overlay > .mw-steps__track { display: none; }
  .prog-c-gtm-sc__stage { overflow: visible; }
  .prog-c-gtm-sc__layers { gap: 28px; }
  .prog-c-gtm-sc__layer,
  :root[data-m-go] .prog-c-gtm-sc__layer,
  :root[data-m-go] .prog-c-gtm-sc__layer > *,
  :root[data-m-go] .prog-c-gtm-sc__layer :is(.prog-c-gtm-sc__card, .prog-c-gtm-wf__fig, .prog-c-gtm-ro, .prog-c-gtm-ro__v, .prog-c-gtm-lp__v) { grid-area: auto; opacity: 1; visibility: visible; transform: none; clip-path: none; transition: none; }
}
:root:not([data-motion]) .prog-c-gtm-sc.mw-steps--overlay > .mw-steps__visual { position: relative; height: auto; }
:root:not([data-motion]) .prog-c-gtm-sc.mw-steps--overlay > .mw-steps__track { display: none; }
:root:not([data-motion]) .prog-c-gtm-sc__layer { grid-area: auto; opacity: 1; visibility: visible; transform: none; clip-path: none; }

@media (max-width: 760px) {
  /* splash: headline first, the cloth below it at full width with a gentler tilt */
  .gft-splash[data-splash="prog-c-go-to-market"] { min-height: calc(100svh - 76px); }
  .gft-splash[data-splash="prog-c-go-to-market"] .gft-splash__structure { inset: auto 0 112px 0; height: 40svh; }
  .gft-splash[data-splash="prog-c-go-to-market"] .gft-splash__structure::after { background: linear-gradient(180deg, #072d2b 0%, #072d2b00 22%); }
  .gft-splash[data-splash="prog-c-go-to-market"] .gft-splash__content { padding-top: 40px; padding-bottom: calc(40svh + 120px); }
  .gft-splash[data-splash="prog-c-go-to-market"] h1 { font-size: clamp(2.3rem, 10.6vw, 3.1rem); max-width: 12ch; }
  .gft-splash[data-splash="prog-c-go-to-market"] .gft-splash__lede { font-size: 17px; }
  .gft-splash[data-splash="prog-c-go-to-market"] .gft-splash__bottom { flex-wrap: wrap; gap: 2px 20px; }
  .gft-splash[data-splash="prog-c-go-to-market"] .gft-splash__caption { font-size: 13px; max-width: none; text-align: left; }
  .prog-c-gtm-spl-ctl .prog-c-gtm-pills { display: grid; grid-template-columns: 1fr 1fr; }
  .prog-c-gtm-spl-ctl .prog-c-gtm-pill > span { min-height: 50px; padding: 6px 12px; border-bottom: 1px solid rgba(107, 182, 143, .35); }
  .prog-c-gtm-spl__stage { left: 0; width: 100%; top: 0; height: 100%; }
  .prog-c-gtm-spl__cloth { transform: perspective(1100px) rotateX(24deg) scale(.96); }
  .prog-c-gtm-spl__labels, .prog-c-gtm-spl__key, .prog-c-gtm-spl__thread { display: none; }
  .prog-c-gtm-spl__ro { justify-content: flex-start; padding: 6px 0 0 20px; }

  /* knot board: the board scrolls sideways inside itself; row heads stay as a sticky column */
  .prog-c-gtm-kb-sec { padding-block: 48px 64px; }
  .prog-c-gtm-kb__bar { position: sticky; top: 0; z-index: 4; flex-wrap: wrap; gap: 8px; margin: 20px -20px 18px; padding: 6px 20px; background: var(--gtm-night); }
  .prog-c-gtm-kb__bar .prog-c-gtm-pills { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; }
  .prog-c-gtm-kb__bar .prog-c-gtm-pill > span { min-height: 46px; padding: 4px 6px; border-right: 1px solid rgba(107, 182, 143, .35); }
  .prog-c-gtm-kb__bar .prog-c-gtm-pill small { display: none; }
  .prog-c-gtm-kb__bar .prog-c-gtm-pill b { font-size: 14px; }
  .prog-c-gtm-kb__bar .prog-c-gtm-play { min-height: 44px; padding: 0 14px; font-size: 14px; }
  .prog-c-gtm-kb__boardwrap { overflow-x: auto; overscroll-behavior-x: contain; margin-inline: -20px; padding-inline: 20px; }
  .prog-c-gtm-kb__board { --rh: 96px; min-width: 560px; }
  .prog-c-gtm-kb__name { position: sticky; left: -20px; z-index: 3; background: var(--gtm-night); font-size: 15px; gap: 6px; flex-wrap: wrap; align-content: center; padding-right: 6px; }
  .prog-c-gtm-kb__cols span { font-size: 13px; letter-spacing: .02em; }
  .prog-c-gtm-kb__pull { display: none; }
  .prog-c-gtm-kb__rank { --rk: 62px; }
  .prog-c-gtm-kb__lit b { font-size: 40px; }

  /* wefts */
  .prog-c-gtm-wf__in { height: auto; display: block; padding-block: 48px 56px; }
  .prog-c-gtm-wf__in > * + * { margin-top: 20px; }
  .prog-c-gtm-wf__loom, .prog-c-gtm-wf__remnant, .prog-c-gtm-wf__lane, .prog-c-gtm-wf__cluster { display: none; }
  .prog-c-gtm-wf__l, .prog-c-gtm-wf__l--0, .prog-c-gtm-wf__l--1, .prog-c-gtm-wf__l--2, .prog-c-gtm-wf__l--3, .prog-c-gtm-wf__l--4 { grid-template-columns: 1fr; gap: 18px; padding-top: 24px; border-top: 1px solid rgba(232, 240, 236, .2); }
  .prog-c-gtm-wf__l .prog-c-gtm-ro { display: grid; width: 100%; }
  .prog-c-gtm-wf__l--2 .prog-c-gtm-sc__card { order: -1; }
  .prog-c-gtm-wf__l--2 .prog-c-gtm-ro { order: 2; }
  .prog-c-gtm-wf__swatch-grid { grid-template-columns: 1fr; }
  .prog-c-gtm-wf__bar:not([data-on]) .prog-c-gtm-wf__bval { opacity: 0; }
  .prog-c-gtm-wf__srow { grid-template-columns: 1fr 90px; }
  .prog-c-gtm-wf__srow .prog-c-gtm-wf__strack { grid-column: 1 / -1; grid-row: 2; }
  .prog-c-gtm-wf__hz { grid-template-columns: 1fr; }
  .prog-c-gtm-wf__gauge p { grid-template-columns: 1fr 60px; }
  .prog-c-gtm-wf__gauge p .prog-c-gtm-wf__gtrack { grid-column: 1 / -1; }
  .prog-c-gtm-wf__lamps { grid-template-columns: 1fr; }
  .prog-c-gtm-wf__months li { font-size: 13px; height: 40px; letter-spacing: -.04em; }
  .prog-c-gtm-wf__months { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .prog-c-gtm-ro__v { font-size: 42px; }

  /* ladder: the ladder on top, the steps beneath */
  .prog-c-gtm-ld__in { height: auto; display: block; padding-block: 48px 56px; }
  .prog-c-gtm-ld__body { grid-template-columns: 1fr; gap: 24px; margin-top: 20px; }
  .prog-c-gtm-ld__body .prog-c-gtm-ld__fig { order: -1; grid-template-columns: 1fr; }
  .prog-c-gtm-ld__lad { height: 700px; }
  .prog-c-gtm-ld__cam::before { left: 44px; width: 58px; }
  .prog-c-gtm-ld__ruler { width: 44px; padding: 10px 4px; }
  .prog-c-gtm-ld__axis { left: 3px; font-size: 12px; letter-spacing: 0; }
  .prog-c-gtm-ld__band, .prog-c-gtm-ld__band--gft { left: 108px; right: 8px; padding: 7px 10px; }
  .prog-c-gtm-ld__band--gft { height: 33%; }
  .prog-c-gtm-ld__band--top .prog-c-gtm-ld__bs, .prog-c-gtm-ld__band--floor .prog-c-gtm-ld__bs { display: none; }
  .prog-c-gtm-ld__proof { grid-template-columns: 1fr; gap: 2px; }
  .prog-c-gtm-ld__proof li { font-size: 12.5px; line-height: 1.24; }
  .prog-c-gtm-ld__cost { left: 108px; right: 8px; }
  .prog-c-gtm-ld__costl { white-space: normal; }
  .prog-c-gtm-ld__costt { display: none; }
  .prog-c-gtm-ld__corr { display: none; }
  .prog-c-gtm-ld__scan { left: 44px; width: 58px; }
  .prog-c-gtm-ld__mtag { display: none; }
  .prog-c-gtm-ld__cluster { left: 44px; width: 58px; right: auto; }
  .prog-c-gtm-ld__cluster i { left: calc(7px + var(--col, 0) * 11.5px); width: 10px; height: 10px; }
  .prog-c-gtm-ld__halo { left: 2px; width: 54px; }
  .prog-c-gtm-ld__ro { height: 272px; overflow: visible; grid-template-columns: 1fr; align-content: space-between; gap: 6px; padding: 12px 14px; }
  .prog-c-gtm-ld__rol { min-height: 5.4em; }
  .prog-c-gtm-ld__roc { min-height: 7.1em; }
  .prog-c-gtm-ld__rows { justify-content: flex-start; padding-left: 0; border-left: 0; border-top: 1px solid #d6d0c2; padding-top: 8px; }
  .prog-c-gtm-ld__ro-price { justify-self: start; }
  .prog-c-gtm-ld__margin { visibility: visible; opacity: 1; transform: none; grid-template-columns: 1fr; }
  .prog-c-gtm-ld__layers { gap: 18px; }

  /* interlude: fifteen strands, the figures stacked under the headline */
  .prog-c-gtm-il-sec { min-height: 0; }
  .prog-c-gtm-il { position: relative; inset: auto; padding-bottom: 64px; }
  .prog-c-gtm-il__strand--odd { display: none; }
  .prog-c-gtm-il__in { padding-top: 72px; }
  .prog-c-gtm-il__hd .prog-c-gtm-hd__h { font-size: 42px; }
  .prog-c-gtm-il__riders { display: none; }
  .prog-c-gtm-il__figs { position: relative; inset: auto; display: grid; gap: 22px; margin: 36px 20px 0; }
  .prog-c-gtm-il__fig { position: relative; left: auto; right: auto; top: auto; grid-template-columns: 4px minmax(0, 1fr); grid-template-areas: 'tie chip' 'tie cap'; column-gap: 14px; }
  .prog-c-gtm-il__fig .prog-c-gtm-il__tie { width: 4px; height: 100%; background: var(--pc); }
  .prog-c-gtm-il__tie::after { display: none; }
  .prog-c-gtm-il__chip b { font-size: 36px; }

  /* loop */
  .prog-c-gtm-lp__in { height: auto; display: block; padding-block: 48px 56px; }
  .prog-c-gtm-lp__body { grid-template-columns: 1fr; gap: 24px; margin-top: 20px; }
  .prog-c-gtm-lp__fig { order: -1; }
  .prog-c-gtm-lp__ringbox { width: min(100%, 300px); margin-block: 16px; }
  .prog-c-gtm-lp__nl { font-size: 13px; padding: 4px 10px; }
  .prog-c-gtm-lp__nl--2 { left: auto; right: -6px; top: 18%; transform: none; }
  .prog-c-gtm-lp__nl--4 { right: auto; left: -6px; top: 82%; transform: none; }
  .prog-c-gtm-lp__ros, .prog-c-gtm-lp__cards { display: grid; gap: 18px; }
  .prog-c-gtm-lp__v { font-size: 42px; }
  .prog-c-gtm-lp__cv { font-size: 22px; }
  .prog-c-gtm-lp__cv--2 { font-size: 18px; }
  .prog-c-gtm-lp__tags span { font-size: 16px; }

  /* clocks: one dial at a time in a snapping row */
  .prog-c-gtm-ck-sec { padding-block: 56px 64px; }
  .prog-c-gtm-ck__dials { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 16px; margin-inline: -20px; padding-inline: 20px; }
  .prog-c-gtm-ck__dial { flex: 0 0 78vw; scroll-snap-align: center; }
  .prog-c-gtm-ck__ro { grid-template-columns: 1fr; gap: 10px; }

  /* closing: ring on top, controls under it, doors as a vertical thread, verdict stacked */
  .prog-c-gtm-cl__body, .prog-c-gtm-cl__left { grid-template-columns: 1fr; }
  .prog-c-gtm-cl__ringwrap { order: -1; }
  .prog-c-gtm-cl__ringbox { width: min(88vw, 350px); min-width: 0; }
  .prog-c-gtm-cl__left { grid-row: auto; }
  .prog-c-gtm-cl__ex { font-size: 28px; }
  .prog-c-gtm-cl__card { height: auto; min-height: 240px; }
  .prog-c-gtm-cl__verdict { padding: 18px 14px; gap: 16px; }
  .prog-c-gtm-cl__vtop, .prog-c-gtm-cl__vclauses, .prog-c-gtm-cl__vscrub, .prog-c-gtm-cl__vrlist, .prog-c-gtm-cl__comm-card { grid-template-columns: 1fr; }
  .prog-c-gtm-cl__vscrub { gap: 14px; padding: 12px; }
  .prog-c-gtm-cl__vwarps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .prog-c-gtm-cl__comm-card { padding: 16px; gap: 16px; }
  .prog-c-gtm-cl__comm-tape { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .prog-c-gtm-cl__limits > div { max-width: none; }
  :root[data-m-go] :is(.prog-c-gtm-ck__dial, .prog-c-gtm-il__fig, .prog-c-gtm-il__rider, .prog-c-gtm-wf__lane, .prog-c-gtm-wf__cluster, .prog-c-gtm-kb__pull) { animation-name: none; }
}
@media (min-width: 761px) and (max-height: 820px) {
  .prog-c-gtm-hd__lede { display: none; }
  .prog-c-gtm-wf__lane { height: 76px; }
  .prog-c-gtm-ld__bs { font-size: 13.5px; }
}
@supports not (animation-timeline: view()) {
  .prog-c-gtm-lp__ringbox { transition: none; }
}
