/* Deck cards on the Archive and the full-screen deck viewer they open. */
.deck-card { display:block;width:100%;padding:0;border:0;background:none;cursor:pointer;border-radius:16px;overflow:hidden; }
.deck-card img,.deck-card video { display:block;transition:transform 250ms var(--ease-out-strong,cubic-bezier(.23,1,.32,1)); }
.deck-card:hover :is(img,video),.deck-card:focus-visible :is(img,video) { transform:scale(1.03); }
.deck-card:active { transform:scale(.98);transition:transform 180ms var(--ease-out-strong,cubic-bezier(.23,1,.32,1)); }
.deck-meta { display:flex;justify-content:space-between;gap:12px;margin:12px 0 0;font-size:14px;line-height:1.5;color:var(--muted); }
.deck-meta b { font-weight:400;color:var(--ink); }

dialog.deck-viewer { position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border:0;padding:16px 24px 24px;background:var(--paper);color:var(--ink);overflow:hidden;
  display:none;grid-template-rows:auto minmax(0,1fr) auto;gap:16px; }
dialog.deck-viewer[open] { display:grid; }
.deck-viewer::backdrop { background:var(--ink);opacity:.85; }
.dv-bar { display:flex;align-items:center;gap:16px;min-height:44px; }
.dv-title { margin:0;font-size:16px;line-height:1.2; }
.dv-count { margin:0 auto 0 0;font-size:14px;color:var(--muted); }
.dv-close { min-height:44px;padding:12px 22px;border:1px solid var(--ink);border-radius:999px;background:transparent;color:var(--ink);font:16px/1.2 var(--font);cursor:pointer;transition:background-color 250ms,color 250ms; }
.dv-close:hover,.dv-close:focus-visible { background:var(--ink);color:var(--paper); }

.dv-stage { position:relative;min-height:0;overflow:hidden;touch-action:pan-y;user-select:none;container-type:size; }
.dv-track { display:flex;height:100%;transition:transform 450ms var(--ease-out-strong,cubic-bezier(.23,1,.32,1)); }
.dv-slide { flex:0 0 100%;height:100%;margin:0;display:flex;align-items:center;justify-content:center; }
/* each slide fits the stage at 16:9, leaving room for the arrows on wide screens */
.dv-slide img,.dv-slide video { display:block;width:min(100cqw - 136px, 100cqh * 16 / 9);aspect-ratio:16/9;object-fit:contain;border-radius:16px;background:var(--surface-raised); }
.dv-nav { position:absolute;top:50%;translate:0 -50%;width:44px;height:44px;border:1px solid var(--ink);border-radius:999px;background:var(--paper);color:var(--ink);font:24px/1 var(--font);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color 250ms,color 250ms,opacity 250ms; }
.dv-nav:hover:not(:disabled),.dv-nav:focus-visible { background:var(--ink);color:var(--paper); }
.dv-nav:disabled { opacity:.25;cursor:default; }
.dv-prev { left:0; } .dv-next { right:0; }

.dv-thumbs { display:flex;gap:8px;overflow-x:auto;padding:6px 4px;scrollbar-width:none;justify-content:safe center; }
.dv-thumbs::-webkit-scrollbar { display:none; }
.dv-thumb { flex:0 0 auto;width:96px;aspect-ratio:16/9;padding:0;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--surface-raised);cursor:pointer;opacity:.6;transition:opacity 250ms; }
.dv-thumb img { width:100%;height:100%;object-fit:cover;display:block; }
.dv-thumb:hover,.dv-thumb[aria-selected="true"] { opacity:1; }
.dv-thumb[aria-selected="true"] { outline:2px solid var(--ink);outline-offset:2px; }

@media (max-width:760px) {
  dialog.deck-viewer { padding:12px 16px 16px; }
  .dv-slide img,.dv-slide video { width:min(100cqw, 100cqh * 16 / 9); }
  .dv-nav { display:none; }
  .dv-thumb { width:72px; }
}
@media (prefers-reduced-motion:reduce) {
  .dv-track,.deck-card :is(img,video) { transition:none; }
  .deck-card:hover :is(img,video),.deck-card:focus-visible :is(img,video) { transform:none; }
}
