/* Product narrative pages: asset inventory, cryptography, and evidence. */
.vp { --vp-ink:#f5f8fc; --vp-muted:#a8b5c9; --vp-line:#263348; --vp-blue:#69b7ff; color:var(--vp-ink); background:#080b12; font-family:Inter,system-ui,sans-serif; }
.vp *, .vp *::before, .vp *::after { box-sizing:border-box; }
.vp-wrap { width:min(1520px,calc(100% - clamp(40px,5vw,96px))); margin-inline:auto; }
.vp-section { padding:100px 0; border-bottom:1px solid var(--vp-line); }
.vp-section[id] { scroll-margin-top:100px; }
.vp h1,.vp h2,.vp h3 { font-family:Archivo,Inter,system-ui,sans-serif; color:var(--vp-ink); }
.vp h1 { margin:22px 0 26px; font-size:clamp(2.8rem,4.5vw,4.7rem); line-height:1.04; letter-spacing:-.055em; font-weight:600; }
.vp h1 span { color:var(--vp-blue); }
.vp h2 { font-size:clamp(2rem,3.6vw,3.4rem); line-height:1.1; letter-spacing:-.04em; margin:16px 0 22px; font-weight:500; }
.vp h3 { font-size:1.22rem; line-height:1.3; margin:12px 0; font-weight:500; letter-spacing:-.02em; }
.vp p { color:var(--vp-muted); font-size:1rem; line-height:1.75; }
.vp .vp-kicker { color:var(--vp-blue); font-size:.71rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; margin:0 0 16px; }
.vp .vp-lead { font-size:1.12rem; line-height:1.75; max-width:660px; }
.vp .vp-position { font-size:.87rem; max-width:460px; }
.vp-hero { padding:60px 0 54px; background:radial-gradient(ellipse at 85% 40%,#132749 0%,transparent 57%),#080b12; }
.vp-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,700px); gap:clamp(38px,4vw,64px); align-items:center; }
.vp-hero-grid > *, .vp-split > * { min-width:0; }
.vp-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:30px; }
.vp-button { display:inline-flex; align-items:center; justify-content:center; gap:20px; padding:14px 19px; border:1px solid #40506a; border-radius:7px; color:#f5f8fc; text-decoration:none; font-size:.85rem; font-weight:600; }
.vp-button--primary { background:#3767eb; border-color:#5785ff; }
.vp-button:hover { color:#fff; border-color:#a3d3ff; background:#20365b; }
.vp-button--primary:hover { background:#2859d3; }
.vp a:focus-visible,.vp button:focus-visible,.vp summary:focus-visible { outline:3px solid #a3d3ff; outline-offset:5px; }
.vp-trust { display:flex; gap:18px; flex-wrap:wrap; margin-top:26px; color:#a8b5c9; font-size:.7rem; }
.vp-trust span::before { content:'•'; color:var(--vp-blue); margin-right:7px; }
.vp-page-nav { border-block:1px solid var(--vp-line); background:#0c121e; }
.vp-page-nav .vp-wrap { display:grid; grid-template-columns:repeat(3,1fr); }
.vp-page-nav a { padding:25px 20px; text-decoration:none; display:flex; align-items:center; gap:16px; color:#91a4c1; font:500 .72rem Inter,sans-serif; border-right:1px solid var(--vp-line); }
.vp-page-nav a:first-child { border-left:1px solid var(--vp-line); }
.vp-page-nav a span { font-size:.86rem; }
.vp-page-nav a[aria-current],.vp-page-nav a:hover { color:#f5f8fc; background:#13213a; box-shadow:inset 0 -2px #69b7ff; }
.vp-heading { max-width:760px; }
.vp-heading > p:last-child { max-width:660px; }
.vp-loop { list-style:none; padding:0; margin:48px 0 24px; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-top:1px solid #40506a; }
.vp-loop li { position:relative; padding:25px 22px 10px 0; }
.vp-loop li::before { content:''; position:absolute; top:-4px; left:0; width:7px; height:7px; border-radius:50%; background:var(--vp-blue); }
.vp-loop span,.vp-index { color:var(--vp-blue); font:500 .75rem ui-monospace,monospace; }
.vp-loop p { font-size:.85rem; }
/* A single journey pass follows the five steps while the original track stays visible. */
.vp-loop--journey { position:relative; }
.vp-loop--journey::before,.vp-loop--journey::after { content:''; position:absolute; pointer-events:none; opacity:0; }
.vp-loop--journey::before { z-index:1; top:-2px; left:0; width:100%; height:3px; border-radius:3px; background:linear-gradient(90deg,#62b6ff,#b8e8ff); box-shadow:0 0 13px #69b7ff8c; transform:scaleX(0); transform-origin:left; animation:vp-journey-line 12s linear infinite; }
.vp-loop--journey::after { z-index:2; top:-6px; left:0; width:12px; height:12px; border-radius:50%; background:#ecfaff; box-shadow:0 0 9px #f0fbff,0 0 20px #69b7ff; animation:vp-journey-spark 12s linear infinite; }
.vp-loop--journey li:nth-child(1) { --journey-step:0; }
.vp-loop--journey li:nth-child(2) { --journey-step:1; }
.vp-loop--journey li:nth-child(3) { --journey-step:2; }
.vp-loop--journey li:nth-child(4) { --journey-step:3; }
.vp-loop--journey li:nth-child(5) { --journey-step:4; }
.vp-loop--journey li::before { animation:vp-journey-node 12s ease-out calc(1.2s + var(--journey-step) * 1.8s) infinite; }
.vp-loop--journey h3 { transform-origin:left center; animation:vp-journey-title 12s ease-out calc(1.2s + var(--journey-step) * 1.8s) infinite; }
.vp-loop--journey::before,.vp-loop--journey::after,.vp-loop--journey li::before,.vp-loop--journey h3 { animation-play-state:paused; }
.vp-loop--journey[data-running="true"]::before,.vp-loop--journey[data-running="true"]::after,.vp-loop--journey[data-running="true"] li::before,.vp-loop--journey[data-running="true"] h3 { animation-play-state:running; }
@keyframes vp-journey-line { 0%,8% { opacity:0; transform:scaleX(0); } 10% { opacity:1; transform:scaleX(0); } 70%,82% { opacity:1; transform:scaleX(1); } 90%,100% { opacity:0; transform:scaleX(1); } }
@keyframes vp-journey-spark { 0%,8% { opacity:0; left:0; } 10% { opacity:1; left:0; } 70%,82% { opacity:1; left:calc(100% - 12px); } 90%,100% { opacity:0; left:calc(100% - 12px); } }
@keyframes vp-journey-node { 0%,12% { transform:scale(1.9); background:#ecfaff; box-shadow:0 0 10px #e8f8ff,0 0 20px #69b7ff; } 20%,100% { transform:scale(1); background:var(--vp-blue); box-shadow:none; } }
@keyframes vp-journey-title { 0%,12% { transform:translateY(-4px) scale(1.035); color:#c9e9ff; text-shadow:0 0 18px #69b7ff66; } 20%,100% { transform:none; color:var(--vp-ink); text-shadow:none; } }
.vp .vp-note { color:#9eacc2; font-size:.82rem; line-height:1.65; margin-top:26px; max-width:960px; }
.vp-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:45px; border-top:1px solid var(--vp-line); }
.vp-cards article { padding:30px 30px 25px 0; border-bottom:1px solid var(--vp-line); }
.vp-cards article:not(:nth-child(3n+1)) { padding-left:30px; border-left:1px solid var(--vp-line); }
.vp-cards h3 { margin:24px 0 12px; }
.vp-cards p { font-size:.91rem; }
.vp-split { display:grid; grid-template-columns:1fr 1fr; gap:76px; align-items:center; }
.vp-tint { background:#0d1421; }
.vp-evidence-stack article { padding:23px 0; border-bottom:1px solid #2c3b53; }
.vp-evidence-stack article:first-child { padding-top:0; }
.vp-evidence-stack article:last-child { border-bottom:0; }
.vp-evidence-stack p { font-size:.9rem; margin-bottom:0; }
.vp-status { display:inline-block; font-size:.65rem; line-height:1.5; color:#acd5ff; background:#172d49; border:1px solid #345777; border-radius:4px; padding:4px 8px; }
.vp-status--muted { background:#222a35; color:#c5ccda; border-color:#455060; }
.vp figure { margin:0; }
.vp figcaption { font-size:.68rem; color:#a3b0c4; line-height:1.6; padding:18px 0 0; }
.vp-record,.vp-artifact { background:linear-gradient(135deg,#131e30,#0b111d); border:1px solid #3a4f6e; border-radius:12px; padding:24px; box-shadow:0 25px 70px #02060c88; }
.vp-record-bar { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; align-items:center; font:500 .57rem ui-monospace,monospace; letter-spacing:.05em; color:#a9bdd8; }
.vp-record-title { display:flex; align-items:center; gap:16px; padding:32px 0 25px; }
.vp-record-title small,.vp-artifact-title small { font-size:.65rem; color:#94aaca; }
.vp-record-title h3 { margin:7px 0; font-size:1.45rem; }
.vp-record-title p { margin:0; font-size:.72rem; }
.vp-device { display:grid; place-items:center; width:53px; height:62px; background:#193b65; border:1px solid #3d6c99; border-radius:8px; color:#9bd2ff; font-size:2rem; }
.vp-record-tabs { display:flex; justify-content:space-between; gap:10px; border-bottom:1px solid #2b3b54; font-size:.65rem; color:#a8b5c9; }
.vp-record-tabs span { padding:12px 0; }
.vp-record-tabs span:first-child { border-bottom:2px solid #69b7ff; color:#e1f0ff; }
.vp-facts { margin:12px 0; }
.vp-facts > div { display:grid; grid-template-columns:100px 1fr; gap:14px; padding:13px 0; border-bottom:1px solid #202f44; font-size:.72rem; line-height:1.6; }
.vp-facts dt { color:#90a7c7; }
.vp-facts dd { margin:0; color:#d5e3f6; }
.vp-record-proof { margin-top:22px; font-size:.64rem; color:#adc6e8; line-height:1.7; }
.vp-dot { display:inline-block; width:6px; height:6px; background:#69b7ff; border-radius:50%; margin-right:8px; }
.vp-map { border:1px solid #2c3b53; border-radius:12px; padding:32px; background:radial-gradient(circle,#182e4c 0,transparent 70%),#0c1420; text-align:center; }
.vp-map-node { border:1px solid #3b5271; border-radius:7px; background:#111d30; padding:15px 12px; max-width:220px; margin:auto; }
.vp-map-node small { display:block; color:#a3b7d3; font-size:.65rem; margin-bottom:8px; }
.vp-map-node strong { font-size:.85rem; font-weight:500; }
.vp-map-node--focus { border-color:#69b7ff; background:#19385e; }
.vp-map-line { display:block; padding:14px 0; font-size:.65rem; color:#91afd4; }
.vp-map-line::after { content:' ↓'; }
.vp-map-branches { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.vp-map-branches > div > span { display:block; padding:18px 0; font-size:.65rem; color:#91afd4; }
.vp-query { margin-top:36px; border:1px solid var(--vp-line); border-radius:10px; padding:28px 34px; background:#0d1421; }
.vp-query > span { font:500 .65rem ui-monospace,monospace; color:var(--vp-blue); letter-spacing:.1em; }
.vp-query p { margin:0; padding:20px 0; border-bottom:1px solid var(--vp-line); font-size:clamp(1rem,1.7vw,1.4rem); color:#d8e4f5; }
.vp-query p:last-child { border:0; padding-bottom:0; }
.vp-query p::before { content:'↳'; color:#69b7ff; margin-right:20px; }
.vp-related { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:36px; }
.vp-related > a { border:1px solid #334762; border-radius:10px; padding:34px; text-decoration:none; background:linear-gradient(130deg,#12243e,#0d1522); }
.vp-related > a:hover { border-color:#69b7ff; background:#162b49; }
.vp-related .vp-kicker { display:block; }
.vp-related h3 { font-size:1.5rem; }
.vp-related p { font-size:.9rem; margin-bottom:0; }
.vp-related h3 span { color:#69b7ff; }
.vp-faq { margin-top:40px; border-top:1px solid var(--vp-line); }
.vp-faq details { padding:24px 0; border-bottom:1px solid var(--vp-line); }
.vp-faq summary { cursor:pointer; font-size:1rem; color:#e1eafa; line-height:1.5; padding-right:20px; }
.vp-faq summary::marker { color:#69b7ff; }
.vp-faq p { max-width:880px; margin:18px 0 0 20px; font-size:.93rem; }
.vp-cta { text-align:center; padding:100px 0; background:radial-gradient(ellipse at 50% 100%,#193866,transparent 75%),#0b1220; }
.vp-cta h2 { max-width:820px; margin-inline:auto; }
.vp-cta p:not(.vp-kicker) { max-width:660px; margin-inline:auto; }
.vp-cta .vp-actions { justify-content:center; }
.vp-photo button { display:block; width:100%; padding:0; border:1px solid #3b5070; border-radius:9px; overflow:hidden; background:#0d1725; cursor:zoom-in; }
.vp-photo img { width:100%; display:block; height:auto; }
.vp-cards + .vp-photo { margin-top:40px; }
.vp-text-link { display:inline-block; margin-top:16px; color:#87c5ff; text-decoration:underline; text-underline-offset:5px; font-size:.88rem; }
.vp-crypto-visual { padding:35px; border:1px solid #2d4566; background:radial-gradient(ellipse,#193b65 0%,#0b1523 70%); border-radius:12px; }
.vp-crypto-orbit { position:relative; display:grid; place-items:center; aspect-ratio:1; width:83%; max-width:330px; margin:20px auto 30px; border:1px solid #395a80; border-radius:50%; }
.vp-crypto-orbit::before { content:''; position:absolute; inset:20px; border:1px dashed #3f6b98; border-radius:50%; }
.vp-crypto-orbit > div { text-align:center; width:74%; aspect-ratio:1; display:flex; flex-direction:column; justify-content:center; background:linear-gradient(150deg,#224c79,#101f36); border:1px solid #69b7ff; border-radius:50%; }
.vp-crypto-orbit small { color:#acc6e5; font-size:.6rem; margin-bottom:13px; }
.vp-crypto-orbit strong { font:500 clamp(1.3rem,2.4vw,2rem)/1.15 Archivo,sans-serif; }
.vp-crypto-labels { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.vp-crypto-labels span { text-align:center; font-size:.65rem; padding:10px 5px; border:1px solid #334d6c; border-radius:4px; background:#10223a; }
.vp-artifact-title { display:flex; gap:18px; align-items:center; padding:40px 0 20px; }
.vp-artifact-title > span { color:#8ccaff; font:300 3rem ui-monospace,monospace; }
.vp-artifact-title h3 { font-size:1.3rem; margin:0 0 6px; overflow-wrap:anywhere; }
.vp-artifact-title p { font-size:.7rem; margin:0; }
.vp-artifact-layer { border:1px dashed #3f6088; margin-top:24px; padding:18px; border-radius:6px; }
.vp-artifact-layer .vp-kicker { font-size:.6rem; }
.vp-artifact-layer p { font-size:.72rem; margin:8px 0 0; }
.vp-policy { border:1px solid #304766; background:#0f1b2d; border-radius:10px; padding:30px; text-align:center; }
.vp-policy > div:not(.vp-policy-outcomes) { padding:15px; border:1px solid #334c6c; background:#13243a; border-radius:6px; }
.vp-policy small { display:block; color:#99b1d0; font-size:.65rem; margin-bottom:10px; }
.vp-policy strong { font-size:.85rem; font-weight:500; }
.vp-policy > span { color:#69b7ff; display:block; padding:8px; }
.vp-policy-outcomes { display:flex; justify-content:space-between; gap:10px; padding-top:22px; }
.vp-policy-outcomes span { font-size:.7rem; color:#bddcff; border:1px solid #405777; padding:9px 12px; border-radius:4px; }
.vp-edition-columns { display:grid; grid-template-columns:1fr 1fr; gap:55px; margin-top:45px; }
.vp-edition-columns article { border-top:1px solid #3c5577; padding-top:28px; }
.vp-edition-columns h3 { font-size:1.6rem; }
.vp-edition-columns ul { color:#b7c7dc; padding-left:19px; font-size:.9rem; line-height:2; }
.vp-table-wrap { overflow-x:auto; margin-top:30px; }
.vp-table { width:100%; border-collapse:collapse; font-size:.88rem; }
.vp-table caption { text-align:left; color:#a8b5c9; font-size:.78rem; padding-bottom:18px; }
.vp-table th,.vp-table td { text-align:left; padding:20px 15px; border-bottom:1px solid var(--vp-line); line-height:1.5; }
.vp-table thead { background:#14233b; }
.vp-table tbody th { font-weight:400; color:#d9e5f4; }
.vp-table td { color:#b5c8e2; }
@media (max-width:1100px) { .vp-hero-grid { grid-template-columns:minmax(0,1fr) minmax(0,53%); gap:35px; } .vp-split { gap:40px; } .vp h1 { font-size:3.3rem; } }
@media (max-width:900px) {
 .vp-wrap { width:calc(100% - 48px); } .vp-section { padding:70px 0; } .vp-hero-grid,.vp-split { grid-template-columns:1fr; gap:32px; }
 .vp-hero-grid > figure,.vp-hero-grid > .vp-crypto-visual { width:100%; max-width:650px; margin-inline:auto; } .vp h1 { font-size:clamp(3rem,7.6vw,4.5rem); }
 .vp-loop { grid-template-columns:1fr; gap:8px; border-top:0; } .vp-loop li { border-top:0; padding:20px 0 10px 35px; } .vp-loop li > span { position:absolute; left:0; top:34px; }
 .vp-loop--journey { border-left:1px solid #40506a; margin-left:3px; padding-left:20px; }
 .vp-loop--journey li::before { left:-24px; top:31px; }
 .vp-loop--journey::before { top:31px; bottom:30px; left:-2px; width:3px; height:auto; transform:scaleY(0); transform-origin:top; }
 .vp-loop--journey::after { top:26px; left:-6px; }
 .vp-cards { grid-template-columns:1fr 1fr; } .vp-cards article:not(:nth-child(3n+1)) { padding-left:0; border-left:0; } .vp-cards article:nth-child(even) { border-left:1px solid var(--vp-line); padding-left:25px; }
 .vp-page-nav a { padding:20px 12px; gap:9px; } .vp-page-nav a span { font-size:.73rem; }
}
@media (max-width:600px) {
 .vp-wrap { width:calc(100% - 36px); } .vp-section { padding:56px 0; } .vp-hero { padding:38px 0 45px; } .vp-hero-grid { gap:28px; } .vp h1 { font-size:2.85rem; } .vp h2 { font-size:2.15rem; } .vp h2 br { display:none; }
 .vp .vp-lead { font-size:1rem; } .vp-actions { gap:10px; } .vp-button { padding:13px 14px; gap:12px; font-size:.78rem; } .vp-trust { gap:12px; font-size:.64rem; }
 .vp-page-nav .vp-wrap { width:100%; } .vp-page-nav a { flex-direction:column; align-items:flex-start; gap:6px; padding:16px 12px; } .vp-page-nav a span { font-size:.68rem; line-height:1.5; }
 .vp-record,.vp-artifact { padding:18px; } .vp-record-title { gap:12px; } .vp-record-title h3 { font-size:1.2rem; } .vp-record-tabs { gap:7px; font-size:.61rem; }
 .vp-facts > div { grid-template-columns:82px 1fr; font-size:.68rem; gap:8px; } .vp-loop { margin-top:30px; }
 .vp-cards,.vp-related,.vp-edition-columns { grid-template-columns:1fr; gap:0; } .vp-cards article,.vp-cards article:nth-child(even) { padding:26px 0; border-left:0; } .vp-cards h3 { margin-top:16px; }
 .vp-related { gap:18px; } .vp-related > a { padding:25px; } .vp-query { padding:25px 20px; } .vp-query p::before { margin-right:10px; }
 .vp-map { padding:24px 15px; } .vp-map-branches { gap:12px; } .vp-map-node strong { font-size:.7rem; } .vp-map-node small { font-size:.6rem; }
 .vp-crypto-visual { padding:25px 20px; } .vp-crypto-labels { grid-template-columns:repeat(2,1fr); } .vp-policy { padding:24px 18px; } .vp-policy-outcomes { gap:5px; } .vp-policy-outcomes span { padding:8px; font-size:.63rem; }
 .vp-edition-columns { gap:25px; } .vp-table { font-size:.73rem; } .vp-table td,.vp-table th { padding:15px 8px; } .vp-table th:first-child { width:40%; }
 .vp-faq summary { font-size:.94rem; } .vp-cta .vp-actions { flex-direction:column; } .vp-artifact-title { gap:12px; } .vp-artifact-title h3 { font-size:1.12rem; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .vp a { transition:none; } }
@media (max-width:900px) {
 @keyframes vp-journey-line { 0%,8% { opacity:0; transform:scaleY(0); } 10% { opacity:1; transform:scaleY(0); } 70%,82% { opacity:1; transform:scaleY(1); } 90%,100% { opacity:0; transform:scaleY(1); } }
 @keyframes vp-journey-spark { 0%,8% { opacity:0; top:26px; left:-6px; } 10% { opacity:1; top:26px; left:-6px; } 70%,82% { opacity:1; top:calc(100% - 36px); left:-6px; } 90%,100% { opacity:0; top:calc(100% - 36px); left:-6px; } }
}
@media (prefers-reduced-motion:reduce) {
 .vp-loop--journey::before,.vp-loop--journey::after,.vp-loop--journey li::before,.vp-loop--journey h3 { animation:none !important; }
}

/* Hero illustrations: SVG paths carry the motion; labels stay still. */
.vp .vp-motion { --vp-motion-speed:1.5; width:100%; min-width:0; margin:0; position:relative; overflow:hidden; border:1px solid #355172; border-radius:16px; background:radial-gradient(ellipse at 50% 40%,#132b49 0%,#0b1524 68%); box-shadow:0 24px 90px #02060c66,0 0 55px #3a7fe80b; }
.vp-motion-top { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:17px 23px; border-bottom:1px solid #243a55; }
.vp-motion-top > span:first-child { color:#b5d9fc; font-size:.64rem; font-weight:500; line-height:1.6; letter-spacing:.05em; }
.vp-motion-top i { display:inline-block; width:5px; height:5px; margin-right:8px; background:#8cd2ff; border-radius:50%; box-shadow:0 0 9px #69b7ff80; }
.vp-motion-number { color:#96acc7; font:500 .55rem ui-monospace,monospace; white-space:nowrap; }
.vp-motion-art { display:block; width:100%; height:auto; overflow:visible; }
.vp-motion-art text { font-family:Inter,system-ui,sans-serif; }
.vp-motion-art .vm-label { fill:#b9d7f3; font-size:12px; letter-spacing:1.2px; font-weight:500; }
.vp-motion-art .vm-core-text { fill:#e8f6ff; font-size:16px; letter-spacing:1.5px; font-weight:600; }
.vp-motion--inventory .vm-core-text { font-size:15px; letter-spacing:1.1px; }
.vp-motion-art .vm-inventory-row { fill:#d2e9fa; font-size:9px; letter-spacing:.9px; font-weight:700; }
.vp-motion-art .vm-inventory-row--crypto { fill:#e5faff; }
.vm-inventory-crypto { fill:#215b83; stroke:#8dd6f6; stroke-width:1; animation:vm-crypto-glow calc(6s / var(--vp-motion-speed)) ease-in-out infinite; }
.vp-motion-art .vm-caption { fill:#c9def5; font-size:14px; }
.vp-motion-art .vm-sub { fill:#abc0dc; font-size:12px; }
.vp-motion-art .vm-doc-heading { fill:#eff8ff; font-size:36px; font-weight:600; letter-spacing:-1px; }
.vp-motion-art .vm-doc-key { fill:#cfe5fa; font-size:11px; font-weight:600; }
.vp-motion-art .vm-doc-value { fill:#a6bfdd; font-size:10px; }
.vm-icon { fill:none; stroke:#a4d9ff; stroke-width:1.8; stroke-linejoin:round; stroke-linecap:round; }
.vm-wire { fill:none; stroke:#3b6088; stroke-width:1.5; }
.vm-packet { fill:none; stroke:#ecfaff; stroke-width:3.5; stroke-linecap:round; stroke-dasharray:5 95; stroke-dashoffset:0; filter:drop-shadow(0 0 3px #ddf7ff) drop-shadow(0 0 8px #63b7ff); animation:vm-travel calc(8s / var(--vp-motion-speed)) linear infinite, vm-sparkle 2.4s ease-in-out infinite; animation-delay:calc(var(--delay,0s) / var(--vp-motion-speed)); }
.vm-orbit { animation:vm-rotate calc(22s / var(--vp-motion-speed)) linear infinite; }
.vm-orbit--reverse { animation-direction:reverse; animation-duration:calc(30s / var(--vp-motion-speed)); }
.vm-halo-pulse { transform-origin:300px 267px; animation:vm-breathe calc(7s / var(--vp-motion-speed)) ease-in-out infinite; }
.vm-core-float { animation:vm-float calc(7s / var(--vp-motion-speed)) ease-in-out infinite; }
.vm-document-float { animation:vm-float calc(9s / var(--vp-motion-speed)) ease-in-out infinite; }
.vm-bar { fill:#78c5ff; animation:vm-bar calc(6s / var(--vp-motion-speed)) ease-in-out infinite; animation-delay:calc(var(--delay,0s) / var(--vp-motion-speed)); }
.vm-document-row { animation:vm-row calc(8s / var(--vp-motion-speed)) ease-in-out infinite; animation-delay:calc(var(--delay,0s) / var(--vp-motion-speed)); }
.vm-hash { animation:vm-row calc(8s / var(--vp-motion-speed)) ease-in-out calc(-4s / var(--vp-motion-speed)) infinite; }
.vp-motion-stages { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; padding:0 23px 15px; }
.vp-motion-stages span { color:#c2d7ef; font-size:.66rem; text-align:center; padding:9px 4px; border:1px solid #324e6f; border-radius:5px; background:#102039; animation:vm-stage calc(12s / var(--vp-motion-speed)) ease-in-out infinite; animation-delay:calc(var(--stage) * 4s / var(--vp-motion-speed)); }
.vp-motion-bottom { display:flex; gap:12px; align-items:center; justify-content:space-between; border-top:1px solid #243a55; padding:12px 23px; background:#0b1524; }
.vp .vp-motion-bottom figcaption { padding:0; font-size:.6rem; color:#a8bdd7; max-width:70%; }
.vp-motion-toggle { color:#c3e3ff; background:transparent; border:1px solid #47688d; border-radius:5px; padding:8px 10px; font:500 .62rem Inter,system-ui,sans-serif; cursor:pointer; flex-shrink:0; }
.vp-motion-toggle:hover { background:#1a3454; border-color:#8ccaff; }
.vp-motion-toggle[hidden] { display:none; }
/* Soft glints follow only the simulated data, never the text or whole panel. */
.vm-orbit > circle:last-child { fill:#effcff; filter:drop-shadow(0 0 3px #dcf7ff) drop-shadow(0 0 8px #6bbfff); animation:vm-sparkle 2.8s ease-in-out infinite; }
.vm-orbit--reverse > circle:last-child { animation-delay:-1.4s; }
.vm-hash rect { animation:vm-sparkle 3s ease-in-out infinite; }
.vm-hash rect:nth-child(3n+1) { animation-delay:-1s; }
.vm-hash rect:nth-child(3n+2) { animation-delay:-2s; }
/* Inventory and CBOM run at twice the previous 1.5× preview speed. */
.vp .vp-motion--inventory, .vp .vp-motion--cbom { --vp-motion-speed:3; }
.vp-motion--inventory .vm-packet, .vp-motion--cbom .vm-packet { animation-duration:calc(8s / var(--vp-motion-speed)),1.2s; }
.vp-motion--cbom .vm-hash rect { animation-duration:1.5s; }
.vp-motion--cbom .vm-hash rect:nth-child(3n+1) { animation-delay:-.5s; }
.vp-motion--cbom .vm-hash rect:nth-child(3n+2) { animation-delay:-1s; }
/* No JavaScript, user pause, background tabs and offscreen illustrations stay still. */
.vp-motion *, .vp-motion *::before, .vp-motion *::after { animation-play-state:paused; }
.vp-motion[data-running="true"] *, .vp-motion[data-running="true"] *::before, .vp-motion[data-running="true"] *::after { animation-play-state:running; }
@keyframes vm-sparkle {
  0%,100% { filter:drop-shadow(0 0 2px #b6eaff) drop-shadow(0 0 5px #54aaff); }
  50% { filter:drop-shadow(0 0 4px #f0fcff) drop-shadow(0 0 11px #8dd7ff); }
}
@keyframes vm-travel { to { stroke-dashoffset:-100; } }
@keyframes vm-rotate { to { transform:rotate(360deg); } }
@keyframes vm-breathe { 0%,100% { opacity:.45; transform:scale(.98); } 50% { opacity:1; transform:scale(1.04); } }
@keyframes vm-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-6px); } }
@keyframes vm-bar { 0%,100% { opacity:.35; } 50% { opacity:1; } }
@keyframes vm-row { 0%,70%,100% { opacity:.6; } 25%,45% { opacity:1; } }
@keyframes vm-crypto-glow { 0%,100% { fill:#215b83; } 50% { fill:#3488b3; } }
@keyframes vm-stage { 0%,20%,100% { border-color:#75b7f3; background:#1e3c63; } 34%,85% { border-color:#324e6f; background:#102039; } }
@media (max-width:600px) {
 .vp-motion-top { padding:17px 14px; gap:8px; } .vp-motion-top > span:first-child { font-size:.58rem; } .vp-motion-number { font-size:.48rem; }
 .vp-motion-stages { padding:0 14px 16px; } .vp-motion-stages span { font-size:.6rem; }
 .vp-motion-bottom { padding:12px 14px; gap:8px; } .vp .vp-motion-bottom figcaption { font-size:.56rem; max-width:65%; } .vp-motion-toggle { font-size:.57rem; padding:8px; }
}
@media (prefers-reduced-motion:reduce) {
 .vp-motion *, .vp-motion *::before, .vp-motion *::after { animation:none !important; }
}
