/* GENERATED: edit named source modules, then run scripts/build.py. */
/* SOURCE: generated/tokens.css */
/* GENERATED from tokens/source. Run python scripts/build-tokens.py. */
:root {
  --accent: var(--color-teal);
  --action: var(--color-teal);
  --action-chamfer: 14px;
  --action-disabled-bg: #e6eae8;
  --action-disabled-border: #c7ceca;
  --action-disabled-text: #626a68;
  --action-gap: .6em;
  --action-height: 48px;
  --action-height-compact: 44px;
  --action-hover: #101010;
  --action-label-leading: 1.2;
  --action-label-size: .875rem;
  --action-label-weight: 700;
  --action-letter-spacing: .08em;
  --action-lift: -2px;
  --action-padding-x: 1.5rem;
  --action-padding-y: .85rem;
  --action-primary-background: var(--color-teal);
  --action-primary-foreground: var(--color-paper);
  --action-radius: 0px;
  --action-secondary-background: var(--color-ink);
  --action-secondary-border: transparent;
  --action-secondary-foreground: var(--color-paper);
  --aqua: var(--color-aqua);
  --border: 1px solid var(--color-line);
  --border-strong: var(--text-primary);
  --border-subtle: var(--color-rule-neutral);
  --border-width-default: 1px;
  --border-width-default-semantic: var(--border-width-default);
  --border-width-strong: 2px;
  --border-width-strong-semantic: var(--border-width-strong);
  --breakpoint-expanded-min: 64rem;
  --breakpoint-medium-min: 38rem;
  --breakpoint-narrow-min: 0rem;
  --color-aqua: #6fc9c9;
  --color-clay: #c96442;
  --color-coral: #f25147;
  --color-coral-soft: #f97068;
  --color-ink: #101010;
  --color-line: #d8dfdc;
  --color-mist: #f0f4f3;
  --color-muted: #525a59;
  --color-muted-neutral: #525252;
  --color-navy: #343c61;
  --color-paper: #fefefe;
  --color-paper-warm: #fafaf7;
  --color-rule-neutral: #d8d8d8;
  --color-source-observed-aqua: var(--color-aqua);
  --color-source-observed-black: var(--color-ink);
  --color-source-observed-coral: var(--color-coral);
  --color-source-observed-deep-teal: var(--color-teal);
  --color-source-observed-light-coral: var(--color-coral-soft);
  --color-source-observed-navy: var(--color-navy);
  --color-source-observed-white: var(--color-paper);
  --color-source-observed-yellow: var(--color-yellow);
  --color-teal: #11797c;
  --color-yellow: #fbc733;
  --container: 84rem;
  --content-full: var(--content-width-full);
  --content-narrow: var(--content-width-narrow);
  --content-reading: var(--content-width-reading);
  --content-standard: var(--content-width-standard);
  --content-width-full: 100%;
  --content-width-narrow: 50ch;
  --content-width-reading: 62ch;
  --content-width-standard: 76rem;
  --coral: var(--color-coral-soft);
  --coral-deep: var(--color-coral);
  --coral-soft: var(--color-clay);
  --display-lg: clamp(1.75rem,2.8vw,2.8rem);
  --display-md: clamp(1.35rem,1.65vw,1.85rem);
  --display-sm: 1.125rem;
  --display-xl: clamp(2rem,3.5vw,3.6rem);
  --dur-1: var(--duration-pointer);
  --dur-2: var(--duration-hover);
  --dur-3: var(--duration-sweep);
  --dur-4: var(--duration-reveal);
  --duration-context: 300ms;
  --duration-feedback: 4000ms;
  --duration-hover: 240ms;
  --duration-marquee: 32s;
  --duration-micro: 150ms;
  --duration-pointer: 140ms;
  --duration-reveal: 620ms;
  --duration-standard: 200ms;
  --duration-sweep: 380ms;
  --ease-emphasis: var(--easing-emphasis);
  --ease-glide: var(--easing-glide);
  --ease-soft: var(--easing-soft);
  --easing: cubic-bezier(.2,.65,.3,1);
  --easing-emphasis: cubic-bezier(.16,1,.3,1);
  --easing-glide: cubic-bezier(.65,0,.35,1);
  --easing-soft: cubic-bezier(.4,0,.2,1);
  --focus: var(--color-ink);
  --focus-minimum-contrast: 3:1;
  --focus-offset: 3px;
  --focus-offset-semantic: var(--focus-offset);
  --focus-offset-separated: 4px;
  --focus-offset-separated-semantic: var(--focus-offset-separated);
  --focus-ring: var(--color-ink);
  --focus-ring-width: 2px;
  --focus-width: var(--focus-ring-width);
  --font-body: system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-display: 'TAN - HEADLINE',Georgia,serif;
  --font-family-display: var(--font-display);
  --font-family-functional: var(--font-body);
  --font-mono: var(--font-body);
  --font-size-body-lg: 1.125rem;
  --font-size-body-md: 1rem;
  --font-size-body-sm: 0.875rem;
  --font-size-caption: 0.8125rem;
  --font-size-display-lg: clamp(1.8rem, 1.2rem + 2vw, 3rem);
  --font-size-display-md: clamp(1.4rem, 1.1rem + 1vw, 2rem);
  --font-size-display-xl: clamp(2.2rem, 1.3rem + 3vw, 4rem);
  --font-size-heading-lg: clamp(1.2rem, 1.1rem + .5vw, 1.6rem);
  --font-size-heading-md: 1.125rem;
  --font-size-heading-sm: 1rem;
  --font-size-label: 0.875rem;
  --font-size-metadata: 0.8125rem;
  --font-weight-bold: 700;
  --font-weight-regular: var(--weight-display);
  --font-weight-semibold: 600;
  --gap: clamp(1rem,2.5vw,2.25rem);
  --grid-columns-expanded: 12;
  --grid-columns-medium: 8;
  --grid-columns-narrow: 4;
  --grid-gap-compact: 1rem;
  --grid-gap-standard: 1.5rem;
  --gutter: clamp(1.25rem,4.5vw,4rem);
  --header-height: 5.5rem;
  --heading-synthesis: weight;
  --icon-size-campaign: 3rem;
  --icon-size-feature: 2rem;
  --icon-size-inline: 1rem;
  --icon-size-standard: 1.5rem;
  --icon-stroke-default: 1.5px;
  --icon-stroke-emphasis: 2px;
  --image-ratio-editorial: 3 / 2;
  --image-ratio-event: 3 / 2;
  --image-ratio-portrait: 4 / 5;
  --image-ratio-poster: 7 / 10;
  --image-ratio-poster-alternate: 2 / 3;
  --image-ratio-still: 16 / 9;
  --image-ratio-still-alternate: 3 / 2;
  --ink: var(--color-ink);
  --layout-grid-columns-expanded: var(--grid-columns-expanded);
  --layout-grid-columns-medium: var(--grid-columns-medium);
  --layout-grid-columns-narrow: var(--grid-columns-narrow);
  --layout-grid-gap-compact: var(--grid-gap-compact);
  --layout-grid-gap-standard: var(--grid-gap-standard);
  --leading-body: 1.65;
  --leading-display: 1.25;
  --leading-label: 1.35;
  --letter-spacing-label-uppercase: 0.065em;
  --letter-spacing-natural: normal;
  --line-height-action: 1.2;
  --line-height-body: 1.65;
  --line-height-body-compact: 1.5;
  --line-height-display: 1.25;
  --line-height-heading-functional: 1.35;
  --line-height-label: 1.25;
  --line-height-metadata: 1.45;
  --listing-action-primary: var(--color-teal);
  --listing-action-primary-foreground: var(--color-paper);
  --listing-action-primary-hover: #0e6466;
  --listing-action-secondary: #101010;
  --listing-action-secondary-foreground: #fefefe;
  --listing-aqua: var(--color-aqua);
  --listing-coral: var(--color-coral);
  --listing-coral-soft: var(--color-coral-soft);
  --listing-dur-1: 140ms;
  --listing-dur-2: 220ms;
  --listing-dur-3: 340ms;
  --listing-dur-4: 520ms;
  --listing-dur-5: 780ms;
  --listing-easing-emphasis: cubic-bezier(.2,.7,.1,1);
  --listing-easing-soft: cubic-bezier(.4,0,.2,1);
  --listing-focus-ring: #11797c;
  --listing-ink: var(--color-ink);
  --listing-ink-deep: #1a1916;
  --listing-ink-fade: #6b6964;
  --listing-ink-mid: #525252;
  --listing-measure: 76rem;
  --listing-navy: var(--color-navy);
  --listing-paper: var(--color-paper);
  --listing-paper-warm: #fafaf7;
  --listing-radius-action: 4px;
  --listing-radius-card: 6px;
  --listing-radius-pill: 999px;
  --listing-rule: #d8d8d8;
  --listing-space-1: 4px;
  --listing-space-10: 40px;
  --listing-space-12: 48px;
  --listing-space-16: 64px;
  --listing-space-2: 8px;
  --listing-space-20: 80px;
  --listing-space-24: 96px;
  --listing-space-3: 12px;
  --listing-space-4: 16px;
  --listing-space-5: 20px;
  --listing-space-6: 24px;
  --listing-space-8: 32px;
  --listing-teal: var(--color-teal);
  --listing-text-muted: #525252;
  --listing-text-primary: #101010;
  --listing-text-secondary: #343c61;
  --listing-type-body: var(--font-body);
  --listing-type-display: var(--font-display);
  --listing-type-mono: var(--font-mono);
  --listing-yellow: var(--color-yellow);
  --motion-duration-context: 300ms;
  --motion-duration-instant: 0ms;
  --motion-duration-micro: 150ms;
  --motion-duration-standard: 200ms;
  --motion-easing-standard: ease-out;
  --mute: var(--color-muted-neutral);
  --navy: var(--color-navy);
  --on-accent: var(--color-paper);
  --on-action: var(--color-paper);
  --on-coral: var(--color-ink);
  --on-coral-deep: var(--color-ink);
  --on-navy: var(--color-paper);
  --on-yellow: var(--color-ink);
  --pad-x: var(--showcase-gutter);
  --paper: var(--color-paper);
  --paper-warm: var(--color-paper-warm);
  --radius: 0;
  --radius-card: 0.375rem;
  --radius-compact: 0.25rem;
  --radius-control: 2px;
  --radius-pill: 100vmax;
  --radius-sharp: 0;
  --reading: 62ch;
  --rule: var(--color-rule-neutral);
  --rule-color: var(--color-rule-neutral);
  --rule-w: var(--border-width-default);
  --section: clamp(3.5rem,7vw,6.5rem);
  --showcase-breakpoint-grid: 55rem;
  --showcase-breakpoint-menu: 75rem;
  --showcase-card-radius: var(--radius-card);
  --showcase-container: 76rem;
  --showcase-gutter: clamp(1.25rem,4vw,3rem);
  --showcase-input-radius: var(--showcase-radius-input);
  --showcase-radius-input: 4px;
  --showcase-section: clamp(3rem,6vw,6rem);
  --showcase-space-1: var(--space-1);
  --showcase-space-2: var(--space-2);
  --showcase-space-3: var(--space-3);
  --showcase-space-4: var(--space-4);
  --showcase-space-5: var(--space-6);
  --showcase-space-6: var(--space-8);
  --showcase-space-7: var(--space-12);
  --showcase-space-8: var(--space-16);
  --showcase-space-9: var(--space-24);
  --space-1: .25rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-2: .5rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-7: 1.75rem;
  --space-8: 2rem;
  --space-9: 2.25rem;
  --space-page-gutter: clamp(1rem, 4vw, 3rem);
  --space-section: clamp(2.5rem, 6vw, 5rem);
  --spacing-campaign-field: var(--space-16);
  --spacing-content-group: var(--space-6);
  --spacing-metadata-group: var(--space-2);
  --spacing-page-gutter: var(--space-page-gutter);
  --spacing-section: var(--space-section);
  --surface: var(--color-paper);
  --surface-base: var(--color-paper);
  --surface-emphasis: var(--color-yellow);
  --surface-inverse: var(--color-ink);
  --target: 48px;
  --text: var(--color-ink);
  --text-base: 1rem;
  --text-inverse: var(--color-paper);
  --text-invert: var(--color-paper);
  --text-lg: 1.125rem;
  --text-mute: var(--color-muted-neutral);
  --text-primary: var(--color-ink);
  --text-secondary: var(--color-muted-neutral);
  --text-sm: .875rem;
  --text-xs: .8125rem;
  --type-body: 1rem;
  --type-display: var(--display-xl);
  --type-eyebrow: .75rem;
  --type-h1: var(--display-xl);
  --type-h2: var(--display-lg);
  --type-h3: var(--display-md);
  --type-h4: var(--display-sm);
  --type-label: var(--action-label-size);
  --type-lead: 1.1875rem;
  --type-small: .8125rem;
  --typography-action-label-font-family: var(--font-family-functional);
  --typography-action-label-font-size: var(--font-size-label);
  --typography-action-label-font-weight: var(--font-weight-bold);
  --typography-action-label-line-height: var(--line-height-action);
  --typography-body-lg-font-family: var(--font-family-functional);
  --typography-body-lg-font-size: var(--font-size-body-lg);
  --typography-body-lg-line-height: var(--line-height-body);
  --typography-body-md-font-family: var(--font-family-functional);
  --typography-body-md-font-size: var(--font-size-body-md);
  --typography-body-md-line-height: var(--line-height-body);
  --typography-body-sm-font-family: var(--font-family-functional);
  --typography-body-sm-font-size: var(--font-size-body-sm);
  --typography-body-sm-line-height: var(--line-height-body-compact);
  --typography-caption-font-family: var(--font-family-functional);
  --typography-caption-font-size: var(--font-size-caption);
  --typography-caption-line-height: var(--line-height-metadata);
  --typography-display-lg-font-family: var(--font-family-display);
  --typography-display-lg-font-size: var(--font-size-display-lg);
  --typography-display-lg-font-weight: var(--font-weight-regular);
  --typography-display-lg-line-height: var(--line-height-display);
  --typography-display-md-font-family: var(--font-family-display);
  --typography-display-md-font-size: var(--font-size-display-md);
  --typography-display-md-font-weight: var(--font-weight-regular);
  --typography-display-md-line-height: var(--line-height-display);
  --typography-display-xl-font-family: var(--font-family-display);
  --typography-display-xl-font-size: var(--font-size-display-xl);
  --typography-display-xl-font-weight: var(--font-weight-regular);
  --typography-display-xl-letter-spacing: var(--letter-spacing-natural);
  --typography-display-xl-line-height: var(--line-height-display);
  --typography-heading-lg-font-family: var(--font-display);
  --typography-heading-lg-font-size: var(--font-size-heading-lg);
  --typography-heading-lg-font-weight: var(--weight-heading);
  --typography-heading-lg-line-height: var(--line-height-display);
  --typography-heading-md-font-family: var(--font-family-functional);
  --typography-heading-md-font-size: var(--font-size-heading-md);
  --typography-heading-md-font-weight: var(--font-weight-semibold);
  --typography-heading-md-line-height: var(--line-height-heading-functional);
  --typography-heading-sm-font-family: var(--font-family-functional);
  --typography-heading-sm-font-size: var(--font-size-heading-sm);
  --typography-heading-sm-font-weight: var(--font-weight-semibold);
  --typography-heading-sm-line-height: var(--line-height-heading-functional);
  --typography-label-font-family: var(--font-family-functional);
  --typography-label-font-size: var(--font-size-label);
  --typography-label-line-height: var(--line-height-label);
  --typography-metadata-font-family: var(--font-family-functional);
  --typography-metadata-font-size: var(--font-size-metadata);
  --typography-metadata-line-height: var(--line-height-metadata);
  --weight-body: 400;
  --weight-display: 400;
  --weight-heading: 700;
  --weight-label: 600;
  --wrap: var(--showcase-container);
  --yellow: var(--color-yellow);
}

