/* R11 — custody diagrams use the same left-to-right reading direction. */
.rivex-vault-svg{display:block;width:112px;max-width:100%;height:auto;overflow:visible;fill:none;stroke:var(--muted);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.rivex-vault-svg .vault-side{fill:var(--ink);stroke:var(--line)}
.rivex-vault-svg .vault-body{fill:var(--surface)}
.rivex-vault-svg .vault-edge,.rivex-vault-svg .vault-keypad{stroke:var(--line)}
.rivex-vault-svg .vault-frame{stroke:var(--line);fill:var(--ink)}
.rivex-vault-svg .vault-hinge{fill:var(--surface)}
.rivex-vault-svg .vault-ring{stroke:var(--muted)}
.rivex-vault-svg .vault-door-face{fill:var(--surface);stroke:var(--line)}
.rivex-vault-svg .vault-bolts{stroke:var(--muted);stroke-width:2}
.rivex-vault-svg .vault-wheel{stroke:var(--cyan);transform-origin:60px 65px}
.rivex-vault-svg .vault-hub{fill:var(--ink)}
.rivex-vault-svg .vault-indicator{fill:var(--cyan);stroke:none}
.custody-scene{display:grid;grid-template-columns:minmax(0,1fr) 52px minmax(0,1fr);width:100%;max-width:352px;gap:20px;align-items:center;padding-bottom:20px}
.custody-scene .person-token,.custody-scene .vault-token{min-width:0;gap:12px;align-self:end}
.custody-scene .person-token svg{height:112px;width:76px;max-width:100%}
.custody-scene .person-token>span,.custody-scene .vault-token>span{white-space:nowrap;font-size:11px;line-height:18px}
.custody-scene .moving-watch{align-self:center;position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:112px;animation:loan-watch-transfer 3.4s ease-in-out infinite}
.custody-scene .moving-watch img{width:48px;max-width:100%;height:104px;object-fit:contain}
.custody-scene .transfer-arrow{top:auto;bottom:-22px;left:50%;transform:translateX(-50%);font-size:24px;line-height:24px}
.return-scene .moving-watch{animation-direction:normal}
.return-scene .vault-wheel{animation:vault-release 3.4s ease-in-out infinite}
.fund-scene{display:grid;grid-template-columns:minmax(0,1fr) minmax(76px,1fr) minmax(0,1fr);width:100%;max-width:352px;gap:20px}
.fund-scene .finance-token{min-width:0;gap:16px}
.fund-scene .finance-token svg{max-width:100%;height:80px}
.fund-scene .fund-moving{width:100%;min-width:0;animation:none}
.fund-scene .fund-moving b{width:100%;padding:12px 8px;font-size:14px;line-height:20px;font-weight:500;text-align:center;white-space:nowrap;border-radius:16px}
.fund-scene .fund-moving small{display:block;margin-top:4px;font-family:Plex,monospace;font-size:12px;font-weight:400;color:var(--muted)}
.fund-scene .fund-moving i{animation:loan-fund-transfer 2.8s ease-in-out infinite}
@keyframes loan-watch-transfer{0%,12%{transform:translateX(-7px);opacity:.7}65%,100%{transform:translateX(7px);opacity:1}}
@keyframes loan-fund-transfer{0%,12%{transform:translateX(-6px);opacity:.5}65%,100%{transform:translateX(6px);opacity:1}}
@keyframes vault-release{0%,18%{transform:rotate(-22deg)}55%,100%{transform:rotate(0)}}
@media(max-width:900px){.custody-scene,.fund-scene{gap:12px}.custody-scene{grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr)}.custody-scene .person-token>span,.custody-scene .vault-token>span{font-size:10px}.fund-scene .fund-moving b{font-size:12px}}
@media(max-width:359px){.custody-scene,.fund-scene{gap:8px}.custody-scene{grid-template-columns:minmax(0,1fr) 36px minmax(0,1fr)}.custody-scene .person-token>span,.custody-scene .vault-token>span{font-size:9px}.fund-scene{grid-template-columns:minmax(0,1fr) 76px minmax(0,1fr)}.fund-scene .finance-token{font-size:10px}.fund-scene .finance-token svg{width:62px}.fund-scene .finance-token img{max-width:100%}.fund-scene .fund-moving b{padding:10px 6px}}
@media(prefers-reduced-motion:reduce){.custody-scene .moving-watch,.return-scene .vault-wheel,.fund-scene .fund-moving i{animation:none!important}}
