/* Page-specific rules: src/pages/trust.astro (redesign). Shared tokens and chrome live in /styles/lp/base.css. */

/* ---------- type (page overrides) ---------- */
:root{--color-divider:rgba(244,242,241,.16);}
.h1{font-size:clamp(40px,5.4vw,76px);line-height:1;letter-spacing:-.035em}
.inline-link{color:var(--accent-text);border-bottom:1px solid transparent;transition:border-color .2s}
.inline-link:hover{border-color:var(--accent-text)}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;background:var(--ink);padding:calc(78px + clamp(64px,9vh,120px)) 0 clamp(56px,7vw,96px)}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(55% 60% at 88% 10%,rgba(25,181,122,.13),transparent 60%);pointer-events:none}
.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:32px clamp(32px,6vw,96px);align-items:end}
.hero .eyebrow{margin-bottom:26px}
.hero .h1{margin-bottom:26px;max-width:16ch}
.hero .lede{max-width:58ch}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.chip{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--line-2);border-radius:999px;font-size:13px;color:var(--fg)}
.chip i{width:6px;height:6px;border-radius:50%;background:var(--accent)}
.chip.on{background:rgba(25,181,122,.12);border-color:rgba(25,181,122,.5);color:var(--accent-text)}
.hero-aside{border-left:1px solid var(--line);padding-left:clamp(20px,3vw,40px)}
.kv{display:grid;gap:0}
.kv li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:13px 0;border-top:1px solid var(--line);font-size:14.5px;color:var(--fg-2)}
.kv li:first-child{border-top:0;padding-top:0}
.kv b{font-weight:600;color:var(--fg);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:16px}

/* ---------- commitments ---------- */
.commit{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.commit-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px 26px 26px;min-height:280px;display:flex;flex-direction:column;position:relative;overflow:hidden}
.commit-card::after{content:"";position:absolute;inset:auto 0 0 0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease)}
.commit-card:hover::after{transform:scaleX(1)}
.commit-card svg{width:26px;height:26px;color:var(--accent-text);margin-bottom:auto}
.commit-card b{display:block;font-size:19px;font-weight:500;letter-spacing:-.015em;margin:26px 0 8px}
.commit-card p{font-size:14.5px;color:var(--fg-2);line-height:1.55}

/* ---------- stack ---------- */
.stack-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.st{background:var(--ink);padding:26px 24px;display:grid;gap:12px;align-content:start;transition:background .3s}
.st:hover{background:var(--card)}
.st-mark{height:32px;display:flex;align-items:center}
.st-mark img{height:26px;width:auto;max-width:120px;filter:brightness(0) invert(1);opacity:.85}
.st-mark img.wide{height:22px}
.st-name{font-size:16px;font-weight:500;letter-spacing:-.01em}
.st-role{font-size:14px;line-height:1.55;color:var(--fg-2)}
.st-where{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3)}
.st-where.ca{color:var(--accent-text)}
.stack-note{margin-top:16px;font-size:12.5px;color:var(--fg-3);max-width:80ch}

/* ---------- sub-processors ---------- */
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card)}
.tbl{min-width:820px}
.tbl th,.tbl td{text-align:left;padding:15px 20px;border-top:1px solid var(--line);font-size:14.5px;vertical-align:top;line-height:1.5}
.tbl thead th{border-top:0;border-bottom:1px solid var(--line-2);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3);font-weight:500;padding:16px 20px}
.tbl td:first-child{font-weight:500;white-space:nowrap}
.tbl td:nth-child(2),.tbl td:nth-child(3){color:var(--fg-2)}
.tbl .reg{white-space:nowrap}
.tbl .reg.ca{color:var(--accent-text);font-weight:500}
.tbl-note{margin-top:18px;font-size:13.5px;color:var(--fg-2);max-width:80ch}

