html { scrollbar-gutter: stable; }

:root {
  --color-background: #0d0e0d;
  --color-elevated: #161816;
  --color-raised: #202320;
  --color-foreground: #f2efe8;
  --color-muted: #aaa9a1;
  --color-subtle: rgba(242, 239, 232, .17);
  --color-accent: #a892b8;
  --color-accent-contrast: #17120b;
  --color-focus: var(--color-foreground);
  --color-paper: #fffdf7;
  --color-paper-border: rgba(255, 253, 247, .9);
  --color-paper-border-soft: rgba(255, 253, 247, .76);
  --color-ink: #181717;
  --color-ink-strong: #171717;
  --color-ink-deep: #171217;
  --color-ink-hover: #343434;
  --color-ink-divider: rgba(24, 23, 23, .14);
  --color-ink-control-border: rgba(24, 23, 23, .2);
  --color-ink-soft-border: rgba(24, 23, 23, .16);
  --color-ink-soft-surface: rgba(24, 23, 23, .04);
  --color-ink-hover-surface: rgba(24, 23, 23, .08);
  --color-ink-selected-surface: rgba(24, 23, 23, .12);
  --color-light-surface: #f1eee8;
  --color-light-surface-raised: #fffdfa;
  --color-light-muted: #5d5a57;
  --color-media-fallback: #101010;
  --color-media-deep: #111311;
  --color-hero-fallback: #151019;
  --color-placeholder-surface: #d8d5d2;
  --color-placeholder-figure: #827d7a;
  --movie-personality-primary: #718096;
  --movie-personality-soft: #c3ccd8;
  --movie-personality-atmosphere: #26303d;
  --control-dark-media-border: var(--color-paper-border);
  --control-dark-media-surface: var(--control-media-surface);
  --control-dark-media-foreground: var(--color-paper);
  --control-dark-media-hover-border: var(--color-paper);
  --control-dark-media-hover-surface: var(--color-paper);
  --control-dark-media-hover-foreground: var(--color-ink-deep);
  --control-light-border: var(--color-ink);
  --control-light-foreground: var(--color-ink);
  --control-light-hover-border: var(--color-ink-strong);
  --control-light-hover-surface: var(--color-ink-strong);
  --control-light-hover-foreground: var(--color-paper);
  --control-solid-light-border: var(--color-paper);
  --control-solid-light-surface: var(--color-paper);
  --control-solid-light-foreground: var(--color-ink-deep);
  --control-solid-light-hover-surface: var(--color-ink-strong);
  --control-solid-light-hover-foreground: var(--color-paper);
  --cast-placeholder-head-size: 34%;
  --cast-placeholder-head-top: 17%;
  --cast-placeholder-shoulder-inset: 12%;
  --cast-placeholder-torso-height: 47%;
  --cast-placeholder-torso-bottom: -10%;
  --menu-inline-gutter: var(--header-content-inset);
  --menu-content-max-width: 48rem;
  --navigation-inline-start: max(var(--header-content-inset), calc((100vw - var(--content-standard)) / 2));
  --menu-content-inline-start: calc(var(--navigation-inline-start) + var(--header-control-size) + var(--space-4));
  --menu-skinny-inline-shift: 6vw;
  --menu-content-block-start: calc(var(--header-height) + var(--space-5));
  --menu-content-block-end: var(--space-6);
  --menu-item-size: clamp(2.2rem, 4vw, 3.6rem);
  --tablet-gutter: clamp(2.75rem, 6vw, 4rem);
  --tablet-menu-inline-gutter: var(--tablet-gutter);
  --tablet-menu-item-size: clamp(2.5rem, 4vw, 3.5rem);
  --tablet-hero-content-width: 38rem;
  --title-optical-height-phone: var(--title-target-phone, 7rem);
  --title-optical-height-tablet: var(--title-target-tablet, 8.5rem);
  --title-optical-height-desktop: var(--title-target-desktop, 9.5rem);
  --tablet-hero-padding-start: clamp(7rem, 15vh, 10rem);
  --tablet-hero-padding-end: clamp(4rem, 8vh, 6rem);
  --hero-scroll-cue-size: 3.25rem;
  --hero-content-bottom-inset: clamp(6rem, 12vh, 8rem);
  --hero-overlay: rgba(7, 8, 7, .58);
  --hero-overlay-heavy: rgba(7, 8, 7, .76);
  --hero-overlay-mid: rgba(7, 8, 7, .3);
  --hero-overlay-mobile-mid: rgba(7, 8, 7, .48);
  --hit-target-min: 44px;
  --header-height: 72px;
  --header-bar-height: calc(var(--header-padding-block-start) + 3rem + 1rem);
  --header-padding-block-start: 1rem;
  --header-gutter: var(--gutter);
  --control-cluster-gap: 10px;
  --nav-left-control-gap: var(--control-cluster-gap);
  --control-media-surface: rgba(10, 8, 12, .22);
  --control-height: 48px;
  --control-padding-inline: .9rem;
  --control-padding-block: .55rem;
  --control-icon-size: 1.1rem;
  --control-gap: var(--icon-label-gap);
  --control-border-width: 2px;
  --control-radius: 12px;
  --button-secondary-hover-foreground: var(--film-accent);
  --button-secondary-hover-border: var(--film-accent);
  --control-outline: var(--color-paper);
  --radius-card: 8px;
  --venue-card-radius: 1.25rem;
  --venue-card-min-inline-size: 19rem;
  --venue-card-ideal-inline-size: 22rem;
  --venue-card-max-inline-size: 24rem;
  --venue-card-unavailable-schedule-height: 8rem;
  --venue-card-footer-label-size: var(--text-control);
  --venue-card-footer-label-line-height: 1.1;
  --venue-card-footer-label-weight: 800;
  --venue-card-min-height: 23rem;
  --venue-card-padding: clamp(1.15rem, 2.2vw, 1.5rem);
  --venue-card-name-size: var(--text-secondary);
  --venue-card-name-line-height: 1.2;
  --venue-card-address-size: var(--text-meta);
  --venue-card-address-line-height: 1.3;
  --venue-card-identity-gap: .35rem;
  --venue-card-external-icon-size: 1.1rem;
  --chip-height: 1.8rem;
  --chip-radius: var(--radius-circle);
  --chip-padding-inline: .65rem;
  --chip-gap: .35rem;
  --showtime-pill-height: var(--hit-target-min);
  --showtime-pill-padding-inline: .85rem;
  --showtime-pill-radius: var(--radius-circle);
  --showtime-pill-gap: .5rem;
  --showtime-pill-font-size: var(--text-control);
  --showtime-pill-line-height: 1;
  --showtime-panel-padding: var(--space-3);
  --radius-circle: 999px;
  --icon-size: 1.25rem;
  --icon-stroke-width: 1.75px;
  --icon-label-gap: .25rem;
  --section-space: clamp(5rem, 10vw, 10rem);
  --focus-ring-width: 3px;
  --motion-fast: 180ms;
  --motion-standard: 360ms;
  --motion-slow: 700ms;
  --motion-hero-content-duration: 620ms;
  --motion-hero-content-delay: 140ms;
  --motion-hero-ease: cubic-bezier(.22, .72, .22, 1);
  --hero-scroll-cue-min-bottom-space: 1.5rem;
  --font-ui: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --font-heading: var(--font-ui);
  --font-body: var(--font-ui);
  --font-button: var(--font-ui);
  --font-meta: var(--font-ui);
  --font-display: var(--font-heading);
  --text-display: clamp(3.25rem, 9vw, 8.5rem);
  --text-hero-copy: clamp(1rem, 1.4vw, 1.3rem);
  --text-section: clamp(2rem, 4.4vw, 4.75rem);
  --text-meta: 15px;
  --text-secondary: 16px;
  --text-body: 16px;
  --text-control: 16px;
  --text-route-title: clamp(1.15rem, 2vw, 1.65rem);
  --text-page-title: 2.2rem;
  --text-page-title-phone: 1.5rem;
  --hero-mobile-title-width: 24rem;
  --text-label: var(--text-meta);
  --text-button: var(--text-control);
  --about-title-size: clamp(2rem, 4.5vw, 3rem);
  --about-banner-ratio: 27 / 10;
  --about-layout-wide-min: 64rem;
  --about-divider-width: 100%;
  --about-divider-thickness: 1px;
  --about-divider-opacity: .17;
  --about-divider-color: rgb(242 239 232 / var(--about-divider-opacity));
  --about-divider: var(--about-divider-thickness) solid var(--about-divider-color);
  --about-divider-space-before: var(--about-stack-padding);
  --about-divider-space-after: var(--about-stack-padding);
  --about-stack-padding: clamp(1.5rem, 3vw, 2.4rem);
  --banner-content-inset-inline: clamp(1rem, 4vw, 4rem);
  --banner-content-inset-block: clamp(1rem, 4vw, 3rem);
  --header-content-inset: var(--gutter);
  --header-content-offset: var(--header-height);
  --header-control-size: 48px;
  --credit-row-min-height: 4.5rem;
  --credit-row-padding-block: .85rem;
  --credit-row-gap: 1rem;
  --credit-row-border-width: var(--about-divider-thickness);
  --credit-role-size: var(--text-meta);
  --credit-name-size: var(--text-secondary);
  --cast-avatar-size-small: 112px;
  --cast-avatar-size-medium: 128px;
  --cast-avatar-size-large: 144px;
  --cast-grid-gap: clamp(1rem, 2vw, 1.75rem);
  --cast-name-size: 16px;
  --cast-role-size: 15px;
  --showtimes-media-ratio: 3 / 1;
  --showtimes-constrained-media-ratio: 3 / 1;
  --branding-dark-outline-strength: 4px;
  --showtimes-divider-color: var(--color-ink-divider);
  --showtimes-control-muted: var(--color-light-muted);
  --showtimes-control-interactive: var(--color-ink-strong);
  --showtimes-date-control-hover-background: var(--color-ink-strong);
  --showtimes-date-control-hover-foreground: var(--color-paper);
  --showtimes-date-control-hover-border: var(--color-ink-strong);
  --showtimes-focus-ring: var(--color-focus);
  --showtimes-empty-mark-color: var(--color-ink);
  --footer-dark-surface: var(--color-background);
  --footer-light-surface: var(--color-light-surface);
  --showtimes-hero-scrim: linear-gradient(180deg, rgba(0, 0, 0, 0) 48%, rgba(0, 0, 0, .12) 70%, rgba(0, 0, 0, .75) 100%);
  --showtimes-constrained-hero-scrim: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .08) 24%, rgba(0, 0, 0, .78) 39%, var(--color-media-deep) 52%, var(--color-media-deep) 100%);
  --showtimes-edge-inset: clamp(1.25rem, 3.5vw, 2.75rem);
  --showtimes-date-rail-gap: var(--space-3);
  --showtimes-empty-safe-zone: var(--space-4);
  --showtimes-control-gap: var(--control-cluster-gap);
  --gallery-gap: clamp(.55rem, 1.4vw, 1rem);
  --gallery-item-width: clamp(17rem, 78vw, 28rem);
  --gallery-lightbox-max-width: 78rem;
  --color-gallery-surface: var(--color-media-deep);
  --space-gap-small: .75rem;
  --border-subtle: 1px solid var(--color-subtle);
  --border-subtle-dashed: 1px dashed var(--color-subtle);
  --space-1: .35rem;
  --space-2: .65rem;
  --space-3: 1rem;
  --space-4: clamp(1.25rem, 2vw, 1.75rem);
  --space-5: clamp(2rem, 4vw, 3.5rem);
  --space-6: clamp(3.75rem, 8vw, 8rem);
  --content-narrow: 46rem;
  --content-module-copy: 36rem;
  --content-standard: 74rem;
  --content-wide: 100rem;
  --gutter: 4.5rem;
  --layer-page: 0;
  --layer-page-media: 0;
  --layer-page-overlay: 1;
  --layer-page-content: 2;
  --layer-page-raised: 3;
  --layer-navigation: 1000;
  --layer-modal: 2500;
  --layer-menu: 3000;
  --layer-menu-surface: 3010;
  --layer-debug: 2000;
  --layer-accessibility: 2900;
  --radius-sm: var(--control-radius);
  --radius-md: .45rem;
  --duration-fast: var(--motion-fast);
  --duration-cinematic: var(--motion-slow);
  --ease-standard: cubic-bezier(.2, .7, .2, 1);
  --shadow-soft: 0 1rem 3rem rgba(0, 0, 0, .18);
  --film-accent: var(--color-accent);
  --promotion-gold-light: #f7ddaa;
  --promotion-gold-soft: #f1ca89;
  --promotion-gold-mid: #e2ae59;
  --promotion-gold-deep: #c98f35;
  --promotion-cta-foreground: var(--color-paper);
  --promotion-cta-border: transparent;
  --ticket-accent: var(--promotion-gold-soft);
  --ticket-surface: var(--color-ink-strong);
  color-scheme: dark;
}

