/* Product pages: light hero with a live visual, feature rows, stats, provider strip. Builds on site.css and pages.css. */

/* ===== hero ===== */
.pv-hero{padding:calc(var(--header-h) + clamp(56px,7vw,96px)) 0 clamp(40px,6vw,72px)}
.pv-grid{display:grid;grid-template-columns:1fr 1.08fr;gap:clamp(32px,5vw,72px);align-items:center}
@media (max-width:980px){.pv-grid{grid-template-columns:1fr}}
.pv-copy{display:grid;gap:22px;justify-items:start}
.pv-copy h1{font:600 clamp(38px,4.8vw,60px)/1.03 var(--sans);letter-spacing:-.04em;text-wrap:balance}
.pv-copy .lead{max-width:50ch}
.pv-copy .btns{margin-top:4px}
.js .pv-copy>*{opacity:0;transform:translateY(10px);transition:opacity .6s var(--ease-enter),transform .6s var(--ease-enter);transition-delay:calc(var(--s,0) * 90ms + 80ms)}
.js .pv-hero.in .pv-copy>*{opacity:1;transform:none}
.pv-copy>:nth-child(2){--s:1}.pv-copy>:nth-child(3){--s:2}.pv-copy>:nth-child(4){--s:3}

/* the live visual */
.pv-stage{position:relative;isolation:isolate;border-radius:26px;background:var(--paper);box-shadow:0 40px 80px -40px #01182F4D,0 0 0 1px #01182F0F;padding:clamp(18px,2.2vw,26px);min-height:440px;overflow:hidden;display:grid;align-content:start;gap:14px;font-size:14px}
.js .pv-stage{opacity:0;transform:translateY(24px) scale(.985);transition:opacity .9s var(--ease-enter) .25s,transform .9s var(--ease-enter) .25s}
.js .pv-hero.in .pv-stage{opacity:1;transform:none}
.pv-bar{display:flex;align-items:center;gap:10px;font:600 13px/1 var(--sans);color:var(--ink)}
.pv-bar .live{margin-right:2px}
.pv-bar small{margin-left:auto;font:450 12px/1 var(--mono);color:var(--ink-muted)}
.pv-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pv-kpi{padding:12px 14px;border-radius:14px;background:var(--mist);box-shadow:inset 0 0 0 1px var(--line);display:grid;gap:4px}
.pv-kpi small{font-size:12px;color:var(--ink-muted)}
.pv-kpi b{font:500 24px/1 var(--mono);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.pv-kpi.hi b{color:var(--signal)}
@media (max-width:520px){.pv-stage{min-height:0}.pv-kpi b{font-size:20px}}

/* ===== stream (monitoring) ===== */
.tx-list{position:relative;height:312px;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 72%,transparent);mask-image:linear-gradient(180deg,#000 72%,transparent)}
.tx{position:absolute;left:0;right:0;top:0;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;height:48px;padding:0 12px;border-radius:12px;transform:translateY(calc(var(--r) * 52px));opacity:0;transition:transform .6s var(--ease-enter),opacity .5s var(--ease),background .5s var(--ease),box-shadow .5s var(--ease)}
.tx.in{opacity:1}
.tx.gone{opacity:0}
.tx i{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font:600 10px/1 var(--mono);font-style:normal;background:var(--mist);color:var(--ink-2)}
.tx p{font:500 13px/17px var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tx p small{display:block;font:450 11.5px/15px var(--mono);color:var(--ink-muted)}
.tx .s{font:600 11.5px/1 var(--sans);padding:6px 9px;border-radius:7px;background:var(--mist);color:var(--ink-muted);white-space:nowrap;transition:background .4s var(--ease),color .4s var(--ease)}
.tx .s::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:7px;vertical-align:1px}
.tx.scan .s::before{animation:blink .8s steps(2) infinite}
.tx.ok .s{background:var(--risk-low-soft);color:var(--risk-low)}
.tx.hit{background:var(--risk-high-soft);box-shadow:inset 0 0 0 1px #B83C0A33}
.tx.hit .s{background:var(--risk-high);color:#fff}
.tx.sev{background:var(--risk-severe-soft);box-shadow:inset 0 0 0 1px #B4153A33}
.tx.sev .s{background:var(--risk-severe);color:#fff}

/* ===== rule lifecycle ===== */
.rw{font:500 clamp(17px,1.6vw,20px)/1.55 var(--sans);letter-spacing:-.015em;padding:4px 2px 14px;border-bottom:1px solid var(--line)}
.rw span{padding:1px 4px;margin:0 -2px;border-radius:6px;transition:background .5s var(--ease),box-shadow .5s var(--ease)}
.rw.on span[data-c]{background:var(--t);box-shadow:inset 0 -2px 0 var(--c)}
.rw span[data-c="a"]{--c:#0059E0;--t:#D6E4FF}.rw span[data-c="c"]{--c:#23395E;--t:#CFD8E8}.rw span[data-c="t"]{--c:#0F7F82;--t:#C6EDEC}.rw span[data-c="p"]{--c:#8A6A4A;--t:#F0DFC6}
.rw span[data-c]:nth-of-type(2){transition-delay:.2s}.rw span[data-c]:nth-of-type(3){transition-delay:.4s}.rw span[data-c]:nth-of-type(4){transition-delay:.6s}
.bt{display:grid;gap:10px}
.bt-h{display:flex;justify-content:space-between;align-items:baseline;font:600 13px/1 var(--sans)}
.bt-h small{font:450 12px/1 var(--mono);color:var(--ink-muted)}
.bt-c{display:flex;align-items:flex-end;gap:6px;height:120px;padding-top:6px}
.bt-c div{flex:1;display:flex;align-items:flex-end;gap:2px;height:100%}
.bt-c i{flex:1;border-radius:3px 3px 1px 1px;height:0;transition:height .7s var(--ease-enter);transition-delay:calc(var(--k) * 45ms)}
.bt-c i:first-child{background:#C9D2DF}
.bt-c i:last-child{background:var(--avus-blue);transition-delay:calc(var(--k) * 45ms + .5s)}
.bt.on .bt-c i{height:var(--h)}
.bt-lg{display:flex;gap:18px;font-size:12.5px;color:var(--ink-muted)}
.bt-lg span::before{content:"";display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:7px;background:#C9D2DF}
.bt-lg span+span::before{background:var(--avus-blue)}
.lc{display:flex;align-items:flex-start;padding-top:8px}
.lc>div{flex:1;display:grid;justify-items:center;gap:8px;text-align:center;position:relative;font-size:12.5px;line-height:16px;color:var(--ink-muted)}
.lc>div i{position:relative;z-index:1;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--paper);box-shadow:inset 0 0 0 1.5px var(--line-strong);font:500 10.5px/1 var(--mono);font-style:normal;transition:background .4s var(--ease),color .4s var(--ease),box-shadow .4s var(--ease)}
.lc>div::before{content:"";position:absolute;top:12px;right:50%;width:100%;height:2px;background:var(--line)}
.lc>div::after{content:"";position:absolute;top:12px;right:50%;width:100%;height:2px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.lc>div:first-child::before,.lc>div:first-child::after{display:none}
.lc>div.on{color:var(--ink)}
.lc>div.on i{background:var(--ink);color:#fff;box-shadow:none}
.lc>div.on::after{transform:scaleX(1)}
.lc>div.now i{background:var(--avus-blue)}

/* ===== travel rule exchange ===== */
.trx{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.vasp{padding:14px;border-radius:14px;background:var(--mist);box-shadow:inset 0 0 0 1px var(--line);display:grid;gap:3px;transition:box-shadow .5s var(--ease),background .5s var(--ease)}
.vasp small{font:600 10.5px/14px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}
.vasp b{font:600 15px/20px var(--sans);letter-spacing:-.01em}
.vasp span{font:450 11.5px/16px var(--mono);color:var(--ink-muted)}
.vasp.ok{background:var(--risk-low-soft);box-shadow:inset 0 0 0 1px #177A5533}
.trx-line{position:relative;height:30px;margin:2px 24px}
.trx-line::before{content:"";position:absolute;left:0;right:0;top:14px;height:2px;background:repeating-linear-gradient(90deg,var(--line-strong) 0 5px,transparent 5px 10px);opacity:.6}
.trx-pk{position:absolute;left:0;top:5px;display:flex;align-items:center;gap:6px;height:20px;padding:0 8px;border-radius:6px;background:var(--avus-blue);color:#fff;font:600 10.5px/1 var(--mono);transform:translateX(0);opacity:0;transition:transform 1.3s var(--ease),opacity .3s var(--ease)}
.trx-pk.go{opacity:1;transform:translateX(calc(var(--w,300px) - 100%))}
.trx-pk.back{opacity:1;background:var(--risk-low)}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px}
.fields li{display:flex;align-items:center;gap:9px;padding:8px 0;border-top:1px solid var(--line);font-size:13px;color:var(--ink-muted);transition:color .3s var(--ease)}
.fields li::before{content:"";flex:none;width:16px;height:16px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--line-strong);transition:background .3s var(--ease),box-shadow .3s var(--ease)}
.fields li.on{color:var(--ink)}
.fields li.on::before{background:var(--risk-low) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.3 2.3 4.7-5' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat;box-shadow:none}
.release{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;background:var(--mist);font:600 13px/1 var(--sans);color:var(--ink-muted);transition:background .5s var(--ease),color .5s var(--ease)}
.release b{font:500 13px/1 var(--mono)}
.release.on{background:var(--brand);color:#fff}

/* ===== report assembly ===== */
.rp{display:grid;gap:0}
.rp-r{display:grid;gap:4px;padding:11px 0;border-top:1px solid var(--line)}
.rp-r:first-child{border-top:0}
.rp-r span{font:600 10.5px/14px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}
.rp-r p{font-size:13.5px;line-height:20px;min-height:20px}
.rp-r p::after{content:"";display:inline-block;width:1.5px;height:1em;margin-left:1px;vertical-align:text-bottom;background:var(--signal);opacity:0}
.rp-r.typing p::after{opacity:1;animation:blink 1s steps(2) infinite}
.rp-r .src{display:inline-flex;margin-left:6px;font:500 10.5px/1 var(--mono);padding:3px 6px;border-radius:5px;background:var(--signal-soft);color:var(--signal);opacity:0;transition:opacity .4s var(--ease)}
.rp-r.done .src{opacity:1}
.chk{display:grid;gap:6px}
.chk li{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--ink-muted);transition:color .3s var(--ease)}
.chk li::before{content:"";flex:none;width:14px;height:14px;border-radius:4px;box-shadow:inset 0 0 0 1.5px var(--line-strong);transition:background .3s var(--ease),box-shadow .3s var(--ease)}
.chk li.on{color:var(--ink)}
.chk li.on::before{background:var(--risk-low) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.3 2.3 4.7-5' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat;box-shadow:none}
.rp-go{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px solid var(--line)}
.rp-go .btn{height:36px;font-size:13px;padding:0 14px;border-radius:9px;opacity:.35;transition:opacity .4s var(--ease)}
.rp-go.on .btn{opacity:1}
.rp-go small{font-size:12px;color:var(--ink-muted)}

/* ===== audit log ===== */
.lg-list{position:relative;height:350px;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 75%,transparent);mask-image:linear-gradient(180deg,#000 75%,transparent)}
.ev{position:absolute;left:0;right:0;top:0;display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:start;padding:12px 12px 12px 30px;transform:translateY(calc(var(--r) * 70px));opacity:0;transition:transform .6s var(--ease-enter),opacity .5s var(--ease)}
.ev.in{opacity:1}.ev.gone{opacity:0}
.ev::before{content:"";position:absolute;left:10px;top:18px;width:9px;height:9px;border-radius:50%;background:var(--c,var(--ink))}
.ev::after{content:"";position:absolute;left:14px;top:30px;width:1.5px;height:58px;background:var(--line)}
.ev time{font:450 11.5px/18px var(--mono);color:var(--ink-muted)}
.ev p{font-size:13px;line-height:18px}
.ev p small{display:block;margin-top:3px;font:450 11px/14px var(--mono);color:var(--ink-faint)}
.ev em{font-style:normal;font:600 11px/1 var(--sans);padding:5px 8px;border-radius:6px;background:var(--mist);color:var(--c,var(--ink-2));white-space:nowrap}
.ev[data-w="agent"]{--c:var(--signal)}.ev[data-w="engine"]{--c:var(--ink)}.ev[data-w="person"]{--c:var(--risk-low)}
.ev.new{background:linear-gradient(90deg,var(--signal-soft),transparent 80%);border-radius:12px}

/* ===== orbit (integrations) ===== */
.js .pv-orb{opacity:0;transform:scale(.94);transition:opacity 1.1s var(--ease-enter) .2s,transform 1.4s var(--ease-enter) .2s}
.js .pv-hero.in .pv-orb{opacity:1;transform:none}
.orb{position:relative;aspect-ratio:1;width:min(560px,100%);margin:0 auto;display:grid;place-items:center}
.orb-r{position:absolute;inset:var(--in);border-radius:50%;box-shadow:inset 0 0 0 1px #01182F14;animation:spin var(--t) linear infinite}
/* ring spins; each arm is turned to its angle; the chip turns back so the label stays upright */
.orb-r .arm{position:absolute;inset:0;transform:rotate(var(--a))}
.orb-r .n{position:absolute;left:50%;top:0;transform:translate(-50%,-50%) rotate(calc(var(--a) * -1));transition:opacity .4s var(--ease)}
.orb-r .n>span{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border-radius:999px;background:var(--paper);box-shadow:0 8px 20px -10px #01182F40,0 0 0 1px #01182F12;font:500 12.5px/1 var(--sans);color:var(--ink-2);white-space:nowrap;
  animation:spin var(--t) linear infinite reverse;transition:box-shadow .4s var(--ease),color .4s var(--ease)}
.orb-r .n i{width:7px;height:7px;border-radius:50%;background:var(--c,var(--avus-blue))}
.orb.filter .n{opacity:.18}
.orb.filter .n.hi{opacity:1}
.orb.filter .n.hi>span{color:var(--ink);box-shadow:0 10px 24px -10px #0266FC80,0 0 0 1.5px var(--avus-blue)}
.orb-hub{position:relative;z-index:2;width:112px;height:112px;border-radius:30px;background:var(--abyss);display:grid;place-items:center;box-shadow:0 30px 60px -20px #01182F99,0 0 0 10px #0266FC0F,0 0 0 22px #0266FC08}
.orb-hub img{height:42px;width:auto}
.orb-hub::after{content:"";position:absolute;inset:-22px;border-radius:40px;box-shadow:0 0 0 1px #0266FC40;animation:hubping 3s var(--ease) infinite}
@keyframes hubping{0%{transform:scale(.85);opacity:1}100%{transform:scale(1.35);opacity:0}}
@keyframes spin{to{transform:rotate(360deg)}}
/* the outer ring reaches past the screen edge at every width: clip it there rather than scroll */
.pv-hero:has(.orb){overflow-x:clip}
@media (prefers-reduced-motion:reduce){.orb-r,.orb-r .n>span,.orb-hub::after{animation:none}}

.sph-tabs{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:28px}
.sph-tabs button{height:36px;padding:0 14px;border-radius:999px;font:500 14px/1 var(--sans);color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line-strong);transition:background var(--d-quick) var(--ease),color var(--d-quick) var(--ease)}
.sph-tabs button:hover{background:var(--paper)}
.sph-tabs button[aria-pressed="true"]{background:var(--brand);color:#fff;box-shadow:none}

/* spheres directory */
.sph{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width:980px){.sph{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.sph{grid-template-columns:1fr}}
.sp{position:relative;display:grid;gap:12px;align-content:start;padding:24px;border-radius:var(--r-lg);background:#FFFFFFA6;box-shadow:inset 0 0 0 1px var(--line);overflow:hidden;transition:transform var(--d-base) var(--ease),box-shadow var(--d-base) var(--ease),background var(--d-base) var(--ease)}
.sp:hover{transform:translateY(-4px);background:var(--paper);box-shadow:var(--shadow-3)}
.sp .no{font:500 12px/1 var(--mono);color:var(--signal)}
.sp h3{font:600 21px/26px var(--sans);letter-spacing:-.02em}
.sp p{font-size:15px;line-height:22px;color:var(--ink-muted)}
.sp ul{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.sp li{height:28px;display:inline-flex;align-items:center;padding:0 10px;border-radius:7px;background:var(--mist);box-shadow:inset 0 0 0 1px var(--line);font:500 12.5px/1 var(--sans);color:var(--ink-2)}

/* ===== shared sections ===== */
.pv-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line)}
.pv-stats>div{display:grid;gap:8px;padding:26px 24px 6px 0}
.pv-stats>div+div{padding-left:24px;border-left:1px solid var(--line)}
.pv-stats b{font:500 clamp(34px,4vw,48px)/1 var(--mono);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.pv-stats b.hi{color:var(--signal)}
.pv-stats p{font-size:15px;line-height:22px;color:var(--ink-muted);max-width:26ch}
@media (max-width:900px){.pv-stats{grid-template-columns:1fr 1fr}.pv-stats>div:nth-child(3){padding-left:0;border-left:0}.pv-stats>div:nth-child(n+3){border-top:1px solid var(--line);margin-top:18px}}

/* staggered children inside any revealed block */
.js .rv .si{opacity:0;transform:translateY(10px);transition:opacity .55s var(--ease-enter),transform .55s var(--ease-enter);transition-delay:calc(var(--s,0) * 110ms + 150ms)}
.js .rv.in .si{opacity:1;transform:none}

/* dark: who does what */
.pv-dark{border-radius:28px;padding:clamp(28px,5vw,64px);display:grid;gap:clamp(28px,4vw,44px)}
.pv-dark .h-display{color:#fff;max-width:22ch}
.pv-dark .lead{color:#B4C0D4}
.pv-roles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:900px){.pv-roles{grid-template-columns:1fr}}
.pv-role{padding:22px;border-radius:18px;background:#FFFFFF0D;box-shadow:inset 0 0 0 1px #FFFFFF1F;display:grid;gap:10px;align-content:start;transition:background var(--d-base) var(--ease),box-shadow var(--d-base) var(--ease)}
.pv-role:hover{background:#FFFFFF14;box-shadow:inset 0 0 0 1px #6FA0FF66}
.pv-role h3{font:600 20px/26px var(--sans);letter-spacing:-.015em;color:#fff}
.pv-role p{font-size:15px;line-height:23px;color:#B4C0D4}
.pv-role .who{font-size:14px}

/* provider strip */
.strip{position:relative;overflow:hidden;padding:6px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.strip-in{display:flex;gap:10px;width:max-content;animation:marquee var(--t,50s) linear infinite}
.strip:hover .strip-in{animation-play-state:paused}
.strip span{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;border-radius:12px;background:#FFFFFFB3;box-shadow:inset 0 0 0 1px var(--line);font:500 14px/1 var(--sans);color:var(--ink-2);white-space:nowrap}
.strip span small{font:500 11px/1 var(--mono);color:var(--ink-faint)}
.strip.rev .strip-in{animation-direction:reverse}
@keyframes marquee{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.strip-in{animation:none;flex-wrap:wrap;width:auto}}

/* code panel */
.code{border-radius:20px;overflow:hidden;background:var(--abyss);color:#DCE6F8;box-shadow:0 40px 80px -40px #01182F99}
.code-h{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid #FFFFFF1F;font:450 13px/1 var(--mono);color:#B4C0D4}
.code-h b{color:#6FA0FF;font-weight:600}
.code-h em{margin-left:auto;font-style:normal;padding:4px 8px;border-radius:6px;background:#4FD1A01F;color:#4FD1A0}
.code pre{margin:0;padding:18px;font:450 13px/22px var(--mono);overflow-x:auto}
.code .ln{display:block;white-space:pre}
.code i{font-style:normal;color:#93A3BD}.code b{font-weight:500;color:#6FA0FF}.code u{text-decoration:none;color:#4FD1A0}

/* next pages */
.pv-next .caps{margin-top:8px}

@media (max-width:760px){
  .pv-copy h1{font-size:clamp(38px,10.4vw,46px)}
  .pv-stage{font-size:15px;border-radius:22px}
  .pv-stats p{font-size:16px}
  .sp p,.pv-role p{font-size:17px;line-height:25px}
  .fields{grid-template-columns:1fr}
  /* screening rows stack: the transfer on top, its status beneath, so neither gets cut */
  .tx-list{height:372px}
  .tx{height:60px;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;align-content:center;transform:translateY(calc(var(--r) * 64px))}
  .tx i{grid-row:1/3}
  .tx p{font-size:15px;line-height:20px}
  .tx p small{display:none}
  .tx .s{grid-column:2;justify-self:start;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:12.5px;padding:5px 9px}
  /* audit log entries: time and who on one line, the action beneath, at a spacing that fits two lines of text */
  .lg-list{height:400px}
  .ev{grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;align-items:center;transform:translateY(calc(var(--r) * 94px))}
  .ev::after{height:78px}
  .ev time{font-size:12.5px}
  .ev p{grid-column:1/-1;grid-row:2;font-size:14.5px;line-height:20px}
  .ev p small{display:none}
  .ev em{grid-column:2;grid-row:1;font-size:12px}
  /* card headers wrap cleanly: the title keeps its line, the meta moves beneath when it has to */
  .pv-bar{flex-wrap:wrap;row-gap:6px;line-height:1.2}
  .pv-bar small{white-space:nowrap}
  /* smallest labels inside the hero visuals, raised to a readable floor */
  .vasp small,.rp-r span{font-size:11.5px}
  .vasp span,.rp-r .src,.trx-pk,.bt-lg{font-size:12.5px}
  .rp-r p{font-size:14.5px;line-height:21px}
  /* orbit: smaller chips and hub so the rings fit a phone; the hero clips anything the spin carries past the edge */
  .pv-orb{margin:0 calc(var(--gutter) * -1);-webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
  .orb-r .n>span{height:28px;padding:0 10px;gap:6px;font-size:12px}
  .orb-hub{width:84px;height:84px;border-radius:24px;box-shadow:0 24px 48px -20px #01182F99,0 0 0 8px #0266FC0F,0 0 0 16px #0266FC08}
  .orb-hub img{height:32px}
  .orb-hub::after{inset:-16px;border-radius:32px}
  .sph-tabs button{height:40px;font-size:15px;padding:0 16px}
}
@media (prefers-reduced-motion:reduce){
  .js .pv-copy>*,.js .pv-stage,.js .rv .si{opacity:1;transform:none}
}
.fr-copy .oc-n{font:500 13px/1 var(--mono);color:var(--signal)}

/* ===== feature bento: text on top, visual beneath ===== */
.pv-bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}
.pb{grid-column:span 5;position:relative;display:grid;grid-template-rows:auto 1fr;gap:24px;padding:clamp(22px,2.6vw,32px);border-radius:24px;background:#FFFFFF8C;box-shadow:inset 0 0 0 1px var(--line);overflow:hidden;transition:transform var(--d-base) var(--ease),box-shadow var(--d-base) var(--ease),background var(--d-base) var(--ease)}
.pb.w{grid-column:span 7}
.pb:hover{transform:translateY(-3px);background:#FFFFFFD9;box-shadow:inset 0 0 0 1px var(--line),0 30px 60px -36px #01182F4D}
.pb-t{display:grid;gap:10px;align-content:start}
.pb-t h3{font:600 clamp(22px,2.1vw,26px)/1.15 var(--sans);letter-spacing:-.025em}
.pb-t p{font-size:16px;line-height:24px;color:var(--ink-2);max-width:52ch}
.pb-t .ticks{margin-top:4px;gap:6px}
.pb-t .ticks li{font-size:14px;line-height:20px;color:var(--ink-muted)}
.pb-t .oc-n{font:500 13px/1 var(--mono);color:var(--signal)}
.pb-v{display:grid;gap:14px;align-content:start;padding:18px;border-radius:18px;background:var(--paper);box-shadow:0 0 0 1px #01182F0F,0 20px 40px -30px #01182F4D;font-size:14px;min-width:0}
.pb-v:has(> .code){padding:0;background:none;box-shadow:none}
.pb.in .esc-n.done::after,.pb.in .esc-n.now::after{transform:scaleX(1)}
.pb.in .esc-n:nth-child(3)::after{transition-delay:.3s}.pb.in .esc-n:nth-child(4)::after{transition-delay:.6s}
@media (max-width:980px){.pb,.pb.w{grid-column:span 12}}
@media (max-width:760px){.pb-t p{font-size:17px;line-height:25px}.pb-t .ticks li{font-size:16px;line-height:23px}.pb-v{font-size:15px}}

/* ===== cursor light on cards: the same touch as the home regulation cards ===== */
.pb,.gd2,.sp{isolation:isolate}
.pb::before,.gd2::before,.sp::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),#0266FC17,transparent 65%);opacity:0;transition:opacity var(--d-gentle) var(--ease);pointer-events:none}
.pb::after,.gd2::after,.sp::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:radial-gradient(300px circle at var(--mx,50%) var(--my,0%),#0266FC,transparent 70%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity var(--d-gentle) var(--ease);pointer-events:none}
.pb:hover::before,.pb:hover::after,.gd2:hover::before,.gd2:hover::after,.sp:hover::before,.sp:hover::after{opacity:1}
.pb:hover,.gd2:hover,.sp:hover{transform:translateY(-4px);background:var(--paper);box-shadow:var(--shadow-3)}
