/* Shared legal-page and contest usability; homepage styles live in styles.css. */
.legal-page { padding: clamp(1rem, 4vw, 2rem); overflow-wrap: anywhere; }
.legal-page > .text-secondary, .contest-page .bg-dark .text-secondary { color: #adb5bd !important; }
.legal-page a:not(.btn), .contest-page a:not(.btn):not(.nav-link):not(.navbar-brand) { color: #59c3ff; }
.legal-page .card a:not(.btn), .legal-page .alert a:not(.btn), .contest-page.bg-light a:not(.btn):not(.nav-link):not(.navbar-brand) { color: #0b57d0; }
.legal-page a:focus-visible, .contest-page a:focus-visible, .contest-page button:focus-visible, .contest-page input:focus-visible { outline: 3px solid #59c3ff; outline-offset: 3px; }
.contest-page .navbar-brand { font-size: clamp(1rem, 4.5vw, 1.25rem); }
.contest-page { overflow-wrap: anywhere; }
.contest-entry h1, .contest-entry h2 { font-size: clamp(2rem, 7vw, 3.8rem); overflow-wrap: anywhere; }
.contest-page #previewBox { display: none; width: min(250px, 100%); height: auto; aspect-ratio: 1; border: 2px dashed #6c757d; margin: 0 auto; }
.contest-page #previewBox img { max-width: 100%; max-height: 100%; }
.contest-page .img-modal { margin-inline: auto; }
.contest-page #modalImg { max-height: calc(100vh - 96px); max-height: calc(100svh - 96px); object-fit: contain; }
.contest-page #tosModal iframe { height: min(80vh, calc(100vh - 128px)) !important; height: min(80svh, calc(100svh - 128px)) !important; }
.contest-page .gallery-item { display: block; }
.contest-page .img-thumbnail { max-width: 100%; height: auto; }
@media (prefers-reduced-motion: reduce) {
  .contest-page .gallery-thumb, .contest-page .download-icon { transition: none; }
  .contest-page .gallery-item:hover .gallery-thumb, .contest-page .download-icon:hover { transform: none; }
}