body {
  --campaign-motion-deep: var(--movie-personality-atmosphere);
  --campaign-motion-primary: var(--movie-personality-primary);
  --campaign-motion-return: var(--movie-personality-atmosphere);
  --menu-surface-purple-bright: color-mix(in oklab, var(--movie-personality-primary) 82%, var(--color-ink-deep));
  --menu-surface-purple-light: color-mix(in oklab, var(--movie-personality-primary) 67%, var(--color-ink-deep));
  --menu-surface-purple-mid: color-mix(in oklab, var(--movie-personality-primary) 50%, var(--color-ink-deep));
  --menu-surface-purple-dark: color-mix(in oklab, var(--movie-personality-primary) 36%, var(--color-ink-deep));
  --menu-surface-purple-deep: color-mix(in oklab, var(--movie-personality-primary) 24%, var(--color-ink-deep));
  --menu-surface-color: var(--menu-surface-purple-deep);
  --menu-surface-gradient: radial-gradient(ellipse farthest-corner at 0% 0%, var(--menu-surface-purple-bright) 0%, var(--menu-surface-purple-light) 28%, var(--menu-surface-purple-mid) 52%, var(--menu-surface-purple-dark) 76%, var(--menu-surface-purple-deep) 100%);
}


*, *::before, *::after { box-sizing: border-box; }
html { background: var(--color-background); }
.ux-proof-panel { position: fixed; z-index: 900; right: 12px; bottom: 12px; width: min(30rem, calc(100vw - 24px)); max-height: min(70vh, 34rem); overflow: auto; padding: 12px; border: 1px solid var(--color-accent); border-radius: 8px; background: rgba(13, 14, 13, .96); color: var(--color-foreground); font: 12px/1.4 var(--font-meta); box-shadow: 0 8px 30px rgba(0,0,0,.35); }
.ux-proof-panel strong { display: block; margin-bottom: 8px; color: var(--color-accent); font: 700 12px/1.2 var(--font-body); }
.ux-proof-panel pre { margin: 0; white-space: pre-wrap; }
body { min-width: 320px; margin: 0; background: var(--color-background); color: var(--color-foreground); font: 400 var(--text-body)/1.65 var(--font-body); text-rendering: optimizeLegibility; }
body.header-content-state main { padding-top: 0; }
body.theme-light { --color-foreground: #171714; --color-muted: #55564e; --color-subtle: rgba(23, 23, 20, .22); --about-divider-color: rgb(23 23 20 / var(--about-divider-opacity)); --color-focus: var(--color-foreground); --color-accent-contrast: var(--color-paper); --hero-overlay: rgba(255, 252, 242, .24); --hero-overlay-heavy: rgba(255, 252, 242, .4); color-scheme: light; }
body.text-side-right .hero-content { margin-left: auto; margin-right: max(var(--gutter), calc((100vw - 74rem) / 2)); }
body.text-side-center .hero-content { margin-inline: auto; text-align: center; }
body.text-side-center .hero-content > * { margin-inline: auto; }
body.overlay-low { --hero-overlay: var(--hero-overlay-mid); --hero-overlay-heavy: var(--hero-overlay-mobile-mid); }
body.overlay-high { --hero-overlay: rgba(7, 8, 7, .72); --hero-overlay-heavy: rgba(7, 8, 7, .88); }
body.theme-light .hero-shade { background: linear-gradient(90deg, var(--hero-overlay-heavy), var(--hero-overlay) 60%, transparent), linear-gradient(0deg, var(--hero-overlay-heavy), transparent 60%); }
*, *::before, *::after { border-color: var(--color-subtle); }
a { color: inherit; }
button, input { font: inherit; }
img { display: block; max-width: 100%; }
h1, h2, h3, p { margin-top: 0; }
h2 { margin-bottom: var(--space-4); font: 800 var(--text-section)/.98 var(--font-heading); letter-spacing: -.04em; }
h3 { line-height: 1.16; }
.container { width: calc(100% - var(--gutter) - var(--gutter)); max-width: var(--content-standard); margin-right: auto; margin-left: auto; margin-inline: auto; }
.narrow { max-width: var(--content-narrow); }
.wide { max-width: var(--content-wide); }
.skip-link { position: fixed; z-index: var(--layer-accessibility); top: var(--space-3); left: var(--space-3); padding: .75rem 1rem; background: var(--film-accent); color: var(--color-accent-contrast); transform: translateY(-160%); transition: transform var(--duration-fast) var(--ease-standard); }
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: var(--focus-ring-width) solid var(--color-focus); outline-offset: 4px; }
:focus:not(:focus-visible) { outline: none; }
.icon { display: inline-block; width: var(--icon-size); height: var(--icon-size); flex: 0 0 auto; stroke-width: var(--icon-stroke-width); vertical-align: middle; }
.icon[data-icon-style="regular"] { stroke: currentColor; stroke-width: var(--icon-stroke-width); vector-effect: non-scaling-stroke; }
.icon[data-icon-style="fill"] { stroke: none; vector-effect: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
[hidden] { display: none !important; }

.site-header { position: absolute; z-index: var(--layer-navigation); inset: 0 0 auto; min-height: var(--header-height); padding: var(--header-padding-block-start) 0 1rem; color: var(--color-paper); background: linear-gradient(180deg, rgba(0, 0, 0, .64), transparent); isolation: isolate; transition: background var(--motion-standard) var(--ease-standard), backdrop-filter var(--motion-standard) var(--ease-standard); }
.header-scroll-sentinel { position: absolute; top: 1px; width: 1px; height: 1px; pointer-events: none; }
.site-header > .container { width: calc(100% - var(--header-content-inset) - var(--header-content-inset)); max-width: var(--content-standard); }
.site-header.is-scrolled { position: fixed; background: rgba(13, 14, 13, .9); backdrop-filter: blur(18px) saturate(1.15); box-shadow: 0 1px 0 rgba(255, 253, 247, .08); }
.nav, .footer-inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); }
.nav-left-controls { display: flex; align-items: center; gap: var(--control-cluster-gap); }
.wordmark { display: inline-flex; align-items: baseline; gap: .65rem; font-size: var(--text-meta); font-weight: 750; letter-spacing: .19em; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
.wordmark-title { color: var(--color-paper); }
.wordmark-studio { color: rgba(255, 253, 247, .56); font-size: var(--text-meta); font-weight: 600; letter-spacing: .14em; }
.nav-links { display: flex; align-items: center; gap: clamp(1rem, 2.5vw, 2.5rem); font-size: var(--text-meta); }
.nav-links a, .site-footer a { text-decoration: none; }
.nav-links a:not(.nav-cta) { opacity: .82; transition: opacity var(--duration-fast) ease; }
.nav-links a:not(.nav-cta):hover { opacity: 1; }
.nav-cta { min-height: var(--control-height); padding: var(--control-padding-block) var(--control-padding-inline); border: var(--control-border-width) solid rgba(255, 253, 247, .5); border-radius: var(--control-radius); transition: background var(--duration-fast) ease, color var(--duration-fast) ease, border-color var(--duration-fast) ease; }
.nav-cta:hover { background: var(--color-paper); color: #151512; }
.nav-toggle { display: none; min-height: var(--control-height); padding: .55rem .8rem; border: var(--control-border-width) solid var(--color-paper-border); border-radius: var(--radius-circle); background: var(--control-media-surface); color: inherit; font-size: var(--text-meta); letter-spacing: .06em; transition: background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), opacity var(--motion-fast) var(--ease-standard); }

.hero { position: relative; display: grid; min-height: 100svh; min-height: 100dvh; align-items: end; overflow: hidden; isolation: isolate; background: var(--color-hero-fallback); }
.hero-art, .hero-art img, .hero-fallback, .hero-shade, .hero-video { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-art img { object-fit: cover; object-position: var(--focal-x) var(--focal-y); }
.hero-video { z-index: var(--layer-page-media); object-fit: cover; object-position: var(--focal-x) var(--focal-y); }
.hero-fallback { background: var(--color-hero-fallback); }
.hero-shade { z-index: var(--layer-page-overlay); background: linear-gradient(90deg, var(--hero-overlay-heavy) 0%, var(--hero-overlay) 36%, rgba(7, 8, 7, .1) 68%, transparent), linear-gradient(0deg, var(--hero-overlay-heavy) 0%, var(--hero-overlay-mid) 24%, transparent 62%); }
.hero-content { position: relative; z-index: var(--layer-page-content); display: flex; width: min(100%, 40rem); flex-direction: column; align-items: flex-start; margin-right: auto; margin-left: max(var(--gutter), calc((100vw - 74rem) / 2)); padding-block: clamp(7rem, 18vh, 13rem) var(--hero-content-bottom-inset); }
.hero-content { animation: hero-content-in var(--motion-hero-content-duration) var(--motion-hero-ease) var(--motion-hero-content-delay) both; }
.hero-layout-center .hero-content { align-items: center; margin-inline: auto; text-align: center; }
.hero-layout-center .hero-content > * { margin-inline: auto; }
.hero-layout-right .hero-content { align-items: flex-end; margin-left: auto; margin-right: max(var(--gutter), calc((100vw - 74rem) / 2)); text-align: right; }
.hero-layout-right .hero-content > * { margin-left: auto; }
.hero-position-upper .hero-content { padding-bottom: clamp(10rem, 24vh, 18rem); }
.hero-position-center .hero-content { padding-block: clamp(6rem, 12vh, 9rem) var(--hero-content-bottom-inset); }
.hero-position-lower .hero-content { padding-top: clamp(9rem, 20vh, 15rem); }
.hero-layout-center .hero-shade { background: linear-gradient(90deg, rgba(7, 8, 7, .28), transparent 34%, transparent 66%, rgba(7, 8, 7, .28)), linear-gradient(0deg, var(--hero-overlay-heavy), rgba(7, 8, 7, .2) 38%, transparent 74%); }
.eyebrow, .card-kicker { margin-bottom: var(--space-2); color: var(--film-accent); font-size: var(--text-label); font-weight: 750; letter-spacing: .14em; line-height: 1.3; text-transform: uppercase; }
.hero-title { max-width: 8ch; margin-bottom: var(--space-4); font: 500 var(--text-display)/.84 var(--font-display); letter-spacing: -.08em; text-wrap: balance; }
.title-treatment-wrap { display: flex; width: min(calc(var(--title-optical-height-desktop) * var(--title-source-width) / var(--title-visible-height)), 100%); height: auto; aspect-ratio: var(--title-source-width) / var(--title-source-height); justify-content: center; margin-bottom: clamp(1.25rem, 2.4vw, 2rem); }
.title-treatment { display: block; width: 100%; height: 100%; margin-inline: auto; object-fit: contain; object-position: center; }
.text-side-center .title-treatment { object-position: center; }
.hero-tagline, .hero-announcement { max-width: 37rem; margin-bottom: var(--space-4); color: #f4f0e7; font-size: var(--text-hero-copy); line-height: 1.45; text-wrap: pretty; }
.hero-release-state { color: var(--color-paper); font-size: clamp(1.05rem, 1.8vw, 1.2rem); font-weight: 900; letter-spacing: .2em; line-height: 1.35; text-transform: uppercase; }
.theme-light .hero-tagline, .theme-light .hero-announcement { color: var(--color-foreground); }
.hero .button { margin-top: .3rem; }
.hero-signature { opacity: .82; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--space-gap-small); margin-top: .2rem; }
.hero-actions .button { min-width: 9.5rem; width: auto; flex: 0 0 auto; }

@keyframes hero-content-in {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

.section { position: relative; padding-block: var(--section-space); }
.section-compact { padding-block: var(--space-5); }
.section-heading { max-width: 48rem; margin-bottom: clamp(2.5rem, 5vw, 5rem); }
.content-grid { display: grid; grid-template-columns: minmax(12rem, .72fr) minmax(0, 1fr); gap: clamp(2rem, 8vw, 9rem); align-items: start; }
.content-grid > :first-child { position: sticky; top: 7rem; }
.lead { color: var(--color-muted); font-size: clamp(1.1rem, 1.8vw, 1.5rem); line-height: 1.5; }
.button { display: inline-flex; min-height: var(--control-height); align-items: center; justify-content: center; gap: var(--control-gap); padding: var(--control-padding-block) var(--control-padding-inline); border: var(--control-border-width) solid transparent; border-radius: var(--control-radius); font: 800 var(--text-button)/1.1 var(--font-button); letter-spacing: .01em; text-align: center; text-decoration: none; transition: background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), opacity var(--motion-fast) var(--ease-standard); }
.button-primary { background: var(--color-ink-strong); color: var(--color-paper); }
.button-primary:hover { background: var(--color-ink-hover); }
.button-secondary { border-color: var(--color-subtle); background: transparent; color: var(--color-foreground); }
.button-secondary:hover, .button-secondary:focus-visible, .button-secondary:active { border-color: var(--button-secondary-hover-border); background: var(--button-secondary-hover-background, transparent); color: var(--button-secondary-hover-foreground); }
.control-family-outline-light, .control-family-dark-media, .control-family-solid-light, .control-family-media-accent { box-sizing: border-box; }
.control-family-outline-light { border-color: var(--control-light-border); background: transparent; color: var(--control-light-foreground); }
.control-family-outline-light:hover, .control-family-outline-light:focus-visible, .control-family-outline-light:active { border-color: var(--control-light-hover-border); background: var(--control-light-hover-surface); color: var(--control-light-hover-foreground); }
.control-family-dark-media { border-color: var(--control-dark-media-border); background: var(--control-dark-media-surface); color: var(--control-dark-media-foreground); }
.control-family-dark-media:hover, .control-family-dark-media:focus-visible, .control-family-dark-media:active { border-color: var(--control-dark-media-hover-border); background: var(--control-dark-media-hover-surface); color: var(--control-dark-media-hover-foreground); }
.control-family-solid-light { border-color: var(--control-solid-light-border); background: var(--control-solid-light-surface); color: var(--control-solid-light-foreground); }
.control-family-solid-light:hover, .control-family-solid-light:focus-visible, .control-family-solid-light:active { border-color: var(--control-solid-light-border); background: var(--control-solid-light-hover-surface); color: var(--control-solid-light-hover-foreground); }
.control-family-media-accent { border-color: var(--control-dark-media-border); background: var(--control-dark-media-surface); color: var(--control-dark-media-foreground); }
.control-family-media-accent:hover, .control-family-media-accent:focus-visible, .control-family-media-accent:active { border-color: var(--film-accent); background: var(--control-dark-media-surface); color: var(--film-accent); }
.control-family-disabled, .control-family-disabled:hover, .control-family-disabled:focus-visible, .control-family-disabled:active { border-color: var(--color-subtle); background: transparent; color: var(--color-muted); cursor: default; }
.button-outline { border-color: var(--control-outline); background: transparent; color: var(--color-paper); }
.button-outline:hover, .button-outline:focus-visible { border-color: var(--film-accent); color: var(--film-accent); }
.button-small { min-height: var(--control-height); padding: var(--control-padding-block) var(--control-padding-inline); font-size: var(--text-control); }
.button-disabled { border-color: var(--color-subtle); color: var(--color-muted); cursor: default; }
.facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-4); margin: var(--space-5) 0 0; padding-top: var(--space-3); border-top: var(--border-subtle); }
.facts div { min-width: 0; padding-top: .85rem; border-top: var(--control-border-width) solid var(--film-accent); }
.facts dt { color: var(--color-muted); font-size: var(--text-label); letter-spacing: .14em; text-transform: uppercase; }
.facts dd { margin: .3rem 0 0; }

