/* Viewer page — linked via <ViewerLayout> head slot, not from app.css.
   Dark background, centred player, metadata below. */

body.viewer {
  background: var(--viewer-bg);
  color: var(--viewer-fg);
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 100vh;
  padding: 0;
}

.viewer-main {
  inline-size: 100%;
  max-inline-size: 1280px;
  display: flex;
  flex-direction: column;
  padding-inline: var(--space-4);
}

/* Admin link — only rendered when the admin hint cookie is present */
.viewer-admin-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  font-size: var(--font-size-xs);
  color: var(--viewer-muted);
  text-decoration: none;
  margin-block-start: var(--space-3);

  &:hover {
    color: var(--viewer-fg);
  }
}

/* Player */
media-player {
  inline-size: 100%;
  aspect-ratio: 16 / 9;
  border-radius: var(--radius-md);
  overflow: hidden;
  margin-block-start: var(--space-6);
}

/* Metadata section below the player */
.viewer-meta {
  padding-block: var(--space-5);
}

.viewer-title {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  color: var(--viewer-title);
  line-height: var(--line-height-tight);
  margin-block-end: var(--space-2);
}

.viewer-details {
  font-size: var(--font-size-sm);
  color: var(--viewer-details);
  margin-block-end: var(--space-3);
}

.viewer-icon {
  display: inline;
  vertical-align: -0.15em;
}

.viewer-description {
  font-size: var(--font-size-base);
  color: var(--viewer-description);
  line-height: var(--line-height-normal);
  max-inline-size: 90ch;
  margin-block-end: var(--space-4);

  & p {
    margin-block-end: var(--space-3);

    &:last-child {
      margin-block-end: 0;
    }
  }

  & ul, & ol {
    padding-inline-start: var(--space-5);
    margin-block-end: var(--space-3);
  }

  & li {
    margin-block-end: var(--space-1);
  }

  & a {
    color: var(--viewer-link);
    text-decoration: underline;
    text-decoration-color: color-mix(in srgb, currentColor, transparent 60%);
  }

  & a:hover {
    color: var(--viewer-link-hover);
  }

  & strong {
    font-weight: var(--font-weight-bold);
    color: var(--viewer-fg);
  }

  & code {
    font-family: var(--font-mono);
    font-size: 0.9em;
    padding: 0.1em 0.3em;
    border-radius: var(--radius-sm);
    background-color: var(--viewer-border);
  }
}

.viewer-attribution {
  font-size: var(--font-size-xs);
  color: var(--viewer-muted);
  padding-block-start: var(--space-4);
  border-block-start: 1px solid var(--viewer-border);
}

.viewer-attribution a {
  color: var(--viewer-link);
  text-decoration: none;
}

.viewer-attribution a:hover {
  color: var(--viewer-link-hover);
}

/* Responsive: on small screens, reduce top padding and let the player
   sit closer to the top edge. */
@media (max-width: 640px) {
  media-player {
    margin-block-start: 0;
    border-radius: 0;
  }

  .viewer-main {
    padding-inline: var(--space-3);
  }
}