/* SOURCE: components/typography.css */
/* Typography: all 13 semantic roles. Load generated/tokens.css first.
 * Consumes typography-<role>-* plus regular/semibold weight and natural tracking.
 * TAN is display-only. Titles use Regular 400. Secondary headings use the explicitly requested 700 synthesis.
 * Generated semantics win over spec differences: Body L leading 1.65, Heading S 1.35.
 * Font-face descriptors cannot use var(); family/400 below match approved tokens.
 * Local supplied font for review only; webfont licensing remains unresolved.
 */
/* Font loading is owned by production base.css (D-013 embedded WOFF2). */
:where([class*="lca-type-"]) {
  margin: 0;
  overflow-wrap: anywhere;
  font-style: normal;
  font-weight: var(--font-weight-regular);
  letter-spacing: var(--letter-spacing-natural);
}
.lca-type-display-xl {
  font-family: var(--typography-display-xl-font-family);
  font-weight: var(--typography-display-xl-font-weight);
  font-size: var(--typography-display-xl-font-size);
  line-height: var(--typography-display-xl-line-height);
  letter-spacing: var(--typography-display-xl-letter-spacing);
}
.lca-type-display-lg {
  font-family: var(--typography-display-lg-font-family);
  font-weight: var(--typography-display-lg-font-weight);
  font-size: var(--typography-display-lg-font-size);
  line-height: var(--typography-display-lg-line-height);
}
.lca-type-display-md {
  font-family: var(--typography-display-md-font-family);
  font-weight: var(--typography-display-md-font-weight);
  font-size: var(--typography-display-md-font-size);
  line-height: var(--typography-display-md-line-height);
}
.lca-type-heading-lg {
  font-family: var(--typography-heading-lg-font-family);
  font-weight: var(--typography-heading-lg-font-weight);
  font-size: var(--typography-heading-lg-font-size);
  line-height: var(--typography-heading-lg-line-height);
}
:is(.lca-type-display-xl, .lca-type-display-lg, .lca-type-display-md, .lca-type-heading-lg) { font-synthesis: none; }
.lca-type-heading-md {
  font-family: var(--typography-heading-md-font-family);
  font-weight: var(--typography-heading-md-font-weight);
  font-size: var(--typography-heading-md-font-size);
  line-height: var(--typography-heading-md-line-height);
}
.lca-type-heading-sm {
  font-family: var(--typography-heading-sm-font-family);
  font-weight: var(--typography-heading-sm-font-weight);
  font-size: var(--typography-heading-sm-font-size);
  line-height: var(--typography-heading-sm-line-height);
}
.lca-type-body-lg {
  font-family: var(--typography-body-lg-font-family);
  font-size: var(--typography-body-lg-font-size);
  line-height: var(--typography-body-lg-line-height);
}
.lca-type-body-md {
  font-family: var(--typography-body-md-font-family);
  font-size: var(--typography-body-md-font-size);
  line-height: var(--typography-body-md-line-height);
}
.lca-type-body-sm {
  font-family: var(--typography-body-sm-font-family);
  font-size: var(--typography-body-sm-font-size);
  line-height: var(--typography-body-sm-line-height);
}
.lca-type-label {
  font-family: var(--typography-label-font-family);
  font-weight: var(--font-weight-semibold);
  font-size: var(--typography-label-font-size);
  line-height: var(--typography-label-line-height);
}
.lca-type-metadata {
  font-family: var(--typography-metadata-font-family);
  font-size: var(--typography-metadata-font-size);
  line-height: var(--typography-metadata-line-height);
}
.lca-type-caption {
  font-family: var(--typography-caption-font-family);
  font-size: var(--typography-caption-font-size);
  line-height: var(--typography-caption-line-height);
}
.lca-type-action-label {
  font-family: var(--typography-action-label-font-family);
  font-weight: var(--typography-action-label-font-weight);
  font-size: var(--typography-action-label-font-size);
  line-height: var(--typography-action-label-line-height);
}