.module-heading-group { width: min(100%, 52rem); margin-inline: auto; text-align: center; }
.module-heading-group .eyebrow { margin-bottom: var(--space-2); }
.module-supporting-copy { width: min(100%, var(--content-module-copy)); margin-inline: auto; color: var(--color-muted); }
.module-heading { max-width: none; margin-inline: auto; text-align: center; white-space: nowrap; }
.section-page-title { font: 800 var(--about-title-size)/1 var(--font-heading); letter-spacing: -.035em; text-align: center; }

.finder-controls { display: flex; align-items: end; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-4); }
.finder-controls label { display: grid; width: min(100%, 30rem); gap: .55rem; font-size: var(--text-meta); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
input { box-sizing: border-box; width: 100%; min-height: var(--control-height); padding: var(--control-padding-block) var(--control-padding-inline); border: var(--control-border-width) solid var(--color-subtle); border-radius: var(--control-radius); outline: none; background: var(--color-elevated); color: var(--color-foreground); font-size: 1rem; }
input:focus { border-color: var(--color-focus); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-focus) 22%, transparent); }
.form-note, .muted { color: var(--color-muted); font-size: var(--text-secondary); }
.availability-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--venue-card-min-inline-size)), 1fr)); justify-content: start; gap: var(--space-3); background: transparent; border: 0; box-shadow: none; align-items: start; }
.availability-card { display: flex; width: min(100%, var(--venue-card-max-inline-size)); min-width: 0; min-height: var(--venue-card-min-height); flex-direction: column; align-items: stretch; gap: var(--space-4); padding: var(--venue-card-padding); border: 1px solid var(--color-subtle); border-radius: var(--venue-card-radius); background: linear-gradient(145deg, var(--color-elevated), var(--color-raised)); }
.availability-card h3 { min-width: 0; margin: 0 0 .35rem; overflow: hidden; font: 700 var(--venue-card-name-size)/var(--venue-card-name-line-height) var(--font-display); letter-spacing: -.025em; overflow-wrap: normal; }
.availability-card p { margin-bottom: .35rem; }
.availability-card .button { width: 100%; margin-top: auto; }
.availability-group { margin-top: var(--space-6); }
.event-callout, .callout { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); margin-top: var(--space-4); padding: clamp(1.3rem, 3vw, 2rem); border: 1px solid var(--color-subtle); background: var(--color-raised); }
.event-callout h3, .callout h2 { margin-bottom: .35rem; }
.empty-state { padding: var(--space-4); border: 1px dashed var(--color-subtle); color: var(--color-muted); }
.gallery-section { border-bottom: 0; background: var(--color-gallery-surface); }
.gallery-heading { max-width: none; }
.gallery-stage { position: relative; }
.gallery-rail { display: flex; gap: var(--gallery-gap); min-width: 0; overflow-x: auto; overscroll-behavior-inline: contain; padding: .35rem max(0px, calc((100% - var(--gallery-item-width)) / 2)) 1rem; scroll-padding-inline: max(0px, calc((100% - var(--gallery-item-width)) / 2)); scroll-snap-type: inline mandatory; scrollbar-width: none; touch-action: pan-y; cursor: grab; }
.gallery-rail::-webkit-scrollbar { display: none; width: 0; height: 0; }
.gallery-rail.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.gallery-item { display: block; flex: 0 0 var(--gallery-item-width); width: 100%; margin: 0; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; scroll-snap-align: center; cursor: zoom-in; opacity: .48; filter: brightness(.62) saturate(.78); transition: opacity var(--motion-standard) var(--ease-standard), filter var(--motion-standard) var(--ease-standard); }
.gallery-item.is-selected, .gallery-item:focus-visible { opacity: 1; filter: none; }
.gallery-item-media { display: block; overflow: hidden; aspect-ratio: var(--gallery-image-ratio, 16 / 9); border-radius: var(--radius-sm); background: var(--color-media-fallback); }
.gallery-item picture, .gallery-item img { display: block; width: 100%; height: 100%; }
.gallery-item img { object-fit: cover; }
.gallery-item:focus-visible { outline: var(--focus-ring-width) solid var(--color-focus); outline-offset: 5px; }
.gallery-item-caption { display: block; padding-top: .55rem; color: var(--color-muted); font-size: var(--text-secondary); }
.gallery-rail-control { position: absolute; z-index: var(--layer-page-content); top: calc(50% - (var(--control-height) / 2)); width: var(--control-height); min-width: var(--control-height); padding: 0; }
.gallery-rail-control[data-gallery-rail-prev] { left: var(--space-2); }
.gallery-rail-control[data-gallery-rail-next] { right: var(--space-2); }
.gallery-lightbox { position: fixed; z-index: var(--layer-modal); inset: 0; display: grid; overflow: auto; place-items: center; padding: clamp(1rem, 4vw, 3rem); background: rgba(6, 6, 6, .94); }
.gallery-lightbox-scrim { position: fixed; inset: 0; }
.gallery-lightbox-panel { position: relative; z-index: 1; width: min(100%, var(--gallery-lightbox-max-width)); }
.gallery-lightbox-header { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }
.gallery-lightbox-header .eyebrow { margin: 0; }
.gallery-lightbox-close { width: var(--control-height); min-width: var(--control-height); padding: 0; cursor: pointer; }
.gallery-lightbox-figure { margin: var(--space-3) 0 0; }
.gallery-lightbox-image { width: 100%; max-height: min(74vh, 52rem); object-fit: contain; background: transparent; }
.gallery-lightbox-caption { min-height: 1.65em; padding-top: var(--space-2); color: var(--color-muted); }
.gallery-lightbox-nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--space-3); margin-top: var(--space-3); }
.gallery-lightbox-nav .button { width: var(--control-height); min-width: var(--control-height); height: var(--control-height); padding: 0; }
.gallery-lightbox-nav [data-gallery-prev] { justify-self: start; }
.gallery-lightbox-nav [data-gallery-next] { justify-self: end; }
.gallery-lightbox-count { margin: 0; color: var(--color-muted); font-size: var(--text-meta); text-align: center; }
.media-lightbox-video { width: 100%; }
.media-lightbox-video-frame { overflow: hidden; aspect-ratio: 16 / 9; background: var(--color-media-fallback); }
.media-lightbox-video-frame iframe, .media-lightbox-video-frame video { display: block; width: 100%; height: 100%; border: 0; background: var(--color-media-fallback); }
body.gallery-open, body.media-lightbox-open { overflow: hidden; }
.credits-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: var(--space-5); }
ul { margin: 0; padding-left: 1.15rem; }
details { padding: 1.1rem 0; border-top: 1px solid var(--color-subtle); }
summary { cursor: pointer; font-weight: 700; }

