/* polish2: section colour rhythm, readable type, higher-end components and motion states.
   Loaded last on every page. Tokens live in tokens.css. Motion uses transform and opacity only. */

/* ---------- Type scale and measure ---------- */
body[data-layout=terminal]{font-size:var(--fs-body);line-height:1.65;-webkit-font-smoothing:antialiased}
body[data-layout=terminal] main p{max-width:var(--measure)}
body[data-layout=terminal] main :where(td,th,li,dd,dt,label,summary){font-size:max(1em,var(--fs-label))}
.band-title,.term-panel .section-head h2,.docs-content h2{font-size:var(--fs-h2)!important;line-height:1.08;letter-spacing:-.03em;font-weight:400}
.band-gutter h3,.story-copy h3,.checker-copy h3,.incident-copy h3,.relay-step h3,.partner-card h3,.reserve-card h3,.principle h3,.history-copy h3,.check-aside h3,.docs-content h3{font-size:var(--fs-h3)!important;line-height:1.2;letter-spacing:-.02em}
.band-gutter p,.partner-intro p,.relay-step p,.partner-card p,.term .token-copy>p,.term-panel .section-head p,.docs-content p,.docs-content ul,.ph-title p,.principle p,.history-copy p,.check-aside p,.form-help,.cg-description{font-size:var(--fs-body)!important;line-height:1.65}
.band-gutter p,.term-panel .section-head p{font-size:var(--fs-small)!important}
.band-stamp,.band-code,.eyebrow,.micro,.cg-overline,.ph-name,.ph-crumb,.relay-t,.relay-k,.partner-state,.tag,.state,.board-key,.board-note,.flap-board thead th,.table-caption,.legend,.status-message,.watch-bottom,.tool-metrics span,.token-meta dt,.diagram-caption,.cg-term-path,.cg-term-file,.cg-term-replay,.tl-t,.partner-strip,.partner-label,.coverage-list span,.docs-nav a,.tfoot-legal,.cg-feed-time,.cg-context p,.cg-observation,.cg-pause,.prompt-out,.ticker-band,.lb .lb-read,.exchange-card span,.route-meta .micro{font-size:var(--fs-label)!important;letter-spacing:.02em!important}
.partner-note,.reserve-note,.board-note{font-size:var(--fs-small)!important;line-height:1.7!important;max-width:var(--measure)}
.flap-board td,.fl-tiles{font-size:14px!important}
.tbar-tabs a,.tbar-tabs a:first-child{font-size:14px}
.tfoot-board a{font-size:15px!important}
.cg-term .tl{font-size:14px!important;line-height:1.75}
.network-table,.partner-coverage{font-size:14px!important}
.flap-board,.tool-metrics strong,.reserve-value,.partner-value,[data-cg-routes],.network-table,.cg-instrument strong,.token-meta dd,.p2x-reading,.p2x-num,.partner-prices p,.history-chart{font-variant-numeric:tabular-nums lining-nums}