/* Finalization: explicit section-role weight; no fabricated font binary. */
.lca-type-heading-lg{font-weight:var(--weight-heading);font-synthesis:weight}

/* SOURCE: patterns/films/films.css */

/* ---------- LCA DESIGN TOKENS ---------- */


*,*::before,*::after{box-sizing:border-box}
html,body.lca-films-approved{margin:0;padding:0;background:var(--listing-paper);color:var(--listing-text-primary)}
html{scroll-behavior:smooth}
body.lca-films-approved{
  font-family:var(--listing-type-body);font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:clip;
}
@media  (pointer:coarse){body.lca-films-approved{cursor:auto}}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
@media  (pointer:coarse){button,input{cursor:auto}}
:focus-visible{outline:3px solid var(--listing-focus-ring);outline-offset:2px;border-radius:3px}
::selection{background:var(--listing-ink);color:var(--listing-paper)}

/* ---------- CUSTOM CURSOR ---------- */
.cursor,.cursor-ring{
  position:fixed;top:0;left:0;pointer-events:none;z-index:9999;
  transform:translate3d(-100px,-100px,0);will-change:transform;
}
.cursor{
  width:6px;height:6px;border-radius:50%;background:var(--listing-ink);
  transition:width var(--listing-dur-2) var(--listing-easing-soft),
             height var(--listing-dur-2) var(--listing-easing-soft),
             background var(--listing-dur-2) var(--listing-easing-soft);
}
.cursor-ring{
  width:34px;height:34px;border-radius:50%;border:1.5px solid var(--listing-ink);
  transition:width var(--listing-dur-3) var(--listing-easing-emphasis),
             height var(--listing-dur-3) var(--listing-easing-emphasis),
             border-color var(--listing-dur-3) var(--listing-easing-emphasis),
             background var(--listing-dur-3) var(--listing-easing-emphasis);
}
body[data-cursor="link"] .cursor{width:0;height:0}
body[data-cursor="link"] .cursor-ring{width:54px;height:54px;background:var(--listing-yellow);border-color:var(--listing-yellow);mix-blend-mode:multiply}
body[data-cursor="cta"] .cursor-ring{width:60px;height:60px;background:var(--listing-ink);border-color:var(--listing-ink)}
body[data-cursor="cta"] .cursor{background:var(--listing-paper)}
body[data-cursor="view"] .cursor-ring{width:84px;height:84px;background:var(--listing-ink);border-color:var(--listing-ink);color:var(--listing-paper)}
body[data-cursor="view"] .cursor-ring::after{
  content:"VIEW";position:absolute;inset:0;display:grid;place-items:center;
  font-family:var(--listing-type-mono);font-size:11px;letter-spacing:.18em;color:var(--listing-paper);
}
@media  (pointer:coarse){.cursor,.cursor-ring{display:none}}

