/* Velonix FDD and QoE glossary. Uses the site's colour tokens from style.css. */
:root{--p1:#1E5B45;--p2:#2F7A5F;--p3:#6FA58C;--p4:#A9B8AF;--p5:#1B2A24;--p6:#C7D6CC}
[hidden]{display:none!important}
/* hub */
.gl-hero .lead{max-width:680px}
.gl-hero h1{max-width:20ch}
.gl-search{position:relative;max-width:680px;margin-top:32px}
.gl-search .ic{position:absolute;left:20px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--forest);pointer-events:none}
.gl-search input{width:100%;height:62px;padding:0 64px 0 54px;font:inherit;font-size:17px;color:var(--ink);background:#fff;border:1px solid var(--line-2);border-radius:12px;box-shadow:var(--shadow);transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none}
.gl-search input::placeholder{color:var(--faint)}
.gl-search input:focus{outline:none;border-color:var(--forest);box-shadow:0 0 0 4px rgba(30,91,69,.14),var(--shadow)}
.gl-search kbd{position:absolute;right:18px;top:50%;transform:translateY(-50%);font:600 12px var(--sans);color:var(--faint);border:1px solid var(--line-2);border-radius:6px;padding:3px 8px;background:var(--stone)}
.gl-search.sm{margin:0;max-width:none}.gl-search.sm input{height:46px;font-size:16px;padding:0 14px 0 42px;box-shadow:none;background:var(--stone)}.gl-search.sm input:focus{background:#fff}.gl-search.sm .ic{left:14px;width:17px;height:17px}
.s-drop{position:absolute;left:0;right:0;top:calc(100% + 8px);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-up);padding:6px;z-index:60;max-height:380px;overflow:auto}
.s-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:8px;font-size:15px;line-height:1.35}
.s-item small{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--forest);white-space:nowrap;font-weight:600}
.s-item:hover,.s-item.on{background:var(--tint);color:var(--forest-d)}
.s-empty{padding:12px;font-size:14px;color:var(--muted)}
.gl-jump{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.gl-jump a{font-size:13.5px;padding:8px 16px;border-radius:99px;border:1px solid var(--line-2);color:var(--muted);background:var(--stone);transition:all .2s}
.gl-jump a:hover{background:var(--forest);border-color:var(--forest);color:#fff}
.gl-cats{padding:72px 0 0}
.gl-cat{margin-bottom:72px;scroll-margin-top:100px}
.gl-cat .gl-ch{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px;align-items:end;margin-bottom:28px;padding-bottom:22px;border-bottom:1px solid var(--line-2)}
.gl-cat h2{font-size:clamp(28px,3.2vw,40px);margin-top:12px}
.gl-cat .gl-ci{color:var(--muted);font-size:17px;line-height:1.65;max-width:52ch}
.gl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.gl-term{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px 22px 18px;box-shadow:0 1px 2px rgba(27,42,36,.04);transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .3s}
.gl-term:hover{transform:translateY(-4px);box-shadow:var(--shadow-up);border-color:var(--sage)}
.gl-term b{font-family:var(--serif);font-weight:500;font-size:21px;line-height:1.22;color:var(--ink);letter-spacing:-.01em}
.gl-term span{font-size:14.5px;line-height:1.55;color:var(--muted);flex:1}
.gl-term i{font-style:normal;font-size:13.5px;font-weight:600;color:var(--forest);margin-top:6px}
.gl-term:hover b{color:var(--forest)}
.gl-none{padding:20px 0 60px;color:var(--muted);font-size:17px}
/* term page */
.gl-aka{font-size:15px;color:var(--muted);max-width:none;margin-top:6px}.gl-aka b{color:var(--ink);font-weight:600}
.gl-def{margin-top:26px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--forest);border-radius:var(--r);padding:22px 28px 24px;box-shadow:var(--shadow);max-width:900px}
.gl-def span{display:block;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--forest);font-weight:600;margin-bottom:8px}
.gl-def p{font-family:var(--serif);font-size:clamp(19px,2vw,23px);line-height:1.5;color:var(--ink);max-width:none}
.gl-upd{font-size:13px;color:var(--faint);margin-top:16px;max-width:none}
.gl-hero.t h1{font-size:clamp(34px,4.2vw,52px);max-width:26ch;margin:16px 0 8px}
.gl-wrap{padding:64px 0 0}
.gl-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:64px;align-items:start}
.gl-layout>*{min-width:0}
.gl-article section{margin-bottom:56px;scroll-margin-top:100px}
.gl-article h2{font-size:clamp(27px,2.9vw,35px);margin-bottom:18px}
.gl-article p{font-size:17.5px;color:var(--muted);line-height:1.78;max-width:none}
.gl-article p+p{margin-top:14px}
.gl-article p strong,.gl-article li strong{color:var(--ink);font-weight:600}
.gl-article .cap-s{font-size:12.5px;color:var(--faint);margin:-4px 0 14px}
.gl-aside{position:sticky;top:100px;display:grid;gap:18px}
.gl-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px 18px 20px}
.gl-card .h{display:block;font-size:11.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--faint);font-weight:600;margin-bottom:12px}
.gl-toc{display:grid;gap:2px}.gl-toc a{font-size:14.5px;color:var(--muted);padding:7px 12px;border-left:2px solid var(--line-2);cursor:pointer;transition:all .2s;line-height:1.4}.gl-toc a:hover{color:var(--forest);border-color:var(--forest);background:var(--tint)}
.gl-svc{background:var(--forest);color:#fff;border-radius:var(--r);padding:24px 22px;position:relative;overflow:hidden}
.gl-svc:before{content:"";position:absolute;right:-90px;top:-110px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.16),transparent 66%)}
.gl-svc .label{color:#BFE3D2;font-size:11px;position:relative}
.gl-svc h4{color:#fff;font-size:22px;margin:10px 0 8px;line-height:1.2;position:relative}
.gl-svc p{font-size:14.5px;color:rgba(255,255,255,.86);line-height:1.6;position:relative}
.gl-svc a{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font-weight:600;font-size:14.5px;color:#fff;border-bottom:1px solid rgba(255,255,255,.45);position:relative}
.gl-note-s{font-size:12.5px;color:var(--faint);line-height:1.55}
/* content blocks */
.gl-tw{overflow-x:auto;margin:20px 0;border:1px solid var(--line);border-radius:var(--r);background:#fff;box-shadow:var(--shadow);-webkit-overflow-scrolling:touch}
.gtbl{width:100%;border-collapse:collapse;font-size:15.5px;line-height:1.5}.gtbl.wide{min-width:760px}
.gtbl th,.gtbl td{padding:12px 18px;text-align:left;vertical-align:top}
.gtbl thead th{font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--forest);font-weight:600;background:var(--tint);border-bottom:1px solid var(--tint-2);white-space:nowrap}
.gtbl tbody tr+tr th,.gtbl tbody tr+tr td{border-top:1px solid var(--line)}
.gtbl td{color:var(--muted)}.gtbl tbody th{font-weight:600;color:var(--ink)}
.gtbl .r{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}.gtbl .c{text-align:center}
.gtbl tr.tot td,.gtbl tr.tot th{background:var(--stone);color:var(--ink);font-weight:700}
.gtbl thead th.r{text-align:right}.gtbl thead th.c{text-align:center}
.gl-steps{display:grid;margin:14px 0 0;border-top:1px solid var(--line-2);counter-reset:s}
.gl-steps li{counter-increment:s;display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;padding:14px 0;border-bottom:1px solid var(--line-2);font-size:16.5px;color:var(--ink);line-height:1.55}
.gl-steps li:before{content:counter(s,decimal-leading-zero);font-family:var(--serif);font-style:italic;font-size:24px;color:var(--forest);line-height:1.1}
.gl-formula{background:var(--forest-d);color:#fff;border-radius:12px;padding:18px 22px;font-size:16px;line-height:1.6;margin:16px 0}
.gl-formula span{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#BFE3D2;font-weight:600;margin-bottom:6px}
.gl-ul{display:grid;gap:10px;margin:14px 0}
.gl-ul li{position:relative;padding-left:22px;font-size:16.5px;line-height:1.6;color:var(--muted)}
.gl-ul li:before{content:"";position:absolute;left:0;top:.72em;width:9px;height:2px;background:var(--forest)}
.gl-flags{display:grid;gap:10px;margin-top:4px}
.gl-flags li{position:relative;padding:14px 18px 14px 52px;background:#fff;border:1px solid var(--line);border-radius:10px;font-size:16px;color:var(--ink);line-height:1.5}
.gl-flags li:before{content:"!";position:absolute;left:16px;top:13px;width:22px;height:22px;border-radius:50%;background:#F3E3E0;color:var(--red);font-weight:700;font-size:13px;display:grid;place-items:center;line-height:1}
.gl-eg{background:var(--tint);border:1px solid var(--tint-2);border-radius:var(--r);padding:22px 26px;margin:16px 0}
.gl-eg p{color:var(--forest-d)!important;font-size:16.5px!important}
.gl-rel{display:flex;flex-wrap:wrap;gap:10px}
.gl-rel a{font-size:14.5px;font-weight:500;padding:9px 16px;border-radius:99px;border:1px solid var(--tint-2);background:var(--tint);color:var(--forest-d);transition:all .2s}
.gl-rel a:hover{background:var(--forest);border-color:var(--forest);color:#fff}
.gl-more{margin-top:20px}
/* visual card */
.gx{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px 28px 22px;box-shadow:var(--shadow);margin:6px 0 0}
.gx-hd{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:4px}
.gx-hd h3{font-size:24px;line-height:1.2}
.gx-tag{font-size:10px;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line-2);padding:3px 8px;border-radius:99px;color:var(--muted);white-space:nowrap;margin-top:4px}
.gx-sub{font-size:13.5px!important;color:var(--muted)!important;margin:2px 0 14px!important;line-height:1.55!important}
.gx-body{overflow-x:auto;-webkit-overflow-scrolling:touch}
.gx-body>svg{display:block;width:100%;height:auto;min-width:540px}
.gx-note{margin-top:12px!important;padding:12px 16px;border-radius:10px;background:var(--stone);font-size:14.5px!important;color:var(--muted)!important;line-height:1.55!important}
.gx-note:empty{display:none}.gx-note b{color:var(--ink)}
.gx-ctrl:empty{display:none}
.gx-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.gx-row label{font-size:13.5px;font-weight:600;display:flex;align-items:center;gap:12px}
.x-val{font-family:var(--serif);font-size:20px;font-weight:500;color:var(--forest);min-width:42px}
.gx input[type=range]{accent-color:var(--forest);width:190px;cursor:pointer}
.x-out{font-size:15px;color:var(--ink);line-height:1.6;max-width:none;flex:1 1 320px}
.x-out b{font-family:var(--serif);font-size:20px;font-weight:500;color:var(--forest)}.x-out b.dn{color:var(--red)}
.gx-ctrl>.x-out{margin-top:12px;flex:none}
.x-delta{font-size:13px;font-weight:600;color:var(--forest);background:var(--tint);padding:3px 9px;border-radius:99px;margin-left:6px;white-space:nowrap}
.x-seg{display:inline-flex;border:1px solid var(--line-2);border-radius:99px;padding:3px;background:var(--stone);flex-wrap:wrap}
.x-seg button{font-size:13px;padding:7px 14px;border-radius:99px;color:var(--muted);transition:all .2s}
.x-seg button[aria-pressed=true]{background:var(--forest);color:#fff}
.gx-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:8px 0 16px}
.tile{background:var(--stone);border-radius:12px;padding:14px 16px}
.tile b{display:block;font-family:var(--serif);font-size:30px;font-weight:500;line-height:1.1;color:var(--forest)}
.tile.r b{color:var(--red)}.tile span{font-size:13px;color:var(--muted);line-height:1.4;display:block;margin-top:2px}
svg text{font-family:var(--sans)}
.x-gl{stroke:var(--line);stroke-width:1}.x-base{stroke:var(--line-2);stroke-width:1.4}
.x-ax{font-size:11.5px;fill:var(--faint)}.x-cl{font-size:12px;fill:var(--muted)}.x-cl.b{font-weight:700;fill:var(--ink)}
.x-vl{font-size:12.5px;font-weight:700;fill:var(--ink)}.x-vl.sm{font-size:11px}
.x-yr{font-size:12px;font-weight:700;fill:var(--ink)}.x-ysep{stroke:var(--line-2);stroke-dasharray:3 4}
.c-sage{fill:var(--sage);background:var(--sage)}.c-forest{fill:var(--forest);background:var(--forest)}.c-forestl{fill:var(--forest-l);background:var(--forest-l)}.c-ink{fill:var(--ink);background:var(--ink)}.c-red{fill:var(--red);background:var(--red)}.c-mid{fill:#6B7A72;background:#6B7A72}.c-p3{fill:var(--p3);background:var(--p3)}.c-p6{fill:var(--p6);background:var(--p6)}
.x-bar{transform-box:fill-box;transform-origin:50% 100%;transform:scaleY(0);transition:transform .9s var(--ease),fill .3s;transition-delay:calc(var(--i,0)*1s)}
.x-bar.neg{transform-origin:50% 0}
.in-view .x-bar{transform:scaleY(1)}
.x-g{cursor:default;outline:none}.x-g:focus-visible .x-bar,.x-g:hover .x-bar{stroke:var(--ink);stroke-width:1.5}
.x-conn{stroke:var(--faint);stroke-width:1;stroke-dasharray:3 3}
.x-brk{fill:none;stroke:#fff;stroke-width:3}
.x-fade{opacity:0;transition:opacity .7s ease;transition-delay:calc(var(--i,0)*.12s + .5s)}.in-view .x-fade{opacity:1}
.x-ref{stroke:var(--red);stroke-dasharray:5 4;stroke-width:1.3}.x-ref.f{stroke:var(--forest)}
.x-reft{fill:var(--red);font-size:11.5px;font-weight:600}.x-reft.f{fill:var(--forest-d)}
.x-line{fill:none;stroke-width:2.6;stroke-linejoin:round;stroke-linecap:round}
.x-dr{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.8s var(--ease) .3s}.in-view .x-dr{stroke-dashoffset:0}
.x-dot{fill:#fff;stroke-width:2}
.x-area{fill:var(--tint);opacity:0;transition:opacity .8s ease 1s}.in-view .x-area{opacity:.75}
.x-lb{fill:var(--tint-2)}.x-lb.in{fill:var(--forest)}
.x-wing{transition:transform .45s var(--ease)}
.x-win{fill:rgba(228,236,230,.55);stroke:var(--forest);stroke-width:1.2;stroke-dasharray:4 4}
.x-wtag{font-size:11.5px;font-weight:600;fill:var(--forest-d);letter-spacing:.04em}
.x-peg{stroke:var(--forest);stroke-width:1.8;stroke-dasharray:7 5;transition:opacity .3s}.x-sel{stroke:var(--red);stroke-width:1.8;stroke-dasharray:7 5;transition:opacity .3s}
.x-pegt{font-size:11.5px;font-weight:600;transition:opacity .3s}.x-pegt.f{fill:var(--forest-d)}.x-pegt.r{fill:var(--red)}
.x-pegt.dim,.x-peg.dim,.x-sel.dim{opacity:.22}
.x-cdash{stroke:var(--ink);stroke-width:1.4;stroke-dasharray:3 4}.x-dia{fill:var(--ink)}
.x-gup{fill:var(--forest)}.x-gdn{fill:var(--red)}.x-gapt{font-size:12.5px;font-weight:700}.x-gapt.up{fill:var(--forest)}.x-gapt.dn{fill:var(--red)}
.x-lg,.x-dl{display:flex;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin-top:10px}
.x-lg i,.x-dl i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.x-lg i.p1,.x-lg i.p2,.x-lg i.p3,.x-lg i.p4,.x-lg i.p5,.x-lg i.p6{display:inline-block}
.p1{background:var(--p1);color:#fff}.p2{background:var(--p2);color:#fff}.p3{background:var(--p3);color:#10241b}.p4{background:var(--p4);color:#10241b}.p5{background:var(--p5);color:#fff}.p6{background:var(--p6);color:#10241b}
/* ladder */
.ladder{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end;height:290px;border-bottom:2px solid var(--line-2);margin-top:6px}
.rung{height:var(--h);border-radius:12px 12px 0 0;padding:16px 16px 14px;text-align:left;display:flex;flex-direction:column;gap:4px;transform-origin:50% 100%;transform:scaleY(0);transition:transform .8s var(--ease),box-shadow .25s;transition-delay:calc(var(--i)*.18s),0s}
.in-view .rung{transform:scaleY(1)}
.r1{background:#fff;border:1px solid var(--line-2);border-bottom:0}.r2{background:var(--tint-2)}.r3{background:var(--forest);color:#fff}
.rung .lv{font-family:var(--serif);font-size:25px;line-height:1.1}.rung .as{font-size:12.5px;font-weight:600;letter-spacing:.03em;opacity:.85}
.rung .mt{margin-top:auto;height:6px;border-radius:3px;background:rgba(27,42,36,.12);overflow:hidden}.r3 .mt{background:rgba(255,255,255,.25)}
.rung .mt i{display:block;height:100%;background:var(--forest)}.r3 .mt i{background:#fff}
.rung[aria-pressed=true]{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--ink)}
.ax-l{display:flex;justify-content:space-between;font-size:12px;color:var(--faint);margin-top:8px}
.rdet{margin-top:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 28px;background:var(--stone);border-radius:12px;padding:18px 20px}
.rdet dt{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);font-weight:600;margin-bottom:3px}.rdet dd{font-size:15px;color:var(--ink);line-height:1.5}
/* price */
.x-price{display:grid;gap:14px;margin:8px 0}
.x-prow{display:grid;grid-template-columns:150px minmax(0,1fr) 84px;gap:14px;align-items:center;font-size:14.5px}
.x-prow .l{color:var(--muted);line-height:1.3}.x-prow .v{font-family:var(--serif);font-size:22px;color:var(--ink);text-align:right}
.x-prow .tr{height:30px;background:var(--stone);border-radius:6px;overflow:hidden}
.x-prow .tr i{display:block;height:100%;width:var(--w,0);border-radius:6px;transition:width .5s var(--ease)}
/* flow / timeline */
.x-flow{display:flex;gap:0;align-items:stretch;margin:8px 0;counter-reset:n}
.x-flow li{flex:1 1 0;min-width:0;position:relative;background:var(--stone);border:1px solid var(--line);border-radius:12px;padding:16px 16px 14px;margin-right:26px;opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .6s var(--ease);transition-delay:calc(var(--i)*.14s)}
.x-flow li:last-child{margin-right:0}
.in-view .x-flow li{opacity:1;transform:none}
.x-flow li b{display:block;font-family:var(--serif);font-weight:500;font-size:19px;line-height:1.25;color:var(--ink)}
.x-flow li span{display:block;font-size:13.5px;color:var(--muted);line-height:1.5;margin-top:6px}
.x-flow li.hl{background:var(--forest);border-color:var(--forest)}.x-flow li.hl b{color:#fff}.x-flow li.hl span{color:rgba(255,255,255,.85)}
.x-flow:not(.na):not(.v) li:not(:last-child):after{content:"";position:absolute;right:-20px;top:50%;width:14px;height:14px;margin-top:-7px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2 7h10M8 3l4 4-4 4' fill='none' stroke='%231E5B45' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center no-repeat}
.x-flow.na{flex-wrap:wrap;gap:12px}.x-flow.na li{flex:1 1 calc(33.33% - 12px);margin:0}
.x-flow.na.g2 li{flex-basis:calc(50% - 12px)}.x-flow.na.g4 li{flex-basis:calc(25% - 12px)}
.x-flow.v{flex-direction:column;gap:22px}.x-flow.v li{margin:0}
.x-flow.v li:not(:last-child):after{content:"";position:absolute;left:50%;bottom:-19px;width:14px;height:14px;margin-left:-7px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M7 2v10M3 8l4 4 4-4' fill='none' stroke='%231E5B45' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center no-repeat}
.x-tl{display:flex;position:relative;margin:10px 0 4px;padding-top:2px}
.x-tl:before{content:"";position:absolute;left:8%;right:8%;top:11px;height:2px;background:var(--line-2)}
.x-tl li{flex:1 1 0;min-width:0;position:relative;text-align:center;padding:26px 8px 0;opacity:0;transform:translateY(12px);transition:opacity .6s var(--ease),transform .6s var(--ease);transition-delay:calc(var(--i)*.16s)}
.in-view .x-tl li{opacity:1;transform:none}
.x-tl li:before{content:"";position:absolute;left:50%;top:4px;width:16px;height:16px;margin-left:-8px;border-radius:50%;background:#fff;border:2px solid var(--forest)}
.x-tl li.hl:before{background:var(--forest)}
.x-tl em{display:block;font-style:normal;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:600}
.x-tl b{display:block;font-family:var(--serif);font-weight:500;font-size:18px;line-height:1.25;color:var(--ink);margin-top:4px}
.x-tl span{display:block;font-size:13.5px;color:var(--muted);line-height:1.5;margin-top:4px}
.x-tl li.hl b{color:var(--forest)}
/* stack */
.x-stack{display:grid;gap:18px;margin:8px 0 2px}
.x-srow .sl{display:flex;justify-content:space-between;font-size:13.5px;color:var(--muted);margin-bottom:6px}.x-srow .sl span{font-family:var(--serif);font-size:18px;color:var(--ink)}
.x-srow .sb{display:flex;gap:2px;height:44px;max-width:100%}
.x-srow .sb span{width:0;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:4px;transition:width 1.1s var(--ease);transition-delay:calc(var(--i)*.12s + .3s)}
.in-view .x-srow .sb span{width:var(--w)}
.x-srow .sb b{font-size:12.5px;font-weight:600;white-space:nowrap;padding:0 4px}
/* compare / sort */
.x-cmp,.x-sort{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:8px 0}
.x-cmp .col,.x-sort .col{background:var(--stone);border:1px solid var(--line);border-radius:12px;padding:18px 20px;opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .6s var(--ease);transition-delay:calc(var(--i,0)*.16s)}
.x-sort .col.c0{--i:0}.x-sort .col.c1{--i:1}
.in-view .x-cmp .col,.in-view .x-sort .col{opacity:1;transform:none}
.x-cmp .col.b{background:var(--tint);border-color:var(--tint-2)}
.x-cmp h4,.x-sort h4{font-size:20px;margin-bottom:10px}
.x-cmp li{position:relative;padding:7px 0 7px 22px;font-size:15px;line-height:1.5;color:var(--ink);border-top:1px solid var(--line)}
.x-cmp li:before{content:"";position:absolute;left:0;top:14px;width:9px;height:2px;background:var(--forest)}
.x-sort .col.c1{background:#F8ECEA;border-color:#EBD3CF}.x-sort .col.c1 h4{color:var(--red)}.x-sort .col.c0 h4{color:var(--forest)}
.x-sort li{padding:9px 0;border-top:1px solid rgba(27,42,36,.08);font-size:15px;line-height:1.45;opacity:0;transform:translateX(-10px);transition:opacity .5s ease,transform .5s ease;transition-delay:calc(var(--i)*.1s + .3s)}
.in-view .x-sort li{opacity:1;transform:none}
.x-sort li b{display:block;font-weight:600;color:var(--ink)}.x-sort li span{display:block;font-size:13.5px;color:var(--muted);margin-top:2px}
/* matrix */
.x-mxw{overflow-x:auto;margin:6px 0;-webkit-overflow-scrolling:touch}
.x-mx{width:100%;border-collapse:separate;border-spacing:4px;font-size:14px;min-width:480px}
.x-mx th{font-weight:600;color:var(--muted);padding:8px 10px;text-align:left;font-size:12px;letter-spacing:.06em}
.x-mx thead th{text-align:center;text-transform:uppercase;font-size:11px}
.x-mx tbody th{color:var(--ink);font-size:14px;letter-spacing:0;font-weight:600;line-height:1.35}
.x-mx td{text-align:center;padding:10px 8px;border-radius:8px;background:var(--stone);color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.35;opacity:0;transition:opacity .5s ease;transition-delay:calc(var(--i)*.03s + .2s)}
.in-view .x-mx td{opacity:1}
.x-mx td.L1{background:#E4ECE6}.x-mx td.L2{background:#C7D6CC}.x-mx td.L3{background:#6FA58C;color:#fff}.x-mx td.L4{background:#2F7A5F;color:#fff}.x-mx td.L5{background:#1E5B45;color:#fff}
.x-mx td.Lw{background:#F3E3E0}
/* donut */
.x-don{max-width:320px;margin:0 auto;min-width:0!important}
.x-ring-bg{stroke:var(--tint-2)}.x-ring{stroke-linecap:round;stroke-dashoffset:var(--len);transition:stroke-dashoffset 1.6s var(--ease) .3s;fill:none}.x-ring.c-sage{stroke:var(--sage);fill:none}.x-ring.c-forest{stroke:var(--forest);fill:none}
.in-view .x-ring{stroke-dashoffset:var(--off)}
.x-big{font-family:var(--serif);font-size:44px;fill:var(--ink)}.x-sm{font-size:12px;fill:var(--muted)}
.x-dl{justify-content:center}
.gx-body:has(.x-don){overflow:visible}
@media (max-width:1100px){.gl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gl-layout{grid-template-columns:minmax(0,1fr) 280px;gap:40px}}
@media (max-width:960px){
 .gl-layout{grid-template-columns:1fr;gap:28px}.gl-aside{position:static}.gl-aside .gl-tocc{display:none}
 .gl-cat .gl-ch{grid-template-columns:1fr;gap:10px}
 .gl-cats{padding-top:48px}.gl-cat{margin-bottom:52px}.gl-wrap{padding-top:44px}
}
@media (max-width:640px){
 .gl-grid{grid-template-columns:1fr}
 .gl-search input{height:56px;font-size:16px}.gl-search kbd{display:none}
 .gl-def{padding:18px 20px}.gx{padding:20px 16px 18px;border-radius:14px}
 .gx-hd h3{font-size:21px}
 .gx-tiles{grid-template-columns:1fr}.tile{display:flex;align-items:baseline;gap:12px}.tile b{font-size:26px}
 .ladder{height:250px;gap:8px}.rung{padding:12px 10px}.rung .lv{font-size:19px}.rung .as{font-size:11px}
 .rdet{grid-template-columns:1fr}
 .x-flow{flex-direction:column;gap:22px}.x-flow li{margin:0!important}
 .x-flow:not(.na) li:not(:last-child):after{right:auto!important;left:50%!important;top:auto!important;bottom:-19px!important;margin:0 0 0 -7px!important;transform:rotate(90deg)}
 .x-flow.na{flex-direction:row;gap:10px}.x-flow.na li{flex:1 1 100%}
 .x-tl{flex-direction:column;gap:18px;padding-left:8px}.x-tl:before{left:15px;right:auto;top:8px;bottom:8px;width:2px;height:auto}
 .x-tl li{text-align:left;padding:0 0 0 34px}.x-tl li:before{left:7px;top:2px}
 .x-cmp,.x-sort{grid-template-columns:1fr}
 .x-prow{grid-template-columns:1fr 70px}.x-prow .l{grid-column:1/3}.x-prow .tr{grid-column:1}
 .gtbl th,.gtbl td{padding:11px 14px}
 .gx input[type=range]{width:150px}
 .gl-article p{font-size:16.5px}
 .gl-article section{margin-bottom:44px}
}
@media (prefers-reduced-motion:reduce){
 .x-bar,.rung{transform:none}.x-fade{opacity:1}.x-dr{stroke-dashoffset:0}.x-area{opacity:.75}
 .x-flow li,.x-tl li,.x-cmp .col,.x-sort .col,.x-sort li,.x-mx td{opacity:1;transform:none}
 .x-srow .sb span{width:var(--w)}.x-ring{stroke-dashoffset:var(--off)}
}
.page-hero.gl-hero{padding:56px 0 52px}
@media (max-width:640px){.page-hero.gl-hero{padding:36px 0 40px}}
.x-tl,.x-flow,.gl-steps{list-style:none;margin:0;padding:0}
.x-tl>li,.x-flow>li,.gl-steps>li{list-style:none}
.x-tl>li::marker,.x-flow>li::marker,.gl-steps>li::marker{content:""}

.gx-swipe{display:none}
@media (max-width:640px){.gx-swipe{display:block;font-size:12px!important;color:var(--faint)!important;margin:6px 0 0!important;text-align:right}}
.gl-svc a svg{width:14px;height:14px;flex:none}
.gl-article .cap-s{margin:6px 0 14px}
.x-seg{border-radius:20px}
@media (max-width:640px){.x-seg button{padding:7px 12px;font-size:12.5px;white-space:nowrap}}
.gl-article p:not(.gl-more) a{color:var(--forest);text-decoration:underline;text-decoration-color:rgba(31,92,69,.35);text-underline-offset:3px;text-decoration-thickness:1px}
.gl-article p:not(.gl-more) a:hover{text-decoration-color:currentColor}