.site-footer { padding: clamp(2.5rem, 6vw, 5rem) 0; background: var(--footer-dark-surface); color: var(--color-muted); font-size: var(--text-secondary); }
.site-footer--light { background: var(--footer-light-surface); color: var(--color-light-muted); }
.site-footer--light a { color: var(--color-ink); }
.site-footer p { margin: 0; }
.footer-inner div { display: flex; flex-wrap: wrap; gap: 1rem; }
.site-footer a:hover { color: var(--color-foreground); text-decoration: underline; text-underline-offset: .25em; }
@media (max-width: 760px) { .site-footer small { width: 100%; text-align: center; } }
/* Platform-wide responsive authority. Home-only selectors remain in 40-home-responsive.css. */
@media (max-width: 760px) {
  :root { --gutter: 1rem; }
}

/* Documented tiny-viewport safeguard; not a platform layout breakpoint. */
@media (max-width: 360px) {
  :root { --gutter: 1rem; }
}

@media (min-width: 761px) and (max-width: 1100px) {
  :root { --gutter: var(--tablet-gutter); }
}

@supports (width: clamp(1px, 2px, 3px)) {
  :root { --gutter: clamp(1rem, 4.5vw, 4.5rem); }
  @media (max-width: 760px) {
    :root { --gutter: clamp(1rem, 4.5vw, 4.5rem); }
  }
  @media (min-width: 761px) and (max-width: 1100px) {
    :root { --gutter: var(--tablet-gutter); }
  }
}

/* Shallow landscape retains the tablet gutter across platform surfaces. */
@media (min-width: 1101px) and (max-height: 850px) and (orientation: landscape) {
  :root { --gutter: var(--tablet-gutter); }
}

