/* Load after cinema.css. Only the screen-reader copy is visually clipped;
   visible glyphs have no mask, cropped box, or independent vertical travel. */
.film-type-word { display: inline-block; white-space: nowrap; }
.film-type-letter, .title-letter { display: inline-block; }
.film-type-visual, .film-type-word, .film-type-letter,
.name-letter, .title-line, .title-letter { overflow: visible; }
.film-type-heading .film-type-visual { white-space: nowrap; position: relative; }
.film-brand-date {
  position: absolute; left: .02em; bottom: 100%;
  font: 400 clamp(18px, 2.4vw, 40px)/1.42 'San Display', Impact, sans-serif;
  letter-spacing: .12em; white-space: nowrap;
  padding-bottom: clamp(10px, 1.2vw, 22px);
}
.film-line.film-type-caption {
  max-width: min(1000px, calc(100vw - 2 * var(--gutter)));
  font: 400 clamp(30px, 5vw, 80px)/var(--display-line) 'San Display', Impact, sans-serif;
  letter-spacing: -.02em;
  bottom: 15svh;
  text-shadow: 0 2px 18px rgb(0 0 0 / .7);
  pointer-events: none;
}
/* Reduced motion keeps the established still + brand, without travelling captions. */
/* Rolling names keep their full line-height inside horizontal windows;
   accented archive headings retain open boxes and generous line spacing. */
.identity-name .name-letter, .artist-roll .name-letter, figcaption .name-letter {
  position: relative;
  overflow: hidden;
  vertical-align: top;
  /* Keep the whole glyph inside its window. Tight tracking belongs between
     windows; inherited negative tracking would shave the right-hand stroke. */
  letter-spacing: 0;
  margin-right: -.032em;
}
.artist-roll .name-letter { margin-right: -.035em; }
figcaption .name-letter { margin-right: -.025em; }
.film-type-heading .film-type-visual { perspective: 1000px; }
.film-type-heading .film-type-letter { transform-origin: 50% 100%; }
.name-ink { display: block; }
.name-ink-copy { position: absolute; top: 0; left: 100%; }
.film-type-readable {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
@media (prefers-reduced-motion: reduce) {
  .film-type-heading, .film-type-chapter, .film-type-caption,
  .film-type-letter, .film-brand-date, .name-letter, .title-line, .title-letter {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
  }
  .name-ink { transform: none !important; }
  .name-ink-copy { display: none; }
}

/* Full line-height plus accent allowance; only sideways entry is masked. */
.reveal-line-mask { display:block; overflow:clip; padding-block:.14em; margin-block:-.14em; }
[data-reveal-pending="true"] { opacity:0; }
[data-motion-title] .title-letter { opacity:1; filter:none; }
.scale-number { position:relative; }
.count-final { visibility:hidden; }
.count-current { position:absolute; left:0; top:0; font-variant-numeric:tabular-nums; }
@media (prefers-reduced-motion:reduce) { [data-reveal-pending] { opacity:1; } }