/* ---------- SHELL HEADER ---------- */
.shell-nav{
  position:sticky;top:0;z-index:50;background:var(--listing-paper);
  border-bottom:1px solid var(--listing-ink);backdrop-filter:saturate(120%) blur(6px);
}
.shell-nav__inner{
  max-width:var(--listing-measure);margin:0 auto;
  display:grid;grid-template-columns:auto 1fr auto;
  align-items:center;gap:var(--listing-space-6);padding:var(--listing-space-4) var(--listing-space-6);
}
.shell-nav__brand{display:inline-flex;align-items:center;gap:var(--listing-space-3);color:var(--listing-ink)}
.shell-nav__brand img{height:34px;width:auto;display:block}
.shell-nav__menu{
  list-style:none;display:flex;gap:var(--listing-space-6);margin:0;padding:0;justify-content:center;
}
.shell-nav__menu a{
  display:inline-block;padding:var(--listing-space-2) 0;
  font-family:var(--listing-type-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  color:#000000 !important;                 /* EXPLICIT BLACK */
  position:relative;transition:color var(--listing-dur-2) var(--listing-easing-soft);
}
.shell-nav__menu a::after{
  content:"";position:absolute;left:0;right:100%;bottom:0;height:1.5px;background:#000;
  transition:right var(--listing-dur-3) var(--listing-easing-emphasis);
}
.shell-nav__menu a:hover::after,.shell-nav__menu a:focus-visible::after{right:0}
.shell-nav__menu a[aria-current="page"]::after{right:0}
.shell-nav__cta{justify-self:end}
.shell-nav__burger{
  display:none;width:40px;height:40px;border-radius:var(--listing-radius-action);
  background:var(--listing-paper);border:1px solid var(--listing-rule);align-items:center;justify-content:center;
}
.shell-nav__burger span{display:block;width:18px;height:2px;background:var(--listing-ink);position:relative}
.shell-nav__burger span::before,.shell-nav__burger span::after{
  content:"";position:absolute;left:0;width:18px;height:2px;background:var(--listing-ink);
}
.shell-nav__burger span::before{top:-6px}
.shell-nav__burger span::after{top:6px}
@media  (max-width:860px){
  .shell-nav__menu{display:none}
  .shell-nav__burger{display:inline-flex}
  body.menu-open .shell-nav__menu{
    display:flex;flex-direction:column;gap:var(--listing-space-4);
    position:absolute;left:0;right:0;top:100%;
    background:var(--listing-paper);border-bottom:1px solid var(--listing-ink);
    padding:var(--listing-space-6);align-items:flex-start;
  }
}

/* ---------- HERO ---------- */
.hero{
  position:relative;border-bottom:1px solid var(--listing-ink);
  padding:var(--listing-space-20) var(--listing-space-6) var(--listing-space-12);
  max-width:var(--listing-measure);margin:0 auto;
}
.hero__meta{
  display:grid;grid-template-columns:auto 1fr auto;gap:var(--listing-space-6);
  align-items:end;margin-bottom:var(--listing-space-10);
  font-family:var(--listing-type-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--listing-ink-mid);
}
.hero__meta-rule{height:1px;background:var(--listing-ink);align-self:center}
.hero__title{
  font-family:var(--listing-type-display);font-weight:400;
  font-size:clamp(56px,12vw,180px);line-height:.92;
  letter-spacing:-0.02em;margin:0;color:var(--listing-ink);
}
.hero__title .word{display:inline-block;overflow:hidden;vertical-align:bottom;margin-right:.18em}
.hero__title .word > span{
  display:inline-block;transform:translateY(110%);
  animation:rise .9s var(--listing-easing-emphasis) forwards;
}
.hero__title .word:nth-child(2) > span{animation-delay:.12s}
.hero__title .word:nth-child(3) > span{animation-delay:.24s}
.hero__title .word:nth-child(4) > span{animation-delay:.36s}
.hero__title .word:nth-child(5) > span{animation-delay:.48s}
@keyframes rise{to{transform:translateY(0)}}
.hero__lead{
  font-family:var(--listing-type-display);font-size:clamp(20px,2.4vw,30px);
  line-height:1.25;letter-spacing:-0.005em;color:var(--listing-ink);
  max-width:60ch;margin:var(--listing-space-8) 0 var(--listing-space-6);
}
.hero__support{max-width:60ch;margin:0 0 var(--listing-space-6);color:var(--listing-ink-mid)}
.hero__count{
  display:inline-flex;align-items:baseline;gap:var(--listing-space-3);
  font-family:var(--listing-type-mono);font-size:12px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--listing-ink-mid);
}
.hero__count strong{font-family:var(--listing-type-display);font-size:36px;color:var(--listing-ink);letter-spacing:-0.01em}
.hero__sidemark{
  position:absolute;right:var(--listing-space-6);top:var(--listing-space-10);
  font-family:var(--listing-type-mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--listing-ink-mid);writing-mode:vertical-rl;transform:rotate(180deg);
}
@media  (max-width:720px){
  .hero{padding:var(--listing-space-16) var(--listing-space-4) var(--listing-space-8)}
  .hero__meta{grid-template-columns:1fr;gap:var(--listing-space-3)}
  .hero__sidemark{display:none}
}