/* One clear primary action per section: secondary buttons read as quiet links. */
.board-actions .term-btn:not(.primary),.token-copy .board-actions .term-btn:not(.primary){background:transparent;border-color:transparent;text-decoration:underline;text-decoration-color:var(--ice);text-underline-offset:5px;text-decoration-thickness:2px}
.board-actions .term-btn:not(.primary):hover{background:transparent;text-decoration-color:currentColor}
.term-btn,.btn,.cg-primary,.cg-secondary{transition:transform .35s var(--ease-out),background-color .2s,box-shadow .35s var(--ease-out)}
.term-btn.primary:hover,.btn.primary:hover,.cg-primary:hover{transform:translateY(-2px);box-shadow:0 10px 26px -12px #25266899}
.term-btn:active,.btn:active{transform:translateY(0) scale(.98)}

/* ---------- Section colour rhythm ---------- */
body[data-layout=terminal] [data-band]{position:relative}
body[data-layout=terminal] [data-band=sweep]{background:var(--band-sweep)!important}
body[data-layout=terminal] [data-band=lavender]{background:var(--band-lavender)!important}
body[data-layout=terminal] [data-band=ice]{background:var(--band-ice)!important}
body[data-layout=terminal] [data-band=mint]{background:var(--band-mint)!important}
body[data-layout=terminal] [data-band=lilac]{background:var(--band-lilac)!important}
body[data-layout=terminal] [data-band=apricot]{background:var(--band-apricot)!important}
body[data-layout=terminal] [data-band=navy]{background:var(--band-navy)!important;color:var(--on-navy)}
body[data-layout=terminal] main>[data-band],body[data-layout=terminal] .cg-hero>[data-band]{border:0!important}
body[data-layout=terminal] .section{border-bottom:0}
/* the gate board sits inside the hero; bleed its band to the page edges */
.cg-hero .board-band[data-band]{padding-bottom:24px!important}

/* Light text on the navy band. Light panels inside it keep navy ink. */
[data-band=navy],[data-band=navy] *{color:var(--on-navy)}
[data-band=navy] :where(p,dd,li,small,.micro,.eyebrow,.band-stamp,.status-message){color:var(--on-navy-2)}
[data-band=navy] a{text-decoration-color:var(--mint)}
[data-band=navy] a:hover{color:var(--mint)}
[data-band=navy] .eyebrow:before{background:var(--mint)}
body [data-band=navy] :is(.reserve-card,.check-form-panel,.p2-light),body [data-band=navy] :is(.reserve-card,.check-form-panel,.p2-light) *{color:var(--ink)}
[data-band=navy] :is(.reserve-card,.check-form-panel,.p2-light) :is(a:hover){color:var(--ink)}
[data-band=navy] .term-btn:not(.primary),[data-band=navy] .btn:not(.primary){background:transparent;border-color:var(--navy-line);color:var(--on-navy)}
[data-band=navy] .term-btn.primary,[data-band=navy] .btn.primary{background:var(--mint);border-color:var(--mint);color:var(--ink)}
[data-band=navy] .check-form-panel .btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}
[data-band=navy] .coverage-list li{border-color:var(--navy-line)!important}
[data-band=navy] .tag.gray,[data-band=navy] .state.unknown{border-color:var(--on-navy-2);color:var(--on-navy)!important}
[data-band=navy] .proof-workbench *{color:var(--on-navy)}
[data-band=navy] .proof-json,[data-band=navy] .proof-json *{color:var(--ice)!important}
[data-band=navy] .ticker-track span{color:var(--on-navy)!important}
[data-band=navy] .lamp.live{border-color:var(--mint)}

/* Ticker as a navy signal strip */
.ticker-band[data-band=navy] .ticker-label{color:var(--mint)!important}

/* Footer closes every page on navy */
body[data-layout=terminal] .tfoot{background:var(--band-navy);color:var(--on-navy)}
body[data-layout=terminal] .tfoot :is(.tfoot-bar,.tfoot-board a,.fb-arrow,.tfoot-legal,.tfoot-legal span){color:var(--on-navy)}
body[data-layout=terminal] .tfoot-legal{border-top-color:var(--navy-line);color:var(--on-navy-2)}
body[data-layout=terminal] .tfoot-board a{border-bottom:1px solid var(--navy-line)!important;transition:color .2s}
body[data-layout=terminal] .tfoot-board a:hover{color:var(--mint);text-decoration:none}
body[data-layout=terminal] .tfoot-board a:hover .fb-arrow{transform:translate(3px,-3px)}
.fb-arrow{display:inline-block;transition:transform .35s var(--ease-out)}
body[data-layout=terminal] .tfoot a:focus-visible{outline-color:var(--mint)}
[data-band=navy] :is(a,button,input,select,summary):focus-visible{outline-color:var(--mint)}