@media (min-width: 1800px) {
  :root { --content-standard: 82rem; --gutter: 4rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
/* Platform phone family: <= 760px. Keep this aligned with responsiveContract.platform. */
.public-placeholder { min-height: 100svh; min-height: 100dvh; overflow: hidden; }
.public-placeholder-hero { min-height: 100svh; min-height: 100dvh; height: 100svh; height: 100dvh; }
.public-placeholder .hero-content { pointer-events: none; }
.public-placeholder .hero-announcement { margin-bottom: 0; }

@media (max-width: 760px) {
  .site-header { padding-top: 1rem; }
  .nav-toggle { display: block; }
  .nav-links a { padding: .25rem 0; }
  .nav-cta { text-align: center; }
  .hero { min-height: 100svh; min-height: 100dvh; }
  .hero-art img { object-position: var(--mobile-focal-x) var(--mobile-focal-y); }
  .hero-shade { background: linear-gradient(0deg, var(--hero-overlay-heavy) 0%, var(--hero-overlay-mobile-mid) 34%, transparent 76%), linear-gradient(90deg, var(--hero-overlay), transparent 65%); }
  .hero-content, body.text-side-right .hero-content { width: 100%; margin-inline: auto; padding-block: 7rem var(--hero-content-bottom-inset); }
  body.text-side-right .hero-content { text-align: left; }
  body.text-side-center .hero-content { text-align: center; }
  .hero-title { font-size: clamp(3.1rem, 17vw, 5.3rem); }
  .title-treatment-wrap { height: calc(var(--title-optical-height-phone) / (var(--title-visible-height) / var(--title-source-height))); }
  .content-grid { grid-template-columns: 1fr; gap: var(--space-4); }
  .content-grid > :first-child { position: static; }
  .facts { grid-template-columns: 1fr; }
  .finder-controls, .event-callout, .callout, .footer-inner { align-items: stretch; flex-direction: column; }
  .finder-controls label { width: 100%; }
  .module-heading { white-space: normal; }
  .availability-card .button, .event-callout .button, .callout .button { width: 100%; }
}
/* Documented tiny-viewport safeguard; not a platform layout breakpoint. */
@media (max-width: 360px) {
  .hero-content { padding-block: 6rem var(--hero-content-bottom-inset); }
  .hero-title { font-size: 3.1rem; }
  .hero-actions .button,
  .availability-card .button,
  .event-callout .button,
  .callout .button { width: 100%; }
}
/* Platform tablet family: 761px–1100px. */
@media (min-width: 761px) and (max-width: 1100px) {
  :root {
    --menu-inline-gutter: var(--tablet-menu-inline-gutter);
    --menu-item-size: var(--tablet-menu-item-size);
    --hero-content-width: var(--tablet-hero-content-width);
    --hero-content-bottom-inset: clamp(5.5rem, 12vh, 8rem);
  }
  .hero-content { width: min(100%, var(--tablet-hero-content-width)); padding-block: var(--tablet-hero-padding-start) var(--hero-content-bottom-inset); }
  .title-treatment-wrap { height: calc(var(--title-optical-height-tablet) / (var(--title-visible-height) / var(--title-source-height))); }
  .hero-release-state { font-size: clamp(1.05rem, 1.8vw, 1.25rem); }
  .content-grid { gap: clamp(2rem, 5vw, 4rem); }
  :root { --gallery-item-width: min(46vw, 30rem); }
}

/* Platform desktop family: >= 1101px. */
@media (min-width: 1101px) {
  :root { --gallery-item-width: min(31vw, 32rem); }
}

/* Platform shallow-landscape family: desktop width with tablet-height geometry. */
@media (min-width: 1101px) and (max-height: 850px) and (orientation: landscape) {
  :root {
    --menu-inline-gutter: var(--tablet-menu-inline-gutter);
    --menu-item-size: var(--tablet-menu-item-size);
    --hero-content-width: var(--tablet-hero-content-width);
    --hero-content-bottom-inset: clamp(5.5rem, 12vh, 8rem);
    --gallery-item-width: min(46vw, 30rem);
  }
  .hero-content { width: min(100%, var(--tablet-hero-content-width)); padding-block: var(--tablet-hero-padding-start) var(--hero-content-bottom-inset); }
  .title-treatment-wrap { height: calc(var(--title-optical-height-tablet) / (var(--title-visible-height) / var(--title-source-height))); }
  .hero-release-state { font-size: clamp(1.05rem, 1.8vw, 1.25rem); }
  .content-grid { gap: clamp(2rem, 5vw, 4rem); }
}
@media (min-width: 761px) and (max-width: 900px) {
  .hero-art img { object-position: var(--mobile-focal-x) var(--mobile-focal-y); }
  .hero-shade { background: linear-gradient(0deg, var(--hero-overlay-heavy) 0%, rgba(7, 8, 7, .44) 34%, transparent 76%), linear-gradient(90deg, var(--hero-overlay), transparent 65%); }
}
@media (max-height: 620px) and (orientation: landscape) {
  .hero-content { padding-block: 5.5rem var(--hero-content-bottom-inset); }
  .title-treatment-wrap { height: calc(var(--title-optical-height-phone) / (var(--title-visible-height) / var(--title-source-height))); margin-bottom: 1rem; }
  .hero-tagline, .hero-announcement { margin-bottom: 1rem; font-size: 1rem; }
}
@media (min-width: 1400px) {
  .hero-content { width: min(100%, 44rem); }
  .title-treatment-wrap { height: calc(var(--title-optical-height-desktop) / (var(--title-visible-height) / var(--title-source-height))); }
}
@supports not (color: color-mix(in srgb, black, white)) {
  input:focus { box-shadow: none; }
}
/* Optional campaign surfaces stay quiet until approved content enables them. */
.about-layout { display: grid; gap: clamp(2rem, 5vw, 4rem); }
.about-art-direction { width: 100%; overflow: hidden; aspect-ratio: var(--about-banner-ratio); border: 0; background: #1a1719; box-shadow: none; }
.about-art-direction picture, .about-art-direction img { display: block; width: 100%; height: auto; }
.about-art-direction img { object-fit: contain; object-position: center; }
.about-art-direction.is-asset-required { display: grid; place-items: center; border: var(--border-subtle-dashed); color: var(--film-accent); }
.about-content { min-width: 0; }
.about-art-direction + .about-content { margin-top: clamp(2.5rem, 6vw, 5rem); }
.about-heading, .about-block, .about-primary-credits, .about-more-credits { width: var(--about-divider-width); border-bottom: var(--about-divider); }
.about-heading { padding-block: 0 var(--about-divider-space-after); }
.about-heading h2 { max-width: 12ch; margin-bottom: 1.25rem; font-size: var(--about-title-size); line-height: 1; letter-spacing: -.035em; }
.about-heading .section-page-title { margin-inline: 0; text-align: left; }
.about-identity-meta { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-4); }
.about-badges { display: flex; flex: 1 1 auto; flex-wrap: wrap; gap: .5rem; min-width: 0; margin: 0; padding: 0; list-style: none; }
.about-badges li { padding: .42rem .7rem; border: var(--control-border-width) solid rgba(242, 239, 232, .34); border-radius: var(--radius-circle); color: var(--color-foreground); font-size: var(--text-meta); font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.about-release-state { flex: 0 0 auto; margin: 0; color: var(--film-accent); font-size: var(--text-meta); font-weight: 800; letter-spacing: .12em; line-height: 1.25; text-align: right; text-transform: uppercase; }
.about-imdb-link { display: inline-flex; margin-top: 1.25rem; align-items: center; gap: var(--icon-label-gap); color: var(--film-accent); font-size: var(--text-secondary); font-weight: 750; letter-spacing: .01em; text-decoration: none; }
.about-imdb-link .icon { width: 1rem; height: 1rem; }
.about-imdb-link:hover { text-decoration: underline; text-underline-offset: .3em; }
.about-block { padding-block: var(--about-divider-space-before) var(--about-divider-space-after); }
.about-block h3, .about-credit-group h3 { margin: 0 0 .75rem; color: var(--film-accent); font-size: var(--text-meta); font-weight: 800; letter-spacing: .14em; line-height: 1.25; text-transform: uppercase; }
.about-lead { max-width: none; margin: 0; color: var(--color-foreground); font-size: clamp(1.15rem, 2vw, 1.6rem); font-weight: 500; line-height: 1.42; }
.about-primary-credits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; padding-block: var(--about-divider-space-before) var(--about-divider-space-after); }
.about-credit-group ul { margin: 0; padding: 0; list-style: none; }
.about-credit-group li { color: var(--color-foreground); font-size: clamp(1rem, 1.5vw, 1.2rem); font-weight: 650; line-height: 1.35; }
.about-more-credits { padding: 0; border-top: 0; }
.about-more-credits summary { display: flex; align-items: center; justify-content: space-between; min-height: var(--hit-target-min); padding-block: var(--about-divider-space-before) var(--about-divider-space-after); color: var(--film-accent); font-size: var(--text-meta); font-weight: 800; letter-spacing: .14em; line-height: 1.25; list-style: none; text-transform: uppercase; }
.about-more-credits summary::-webkit-details-marker { display: none; }
.about-more-credits summary span { display: inline-flex; color: var(--film-accent); }
.about-more-credits summary span .icon { width: 1.35rem; height: 1.35rem; }
.disclosure-icon-open { display: none !important; }
.about-more-credits[open] .disclosure-icon-closed { display: none !important; }
.about-more-credits[open] .disclosure-icon-open { display: inline-flex !important; }
.about-more-credits[open] .about-secondary-grid { animation: disclosure-in var(--motion-standard) var(--ease-standard) both; }
.about-secondary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 2rem; padding: 0 0 var(--about-stack-padding); }
.credit-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, auto); min-height: var(--credit-row-min-height); align-items: baseline; column-gap: var(--credit-row-gap); padding-block: var(--credit-row-padding-block); border-top: var(--about-divider); }
.credit-row h3 { min-width: 0; margin: 0; color: var(--film-accent); font-size: var(--credit-role-size); font-weight: 800; letter-spacing: .12em; line-height: 1.25; text-transform: uppercase; }
.credit-row p { min-width: 0; margin: 0; color: var(--color-foreground); font-size: var(--credit-name-size); font-weight: 650; line-height: 1.35; text-align: right; overflow-wrap: anywhere; }
.about-cast { padding-bottom: var(--about-stack-padding); }
.about-cast-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--cast-grid-gap); }
.about-cast-card { min-width: 0; border: 0; background: transparent; text-align: center; }
.about-cast-card-link { position: relative; display: block; color: inherit; text-decoration: none; }
.about-cast-card.has-profile .about-cast-card-link:focus-visible { outline: var(--focus-ring-width) solid var(--color-focus); outline-offset: .35rem; }
.about-cast-card.has-profile:hover { color: var(--film-accent); }
.about-cast-portrait { width: min(100%, var(--cast-avatar-size-medium)); margin-inline: auto; overflow: hidden; aspect-ratio: 1; border: var(--control-border-width) solid var(--color-subtle); border-radius: var(--radius-circle); background: var(--color-raised); }
.about-cast-portrait.is-placeholder { border: 0; }
.about-cast-grid.presentation-square .about-cast-portrait { border-radius: var(--radius-card); }
.about-cast-portrait picture, .about-cast-portrait picture > img { display: block; width: 100%; height: 100%; }
.about-cast-portrait picture > img { object-fit: cover; object-position: center top; transition: filter var(--motion-standard) ease; }
.about-cast-card:hover .about-cast-portrait picture > img { filter: brightness(1.08); }
.about-cast-card.has-profile:hover .about-cast-portrait { border-color: var(--film-accent); }
.cast-placeholder-visual { position: relative; width: 100%; height: 100%; overflow: hidden; background: var(--color-placeholder-surface); }
.placeholder-shoulders { position: absolute; z-index: 1; right: var(--cast-placeholder-shoulder-inset); bottom: var(--cast-placeholder-torso-bottom); left: var(--cast-placeholder-shoulder-inset); height: var(--cast-placeholder-torso-height); border-radius: 50% 50% 0 0; background: var(--color-placeholder-figure); }
.placeholder-head { position: absolute; z-index: 2; top: var(--cast-placeholder-head-top); left: 50%; width: var(--cast-placeholder-head-size); height: var(--cast-placeholder-head-size); aspect-ratio: 1; border-radius: 50%; background: var(--color-placeholder-figure); transform: translateX(-50%); }