/* ---------- MARQUEE ---------- */
.marquee{
  background:var(--listing-ink);color:var(--listing-paper);
  border-top:1px solid var(--listing-ink);border-bottom:1px solid var(--listing-ink);
  overflow:hidden;padding:var(--listing-space-3) 0;position:relative;
}
.marquee__track{
  display:flex;gap:var(--listing-space-10);white-space:nowrap;
  animation:scroll 32s linear infinite;
  font-family:var(--listing-type-display);font-size:22px;letter-spacing:-0.01em;
}
.marquee__track span{display:inline-flex;align-items:center;gap:var(--listing-space-10)}
.marquee__track i{font-style:normal;width:10px;height:10px;border-radius:50%;background:var(--listing-yellow);display:inline-block}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- LISTING LAYOUT (sticky rail + rows) ---------- */
.listing{
  max-width:var(--listing-measure);margin:0 auto;
  display:grid;grid-template-columns:240px 1fr;gap:var(--listing-space-10);
  padding:var(--listing-space-16) var(--listing-space-6);
}
.listing__rail{
  position:sticky;top:96px;align-self:start;
  display:flex;flex-direction:column;gap:var(--listing-space-8);
  font-family:var(--listing-type-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--listing-ink-mid);
}
.rail__group h4{
  font-family:var(--listing-type-mono);font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--listing-ink);margin:0 0 var(--listing-space-3);
  display:flex;justify-content:space-between;align-items:baseline;
}
.rail__group h4 span{color:var(--listing-ink-mid)}
.rail__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.rail__list a{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:var(--listing-space-2) 0;border-bottom:1px solid var(--listing-rule);
  color:var(--listing-ink);transition:color var(--listing-dur-2) var(--listing-easing-soft),
                                     padding var(--listing-dur-2) var(--listing-easing-soft);
}
.rail__list a:hover,.rail__list a:focus-visible{color:var(--listing-teal);padding-left:6px}
.rail__list a[aria-current="true"]{color:var(--listing-teal)}
.rail__list a[aria-current="true"]::after{content:"●";margin-left:6px;color:var(--listing-teal)}
.rail__count{
  font-family:var(--listing-type-display);font-size:44px;line-height:1;color:var(--listing-ink);
  letter-spacing:-0.01em;text-transform:none;
}
.rail__count small{display:block;font-family:var(--listing-type-mono);font-size:11px;letter-spacing:.18em;color:var(--listing-ink-mid);margin-top:var(--listing-space-2);text-transform:uppercase}
@media  (max-width:960px){
  .listing{grid-template-columns:1fr;gap:var(--listing-space-8)}
  .listing__rail{position:static;flex-direction:row;flex-wrap:wrap;gap:var(--listing-space-6)}
  .rail__group{flex:1 1 200px}
}

