.n20-viewer .n20-stage{position:absolute;inset:0;display:grid;place-items:center;container-type:size;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.n20-viewer.is-ready .n20-stage{bottom:78px}
.n20-viewer.can-rotate .n20-stage{cursor:grab}
.n20-viewer.is-dragging .n20-stage{cursor:grabbing}
.n20-frame{position:relative;width:min(92cqw,calc(90cqh * var(--n20-ratio)));aspect-ratio:var(--n20-ratio)}
.n20-viewer .n20-stage img{inset:auto;left:var(--n20-left);top:var(--n20-top);width:var(--n20-width);height:var(--n20-height);max-width:none;object-fit:fill;padding:0;pointer-events:none}
.n20-controls{position:absolute;left:24px;right:24px;bottom:22px}
.n20-controls[hidden]{display:none}
.n20-caption{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:13px;color:var(--muted);margin-bottom:10px}
.n20-caption label{cursor:ew-resize}
.n20-caption>span{font:700 17px var(--display);letter-spacing:.04em;color:var(--ink)}
[data-n20-count]{margin-left:10px;font:12px Arial,sans-serif;color:var(--muted);font-variant-numeric:tabular-nums}
.n20-controls input{display:block;width:100%;height:24px;margin:0;cursor:ew-resize;accent-color:var(--red)}
.n20-controls input:focus-visible{outline:3px solid var(--red);outline-offset:4px;border-radius:3px}
@media(max-width:680px){.n20-viewer{aspect-ratio:1}.n20-controls{left:18px;right:18px;bottom:18px}.n20-caption{font-size:12px}}

.n20-status{font-size:13px;color:var(--muted);margin:12px 0 0}
.n20-controls input:disabled{cursor:progress;opacity:.45}