/* Cards on tinted bands read a step lighter than the band */
[data-band] :is(.partner-card,.reserve-card,.principle,.history-shell,.proof-workbench,.cgp,.prompt,.cg-term,.check-form-panel,.tool-metrics,.brand-stage){background:var(--paper)}
[data-band=mint] .partner-card[data-push-card]{background:var(--paper)}
[data-band=navy] .reserve-card,[data-band=navy] .check-form-panel{background:var(--band-sweep)}
.exchange-detail{background:var(--paper)}
body [data-band=navy] :is(.proof-workbench,.brand-stage,.brand-story,.brand-logo-panel){background:var(--navy-raised)}
body [data-band=navy] .brand-logo-panel{background:var(--band-navy)}
body [data-band=navy] :is(.proof-workbench,.brand-stage) *{color:var(--on-navy)}
body [data-band=navy] :is(.proof-workbench,.brand-stage) :is(p,small,.micro,.detail-note,.proof-note){color:var(--on-navy-2)}
body [data-band=navy] .proof-workbench :is(code,.code,.proof-json,.proof-json *){color:var(--ice)!important}
body [data-band=navy] .proof-workbench>*+*{border-color:var(--navy-line)!important}

/* ---------- Nav logo: transparent Blender gate with a soft outline glow ---------- */
.tbar-crop{width:auto!important;height:44px!important;border-radius:0!important;background:none!important;overflow:visible!important;display:inline-flex;align-items:center;box-shadow:none!important;border:0!important}
.tbar-crop picture{display:block;height:100%}
.tbar-crop img{transform:none!important;width:auto!important;height:100%!important;object-fit:contain;filter:drop-shadow(0 0 1.5px #bfd0e9) drop-shadow(0 0 5px #aee0dcb3) drop-shadow(0 0 10px #bfd0e980);transition:transform .5s var(--ease-out)}
.tbar-mark:hover .tbar-crop img{transform:translateY(-2px)!important}
@media(max-width:760px){.tbar-crop{height:36px!important}}

/* ---------- Components ---------- */
/* Border beam (after Magic UI Border Beam, MIT): a light travels around live data surfaces. */
.p2-beam{position:relative;isolation:isolate;border-radius:var(--beam-r,28px);padding:1.5px;overflow:hidden}
.p2-beam>.p2-beam-spin{position:absolute;left:50%;top:50%;width:max(160%,900px);aspect-ratio:1;z-index:-2;pointer-events:none;background:conic-gradient(from 0deg,transparent 0 72%,var(--beam-a,#bfd0e9) 80%,var(--beam-b,#aee0dc) 88%,transparent 94%);transform:translate(-50%,-50%) rotate(0deg);animation:p2-spin var(--beam-t,7s) linear infinite;opacity:.95}
.p2-beam:after{content:"";position:absolute;inset:1.5px;border-radius:calc(var(--beam-r,28px) - 1.5px);background:var(--beam-fill,var(--paper));z-index:-1}
.p2-beam.p2-off>.p2-beam-spin,.p2-beam.p2-still>.p2-beam-spin{animation-play-state:paused}
@keyframes p2-spin{to{transform:translate(-50%,-50%) rotate(360deg)}}
.flap-wrap.p2-beam{--beam-r:24px;--beam-fill:var(--paper)}
.flap-wrap.p2-beam .flap-board{background:transparent}

/* Spotlight card (after Magic UI Magic Card, MIT): a glow follows the pointer. Transform only. */
.p2-spot{position:relative;isolation:isolate;overflow:hidden}
.p2-spot>.p2-spot-glow{position:absolute;left:0;top:0;width:340px;height:340px;margin:-170px 0 0 -170px;border-radius:50%;pointer-events:none;z-index:-1;background:radial-gradient(circle,#aee0dc66 0,#bfd0e940 38%,transparent 70%);opacity:0;transform:translate(var(--sx,50%),var(--sy,50%));transition:opacity .4s var(--ease-out)}
.p2-spot:hover>.p2-spot-glow,.p2-spot:focus-within>.p2-spot-glow{opacity:1}
.p2-spot{transition:transform .45s var(--ease-out),box-shadow .45s var(--ease-out)}
.p2-spot:hover{transform:translateY(-3px);box-shadow:0 18px 40px -26px #25266880}
[data-band=navy] .p2-spot>.p2-spot-glow{background:radial-gradient(circle,#aee0dc80 0,#bfd0e94d 40%,transparent 70%)}

/* Live data pulse: a ring expands once when a fresh reading changes a value. */
.p2-pulse{position:relative}
.p2-pulse-ring{position:absolute;inset:-6px;border-radius:inherit;border:2px solid var(--mint);pointer-events:none;opacity:0;transform:scale(.96)}
.p2-pulse.is-pulsing>.p2-pulse-ring{animation:p2-ring 1.3s var(--ease-out)}
@keyframes p2-ring{0%{opacity:.9;transform:scale(.96)}100%{opacity:0;transform:scale(1.05)}}
.p2-flash{animation:p2-flash 1.2s var(--ease-out)}
@keyframes p2-flash{0%{opacity:.35}100%{opacity:1}}
.live-dot{position:relative}
.live-dot:after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1.5px solid var(--mint);opacity:0}
.p2-live .live-dot:after{animation:p2-dot 2.4s var(--ease-out) infinite}
@keyframes p2-dot{0%{opacity:.9;transform:scale(.5)}80%,100%{opacity:0;transform:scale(1.6)}}

/* Scroll reveal (after Magic UI Blur Fade, MIT; blur dropped to keep motion to transform and opacity). */
.p2-motion [data-p2-reveal]{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease-out),transform .9s var(--ease-out);transition-delay:var(--p2-d,0s)}
.p2-motion [data-p2-reveal].is-in{opacity:1;transform:none}

/* Relay stepper on home: a drawn connector between the three steps */
.relay{position:relative}
.p2-rail{position:absolute;left:0;right:0;top:15px;height:2px;background:#bfd0e980;overflow:hidden;pointer-events:none}
.p2-rail>i{position:absolute;inset:0;background:linear-gradient(90deg,var(--ice),var(--mint));transform-origin:0 50%;transform:scaleX(var(--p2-p,1))}
.relay-step{position:relative;padding-top:0!important}
.relay-t{position:relative;z-index:1;background:var(--band-ice);padding-right:10px}
@media(max-width:960px){.p2-rail{display:none}}

/* Incident timeline rail */
.p2-tl{position:relative;padding-left:26px!important}
.p2-tl>.p2-tl-rail{position:absolute;left:8px;top:14px;bottom:14px;width:2px;background:#cfb5e680;overflow:hidden}
.p2-tl>.p2-tl-rail>i{position:absolute;inset:0;background:linear-gradient(180deg,var(--ink),var(--lilac));transform-origin:50% 0;transform:scaleY(var(--p2-p,1))}
.timeline.p2-tl>*{position:relative}
.timeline.p2-tl>*:not(.p2-tl-rail):before{content:"";position:absolute;left:-23px;top:10px;width:10px;height:10px;border-radius:50%;background:var(--band-apricot);border:2px solid var(--ink)}

/* Deposit check stepper */
.p2-stepper{list-style:none;margin:0 0 28px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;counter-reset:p2s}
.p2-stepper li{counter-increment:p2s;display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-label);line-height:1.4;color:var(--ink);padding-top:14px;position:relative}
.p2-stepper li:before{content:counter(p2s);flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:1.5px solid #8785b1;background:var(--paper);font:700 13px var(--body);transition:background-color .3s,border-color .3s}
.p2-stepper li:after{content:"";position:absolute;left:0;right:0;top:0;height:3px;border-radius:3px;background:var(--mint);transform-origin:0 50%;transform:scaleX(0);transition:transform .7s var(--ease-out)}
.p2-stepper li[data-state=active]:before{border-color:var(--ink);background:var(--band-ice)}
.p2-stepper li[data-state=done]:before{content:"✓";background:var(--mint);border-color:#185947;color:#185947}
.p2-stepper li[data-state=done]:after{transform:scaleX(1)}
.p2-stepper li[data-state=active]:after{transform:scaleX(.35);background:var(--ice)}
.p2-stepper b{display:block;font-size:15px}
@media(max-width:560px){.p2-stepper{grid-template-columns:1fr;gap:4px}.p2-stepper li{padding-top:8px}.p2-stepper li:after{display:none}}
.check-form-panel.p2-beam{padding:1.5px!important;--beam-r:28px;--beam-fill:var(--band-sweep)}
.check-form-panel.p2-beam>.p2-inner{padding:clamp(22px,3vw,38px)}

/* ---------- Home explainer: one transfer through three checkpoints ---------- */
.p2x{padding:clamp(56px,7vw,110px) var(--pad)}
.p2x-head{max-width:1280px;margin:0 auto clamp(28px,4vw,52px);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:24px 56px;align-items:end}
.p2x-head .eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:14px;font:700 var(--fs-label) var(--body);letter-spacing:.08em!important}
.p2x-head h2{font:400 var(--fs-h2)/1.06 var(--display);letter-spacing:-.03em;margin:0;color:var(--on-navy)}
.p2x-head p{margin:0;font-size:var(--fs-body)!important}
.p2x-pick{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.p2x-pick button{font:600 14px var(--body);min-height:44px;padding:10px 16px;border-radius:40px;border:1px solid var(--navy-line);background:transparent;color:var(--on-navy);cursor:pointer;transition:background-color .2s,border-color .2s,transform .3s var(--ease-out)}
.p2x-pick button:hover{border-color:var(--mint);transform:translateY(-1px)}
.p2x-pick button[aria-pressed=true]{background:var(--on-navy);border-color:var(--on-navy);color:var(--ink)}
.p2x-body{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,5vw,72px);align-items:start}
.p2x-stage{position:sticky;top:132px;border-radius:30px;background:var(--navy-raised);padding:clamp(18px,2.4vw,30px);overflow:hidden}
.p2x-map{position:relative;padding-top:4px}
.p2x-rail{position:absolute;left:10%;right:10%;top:15px;height:4px;border-radius:4px;background:var(--navy-line)}
.p2x-rail-fill{position:absolute;inset:0;border-radius:inherit;background:linear-gradient(90deg,var(--ice),var(--mint));transform-origin:0 50%;transform:scaleX(var(--p2x-p,1))}
.p2x-token{position:absolute;left:-9px;top:50%;width:18px;height:18px;border-radius:50%;background:var(--on-navy);box-shadow:0 0 0 4px #aee0dc55,0 0 18px 2px #aee0dc88;z-index:3;transform:translate(0,-50%);will-change:transform}
.p2x-nodes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:relative;z-index:2}
.p2x-n{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;min-width:0}
.p2x-lamp{width:26px;height:26px;border-radius:50%;border:2px solid var(--on-navy-2);background:var(--navy-raised);position:relative;margin-bottom:8px;transition:background-color .5s,border-color .5s}
.p2x-lamp:after{content:"";position:absolute;inset:-8px;border-radius:50%;border:2px solid var(--mint);opacity:0}
.p2x-n.is-reached[data-state=pass] .p2x-lamp{background:var(--mint);border-color:var(--mint)}
.p2x-n.is-reached[data-state=pause] .p2x-lamp{background:var(--orange);border-color:var(--orange)}
.p2x-n.is-reached[data-state=pause] .p2x-lamp:after{border-color:var(--orange)}
.p2x-n.is-reached[data-state=unknown] .p2x-lamp{border-style:dashed;border-color:var(--ice)}
.p2x-n.is-current .p2x-lamp{transform:scale(1.18);transition:transform .45s var(--ease-out),background-color .5s,border-color .5s}
.p2x-n.is-live .p2x-lamp:after{animation:p2x-halo 1.6s var(--ease-out)}
@keyframes p2x-halo{0%{opacity:.95;transform:scale(.7)}100%{opacity:0;transform:scale(1.5)}}
.p2x-n-name{font:700 15px/1.2 var(--body);color:var(--on-navy)}
.p2x-n-sub{font-size:13px;color:var(--on-navy-2)!important}
.p2x-n-state{margin-top:6px;font:700 11.5px/1.25 var(--body);letter-spacing:.05em;color:var(--on-navy-2)!important;opacity:.6;transition:opacity .5s}
.p2x-n.is-reached .p2x-n-state{opacity:1}
.p2x-n.is-reached[data-state=pass] .p2x-n-state{color:var(--mint)!important}
.p2x-n.is-reached[data-state=pause] .p2x-n-state{color:var(--orange)!important}
.p2x-feeds{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:10px}
.p2x-f{grid-column:var(--col);grid-row:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;min-width:0}
.p2x-f-line{width:2px;height:26px;background:var(--navy-line);position:relative;overflow:hidden}
.p2x-f-line i{position:absolute;inset:0;background:var(--mint);transform-origin:50% 100%;transform:scaleY(0);transition:transform .8s var(--ease-out)}
.p2x-f.is-on .p2x-f-line i{transform:scaleY(1)}
.p2x-f[data-state=offline] .p2x-f-line i{background:var(--orange)}
.p2x-f-name{font:700 13px var(--body);padding:6px 12px;border-radius:30px;border:1.5px solid var(--navy-line);transition:border-color .5s;white-space:nowrap}
.p2x-f.is-on .p2x-f-name{border-color:var(--mint)}
.p2x-f.is-on[data-state=offline] .p2x-f-name{border-color:var(--orange)}
.p2x-f-state{font:700 11.5px var(--body);letter-spacing:.04em;color:var(--on-navy-2)!important;font-variant-numeric:tabular-nums}
.p2x-caption{margin:14px 4px 0;font-size:var(--fs-label)!important;color:var(--on-navy-2)!important;max-width:none!important}
.p2x-steps{list-style:none;margin:0;padding:0;display:grid;gap:0}
.p2x-step{padding:clamp(22px,3vw,34px) 0 clamp(22px,3vw,34px) 28px;border-top:1px solid var(--navy-line);position:relative;min-height:clamp(200px,34vh,340px);transition:opacity .5s var(--ease-out)}
.p2x-step:last-child{min-height:0}
.p2x-step:before{content:"";position:absolute;left:0;top:clamp(30px,3.4vw,42px);width:12px;height:12px;border-radius:50%;border:2px solid var(--on-navy-2)}
.p2x-step[data-state=pass]:before{background:var(--mint);border-color:var(--mint)}
.p2x-step[data-state=pause]:before{background:var(--orange);border-color:var(--orange)}
.p2x-step[data-state=unknown]:before,.p2x-step[data-state=offline]:before{border-style:dashed;border-color:var(--ice)}
.p2x-motion .p2x-step{opacity:.72}
.p2x-motion .p2x-step.is-current{opacity:1}
.p2x-k{display:block;font:700 var(--fs-label) var(--body);letter-spacing:.08em;color:var(--mint)!important;margin-bottom:8px}
.p2x-step h3{font:400 var(--fs-h3)/1.2 var(--display);letter-spacing:-.02em;margin:0 0 10px}
.p2x-step p{margin:0 0 12px;font-size:var(--fs-body)!important}
.p2x-reading{display:inline-block;padding:10px 14px;border-radius:16px;background:var(--navy-raised);font-size:15px;color:var(--on-navy)!important;max-width:100%}
.p2x-reading b{font:700 20px var(--body);color:var(--on-navy);margin-right:4px}
.p2x-reading+.p2x-reading{margin-top:8px}
.p2x-verdict{display:inline-block;padding:4px 10px;border-radius:20px;font:700 12px var(--body);letter-spacing:.06em;background:transparent;border:1px solid var(--ice);color:var(--on-navy)!important}
.p2x-verdict[data-state=pass]{background:var(--mint);border-color:var(--mint);color:var(--ink)!important}
.p2x-verdict[data-state=pause]{background:var(--orange);border-color:var(--orange);color:var(--ink)!important}
.p2x-src{font-size:var(--fs-label);display:inline-block;margin-top:4px}
.p2x-end{max-width:1280px;margin:clamp(24px,4vw,48px) auto 0;display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;justify-content:space-between;border-top:1px solid var(--navy-line);padding-top:24px}
.p2x-end p{margin:0;font-size:var(--fs-small)!important}
@media(max-width:960px){
  .p2x-head,.p2x-body{grid-template-columns:1fr}
  .p2x-stage{top:84px;z-index:2;padding:12px 12px 8px;border-radius:22px;box-shadow:0 18px 30px -18px var(--band-navy)}
  .p2x-step{min-height:0}
  .p2x-caption{display:none}
}
@media(max-width:560px){.p2x-pick button{padding:8px 12px;font-size:13px;min-height:44px}
  .p2x-n-sub,.p2x-f-state{display:none}
  .p2x-n-name{font-size:13px}
  .p2x-lamp{width:22px;height:22px;margin-bottom:6px}
  .p2x-rail{top:13px}
  .p2x-f-line{height:14px}
  .p2x-f-name{font-size:12px;padding:4px 10px}
  .p2x-feeds{margin-top:4px}
}

/* ---------- Reduced motion: everything readable and still ---------- */
@media(prefers-reduced-motion:reduce){
  .p2-beam>.p2-beam-spin{animation:none;opacity:.55}
  .p2-spot,.p2-spot:hover{transform:none}
  .p2-spot>.p2-spot-glow{display:none}
  .p2-pulse.is-pulsing>.p2-pulse-ring,.p2-live .live-dot:after{animation:none}
  .p2x-n.is-live .p2x-lamp:after{animation:none}
  .p2x-stage{position:relative;top:auto}
  .p2x-step{min-height:0}
  .p2-flash{animation:none}
}
.band-body{grid-template-columns:minmax(280px,360px) minmax(0,1fr)!important;column-gap:clamp(28px,4vw,64px)!important}
@media(max-width:960px){.band-body{grid-template-columns:1fr!important}}

/* Readability floor: every small label found by tools/polish2/contrast.mjs lifted to 12px or more. */
.cg-kicker,.cg-exchanges button,.cg-reading a,.cg-instrument span,.cg-more p,.detail-source,.detail-source *,.exchange-card .text-link,.exchange-initial,.exchange-readout,.exchange-readout b,.address-visual p,.doc-flow span,.partner-prices time,.partner-prices a,.incident-source a,.timeline-item a,.timeline-item time,.partner-card a,.partner-card time,.proof-links a,.segmented button,.cgp-btn,.example-button,.step-index,.swatch-text,.swatch-text span,.reserve-card p,.reserve-card details p,.proof-workbench p,.history-note,.history-labels span,.story-legend span{font-size:max(13px,1em)!important}
.cg-kicker,.cg-instrument span,.history-labels span,.story-legend span,.doc-flow span,.exchange-initial{font-size:12px!important}
.proof-workbench pre.code{font-size:13px!important}
.p2x-n-state,.p2x-f-state{font-size:12px}
[data-band=navy] .coverage-list span{color:var(--mint)!important;font-family:var(--body)!important;font-weight:700;letter-spacing:.06em!important}
@media(max-width:760px){
  .cg-primary,.cg-secondary,.board-foot .term-btn,.filter-row .btn,.partner-item span,.detail-note,.alert p,.alert a,.alert strong{font-size:13px!important}
  .tbar-wallet{font-size:12px!important;padding:10px 12px!important}
  .tbar .menu-button{font-size:12px!important}
}

/* Route lamp rows: give the readout room once labels are readable size */
.term .exchange-card .tag{font-size:12px!important;white-space:nowrap}
.term .exchange-readout{font-size:14px!important;line-height:1.45}
@media(min-width:1181px){.term .exchange-card{grid-template-columns:minmax(140px,.8fr) max-content minmax(220px,1.9fr) minmax(160px,1.1fr) auto}}
@media(min-width:961px) and (max-width:1180px){.term .exchange-card{grid-template-columns:1fr max-content;gap:10px 16px}.term .exchange-readout{grid-column:1/-1}.term .exchange-card .text-link{grid-column:1/-1;justify-self:start}}
.term .exchange-card .text-link{white-space:nowrap}
.term .token-art img{mix-blend-mode:normal}
.term .watch-bottom a{white-space:nowrap}
/* Bands on elements narrower than the page (brand banner is itself a .wrap) still reach both edges */
body[data-layout=terminal] .brand-banner[data-band]{box-shadow:0 0 0 100vmax var(--band-mint);clip-path:inset(0 -100vmax);padding-top:clamp(40px,5vw,72px)}
.brand-story p,[data-page=brand] main li,[data-page=trust] #sources p,[data-page=trust] .principles~* p,.brand-type p{font-size:var(--fs-small)!important;line-height:1.65}
.cgp-btn,.segmented button,.example-button{font-size:13px!important}
@media(min-width:761px){.cg-exchanges button{font-size:12px!important;padding-inline:11px!important}}