/* ---------- FILM ROWS ---------- */
.films{display:flex;flex-direction:column;border-top:1px solid var(--listing-ink)}
.film{
  display:grid;grid-template-columns:120px 220px 1fr auto;
  gap:var(--listing-space-8);padding:var(--listing-space-10) 0;
  border-bottom:1px solid var(--listing-ink);
  align-items:start;
  position:relative;
}
.film__num{
  font-family:var(--listing-type-display);
  font-size:clamp(80px,9vw,140px);line-height:.85;
  color:var(--listing-ink);letter-spacing:-0.02em;
}
.film__num small{display:block;font-family:var(--listing-type-mono);font-size:11px;letter-spacing:.18em;color:var(--listing-ink-mid);margin-top:var(--listing-space-2);text-transform:uppercase}
.film__poster{
  aspect-ratio:2/3;background:var(--listing-ink);border-radius:var(--listing-radius-action);
  overflow:hidden;position:relative;width:100%;max-width:220px;
  transform:translateZ(0);
}
.film__poster img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--listing-easing-emphasis),filter .4s var(--listing-easing-soft)}
.film:hover .film__poster img{transform:scale(1.06);filter:contrast(1.04) saturate(1.05)}
.film__poster--text{
  display:grid;place-items:center;padding:var(--listing-space-4);text-align:center;
  font-family:var(--listing-type-display);font-size:22px;line-height:1.05;color:var(--listing-paper);
  background:repeating-linear-gradient(45deg,var(--listing-ink) 0 8px,var(--listing-ink-deep) 8px 16px);
}
.film__poster--text small{
  display:block;font-family:var(--listing-type-mono);font-size:9px;letter-spacing:.16em;
  color:var(--listing-aqua);margin-top:6px;text-transform:uppercase;
}
.film__body{display:flex;flex-direction:column;gap:var(--listing-space-4)}
.film__kicker{
  font-family:var(--listing-type-mono);font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--listing-ink-mid);
  display:flex;flex-wrap:wrap;gap:var(--listing-space-4);
}
.film__kicker span{white-space:nowrap}
.film__kicker em{font-style:normal;color:var(--listing-teal)}
.film__title{
  font-family:var(--listing-type-display);font-size:clamp(32px,4vw,56px);
  line-height:1;letter-spacing:-0.015em;color:var(--listing-ink);margin:0;
}
.film__director{font-size:16px;color:var(--listing-ink-mid);font-style:italic}
.film__synopsis{font-size:15px;line-height:1.5;color:var(--listing-ink);max-width:56ch;margin:0}
.film__cta{display:flex;flex-direction:column;gap:var(--listing-space-3);align-items:flex-end;justify-content:space-between;height:100%}
.film__cta-time{
  font-family:var(--listing-type-mono);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--listing-ink);text-align:right;
}
.film__cta-time strong{display:block;font-family:var(--listing-type-display);font-size:22px;letter-spacing:-0.01em;margin-top:2px}