/* ---------- architecture map (ported; structure unchanged, tokens mapped) ---------- */
.rv-flow .rvf-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.rv-flow .rvf-tabs label{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:8px 14px;border:1px solid var(--color-divider);border-radius:4px;font-family:var(--font-heading);font-weight:500;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--rv-bone) 72%,transparent);cursor:pointer;user-select:none;transition:border-color .2s,background .2s,color .2s}
.rv-flow .rvf-tabs label input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.rv-flow .rvf-tabs label input:focus-visible+span{outline:3px solid var(--color-accent);outline-offset:4px;border-radius:4px}
.rv-flow .rvf-tabs label span i{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;margin-right:8px;opacity:.5}
.rv-flow .rvf-tabs label:has(input:checked){border-color:var(--color-accent);color:var(--rv-bone);background:color-mix(in srgb,var(--color-accent) 12%,transparent)}
.rv-flow .rvf-tabs label:has(input:checked) span i{background:var(--color-accent);opacity:1}
.rv-flow .rvf-map{border:1px solid var(--color-divider);border-radius:10px;background:var(--rv-deep-surface);overflow-x:auto;-webkit-overflow-scrolling:touch;box-shadow:0 40px 90px rgba(0,0,0,.45)}
.rv-flow .rvf-map svg{display:block;width:100%;min-width:900px;height:auto;font-family:var(--font-body)}
.rv-flow .rvf-legend{display:flex;flex-wrap:wrap;gap:8px 22px;padding:12px 16px;border-top:1px solid var(--color-divider);font-size:12.5px;color:color-mix(in srgb,var(--rv-bone) 62%,transparent)}
.rv-flow .rvf-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:-1px;margin-right:7px}
.rv-flow .nd rect.bg{fill:var(--rv-surface);stroke:color-mix(in srgb,var(--rv-bone) 22%,transparent);stroke-width:1.5;transition:stroke .3s,opacity .3s}
.rv-flow .nd{opacity:.32;transition:opacity .3s}
.rv-flow .nd text{fill:var(--rv-bone)}
.rv-flow .nd .t{font-family:var(--font-heading);font-weight:600;font-size:13px}
.rv-flow .nd .s{font-size:11px;fill:color-mix(in srgb,var(--rv-bone) 62%,transparent)}
.rv-flow .nd .ic{fill:none;stroke:var(--color-accent);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.rv-flow .col{font-family:var(--font-heading);font-weight:500;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;fill:color-mix(in srgb,var(--rv-bone) 45%,transparent)}
.rv-flow .grp{fill:none;stroke:color-mix(in srgb,var(--rv-bone) 22%,transparent);stroke-width:1.5;stroke-dasharray:5 5}
.rv-flow .grpl{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;fill:color-mix(in srgb,var(--rv-bone) 45%,transparent);font-weight:500}
.rv-flow .lock{fill:none;stroke:color-mix(in srgb,var(--rv-bone) 55%,transparent);stroke-width:1.6}
.rv-flow .lk{display:none}
.rv-flow .lk path{fill:none;stroke:color-mix(in srgb,var(--color-accent) 55%,transparent);stroke-width:2;stroke-dasharray:6 8;animation:rvf-dash 1.2s linear infinite}
.rv-flow .lk path.ret{stroke:color-mix(in srgb,var(--rv-bone) 45%,transparent)}
.rv-flow .lk path.st{stroke-dasharray:none;animation:none;stroke:color-mix(in srgb,var(--rv-bone) 30%,transparent)}
.rv-flow .pk{fill:var(--color-accent);filter:drop-shadow(0 0 6px var(--color-accent));offset-rotate:0deg;animation:rvf-move var(--d,2.4s) linear infinite;animation-delay:var(--dl,0s)}
.rv-flow .pk.ret{fill:var(--rv-bone);filter:drop-shadow(0 0 5px var(--rv-bone))}
.rv-flow .pk.lockp{fill:var(--rv-bone)}
.rv-flow .pulse{fill:none;stroke:var(--color-accent);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center;animation:rvf-pulse 2s ease-out infinite}
@keyframes rvf-dash{to{stroke-dashoffset:-28}}
@keyframes rvf-move{0%{offset-distance:0%;opacity:0}6%{opacity:1}94%{opacity:1}100%{offset-distance:100%;opacity:0}}
@keyframes rvf-pulse{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.35);opacity:0}}
@supports not (offset-path:path("M0 0")){.rv-flow .pk{display:none}}
@media (prefers-reduced-motion:reduce){.rv-flow .pk,.rv-flow .pulse{display:none}.rv-flow .lk path{stroke-dasharray:none}}
.rv-flow:has(#rvf1:checked) .f1,.rv-flow:has(#rvf2:checked) .f2,.rv-flow:has(#rvf3:checked) .f3,.rv-flow:has(#rvf4:checked) .f4,.rv-flow:has(#rvf5:checked) .f5,.rv-flow:has(#rvf6:checked) .f6{opacity:1}
.rv-flow:has(#rvf1:checked) .f1 rect.bg,.rv-flow:has(#rvf2:checked) .f2 rect.bg,.rv-flow:has(#rvf3:checked) .f3 rect.bg,.rv-flow:has(#rvf4:checked) .f4 rect.bg,.rv-flow:has(#rvf5:checked) .f5 rect.bg,.rv-flow:has(#rvf6:checked) .f6 rect.bg{stroke:var(--color-accent)}
.rv-flow:has(#rvf1:checked) .lk.f1,.rv-flow:has(#rvf2:checked) .lk.f2,.rv-flow:has(#rvf3:checked) .lk.f3,.rv-flow:has(#rvf4:checked) .lk.f4,.rv-flow:has(#rvf5:checked) .lk.f5,.rv-flow:has(#rvf6:checked) .lk.f6{display:block}
.rv-flow .rvf-steps{display:none;margin-top:22px}
.rv-flow:has(#rvf1:checked) .rvf-steps.f1,.rv-flow:has(#rvf2:checked) .rvf-steps.f2,.rv-flow:has(#rvf3:checked) .rvf-steps.f3,.rv-flow:has(#rvf4:checked) .rvf-steps.f4,.rv-flow:has(#rvf5:checked) .rvf-steps.f5,.rv-flow:has(#rvf6:checked) .rvf-steps.f6{display:grid}
.rv-flow:not(:has(input[name="rvflow"]:checked)) .f1{opacity:1}
.rv-flow:not(:has(input[name="rvflow"]:checked)) .f1 rect.bg{stroke:var(--color-accent)}
.rv-flow:not(:has(input[name="rvflow"]:checked)) .lk.f1{display:block}
.rv-flow:not(:has(input[name="rvflow"]:checked)) .rvf-steps.f1{display:grid}
.rv-flow:not(:has(input[name="rvflow"]:checked)) .rvf-tabs label:has(#rvf1){border-color:var(--color-accent);color:var(--rv-bone);background:color-mix(in srgb,var(--color-accent) 12%,transparent)}
.rv-flow:not(:has(input[name="rvflow"]:checked)) .rvf-tabs label:has(#rvf1) span i{background:var(--color-accent);opacity:1}
.rv-flow .rvf-steps{grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:24px 40px;align-items:start}
.rv-flow .rvf-steps h3{margin:0;font-family:var(--font-heading);font-weight:500;font-size:24px;letter-spacing:-.02em;line-height:1.15}
.rv-flow .rvf-steps .why{margin:10px 0 0;font-size:15px;line-height:25px;color:color-mix(in srgb,var(--rv-bone) 74%,transparent)}
.rv-flow .rvf-steps ol{margin:0;padding:0;list-style:none;counter-reset:s;display:grid;gap:1px;background:var(--color-divider);border:1px solid var(--color-divider);border-radius:10px;overflow:hidden}
.rv-flow .rvf-steps li{counter-increment:s;background:var(--rv-ink);padding:14px 18px 14px 56px;position:relative;font-size:15px;line-height:24px;color:color-mix(in srgb,var(--rv-bone) 80%,transparent)}
.rv-flow .rvf-steps li::before{content:counter(s,decimal-leading-zero);position:absolute;left:18px;top:15px;font-family:var(--font-heading);font-weight:600;font-size:12px;letter-spacing:.06em;color:var(--color-accent)}
.rv-flow .rvf-steps li b{color:var(--rv-bone);font-weight:500}
@media (max-width:820px){.rv-flow .rvf-steps{grid-template-columns:minmax(0,1fr)}}
.rv-flow .rvf-hint{display:none;margin:0 0 10px;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb,var(--rv-bone) 55%,transparent)}
@media (max-width:940px){.rv-flow .rvf-hint{display:block}}
/* packet routes and timings, verbatim from the live page */
.rv-s-9d23f73f4e{offset-path:path('M200 70 H250');--d:1.6s}
.rv-s-028031a90c{offset-path:path('M430 70 H480');--d:1.6s;--dl:.8s}
.rv-s-da61d35872{offset-path:path('M660 70 H710');--d:1.4s;--dl:1.4s}
.rv-s-046ebe1b5a{offset-path:path('M710 78 H660');--d:1.4s;--dl:2.2s}
.rv-s-3b92bba72c{offset-path:path('M570 100 V180');--d:1.6s;--dl:2.8s}
.rv-s-1840538e67{offset-path:path('M660 230 H930 V70 H960');--d:2.6s;--dl:3.6s}
.rv-s-12123adc1f{offset-path:path('M960 80 H930 V230 H660');--d:2.4s}
.rv-s-f57d97c373{offset-path:path('M570 240 V460');--d:1.6s;--dl:1.6s}
.rv-s-94c89f6049{offset-path:path('M660 490 H710');--d:1s;--dl:2.6s}
.rv-s-2495b48e82{offset-path:path('M710 500 H660');--d:1s;--dl:3.3s}
.rv-s-1ccd323825{offset-path:path('M580 460 V240');--d:1.6s;--dl:4s}
.rv-s-323a8a813b{offset-path:path('M660 230 H930 V70 H960');--d:2.4s;--dl:5.2s}
.rv-s-be7ee586ba{offset-path:path('M800 218 V460');--d:3s;--dl:.6s}
.rv-s-895b8ba599{offset-path:path('M660 70 H710');--d:1.4s}
.rv-s-0ab25a0127{offset-path:path('M710 78 H660');--d:1.4s;--dl:1s}
.rv-s-a758d71df4{offset-path:path('M800 82 V94');--d:.9s;--dl:.4s}
.rv-s-020f656e66{offset-path:path('M800 140 V152');--d:.9s;--dl:1.2s}
.rv-s-2a3662a173{offset-path:path('M340 320 V300 H455 V95 H480');--d:2.6s;--dl:.2s}
.rv-s-ceba891214{offset-path:path('M660 85 H670 V350 H960');--d:2.6s}
.rv-s-0ed8e30757{offset-path:path('M1050 320 V240');--d:1.2s;--dl:2.6s}
.rv-s-3ac4ddd319{offset-path:path('M960 360 H680 V95 H660');--d:2.6s;--dl:3.6s}
.rv-s-d37457cc8e{offset-path:path('M200 210 H250');--d:1.4s}
.rv-s-9d0f5211c4{offset-path:path('M440 225 V490 H480');--d:2s;--dl:.8s}
.rv-s-655788e3cd{offset-path:path('M430 195 H455 V85 H480');--d:1.6s;--dl:4s}
.rv-s-ed87f95301{offset-path:path('M480 92 H462 V202 H430');--d:1.6s;--dl:5.2s}
.rv-s-704f28c4a6{offset-path:path('M250 225 H235 V560 H1050 V520');--d:3s;--dl:6.4s}
.rv-s-8374127bbc{offset-path:path('M1140 490 H1150 V210 H1140');--d:1.6s;--dl:9.2s}
.rv-s-63c84598e5{offset-path:path('M1050 320 V240');--d:1.2s;--dl:9s}
.rv-s-96ee310f6d{offset-path:path('M660 85 H670 V350 H960');--d:2.6s;--dl:6.6s}
.rv-s-12735a4445{offset-path:path('M660 220 H960');--d:1.8s;--dl:6.6s}
.rv-s-181b50ed61{offset-path:path('M960 80 H930 V230 H660');--d:2.2s}
.rv-s-2cec43e25d{offset-path:path('M480 235 H455 V350 H430');--d:1.6s;--dl:2.2s}
.rv-s-06dfa988c7{offset-path:path('M200 350 H250');--d:1.4s;--dl:1.4s}
.rv-s-0349d522ef{offset-path:path('M960 490 V580 H340 V380');--d:3s;--dl:2s}
.rv-s-5ba6059bbc{offset-path:path('M340 320 V300 H455 V95 H480');--d:2.4s;--dl:3.4s}
.rv-s-143e65735d{offset-path:path('M660 70 H710');--d:1.2s;--dl:5.8s}
.rv-s-d01c603ab4{offset-path:path('M710 78 H660');--d:1.2s;--dl:7s}
.rv-s-d78b1a7fed{offset-path:path('M660 230 H930 V70 H960');--d:2.4s;--dl:8.2s}
.rv-s-66a4ee0582{background:var(--color-accent)}
.rv-s-317f401d73{background:var(--rv-bone)}
.rv-s-91412ee083{background:transparent;box-shadow:0 0 0 2px var(--color-accent) inset}

/* ---------- security grid ---------- */
.sec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.sec-item{background:var(--card);padding:30px 28px 28px;min-height:200px}
.sec-item b{display:block;font-size:18px;font-weight:500;letter-spacing:-.015em;margin-bottom:10px}
.sec-item p{font-size:14.5px;color:var(--fg-2);line-height:1.55}

/* ---------- report ---------- */
.report{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.rep{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px 26px}
.rep b{display:block;font-size:17px;font-weight:500;margin-bottom:8px}
.rep p{font-size:14.5px;color:var(--fg-2);line-height:1.55}
.updated{margin-top:26px;font-size:12.5px;color:var(--fg-3)}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .commit{grid-template-columns:repeat(2,1fr)}
  .stack-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:980px){
  .hero-grid{grid-template-columns:1fr}
  .hero-aside{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:26px}
  .stack-grid{grid-template-columns:repeat(2,1fr)}
  .sec-grid{grid-template-columns:1fr 1fr}
  .report{grid-template-columns:1fr}
}
@media (max-width:700px){
  .commit,.stack-grid,.sec-grid{grid-template-columns:1fr}
  .commit-card{min-height:0}
  .h1{font-size:clamp(36px,10.5vw,54px)}
}
