/*
 * /tools/maturity/ only. One motif, the evidence diamond and its floor, carried through nine states.
 * Stability: pre-states only under :root[data-m-go]; a staged entrance starts once ([data-mat-on], set by film.ts
 * when the stage's top reaches 62 percent of the viewport); transform, opacity, clip-path and filter only; sticky
 * pins, never counter-translation; scroll-driven rules written as longhands; read-outs reserve their longest text.
 */
.mat-sec,.mat-sp{--mat-night:#072d2b;--mat-forest:#0e4d4a;--mat-deep:#05302d;--mat-paper:#f6f4ef;--mat-ink:#25302e;--mat-sage:#6bb68f;--mat-leaf:#2f6e52;--mat-ochre:#c98a2b;--mat-ochre-hi:#e8b866;--mat-ochre-ink:#8a5a12;--mat-text:#e9f1ec;--mat-mute:#c3d6cb;--mat-ease:cubic-bezier(.16,1,.3,1);--mat-swing:cubic-bezier(.65,0,.35,1)}
.mat-sec{position:relative;isolation:isolate;overflow-x:clip;overflow-anchor:none}
.mat-sp,.mat-sec *,.mat-sp *{overflow-anchor:none}
.mat-kick{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;font:600 13px/1.4 var(--gft-font-mono);letter-spacing:.11em;text-transform:uppercase;color:#9fd4b5;margin:0}
.mat-kick--ink{color:var(--mat-leaf)}
.mat-chip{display:inline-flex;align-items:center;padding:3px 9px;border:1px solid currentColor;border-radius:2px;font:600 13px/1.3 var(--gft-font-mono);letter-spacing:.08em;color:var(--mat-ochre-hi)}
.mat-lab{font:600 13px/1.4 var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mat-mute);margin:0}
.mat-sec h2{margin:0;font-weight:850;letter-spacing:-.045em;line-height:1.12}
.mat-sec h2 .m-w{padding-block:.14em;margin-block:-.14em;overflow:visible}
.mat-sec button,.mat-sec input,.mat-sec summary{font:inherit}
.mat-sec :focus-visible{outline:2px solid var(--mat-ochre-hi);outline-offset:3px}

/* ================= the diamond (every instance) ================= */
.mat-dia{--kc:var(--mat-sage);--floor-fill:#3e4a2c}
.mat-dia .mat-q[data-q="0"]{--m:var(--m0);--f:var(--f0);--s:var(--s0);--a:var(--a0)}
.mat-dia .mat-q[data-q="1"]{--m:var(--m1);--f:var(--f1);--s:var(--s1);--a:var(--a1);rotate:90deg}
.mat-dia .mat-q[data-q="2"]{--m:var(--m2);--f:var(--f2);--s:var(--s2);--a:var(--a2);rotate:180deg}
.mat-dia .mat-q[data-q="3"]{--m:var(--m3);--f:var(--f3);--s:var(--s3);--a:var(--a3);rotate:270deg}
.mat-dia .mat-q{transform-box:view-box;transform-origin:0 0;transition:scale .62s var(--mat-ease)}
.mat-l--mfill .mat-q,.mat-clip .mat-q,.mat-l--medge .mat-q{scale:var(--m)}
.mat-l--ffill .mat-q,.mat-l--fedge .mat-q{scale:var(--f)}
.mat-l--aedge .mat-q{scale:var(--a)}
.mat-ring{fill:none;stroke:#c9ddd1;stroke-opacity:.42;stroke-width:1.2;vector-effect:non-scaling-stroke;transform-box:view-box;transform-origin:0 0;transition:scale .6s var(--mat-ease),opacity .4s}
.mat-ring[data-ring="4"]{stroke-opacity:.72;stroke-width:1.6}
.mat-ax path{stroke:#c9ddd1;stroke-opacity:.5;stroke-width:1.2;vector-effect:non-scaling-stroke}
.mat-ax{transform-box:view-box;transform-origin:0 0}
.mat-l--mfill path{fill:var(--mat-sage);fill-opacity:.2}
.mat-hatch{fill:none;stroke:var(--mat-ochre);stroke-opacity:.75;stroke-width:1.1;vector-effect:non-scaling-stroke}
.mat-l--ffill path{fill:var(--floor-fill)}
.mat-l--fedge path{fill:none;stroke:var(--mat-ochre-hi);stroke-width:2.6;vector-effect:non-scaling-stroke}
.mat-l--medge path{fill:none;stroke:var(--mat-sage);stroke-width:2.6;vector-effect:non-scaling-stroke}
.mat-l--aedge path{fill:none;stroke:#9fb2f0;stroke-width:2;stroke-dasharray:6 5;vector-effect:non-scaling-stroke}
.mat-l--aedge[data-hidden="true"]{opacity:0}
.mat-k{transition:translate .6s var(--mat-ease)}
.mat-k__c{fill:var(--kc);stroke:var(--mat-night);stroke-width:1.2;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;transition:scale .3s}
.mat-k.is-zero .mat-k__c{fill:var(--mat-night);stroke:var(--mat-ochre-hi);stroke-width:2.2}
.mat-k.is-focus .mat-k__c{scale:1.7;filter:drop-shadow(0 0 5px #e8b866)}
.mat-weak{transition:translate .6s var(--mat-ease)}
.mat-weak[data-hidden]{opacity:0}
.mat-weak__c{fill:none;stroke:var(--mat-ochre-hi);stroke-width:2;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center}
.mat-pt{fill:var(--mat-ochre-hi);transform-box:fill-box;transform-origin:center}
.mat-dia[data-invalid] .mat-l,.mat-dia[data-invalid] .mat-knots,.mat-dia[data-invalid] .mat-weak{opacity:0}
:root[data-m-go] [data-m-live~=mat-pulse]{animation-play-state:var(--m-play);animation-name:mat-pulse;animation-duration:2.4s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:normal}
@keyframes mat-pulse{0%{transform:scale(.72);opacity:.95}70%{transform:scale(1.35);opacity:0}100%{transform:scale(1.35);opacity:0}}
.mat-sweep{fill:#6bb68f;fill-opacity:.12}
.mat-sweep-wrap{transform-box:view-box;transform-origin:0 0}
:root[data-m-go] [data-m-live~=mat-sweep]{animation-play-state:var(--m-play);animation-name:mat-spin;animation-duration:10s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal}
:root[data-m-go] [data-m-live~=mat-sweep6]{animation-play-state:var(--m-play);animation-name:mat-spin;animation-duration:6s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal}
@keyframes mat-spin{from{rotate:0deg}to{rotate:360deg}}
.mat-sweep-wrap--faint .mat-sweep{fill-opacity:.07}
:root:not([data-m-go]) .mat-sweep-wrap{opacity:0}
:root:not([data-m-go]) .mat-dia .mat-q,:root:not([data-m-go]) .mat-k,:root:not([data-m-go]) .mat-weak{transition:none}

/* ================= 1 · splash: the poured diamond ================= */
.mat-sp{--ring:min(64svh,42vw);--box:calc(var(--ring) / .9032)}
.mat-qs[hidden],.mat-ties li[hidden]{display:none}
@media(min-width:901px){.mat-sp.gft-splash{min-height:calc(100svh - 76px);display:flex;flex-direction:column;justify-content:space-between}}
.mat-sp .gft-splash__structure.mat-sp__structure{inset:0;height:auto;z-index:-1}
.mat-sp .mat-sp__structure::after{display:none}
.mat-sp__warp{position:absolute;inset:0;width:100%;height:100%}
.mat-sp__thread{fill:none;stroke:#6bb68f;stroke-opacity:.16;stroke-width:.8;vector-effect:non-scaling-stroke}
.mat-sp__thread.is-ochre{stroke:#c98a2b;stroke-opacity:.42;stroke-width:1.1}
.mat-sp__halo{position:absolute;left:62%;top:50%;width:min(110svh,70vw);aspect-ratio:1;translate:-50% -50%;background:radial-gradient(closest-side,#6bb68f30,#6bb68f00)}
.mat-sp__box{position:absolute;left:62%;top:48%;width:var(--box);height:var(--box);translate:-50% -50%;overflow-anchor:none}
.mat-sp__svg{display:block;width:100%;height:100%}
.mat-dia--poster .mat-l--medge path,.mat-dia--poster .mat-l--fedge path{stroke-width:3}
.mat-sp__rl rect{fill:#072d2bd9;stroke:#6bb68f55;stroke-width:1;vector-effect:non-scaling-stroke}
.mat-sp__rl text{font:600 13px var(--gft-font-mono);letter-spacing:.06em;fill:#d7e6dd}
.mat-sp__ax{font:700 13.6px var(--gft-font-mono);letter-spacing:.12em;fill:#e9f1ec;transition:fill .3s}
.mat-sp__ax.is-hot{fill:var(--mat-ochre-hi)}
.mat-sp__zero{font:800 30px var(--gft-font-display);fill:var(--mat-ochre-hi)}
.mat-sp[data-pick] .mat-sweep-wrap{animation-name:none;rotate:calc(var(--pk,0) * 90deg - 18deg);transition:rotate .5s var(--mat-ease)}
.mat-sp__scrim{position:absolute;inset:0 auto 0 0;width:46%;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#072d2bf5 0%,#072d2beb 72%,#072d2b00 100%)}
.mat-sp__hud{position:absolute;left:62%;top:48%;width:var(--box);height:var(--box);translate:-50% -50%;z-index:2;pointer-events:none}
.mat-sp__chip{pointer-events:auto;position:absolute;right:-2%;top:3%;display:grid;gap:2px;text-align:left;min-height:44px;padding:10px 14px;background:#072d2bf0;border:1px solid #6bb68f66;border-radius:2px;color:#e9f1ec;font:600 15px/1.35 var(--gft-font-mono);letter-spacing:.06em;cursor:pointer}
.mat-sp__chip-k{font-size:13px;color:var(--mat-mute);letter-spacing:.12em;text-transform:uppercase}
.mat-sp__chip b{color:var(--mat-ochre-hi);font-weight:700}
.mat-sp__read{position:absolute;right:-2%;bottom:6%;margin:0;display:grid;gap:2px;justify-items:end;padding:8px 12px;background:#072d2be6;font:600 14px/1.45 var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#e9f1ec}
.mat-sp__read span:first-child{color:var(--mat-mute)}
.mat-sp .mat-sp__content{z-index:1}
.mat-sp .mat-sp__content>*{max-width:min(40vw,580px)}
.mat-sp.gft-splash h1{font-size:clamp(3rem,min(5.1vw,7.8svh),5.6rem);max-width:min(42vw,620px);margin-top:18px;line-height:.98}
.mat-sp.gft-splash h1 .gft-serif{line-height:1.08}
@media(min-width:901px){.mat-sp.gft-splash h1 .gft-serif{font-size:.85em}}
.mat-sp__line{display:block}
.mat-sp__lede.gft-splash__lede{font-size:18px;line-height:1.6;color:#d7e6dd;margin-top:20px}
.mat-sp .gft-splash__actions{margin-top:22px}
.mat-sp__floors{margin:24px 0 0;padding:12px 14px;background:#072d2bd9;border:1px solid #6bb68f4d;border-left:3px solid var(--mat-ochre-hi);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.mat-sp__fitem{display:grid;gap:2px}
.mat-sp__fitem dt{font:600 12.5px/1.3 var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#c3d6cb}
.mat-sp__fitem dd{margin:0;display:flex;align-items:baseline;gap:6px;font:500 12.5px/1.3 var(--gft-font-mono);color:#d7e6dd}
.mat-sp__fitem dd b{font:800 22px/1 var(--gft-font-display);color:#fff}
.mat-sp__fitem[data-low="true"] dd b{color:var(--mat-ochre-hi)}
.mat-sp__fitem dd i{font-style:normal}
.mat-sp .gft-splash__content{padding-top:28px;padding-bottom:20px}
.mat-sp.gft-splash .mat-sp__bottom{position:relative;z-index:1;justify-content:flex-start;padding-block:14px;border-top:0;margin-left:max(48px,calc((100% - 1440px) / 2));width:auto}
.mat-sp__bottom .gft-splash__caption,.mat-sp .gft-splash__cue{font-size:13px}
/* the pour: axes and knots 0 to 280 ms, mean inflates 280 to 620 ms, floor drops and the point ignites 620 to 900 ms */
:root[data-m-go] .mat-sp:not([data-mat-on]) .mat-dia--poster .mat-k__c{opacity:.4;translate:0 -14px}
:root[data-m-go] .mat-sp:not([data-mat-on]) .mat-dia--poster :is(.mat-l--mfill,.mat-l--medge,.mat-l--hatch,.mat-l--ffill,.mat-l--fedge,.mat-pt){opacity:0}
:root[data-m-go] .mat-sp[data-mat-on] .mat-dia--poster .mat-ax{animation-name:mat-from0;animation-duration:300ms;animation-timing-function:var(--mat-ease);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-sp[data-mat-on] .mat-dia--poster .mat-ring{animation-name:mat-from0;animation-duration:420ms;animation-timing-function:var(--mat-ease);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-sp[data-mat-on] .mat-dia--poster .mat-ring[data-ring="3"]{animation-delay:40ms}:root[data-m-go] .mat-sp[data-mat-on] .mat-dia--poster .mat-ring[data-ring="4"]{animation-delay:80ms}
:root[data-m-go] .mat-sp[data-mat-on] .mat-dia--poster .mat-k__c{animation-name:mat-fall;animation-duration:420ms;animation-timing-function:cubic-bezier(.3,1.3,.5,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-sp[data-mat-on] .mat-dia--poster :is(.mat-l--mfill,.mat-l--medge){animation-name:mat-from0;animation-duration:360ms;animation-delay:280ms;animation-timing-function:var(--mat-ease);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-sp[data-mat-on] .mat-dia--poster :is(.mat-l--ffill,.mat-l--fedge){animation-name:mat-drop;animation-duration:300ms;animation-delay:620ms;animation-timing-function:var(--mat-ease);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-sp[data-mat-on] .mat-dia--poster .mat-l--hatch{animation-name:mat-fade;animation-duration:260ms;animation-delay:640ms;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-sp[data-mat-on] .mat-dia--poster .mat-pt,:root[data-m-go] .mat-sp[data-mat-on] .mat-sp__zero{animation-name:mat-ignite;animation-duration:260ms;animation-delay:700ms;animation-timing-function:cubic-bezier(.3,1.5,.5,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;transform-box:fill-box;transform-origin:center}
@keyframes mat-from0{from{scale:0;opacity:.3}}
@keyframes mat-fall{from{translate:0 -24px;opacity:.3}}
@keyframes mat-drop{from{scale:1.7;opacity:0}}
@keyframes mat-fade{from{opacity:0}}
@keyframes mat-ignite{from{scale:0;opacity:0}}
/* hand-over "shape descends": the poster compresses toward the bench while the splash leaves */
@keyframes mat-descend{to{transform:translateY(16%) scale(.9);opacity:.45}}
:root[data-m-go] .mat-sp__box{animation-name:mat-descend;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--gft-splash;animation-range-start:exit 0%;animation-range-end:exit 100%}

/* ================= 2 · bench ================= */
.mat-bench{background:linear-gradient(180deg,#072d2b 0%,#072d2b 50%,#0b4441 100%);color:var(--mat-text);padding:22px 0 132px;view-timeline-name:--mat-bench;view-timeline-axis:block}
.mat-bench__paper{position:absolute;inset:auto 0 0;height:132px;background:linear-gradient(to bottom right,#f6f4ef00 calc(50% - 1.5px),var(--mat-ochre) calc(50% - 1.5px) calc(50% + 1.5px),var(--gft-paper,#f6f4ef) calc(50% + 1.5px));transform-origin:50% 100%;scale:1 0;z-index:-1;pointer-events:none}
:root:not([data-m-go]) .mat-bench__paper{scale:1 1}
@keyframes mat-paper-rise{to{scale:1 1}}
:root[data-m-go] .mat-bench__paper{animation-name:mat-paper-rise;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--mat-bench;animation-range-start:exit 0%;animation-range-end:exit 45%}
.mat-bench__in{display:grid;grid-template-columns:minmax(0,1fr) 560px;align-items:start}
.mat-bench__stage{min-width:0;display:grid;grid-template-columns:minmax(0,1fr);align-content:start}
.mat-bench__fig{position:relative;margin:6px 0 0 auto;width:min(640px,100%);aspect-ratio:1}
.mat-bench__svg{display:block;width:100%;height:100%;overflow:hidden}
.mat-axlab{font:700 14px var(--gft-font-mono);letter-spacing:.12em;fill:#e9f1ec;transition:fill .3s}
.mat-bench__svg[data-hot="0"] [data-axlab="0"],.mat-bench__svg[data-hot="1"] [data-axlab="1"],.mat-bench__svg[data-hot="2"] [data-axlab="2"],.mat-bench__svg[data-hot="3"] [data-axlab="3"]{fill:var(--mat-ochre-hi)}
.mat-ringno{font:600 13px var(--gft-font-mono);fill:#c3d6cb}
.mat-ladder{position:absolute;left:0;top:2%;margin:0;padding:0;list-style:none;display:grid;gap:4px;width:200px}
.mat-ladder li{display:grid;grid-template-columns:12px 18px 1fr;gap:8px;align-items:center;font:500 15px/1.3 var(--gft-font-display);color:#c3d6cb}
.mat-ladder li span:nth-child(2){font:700 13px var(--gft-font-mono);color:var(--mat-ochre-hi)}
.mat-ladder i{width:12px;height:12px;border:2px solid #6bb68f;border-radius:50%}
.mat-ladder li[data-reached="true"]{color:#e9f1ec}.mat-ladder li[data-reached="true"] i{background:var(--mat-sage)}
.mat-score{position:absolute;left:0;bottom:0;display:grid;gap:2px}
.mat-score__n{margin:0;font:850 64px/1 var(--gft-font-display);letter-spacing:-.04em;color:#fff}
.mat-score__n output{display:inline-block}
.mat-score__n span{font-size:30px;color:#c3d6cb}
.mat-score__l{margin:0;font:600 17px/1.3 var(--gft-font-display);color:var(--mat-ochre-hi)}
.mat-bench__read{margin:10px 48px 0 auto;width:min(592px,100%);display:grid;gap:6px}
.mat-tally{margin:0;font:600 22px/1.35 var(--gft-font-display);letter-spacing:-.01em;color:#fff}
.mat-tally output{display:inline-block}
.mat-weakest{margin:0;font:400 15px/1.5 var(--gft-font-display);color:#d7e6dd}
.mat-weakest .mat-lab{display:inline;color:var(--mat-ochre-hi);margin-right:6px}
.mat-panel{position:relative;z-index:1;margin-left:-40px;background:#0e4d4a;border:1px solid #6bb68f80;box-shadow:0 40px 80px -30px #000c,0 0 0 8px #072d2b66;padding:20px 24px 16px;display:grid;gap:9px;align-content:start}
.mat-panel h2{font-size:clamp(24px,2vw,30px);letter-spacing:-.03em;line-height:1.1;color:#fff}
.mat-panel__intro{margin:0;font-size:15px;line-height:1.45;color:#d7e6dd}
.mat-presets,.mat-actions{display:flex;flex-wrap:wrap;gap:8px}
.mat-presets button,.mat-actions button,.mat-close__acts button,.mat-ro__ctl button,.mat-reg__lens button{min-height:44px;padding:8px 14px;border:1px solid #6bb68f99;border-radius:2px;background:#072d2b;color:#e9f1ec;font-size:14px;cursor:pointer;transition:background-color .2s}
.mat-presets button:hover,.mat-actions button:hover,.mat-close__acts button:hover,.mat-ro__ctl button:hover,.mat-reg__lens button:hover{background:#13605b}
.mat-sec button:disabled{opacity:.55;cursor:not-allowed}
.mat-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.mat-tabs button{display:grid;gap:0;text-align:left;min-height:52px;padding:6px 10px;border:1px solid #6bb68f55;border-radius:2px;background:#0a3c39;color:#e9f1ec;cursor:pointer}
.mat-tabs button[aria-selected="true"]{background:#072d2b;border-color:var(--mat-ochre-hi);box-shadow:inset 0 -3px 0 var(--mat-ochre-hi)}
.mat-tab__n{font-weight:700;font-size:15px}
.mat-tab__v{font:500 13px var(--gft-font-mono);color:#c3d6cb}.mat-tab__v b{color:var(--mat-ochre-hi)}.mat-tab__v i{font-style:normal}
.mat-qs{border:0;margin:0;padding:0;display:grid;gap:5px}
.mat-q-row{display:grid;gap:2px;padding:6px 10px;background:#0a3c39;border-left:2px solid #6bb68f55}
.mat-q-row:focus-within{border-left-color:var(--mat-ochre-hi);background:#072d2b}
.mat-q-row label{font-size:15px;line-height:1.35;color:#fff}
.mat-q-row__i{font:700 13px var(--gft-font-mono);color:var(--mat-ochre-hi);margin-right:8px}
.mat-q-row__ctl{display:grid;grid-template-columns:1fr 56px;gap:12px;align-items:center}
.mat-range{position:relative;display:grid;gap:0}
.mat-range input{width:100%;margin:0;min-height:26px;accent-color:var(--mat-sage);cursor:pointer}
.mat-range__a{font:500 13px/1.3 var(--gft-font-mono);letter-spacing:.03em;color:#c3d6cb}
.mat-num{width:56px;min-height:38px;padding:4px 6px;background:#072d2b;color:#fff;border:1px solid #6bb68f88;border-radius:2px;font:700 17px var(--gft-font-mono);text-align:center}
.mat-num[aria-invalid="true"]{border-color:#ff9a8a}
.mat-key summary{cursor:pointer;font:600 13px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#b4e0c8;min-height:28px}
.mat-key ol,.mat-key p{font-size:14px;color:#d7e6dd;margin:6px 0 0}
.mat-status{margin:0;font-size:13px;line-height:1.45;color:#c3d6cb;min-height:2.9em}
.mat-link input{width:100%;margin-top:4px;padding:6px;background:#072d2b;color:#fff;border:1px solid #6bb68f88;font:13px var(--gft-font-mono)}
.mat-error{padding:8px 10px;background:#4a1d17;color:#ffd9d2;font-size:14px}
/* entrance "comb": rings expand ring by ring (0 to 400 ms), slider rows comb in and knots slide out along their axes (300 to 900 ms) */
:root[data-m-go] .mat-bench [data-mat-stage]:not([data-mat-on]) .mat-dia .mat-ring{scale:.5;opacity:.3}
:root[data-m-go] .mat-bench [data-mat-stage]:not([data-mat-on]) .mat-q-row{opacity:.2;translate:40px 0}
:root[data-m-go] .mat-bench [data-mat-on] .mat-dia .mat-ring{animation-name:mat-ring-out;animation-duration:380ms;animation-timing-function:var(--mat-ease);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-bench [data-mat-on] .mat-dia .mat-ring[data-ring="2"]{animation-delay:70ms}:root[data-m-go] .mat-bench [data-mat-on] .mat-dia .mat-ring[data-ring="3"]{animation-delay:140ms}:root[data-m-go] .mat-bench [data-mat-on] .mat-dia .mat-ring[data-ring="4"]{animation-delay:210ms}
:root[data-m-go] .mat-bench [data-mat-on] .mat-dia .mat-k{animation-name:mat-from-centre;animation-duration:520ms;animation-delay:340ms;animation-timing-function:var(--mat-ease);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-bench [data-mat-on] .mat-dia :is(.mat-l--mfill,.mat-l--medge,.mat-l--ffill,.mat-l--fedge,.mat-l--hatch){animation-name:mat-from0;animation-duration:460ms;animation-delay:380ms;animation-timing-function:var(--mat-ease);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-bench [data-mat-on] .mat-q-row{animation-name:mat-comb;animation-duration:420ms;animation-timing-function:var(--mat-ease);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal;animation-delay:300ms}
:root[data-m-go] .mat-bench [data-mat-on] .mat-q-row:nth-child(3){animation-delay:340ms}:root[data-m-go] .mat-bench [data-mat-on] .mat-q-row:nth-child(4){animation-delay:380ms}:root[data-m-go] .mat-bench [data-mat-on] .mat-q-row:nth-child(5){animation-delay:420ms}:root[data-m-go] .mat-bench [data-mat-on] .mat-q-row:nth-child(6){animation-delay:460ms}
@keyframes mat-ring-out{from{scale:.3;opacity:0}}
@keyframes mat-from-centre{from{translate:0 0;opacity:.4}}
@keyframes mat-comb{from{translate:60px 0;opacity:.15}}
/* hand-over "axes laid flat": the four half-axes swing to horizontal and slide down-left while the paper rises */
@keyframes mat-flat0{to{rotate:90deg;translate:-60px 70px}}
@keyframes mat-flat1{to{rotate:0deg;translate:-160px 95px}}
@keyframes mat-flat2{to{rotate:-90deg;translate:-60px 120px}}
@keyframes mat-flat3{to{rotate:-180deg;translate:40px 145px}}
:root[data-m-go] .mat-bench .mat-ax{animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--mat-bench;animation-range-start:exit 0%;animation-range-end:exit 70%}
:root[data-m-go] .mat-bench .mat-ax[data-ax="0"]{animation-name:mat-flat0}:root[data-m-go] .mat-bench .mat-ax[data-ax="1"]{animation-name:mat-flat1}:root[data-m-go] .mat-bench .mat-ax[data-ax="2"]{animation-name:mat-flat2}:root[data-m-go] .mat-bench .mat-ax[data-ax="3"]{animation-name:mat-flat3}
.mat-bench .mat-ax path{stroke-opacity:.8;stroke-width:2}

/* ================= 3 · compare (paper) ================= */
.mat-cmp{background:var(--gft-paper);color:var(--mat-ink);padding:64px 0 72px;overflow:clip}
.mat-cmp__in{max-width:min(1480px,92vw)}
/* the split headline resolves inside 700 ms: short stagger, one colour, no word left half-faded */
:root[data-m-go] .mat-cmp h2[data-m=split][data-m-fx][data-m-in] .m-c{animation-delay:min(calc(var(--m-d,0ms) * .35),200ms);animation-duration:460ms}
.mat-cmp__head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);gap:40px;align-items:end;margin-bottom:24px}
.mat-cmp h2{font-size:clamp(34px,3.8vw,56px);max-width:16ch;margin-top:14px}
.mat-cmp__aside{background:#fff;border:1px solid #25302e26;border-top:4px solid var(--mat-ochre);box-shadow:0 24px 48px -20px #25302e2e;padding:20px 24px}
.mat-cmp__aside p{margin:0 0 14px;font-size:17px;line-height:1.55;color:#33403d}
.mat-seg{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.mat-seg legend{font:600 13px var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:#4c5a56;margin-bottom:6px}
.mat-seg label{position:relative;cursor:pointer}
.mat-seg input{position:absolute;opacity:0;inset:0;margin:0}
.mat-seg span{display:inline-flex;align-items:center;min-height:44px;padding:6px 14px;border:1px solid #25302e55;border-radius:2px;font-size:15px}
.mat-seg input:checked+span{background:var(--mat-ink);color:#fff;border-color:var(--mat-ink)}
.mat-seg input:focus-visible+span{outline:2px solid var(--mat-ochre);outline-offset:2px}
.mat-bars{margin:0;position:relative;overflow:clip;background:#fff;border:1px solid #25302e26;padding:20px 24px 24px;box-shadow:0 20px 44px -24px #25302e22}
.mat-bars__scale{display:grid;grid-template-columns:300px 1fr;margin-bottom:8px;align-items:center}
.mat-bars__scale>span:first-child{font:600 13px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#4c5a56}
.mat-bars__ticks{position:relative;height:20px}
.mat-bars__ticks i{position:absolute;left:calc(var(--n) * 25%);translate:-50% 0;font:600 13px var(--gft-font-mono);font-style:normal;color:#4c5a56}
.mat-bars__body{display:grid}
.mat-row{display:grid;grid-template-columns:300px 1fr;align-items:center;height:108px;border-top:1px solid #25302e26;outline-offset:-2px;cursor:default;padding-inline:4px}
.mat-row[data-on]{background:#25302e08}
.mat-row__head{display:grid;gap:4px}
.mat-row__name{font:800 22px/1.1 var(--gft-font-display);letter-spacing:-.02em}
.mat-row__nums{display:flex;gap:14px;font:500 14px var(--gft-font-mono);color:#4c5a56}
.mat-row__nums b{font:800 22px var(--gft-font-display);color:var(--mat-ink);margin-right:3px;display:inline-block}
.mat-row__nums span:nth-child(2) b{color:var(--mat-ochre-ink)}
.mat-row__swing{transform-origin:0 50%}
.mat-row__track{position:relative;height:46px;container-type:inline-size;background:#25302e0f;border:1px solid #25302e24;transform-origin:0 50%}
.mat-row__track>i{position:absolute;display:block}
.mat-row__fullband{inset:0;background:repeating-linear-gradient(-45deg,#25302e08 0 4px,transparent 4px 10px);pointer-events:none}
.mat-row__mean{inset:0;background:#3f8f6b;clip-path:inset(0 calc(100% - var(--m) * 25%) 0 0);transition:clip-path .6s var(--mat-ease)}
.mat-row__band{inset:0;overflow:hidden;clip-path:inset(0 calc(100% - var(--m) * 25%) 0 calc(var(--f) * 25%));transition:clip-path .6s var(--mat-ease)}
.mat-row__band::before{content:'';position:absolute;inset:0 -20px;background:repeating-linear-gradient(-45deg,#8a5a12 0 3px,#f6f4ef00 3px 7px)}
:root[data-m-go] .mat-row__band[data-m-on]::before{animation-name:mat-hatch;animation-duration:2.6s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal}
@keyframes mat-hatch{to{transform:translateX(9.9px)}}
.mat-row__floor{left:0;top:-10px;bottom:-10px;width:6px;background:var(--mat-ochre-ink);translate:calc(var(--f) * 25cqw - 3px) 0;transition:translate .6s var(--mat-ease)}
.mat-row__a{left:0;top:-7px;width:100%;height:4px;background:var(--gft-indigo);transform-origin:0 50%;scale:calc(var(--am) / 4) 1;opacity:0;transition:scale .6s var(--mat-ease),opacity .3s}
.mat-row__af{left:0;bottom:-12px;width:12px;height:12px;border:2px solid var(--gft-indigo);border-radius:50%;translate:calc(var(--af) * 25cqw - 6px) 0;opacity:0;transition:translate .6s var(--mat-ease),opacity .3s}
.mat-bars[data-has-a="true"]:not([data-view="b"]) :is(.mat-row__a,.mat-row__af){opacity:1}
.mat-bars[data-view="a"][data-has-a="true"] :is(.mat-row__mean,.mat-row__band,.mat-row__floor){opacity:.3}
.mat-row__lens{top:-30px;bottom:-30px;left:0;width:2px;background:var(--mat-ochre);translate:calc(var(--lens) * 25cqw - 1px) 0}
.mat-row__pill{position:absolute;right:10px;top:50%;translate:0 -50%;z-index:2;padding:4px 10px;background:#f6f4efeb;border:1px solid #25302e33;border-radius:2px;font:600 13px/1.2 var(--gft-font-mono);color:var(--mat-ink);pointer-events:none;transition:border-color .2s,background-color .2s}
.mat-row:is(:hover,:focus-within,[data-on]) .mat-row__pill{background:var(--mat-ink);color:#fff;border-color:var(--mat-ochre)}
:root[data-m-go] [data-m-live~=mat-lensb]{animation-play-state:var(--m-play);animation-name:mat-breathe;animation-duration:2.8s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes mat-breathe{from{opacity:1}to{opacity:.45}}
.mat-row[data-lens-floor="false"] .mat-row__name{color:#6a4510}
.mat-bars__foot{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) auto;gap:32px;align-items:start;margin-top:24px;padding-top:18px;border-top:2px solid var(--mat-ink)}
.mat-bars__read p{margin:0;font-size:17px;line-height:1.5;color:#33403d}
.mat-bars__read .mat-bars__rt{font:700 17px/1.4 var(--gft-font-mono);color:var(--mat-ink);margin-bottom:4px}
.mat-lens__top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.mat-lens label{font:600 13px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#4c5a56}
.mat-lens output{font:800 22px var(--gft-font-display)}
.mat-lens input{width:100%;min-height:32px;accent-color:var(--mat-ochre-ink);margin:2px 0}
.mat-lens__read{margin:0;font-size:15px;line-height:1.5;color:#33403d}
.mat-fold summary{cursor:pointer;font:600 13px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mat-leaf);min-height:44px;display:flex;align-items:center}
.mat-fold[open]{grid-column:1/-1}
.mat-table{overflow-x:auto}
.mat-table table{border-collapse:collapse;width:100%;font-size:15px}
.mat-table caption{text-align:left;font-size:13px;color:#4c5a56;padding-bottom:6px}
.mat-table th,.mat-table td{padding:8px 10px;border-bottom:1px solid #25302e26;text-align:left}
/* entrance "twill-shift": the tracks rotate in from the diamond pose (0 to 350 ms), then bars grow, ticks drop, bands hatch */
:root[data-m-go] .mat-cmp [data-mat-stage]:not([data-mat-on]) .mat-row__track{rotate:-28deg;translate:-90px -70px;scale:.62;opacity:.35}
:root[data-m-go] .mat-cmp [data-mat-stage]:not([data-mat-on]) .mat-row__pill{opacity:0}
:root[data-m-go] .mat-cmp [data-mat-on] .mat-row__track{animation-name:mat-twill;animation-duration:380ms;animation-delay:calc(var(--i) * 60ms);animation-timing-function:var(--mat-swing);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-cmp [data-mat-on] .mat-row__pill{animation-name:mat-fade;animation-duration:180ms;animation-delay:calc(380ms + var(--i) * 60ms);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-cmp [data-mat-on] .mat-row__mean{animation-name:mat-grow;animation-duration:480ms;animation-delay:calc(360ms + var(--i) * 40ms);animation-timing-function:var(--mat-ease);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-cmp [data-mat-on] .mat-row__floor{animation-name:mat-tick;animation-duration:300ms;animation-delay:calc(560ms + var(--i) * 40ms);animation-timing-function:cubic-bezier(.3,1.4,.5,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-cmp [data-mat-on] .mat-row__band{animation-name:mat-fade;animation-duration:260ms;animation-delay:calc(620ms + var(--i) * 30ms);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes mat-twill{from{rotate:-38deg;translate:-120px -90px;scale:.5;opacity:.3}}
@keyframes mat-grow{from{clip-path:inset(0 100% 0 0)}}
@keyframes mat-tick{from{opacity:0;scale:1 2.4}}
/* hand-over "bars stand up": each row's track rotates up about its left end as it leaves the top of the screen */
@keyframes mat-stand{0%{rotate:0deg;scale:1 1;translate:0 0}55%{rotate:0deg;scale:.16 1;translate:calc(var(--i) * 40px) 0}100%{rotate:-90deg;scale:.16 .9;translate:calc(var(--i) * 64px) 0;opacity:.6}}
:root[data-m-go] .mat-row__swing{animation-name:none;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range-start:cover 86%;animation-range-end:cover 100%}
@media(min-width:901px){:root[data-m-go] .mat-row__swing{animation-name:mat-stand}}

/* ================= 4 · method (paper, sticky, four steps) ================= */
.mat-mth{background:var(--gft-paper);color:var(--mat-ink);view-timeline-name:--mat-mth;view-timeline-axis:block}
.mat-mth__pin{position:sticky;top:0;height:100svh;overflow:clip}
.mat-mth__head{position:absolute;left:max(48px,calc((100vw - 1440px) / 2));top:24px;max-width:46vw;z-index:2}
.mat-mth h2{font-size:clamp(30px,2.9vw,42px);margin-top:8px;max-width:22ch}
.mat-mth__stage{position:absolute;inset:0}
.mat-mth__cam{position:absolute;left:0;top:234px;bottom:68px;width:62vw;display:flex;flex-direction:column;transform-origin:0 0;transition:translate .8s var(--mat-swing),scale .8s var(--mat-swing);z-index:1}
.mat-mth[data-step="2"] .mat-mth__cam{translate:0 -10px;scale:1.03}
.mat-mth[data-step="3"] .mat-mth__cam{translate:1vw -14px;scale:1.05}
.mat-mth__fx{position:absolute;left:max(48px,calc((100vw - 1440px) / 2));top:140px;margin:0;z-index:2;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 22px;min-height:72px}
.mat-mth__fk{font:800 clamp(28px,3.2vw,52px)/1.1 var(--gft-font-display);letter-spacing:-.035em}
.mat-mth__fv{display:inline-block;font:700 clamp(20px,2vw,32px)/1.2 var(--gft-font-mono);color:var(--mat-ochre-ink)}
.mat-mth[data-step="4"] .mat-mth__fv{font-size:clamp(26px,3vw,48px);color:#b0420f}
.mat-mth__svg{flex:1;min-height:0;width:100%;display:block;overflow:visible;background:var(--mat-paper)}
.mat-mth__sbar-bg{fill:#25302e12;stroke:#25302e33;stroke-width:1}
.mat-mth__sbar-rem{fill:url(#mat-mth-hatch);opacity:.55}
.mat-mth__sbar-ans{fill:#2f6e52;transform-box:fill-box;transform-origin:0 50%;scale:calc(var(--tot,21) / 80) 1;transition:scale .6s var(--mat-ease)}
.mat-mth__slab{font:700 14px var(--gft-font-mono);letter-spacing:.06em;fill:var(--mat-ink)}
.mat-mth__slab--r{fill:var(--mat-ochre-ink)}
.mat-mth__grid path{stroke:#25302e33;stroke-width:1;vector-effect:non-scaling-stroke}
.mat-mth__grid path.is-base{stroke:var(--mat-ink);stroke-width:2}
.mat-mth__grid text{font:600 15px var(--gft-font-mono);fill:#4c5a56}
.mat-col__bg{fill:#25302e06}
.mat-col__name{font:700 15px var(--gft-font-mono);letter-spacing:.1em;fill:var(--mat-ink)}
.mat-col__sum text{font:700 15px var(--gft-font-mono);letter-spacing:.06em;fill:var(--mat-ink)}
.mat-col__sum{transition:opacity .4s}
.mat-mth:not([data-step="1"]) .mat-col__sum{opacity:.35}
.mat-mth[data-step="4"] .mat-col__sum{opacity:0}
.mat-short{display:none}
.mat-kb__slot{fill:#25302e09;stroke:#25302e1a;stroke-width:1}
.mat-kb__bar{fill:#3f8f6b;transform-box:fill-box;transform-origin:50% 100%;scale:1 calc(var(--v) / 4);transition:scale .6s var(--mat-ease),opacity .4s}
.mat-kb__dot{transition:translate .6s var(--mat-ease),opacity .4s}
.mat-kb__dot circle{fill:#2f6e52;stroke:var(--mat-paper);stroke-width:2}
.mat-kb.is-zero .mat-kb__dot circle{fill:var(--mat-paper);stroke:var(--mat-ochre-ink);stroke-width:3}
.mat-kb__hit{fill:transparent;cursor:crosshair}
.mat-kb.is-hov .mat-kb__bar{fill:#2f6e52}
.mat-col__band{fill:url(#mat-mth-hatch);clip-path:inset(calc((4 - var(--m)) * 25%) 0 calc(var(--f) * 25%) 0);opacity:0;transition:clip-path .6s var(--mat-ease),opacity .5s}
.mat-mth__hl{stroke:var(--mat-ochre);stroke-width:3}
.mat-col__mean path{stroke:#2f6e52;stroke-width:3;stroke-dasharray:10 6}
.mat-col__floor path{stroke:var(--mat-ochre-ink);stroke-width:5}
.mat-col__mean,.mat-col__floor{opacity:0;transition:translate .6s var(--mat-ease),opacity .45s}
.mat-col__num text{font:850 46px var(--gft-font-display);fill:var(--mat-ochre-ink)}
.mat-col__num{opacity:0;translate:0 40px;transition:opacity .45s,translate .6s var(--mat-ease)}
.mat-col.is-low .mat-col__num text{fill:#b0420f}
.mat-mth__sys{translate:0 -400px;opacity:0;transition:translate .8s var(--mat-swing),opacity .4s}
.mat-mth__sys path{stroke:var(--mat-ink);stroke-width:6}
.mat-mth[data-step="1"] .mat-kb__bar{opacity:.38}
.mat-mth:not([data-step="1"]) .mat-kb:not(.is-zero) .mat-kb__dot{opacity:0}
.mat-mth:not([data-step="1"]) .mat-col__mean{opacity:1}
.mat-mth[data-step="3"] :is(.mat-col__floor,.mat-col__band),.mat-mth[data-step="4"] :is(.mat-col__floor,.mat-col__band){opacity:1}
.mat-mth[data-step="4"] .mat-mth__sys{translate:0 var(--sy);opacity:1}
.mat-mth[data-step="4"] .mat-kb.is-above{opacity:.35}
.mat-mth[data-step="4"] .mat-col__num{opacity:1;translate:0 0}
.mat-mth__scan rect{fill:var(--mat-ochre);opacity:.5}
:root[data-m-go] [data-m-live~=mat-scan]{animation-play-state:var(--m-play);animation-name:mat-scan;animation-duration:7s;animation-timing-function:var(--mat-swing);animation-iteration-count:infinite;animation-direction:alternate}
@keyframes mat-scan{from{translate:0 0}to{translate:846px 0}}
.mat-mth__mini{position:absolute;right:max(40px,calc((100vw - 1440px) / 2));top:24px;width:230px;height:230px;margin:0;z-index:1}
.mat-mth__mini svg{width:100%;height:100%;overflow:visible}
.mat-dia--mini{--floor-fill:#eadcc3;--kc:#2f6e52}
.mat-dia--mini .mat-ring,.mat-dia--mini .mat-ax path{stroke:#25302e}
.mat-dia--mini .mat-l--mfill path{fill:#3f8f6b}
.mat-dia--mini .mat-l--medge path{stroke:#2f6e52}
.mat-dia--mini .mat-l--fedge path{stroke:var(--mat-ochre-ink)}
.mat-dia--mini .mat-k__c{stroke:var(--mat-paper)}
.mat-dia--mini .mat-k.is-zero .mat-k__c{fill:var(--mat-paper);stroke:var(--mat-ochre-ink)}
.mat-dia--mini .mat-weak__c{stroke:var(--mat-ochre-ink)}
.mat-dia--mini .mat-pt{fill:var(--mat-ochre-ink)}
.mat-mini__lab text{font:700 15px var(--gft-font-mono);fill:var(--mat-ink)}
.mat-mth__mini .mat-l{transition:opacity .45s}
.mat-mth__mini[data-mini-step="1"] :is(.mat-l--mfill,.mat-l--medge,.mat-l--ffill,.mat-l--fedge){opacity:0}
.mat-mth__mini[data-mini-step="2"] :is(.mat-l--ffill,.mat-l--fedge){opacity:0}
.mat-mth__mini[data-mini-step="4"] .mat-l .mat-q{scale:var(--s)}
.mat-mth__mini[data-mini-step="4"] .mat-pt{scale:2.2}
.mat-mth__hover{position:absolute;right:max(40px,calc((100vw - 1440px) / 2));top:262px;width:230px;margin:0;font:500 13px/1.45 var(--gft-font-mono);color:#33403d;z-index:1}
.mat-rail{position:absolute;right:max(40px,calc((100vw - 1440px) / 2));bottom:22px;display:flex;align-items:center;gap:10px;z-index:3;background:var(--mat-paper);padding:4px 8px}
.mat-rail ol{display:flex;gap:4px;list-style:none;margin:0;padding:0}
.mat-rail a{display:grid;place-items:center;min-width:44px;min-height:44px;color:var(--mat-ink);text-decoration:none;font-size:20px}
.mat-rail ol a i{width:12px;height:12px;border-radius:50%;border:2px solid var(--mat-ink)}
.mat-rail ol a[aria-current] i{background:var(--mat-ochre-ink);border-color:var(--mat-ochre-ink)}
.mat-rail__n{font:700 15px var(--gft-font-mono);white-space:nowrap}
.mat-rail__bar{position:relative;width:120px;height:3px;background:#25302e26;overflow:hidden}
.mat-rail__bar i{position:absolute;inset:0;background:var(--mat-ochre-ink);transform-origin:0 50%;scale:1 1}
@keyframes mat-fill{from{scale:0 1}to{scale:1 1}}
:root[data-m-go] .mat-rail__bar i{animation-name:mat-fill;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--mat-mth;animation-range-start:contain 0%;animation-range-end:contain 100%}
.mat-mth__iris{position:absolute;left:3vw;bottom:13svh;width:240vmax;height:240vmax;border-radius:50%;background:var(--mat-night);translate:-50% 50%;scale:0;z-index:0;pointer-events:none}
@keyframes mat-iris-grow{from{scale:0}to{scale:.36}}
:root[data-m-go] .mat-mth__iris{animation-name:mat-iris-grow;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--mat-mth;animation-range-start:contain 99%;animation-range-end:exit 45%}
.mat-mth__steps{position:relative;z-index:2;margin:-100svh 0 0;padding:0;list-style:none;pointer-events:none}
/* desktop: the step list is only the scroll track (and the screen-reader copy of the four cards); the visible card
   is the pinned deck in the right column, so no card ever travels over the chart, the mini diamond or the header */
.mat-mth__steps li{position:relative;min-height:100svh}
.mat-mth__steps li:last-child{min-height:120svh}
.mat-mth__steps .mat-card{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.mat-card{pointer-events:auto;width:min(400px,29vw);background:#fff;border-top:4px solid var(--mat-ochre);box-shadow:0 30px 60px -28px #25302e66;padding:24px 26px}
.mat-mth__deck{position:absolute;right:max(40px,calc((100vw - 1440px) / 2));top:330px;width:min(400px,29vw);display:grid;z-index:2}
.mat-mth__deck .mat-card{grid-area:1/1;align-self:start;width:auto;opacity:0;translate:0 18px;transition:opacity .18s linear,translate .18s ease-in}
/* fade out, then in: the incoming card waits until the outgoing one has gone, so two texts never share the slot */
.mat-mth:is([data-step="1"]) .mat-card[data-deck="1"],.mat-mth[data-step="2"] .mat-card[data-deck="2"],.mat-mth[data-step="3"] .mat-card[data-deck="3"],.mat-mth[data-step="4"] .mat-card[data-deck="4"]{opacity:1;translate:0 0;transition:opacity .34s linear .2s,translate .5s var(--mat-ease) .2s}
.mat-card .mat-card__h{margin:8px 0 10px;font:850 24px/1.15 var(--gft-font-display);letter-spacing:-.02em;color:var(--mat-ink);white-space:normal}
.mat-mth__deck .mat-card p:not(.mat-card__h){margin:0;font-size:17px;line-height:1.55;color:#33403d}
.mat-card__n{font:700 13px var(--gft-font-mono);letter-spacing:.1em;color:var(--mat-ochre-ink)}
.mat-card h3{margin:8px 0 10px;font-size:24px;line-height:1.15;letter-spacing:-.02em}
.mat-card p{margin:0;font-size:17px;line-height:1.55;color:#33403d}
/* entrance "shed": alternate columns lift and drop (0 to 400 ms), then the knots fall to the baseline and settle (400 to 900 ms) */
:root[data-m-go] .mat-mth [data-mat-stage]:not([data-mat-on]) .mat-col{opacity:.3}
:root[data-m-go] .mat-mth [data-mat-on] .mat-col{animation-name:mat-shed-up;animation-duration:400ms;animation-timing-function:var(--mat-swing);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-mth [data-mat-on] .mat-col:nth-of-type(even){animation-name:mat-shed-down}
:root[data-m-go] .mat-mth [data-mat-on] .mat-kb__dot circle{animation-name:mat-fall2;animation-duration:420ms;animation-delay:calc(400ms + var(--c, 0) * 40ms);animation-timing-function:cubic-bezier(.3,1.35,.5,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes mat-shed-up{from{translate:0 -70px;opacity:.3}}
@keyframes mat-shed-down{from{translate:0 70px;opacity:.3}}
@keyframes mat-fall2{from{translate:0 -160px;opacity:0}}

/* ================= 5 · interlude (night, pinned, three states) ================= */
.mat-il{background:var(--gft-paper);color:var(--mat-text);height:235svh;view-timeline-name:--mat-il;view-timeline-axis:block}
.mat-il__pin{position:sticky;top:0;height:100svh;overflow:clip}
.mat-il__ground{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 70%,#0e4d4a 0%,#072d2b 62%)}
.mat-il__ground svg{position:absolute;inset:0;width:100%;height:100%}
.mat-il__thread{fill:none;stroke:#6bb68f;stroke-opacity:.14;stroke-width:.8;vector-effect:non-scaling-stroke}
.mat-il__thread.is-ochre{stroke:#c98a2b;stroke-opacity:.4}
.mat-il__halo{position:absolute;left:50%;top:66%;width:80svh;aspect-ratio:1;translate:-50% -50%;background:radial-gradient(closest-side,#6bb68f26,#6bb68f00)}
.mat-il__in{position:relative;height:100%;display:grid;grid-template-rows:auto auto auto auto minmax(0,1fr);padding-top:24px}
.mat-il__nums{margin:4px 0 0;display:flex;align-items:flex-start;justify-content:space-between;font:900 min(15vw,23svh)/.86 var(--gft-font-display);letter-spacing:-.06em;color:#fff}
.mat-il__n{display:grid;justify-items:center;--i:0}
.mat-il__n b{display:block;font-weight:900;color:#a9c3b5;transition:color .5s;transition-delay:calc(var(--i) * 140ms)}
.mat-il__n small{font:600 13px var(--gft-font-mono);letter-spacing:.12em;text-transform:uppercase;color:#c3d6cb;margin-top:6px}
.mat-il:not([data-state="1"]) .mat-il__n b{color:#fff}
.mat-il:not([data-state="1"]) .mat-il__n[data-low="true"] b{color:var(--mat-ochre-hi)}
.mat-il__dot{font-style:normal;color:var(--mat-ochre)}
.mat-il__rule{position:relative;height:3px;margin:14px 0 10px;overflow:hidden}
.mat-il__rule-l{position:absolute;inset:0;background:var(--mat-ochre);transform-origin:0 50%}
.mat-il__glint{position:absolute;top:0;bottom:0;left:0;width:18%;background:linear-gradient(90deg,#fff0,#fffc,#fff0)}
:root[data-m-go] [data-m-live~=mat-glint]{animation-play-state:var(--m-play);animation-name:mat-glint;animation-duration:3.6s;animation-timing-function:var(--mat-swing);animation-iteration-count:infinite;animation-direction:normal}
@keyframes mat-glint{from{translate:-100% 0}to{translate:560% 0}}
:root:not([data-m-go]) .mat-il__glint{opacity:0}
.mat-il__h{font-size:clamp(26px,2.4vw,36px);color:#fff}
.mat-il__stage{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) min(calc(100svh - 330px),600px) minmax(0,1fr);gap:32px;align-items:center;padding-bottom:20px}
.mat-il__caps{display:grid}
.mat-il__cap{grid-area:1/1;opacity:0;translate:0 14px;transition:opacity .18s,translate .18s}
.mat-il[data-state="1"] [data-cap="1"],.mat-il[data-state="2"] [data-cap="2"],.mat-il[data-state="3"] [data-cap="3"]{opacity:1;translate:0 0;transition:opacity .36s .2s,translate .5s .2s var(--mat-ease)}
.mat-il__big{margin:8px 0;font:850 clamp(30px,3.3vw,48px)/1.05 var(--gft-font-display);letter-spacing:-.03em;color:#fff}
.mat-il__p{margin:0;font-size:19px;line-height:1.45;color:#d7e6dd}
.mat-il__fig{margin:0;height:min(calc(100svh - 330px),600px)}
.mat-il__fig svg{width:100%;height:100%;overflow:visible}
.mat-dia--il .mat-l--medge path,.mat-dia--il .mat-l--fedge path{stroke-width:3.4}
.mat-il[data-state="2"] .mat-dia--il :is(.mat-l--mfill,.mat-l--medge,.mat-clip) .mat-q{scale:var(--f)}
.mat-il[data-state="3"] .mat-dia--il .mat-l .mat-q,.mat-il[data-state="3"] .mat-dia--il .mat-clip .mat-q{scale:var(--s)}
.mat-il[data-state="3"] .mat-dia--il .mat-pt{scale:2.6}
.mat-il[data-state="3"] .mat-dia--il .mat-l--fedge .mat-q{scale:var(--f)}
.mat-il[data-state="3"] .mat-dia--il .mat-l--fedge{opacity:.38}
.mat-dia--il .mat-l{transition:opacity .5s}
.mat-dia--il .mat-pt{transition:scale .6s var(--mat-ease)}
.mat-il__pt{font:850 44px var(--gft-font-display);fill:var(--mat-ochre-hi);opacity:0;transition:opacity .4s}
.mat-il[data-state="3"] .mat-il__pt{opacity:1}
.mat-il__avg{fill:none;stroke:#9fb2f0;stroke-width:2.4;stroke-dasharray:8 6;vector-effect:non-scaling-stroke;transform-box:view-box;transform-origin:0 0;opacity:0;transition:opacity .4s}
.mat-il__avgl{font:600 14px var(--gft-font-mono);letter-spacing:.06em;fill:#c8d4ff;opacity:0;transition:opacity .4s}
.mat-il[data-rule="mean"] :is(.mat-il__avg,.mat-il__avgl){opacity:1}
.mat-rule{display:grid;gap:12px}
.mat-seg--dark span{border-color:#6bb68f88;color:#e9f1ec;background:#072d2bcc}
.mat-seg--dark input:checked+span{background:var(--mat-ochre-hi);color:var(--mat-night);border-color:var(--mat-ochre-hi)}
.mat-rule__read p{margin:0;font-size:17px;line-height:1.5;color:#d7e6dd}
.mat-rule__read .mat-rule__lv{font:800 22px/1.35 var(--gft-font-display);color:#fff;margin-bottom:6px}
.mat-rule__lv output{display:inline-block;color:var(--mat-ochre-hi);margin-right:6px}
.mat-il__marks{position:absolute;inset:0;display:grid;grid-template-rows:repeat(3,1fr);pointer-events:none}
.mat-il__open{position:absolute;left:50%;top:calc(100% - 40px);width:60vw;height:60vw;translate:-50% -50%;overflow:visible;scale:0;pointer-events:none}
.mat-il__open path{fill:none;stroke:var(--mat-ochre-hi);stroke-width:2.4;stroke-dasharray:9 7;vector-effect:non-scaling-stroke}
@keyframes mat-open{from{scale:0;opacity:0}to{scale:1;opacity:1}}
@keyframes mat-il-fade{to{opacity:0;translate:0 -24px}}
:root[data-m-go] .mat-il__open{animation-name:mat-open;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--mat-il;animation-range-start:contain 88%;animation-range-end:exit 60%}
:root[data-m-go] .mat-il :is(.mat-il__caps,.mat-rule){animation-name:mat-il-fade;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--mat-il;animation-range-start:exit 0%;animation-range-end:exit 42%}
/* entrance "iris": the night opens from the system point (0 to 450 ms); numerals rise from their floors while the rule draws (450 to 900 ms) */
:root[data-m-go] .mat-il [data-mat-stage]:not([data-mat-on]) .mat-il__ground{clip-path:circle(22% at 4% 88%)}
:root[data-m-go] .mat-il [data-mat-stage]:not([data-mat-on]) :is(.mat-il__in,.mat-il__rule-l){opacity:.12}
:root[data-m-go] .mat-il [data-mat-on] .mat-il__ground{animation-name:mat-iris;animation-duration:460ms;animation-timing-function:cubic-bezier(.33,1,.68,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-il [data-mat-on] .mat-il__in{animation-name:mat-fade;animation-duration:300ms;animation-delay:200ms;animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-il [data-mat-on] .mat-il__n b{animation-name:mat-rise;animation-duration:420ms;animation-delay:calc(450ms + var(--i) * 70ms);animation-timing-function:var(--mat-ease);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-il [data-mat-on] .mat-il__rule-l{animation-name:mat-draw;animation-duration:440ms;animation-delay:450ms;animation-timing-function:var(--mat-ease);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes mat-iris{from{clip-path:circle(22% at 4% 88%)}to{clip-path:circle(150% at 4% 88%)}}
@keyframes mat-rise{from{translate:0 .5em;opacity:0}}
@keyframes mat-draw{from{scale:0 1}}

/* ================= 6 · rollout (paper frame + forest corridor) ================= */
.mat-ro{background-color:var(--gft-paper);min-height:100svh;background-image:linear-gradient(#25302e0a 1px,transparent 1px),linear-gradient(90deg,#25302e0a 1px,transparent 1px);background-size:44px 44px;color:var(--mat-ink);padding:0 0 56px;view-timeline-name:--mat-ro;view-timeline-axis:block}
.mat-ro__in{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);grid-template-areas:'bridge bridge' 'head lede' 'corr card' 'rib rib';column-gap:44px;row-gap:20px}
.mat-ro__bridge{grid-area:bridge;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding-top:20px;border-top:3px solid var(--mat-ochre)}
.mat-ro__bnode{position:relative;display:flex;align-items:center;gap:12px;padding:12px 16px;background:#072d2b;color:#e9f1ec;border:1px solid #6bb68f55;border-left:4px solid var(--mat-sage)}
.mat-ro__bnode[data-low="true"]{border-left-color:var(--mat-ochre-hi)}
.mat-ro__bdigit{font:900 34px/1 var(--gft-font-display);letter-spacing:-.04em;color:#fff}
.mat-ro__bnode[data-low="true"] .mat-ro__bdigit{color:var(--mat-ochre-hi)}
.mat-ro__bgate{display:grid;gap:2px}
.mat-ro__bgate b{font:700 14px/1.25 var(--gft-font-display);color:#fff}
.mat-ro__bgate small{font:600 13px/1.3 var(--gft-font-mono);letter-spacing:.04em;color:#c3d6cb}
.mat-ro__lede{grid-area:lede;align-self:end}
.mat-ro__head{grid-area:head}
.mat-ro h2{font-size:clamp(30px,2.9vw,42px);margin-top:10px;color:var(--mat-ink);max-width:24ch;line-height:1.15;padding-block:4px 1.6em}
.mat-ro__lede{margin:0;font-size:17px;line-height:1.55;color:#33403d;max-width:52ch}
.mat-ro__corr{grid-area:corr;margin:0;align-self:stretch;height:min(48svh,430px);position:relative;background:radial-gradient(ellipse at 50% 60%,#0e4d4a 0%,#072d2b 76%);border:1px solid #25302e33;border-top:4px solid var(--mat-ochre);overflow:hidden;padding:12px}
.mat-ro__corr svg{width:100%;height:100%;display:block;overflow:hidden}
.mat-ro__floor path{stroke:#ffffff1f;stroke-width:1;vector-effect:non-scaling-stroke}
.mat-gate{transform-box:view-box;transform-origin:400px 250px}
.mat-gate__rise{transform-box:view-box;transform-origin:400px 250px}
.mat-gate__cam{transition:translate .5s var(--mat-ease),scale .5s var(--mat-ease),opacity .4s}
.mat-gate__frame{fill:#072d2b33;stroke:#c9ddd1;stroke-opacity:.5;stroke-width:1.4;vector-effect:non-scaling-stroke}
.mat-gate__ring{fill:none;stroke:var(--mat-ochre-hi);stroke-width:2.4;stroke-dasharray:9 7;vector-effect:non-scaling-stroke}
.mat-gate__lab{font:700 17px var(--gft-font-mono);letter-spacing:.08em;fill:#fff;opacity:0;transition:opacity .4s}
.mat-gate__cam.is-near .mat-gate__lab{opacity:1}
.mat-gate__cam.is-near .mat-gate__frame{stroke-opacity:.9;stroke:#fff}
.mat-gate__cam.is-near .mat-gate__ring{stroke-width:3.2}
.mat-dia--ro .mat-ring,.mat-dia--ro .mat-axes{opacity:0}
.mat-dia--ro .mat-l--mfill path{fill-opacity:.32}
.mat-ro__held{font:700 17px var(--gft-font-mono);letter-spacing:.08em;fill:var(--mat-ochre-hi)}
.mat-ro__card{grid-area:card;position:relative;align-self:stretch;background:#072d2b;border:1px solid #6bb68f66;border-left:4px solid var(--mat-ochre-hi);padding:20px 24px;display:grid;gap:8px;align-content:center}
.mat-ro__card::after{content:'';position:absolute;right:100%;top:36px;width:44px;height:2px;background:var(--mat-ochre)}
.mat-ro__card h3{margin:0;font-size:22px;line-height:1.2;color:#fff}
.mat-ro__card p{margin:0;font-size:15.5px;line-height:1.5;color:#e9f1ec}
.mat-ro__gate{font:600 14.5px/1.5 var(--gft-font-mono);color:var(--mat-ochre-hi)!important}
.mat-ro__foot{padding-top:10px;border-top:1px solid #6bb68f44;font-size:14.5px!important}
.mat-ro__ribbon{grid-area:rib;display:grid;gap:8px;background:#fff;border:1px solid #25302e26;padding:18px 22px}
.mat-ro__ctl{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.mat-ro__ctl label{font:600 13.5px var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mat-ink)}
.mat-ro__ctl output{font:800 22px var(--gft-font-display);color:var(--mat-ink);min-width:5.2ch}
.mat-ro__track{position:relative;container-type:inline-size;margin-top:32px}
.mat-ro__segs{display:flex;gap:3px}
.mat-ro__seg{display:grid;gap:2px;padding:10px 12px;background:#072d2b;border-top:3px solid #6bb68f66;transition:background-color .3s,border-color .3s}
.mat-ro__seg span{font:600 13.5px var(--gft-font-mono);color:#c3d6cb}
.mat-ro__seg b{font-size:16px;color:#fff}
.mat-ro__seg[data-on="true"]{background:#13605b;border-top-color:var(--mat-ochre-hi)}
.mat-ro__flag{position:absolute;left:0;top:-30px;translate:calc(var(--g) * 100cqw) 0;transition:translate .5s var(--mat-ease),opacity .3s;font:normal 700 13px var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mat-night);z-index:2}
.mat-ro__flag span{display:block;padding:3px 8px;background:var(--mat-ochre-hi)}
:root[data-m-go] .mat-ro__flag span{animation-name:mat-breathe;animation-duration:2.4s;animation-iteration-count:infinite;animation-direction:alternate;animation-timing-function:ease-in-out}
.mat-ro__track input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.mat-ro__months{display:grid;grid-template-columns:repeat(18,1fr);margin:6px 0 0;padding:4px 0;list-style:none;position:relative;background:#072d2b;border-radius:2px}
.mat-ro__months li{text-align:center;font:600 13.5px var(--gft-font-mono);color:#e9f1ec;border-left:1px solid #ffffff26;min-height:26px;display:grid;place-items:center}
.mat-ro__months::after{content:'';position:absolute;top:0;left:calc((var(--m) - 1) / 18 * 100%);width:calc(100% / 18);height:100%;background:#e8b86644;transition:left .3s;pointer-events:none}
.mat-ro__ribbon:has(input:focus-visible) .mat-ro__segs{outline:2px solid var(--mat-ochre);outline-offset:3px}
.mat-ro__src{margin:0;font-size:13.5px;line-height:1.5;color:#33403d;max-width:110ch}
/* entrance "thread": the month ribbon draws (0 to 400 ms), the gates rise near to far (350 to 900 ms) */
:root[data-m-go] .mat-ro [data-mat-stage]:not([data-mat-on]) .mat-ro__segs{clip-path:inset(0 70% 0 0)}
:root[data-m-go] .mat-ro [data-mat-stage]:not([data-mat-on]) .mat-gate__rise{opacity:.15}
:root[data-m-go] .mat-ro [data-mat-on] .mat-ro__segs{animation-name:mat-ribbon;animation-duration:420ms;animation-timing-function:var(--mat-ease);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-ro [data-mat-on] .mat-ro__seg span{animation-name:mat-pick;animation-duration:300ms;animation-delay:calc(160ms + var(--i) * 60ms);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-ro [data-mat-on] .mat-gate__rise{animation-name:mat-gate;animation-duration:340ms;animation-delay:calc(350ms + var(--k) * 90ms);animation-timing-function:var(--mat-ease);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes mat-ribbon{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes mat-pick{from{opacity:0;translate:0 8px}}
@keyframes mat-gate{from{translate:0 120px;scale:.6;opacity:0}}
/* hand-over "gate rings filed": the gates slide together as the corridor leaves */
@keyframes mat-file{to{translate:0 -60px;scale:calc(.5 + var(--k) * .12);opacity:.5}}
:root[data-m-go] .mat-gate{animation-name:mat-file;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--mat-ro;animation-range-start:exit 15%;animation-range-end:exit 85%}

/* ================= 7 · register (deep night) ================= */
.mat-reg{background-color:#05302d;background-image:linear-gradient(#6bb68f0d 1px,transparent 1px),linear-gradient(90deg,#6bb68f0d 1px,transparent 1px);background-size:36px 36px;color:var(--mat-text);padding:56px 0 48px;view-timeline-name:--mat-reg;view-timeline-axis:block}
.mat-reg__in{display:grid;gap:28px}
.mat-reg__top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;padding-bottom:18px;border-bottom:1px solid #6bb68f33}
.mat-reg h2{font-size:clamp(28px,2.7vw,40px);color:#fff;margin-top:8px}
.mat-reg__body{display:grid;grid-template-columns:minmax(300px,36%) minmax(0,1fr);gap:48px;align-items:start}
.mat-reg__side{position:sticky;top:8svh}
.mat-reg__pinbox{display:grid;gap:14px}
.mat-reg__fig{margin:0;background:#072d2b;border:1px solid #6bb68f44;padding:18px 18px 14px;display:grid;gap:12px;justify-items:center}
.mat-reg__fig svg{width:min(250px,100%);height:auto;aspect-ratio:1;display:block;overflow:visible}
.mat-reg__ann{margin:0;padding:6px 10px;background:#0a3c39;border-left:3px solid var(--mat-ochre-hi);font:600 13px/1.35 var(--gft-font-mono);letter-spacing:.06em;color:#e9f1ec;width:100%;text-align:center}
.mat-dia--reg{--floor-fill:#2c3b26}
.mat-dia--reg .mat-l{opacity:.75}
.mat-reg__read{background:#072d2b;border:1px solid #6bb68f55;padding:16px 18px}
.mat-reg__rk{margin:0 0 8px;display:flex;flex-wrap:nowrap;gap:6px 12px;align-items:center;font:700 18px var(--gft-font-display);color:#fff;min-width:0}
.mat-reg__rk>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mat-reg__rk .mat-st{flex:none}
.mat-reg__read p:last-child{margin:0;font-size:16.5px;line-height:1.5;color:#e9f1ec}
.mat-st{display:inline-flex;align-items:center;padding:3px 9px;border-radius:2px;font:700 13px var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;background:#6bb68f;color:#05302d}
.mat-st[data-kind="programme"]{background:#e8b866}
.mat-st[data-kind="limit"]{background:#c8d4ff}
.mat-ann{opacity:0;transition:opacity .45s}
.mat-reg[data-ann="0"] .mat-ann--0,.mat-reg[data-ann="5"] .mat-ann--0,.mat-reg[data-ann="2"] .mat-ann--2,.mat-reg[data-ann="3"] .mat-ann--3,.mat-reg[data-ann="4"] .mat-ann--4,.mat-reg[data-ann="7"] .mat-ann--7,.mat-reg[data-ann="8"] .mat-ann--8{opacity:1}
.mat-ann__early{fill:none;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}
.mat-ann__two{fill:#6bb68f33;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}
.mat-ann__zero{fill:var(--mat-ochre-hi)}
.mat-ann__ghost{fill:none;stroke:#c8d4ff;stroke-width:2;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}
.mat-ann__strict{fill:#6bb68f22;stroke:#fff;stroke-width:3;vector-effect:non-scaling-stroke}
.mat-reg[data-ann="1"] .mat-dia--reg .mat-k__c{scale:1.6;fill:#fff}
.mat-reg[data-ann="1"] .mat-dia--reg .mat-k.is-zero .mat-k__c{fill:var(--mat-night)}
.mat-reg[data-ann="2"] .mat-dia--reg .mat-ring{stroke-opacity:.95}
.mat-reg[data-ann="6"] .mat-dia--reg .mat-ring[data-ring="1"]{scale:.5}.mat-reg[data-ann="6"] .mat-dia--reg .mat-ring[data-ring="2"]{scale:1.22}.mat-reg[data-ann="6"] .mat-dia--reg .mat-ring[data-ring="3"]{scale:.9}
.mat-reg[data-ann="6"] .mat-dia--reg .mat-ring{stroke:var(--mat-ochre-hi);stroke-opacity:.9}
.mat-reg[data-ann="3"] .mat-dia--reg .mat-l,.mat-reg[data-ann="4"] .mat-dia--reg .mat-l,.mat-reg[data-ann="7"] .mat-dia--reg .mat-l,.mat-reg[data-ann="8"] .mat-dia--reg .mat-l{opacity:.3}
.mat-reg[data-ann="9"] .mat-dia--reg :is(.mat-l--mfill,.mat-l--medge){opacity:.25}
.mat-reg[data-ann="9"] .mat-dia--reg :is(.mat-l--ffill,.mat-l--fedge){opacity:1}
.mat-reg[data-ann="9"] .mat-dia--reg .mat-weak__c{stroke-width:3.4}
.mat-reg[data-ann="9"] .mat-dia--reg .mat-k.is-weak .mat-k__c{scale:2;fill:var(--mat-ochre-hi);stroke:#fff}
.mat-reg[data-ann="none"] .mat-dia--reg .mat-l{opacity:.2}
.mat-reg__lens{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}
.mat-reg__lens button[aria-pressed="true"]{background:var(--mat-ochre-hi);color:var(--mat-night);border-color:var(--mat-ochre-hi)}
.mat-reg__lens b{font-family:var(--gft-font-mono);margin-left:4px}
.mat-reg__rows{list-style:none;margin:0;padding:0 0 4svh;display:grid;gap:10px}
.mat-reg__row{transition:opacity .3s}
.mat-reg__btn{width:100%;display:grid;grid-template-columns:40px minmax(0,1fr) auto;grid-template-areas:'i k s' 'i d d';gap:4px 12px;align-items:center;text-align:left;min-height:104px;padding:16px 18px;background:#0a3c39;border:1px solid #6bb68f33;border-left:4px solid #6bb68f55;border-radius:0;color:#e9f1ec;cursor:pointer;transition:background-color .3s,border-color .3s}
.mat-reg__i{grid-area:i;font:700 13.5px var(--gft-font-mono);color:var(--mat-ochre-hi)}
.mat-reg__k{grid-area:k;font:700 19px/1.25 var(--gft-font-display);color:#fff}
.mat-reg__btn .mat-st{grid-area:s}
.mat-reg__short{grid-area:d;font-size:15.5px;line-height:1.45;color:#e9f1ec}
.mat-reg__row[data-active] .mat-reg__btn{background:#114f4a;border-left-color:var(--mat-ochre-hi)}
.mat-reg__row[data-dim]{opacity:.42}
.mat-method summary{list-style:none;display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:center;min-height:72px;padding:12px 18px;background:#072d2b;border:1px solid #6bb68f55;cursor:pointer}
.mat-method summary .mat-reg__i{grid-area:auto}
.mat-method summary::-webkit-details-marker{display:none}
.mat-method summary .mat-reg__k{grid-area:auto}
.mat-method__body{padding:14px 18px;background:#072d2b;border:1px solid #6bb68f33;border-top:0}
.mat-method__body p{margin:0 0 10px;font-size:15.5px;line-height:1.55;color:#e9f1ec}
/* entrance "card": rows deal in from the right (0 to 450 ms), chips stamp and rings settle (400 to 900 ms) */
:root[data-m-go] .mat-reg [data-mat-stage]:not([data-mat-on]) .mat-reg__row{opacity:.2;translate:40px 0}
:root[data-m-go] .mat-reg [data-mat-on] .mat-reg__row{animation-name:mat-deal;animation-duration:420ms;animation-delay:calc(var(--i, 0) * 45ms);animation-timing-function:var(--mat-ease);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-reg [data-mat-on] .mat-reg__btn .mat-st{animation-name:mat-stamp;animation-duration:260ms;animation-delay:calc(420ms + var(--i, 0) * 30ms);animation-timing-function:cubic-bezier(.3,1.5,.5,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-reg [data-mat-on] .mat-dia--reg .mat-ring{animation-name:mat-settle;animation-duration:480ms;animation-delay:400ms;animation-timing-function:var(--mat-ease);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
@keyframes mat-deal{from{translate:80px 0;rotate:1.5deg;opacity:.15}}
@keyframes mat-stamp{from{scale:1.8;opacity:0}}
@keyframes mat-settle{from{scale:1.35;opacity:0}}
/* hand-over "register to the knot": the released diamond enlarges toward the closing's ring */
@keyframes mat-enlarge{to{scale:1.12}}
:root[data-m-go] .mat-reg__fig svg{animation-name:mat-enlarge;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--mat-reg;animation-range-start:exit 0%;animation-range-end:exit 60%}

/* ================= 8 · closing (night): the open loop ================= */
.mat-close{background:var(--mat-night);color:var(--mat-text);overflow:clip;view-timeline-name:--mat-close;view-timeline-axis:block}
.mat-close__in{position:relative;min-height:92svh;padding:56px 0 64px;display:grid;align-items:center}
.mat-close__grid{position:relative;z-index:1;padding:0;display:grid;grid-template-columns:minmax(340px,49%) minmax(340px,51%);gap:48px;align-items:center}
.mat-close__stage{margin:0;display:flex;justify-content:center;align-items:center}
.mat-close__svg{position:relative;left:auto;top:auto;translate:none;width:100%;max-width:620px;max-height:68svh;height:auto;aspect-ratio:1240/960;overflow:visible}
.mat-close__drift path{fill:none;stroke:#6bb68f;stroke-opacity:.12;stroke-width:.8;vector-effect:non-scaling-stroke}
.mat-close__mean{fill:#6bb68f1a;stroke:#6bb68f66;stroke-width:1.4;vector-effect:non-scaling-stroke}
.mat-close__run{fill:none;stroke:var(--mat-ochre);stroke-width:3;stroke-dasharray:12 9;vector-effect:non-scaling-stroke}
.mat-close[data-closed="true"] .mat-close__run{stroke-dasharray:none;stroke:var(--mat-sage)}
.mat-st8__seg{stroke:var(--mat-sage);stroke-width:6;stroke-linecap:round;transform-box:fill-box;transform-origin:center;transition:scale .55s var(--mat-ease),stroke .3s}
.mat-st8.is-open .mat-st8__seg{scale:0}
.mat-st8__lit{stroke:#fff;stroke-width:6;stroke-linecap:round;opacity:0}
.mat-close__svg[data-m-on] .mat-st8[data-lit]:not(.is-open) .mat-st8__lit{animation-name:mat-lit;animation-duration:4s;animation-delay:calc(var(--j) * 90ms);animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal}
:root:not([data-m-go]) .mat-st8__lit{animation-name:none!important}
@keyframes mat-lit{0%{opacity:0}4%{opacity:.85}12%{opacity:0}100%{opacity:0}}
.mat-st8__k circle{fill:var(--mat-sage);stroke:var(--mat-night);stroke-width:2;transition:fill .3s,stroke .3s}
.mat-st8__k text{font:800 18px var(--gft-font-mono);fill:var(--mat-night);pointer-events:none}
.mat-st8.is-open .mat-st8__k circle{fill:var(--mat-night);stroke:var(--mat-ochre-hi);stroke-width:3.5}
.mat-st8.is-open .mat-st8__k text{fill:var(--mat-ochre-hi)}
.mat-st8.is-open{cursor:pointer}
.mat-st8__pulse{fill:none;stroke:var(--mat-ochre-hi);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center}
.mat-st8:not(.is-next) .mat-st8__pulse{visibility:hidden}
.mat-st8.is-next .mat-st8__pulse{opacity:1}
.mat-close__vx circle{fill:#c9ddd1}
.mat-close__dim{font:700 22px var(--gft-font-mono);letter-spacing:.1em;fill:#e9f1ec}
.mat-close__ringlab{font:700 22px var(--gft-font-mono);letter-spacing:.1em;fill:var(--mat-ochre-hi)}
.mat-close__side{margin-left:0;display:grid;gap:12px;align-content:center}
.mat-close__lvrow{display:flex;align-items:flex-end;gap:18px;padding:12px 16px;background:#0a3c39;border:1px solid #6bb68f44;border-left:4px solid var(--mat-ochre-hi)}
.mat-close__lvrow>div{display:grid;gap:4px;padding-bottom:4px}
.mat-close h2{font-size:clamp(34px,3.5vw,50px);color:#fff}
.mat-close__lv{margin:0;font:900 76px/.95 var(--gft-font-display);letter-spacing:-.05em;color:#fff}
.mat-close__lv output{display:inline-block}
.mat-close__lv span{font-size:36px;color:#c3d6cb}
.mat-close__lab{margin:0;font:700 22px var(--gft-font-display);color:var(--mat-ochre-hi)}
.mat-close[data-closed="true"] .mat-close__lab{color:var(--mat-sage)}
.mat-close__next{margin:0;font-size:16px;color:#e9f1ec}
.mat-close__knots{display:grid;gap:8px}
.mat-close__lead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:#0a3c39;border:1px solid #6bb68f55}
.mat-close__quick{min-height:44px;padding:8px 14px;background:var(--mat-ochre-hi);color:var(--mat-night);border:1px solid var(--mat-ochre-hi);border-radius:2px;font:700 14px var(--gft-font-mono);cursor:pointer;transition:background-color .2s}
.mat-close__quick:hover{background:#f2c97d}
.mat-close__drawer{background:#072d2b;border:1px solid #6bb68f44}
.mat-close__sum{list-style:none;display:flex;justify-content:space-between;align-items:center;min-height:44px;padding:8px 14px;font:600 13.5px var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#c3d6cb;cursor:pointer}
.mat-close__sum::-webkit-details-marker{display:none}
.mat-ties{list-style:none;margin:0;padding:10px;display:grid;grid-template-columns:1fr;gap:6px;max-height:240px;overflow-y:auto;border-top:1px solid #6bb68f33}
.mat-ties button{width:100%;min-height:48px;display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;padding:8px 12px;background:#0a3c39;border:1px solid #e8b86688;border-radius:2px;color:#e9f1ec;cursor:pointer}
.mat-ties button[aria-pressed="true"]{border-color:#6bb68f;background:#114f4a}
.mat-ties__i{font:800 15px var(--gft-font-mono);color:var(--mat-ochre-hi)}
.mat-ties__q{font-size:14px;line-height:1.35;color:#e9f1ec}
.mat-ties__go{font:700 13.5px var(--gft-font-mono);color:var(--mat-ochre-hi);white-space:nowrap}
.mat-close__acts{display:flex;flex-wrap:wrap;gap:8px}
.mat-cta{background:var(--mat-ochre-hi)!important;color:var(--mat-night)!important;border-color:var(--mat-ochre-hi)!important;font-weight:700}
.mat-close__read{display:grid;gap:6px;border-top:1px solid #6bb68f44;padding-top:10px}
.mat-close__read p{margin:0;font-size:15.5px;line-height:1.5;color:#e9f1ec}
.mat-close__read .mat-close__rt{font:700 17px var(--gft-font-display);color:#fff}
.mat-close__read .mat-close__priv{font-size:13.5px;color:#c3d6cb}
/* entrance "ply": the four dimension threads twist in from the edges (0 to 400 ms), stations set in, open ones last (400 to 900 ms) */
.mat-ply{transform-box:fill-box;transform-origin:center}
:root[data-m-go] .mat-close [data-mat-stage]:not([data-mat-on]) .mat-ply{opacity:.2}
:root[data-m-go] .mat-close [data-mat-on] .mat-ply{animation-duration:420ms;animation-timing-function:var(--mat-swing);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-close [data-mat-on] .mat-ply[data-ply="0"]{animation-name:mat-ply0}:root[data-m-go] .mat-close [data-mat-on] .mat-ply[data-ply="1"]{animation-name:mat-ply1}:root[data-m-go] .mat-close [data-mat-on] .mat-ply[data-ply="2"]{animation-name:mat-ply2}:root[data-m-go] .mat-close [data-mat-on] .mat-ply[data-ply="3"]{animation-name:mat-ply3}
:root[data-m-go] .mat-close [data-mat-on] .mat-st8__k{animation-name:mat-ignite;animation-duration:240ms;animation-delay:calc(400ms + var(--j) * 18ms);animation-timing-function:cubic-bezier(.3,1.5,.5,1);animation-fill-mode:backwards;animation-iteration-count:1;animation-direction:normal}
:root[data-m-go] .mat-close [data-mat-on] .mat-st8.is-open .mat-st8__k{animation-delay:calc(660ms + var(--j) * 8ms)}
.mat-st8__k{transform-box:fill-box;transform-origin:center}
@keyframes mat-ply0{from{translate:0 -160px;rotate:-12deg;opacity:.2}}
@keyframes mat-ply1{from{translate:160px 0;rotate:12deg;opacity:.2}}
@keyframes mat-ply2{from{translate:0 160px;rotate:-12deg;opacity:.2}}
@keyframes mat-ply3{from{translate:-160px 0;rotate:12deg;opacity:.2}}
/* hand-over "close to footer": the ring compresses toward the footer configurator */
@keyframes mat-close-hand{to{translate:8% 12%;scale:.86;opacity:.65}}
:root[data-m-go] .mat-close__stage{animation-name:mat-close-hand;animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--mat-close;animation-range-start:exit 0%;animation-range-end:exit 80%}
.mat-noscript{padding:16px 48px;background:#fff3d6;color:#25302e;font-size:15px}

/* ================= phones and narrow screens ================= */
@media(max-width:1100px) and (min-width:901px){.mat-bench__in{grid-template-columns:minmax(0,1fr) 470px}.mat-ladder{display:none}}
@media(max-width:900px){
 .mat-sp{--ring:86vw;--box:calc(var(--ring) / .9032)}
 .mat-sp__box,.mat-sp__hud{left:50%;top:auto;bottom:118px;translate:-50% 0}
 .mat-sp__halo{left:50%;top:auto;bottom:0;translate:-50% 20%}
 .mat-sp__hud{height:calc(var(--box) + 96px);bottom:30px}
 .mat-sp__chip{right:auto;left:0;top:auto;bottom:0;font-size:13px;padding:6px 10px}
 .mat-sp__chip-k{font-size:13px}
 .mat-sp__read{right:0;bottom:0;font-size:13px;padding:6px 8px;max-width:48%}
 .mat-sp__rl text{font-size:21.6px}.mat-sp__rl rect{height:30px;width:auto}
 .mat-sp__rl{display:none}
 .mat-sp__ax{font-size:23.5px}
 .mat-sp__zero{font-size:44px}
 .mat-sp__scrim{width:100%;height:auto;inset:0 0 auto 0;bottom:auto;min-height:62%;background:linear-gradient(180deg,#072d2bf5 0%,#072d2be6 75%,#072d2b00 100%)}
 .mat-sp .gft-splash__content{padding-top:30px;padding-bottom:calc(var(--box) + 150px)}
 .mat-sp .mat-sp__content>*,.mat-sp.gft-splash h1{max-width:none}
 .mat-sp__floors{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-width:none}
 .mat-sp .gft-splash__caption{display:none}
 .mat-sp h1{font-size:clamp(2.6rem,11.6vw,4.2rem)}
 .mat-sp__lede.gft-splash__lede{font-size:17px}
 .mat-bench__in{grid-template-columns:1fr}
 .mat-bench__fig{margin:8px auto 0;width:min(100%,52svh)}
 .mat-ladder{display:none}
 .mat-bench__fig{display:grid}
 .mat-score{left:auto;right:0;text-align:right}
 .mat-score__n{font-size:40px}
 .mat-score__n span{font-size:22px}
 .mat-score__l{font-size:15px}
 .mat-bench__read{margin:14px 0 0;width:auto;max-width:100%}
 .mat-tally{font-size:20px}
 .mat-panel{margin:18px 0 0;padding:18px 16px}
 .mat-tabs{grid-template-columns:repeat(2,1fr)}
 .mat-q-row label{font-size:17px}
 .mat-actions{display:grid;grid-template-columns:1fr 1fr}
 .mat-cmp{padding:48px 0 64px}
 .mat-cmp__head{grid-template-columns:1fr;gap:16px}
 .mat-bars{padding:14px 16px}
 .mat-bars__scale{grid-template-columns:1fr}.mat-bars__scale>span:first-child{display:none}
 .mat-row{grid-template-columns:1fr;height:auto;padding:14px 0;gap:10px}
 .mat-row__pill{display:none}
 .mat-row__nums{flex-wrap:wrap}
 .mat-bars__foot{grid-template-columns:1fr;gap:18px}
 .mat-lens{position:sticky;bottom:0;background:var(--gft-paper);padding:8px 0;z-index:2}
 .mat-mth__pin{display:contents}
 .mat-mth__head{position:static;max-width:none;padding:56px 20px 18px}
 .mat-mth__stage{position:sticky;top:0;bottom:auto;height:46svh;z-index:3;background:var(--gft-paper);border-bottom:1px solid #25302e26;overflow:clip}
 .mat-mth__cam,.mat-mth[data-step] .mat-mth__cam{left:0;right:0;width:auto;top:58px;bottom:52px;translate:none;scale:none}
 .mat-mth__fx{left:16px;right:16px;top:8px;height:48px;min-height:48px;overflow:hidden;flex-wrap:nowrap;gap:2px 10px}
 .mat-mth[data-step="4"] .mat-mth__fv{font-size:22px}
 .mat-mth__fk{font-size:20px;white-space:nowrap}.mat-mth__fv{font-size:18px;white-space:nowrap}
 .mat-mth__slab{font-size:28px}.mat-mth__slab--r,.mat-col__sum{display:none}
 .mat-mth__grid text,.mat-col__name{font-size:31px}
 .mat-axlab{font-size:24px}.mat-ringno{font-size:23px}
 .mat-il__avgl{font-size:28px}
 .mat-gate__lab,.mat-ro__held{font-size:30px}
 .mat-mth__mini,.mat-mth__hover,.mat-mth__iris{display:none}
 .mat-rail{left:8px;right:8px;bottom:4px;padding:0;justify-content:space-between}
 .mat-rail__bar{width:60px}
 .mat-mth__steps{margin-top:0;pointer-events:auto}
 .mat-mth__steps li,.mat-mth__steps li:nth-child(n){display:flex;min-height:62svh;justify-content:center;align-items:flex-start;padding:28px 16px!important}
 .mat-mth__steps .mat-card{position:static;width:100%;height:auto;padding:24px 26px;margin:0;overflow:visible;clip-path:none;white-space:normal;border-top:4px solid var(--mat-ochre)}
 .mat-mth__deck{display:none}
 .mat-long{display:none}.mat-short{display:inline}
 .mat-score .mat-lab{display:none}
 .mat-score{bottom:-4px}
 .mat-mth__steps li:last-child{min-height:90svh;padding-top:20px}
 .mat-card{width:100%}
 .mat-il{height:245svh}
 .mat-il__nums{font-size:min(24vw,96px)}
 .mat-il__n small{font-size:13px;letter-spacing:.02em}
 .mat-il__stage{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr) auto;gap:8px;align-items:start}
 .mat-il__fig{height:min(70vw,30svh);justify-self:center;width:min(70vw,30svh)}
 .mat-il__big{font-size:26px;margin:2px 0}.mat-il__p{font-size:15px}
 .mat-il__h{font-size:22px}
 .mat-seg--dark{display:grid;grid-template-columns:1fr 1fr}
 .mat-rule__read p{font-size:15px}.mat-rule__read .mat-rule__lv{font-size:19px}
 .mat-ro__in{grid-template-columns:1fr;grid-template-areas:'bridge' 'head' 'lede' 'corr' 'rib' 'card'}
 .mat-ro__bridge{grid-template-columns:1fr 1fr;gap:8px}
 .mat-ro__bnode{padding:10px 12px;gap:8px}
 .mat-ro__bdigit{font-size:26px}
 .mat-ro__bgate b{font-size:13px}
 .mat-ro__bgate small{display:none}
 .mat-ro__corr{min-height:44svh;height:44svh;margin:0}
 .mat-ro__card::after{display:none}
 .mat-ro__ribbon{padding:14px 12px}
 .mat-ro__segs{gap:2px}.mat-ro__seg{padding:6px}.mat-ro__seg b{display:none}.mat-ro__seg span{font-size:13px}
 .mat-ro__months li{font-size:0}.mat-ro__months li.is-q{font-size:13px}
 .mat-ro__lede{align-self:start}
 .mat-reg__top{flex-direction:column;align-items:stretch;gap:12px}
 .mat-reg__body{grid-template-columns:1fr;gap:20px}
 .mat-reg__side{display:contents}
 .mat-reg__pinbox{position:sticky;top:0;z-index:3;height:52svh;background:#05302d;grid-template-rows:minmax(0,1fr) auto;padding:6px 0;gap:6px}
 .mat-reg__fig{padding:8px;gap:4px;min-height:0}
 .mat-reg__fig svg{width:auto;height:100%;max-height:22svh}
 .mat-reg__ann{font-size:13px;padding:4px 8px}
 .mat-reg__read{padding:8px 10px;overflow:hidden;height:184px;min-height:0!important}
 .mat-reg__read p:last-child{font-size:13.5px;line-height:1.4}
 .mat-reg__rk{font-size:15px;margin-bottom:2px}
 .mat-reg__lens{flex-wrap:nowrap;overflow-x:auto;position:static}
 .mat-reg__btn{grid-template-columns:34px minmax(0,1fr);grid-template-areas:'i k' 'i s' 'i d';min-height:0;justify-items:start}
 .mat-reg__lens button{flex:none}
 .mat-reg__rows{padding:2svh 0 12svh}
 .mat-close__in{padding:40px 0 48px;display:block}
 .mat-close__grid{grid-template-columns:1fr;gap:24px}
 .mat-close__svg{position:relative;width:100%;height:auto;max-height:44svh;display:block;margin:0 auto}
 .mat-st8__k text{display:none}
 .mat-close__dim,.mat-close__ringlab{font-size:36px}
 .mat-close__side{margin-left:0}
 .mat-close__lvrow{flex-wrap:wrap}
 .mat-close__lv{font-size:64px}
 .mat-close__lead{flex-direction:column;align-items:stretch}
 .mat-close__acts{display:grid;grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.mat-mth__deck .mat-card{translate:none;transition:opacity .2s linear}.mat-mth .mat-mth__deck .mat-card{translate:none}
 .mat-sp__box,.mat-bench__paper,.mat-bench .mat-ax,.mat-row__swing,.mat-rail__bar i,.mat-mth__iris,.mat-il__open,.mat-il :is(.mat-il__caps,.mat-rule),.mat-gate,.mat-reg__fig svg,.mat-close__stage{animation-name:none;animation-timeline:auto}}