/* Older rendering engines need an explicit box because they do not resolve aspect-ratio. */
@supports not (aspect-ratio: 1) {
  .about-cast-portrait { width: var(--cast-avatar-size-medium); max-width: 100%; height: var(--cast-avatar-size-medium); }
}
.about-cast-copy { position: relative; padding: .8rem .25rem .9rem; }
.about-cast-copy h4 { margin: 0; color: var(--color-foreground); font-size: var(--cast-name-size); font-weight: 750; line-height: 1.2; }
.about-cast-copy p { margin: .25rem 0 0; color: var(--color-muted); font-size: var(--cast-role-size); }
.about-cast-copy > .icon { width: 1rem; height: 1rem; margin: .35rem auto 0; color: var(--film-accent); }
@keyframes disclosure-in {
  from { opacity: 0; transform: translateY(-.35rem); }
  to { opacity: 1; transform: translateY(0); }
}
.campaign-widgets { position: relative; z-index: var(--layer-page-raised); background: linear-gradient(180deg, rgba(13, 14, 13, .92), var(--color-background)); }
.campaign-widget-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.campaign-widget { min-height: 13rem; padding: clamp(1.4rem, 3vw, 2.5rem); border-right: 1px solid var(--color-subtle); }
.campaign-widget:last-child { border-right: 0; }
.campaign-widget h2 { margin-bottom: .55rem; font-size: clamp(1.35rem, 2.4vw, 2rem); }
.campaign-widget p:not(.card-kicker) { min-height: 3.2em; color: var(--color-muted); font-size: var(--text-secondary); }
.campaign-widget .button { margin-top: .75rem; }
.review-grid, .updates-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: 1px; background: var(--color-subtle); border: 1px solid var(--color-subtle); }
.review-card, .update-card { min-height: 15rem; padding: clamp(1.4rem, 3vw, 2.3rem); background: linear-gradient(145deg, var(--color-elevated), var(--color-raised)); }
.review-score, .metric-value { color: var(--film-accent); font: 500 clamp(2.5rem, 6vw, 5rem)/.95 var(--font-display); letter-spacing: -.05em; }
.review-card blockquote { margin: 1.25rem 0; color: var(--color-foreground); font-size: 1.15rem; line-height: 1.45; }
.text-link { display: inline-flex; margin-top: 1rem; color: var(--film-accent); font-size: .94rem; font-weight: 750; text-decoration: none; }
.text-link:hover { text-decoration: underline; text-underline-offset: .3em; }
.contact-form { width: min(100%, 42rem); margin: var(--space-5) auto 0; scroll-margin-top: calc(var(--header-height) + var(--space-3)); }
.contact-modes { margin: 0; padding: 0; border: 0; }
.contact-modes legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.contact-mode-options { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-3); }
.contact-mode { display: inline-flex; min-height: var(--hit-target-min); align-items: center; gap: var(--control-gap); padding: var(--control-padding-block) var(--control-padding-inline); border: var(--control-border-width) solid var(--control-outline); border-radius: var(--control-radius); color: var(--color-foreground); cursor: pointer; font-weight: 750; }
.contact-mode:not(:has(input:checked)):not(.is-selected):hover { border-color: var(--film-accent); background: var(--color-raised); color: var(--film-accent); }
.contact-mode:focus-within { outline: var(--focus-ring-width) solid var(--color-focus); outline-offset: 4px; }
.contact-mode:has(input:checked), .contact-mode.is-selected { border-color: var(--film-accent); background: var(--color-raised); color: var(--film-accent); }
.contact-mode input { width: auto; min-height: auto; }
.contact-fields { display: grid; gap: var(--space-3); margin-top: var(--space-4); padding: 0; border: 0; background: transparent; }
.contact-common-fields, .contact-fields fieldset { display: grid; gap: var(--space-3); margin: 0; padding: 0; border: 0; }
.contact-fields label, .contact-fields legend { display: grid; gap: .45rem; color: var(--color-foreground); font-size: var(--text-meta); font-weight: 750; letter-spacing: .04em; }
.contact-label-text { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: .35em; }
.contact-fields legend { font-size: var(--text-label); letter-spacing: .1em; text-transform: uppercase; }
.contact-fields input, .contact-fields textarea { outline: none; }
.contact-fields textarea { box-sizing: border-box; width: 100%; min-height: 8rem; padding: var(--control-padding-block) var(--control-padding-inline); border: var(--control-border-width) solid var(--color-subtle); border-radius: var(--control-radius); resize: vertical; background: var(--color-elevated); color: var(--color-foreground); font: inherit; }
.contact-fields input:focus, .contact-fields textarea:focus { border-color: var(--color-focus); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-focus) 22%, transparent); }
.contact-fields .button { justify-self: center; min-width: 10rem; }
.contact-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
@media (prefers-reduced-motion: reduce) { .contact-fields { animation: none; } }
@media (max-width: 760px) { .contact-mode-options { align-items: stretch; flex-direction: column; } .contact-mode { justify-content: center; } .contact-fields .button { width: 100%; } }
.metric-panel { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding: clamp(1.5rem, 4vw, 3rem); border: 1px solid var(--color-subtle); background: radial-gradient(circle at 90% 20%, rgba(168, 146, 184, .15), transparent 38%), var(--color-elevated); }
.metric-panel h2 { margin-bottom: 0; }
.metric-target { display: block; color: var(--color-muted); font: 400 var(--text-secondary)/1.2 var(--font-body); letter-spacing: 0; text-align: right; }
.update-card h3 { margin-bottom: .7rem; font: 500 clamp(1.25rem, 2vw, 1.7rem)/1.1 var(--font-display); }
.update-card p:not(.card-kicker) { color: var(--color-muted); }
.cast-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: clamp(.75rem, 2vw, 1.5rem); }
.cast-card { overflow: hidden; border: 1px solid var(--color-subtle); background: var(--color-elevated); }
.cast-card-link { display: block; color: inherit; text-decoration: none; }
.cast-card.has-profile:hover { border-color: var(--film-accent); color: var(--film-accent); }
.cast-card.has-profile .cast-card-link:focus-visible { outline: var(--focus-ring-width) solid var(--color-focus); outline-offset: -.35rem; }
.cast-card picture, .cast-card .cast-placeholder-visual { display: block; width: 100%; aspect-ratio: 4 / 5; }
.cast-card picture > img { width: 100%; height: 100%; object-fit: cover; }
.cast-placeholder { display: grid; place-items: center; color: rgba(255, 253, 247, .65); font: 500 clamp(3rem, 8vw, 6rem)/1 var(--font-display); }
.cast-card-copy { padding: 1rem 1.1rem 1.25rem; }
.cast-card-copy h3 { margin-bottom: .15rem; font: 500 clamp(1.1rem, 1.8vw, 1.4rem)/1.1 var(--font-display); }
.cast-card-copy p { margin-bottom: 0; }
.partner-list { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: clamp(2rem, 6vw, 5rem); }
.partner-list a { display: block; opacity: .72; transition: opacity var(--duration-fast) ease; }
.partner-list a:hover { opacity: 1; }
.partner-list img { width: auto; max-width: 10rem; max-height: 3.5rem; object-fit: contain; }
.footer-inner > div { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
.section-page-title { max-width: 100%; margin-bottom: var(--space-4); }
.campaign-gateway { text-align: center; }
.campaign-gateway-copy { max-width: 34rem; margin: 0 auto var(--space-4); color: var(--color-muted); }
.campaign-atmosphere { --campaign-atmosphere-primary: color-mix(in srgb, var(--movie-personality-primary) 20%, transparent); --campaign-atmosphere-soft: color-mix(in srgb, var(--movie-personality-soft) 15%, transparent); --campaign-atmosphere-deep: #000; --campaign-bloom-top-left-color: color-mix(in srgb, var(--movie-personality-primary) 72%, var(--campaign-atmosphere-deep)); --campaign-bloom-bottom-right-color: color-mix(in srgb, var(--movie-personality-primary) 40%, var(--campaign-atmosphere-deep)); --campaign-bloom-baseline-radius: clamp(34rem, 55vmax, 54rem); --campaign-bloom-max-radius: clamp(52rem, 86vmax, 96rem); --campaign-bloom-radius: var(--campaign-bloom-max-radius); --campaign-bloom-influence: 1; }
.social-viewer-page { --social-viewer-surface: var(--color-ink-deep); --social-viewer-accent: var(--film-accent); min-height: 100vh; overflow: hidden; background: transparent; color: var(--color-paper); }
.social-viewer-page .social-viewer-track { display: flex; width: 100%; height: 100%; flex-direction: column; transition: transform 360ms var(--ease-standard); will-change: transform; }
.social-viewer { --social-viewer-frame-height: calc(100dvh - var(--social-viewer-header-height, var(--header-height))); position: fixed; z-index: 1; inset: var(--social-viewer-header-height, var(--header-height)) 0 0; height: auto; min-height: 0; box-sizing: border-box; }
.social-viewer-shell { position: relative; display: grid; grid-template-rows: minmax(0, 1fr) auto; width: 100%; height: 100%; margin-inline: auto; }
.social-viewer-hashtag { color: var(--social-viewer-accent); font-weight: 750; }
.social-viewer-stage { position: relative; width: 100%; height: 100%; min-height: 0; overflow: hidden; overscroll-behavior: contain; touch-action: none; background: transparent; }
.social-viewer-stage:focus-visible { outline: 0; }
.social-viewer-panel { position: relative; z-index: 1; display: grid; flex: 0 0 100%; width: 100%; height: 100%; min-height: 0; box-sizing: border-box; place-items: center; align-content: center; gap: var(--space-3); padding: var(--space-3); background: transparent; }
.campaign-copy-stack, .social-viewer-copy-stack { display: grid; width: min(calc(100% - (var(--header-content-inset) * 2)), 38rem); margin-inline: auto; place-items: center; align-content: center; gap: var(--space-2); text-align: center; }
.campaign-copy-stack.module-heading-group, .social-viewer-copy-stack.module-heading-group { width: min(calc(100% - (var(--header-content-inset) * 2)), 52rem); }
.campaign-copy-stack > *, .social-viewer-copy-stack > * { width: 100%; margin: 0; }
.social-viewer-copy-stack span { display: block; }
.social-viewer-intro-content .eyebrow, .social-viewer-outro .eyebrow { color: var(--social-viewer-accent); }
.social-viewer-outro { width: 100%; margin-inline: auto; text-align: center; }
.social-viewer-panel p { max-width: 30rem; margin: 0; color: color-mix(in srgb, var(--color-paper) 74%, transparent); }
.social-viewer-panel strong { color: var(--social-viewer-accent); font-size: var(--text-secondary); }
.social-viewer-hint { color: color-mix(in srgb, var(--color-paper) 60%, transparent); font-size: var(--text-meta); letter-spacing: .08em; text-transform: uppercase; }
.social-viewer-story { grid-template-rows: minmax(0, 1fr); grid-template-columns: 1fr; align-content: start; place-items: start center; padding: 0; }
.social-viewer-player { position: relative; width: var(--social-viewer-player-width, 100%); height: var(--social-viewer-player-height, 100%); max-width: 100%; max-height: 100%; overflow: hidden; aspect-ratio: 9 / 16; background: transparent; }
.social-viewer-thumbnail, .social-viewer-player iframe { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; }
.social-viewer-thumbnail { opacity: 1; transition: opacity var(--motion-fast) var(--ease-standard); }
.social-viewer-thumbnail.is-thumbnail-hidden { opacity: 0; pointer-events: none; }
.social-viewer-player iframe { z-index: 2; display: block; transition: opacity var(--motion-fast) var(--ease-standard); }
.social-viewer-touch-layer { position: absolute; z-index: 4; inset: 0; display: block; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: pointer; touch-action: none; }
.social-viewer-debug { position: absolute; z-index: 5; top: var(--space-2); left: var(--header-content-inset); max-width: min(18rem, calc(100% - (var(--header-content-inset) * 2))); padding: .45rem .6rem; border: 1px solid rgba(255, 253, 247, .25); border-radius: var(--control-radius); background: rgba(0, 0, 0, .76); color: var(--color-paper); font: 650 12px/1.35 var(--font-meta); white-space: pre-wrap; pointer-events: none; }
.social-viewer-fallback { position: absolute; z-index: 3; inset: 50% auto auto 50%; min-height: var(--control-height); transform: translate(-50%, -50%); white-space: nowrap; }
.social-viewer-footer { z-index: 3; display: grid; min-height: var(--social-viewer-footer-height, calc(var(--header-padding-block-start) + var(--control-height) + 1rem + env(safe-area-inset-bottom))); box-sizing: border-box; padding-block: var(--header-padding-block-start) calc(1rem + env(safe-area-inset-bottom)); background: transparent; border: 0; box-shadow: none; }
.social-viewer-controls { position: static; display: flex; align-items: center; justify-content: center; gap: var(--control-cluster-gap); min-height: 0; padding: 0; background: transparent; pointer-events: none; }
.social-viewer-controls > * { pointer-events: auto; }
.social-viewer-controls button { min-width: var(--control-height); }
.social-viewer-controls button:disabled { opacity: .45; cursor: not-allowed; }
@media (prefers-reduced-motion: reduce) { .social-viewer-page .social-viewer-track { transition-duration: 0ms; } }
.menu-campaign-action { display: inline-flex; align-items: center; padding: .25rem 0; border: 0; background: transparent; color: var(--movie-personality-soft); font: 750 var(--menu-item-size)/1.05 var(--font-heading); letter-spacing: -.04em; text-align: left; text-decoration: none; cursor: pointer; }
.menu-campaign-action:hover, .menu-campaign-action:focus-visible { color: var(--film-accent); }
.miracle-wall-rail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(16rem, 20rem); gap: var(--space-3); overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: inline proximity; padding: 0 0 var(--space-2); }
.miracle-wall-item { scroll-snap-align: start; overflow: hidden; border: 0; border-radius: var(--radius-card); background: var(--color-elevated); }
.miracle-wall-item iframe { display: block; width: 100%; aspect-ratio: 9 / 16; height: auto; border: 0; background: var(--color-media-fallback); }
.miracle-wall-meta { padding: .9rem 1rem 1.1rem; }
.miracle-wall-meta h3 { margin: .25rem 0 .6rem; font-size: var(--text-secondary); }
.miracle-wall-meta p { margin: 0; color: var(--color-muted); font-size: var(--text-meta); }
.miracle-wall-meta a { display: inline-flex; margin-top: .7rem; gap: .35rem; color: var(--film-accent); font-size: var(--text-meta); font-weight: 750; text-decoration: none; }
.miracle-wall-meta a:hover { text-decoration: underline; text-underline-offset: .25em; }
.miracle-wall-source { letter-spacing: .05em; text-transform: uppercase; }
.miracle-ticket-entry { width: 100%; min-width: 0; margin-inline: auto; }
.miracle-ticket-frame { display: block; box-sizing: border-box; width: 100%; max-width: 100%; height: 80rem; min-width: 0; min-height: 0; border: 0; background: var(--color-media-fallback); }
.campaign-gateway-note { margin: 0; color: var(--color-muted); font-size: var(--text-meta); }
.campaign-page { background: var(--color-background); color: var(--color-foreground); }
body.campaign-page.campaign-atmosphere { position: relative; background-color: var(--campaign-atmosphere-deep); background-image: none; }
body.campaign-page.campaign-atmosphere::before { position: fixed; z-index: 0; inset: 0; pointer-events: none; content: ''; background: radial-gradient(circle var(--campaign-bloom-radius) at 0 0, var(--campaign-bloom-top-left-color) 0%, transparent 72%), radial-gradient(circle var(--campaign-bloom-radius) at 100% 100%, var(--campaign-bloom-bottom-right-color) 0%, transparent 72%); opacity: 1; transform: none; transform-origin: center; }
body.miracle-ticket-page.campaign-atmosphere { --campaign-motion-deep: #170009; --campaign-motion-primary: #552475; --campaign-motion-return: #170009; }
body.miracle-ticket-page.campaign-atmosphere::before { background: linear-gradient(135deg, var(--campaign-motion-deep) 0%, var(--campaign-motion-primary) 50%, var(--campaign-motion-return) 100%); background-size: 260% 260%; background-position: 0% 0%; animation: miracle-ticket-atmosphere-drift 32s ease-in-out infinite alternate; }
@keyframes miracle-ticket-atmosphere-drift { from { background-position: 0% 0%; } to { background-position: 100% 100%; } }
body.campaign-page.campaign-atmosphere > *:not(.site-header):not(.social-viewer):not(.skip-link) { position: relative; z-index: 1; }
body.campaign-page { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
body.campaign-page:not(.social-viewer-page) .site-footer { background: transparent; }
body.campaign-page:not(.social-viewer-page) .site-footer { padding-block: var(--space-4); }
body.campaign-page.social-viewer-page .site-footer { display: none; }
html:has(body.social-viewer-page) { overflow: hidden; }
.campaign-page-main { box-sizing: border-box; width: min(calc(100% - (var(--gutter) * 2)), var(--content-standard)); max-width: 100%; min-width: 0; flex: 1 0 auto; margin-inline: auto; padding-block: max(var(--header-bar-height), clamp(8rem, 14vh, 12rem)) clamp(4rem, 8vh, 7rem); }
.site-header[data-header-mode="static-dark"] { position: fixed; background: rgba(13, 14, 13, .9); backdrop-filter: blur(18px) saturate(1.15); box-shadow: 0 1px 0 rgba(255, 253, 247, .08); transition: none; }
body.miracle-ticket-page[data-campaign-state="live"] .miracle-ticket-page-content > .module-heading-group { margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.campaign-page-intro { max-width: 36rem; margin: 0 auto; color: var(--color-muted); font-size: var(--text-secondary); }
.campaign-state, .campaign-handoff { padding-block: clamp(2rem, 6vw, 4rem); text-align: center; }
.campaign-state p:not(.eyebrow), .campaign-handoff p:not(.eyebrow) { max-width: 34rem; margin-inline: auto; color: var(--color-muted); }
.campaign-page-note { margin: var(--space-4) auto 0; color: var(--color-muted); font-size: var(--text-meta); text-align: center; }
.miracle-ticket-page-content { width: 100%; }
body.miracle-ticket-page[data-campaign-state="coming-soon"] .miracle-ticket-main { display: grid; place-items: center; width: min(calc(100% - (var(--gutter) * 2)), var(--content-standard)); min-height: calc(100dvh - var(--header-height)); padding-block: var(--space-5); }
body.miracle-ticket-page[data-campaign-state="coming-soon"] .miracle-ticket-page-content { width: min(100%, 44rem); }
body.miracle-ticket-page[data-campaign-state="coming-soon"] .campaign-page-heading { margin-bottom: var(--space-3); }
body.miracle-ticket-page[data-campaign-state="coming-soon"] .miracle-ticket-entry { width: 100%; }
body.miracle-ticket-page[data-campaign-state="coming-soon"] .miracle-ticket-coming-soon { padding: 0; }
body.miracle-ticket-page[data-campaign-state="coming-soon"] .miracle-ticket-coming-soon .eyebrow { margin: 0; color: var(--film-accent); }
body.miracle-ticket-page[data-campaign-state="coming-soon"] .site-footer { display: none; }

@media (max-width: 760px) {
  .campaign-page-main { padding-top: 7rem; }
  .miracle-ticket-frame { height: 112rem; }
  .miracle-wall-rail { grid-auto-columns: minmax(14rem, 78vw); }
  .social-viewer { padding-inline: 0; }
  .social-viewer-heading { padding-top: var(--space-2); }
}

@media (prefers-reduced-motion: reduce) {
  body.miracle-ticket-page.campaign-atmosphere::before { animation: none; background-position: 50% 50%; }
}

@media (min-width: 761px) and (max-width: 1100px) {
  .miracle-ticket-frame { height: 96rem; }
}

@media (max-width: 760px) {
  .hero-layout-center .hero-content { padding-block: 6rem 3.5rem; }
  .hero-position-upper .hero-content { padding-bottom: 8rem; }
  .hero-position-center .hero-content { padding-block: 5rem; }
  .hero-layout-center .hero-shade { background: linear-gradient(0deg, var(--hero-overlay-heavy), rgba(7, 8, 7, .25) 44%, transparent 82%), linear-gradient(90deg, rgba(7, 8, 7, .28), transparent 70%); }
  .about-primary-credits { gap: 1rem; }
  .campaign-widget { border-right: 0; border-bottom: 1px solid var(--color-subtle); }
  .campaign-widget:last-child { border-bottom: 0; }
  .metric-panel { align-items: flex-start; flex-direction: column; }
  .metric-target { text-align: left; }
  .cast-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .partner-list { justify-content: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-video { display: none; }
  .hero-content, .hero-art img, .site-header .nav-toggle, .site-header .header-action { animation: none; opacity: 1; filter: none; transform: none; }
}

/* Canonical movie-first opening header. */
.site-header { position: fixed; z-index: var(--layer-navigation); inset: 0 0 auto; width: 100%; isolation: isolate; transition: background var(--motion-standard) var(--ease-standard), backdrop-filter var(--motion-standard) var(--ease-standard); }
body.menu-open { overflow: hidden; overscroll-behavior: none; }
body.menu-open .site-header { z-index: var(--layer-menu); inset: 0 0 auto; width: 100%; height: auto; min-height: var(--header-height); }
body.menu-snap .site-header { transition: none; }
body.menu-open .site-header.is-scrolled { backdrop-filter: none; box-shadow: none; }
body.menu-open .header-action { border-color: var(--color-paper); background: var(--color-paper); color: var(--color-ink-strong); }
body.menu-open .header-action:hover, body.menu-open .header-action:focus-visible { border-color: var(--color-paper); background: var(--color-paper); color: var(--color-ink-strong); }
body.menu-open .header-action, body.menu-snap .header-action, body.menu-open .nav-toggle, body.menu-snap .nav-toggle, body.menu-open .nav-toggle-icons > .icon, body.menu-snap .nav-toggle-icons > .icon { transition: none; }
.nav { position: relative; min-height: 3rem; }
.header-context-right { display: flex; min-width: 0; align-items: center; margin-left: auto; }
.header-context-right .header-action { margin-left: 0; }
.nav-toggle { display: grid; width: var(--header-control-size); height: var(--header-control-size); min-width: var(--header-control-size); min-height: var(--header-control-size); place-items: center; padding: 0; border: var(--control-border-width) solid var(--control-dark-media-border); border-radius: var(--radius-circle); background: var(--control-media-surface); transition: background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), opacity var(--motion-fast) var(--ease-standard); }
.header-home { display: inline-grid; width: var(--header-control-size); height: var(--header-control-size); min-width: var(--header-control-size); place-items: center; border: var(--control-border-width) solid var(--control-dark-media-border); border-radius: var(--radius-circle); background: var(--control-dark-media-surface); color: var(--control-dark-media-foreground); text-decoration: none; transition: background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard); }
.header-home .icon { width: var(--icon-size); height: var(--icon-size); }
.nav-toggle-icons { display: grid; width: var(--icon-size); height: var(--icon-size); place-items: center; }
.nav-toggle-icons > .icon { grid-area: 1 / 1; width: var(--icon-size); height: var(--icon-size); transition: opacity var(--motion-fast) var(--ease-standard); }
.nav-close-icon { opacity: 0; }
.nav-toggle[aria-expanded="true"] .nav-menu-icon { opacity: 0; }
.nav-toggle[aria-expanded="true"] .nav-close-icon { opacity: 1; }
.header-action { display: inline-flex; min-height: var(--control-height); align-items: center; justify-content: center; margin-left: auto; padding: var(--control-padding-block) var(--control-padding-inline); border: var(--control-border-width) solid var(--control-dark-media-border); border-radius: var(--control-radius); background: var(--control-dark-media-surface); color: var(--control-dark-media-foreground); font: 800 var(--text-control)/1.1 var(--font-button); letter-spacing: .01em; text-decoration: none; transition: background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), opacity var(--motion-fast) var(--ease-standard); }
.nav-toggle:hover, .nav-toggle:focus-visible, .header-home:hover, .header-home:focus-visible, .header-action:hover, .header-action:focus-visible { border-color: var(--control-dark-media-hover-border); background: var(--control-dark-media-hover-surface); color: var(--control-dark-media-hover-foreground); }
.site-header.is-scrolled .header-action { border-color: var(--control-solid-light-border); background: var(--control-solid-light-surface); color: var(--control-solid-light-foreground); }
.site-header.is-scrolled .header-action:hover, .site-header.is-scrolled .header-action:focus-visible { background: var(--control-solid-light-hover-surface); border-color: var(--control-solid-light-border); color: var(--control-solid-light-hover-foreground); }
body.menu-open .site-header.is-scrolled .header-action { border-color: var(--color-paper) !important; background: var(--color-paper) !important; color: var(--color-ink-strong) !important; }
body.menu-open .site-header.is-scrolled .header-action:hover, body.menu-open .site-header.is-scrolled .header-action:focus-visible { border-color: var(--color-paper) !important; background: var(--color-paper) !important; color: var(--color-ink-strong) !important; }
body.menu-open .site-header .header-action { display: none; }
.header-action:active { opacity: .88; }
.nav-links { position: fixed; z-index: var(--layer-menu-surface); inset: 0; width: auto; height: 100dvh; min-height: 100svh; max-height: 100dvh; display: grid; visibility: hidden; place-items: start; padding: var(--menu-content-block-start) var(--menu-inline-gutter) var(--menu-content-block-end) var(--menu-content-inline-start); overflow-y: auto; opacity: 0; pointer-events: none; background-color: var(--menu-surface-color); background-image: var(--menu-surface-gradient); contain: paint; transition: none; }
.nav-toggle, .header-home, .header-action { position: relative; z-index: calc(var(--layer-menu-surface) + 1); animation: none; opacity: 1; }
.nav-links.is-open { visibility: visible; opacity: 1; pointer-events: auto; }
.menu-inner { display: flex; width: min(100%, var(--menu-content-max-width)); flex-direction: column; align-items: flex-start; gap: clamp(.6rem, 1.2vw, 1rem); }
.menu-inner > * { opacity: .82; transition: color var(--motion-fast) var(--ease-standard), opacity var(--motion-fast) var(--ease-standard); }
.menu-inner > *:hover, .menu-inner > *:focus-visible { opacity: 1; color: var(--film-accent); }
.menu-inner > a { padding: .25rem 0; color: var(--color-paper); font: 750 var(--menu-item-size)/1.05 var(--font-heading); letter-spacing: -.04em; text-decoration: none; }
.menu-trailer-action { display: inline-flex; align-items: center; padding: .25rem 0; border: 0; background: transparent; color: var(--color-paper); font: 750 var(--menu-item-size)/1.05 var(--font-heading); letter-spacing: -.04em; text-align: left; cursor: pointer; }
.hero-layout-center .hero-content { width: min(calc(100% - (var(--gutter) * 2)), var(--hero-content-width, 44rem)); margin-inline: auto; transform: none; }
.hero-layout-center .title-treatment-wrap { margin-inline: auto; }
.hero-layout-center .title-treatment-wrap { box-sizing: border-box; max-width: 100%; }
.hero-layout-center .title-treatment { max-width: 100%; height: auto; }
.hero .hero-scroll-cue, .gallery-section .gallery-rail-control, .media-lightbox .button-outline, .social-viewer-controls .button-secondary { border-color: var(--control-dark-media-border); background: var(--control-dark-media-surface); color: var(--control-dark-media-foreground); }
.media-accent-control:hover, .media-accent-control:focus-visible, .media-accent-control:active { border-color: var(--film-accent); background: var(--control-dark-media-surface); color: var(--film-accent); }
.hero-scroll-cue { position: absolute; z-index: var(--layer-page-content); bottom: calc(env(safe-area-inset-bottom) + var(--hero-scroll-cue-min-bottom-space)); left: 50%; display: grid; width: var(--hero-scroll-cue-size); height: var(--hero-scroll-cue-size); place-items: center; border: var(--control-border-width) solid var(--color-paper-border-soft); border-radius: var(--radius-circle); color: var(--color-paper); text-decoration: none; transform: translateX(-50%); transition: background var(--motion-fast) ease, color var(--motion-fast) ease, border-color var(--motion-fast) ease; }
.hero-scroll-cue .icon { width: 1.35rem; height: 1.35rem; }
.hero-scroll-cue:hover { background: var(--color-paper); color: var(--color-ink-deep); }
.hero-scroll-cue:focus-visible { transform: translateX(-50%); }
@media (orientation: landscape) and (max-width: 64rem) and (max-height: 430px) { .hero-scroll-cue { display: none; } }
.title-treatment { aspect-ratio: var(--title-source-width) / var(--title-source-height); }
.hero-actions .button { min-height: var(--control-height); }
.hero-trailer-action { display: inline-flex; }

@media (max-width: 760px) {
  .site-header { --header-padding-block-start: max(1rem, env(safe-area-inset-top)); padding-top: var(--header-padding-block-start); }
  .header-action { min-height: var(--control-height); padding-inline: 1rem; font-size: var(--text-control); }
  .nav-links { padding-block-start: calc(var(--menu-content-block-start) + env(safe-area-inset-top)); }
  :root { --hero-content-bottom-inset: 6.75rem; }
  .hero-layout-center .hero-content { width: calc(100% - (var(--gutter) * 2)); padding-block: 5.5rem var(--hero-content-bottom-inset); }
  .hero-layout-center .title-treatment-wrap { width: min(calc(var(--title-optical-height-phone) * var(--title-source-width) / var(--title-visible-height)), 100%); height: auto; }
  .hero-scroll-cue { bottom: calc(env(safe-area-inset-bottom) + var(--hero-scroll-cue-min-bottom-space)); }
  .about-heading h2 { font-size: var(--about-title-size); }
  .about-identity-meta { align-items: flex-start; flex-wrap: wrap; }
  .about-release-state { flex-basis: 100%; margin-left: 0; text-align: left; }
  .credit-row { grid-template-columns: minmax(0, 1fr) minmax(0, auto); gap: var(--credit-row-gap); }
}

/* About credits follow readable component width, independent of the phone-family shell. */
@media (max-width: 37.5rem) {
  .about-primary-credits { grid-template-columns: 1fr; }
  .about-secondary-grid { grid-template-columns: 1fr; }
  .about-cast-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 37.5625rem) and (max-width: 44.999rem) {
  .about-primary-credits { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 45rem) and (max-width: 63.99rem) {
  .about-primary-credits { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-height: 40rem) and (orientation: landscape) {
  .hero-layout-center .title-treatment-wrap { width: min(calc(var(--title-optical-height-phone) * var(--title-source-width) / var(--title-visible-height)), 100%); height: auto; }
}

/* Preserve the hero composition when the available viewport is exceptionally short or narrow. */
@media (max-width: 26rem) and (max-height: 55rem), (max-width: 22.5rem), (max-width: 47.5rem) and (max-height: 40rem) {
  .hero-actions > .button-primary:not(.hero-trailer-action) { display: none; }
  .hero-trailer-action { display: inline-flex; }
}

@media (max-width: 26rem) {
  :root { --menu-content-inline-start: max(calc(var(--navigation-inline-start) + var(--header-control-size)), calc(var(--navigation-inline-start) + var(--header-control-size) + var(--space-4) - var(--menu-skinny-inline-shift))); }
}

/* Keep 16:9 media inside the usable surface when the viewport is short. */
@media (max-height: 40rem) and (orientation: landscape) {
  /* Use the usable small viewport as the short-landscape hero containing block. */
  .hero { height: 100svh; min-height: 100svh; }
  .nav-links { height: 100svh; min-height: 100svh; max-height: 100svh; overflow-y: auto; overscroll-behavior: contain; padding-block-start: calc(var(--header-height) + var(--space-2) + env(safe-area-inset-top)); padding-block-end: max(var(--space-3), env(safe-area-inset-bottom)); }
  .menu-inner { gap: clamp(.35rem, 1.2vh, .75rem); }
  .menu-inner > a, .menu-trailer-action { font-size: clamp(1.8rem, 7vh, var(--menu-item-size)); }
  .gallery-lightbox { align-items: center; padding-block: 1rem; }
  .gallery-lightbox-panel { display: flex; flex-direction: column; width: min(100%, var(--gallery-lightbox-max-width)); height: calc(100svh - 2rem); max-height: calc(100svh - 2rem); margin-block: 0; }
  .gallery-lightbox-figure { display: grid; min-height: 0; margin-top: var(--space-3); flex: 1 1 auto; grid-template-rows: minmax(0, 1fr) auto; }
  .gallery-lightbox-image { width: 100%; height: 100%; min-height: 0; max-height: none; object-fit: contain; }
  .gallery-lightbox-caption, .gallery-lightbox-nav { flex: 0 0 auto; }
  .gallery-lightbox-image { touch-action: pan-y; }
  .gallery-lightbox-nav .button { width: var(--control-height); min-width: var(--control-height); height: var(--control-height); padding: 0; }
  .gallery-lightbox-nav .button span { display: none; }
  .media-lightbox-video-frame { width: auto; height: calc(100dvh - var(--control-height) - var(--space-3) - 2rem); max-width: 100%; margin-inline: auto; aspect-ratio: 16 / 9; }
}

@media (min-width: 1101px) and (orientation: landscape) {
.about-section { border-bottom: 0; padding-block-start: max(var(--gutter), calc(var(--header-height) + var(--space-3))); }
  .about-layout { grid-template-columns: minmax(14rem, .34fr) minmax(0, .66fr); gap: clamp(2rem, 5vw, 6rem); align-items: start; }
  .about-art-direction { aspect-ratio: auto; position: sticky; top: calc(var(--header-height) + 1rem); }
  .about-art-direction picture, .about-art-direction img { height: auto; }
  .about-art-direction img { object-fit: contain; }
  .about-art-direction + .about-content { margin-top: 0; }
  .about-cast-portrait { width: min(100%, var(--cast-avatar-size-large)); }
}

@media (min-width: 1101px) and (orientation: landscape) {
  @supports not (aspect-ratio: 1) {
    .about-cast-portrait { width: var(--cast-avatar-size-large); max-width: 100%; height: var(--cast-avatar-size-large); }
  }
}

.section[id], [data-availability] { scroll-margin-top: var(--header-height); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .nav-links { transform: none; transition: none; }
  .about-more-credits[open] .about-secondary-grid { animation: none; }
}