/* navy featured film */
.film--feature{
  background:var(--listing-navy);color:var(--listing-paper);border-bottom:0;
  max-width:none;margin:0 -100vw;padding-left:100vw;padding-right:100vw;
}
.film--feature .film__num,.film--feature .film__title{color:var(--listing-paper)}
.film--feature .film__kicker,.film--feature .film__director,.film--feature .film__synopsis{color:var(--listing-aqua)}
.film--feature .film__kicker em{color:var(--listing-yellow)}



.film--feature .film__cta-time{color:var(--listing-paper)}
.film--feature .film__cta-time strong{color:var(--listing-yellow)}
.film--feature .film__poster{outline:1px solid var(--listing-aqua)}

@media  (max-width:860px){
  .film{grid-template-columns:80px 1fr;gap:var(--listing-space-4);padding:var(--listing-space-8) 0}
  .film__poster{grid-column:2;max-width:160px}
  .film__cta{grid-column:2;flex-direction:row;align-items:center}
  .film__cta-time{text-align:left}
}

/* ---------- FOOTER ---------- */
.lca-footer{
  background:var(--listing-ink);color:var(--listing-paper);
  padding:var(--listing-space-20) var(--listing-space-6) var(--listing-space-10);
}
.lca-footer__inner{max-width:var(--listing-measure);margin:0 auto}
.lca-footer__top{display:grid;grid-template-columns:1.1fr 1fr;gap:var(--listing-space-10);align-items:start}
.lca-footer__brand img{height:54px;width:auto}
.lca-footer__tag{font-family:var(--listing-type-display);font-size:clamp(28px,3.4vw,48px);line-height:1.05;color:var(--listing-paper);margin:var(--listing-space-6) 0 var(--listing-space-6);max-width:18ch}
.lca-footer__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--listing-space-6);margin-top:var(--listing-space-4)}
.lca-footer__col h4{font-family:var(--listing-type-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--listing-yellow);margin:0 0 var(--listing-space-3)}
.lca-footer__col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--listing-space-2)}
.lca-footer__col a{font-size:14px;color:var(--listing-paper);transition:color var(--listing-dur-2) var(--listing-easing-soft)}
.lca-footer__col a:hover{color:var(--listing-aqua)}
.lca-footer__archive{margin-top:var(--listing-space-16);padding-top:var(--listing-space-8);border-top:1px solid var(--listing-ink-mid)}
.lca-footer__archive h3{font-family:var(--listing-type-display);font-size:clamp(28px,3.4vw,44px);line-height:1;color:var(--listing-paper);margin:0 0 var(--listing-space-6)}
.lca-footer__archive-list{
  display:grid;grid-template-columns:repeat(5,1fr);gap:var(--listing-space-3);
  list-style:none;margin:0;padding:0;
}

.lca-footer__archive-list a:hover,
.lca-footer__legal{
  margin-top:var(--listing-space-12);padding-top:var(--listing-space-6);border-top:1px solid var(--listing-ink-mid);
  display:flex;flex-wrap:wrap;gap:var(--listing-space-4);justify-content:space-between;
  font-family:var(--listing-type-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--listing-ink-mid);
}
@media  (max-width:860px){
  .lca-footer__top{grid-template-columns:1fr}
  .lca-footer__cols{grid-template-columns:1fr 1fr}
  .lca-footer__archive-list{grid-template-columns:repeat(2,1fr)}
}

/* ---------- REVEAL ON SCROLL ---------- */
[data-reveal]{
  opacity:0;transform:translateY(28px);
  transition:opacity .8s var(--listing-easing-soft),transform .8s var(--listing-easing-emphasis);
}
[data-reveal].is-in{opacity:1;transform:none}

/* ---------- REDUCED MOTION ---------- */
@media  (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important;
  }
  .hero__title .word > span{transform:none}
  .marquee__track{animation:none}

  .cursor,.cursor-ring{display:none}
  body.lca-films-approved{cursor:auto}
}

/* Integration safeguards: compact heading contract from Revision 02; no display enlargement.
   Preserve source editorial layout, colours and copy. Body copy is not rewritten. */
