/* Public-deploy additions: access chip, token modal, episode gallery, footer. Theme tokens with fallbacks. */
.badge.access { cursor: pointer; }
#access-modal { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center;
  background: rgba(0, 0, 0, .72); padding: 18px; }
#access-modal[hidden] { display: none; }
.access-card { width: min(420px, 100%); background: var(--sd-surface, #0d0d0d); color: var(--sd-text, #fff);
  border: 1px solid var(--sd-gold-line, rgba(245,197,24,.28)); border-radius: var(--sd-radius, 8px); padding: 18px;
  box-shadow: var(--sd-glow-gold-soft, none); }
.access-card h2 { margin: 0 0 8px; }
.access-card p { margin: 0 0 12px; font-size: 13px; color: var(--sd-muted, #a3a3a3); }
.access-card input { width: 100%; background: var(--sd-input, #000); color: var(--sd-text, #fff);
  border: 1px solid var(--sd-hairline, rgba(255,255,255,.1)); border-radius: var(--sd-radius, 8px); padding: 9px; font: inherit; }
.access-card .row { display: flex; gap: 8px; margin-top: 12px; }
.access-card .row .primary { width: auto; flex: 1; }
.site-foot { padding: 14px 22px 22px; font-size: 12px; color: var(--sd-muted, #a3a3a3); border-top: 1px solid var(--sd-hairline, rgba(255,255,255,.1)); }
.site-foot a, .nav-link { color: var(--sd-gold, #F5C518); }
.nav-link { font-size: 13px; text-decoration: none; }
.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(420px, 100%), 1fr)); gap: 16px; padding: 18px 22px; }
.ep { background: var(--sd-surface, #0d0d0d); border: 1px solid var(--sd-hairline, rgba(255,255,255,.1)); border-radius: var(--sd-radius, 8px); padding: 12px; }
.ep video { width: 100%; aspect-ratio: 16 / 9; background: #000; border-radius: var(--sd-radius, 6px); display: block; }
.ep h3 { margin: 10px 0 4px; font-size: 16px; line-height: 1.3; }
.ep .logline { margin: 0 0 6px; font-size: 13px; color: var(--sd-text, #fff); opacity: .85; }
.ep .meta { font-size: 12px; color: var(--sd-muted, #a3a3a3); }
.ep.rendering { border-style: dashed; color: var(--sd-muted, #a3a3a3); }
.gallery-head { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; padding: 18px 22px 0; }
.gallery-head p { margin: 0; color: var(--sd-muted, #a3a3a3); font-size: 14px; flex: 1 1 320px; }
.gallery-head .primary { width: auto; margin-top: 0; padding: 10px 16px; }
