/* One visual language for the complete archive. */
::selection { background: var(--red); color: var(--paper-light); }
:focus-visible { outline: 3px solid #c86b3f; outline-offset: 5px; }
html { scroll-padding-top: 110px; }
body { overflow-wrap: break-word; }
body::before { opacity: .07; }
.hero h1, .interior-hero h1 { line-height: .98; letter-spacing: -.025em; }
.hero h1 { font-size: clamp(3.6rem,7.8vw,7.4rem); max-width: 830px; }
.hero__image { background: linear-gradient(90deg,rgba(13,10,8,.9),rgba(13,10,8,.62) 48%,rgba(13,10,8,.08)),linear-gradient(0deg,#120f0c,transparent 45%),url('/images/bg8.png') center / cover no-repeat; }
.collection-hero .interior-hero__shade { opacity: .3; }
.site-header { transition: box-shadow .3s, background .3s; }
.site-header.is-scrolled { background: rgba(18,15,12,.98); box-shadow: 0 8px 30px #0003; }
.site-nav a { position: relative; }
.site-nav a[aria-current="page"] { color: #e3a27a; }
.site-nav a[aria-current="page"]::after { content: ''; position: absolute; bottom: -9px; left: 0; right: 0; height: 2px; background: var(--red); }
.hero__content, .interior-hero__content { animation: entrance .85s cubic-bezier(.22,1,.36,1) both; }
.hero__image { animation: develop 1.5s ease-out both; }
.hero__stamp { border-color: #e7ddca66; transform: rotate(8deg); }
.hero::after { content: ''; position: absolute; inset: auto 0 0; height: 5px; background: linear-gradient(90deg,var(--red) 0 24%,#a57747 24% 27%,transparent 27%); }
.archive-card, .feature, .location-card, .directory-group, .film-resource { transition: transform .3s ease, box-shadow .3s ease, background .3s ease; }
.archive-card:hover, .location-card:hover, .film-resource:hover { transform: translateY(-5px); box-shadow: 0 16px 32px #15110e18; }
.archive-card__index { display: none; }
.archive-card { position: relative; }
.archive-card:not(.archive-card--image)::before { content: ''; width: 32px; height: 3px; background: var(--red); display: block; margin-bottom: 24px; }
.button { transition: background .25s, transform .25s, box-shadow .25s; }
.button:hover { transform: translateY(-2px); box-shadow: 0 8px 24px #0002; }
.collection-hero { min-height: 390px; background: linear-gradient(100deg,#15110ef2,#15110ea8),url('/images/bg8.png') center 45% / cover; border-bottom: 5px solid var(--red); }
.collection-hero .interior-hero__content { padding-top: 65px; padding-bottom: 65px; }
.collection-hero h1 { max-width: 1000px; font-size: clamp(3.2rem,7.5vw,6.8rem); }
.collection-content { width: var(--page); margin: auto; padding: 64px 0 100px; min-height: 40vh; }
.collection-content > :first-child { margin-top: 0; }
.collection-content h2 { font: 700 clamp(2rem,4vw,3.25rem)/1.05 var(--display); text-transform: uppercase; margin: 48px 0 24px; }
.collection-content h3 { font: 700 1.7rem/1.15 var(--display); margin: 0 0 16px; }
.collection-content p { max-width: 82ch; }
.collection-content a:not(.card):not(.button) { color: var(--red-dark); text-underline-offset: 4px; }
.collection-content .intro, .collection-content .overview, .timeline-intro, .biography, .info-section { font-size: 1.08rem; line-height: 1.85; margin-bottom: 40px; }
.collection-content .grid, .collection-content .gallery, .items-container { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; align-items: start; }
.collection-content .card, .collection-content .gallery-item, .item-card { display: block; overflow: hidden; border: 1px solid var(--line); background: var(--paper-light); text-decoration: none; min-width: 0; transition: transform .3s,box-shadow .3s; }
.collection-content .card:hover, .collection-content .gallery-item:hover { transform: translateY(-4px); box-shadow: 0 12px 30px #15110e20; }
.collection-content .card img, .collection-content .gallery-item img { width: 100%; height: 300px; object-fit: cover; transition: transform .6s ease,filter .6s; }
.collection-content .card:hover img { transform: scale(1.035); }
.card-text, .gallery-item .caption, .gallery-item > p { padding: 22px; margin: 0; }
.card-title { font: 700 1.5rem/1.15 var(--display); color: var(--ink); }
.collection-content .gallery { margin: 30px 0; }
.collection-content .gallery-item img { object-fit: contain; background: #d8cdb9; }
.collection-content .gallery-item h3 { padding: 18px; }
.collection-content .filter, .search-form, .archive-search { padding: 24px; margin: 0 0 36px; background: var(--paper-light); border: 1px solid var(--line); display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
input, select, textarea, button { font: inherit; }
.collection-content input:not([type=checkbox]):not([type=radio]), .collection-content select, .archive-search input { min-height: 48px; min-width: 0; max-width: 100%; padding: 12px 14px; border: 1px solid var(--paper-dark); border-radius: 0; background: #fcf8f0; color: var(--ink); }
.search-form input[type=text], .archive-search input { flex: 1 1 230px; }
.search-form select { flex: 1 1 190px; }
.collection-content input[type=submit], .collection-content button, .archive-search button { min-height: 48px; padding: 12px 22px; border: 0; background: var(--red-dark); color: #fff; cursor: pointer; }
.collection-content label, .archive-search label { font-size: .8rem; font-weight: 700; }
.item-card .image-container { background: #d8cdb9; }
.item-card .item-image { width: 100%; height: 320px; object-fit: contain; cursor: zoom-in; }
.item-card > h3 { padding: 24px 24px 0; }
.item-card > p { margin: 0; padding: 0 24px 16px; font-size: .875rem; }
.image-dots { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; padding: 12px; }
.collection-content .image-dots .dot { padding: 0; min-height: 24px; width: 24px; border: 7px solid #d8cdb9; background: var(--ink-soft); border-radius: 50%; cursor: pointer; }
.collection-content .image-dots .active { background: var(--red); }
.pagination { display: flex; flex-wrap: wrap; gap: 8px; margin: 40px 0; }
.pagination a { padding: 8px 16px; border: 1px solid var(--line); }
.pagination .active { background: var(--ink); color: var(--paper) !important; }
.timeline { position: relative; border-left: 1px solid var(--red); margin-left: 12px; padding-left: 40px; }
.timeline-event { position: relative; padding: 28px 32px; margin-bottom: 22px; background: var(--paper-light); border: 1px solid var(--line); }
.timeline-event::before { content: ''; position: absolute; left: -47px; top: 35px; width: 11px; height: 11px; background: var(--red); border: 3px solid var(--paper); box-sizing: content-box; }
.collection-content .year { margin: 0 0 16px; color: var(--red-dark); }
.scenes, .conventions-list, .credits-list { display: grid; gap: 24px; }
.scene, .convention-card, .credit-card { padding: 32px; background: var(--paper-light); border: 1px solid var(--line); }
.credit-card { display: grid; grid-template-columns: 100px minmax(0,1fr); gap: 28px; }
.credit-card img { width: 100px; height: 100px; object-fit: cover; }
.card-left { align-self: start; }
.avatar-icon { font-size: 2rem; }
.convention-card iframe { width: min(100%,800px); }
.collection-content iframe { display: block; max-width: 100%; width: min(100%,900px); aspect-ratio: 16/9; height: auto; border: 0; margin: 22px 0; background: var(--ink); }
.collection-content .video-container { margin: 24px 0; }
.collection-content .video-container iframe { width: 100%; }
.collection-content .section-photo { max-width: 320px; max-height: 400px; object-fit: contain; margin: 24px 0; }
.collection-content hr { border: 0; border-top: 1px solid var(--line); margin: 55px 0; }
.collection-content .logo, .propmakers-logo img { max-width: 320px; max-height: 300px; object-fit: contain; margin: 0 0 35px; }
.collection-bobburns .collection-content > section:first-of-type { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; }
.collection-bobburns .collection-content > section:first-of-type img { width: 100%; aspect-ratio: 3/4; object-fit: cover; }
.collection-content .pdf-embed { width: 100%; height: 75vh; border: 1px solid var(--line); margin-top: 25px; }
.sources { font-size: .8rem; color: #62574a; }
.music-section { margin-bottom: 50px; }
.collection-rickbalin .card img { object-fit: contain; background: #d8cdb9; }
.archive-search { width: var(--page); margin: 0 auto 25px; }
.archive-search-status { width: var(--page); margin: 0 auto 25px; }
[hidden] { display: none !important; }
.return-top { position: fixed; bottom: 24px; right: 24px; z-index: 60; width: 46px; height: 46px; display: grid; place-items: center; text-decoration: none; background: var(--red-dark); color: white; font-size: 1.3rem; box-shadow: 0 5px 20px #0003; opacity: 0; visibility: hidden; transform: translateY(12px); transition: .25s; }
.return-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.reading-progress { position: fixed; top: 0; left: 0; z-index: 120; width: 100%; height: 3px; background: #bc4938; transform-origin: left; transform: scaleX(0); pointer-events: none; }
.photo-viewer { padding: 24px; width: min(1100px,calc(100% - 32px)); max-height: 92vh; border: 1px solid #e7ddca40; background: var(--ink); color: var(--paper); box-shadow: 0 24px 100px #0008; }
.photo-viewer::backdrop { background: #0b0908ed; backdrop-filter: blur(8px); }
.photo-viewer img { width: 100%; height: 68vh; object-fit: contain; }
.photo-viewer__bar { display: flex; justify-content: space-between; gap: 15px; align-items: center; margin-top: 18px; }
.photo-viewer button { background: transparent; border: 1px solid #e7ddca66; color: var(--paper); min-width: 44px; min-height: 44px; cursor: pointer; }
.photo-viewer__close { position: absolute; right: 12px; top: 12px; background: var(--ink) !important; }
.photo-viewer__caption { margin: 0; font-size: .8rem; flex: 1; }
.photo-trigger { cursor: zoom-in; }
.utility-content { width: min(800px,calc(100% - 48px)); margin: 60px auto 90px; }
.utility-content h1 { font: 800 clamp(3rem,8vw,5rem)/1 var(--display); text-transform: uppercase; }
.utility-content form { max-width: 600px; }
.utility-content label { display: block; margin-top: 18px; }
.utility-content input { margin-bottom: 15px; }
.historical-content { margin-top: 45px; }
.historical-content img { max-width: 100%; height: auto; margin: 24px 0; }
.historical-content table { max-width: 100%; width: 100%; }
.historical-content iframe, .historical-content video { max-width: 100%; }
.archive-note { padding: 20px; border-left: 3px solid var(--red); background: var(--paper-light); }
@keyframes entrance { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes develop { from { opacity: .4; transform: scale(1.045); } to { opacity: 1; transform: scale(1); } }
@media (max-width: 1000px) {
 .collection-content .grid, .collection-content .gallery, .items-container { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
 :root { --page: calc(100% - 36px); }
 .collection-hero { min-height: 330px; }
 .collection-hero .interior-hero__content { padding: 45px 0; }
 .collection-content { padding: 36px 0 64px; }
 .collection-content .grid, .collection-content .gallery, .items-container { grid-template-columns: minmax(0,1fr); gap: 18px; }
 .collection-content .card img { height: 280px; }
 .credit-card { grid-template-columns: 64px minmax(0,1fr); gap: 18px; padding: 22px; }
 .credit-card img { width: 64px; height: 64px; }
 .timeline { margin-left: 8px; padding-left: 24px; }
 .timeline-event { padding: 22px; }
 .timeline-event::before { left: -31px; }
 .scene, .convention-card { padding: 22px; }
 .collection-bobburns .collection-content > section:first-of-type { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .search-form input, .search-form select { width: 100%; }
 .photo-viewer { padding: 12px; }
 .photo-viewer img { height: 60vh; }
 .return-top { bottom: 16px; right: 16px; }
}
@media (prefers-reduced-motion: reduce) {
 *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