.hero__title{font-size:var(--display-xl);line-height:var(--leading-display);max-width:22ch;letter-spacing:normal;font-synthesis:none}
.hero__title .word{overflow:visible;vertical-align:baseline}
.film__title{font-size:var(--display-lg);line-height:var(--leading-display);font-weight:var(--weight-heading);font-synthesis:weight;letter-spacing:normal}
.lca-footer__archive h3{font-weight:var(--weight-heading);font-synthesis:weight}
.listing,.listing>*{min-width:0}
.films{min-width:0}
.film{grid-template-columns:minmax(0,104px) minmax(0,176px) minmax(0,1fr);gap:24px}
.film>*{min-width:0}
.film__num{grid-column:1;grid-row:1 / span 2;font-size:clamp(3rem,5vw,4.5rem);line-height:1.1}
.film__poster{grid-column:2;grid-row:1 / span 2;max-width:none}
.film__body{grid-column:3;grid-row:1}
.film__cta{grid-column:3;grid-row:2;flex-direction:row;align-items:center;justify-content:space-between;gap:1rem}
.film__title,.film__synopsis,.film__director,.hero__lead,.lca-footer__tag{overflow-wrap:anywhere}
.film--feature{margin:0;padding-inline:20px;isolation:isolate}
.film--feature::before{content:'';position:absolute;inset:0;left:0;right:calc((min(100vw,76rem) - 100vw)/2 - 24px);z-index:-1;background:var(--color-navy);pointer-events:none}
.listing__rail{z-index:1}
.film__kicker span{white-space:normal}
.shell-nav__cta{display:flex;align-items:center;gap:.75rem}
.shell-nav__burger{min-width:48px;min-height:48px}

.lca-films-approved .skip{position:fixed;left:1rem;top:1rem;z-index:10000;padding:1rem;background:var(--color-yellow);color:var(--color-ink);transform:translateY(-200%)}
.lca-films-approved .skip:focus{transform:none}
.lca-films-approved [hidden]{display:none!important}
.filter-message{margin:0 0 1rem;font: .875rem/1.5 var(--font-body)}
.rail__list button{width:100%;display:flex;justify-content:space-between;text-align:left;gap:8px;min-height:44px;border-bottom:1px solid var(--listing-rule);font:inherit;color:var(--color-ink);cursor:pointer;padding:8px 0}
.rail__list button[aria-pressed=true]{color:var(--color-teal);text-decoration:underline;text-underline-offset:5px}
.rail__list button:disabled{opacity:.65;cursor:not-allowed}
.film-filter-note{font: .75rem/1.5 var(--font-body);letter-spacing:normal;text-transform:none;margin:8px 0 0}
@media(max-width:960px){.film--feature::before{left:-24px}.listing__rail{position:static}.film{grid-template-columns:minmax(0,92px) minmax(0,180px) minmax(0,1fr)}}
@media(max-width:700px){.film{grid-template-columns:52px minmax(0,1fr);gap:16px}.film__num{grid-column:1;grid-row:1}.film__poster{grid-column:2;grid-row:1;max-width:180px}.film__body{grid-column:1/-1;grid-row:2}.film__cta{grid-column:1/-1;grid-row:3;flex-wrap:wrap}.film--feature{padding-inline:16px}.film--feature::before{left:-24px;right:-24px}.hero__meta{overflow-wrap:anywhere}.hero__lead{font-size:1.25rem}.shell-nav__inner{gap:12px;padding:16px}.shell-nav__brand img{max-width:140px;height:auto}.lca-footer__top{grid-template-columns:1fr}.lca-footer__cols{grid-template-columns:repeat(2,minmax(0,1fr))}.lca-footer__archive-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:380px){.shell-nav__inner{grid-template-columns:minmax(0,1fr) auto}.shell-nav__inner>nav{grid-column:1/-1;grid-row:2}.shell-nav__cta{grid-column:2;grid-row:1;gap:8px}.shell-nav__brand img{max-width:110px}.listing{padding-inline:16px}.film--feature::before{left:-16px;right:-16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cursor,.cursor-ring{display:none}.hero__title .word>span{transform:none;animation:none}.marquee__track{animation:none}[data-reveal]{opacity:1;transform:none!important}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
@media print{.shell-nav,.cursor,.cursor-ring,.listing__rail,.lca-footer{display:none}.listing{display:block}.film{break-inside:avoid}.film--feature{color:#101010;background:#fff}.film--feature::before{display:none}}

/* Content is not hidden while waiting for JavaScript. Ribbon remains static. */
[data-reveal]{opacity:1;transform:none}.marquee__track{animation:none}

/* Layout corrections do not override the action component's geometry. */
[data-catalog-reset]{align-self:flex-start}
.film--feature .film__num small{color:var(--listing-aqua)}
/* D-018: two-digit counts are indivisible with the approved embedded TAN face.
 * Preserve the accepted row grid and type scale; labels may still wrap. */
.hero__count strong { flex-shrink: 0; white-space: nowrap; }
.film__num { white-space: nowrap; }
.film__num small { white-space: normal; }
@media(max-width:700px){.film{grid-template-columns:72px minmax(0,1fr)}}
@media(max-width:860px){html:not(.listing-js) .shell-nav__menu{display:flex;flex-wrap:wrap;gap:16px}html:not(.listing-js) .shell-nav__inner{display:flex;flex-wrap:wrap}html:not(.listing-js) .shell-nav__burger{display:none}}
