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); }
.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; }
}
/* 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; }
}
/* Dedicated, task-first availability surface. */
body.showtimes-page { --color-subtle: rgba(24, 23, 23, .22); --button-secondary-hover-foreground: var(--showtimes-control-interactive); --button-secondary-hover-border: var(--showtimes-control-interactive); display: flex; min-height: 100vh; flex-direction: column; background: var(--color-light-surface); color: var(--color-ink); color-scheme: light; }
@supports (min-height: 100dvh) { body.showtimes-page { min-height: 100dvh; } }
body.showtimes-page > main { display: flex; flex: 1 0 auto; flex-direction: column; }
.showtimes-page .skip-link { background: var(--color-ink); color: var(--color-paper); }
.showtimes-page .site-header, .showtimes-page .site-header.is-scrolled { position: sticky; z-index: var(--layer-navigation); top: 0; inset-inline: auto; width: 100%; min-height: var(--header-bar-height); padding: var(--header-padding-block-start) 0 1rem; border-bottom: 1px solid var(--showtimes-divider-color); background: rgba(241, 238, 232, .94); color: var(--color-ink); backdrop-filter: none; box-shadow: none; transition: none; }
.showtimes-page .site-header .nav-toggle, .showtimes-page .site-header .header-home { border-color: var(--control-light-border); background: transparent; color: var(--control-light-foreground); }
.showtimes-page .site-header .nav-toggle:hover, .showtimes-page .site-header .nav-toggle:focus-visible, .showtimes-page .site-header .header-home:hover, .showtimes-page .site-header .header-home:focus-visible { border-color: var(--control-light-hover-border); background: var(--control-light-hover-surface); color: var(--control-light-hover-foreground); }
.showtimes-page .site-header .header-showtimes-brand { color: var(--color-ink-strong); }
.showtimes-page .header-route-title { position: absolute; top: 50%; left: 50%; display: inline-flex; align-items: center; gap: var(--icon-label-gap); color: var(--color-ink-strong); font: 800 var(--text-page-title)/1.1 var(--font-heading); letter-spacing: -.03em; white-space: nowrap; transform: translate(-50%, -50%); }
.showtimes-page { --showtimes-route-icon-size: 2.75rem; }
.showtimes-page .header-route-icon { display: inline-flex; width: var(--showtimes-route-icon-size); height: var(--showtimes-route-icon-size); align-items: center; }
.showtimes-page .header-route-icon .icon-role-context { width: 90%; height: 90%; margin: auto; }
.showtimes-page .header-showtimes-brand--monochrome { filter: brightness(0); }
body.showtimes-page.menu-open .site-header, body.showtimes-page.menu-open .site-header.is-scrolled { background: transparent; border-bottom-color: transparent; }
body.showtimes-page.menu-open .header-route-title, body.showtimes-page.menu-open .header-context-right { visibility: hidden; }
body.showtimes-page.menu-open .site-header .nav-toggle, body.showtimes-page.menu-open .site-header .header-home { border-color: var(--color-paper); background: transparent; color: var(--color-paper); }
body.showtimes-page.menu-open .site-header .nav-toggle:hover, body.showtimes-page.menu-open .site-header .nav-toggle:focus-visible, body.showtimes-page.menu-open .site-header .header-home:hover, body.showtimes-page.menu-open .site-header .header-home:focus-visible { border-color: var(--color-paper); background: var(--color-paper); color: var(--color-ink-deep); }
.header-showtimes-brand { display: block; width: calc((var(--header-control-size) * 2) + var(--control-cluster-gap)); max-width: 100%; height: auto; object-fit: contain; object-position: right center; }
.header-showtimes-brand--monochrome { height: auto; }
.showtimes-promotional-banner { --promo-surface-start: #170009; --promo-surface-mid: #552475; --promo-surface-end: #170009; --promo-eyebrow: var(--movie-personality-soft, var(--color-paper)); --promo-heading: var(--color-paper); --promo-body: var(--color-paper-border-soft); --promo-cta-light: var(--promotion-gold-light); --promo-cta-soft: var(--promotion-gold-soft); --promo-cta-mid: var(--promotion-gold-mid); --promo-cta-deep: var(--promotion-gold-deep); --promo-cta-text: #fffdf7; position: relative; isolation: isolate; display: block; width: 100%; padding: 0; overflow: hidden; background: linear-gradient(110deg, var(--promo-surface-start) 0%, var(--promo-surface-mid) 52%, var(--promo-surface-end) 100%); background-size: 220% 100%; color: var(--promo-heading); animation: showtimes-promotional-banner-drift 22s ease-in-out infinite alternate; }
.showtimes-promotional-banner-inner { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 0; width: calc(100% - (var(--header-content-inset) * 2)); max-width: var(--content-standard); min-height: 6.25rem; }
.showtimes-promotional-banner-eyebrow { display: flex; align-items: center; align-self: stretch; margin: 0; padding: 1rem 1.15rem 1rem 0; border-right: 1px solid rgba(255, 253, 247, .24); color: var(--promo-eyebrow); font-size: var(--text-label); font-weight: 800; letter-spacing: .14em; white-space: nowrap; }
.showtimes-promotional-banner-copy { min-width: 0; padding: 1rem 1.15rem; }
.showtimes-promotional-banner-copy h2 { margin: 0; color: var(--promo-heading); font-size: clamp(1rem, 1.7vw, 1.35rem); }
.showtimes-promotional-banner-copy p { margin: .2rem 0 0; color: var(--promo-body); font-size: var(--text-meta); }
.showtimes-page .showtimes-promotional-banner-cta-wrap { position: relative; z-index: 1; display: inline-flex; align-self: center; justify-self: end; isolation: isolate; margin: .75rem 0; }
.showtimes-page .showtimes-promotional-banner-cta { position: relative; z-index: 1; align-self: center; box-sizing: border-box; border: var(--control-border-width) solid transparent; border-radius: var(--control-radius); background: linear-gradient(135deg, #4a4d4a 0%, #202320 48%, #161816 78%, #080908 100%); color: var(--promo-cta-text); white-space: nowrap; box-shadow: inset 0 1px 0 rgba(255,255,255,.12), inset 0 -1px 0 rgba(0,0,0,.38), 0 3px 10px rgba(0,0,0,.34); transition: color 300ms ease, background 300ms ease, box-shadow 300ms ease; }
.showtimes-page .showtimes-promotional-banner-cta::before { position: absolute; z-index: -1; inset: var(--control-border-width); border-radius: calc(var(--control-radius) - var(--control-border-width)); content: ''; background: radial-gradient(circle at 30% 20%, #2d302d 0%, #202320 42%, transparent 72%), linear-gradient(135deg, #2d302d 0%, #202320 48%, #161816 78%, #0d0e0d 100%); }
.showtimes-page .showtimes-promotional-banner-cta-bloom { position: absolute; z-index: 0; top: 50%; left: 50%; width: 340px; height: 180px; pointer-events: none; content: ''; background: radial-gradient(ellipse at center, rgba(222,174,242,.88) 0%, rgba(122,56,166,.56) 34%, rgba(122,56,166,.22) 55%, transparent 76%); filter: blur(16px); opacity: 0; transform: translate(-50%, -50%) scale(.82); transition: opacity 300ms ease, transform 420ms cubic-bezier(.2,.7,.2,1); }
.showtimes-page .showtimes-promotional-banner-cta:hover, .showtimes-page .showtimes-promotional-banner-cta:focus-visible, .showtimes-page .showtimes-promotional-banner-cta.is-touch-active { background: linear-gradient(135deg, #e2ae59 0%, #c98f35 100%); color: #171217; box-shadow: inset 0 1px 0 rgba(255,255,255,.78), inset 0 -1px 0 rgba(23,18,23,.24), 0 4px 14px rgba(0,0,0,.34); }
.showtimes-page .showtimes-promotional-banner-cta:hover::before, .showtimes-page .showtimes-promotional-banner-cta:focus-visible::before, .showtimes-page .showtimes-promotional-banner-cta.is-touch-active::before { background: radial-gradient(circle at 30% 20%, #f7ddaa 0%, #f1ca89 42%, transparent 72%), linear-gradient(135deg, #f7ddaa 0%, #f1ca89 42%, #e2ae59 70%, #c98f35 100%); }
.showtimes-page .showtimes-promotional-banner-cta:hover ~ .showtimes-promotional-banner-cta-bloom, .showtimes-page .showtimes-promotional-banner-cta:focus-visible ~ .showtimes-promotional-banner-cta-bloom, .showtimes-page .showtimes-promotional-banner-cta.is-touch-active ~ .showtimes-promotional-banner-cta-bloom { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.showtimes-page .showtimes-promotional-banner-cta:focus-visible { outline: var(--focus-ring-width) solid var(--promo-cta-light); outline-offset: 4px; }
@keyframes showtimes-promotional-banner-drift { from { background-position: 0% 50%; } to { background-position: 100% 50%; } }
@media (prefers-reduced-motion: reduce) { .showtimes-promotional-banner { animation: none; background-position: 50% 50%; } .showtimes-promotional-banner-cta, .showtimes-promotional-banner-cta::before { transition: none; } .showtimes-promotional-banner-cta-bloom { transition: none; } }
.header-showtimes-brand:focus-visible { outline: var(--focus-ring-width) solid var(--color-paper); outline-offset: 4px; }
.showtimes-page input:focus { border-color: var(--showtimes-focus-ring); box-shadow: inset 0 0 0 2px var(--showtimes-focus-ring); }
.showtimes-page #showtimes-query:focus-visible { outline: none; }
.showtimes-page .button-secondary:focus-visible, .showtimes-page .button-outline:focus-visible, .showtimes-page .showtimes-clear:focus-visible, .showtimes-page .venue-website-link:focus-visible { outline: var(--focus-ring-width) solid var(--showtimes-focus-ring); outline-offset: 3px; }
.showtimes-intro { position: relative; z-index: var(--layer-page-raised); padding: 0; background: var(--color-ink-deep); }
.showtimes-intro-inner { display: block; width: 100%; max-width: none; }
.showtimes-art-panel { position: relative; width: 100%; height: calc(100vw / 3); overflow: visible; aspect-ratio: var(--showtimes-media-ratio); border: 0; background: var(--color-media-fallback); isolation: isolate; }
.showtimes-media-art { position: absolute; z-index: 0; inset: 0; overflow: hidden; }
.showtimes-media-image { background: var(--color-media-fallback); }
.showtimes-art-panel picture, .showtimes-art-panel picture > img { display: block; width: 100%; height: 100%; }
.showtimes-art-panel picture > img { object-fit: cover; object-position: var(--art-focal-x, 50%) var(--art-focal-y, 50%); }
.showtimes-hero-scrim { position: absolute; z-index: 1; inset: 0; pointer-events: none; background: var(--showtimes-hero-scrim); }
.showtimes-hero-search { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; width: min(calc(100% - (var(--gutter) * 2)), var(--content-standard)); margin-inline: auto; padding-block: clamp(1.2rem, 3vw, 2.25rem) var(--showtimes-edge-inset); }
.showtimes-search-heading-row { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.showtimes-search-heading { margin: 0 0 .45rem; color: var(--color-paper); font: 800 var(--text-page-title)/1.1 var(--font-heading); letter-spacing: -.03em; }
.showtimes-result-count { flex: 0 0 auto; margin: 0 0 .45rem; color: var(--color-paper); font-size: var(--text-meta); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.showtimes-hero-search .showtimes-search label { color: var(--color-paper); text-shadow: 0 1px 2px rgba(0, 0, 0, .35); }
.showtimes-hero-search .showtimes-search input { border-color: var(--color-paper-border); background: rgba(255, 253, 247, .96); color: var(--color-ink); box-shadow: 0 1px 1rem rgba(0, 0, 0, .12); }
.showtimes-hero-search .showtimes-search input:focus { border-color: var(--showtimes-focus-ring); box-shadow: inset 0 0 0 2px var(--showtimes-focus-ring), 0 1px 1rem rgba(0, 0, 0, .12); }
.showtimes-hero-search .showtimes-input-wrap .icon { color: var(--color-light-muted); }
.showtimes-hero-search .showtimes-clear { color: var(--color-light-muted); }
.showtimes-hero-search .showtimes-clear:hover { color: var(--color-ink); background: var(--color-ink-hover-surface); }
.showtimes-hero-search .button-outline { border-color: var(--color-paper); background: transparent; color: var(--color-paper); box-shadow: 0 1px 1rem rgba(0, 0, 0, .12); }
.showtimes-hero-search .button-outline:hover, .showtimes-hero-search .button-outline:focus-visible, .showtimes-hero-search .button-outline:active { border-color: var(--color-paper); background: var(--color-paper); color: var(--color-ink-strong); }
.showtimes-page .eyebrow { color: var(--showtimes-control-muted); }
.showtimes-finder { position: relative; z-index: var(--layer-page); min-height: 0; padding-block: 0 clamp(2rem, 5vw, 4rem); background: var(--color-light-surface); }
.showtimes-finder--empty { display: flex; flex: 1 0 auto; flex-direction: column; padding-bottom: var(--showtimes-date-rail-gap); }
.showtimes-finder--empty > .container { display: flex; flex: 1 0 auto; flex-direction: column; }
.showtimes-finder--empty .showtimes-results { display: flex; flex: 1 0 auto; flex-direction: column; padding-top: var(--showtimes-date-rail-gap); }
.showtimes-finder--empty .showtimes-empty--results { flex: 1 0 auto; min-height: 0; padding: 0; }
.showtimes-finder--empty > .container > .showtimes-empty { display: grid; flex: 1 0 auto; min-height: 0; place-items: center; padding: var(--showtimes-date-rail-gap) 0; }
.showtimes-page .showtimes-finder > .container { max-width: var(--content-standard); }
.showtimes-section-heading { display: block; margin-bottom: 1.25rem; }
.showtimes-section-heading .eyebrow { margin-bottom: .45rem; }
.showtimes-section-heading h2 { margin: 0; font-size: clamp(1.5rem, 3vw, 2.2rem); }
.showtimes-search { width: 100%; max-width: none; margin-bottom: 0; }
.showtimes-finder-toolbar { display: flex; flex-wrap: nowrap; align-items: stretch; gap: var(--showtimes-control-gap); }
.showtimes-finder-toolbar > .showtimes-search { flex: 1 1 auto; min-width: 0; }
.showtimes-result-tools { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem .85rem; margin-top: .85rem; font-size: var(--text-meta); font-weight: 750; }
.showtimes-finder-toolbar > .showtimes-result-tools { flex: 0 0 auto; margin-top: 0; }
.showtimes-discovery-controls { display: inline-flex; flex: 0 0 auto; flex-wrap: nowrap; gap: var(--showtimes-control-gap); }
.showtimes-discovery-control { min-height: var(--control-height); padding: var(--control-padding-block) var(--control-padding-inline); cursor: pointer; font-size: var(--text-control); white-space: nowrap; }
.showtimes-discovery-control .icon { width: var(--control-icon-size); height: var(--control-icon-size); }
.showtimes-discovery-control.is-active { border-color: var(--color-ink-strong); background: var(--color-ink-strong); color: var(--color-paper); }
.showtimes-discovery-control.is-disabled { border-color: var(--color-ink-soft-border); background: transparent; color: var(--color-light-muted); cursor: default; opacity: .72; }
.showtimes-discovery-control:focus-visible { outline: var(--focus-ring-width) solid var(--showtimes-focus-ring); outline-offset: 3px; }
.showtimes-discovery-control:disabled { cursor: wait; opacity: .72; }
.showtimes-hero-search .showtimes-discovery-control.is-active { border-color: var(--color-paper); background: var(--color-paper); color: var(--color-ink-strong); }
.showtimes-search-tools .showtimes-search { margin-bottom: 0; }
.showtimes-search label { display: block; margin-bottom: .45rem; font-size: var(--text-meta); font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.showtimes-search input { border-color: var(--color-ink-control-border); background: var(--color-light-surface-raised); color: var(--color-ink); }
.showtimes-search-row { display: flex; width: 100%; gap: .75rem; align-items: stretch; }
.showtimes-input-wrap { position: relative; display: flex; flex: 1; min-width: 0; align-items: center; }
.showtimes-input-wrap .icon { position: absolute; left: var(--control-padding-inline); z-index: 1; width: var(--control-icon-size); height: var(--control-icon-size); color: var(--showtimes-control-muted); }
.showtimes-input-wrap input { min-height: var(--control-height); padding-right: var(--control-padding-inline); padding-left: calc(var(--control-padding-inline) + var(--control-icon-size) + var(--control-gap)); }
.showtimes-suggestion-panel { position: absolute; z-index: var(--layer-page-raised); top: calc(100% + .35rem); right: 0; left: 0; overflow: hidden; border: 1px solid var(--color-ink-soft-border); border-radius: var(--control-radius); background: var(--color-light-surface); box-shadow: 0 .65rem 1.5rem var(--color-ink-soft-border); color: var(--color-ink); }
.showtimes-suggestion { display: block; width: 100%; min-height: var(--hit-target-min); padding: .7rem var(--control-padding-inline); border: 0; background: transparent; color: inherit; font: 700 var(--text-control)/1.2 var(--font-button); text-align: left; }
.showtimes-suggestion:hover { background: var(--color-ink-hover-surface); color: var(--color-ink-strong); }
.showtimes-suggestion[aria-selected="true"] { background: var(--color-ink-selected-surface); color: var(--color-ink-strong); }
.showtimes-suggestion:focus-visible { position: relative; z-index: 1; outline: var(--focus-ring-width) solid var(--showtimes-focus-ring); outline-offset: -3px; }
.showtimes-input-wrap.has-clear input { padding-right: calc(var(--hit-target-min) + var(--space-2)); }
.showtimes-clear { position: absolute; right: .35rem; display: grid; width: var(--hit-target-min); height: var(--hit-target-min); place-items: center; color: var(--showtimes-control-muted); border-radius: var(--radius-circle); }
.showtimes-clear:hover { color: var(--color-ink); background: var(--color-ink-hover-surface); }
.showtimes-clear .icon { position: static; width: 1.15rem; height: 1.15rem; }
.showtimes-page .button-primary { background: var(--color-ink-strong); color: var(--color-paper); }
.showtimes-page .button-primary:hover { background: var(--color-ink-hover); }
.showtimes-page .button-primary .icon { width: 1.1rem; height: 1.1rem; }
.showtimes-page .availability-grid { align-items: stretch; background: transparent; }
.showtimes-page .availability-card { background: var(--color-light-surface-raised); }
.showtimes-page .availability-grid { --showtimes-grid-columns: 1; grid-template-columns: minmax(0, 1fr); width: 100%; max-width: none; margin-inline: auto; }
.showtimes-page .availability-card { box-sizing: border-box; width: 100%; min-height: 0; }
.showtimes-results { padding-top: var(--showtimes-date-rail-gap); }
.showtimes-location-empty { padding: var(--space-5) var(--gutter); text-align: center; }
.showtimes-location-empty h2 { margin-bottom: var(--space-3); font-size: var(--text-section); }
.showtimes-results > .form-note { margin: 0 0 var(--space-2); color: var(--showtimes-control-muted); }
.showtimes-search-tools { margin-inline: calc(var(--gutter) * -1); padding: var(--showtimes-date-rail-gap) var(--gutter) 0; background: var(--color-light-surface); }
.showtimes-date-nav { margin-top: 0; }
.showtimes-date-rail-wrap { position: relative; display: block; }
.showtimes-date-rail-wrap .showtimes-date-rail { width: 100%; }
.showtimes-date-nav-control { position: absolute; z-index: 1; top: calc(50% - (var(--hit-target-min) / 2)); display: inline-grid; flex: 0 0 var(--hit-target-min); width: var(--hit-target-min); min-width: var(--hit-target-min); height: var(--hit-target-min); padding: 0; place-items: center; border-color: var(--color-ink-soft-border); background: var(--color-light-surface-raised); color: var(--color-ink); }
.showtimes-date-nav-control[data-date-rail-prev] { left: 0; }
.showtimes-date-nav-control[data-date-rail-next] { right: 0; }
.showtimes-date-nav-control .icon { width: var(--control-icon-size); height: var(--control-icon-size); }
.showtimes-date-nav-control { --button-secondary-hover-background: var(--showtimes-date-control-hover-background); --button-secondary-hover-foreground: var(--showtimes-date-control-hover-foreground); --button-secondary-hover-border: var(--showtimes-date-control-hover-border); }
.showtimes-date-nav-control:disabled { visibility: hidden; pointer-events: none; }
.showtimes-date-rail { display: flex; gap: .55rem; min-width: 0; overflow-x: auto; padding: 0 0 .2rem; scrollbar-width: none; }
.showtimes-date-rail::-webkit-scrollbar { display: none; width: 0; height: 0; }
.showtimes-date-card { display: grid; flex: 0 0 4.7rem; min-height: 5.4rem; align-content: center; justify-items: center; gap: .1rem; padding: .55rem .45rem; border: 1px solid var(--color-ink-soft-border); border-radius: var(--venue-card-radius); background: var(--color-light-surface-raised); color: var(--color-ink); text-decoration: none; }
.showtimes-date-card span, .showtimes-date-card small { color: var(--color-light-muted); font-size: var(--text-label); letter-spacing: .08em; text-transform: uppercase; }
.showtimes-date-card strong { font-size: 1.55rem; line-height: 1; }
.showtimes-date-card:hover { border-color: var(--showtimes-control-interactive); }
.showtimes-date-card:focus-visible { outline: var(--focus-ring-width) solid var(--showtimes-focus-ring); outline-offset: 3px; }
.showtimes-date-card.is-selected { border-color: var(--color-ink-strong); background: var(--color-ink-strong); color: var(--color-paper); }
.showtimes-date-card.is-selected span, .showtimes-date-card.is-selected small { color: var(--color-paper); }
.showtimes-date-card.is-unavailable { border-color: rgba(24, 23, 23, .1); background: rgba(24, 23, 23, .035); color: rgba(93, 90, 87, .52); cursor: default; }
.showtimes-date-card.is-unavailable span, .showtimes-date-card.is-unavailable small { color: rgba(93, 90, 87, .52); }
.showtimes-card { display: flex; height: 100%; min-height: 0; gap: var(--space-4); }
.showtimes-card .venue-result-content { display: flex; min-height: 0; flex: 1 1 auto; flex-direction: column; gap: var(--space-4); }
.venue-result-identity { display: flex; min-width: 0; min-height: 0; flex: 0 0 auto; flex-direction: column; gap: var(--venue-card-identity-gap); }
.venue-result-identity > .venue-showtime-pill-status, .venue-result-identity > .card-kicker, .venue-result-identity > .venue-result-title, .venue-result-identity > .venue-result-address, .venue-result-identity > .muted { margin: 0; }
.venue-result-title { position: relative; display: block; min-width: 0; padding-right: calc(var(--hit-target-min) + var(--space-2)); }
.venue-result-title h3 { display: block; min-width: 0; margin-bottom: 0; overflow: hidden; font: 700 var(--venue-card-name-size)/var(--venue-card-name-line-height) var(--font-heading); text-overflow: ellipsis; white-space: nowrap; }
.venue-website-link { position: absolute; inset-block-start: 0; inset-inline-end: 0; display: inline-grid; box-sizing: border-box; width: var(--hit-target-min); min-width: var(--hit-target-min); height: var(--hit-target-min); place-items: start end; border-radius: 0; color: var(--color-ink); }
.venue-website-link:hover { color: var(--color-ink-muted); opacity: .76; }
.venue-website-link:focus-visible { outline: var(--focus-ring-width) solid var(--color-focus); outline-offset: 3px; }
.venue-website-link .icon { width: var(--venue-card-external-icon-size); height: var(--venue-card-external-icon-size); margin-top: calc((var(--venue-card-name-size) * var(--venue-card-name-line-height) - var(--venue-card-external-icon-size)) / 2); }
.venue-result-address { display: block; color: var(--color-light-muted); font-size: var(--venue-card-address-size); line-height: var(--venue-card-address-line-height); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.showtimes-card .venue-schedule { min-height: 0; box-sizing: border-box; overflow: visible; padding: var(--showtime-panel-padding); border-radius: var(--venue-card-radius); background: var(--ticket-surface); color: var(--color-paper); }
.showtimes-card .venue-schedule--status { position: relative; min-height: var(--venue-card-unavailable-schedule-height); display: grid; align-items: center; justify-items: center; overflow: hidden; }
.showtimes-card .venue-schedule--status { background: var(--promotion-gold-soft); color: var(--color-ink-strong); }
.showtimes-card .venue-schedule--status.venue-schedule--requestable { background: var(--color-light-surface); color: var(--color-ink-strong); }
.showtimes-card .venue-schedule--status[data-status-fallback="near-black"] { background: var(--color-ink-strong); color: var(--color-paper); }
.showtimes-card .venue-schedule--status[data-status-background="kartaview"] { color: var(--color-paper); }
.venue-status-background { position: absolute; z-index: 0; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.82); }
.venue-status-dim { position: absolute; z-index: 1; inset: 0; display: block; background: rgba(0, 0, 0, .72); pointer-events: none; }
.venue-status-gold-wash { position: absolute; z-index: 2; inset: 0; display: block; background: color-mix(in srgb, var(--promotion-gold-soft) 14%, transparent); pointer-events: none; }
.venue-schedule-status { position: absolute; z-index: 5; inset: 0; display: grid; box-sizing: border-box; min-height: 0; margin: 0; padding-inline: var(--showtime-panel-padding); place-items: center; color: inherit; font-size: var(--text-label); font-weight: 800; letter-spacing: .06em; text-align: center; text-transform: uppercase; }
.venue-schedule-watermark { position: absolute; z-index: 4; inset: 50% auto auto 50%; display: block; width: clamp(5.5rem, 30%, 8rem); height: clamp(5.5rem, 30%, 8rem); color: var(--color-paper); opacity: .30; transform: translate(-50%, -50%); }
.venue-schedule-watermark .icon { display: block; width: 100%; height: 100%; }
.venue-schedule-watermark--booked { color: var(--color-paper); opacity: .30; }
.venue-schedule-watermark--requestable { color: var(--color-ink-strong); opacity: .075; }
.venue-status-attribution { position: absolute; z-index: 6; right: var(--showtime-panel-padding); bottom: .45rem; color: var(--color-paper); font-size: var(--text-label); letter-spacing: .03em; opacity: .62; text-decoration: none; }
.venue-status-attribution:hover, .venue-status-attribution:focus-visible { color: var(--color-paper); opacity: 1; text-decoration: underline; }
.venue-result-label { margin: var(--space-4) 0 .45rem; color: var(--color-muted); font-size: var(--text-meta); font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.venue-schedule { color: var(--color-ink); }
.venue-schedule-empty-state { display: grid; min-height: var(--hit-target-min); align-items: center; justify-items: center; gap: .35rem; margin: 0; color: var(--color-paper); font-size: var(--text-label); font-weight: 800; letter-spacing: .06em; text-align: center; text-transform: uppercase; }
.venue-schedule-empty-state .icon { width: 1.55rem; height: 1.55rem; color: var(--color-light-muted); opacity: .72; }
.venue-date-group + .venue-date-group { margin-top: var(--space-3); }
.venue-date-group h4 { margin: 0 0 .45rem; color: var(--color-ink); font-size: var(--text-secondary); font-weight: 800; }
.venue-showtime-list { display: flex; flex-wrap: wrap; gap: var(--showtime-pill-gap); margin: 0; padding: 0; list-style: none; }
.venue-showtime-row { display: block; width: max-content; max-width: 100%; flex: 0 0 auto; min-width: 0; }
.venue-showtime-pill, .ticket-control-showtime { display: inline-flex; box-sizing: border-box; min-height: var(--showtime-pill-height); align-items: center; justify-content: center; padding: 0 var(--showtime-pill-padding-inline); border-radius: var(--showtime-pill-radius); font-size: var(--showtime-pill-font-size); font-weight: 800; line-height: var(--showtime-pill-line-height); white-space: nowrap; }
.ticket-control-showtime { min-width: 0; }
.ticket-control-showtime { border: 1px solid var(--ticket-accent); background: var(--ticket-accent); color: var(--color-ink-strong); box-shadow: 0 1px 0 color-mix(in srgb, var(--color-ink-strong) 12%, transparent); }
.ticket-control-showtime:hover { background: var(--ticket-accent); color: var(--color-ink-strong); box-shadow: 0 2px .35rem color-mix(in srgb, var(--color-ink-strong) 18%, transparent); }
.ticket-control-showtime:focus-visible { outline: var(--focus-ring-width) solid var(--ticket-accent); outline-offset: 3px; }
.venue-showtime-pill-status { border: 1px solid var(--ticket-accent); background: var(--ticket-accent); color: var(--color-ink-strong); letter-spacing: .04em; }
.venue-schedule-empty { color: var(--color-light-muted); }
.venue-result-action { display: flex; box-sizing: border-box; width: 100%; min-height: calc(var(--control-height) + var(--space-3)); align-items: center; justify-content: flex-end; padding-top: var(--space-3); border-top: 1px solid var(--showtimes-divider-color); }
.showtimes-card .venue-result-action { margin-top: auto; }
.showtimes-card .venue-result-action .button { width: auto; margin-top: 0; }
.showtimes-card .request-movie-action { background: var(--color-ink-strong); color: var(--ticket-accent); }
.showtimes-card .request-movie-action:hover, .showtimes-card .request-movie-action:focus-visible, .showtimes-card .request-movie-action:active { background: var(--color-ink-hover); color: var(--ticket-accent); }
.showtimes-card .ticket-control-venue { color: var(--ticket-accent); }
.ticket-control { text-decoration: none; }
.ticket-control .icon { width: var(--icon-size); height: var(--icon-size); }
.ticket-control-active:not(.ticket-control-showtime) { background: var(--ticket-surface); color: var(--ticket-accent); }
.ticket-control-active:not(.ticket-control-showtime):hover { background: var(--color-ink-hover); color: var(--ticket-accent); }
.ticket-control-active:focus-visible { outline: var(--focus-ring-width) solid var(--ticket-accent); outline-offset: 4px; }
.ticket-control-active:not(.ticket-control-showtime):active { background: var(--ticket-surface); color: var(--ticket-accent); opacity: .82; }
.availability-card .ticket-control-venue { width: auto; margin-top: 0; align-items: center; }
.ticket-control-status { display: inline-flex; min-height: var(--control-height); align-items: center; justify-content: center; padding: var(--control-padding-block) var(--control-padding-inline); border: var(--control-border-width) solid var(--color-subtle); border-radius: var(--control-radius); background: transparent; color: var(--color-light-muted); cursor: default; }
.ticket-control-status { margin-left: auto; }
.ticket-control-status { border-color: var(--color-ink-soft-border); background: var(--color-ink-soft-surface); color: var(--color-light-muted); pointer-events: none; }
.venue-footer-label { font-size: var(--venue-card-footer-label-size); font-weight: var(--venue-card-footer-label-weight); line-height: var(--venue-card-footer-label-line-height); }
.share-movie { width: min(100% - (var(--gutter) * 2), var(--content-standard)); margin: 0 auto; padding-block: var(--section-padding-block); }
.share-movie-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.showtimes-empty { box-sizing: border-box; width: 100%; max-width: 42rem; margin-inline: auto; padding: clamp(3rem, 8vw, 7rem) var(--gutter); text-align: center; }
.showtimes-empty--results { display: grid; min-height: clamp(18rem, 42vh, 32rem); place-items: center; padding: 0; }
.showtimes-empty-content { width: 100%; }
.showtimes-location-pending { box-sizing: border-box; width: min(100% - (var(--gutter) * 2), var(--content-standard)); margin: 0 auto; padding: clamp(3rem, 8vw, 6rem) var(--gutter); color: var(--showtimes-control-muted); text-align: center; }
.showtimes-location-pending[hidden] { display: none; }
body[data-finder-mode="default-nearby-pending"] .showtimes-results .availability-grid { visibility: hidden; }
body[data-finder-mode="default-nearby-pending"] .showtimes-location-pending { display: block; }
body[data-finder-mode="default-nearby-pending"] .showtimes-result-count { visibility: hidden; }
body:not([data-finder-mode="default-nearby-pending"]) .showtimes-location-pending { display: none; }
.showtimes-empty-mark { display: grid; width: 4rem; height: 4rem; margin: 0 auto 1.25rem; place-items: center; border: var(--control-border-width) solid var(--color-ink); border-radius: var(--radius-circle); color: var(--showtimes-empty-mark-color); }
.showtimes-empty-mark .icon { width: 1.8rem; height: 1.8rem; color: var(--showtimes-empty-mark-color); }
.showtimes-empty h2 { margin-bottom: .75rem; font-size: var(--text-page-title); letter-spacing: -.03em; }
.showtimes-empty p { width: 100%; max-width: 34rem; margin-inline: auto; color: var(--showtimes-control-muted); }
.showtimes-footer { border-top: 1px solid var(--showtimes-divider-color); color: var(--showtimes-control-muted); }
.showtimes-footer a { color: var(--color-ink); }
.showtimes-activation-review { margin-top: clamp(3rem, 7vw, 6rem); }
.layout-debug { position: fixed; z-index: var(--layer-debug); top: .75rem; left: 50%; display: grid; gap: .2rem; width: min(calc(100% - 2rem), 34rem); padding: .65rem .8rem; border: var(--control-border-width) solid var(--color-focus); background: rgba(13, 14, 13, .94); color: var(--color-paper); font: 700 var(--text-meta)/1.35 var(--font-meta); transform: translateX(-50%); }
.layout-debug strong { color: var(--color-focus); font-size: var(--text-meta); letter-spacing: .08em; text-transform: uppercase; }
.analytics-copy-input { position: fixed; opacity: 0; }
.layout-debug-viewport-line, .layout-debug-wrapper-line, .layout-debug-title-line { position: fixed; z-index: 99; top: 0; bottom: 0; left: var(--layout-debug-left, 50%); width: 1px; pointer-events: none; }
.layout-debug-viewport-line { background: color-mix(in srgb, var(--color-focus) 90%, transparent); }
.layout-debug-wrapper-line { border-left: 1px dashed color-mix(in srgb, var(--color-accent) 90%, transparent); }
.layout-debug-title-line { background: color-mix(in srgb, var(--color-foreground) 90%, transparent); }
.layout-debug-title-box { position: fixed; z-index: 98; top: var(--layout-debug-top, 0); left: var(--layout-debug-left, 0); width: var(--layout-debug-width, 0); height: var(--layout-debug-height, 0); border: var(--control-border-width) dashed var(--color-accent); pointer-events: none; }
/* Showtimes header/art-direction threshold; does not redefine the platform grid. */
@media (max-width: 600px) {
  body.showtimes-page > main { width: 100%; }
  .showtimes-promotional-banner { width: 100%; margin-inline: 0; }
  .showtimes-discovery-controls { width: auto; gap: var(--showtimes-control-gap); }
.showtimes-discovery-control { width: var(--control-height); min-width: var(--control-height); height: var(--control-height); min-height: var(--control-height); padding: 0; }
  .showtimes-discovery-control > span:not(.sr-only) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
  .header-showtimes-brand { width: calc((var(--header-control-size) * 2) + var(--control-cluster-gap)); }
  .showtimes-page .header-route-title { font-size: var(--text-page-title-phone); }
  .showtimes-search-heading { font-size: var(--text-page-title-phone); white-space: nowrap; }
  .showtimes-promotional-banner-inner { grid-template-columns: 1fr; gap: 0; padding-block: .8rem 1rem; }
  .showtimes-promotional-banner-eyebrow { align-self: auto; padding: 0 0 .45rem; border-right: 0; border-bottom: 1px solid rgba(255, 253, 247, .24); }
  .showtimes-promotional-banner-copy { padding: .65rem 0 .5rem; }
  .showtimes-promotional-banner-cta-wrap { justify-self: end; margin: .35rem 0 0; }
  .showtimes-promotional-banner-cta { margin: 0; }
  .showtimes-art-panel { display: block; height: auto; aspect-ratio: auto; background: var(--color-media-deep); }
  .showtimes-media-art { position: relative; inset: auto; width: 100%; height: auto; aspect-ratio: var(--showtimes-constrained-media-ratio); }
  .showtimes-hero-search { position: relative; inset: auto; width: min(calc(100% - (var(--gutter) * 2)), var(--content-standard)); padding-block: clamp(1.2rem, 3vw, 2.25rem) var(--showtimes-edge-inset); }
  .showtimes-hero-scrim { background: var(--showtimes-constrained-hero-scrim); }
  .showtimes-search-row { flex-wrap: wrap; }
  .showtimes-input-wrap { flex-basis: 100%; }
  .showtimes-date-card { flex-basis: 4.35rem; }
  .showtimes-date-nav-control { display: none; }
}

@media (max-width: 760px) {
  .showtimes-promotional-banner-inner { grid-template-columns: 1fr; gap: 0; padding-block: .85rem 1rem; }
  .showtimes-promotional-banner-eyebrow { align-self: auto; padding: 0 0 .45rem; border-right: 0; border-bottom: 1px solid rgba(255, 253, 247, .24); }
  .showtimes-promotional-banner-copy { padding: .65rem 0 .5rem; }
  .showtimes-promotional-banner-cta-wrap { justify-self: end; margin: .35rem 0 0; }
  .showtimes-promotional-banner-cta { margin: 0; }
}

@supports (border-color: color-mix(in srgb, white, black)) {
  .showtimes-promotional-banner-eyebrow { border-right-color: color-mix(in srgb, var(--promo-eyebrow) 24%, transparent); }
  @media (max-width: 760px) { .showtimes-promotional-banner-eyebrow { border-bottom-color: color-mix(in srgb, var(--promo-eyebrow) 24%, transparent); } }
}

@media (max-width: 26rem) {
  .header-showtimes-brand { width: calc((var(--header-control-size) * 2) + var(--control-cluster-gap)); }
}

@media (max-width: 430px) {
  .showtimes-page .header-route-icon { width: var(--showtimes-route-icon-size); height: var(--showtimes-route-icon-size); }
  .showtimes-page .header-route-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
}

@media (min-width: 761px) {
  .showtimes-empty h2 { white-space: nowrap; }
}

@media (max-width: 600px) {
  .showtimes-empty--results { min-height: 0; }
  .showtimes-empty h2 { font-size: var(--text-page-title-phone); }
}

@media (min-width: 768px) and (max-width: 1100px) and (orientation: landscape) {
  .showtimes-finder { min-height: 0; padding-block: 0 1.25rem; }
  .showtimes-empty { padding-block: 1.25rem; }
  .showtimes-footer { padding-block: 1rem; }
}

@media (min-width: 761px) and (max-width: 1279px) {
  .showtimes-page .availability-grid { --showtimes-grid-columns: 2; max-width: var(--content-standard); grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1280px) {
  .showtimes-page .showtimes-finder > .container, .showtimes-page .availability-grid { max-width: var(--content-standard); }
  .showtimes-page .availability-grid { --showtimes-grid-columns: 3; grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .credit-row { grid-template-columns: 1fr; row-gap: .3rem; }
  .credit-row p { text-align: left; }
}
