.rv:not([open]){display:none}.rv{position:fixed;inset:0;display:flex;flex-direction:column;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:var(--color-background);color:var(--color-text)}.rv::-webkit-backdrop{background:rgb(0 0 0/80%)}.rv::backdrop{background:rgb(0 0 0/80%)}.rv-bar{display:flex;align-items:center;gap:8px;min-height:56px;padding:0 8px;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.rv-bar h2{margin:0;flex:1 1;min-width:0;overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.rv-tools{display:flex;align-items:center;gap:4px}.rv-btn{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--color-text);cursor:pointer}.rv-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.rv-btn:hover:not(:disabled){background:color-mix(in srgb,var(--color-purple) 20%,transparent)}.rv-btn:disabled{opacity:.4;cursor:default}.rv-btn:focus-visible,.rv-link:focus-visible{outline:2px solid var(--color-text);outline-offset:2px}.rv-page,.rv-zoom{min-width:48px;font-size:13px;text-align:center;color:var(--color-text-secondary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rv-body{display:flex;flex:1 1;flex-direction:column;align-items:center;gap:12px;padding:12px;overflow:auto;background:var(--color-background)}.rv-page-box{flex:none;background:#fff;box-shadow:var(--shadow-card)}.rv-page-box canvas{display:block}.rv-state{display:grid;flex:1 1;place-items:center;align-content:center;grid-gap:12px;gap:12px;text-align:center;color:var(--color-text-secondary)}.rv-link{color:var(--color-purple-neon);font-weight:700}.rv-spinner{width:36px;height:36px;border:3px solid color-mix(in srgb,var(--color-purple-neon) 30%,transparent);border-top-color:var(--color-purple-neon);border-radius:50%;animation:rv-spin .8s linear infinite}@keyframes rv-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.rv-spinner{animation-duration:3s}}@media (max-width:520px){.rv-zoom{display:none}.rv-page{min-width:40px}}