/*
  Bitcoin FilmFest cinema-frame components.
  Global tokens belong in /tokens.css; visual rules and responsive component
  behavior belong here. Read /design.md before altering the frame or adding a
  new page component. Preserve the shared black ending and reduced-motion rules.
*/
/* Hallmark · genre: atmospheric editorial · macrostructure: Marquee Hero / Long Document / Index-first · design-system: design.md · designed-as-app */

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-width: 20rem;
  overflow-x: clip;
}

html {
  scroll-behavior: smooth;
  background: var(--color-room);
}

body {
  min-height: 100dvh;
  background: var(--color-room);
  color: var(--color-ink);
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body::before {
  position: fixed;
  inset: 0;
  z-index: var(--z-sticky);
  border-block-start: var(--nav-height) solid var(--color-room);
  border-inline: var(--frame-side) solid var(--color-room);
  border-block-end: var(--frame-bottom) solid var(--color-room);
  content: "";
  pointer-events: none;
}

::selection {
  background: var(--color-accent);
  color: var(--color-ink);
}

img,
svg,
video {
  display: block;
  max-width: 100%;
}

button,
input,
summary {
  font: inherit;
}

button,
summary {
  -webkit-tap-highlight-color: transparent;
}

button,
input {
  border-radius: var(--radius-control);
}

button,
a,
summary {
  touch-action: manipulation;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
summary:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 3px;
}

a {
  color: var(--color-screen);
  text-decoration-thickness: var(--rule-thin);
  text-underline-offset: 0.2em;
}

a:hover {
  color: var(--color-ink);
}

h1,
h2,
h3,
h4,
p,
ul,
ol,
figure,
blockquote {
  margin-block-start: 0;
}

h1,
h2,
h3,
h4 {
  margin-block-end: var(--space-md);
  color: inherit;
  font-family: var(--font-display);
  font-style: normal;
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.08;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

h1 {
  font-size: var(--text-display-s);
}

h2 {
  font-size: clamp(var(--text-xl), 4vw, var(--text-3xl));
}

h3 {
  font-size: var(--text-lg);
}

p,
li {
  text-wrap: pretty;
}

p {
  margin-block-end: var(--space-md);
}

.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.skip-link {
  position: fixed;
  inset-block-start: var(--space-xs);
  inset-inline-start: var(--space-xs);
  z-index: var(--z-tooltip);
  padding: var(--space-sm) var(--space-md);
  background: var(--color-paper);
  color: var(--color-ink);
  font-weight: 700;
  transform: translateY(-160%);
  transition: transform var(--dur-short) var(--ease-out);
}

.skip-link:focus {
  transform: translateY(0);
}

/* Shared cinema room */
.screen-bezel {
  position: fixed;
  inset-block-start: var(--nav-height);
  inset-inline: var(--frame-side);
  inset-block-end: var(--frame-bottom);
  z-index: var(--z-sticky);
  box-shadow: inset 0 0 1.35rem color-mix(in oklch, var(--color-room) 78%, transparent);
  pointer-events: none;
}

/* Fixed foreground seats. The source is a wide 11.5:1 strip, so the image
   must retain its natural ratio. A constrained height had been shrinking and
   vertically clipping it; width-driven sizing preserves the full silhouette. */
.cinema-seats {
  position: fixed;
  inset-inline-start: 50%;
  inset-block-end: 0;
  z-index: var(--z-seats);
  width: max(100vw, 46rem);
  max-width: none;
  height: auto;
  pointer-events: none;
  --seat-scroll-scale: 1;
  transform: translateX(-50%) scale(var(--seat-scroll-scale));
  transform-origin: center bottom;
}

/* A visible projector-like seat push tracks page scroll. */
@supports (animation-timeline: scroll()) {
  @media (prefers-reduced-motion: no-preference) {
    .cinema-seats {
      animation: seats-scroll-zoom linear both;
      animation-timeline: scroll(root block);
      animation-range: 0% 100%;
    }
  }
}

@keyframes seats-scroll-zoom {
  from { transform: translateX(-50%) scale(1); }
  to { transform: translateX(-50%) scale(1.11); }
}

/* Shared navigation */
.topnav {
  position: fixed;
  inset-block-start: 0;
  inset-inline: 0;
  z-index: var(--z-toast);
  height: var(--nav-height);
  background: var(--color-room);
  color: var(--color-on-dark);
}

.topnav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  width: 100%;
  height: 100%;
  padding-inline: var(--frame-side);
}

.brand {
  position: relative;
  z-index: var(--z-raised);
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: var(--space-xs);
  height: calc(var(--nav-height) - var(--space-sm));
  color: var(--color-on-dark);
  text-decoration: none;
  view-transition-name: bff-logo;
}

.brand:hover {
  color: var(--color-screen-soft);
}

.brand-mark {
  width: 1.42rem;
  height: 1.42rem;
  object-fit: contain;
  flex: 0 0 auto;
  filter: drop-shadow(0 0 0.18rem color-mix(in oklch, var(--color-on-dark) 34%, transparent));
}

.brand-name {
  font-family: var(--font-display);
  font-size: clamp(var(--text-xs), 1.1vw, var(--text-sm));
  letter-spacing: 0.02em;
  line-height: 1;
  white-space: nowrap;
  text-transform: lowercase;
}

.nav-current {
  display: none;
  align-items: center;
  gap: var(--space-xs);
  min-width: 0;
  margin-inline-end: auto;
  padding-inline-start: var(--space-lg);
  color: color-mix(in oklch, var(--color-on-dark) 82%, transparent);
  font-family: var(--font-display);
  font-size: clamp(var(--text-xs), 1.1vw, var(--text-sm));
  letter-spacing: 0.06em;
  text-decoration: none;
  text-transform: lowercase;
  white-space: nowrap;
}

.nav-current-dot {
  width: 0.3rem;
  height: 0.3rem;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--color-accent);
}

.nav-current span[data-nav-current-label] {
  overflow: hidden;
  max-width: 16rem;
  text-overflow: ellipsis;
}

.nav-current:hover {
  color: var(--color-screen-soft);
}

.nav-toggle {
  position: relative;
  z-index: var(--z-raised);
  display: inline-flex;
  min-width: 4.75rem;
  min-height: 2.75rem;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-sm);
  border: 0;
  background: transparent;
  color: var(--color-on-dark);
  cursor: pointer;
  font-family: var(--font-display);
  font-size: var(--text-sm);
  text-transform: uppercase;
}

.nav-toggle-label {
  white-space: nowrap;
}

.nav-toggle-lines {
  position: relative;
  width: 1.25rem;
  height: 0.875rem;
}

.nav-toggle-lines i {
  position: absolute;
  inset-inline: 0;
  height: var(--rule-thin);
  background: currentColor;
  transform-origin: center;
  transition: transform var(--dur-short) var(--ease-in-out), inset-block-start var(--dur-short) var(--ease-in-out);
}

.nav-toggle-lines i:first-child {
  inset-block-start: 0.2rem;
}

.nav-toggle-lines i:last-child {
  inset-block-start: 0.68rem;
}

.topnav.is-open .nav-toggle-lines i:first-child {
  inset-block-start: 0.45rem;
  transform: rotate(45deg);
}

.topnav.is-open .nav-toggle-lines i:last-child {
  inset-block-start: 0.45rem;
  transform: rotate(-45deg);
}

.nav-menu {
  position: fixed;
  inset-block-start: var(--nav-height);
  inset-inline: var(--frame-side);
  display: grid;
  align-content: start;
  gap: var(--space-xs);
  min-height: calc(100dvh - var(--nav-height) - var(--frame-bottom));
  max-height: calc(100dvh - var(--nav-height) - var(--frame-bottom));
  padding: var(--space-lg);
  overflow-y: auto;
  background: var(--color-room-raised);
  box-shadow: 0 1px 2px color-mix(in oklch, var(--color-room) 65%, transparent);
  opacity: 0;
  pointer-events: none;
  transform: translateY(calc(var(--space-sm) * -1));
  transition: opacity var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out);
}

.topnav.is-open .nav-menu {
  opacity: 1;
  pointer-events: auto;
  transform: none;
}

.nav-link,
.nav-group > summary {
  position: relative;
  display: flex;
  min-height: 2.75rem;
  align-items: center;
  color: color-mix(in oklch, var(--color-on-dark) 46%, transparent);
  font-family: var(--font-display);
  font-size: var(--text-sm);
  letter-spacing: 0.045em;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
  transition: color var(--dur-short) var(--ease-out);
}

.nav-link:hover,
.nav-group > summary:hover {
  color: var(--color-ink);
  background: var(--color-paper);
}

.nav-link.active,
.nav-group.active > summary {
  color: var(--color-screen-soft);
}

.nav-icon {
  padding-inline: var(--space-xs);
  font-size: 1.15rem;
}

.nav-icon-heart {
  display: inline-block;
  color: var(--color-on-dark);
  line-height: 1;
  transition: transform var(--dur-short) var(--ease-out);
}

.nav-icon:hover .nav-icon-heart {
  transform: scale(1.12);
}

.nav-icon:hover,
.nav-icon.active {
  background: transparent;
  color: var(--color-on-dark);
}

.nav-link.active::after,
.nav-group.active > summary::after {
  position: absolute;
  inset-inline-start: 0;
  inset-block-end: 0.38rem;
  width: var(--space-lg);
  height: var(--rule-thin);
  background: currentColor;
  content: "";
}

.nav-group {
  position: relative;
}

.nav-group > summary {
  justify-content: space-between;
  list-style: none;
}

.nav-group > summary::-webkit-details-marker {
  display: none;
}

.nav-chevron {
  width: 0.55rem;
  height: 0.55rem;
  margin-inline-start: var(--space-sm);
  border-inline-end: var(--rule-thin) solid currentColor;
  border-block-end: var(--rule-thin) solid currentColor;
  transform: translateY(-0.15rem) rotate(45deg);
  transition: transform var(--dur-short) var(--ease-in-out);
}

.nav-group[open] .nav-chevron {
  transform: translateY(0.12rem) rotate(225deg);
}

.nav-dropdown {
  display: grid;
  gap: var(--space-2xs);
  padding-block-end: var(--space-sm);
}

.nav-dropdown a {
  display: grid;
  min-height: 3.25rem;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: var(--space-md);
  padding-inline: var(--space-md);
  color: var(--color-on-dark);
  text-decoration: none;
  white-space: nowrap;
}

.nav-dropdown a small {
  color: color-mix(in oklch, var(--color-on-dark) 55%, transparent);
  font-size: var(--text-xs);
  text-align: end;
}

.nav-dropdown a:hover,
.nav-dropdown a.active {
  background: var(--color-screen);
  color: var(--color-on-screen);
}

.nav-dropdown a:hover small,
.nav-dropdown a.active small {
  color: inherit;
}

/* Page screen and content */
.stage {
  position: relative;
  z-index: var(--z-base);
  padding-block-start: var(--nav-height);
  background: var(--color-room);
  view-transition-name: page-content;
}

.screen-canvas {
  position: relative;
  isolation: isolate;
  min-height: calc(100dvh - var(--nav-height) - var(--frame-bottom));
  margin-inline: var(--frame-side);
  overflow: hidden;
  background: var(--color-paper);
}

/* Projection texture is deliberately contained inside .screen-canvas. Its
   low-opacity layers give every cinema screen a tangible film surface while
   leaving navigation, the room frame, footer, and fixed seats untouched. */
.cinema-atmosphere,
.cinema-atmosphere > i {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.cinema-atmosphere {
  z-index: 0;
  overflow: hidden;
}

.cinema-grain {
  inset: -50% !important;
  width: 200%;
  height: 200%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.78'/%3E%3C/svg%3E");
  background-repeat: repeat;
  mix-blend-mode: overlay;
  opacity: 0.18;
  animation: cinema-grain-shift 0.6s steps(4) infinite;
}

.cinema-scratch {
  inset-block: -10% !important;
  inset-inline-start: auto !important;
  width: 1px;
  height: 120%;
  background: color-mix(in oklch, var(--color-on-screen) 58%, transparent);
  mix-blend-mode: screen;
  opacity: 0;
  animation: cinema-scratch-flash 8s linear infinite;
}

.cinema-scratch--one { inset-inline-end: 12% !important; animation-delay: 0.2s; }
.cinema-scratch--two { inset-inline-end: 34% !important; width: 2px; animation-delay: 2.4s; }
.cinema-scratch--three { inset-inline-end: 58% !important; animation-delay: 4.1s; }
.cinema-scratch--four { inset-inline-end: 77% !important; animation-delay: 1.3s; }
.cinema-scratch--five { inset-inline-end: 90% !important; width: 2px; animation-delay: 3.6s; }

.cinema-dust {
  inset: auto !important;
  width: 2px;
  height: 2px;
  border-radius: 50%;
  background: var(--color-on-screen);
  opacity: 0;
  animation: cinema-dust-pop 6s var(--ease-in-out) infinite;
}

.cinema-dust--one { inset-block-start: 22% !important; inset-inline-start: 18% !important; animation-delay: 1s; }
.cinema-dust--two { inset-block-start: 64% !important; inset-inline-start: 72% !important; animation-delay: 3.4s; }
.cinema-dust--three { inset-block-start: 42% !important; inset-inline-start: 46% !important; animation-delay: 5.1s; }

.cinema-flicker {
  background: var(--color-room);
  mix-blend-mode: multiply;
  opacity: 0;
  animation: cinema-flicker-pulse 0.15s steps(2) infinite;
}

/* Keep the production projection neutral: texture only, never a color cast. */
.cinema-tint { display: none; }

.cinema-vignette {
  background: radial-gradient(ellipse at center, transparent 40%, rgba(0, 0, 0, 0.75) 100%);
  opacity: 0.48;
}

/* Perforations are intentionally paper-screen only. Blue and credits screens
   stay clean at their side edges, while beige reading screens get film stock. */
.cinema-sprocket { display: none; }
.stage--paper .cinema-sprocket {
  display: block;
  inset-block: 0 !important;
  inset-inline: auto !important;
  width: clamp(0.8rem, 2vw, 1.5rem);
  background: radial-gradient(ellipse at center, var(--color-room) 0 34%, transparent 38%) center / 100% 1.65rem repeat-y;
  opacity: 0.2;
}
.stage--paper .cinema-sprocket--left { inset-inline-start: 0 !important; }
.stage--paper .cinema-sprocket--right { inset-inline-end: 0 !important; }

.inner {
  position: relative;
  z-index: var(--z-raised);
}

.stage--blue .screen-canvas {
  background-color: var(--color-screen);
  background-image: url("../images/legacy-home/bff-home-parallax.png");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
  color: var(--color-on-screen);
}

/* Credits use a dedicated, slightly lifted black auditorium, not paper. */
.stage--credits .screen-canvas {
  background: var(--color-room-raised);
  color: var(--color-on-dark);
}

.inner {
  width: min(100%, var(--content-max));
  margin-inline: auto;
  padding: clamp(var(--space-xl), 6vw, var(--space-3xl)) clamp(var(--space-md), 5vw, var(--space-2xl));
}

.stage--blue .inner {
  min-height: inherit;
}

/* Homepage: the first cinematic beat intentionally occupies most of the viewport. */
.home-hero {
  position: relative;
  display: grid;
  min-height: 90dvh;
  align-items: center;
  gap: var(--space-xl);
}

.home-rabbit {
  position: absolute;
  /* Deliberately oversized and offset: Mr. Rabbit feels seated at screen-right. */
  inset-inline-end: clamp(-6rem, -7vw, -1.5rem);
  inset-block-end: calc(var(--space-xl) * -0.65);
  z-index: var(--z-raised);
  order: 0;
  width: clamp(12rem, 37vw, 23rem);
  margin: 0;
  pointer-events: none;
}

.home-rabbit img {
  width: 100%;
  height: auto;
}

.home-copy {
  position: relative;
  z-index: var(--z-raised);
  order: 1;
  min-width: 0;
}

.festival-dateline {
  margin-block-end: var(--space-lg);
  font-size: var(--text-sm);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.home-copy h1 {
  max-width: 11ch;
  margin-block-end: var(--space-lg);
  font-size: clamp(2.5rem, 10vw, 5.25rem);
  letter-spacing: -0.04em;
  line-height: 1.02;
  text-transform: lowercase;
}

.hero-sub {
  margin-block-end: var(--space-2xl);
  font-family: var(--font-display);
  font-size: clamp(var(--text-base), 2.3vw, var(--text-lg));
  letter-spacing: 0.05em;
  line-height: 1.35;
  text-transform: lowercase;
}

/* The homepage programme controls stay compact, leaving the rabbit and title room. */
.showtimes {
  width: min(100%, 32rem);
  border-block-end: var(--rule-thin) solid color-mix(in oklch, var(--color-on-screen) 48%, transparent);
}

.showtime {
  display: grid;
  min-height: 3.875rem;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-xs) var(--space-md);
  padding-block: var(--space-sm);
  border-block-start: var(--rule-thin) solid color-mix(in oklch, var(--color-on-screen) 48%, transparent);
  color: var(--color-on-screen);
  text-decoration: none;
  transition: background-color var(--dur-short) var(--ease-out), transform var(--dur-micro) var(--ease-out);
}

.showtime-title,
.showtime-action {
  font-family: var(--font-display);
  white-space: nowrap;
}

.showtime-title {
  font-size: var(--text-md);
}

.showtime-detail {
  grid-column: 1;
  color: color-mix(in oklch, var(--color-on-screen) 78%, transparent);
  font-size: var(--text-xs);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.showtime-action {
  grid-column: 2;
  grid-row: 1 / span 2;
  font-size: var(--text-sm);
  text-decoration: underline;
  text-underline-offset: 0.3em;
}

.showtime:hover {
  background: color-mix(in oklch, var(--color-room) 18%, transparent);
  color: var(--color-on-screen);
}

.showtime:active {
  transform: translateY(1px);
}

.home-curtain-call {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-md) var(--space-xl);
  padding-block: var(--space-2xl);
  border-block-start: var(--rule-thin) solid color-mix(in oklch, var(--color-on-screen) 48%, transparent);
}

.home-curtain-call p {
  max-width: 42ch;
  margin: 0;
  font-size: var(--text-md);
}

.home-curtain-call a {
  color: var(--color-on-screen);
  font-family: var(--font-display);
  white-space: nowrap;
}

.hero-enter {
  opacity: 0;
  transform: translateY(var(--space-sm));
  animation: hero-enter var(--dur-long) var(--ease-out) forwards;
}

.hero-enter--date { animation-delay: 80ms; }
.hero-enter--title { animation-delay: 140ms; }
.hero-enter--sub { animation-delay: 210ms; }
.hero-enter--showtimes { animation-delay: 280ms; }
.hero-enter--rabbit { animation-delay: 200ms; }

@keyframes hero-enter {
  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes cinema-grain-shift {
  0%, 100% { transform: translate(0, 0); }
  25% { transform: translate(-1.5%, 1%); }
  50% { transform: translate(1%, -1.5%); }
  75% { transform: translate(-1%, -0.5%); }
}

@keyframes cinema-scratch-flash {
  0%, 96%, 100% { opacity: 0; }
  97% { opacity: 0.24; transform: translateX(0); }
  97.5% { opacity: 0; }
  98% { opacity: 0.34; transform: translateX(1px); }
  98.5% { opacity: 0; }
}

@keyframes cinema-dust-pop {
  0%, 91%, 100% { opacity: 0; transform: scale(1); }
  93% { opacity: 0.48; transform: scale(1.45); }
  96% { opacity: 0; transform: scale(1); }
}

@keyframes cinema-flicker-pulse {
  0% { opacity: 0; }
  50% { opacity: 0.06; }
  100% { opacity: 0; }
}

/* Edition screens */
.edition-page {
  display: grid;
  min-height: calc(100dvh - var(--nav-height) - var(--frame-bottom) - (var(--space-3xl) * 2));
  align-content: center;
  gap: var(--space-2xl);
}

.edition-masthead {
  position: relative;
  max-width: 52rem;
}

.edition-masthead::before {
  position: absolute;
  inset-block-start: calc(var(--space-xl) * -1);
  inset-inline-end: 0;
  width: clamp(6rem, 22vw, 12rem);
  aspect-ratio: 1;
  background: url("../images/brand/bff-logo-mark-white.png") center / contain no-repeat;
  content: "";
  opacity: 0.12;
}

.edition-year {
  margin-block-end: var(--space-sm);
  font-family: var(--font-display);
  font-size: var(--text-sm);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.18em;
}

.edition-masthead h1 {
  margin-block-end: var(--space-sm);
  font-size: clamp(4rem, 18vw, 8rem);
  letter-spacing: -0.065em;
  line-height: 0.92;
}

.edition-date {
  margin-block-end: var(--space-xl);
  font-family: var(--font-display);
  font-size: clamp(var(--text-md), 3vw, var(--text-xl));
  font-variant-numeric: tabular-nums;
}

.edition-intro {
  max-width: 54ch;
  font-size: var(--text-md);
}

.edition-actions {
  border-block-end: var(--rule-thin) solid color-mix(in oklch, var(--color-on-screen) 45%, transparent);
}

.edition-actions a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-lg);
  padding-block: var(--space-lg);
  border-block-start: var(--rule-thin) solid color-mix(in oklch, var(--color-on-screen) 45%, transparent);
  color: var(--color-on-screen);
  text-decoration: none;
}

.edition-actions a span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.edition-actions a strong {
  font-family: var(--font-display);
  font-weight: 400;
  text-decoration: underline;
  text-underline-offset: 0.3em;
  white-space: nowrap;
}

.edition-actions a:hover {
  color: var(--color-on-screen);
  transform: translateX(var(--space-2xs));
}

/* Shared reading pages */
article,
.newsletter {
  padding-block-end: var(--space-2xl);
}

/* Long-document content grid (Reel articles, newsletters, generic content
   pages — design.md's "Long Document" family). Body text stays in a
   readable center column via --prose-max; the freed-up side space is not
   just padding: .breakout lets media/tables/quotes span the full screen
   width as a section break, and .rail-note puts margin content (a table
   of contents, a pull quote, a callout) in the side column instead of
   leaving it empty. Collapses to a single column below 64rem. */
.reel-entry,
.newsletter,
.page-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) min(var(--prose-max), 100%) minmax(0, 1fr);
  column-gap: clamp(var(--space-lg), 4vw, var(--space-2xl));
}

.reel-entry > *,
.newsletter > *,
.page-content > * {
  grid-column: 2;
}

.reel-entry .breakout,
.newsletter .breakout,
.page-content .breakout {
  grid-column: 1 / -1;
  width: 100%;
  max-width: none;
  margin-inline: 0;
}

.reel-entry .rail-note,
.newsletter .rail-note,
.page-content .rail-note {
  grid-column: 3;
  align-self: start;
  max-width: none;
  padding-inline-start: var(--space-md);
  border-inline-start: var(--rule-thin) solid var(--color-ink);
  font-size: var(--text-sm);
  line-height: 1.5;
}

.reel-entry .rail-note--left,
.newsletter .rail-note--left,
.page-content .rail-note--left {
  grid-column: 1;
  padding-inline-start: 0;
  padding-inline-end: var(--space-md);
  border-inline-start: 0;
  border-inline-end: var(--rule-thin) solid var(--color-ink);
}

.rail-note.toc {
  position: sticky;
  top: calc(var(--nav-height) + var(--space-lg));
}

.rail-note.toc p {
  max-width: none;
}

.rail-note.toc ol,
.rail-note.toc ul {
  max-width: none;
  margin: 0;
  padding-inline-start: var(--space-md);
}

.rail-note.toc a {
  color: inherit;
}

@media (max-width: 64rem) {
  .reel-entry,
  .newsletter,
  .page-content {
    grid-template-columns: minmax(0, 1fr);
  }

  .reel-entry > *,
  .newsletter > *,
  .page-content > * {
    grid-column: 1;
  }

  .reel-entry .rail-note,
  .newsletter .rail-note,
  .page-content .rail-note,
  .reel-entry .rail-note--left,
  .newsletter .rail-note--left,
  .page-content .rail-note--left {
    grid-column: 1;
    margin-block: var(--space-lg);
    padding-inline: var(--space-md);
    border-inline: 0;
    border-block-start: var(--rule-thin) solid var(--color-ink);
    position: static;
  }
}

.page-masthead {
  max-width: 54rem;
  margin-block-end: clamp(var(--space-2xl), 8vw, var(--space-4xl));
  padding-block-end: var(--space-xl);
  border-block-end: var(--rule-thin) solid var(--color-ink);
}

.page-context {
  margin-block-end: var(--space-lg);
  color: var(--color-screen);
  font-family: var(--font-display);
  font-size: var(--text-sm);
  letter-spacing: 0.08em;
}

.page-masthead > p:last-child {
  max-width: 58ch;
  margin-block-end: 0;
  font-size: var(--text-md);
}

article > h1,
.newsletter > h1 {
  max-width: 15ch;
  margin-block-end: var(--space-2xl);
}

article h2,
.newsletter h2 {
  max-width: 22ch;
  margin-block-start: var(--space-3xl);
}

article h3,
.newsletter h3 {
  margin-block-start: var(--space-xl);
}

article p,
article li,
.newsletter p,
.newsletter li {
  max-width: var(--prose-max);
}

article ul,
article ol,
.newsletter ul,
.newsletter ol {
  padding-inline-start: var(--space-lg);
  margin-block: var(--space-md) var(--space-xl);
}

article li,
.newsletter li {
  margin-block-end: var(--space-xs);
}

article blockquote,
.newsletter blockquote {
  max-width: var(--prose-max);
  margin-block: var(--space-xl);
  padding-block: var(--space-md);
  padding-inline-start: var(--space-lg);
  border-inline-start: 3px solid var(--color-screen);
  color: var(--color-ink-2);
  font-size: var(--text-md);
}

article img,
.newsletter img {
  width: auto;
  height: auto;
  margin-block: var(--space-xl);
}

.contribute-copy {
  display: grid;
  gap: var(--space-md);
  max-width: 52rem;
}

.contribute-roles {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  max-width: 52rem;
  margin-block: var(--space-2xl);
  padding: 0;
  border-block-end: var(--rule-thin) solid var(--color-rule);
  list-style: none;
}

.contribute-roles li {
  max-width: none;
  margin: 0;
  padding-block: var(--space-md);
  border-block-start: var(--rule-thin) solid var(--color-rule);
  font-family: var(--font-display);
}

.contribute-contact a {
  display: inline-block;
  font-family: var(--font-display);
  white-space: nowrap;
}

/* Credits: based on the historic vertical roll, rebuilt for accessible reading. */
.credits-page {
  width: min(100%, 34rem);
  margin-inline: auto;
  padding-block: clamp(var(--space-2xl), 9vw, var(--space-4xl));
  text-align: center;
}

.credits-page .page-masthead {
  max-width: 28rem;
  margin-inline: auto;
  margin-block-end: clamp(var(--space-3xl), 10vw, var(--space-4xl));
  color: var(--color-on-dark);
}

.credits-page .page-context,
.credits-date {
  color: color-mix(in oklch, var(--color-on-dark) 58%, transparent);
}

.credits-page .page-masthead h1 {
  color: var(--color-on-dark);
}

.credits-roll {
  display: grid;
  gap: clamp(var(--space-3xl), 10vw, var(--space-4xl));
  transition: opacity var(--dur-short) var(--ease-out);
}

.credits-roll.is-autoplaying {
  cursor: default;
}

.credits-section {
  display: grid;
  gap: var(--space-lg);
  padding: 0;
  border: 0;
}

.credits-section h2 {
  margin: 0;
  color: var(--color-accent);
  font-family: var(--font-display);
  font-size: var(--text-sm);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.credits-section ul {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-xs);
  margin: 0;
  padding: 0;
  list-style: none;
}

.credits-section li {
  margin: 0;
}

.credits-section a {
  display: block;
  overflow-wrap: anywhere;
  color: var(--color-on-dark);
  font-family: var(--font-display);
  font-size: clamp(var(--text-sm), 2.1vw, var(--text-md));
  letter-spacing: 0.035em;
  line-height: 1.35;
  text-decoration-color: color-mix(in oklch, var(--color-on-dark) 28%, transparent);
  text-underline-offset: 0.25em;
}

.credits-section a:hover,
.credits-section a:focus-visible {
  color: var(--color-screen-soft);
}

.credits-date {
  margin-block-start: clamp(var(--space-3xl), 10vw, var(--space-4xl));
}

/* Site map */
.route-key {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm) var(--space-xl);
  margin-block-end: var(--space-3xl);
  color: var(--color-muted);
  font-size: var(--text-sm);
}

.route-key span {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  white-space: nowrap;
}

.route-dot {
  width: var(--space-xs);
  height: var(--space-xs);
  background: var(--color-rule);
}

.route-dot--live { background: var(--color-screen); }
.route-dot--redirect { background: var(--color-accent); }

.sitemap-index {
  display: grid;
  gap: var(--space-3xl);
}

.sitemap-group {
  display: grid;
  gap: var(--space-lg);
}

.sitemap-group h2 {
  margin: 0;
  font-size: var(--text-lg);
}

.sitemap-group ol {
  margin: 0;
  padding: 0;
  border-block-end: var(--rule-thin) solid var(--color-rule);
  list-style: none;
}

.sitemap-group li {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-sm);
  max-width: none;
  margin: 0;
  padding-block: var(--space-sm);
  border-block-start: var(--rule-thin) solid var(--color-rule);
}

.sitemap-group a,
.route-planned {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr);
  color: var(--color-ink);
  text-decoration: none;
}

.sitemap-group a > span,
.route-planned > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sitemap-group a:hover {
  color: var(--color-screen);
}

.sitemap-group code {
  display: none;
  color: var(--color-muted);
  font-family: var(--font-body);
  font-size: var(--text-xs);
  white-space: nowrap;
}

.route-planned {
  color: var(--color-muted);
}

.route-state {
  align-self: center;
  color: var(--color-muted);
  font-size: var(--text-xs);
  white-space: nowrap;
}

.route-state--implemented {
  color: var(--color-screen);
}

.route-state--redirect-candidate {
  color: var(--color-accent);
}

.sitemap-exclusions {
  margin-block-start: var(--space-4xl);
  padding-block-start: var(--space-xl);
  border-block-start: var(--rule-thin) solid var(--color-ink);
}

.sitemap-exclusions h2 {
  margin-block-start: 0;
  font-size: var(--text-lg);
}

.sitemap-exclusions ul {
  padding-inline-start: var(--space-lg);
}

/* Shared footer close: a distinct lifted grey auditorium screen, never a thin strip. */
.site-footer {
  position: relative;
  z-index: var(--z-base);
  margin-inline: var(--frame-side);
  min-height: max(60dvh, calc(var(--frame-bottom) + 22rem));
  padding: clamp(var(--space-2xl), 8vw, var(--space-4xl)) clamp(var(--space-xl), 6vw, var(--space-3xl)) calc(var(--frame-bottom) + var(--space-3xl));
  background: var(--color-footer);
  color: var(--color-on-dark);
}

.footer-inner {
  display: grid;
  gap: var(--space-3xl);
  width: min(100%, var(--content-max));
  margin-inline: auto;
}

.footer-lead {
  display: flex;
  align-items: flex-start;
  gap: var(--space-lg);
}

.footer-brand {
  flex: 0 0 auto;
  width: 3.5rem;
  color: var(--color-on-dark);
}

.footer-brand img {
  width: 100%;
  height: auto;
}

.footer-statement {
  margin-block-end: var(--space-xs);
  font-family: var(--font-display);
  font-size: clamp(var(--text-lg), 4vw, var(--text-2xl));
  letter-spacing: -0.03em;
  line-height: 1.08;
  text-transform: uppercase;
}

.footer-tagline {
  margin: 0;
  color: var(--color-screen-soft);
  font-size: var(--text-sm);
}

.footer-subscribe {
  max-width: 38rem;
}

.footer-subscribe h2 {
  margin-block-end: var(--space-xs);
  font-size: var(--text-lg);
}

.footer-subscribe > p {
  color: color-mix(in oklch, var(--color-on-dark) 70%, transparent);
}

form[data-subscribe] {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

form[data-subscribe] input,
form[data-subscribe] button {
  min-height: 3.25rem;
  border: var(--rule-thin) solid color-mix(in oklch, var(--color-on-dark) 55%, transparent);
}

form[data-subscribe] input {
  min-width: 0;
  padding-inline: var(--space-md);
  background: var(--color-room-raised);
  color: var(--color-on-dark);
}

form[data-subscribe] input::placeholder {
  color: color-mix(in oklch, var(--color-on-dark) 58%, transparent);
}

form[data-subscribe] .form-honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  min-height: 1px;
  padding: 0;
  opacity: 0;
}

form[data-subscribe] button {
  margin-block-start: calc(var(--rule-thin) * -1);
  padding-inline: var(--space-lg);
  background: var(--color-on-dark);
  color: var(--color-room);
  font-family: var(--font-display);
  cursor: pointer;
  transition: background-color var(--dur-short) var(--ease-out), transform var(--dur-micro) var(--ease-out);
  white-space: nowrap;
}

form[data-subscribe] button:hover {
  background: var(--color-screen-soft);
}

form[data-subscribe] button:active {
  transform: translateY(1px);
}

.form-status {
  grid-column: 1 / -1;
  min-height: 1.6em;
  margin: var(--space-xs) 0 0;
  color: color-mix(in oklch, var(--color-on-dark) 70%, transparent);
  font-size: var(--text-sm);
}

.footer-social {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm) var(--space-lg);
}

.footer-social a {
  color: var(--color-on-dark);
  font-family: var(--font-display);
  font-size: var(--text-sm);
  text-decoration-color: var(--color-room-rule);
  white-space: nowrap;
}

.footer-social a:hover {
  color: var(--color-screen-soft);
}

.social-icon {
  display: inline-grid;
  position: relative;
  width: 2.7rem;
  height: 2.7rem;
  place-items: center;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: color-mix(in oklch, var(--color-on-dark) 72%, transparent) !important;
  font-family: var(--font-display) !important;
  font-size: var(--text-sm) !important;
  font-weight: 700;
  line-height: 1;
  text-decoration: none !important;
  transition: color var(--dur-short) var(--ease-out), transform var(--dur-micro) var(--ease-out);
}

.social-icon::before,
.social-icon::after {
  position: absolute;
  inset-inline: 0.42rem;
  height: 0.14rem;
  background: repeating-linear-gradient(90deg, currentColor 0 0.12rem, transparent 0.12rem 0.34rem);
  content: "";
  opacity: 1;
}

.social-icon::before { inset-block-start: var(--space-2xs); }
.social-icon::after { inset-block-end: var(--space-2xs); }

.social-icon-mark {
  position: relative;
  z-index: var(--z-raised);
  width: 1.15rem;
  height: 1.15rem;
  overflow: visible;
}

.social-icon--instagram .social-icon-mark {
  width: 1.2rem;
  height: 1.2rem;
}

.social-icon:hover,
.social-icon:focus-visible {
  color: var(--color-accent) !important;
}

.social-icon:active { transform: scale(0.94); }

.footer-meta {
  display: grid;
  gap: var(--space-md);
  padding-block-start: var(--space-lg);
  border-block-start: var(--rule-thin) solid var(--color-room-rule);
  color: color-mix(in oklch, var(--color-on-dark) 55%, transparent);
  font-size: var(--text-xs);
}

.footer-meta p {
  margin: 0;
}

.footer-version {
  position: absolute;
  inset-inline-end: clamp(var(--space-xl), 6vw, var(--space-3xl));
  inset-block-end: calc(var(--frame-bottom) + var(--space-xl));
  color: color-mix(in oklch, var(--color-on-dark) 35%, transparent);
  font-family: var(--font-display);
  font-size: var(--text-xs);
}

/* Progressive page transitions */
@view-transition {
  navigation: auto;
}

::view-transition-old(page-content) {
  animation: page-out 160ms var(--ease-in) both;
}

::view-transition-new(page-content) {
  animation: page-in 280ms var(--ease-out) both;
}

::view-transition-old(bff-logo),
::view-transition-new(bff-logo) {
  animation: none;
}

@keyframes page-out {
  to {
    opacity: 0;
    transform: translateY(calc(var(--space-xs) * -1));
  }
}

@keyframes page-in {
  from {
    opacity: 0;
    transform: translateY(var(--space-sm));
  }
}

body.is-navigating {
  cursor: progress;
}

/* Tablet and desktop */
@media (min-width: 40rem) {
  .inner {
    padding-inline: clamp(var(--space-xl), 6vw, var(--space-3xl));
  }

  .home-hero {
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(var(--space-xl), 6vw, var(--space-3xl));
  }

  .home-rabbit {
    width: clamp(15rem, 34vw, 23rem);
  }

  .home-copy {
    order: 1;
  }

  .showtime {
    grid-template-columns: minmax(7rem, 0.4fr) minmax(0, 1fr) auto;
    gap: var(--space-lg);
  }

  .showtime-title,
  .showtime-detail,
  .showtime-action {
    grid-row: 1;
  }

  .showtime-detail {
    grid-column: 2;
    font-size: var(--text-sm);
  }

  .showtime-action {
    grid-column: 3;
  }

  .contribute-roles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .contribute-roles li:nth-child(even) {
    padding-inline-start: var(--space-xl);
  }

  .sitemap-group {
    grid-template-columns: minmax(11rem, 0.32fr) minmax(0, 1fr);
  }

  .sitemap-group code {
    display: block;
  }

  .footer-inner {
    grid-template-columns: minmax(14rem, 0.8fr) minmax(18rem, 1.2fr);
  }

  .footer-links,
  .footer-meta {
    grid-column: 1 / -1;
  }

  form[data-subscribe] {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  form[data-subscribe] button {
    margin-block-start: 0;
    margin-inline-start: calc(var(--rule-thin) * -1);
  }

  .footer-meta {
    grid-template-columns: 1fr auto;
    align-items: end;
  }
}

@media (min-width: 52rem) {
  .nav-toggle {
    display: none;
  }

  .nav-current {
    display: inline-flex;
    margin-inline-end: auto;
  }

  .nav-menu {
    position: static;
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(var(--space-md), 2.5vw, var(--space-xl));
    margin-inline-start: 0;
    min-height: 0;
    max-height: none;
    padding: 0;
    overflow: visible;
    background: transparent;
    box-shadow: none;
    opacity: 1;
    pointer-events: auto;
    transform: none;
  }

  .nav-link,
  .nav-group > summary {
    min-height: var(--nav-height);
    font-size: clamp(var(--text-xs), 1.1vw, var(--text-sm));
  }

  .nav-link.active::after,
  .nav-group.active > summary::after {
    inset-block-end: var(--space-sm);
  }

  .nav-dropdown {
    position: absolute;
    inset-block-start: calc(100% - var(--space-xs));
    inset-inline-start: 50%;
    width: 18rem;
    padding: var(--space-xs);
    background: var(--color-room-raised);
    box-shadow: 0 1px 2px color-mix(in oklch, var(--color-room) 65%, transparent);
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, calc(var(--space-sm) * -1));
    transition: opacity var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out);
  }

  .nav-group[open] .nav-dropdown,
  .nav-group:focus-within .nav-dropdown {
    opacity: 1;
    pointer-events: auto;
    transform: translate(-50%, 0);
  }
}

@media (min-width: 60rem) and (hover: hover) and (pointer: fine) {
  /* main.js opens the hovered native details group and closes every sibling. */
  .showtime:hover {
    transform: translateX(var(--space-2xs));
  }
}

@media (max-width: 22rem) {
  .nav-toggle-label {
    display: none;
  }

  .nav-toggle {
    min-width: 2.75rem;
  }

  .showtime-detail {
    max-width: 13rem;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .route-state {
    display: none;
  }
}

/* Reel — press, blog, and the news chronicle. A film-reel reading page:
   paper screen, sprocket-edge details on the chronicle strip, showtime-style
   rows reused for consistency with the homepage programme. */
.reel-page .page-masthead {
  border-block-end-color: var(--color-ink);
}

.reel-nav {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs) var(--space-lg);
  margin-block-end: var(--space-2xl);
  padding-block-end: var(--space-md);
  border-block-end: var(--rule-thin) solid var(--color-rule);
}

.reel-nav a {
  color: var(--color-muted);
  font-family: var(--font-display);
  font-size: var(--text-xs);
  letter-spacing: 0.08em;
  text-decoration: none;
  text-transform: uppercase;
}

.reel-nav a:hover {
  color: var(--color-ink);
  text-decoration: underline;
  text-underline-offset: 0.3em;
}

.reel-section {
  margin-block-end: clamp(var(--space-3xl), 9vw, var(--space-4xl));
}

.reel-section > .section-label {
  margin-block-end: var(--space-2xs);
}

.reel-section > h2 {
  margin-block-start: 0;
  margin-block-end: var(--space-sm);
}

.reel-section > .reel-lede {
  max-width: var(--prose-max);
  margin-block-end: var(--space-xl);
  color: var(--color-muted);
}

.reel-empty {
  padding-block: var(--space-lg);
  border-block-start: var(--rule-thin) solid var(--color-rule);
  color: var(--color-muted);
  font-style: italic;
}

/* Reel posts and archive entries reuse the showtime-row rhythm on a paper ground. */
.reel-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  border-block-end: var(--rule-thin) solid var(--color-rule);
  list-style: none;
}

.reel-list li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-xs) var(--space-lg);
  margin: 0;
  padding-block: var(--space-md);
  border-block-start: var(--rule-thin) solid var(--color-rule);
}

.reel-list a {
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: var(--text-md);
  text-decoration: none;
  text-underline-offset: 0.3em;
}

.reel-list a:hover {
  text-decoration: underline;
}

.reel-list time {
  color: var(--color-muted);
  font-size: var(--text-xs);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

/* Chronicle: a film-strip motif — a faint sprocket edge on the leading side
   of each entry, restrained rather than literal, matching the "vintage
   screen" brief without reintroducing the removed global perforation band. */
.chronicle {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.chronicle-entry {
  position: relative;
  display: grid;
  grid-template-columns: minmax(6.5rem, auto) minmax(0, 1fr);
  gap: var(--space-xs) var(--space-lg);
  padding-block: var(--space-lg);
  padding-inline-start: var(--space-lg);
  border-block-start: var(--rule-thin) solid var(--color-rule);
}

.chronicle-entry:first-child {
  border-block-start: var(--rule-thin) solid var(--color-ink);
}

.chronicle-entry::before {
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  width: var(--space-2xs);
  background-image: radial-gradient(circle, var(--color-rule) 0.075rem, transparent 0.08rem);
  background-position: center;
  background-repeat: repeat-y;
  background-size: 100% var(--space-md);
  content: "";
}

.chronicle-date {
  color: var(--color-screen);
  font-family: var(--font-display);
  font-size: var(--text-xs);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.chronicle-source {
  display: block;
  margin-block-start: var(--space-3xs);
  color: var(--color-muted);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.chronicle-body {
  min-width: 0;
  max-width: var(--prose-max);
}

.chronicle-body p {
  margin: 0;
}

.chronicle-body a {
  color: var(--color-ink);
  text-decoration-color: color-mix(in oklch, var(--color-ink) 35%, transparent);
  text-underline-offset: 0.2em;
}

.chronicle-body a:hover {
  color: var(--color-screen);
  text-decoration-color: currentColor;
}

@media (min-width: 40rem) {
  .chronicle-entry {
    grid-template-columns: 8rem minmax(0, 1fr);
    gap: var(--space-lg);
  }
}

/* /cinema/ — ecosystem hub, film + company index rows and profile pages.
   Index-first macrostructure per design.md: categorized lists, visible
   status, minimal containment. Rows extend the .showtime rhythm rather than
   introducing a card component. */
.cinema-masthead-stats {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-lg) var(--space-2xl);
  margin-block: var(--space-xl) var(--space-2xl);
  padding-block-start: var(--space-lg);
  border-block-start: var(--rule-thin) solid var(--color-rule);
}

.cinema-stat {
  display: grid;
  gap: var(--space-3xs);
}

.cinema-stat-value {
  color: var(--color-screen);
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.cinema-stat-label {
  color: var(--color-muted);
  font-size: var(--text-xs);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.cinema-section-nav {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md) var(--space-xl);
  margin-block-end: var(--space-2xl);
}

.cinema-section-nav a {
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: var(--text-md);
  text-decoration: underline;
  text-decoration-color: color-mix(in oklch, var(--color-ink) 35%, transparent);
  text-underline-offset: 0.25em;
}

.cinema-section-nav a:hover {
  color: var(--color-screen);
  text-decoration-color: currentColor;
}

.cinema-index {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  border-block-end: var(--rule-thin) solid var(--color-rule);
  list-style: none;
}

.cinema-row {
  border-block-start: var(--rule-thin) solid var(--color-rule);
}

.cinema-row:first-child {
  border-block-start: var(--rule-thin) solid var(--color-ink);
}

.cinema-row-link {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-xs) var(--space-lg);
  padding-block: var(--space-md);
  color: var(--color-ink);
  text-decoration: none;
  transition: background-color var(--dur-short) var(--ease-out), padding-inline-start var(--dur-short) var(--ease-out);
}

.cinema-row-link:hover {
  padding-inline-start: var(--space-sm);
  background: var(--color-paper-2);
}

.cinema-row-title {
  font-family: var(--font-display);
  font-size: var(--text-md);
}

.cinema-row-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  color: var(--color-muted);
  font-size: var(--text-xs);
  letter-spacing: 0.03em;
  text-transform: uppercase;
  white-space: nowrap;
}

.cinema-status {
  color: var(--color-muted);
}

.cinema-status--released,
.cinema-status--active {
  color: var(--color-screen);
}

.cinema-status--in-production {
  color: var(--color-accent);
}

/* Single-page Cinema catalogue */
.cinema-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(13rem, 0.65fr);
  align-items: center;
  gap: var(--space-2xl);
  min-height: clamp(20rem, 45vw, 34rem);
  margin-block-end: var(--space-3xl);
  padding-block: var(--space-xl);
  border-block-end: var(--rule-thin) solid var(--color-ink);
}

.cinema-hero-copy {
  max-width: 38rem;
}

.cinema-hero-copy h1 {
  margin-block-end: var(--space-md);
  font-size: clamp(4rem, 12vw, 9rem);
  line-height: 0.88;
}

.cinema-hero-copy > p:last-child {
  max-width: 24rem;
  margin-block-end: 0;
  font-size: var(--text-lg);
}

.cinema-hero-art {
  position: relative;
  align-self: stretch;
  min-height: 18rem;
  margin: 0;
  overflow: hidden;
  background: var(--color-ink);
}

.cinema-hero-art img {
  position: absolute;
  inset: 8% 12% 0;
  width: 76%;
  height: 92%;
  object-fit: contain;
  object-position: center bottom;
  filter: drop-shadow(0 1rem 1.5rem color-mix(in oklch, var(--color-room) 32%, transparent));
}

.cinema-hero-art figcaption {
  position: absolute;
  inset-inline: var(--space-md);
  inset-block-end: var(--space-sm);
  color: var(--color-on-dark);
  font-size: var(--text-xs);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.cinema-featured-list {
  display: flex;
  gap: var(--space-md);
  margin-inline: calc(var(--space-md) * -1);
  padding-inline: var(--space-md);
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
}

.cinema-featured-list > .cinema-row {
  flex: 0 0 min(24rem, 72vw);
  scroll-snap-align: start;
  border-block: var(--rule-thin) solid var(--color-rule);
}

.cinema-featured-list > .cinema-row:first-child {
  border-block-start-color: var(--color-ink);
}

.cinema-featured-list .cinema-row-link {
  min-height: 10rem;
  align-content: space-between;
}

@media (max-width: 40rem) {
  .cinema-hero {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
    min-height: 0;
    padding-block: var(--space-lg);
  }

  .cinema-hero-copy h1 {
    font-size: clamp(4rem, 22vw, 7rem);
  }

  .cinema-hero-art {
    min-height: 15rem;
  }
}

.cinema-browser-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-lg);
}

.cinema-browser-heading h2 {
  margin-block-end: 0;
}

.cinema-browser-count {
  flex: 0 0 auto;
  margin-block-end: 0.35rem;
  color: var(--color-muted);
  font-size: var(--text-xs);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.cinema-browser-controls {
  display: grid;
  gap: var(--space-sm);
  margin-block: var(--space-lg);
  padding-block: var(--space-md);
  border-block: var(--rule-thin) solid var(--color-rule);
}

.cinema-search input {
  width: 100%;
  min-height: 2.75rem;
  padding: var(--space-sm) var(--space-md);
  border: var(--rule-thin) solid var(--color-rule);
  background: color-mix(in oklch, var(--color-paper) 72%, transparent);
  color: var(--color-ink);
}

.cinema-filter-group {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
}

.cinema-filter {
  padding: var(--space-xs) var(--space-sm);
  border: var(--rule-thin) solid var(--color-rule);
  background: transparent;
  color: var(--color-muted);
  cursor: pointer;
  font-size: var(--text-xs);
  text-transform: uppercase;
  transition: background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out);
}

.cinema-filter:hover,
.cinema-filter.is-active {
  background: var(--color-screen);
  color: var(--color-paper);
}

.cinema-browser-item[hidden] {
  display: none;
}

.cinema-row-description {
  max-width: 58rem;
  margin: calc(var(--space-sm) * -1) var(--space-md) var(--space-md);
  color: var(--color-muted);
  font-size: var(--text-sm);
}

.cinema-browser-empty {
  margin-block: var(--space-lg);
  color: var(--color-muted);
}

.roadshow-row .cinema-row-link {
  display: grid;
  grid-template-columns: minmax(12rem, 1fr) auto;
  gap: var(--space-sm) var(--space-lg);
}

.roadshow-row .cinema-row-description {
  grid-column: 1 / -1;
  margin-block: 0;
}

@media (max-width: 40rem) {
  .cinema-browser-heading {
    display: block;
  }

  .cinema-browser-count {
    margin-block-start: var(--space-sm);
  }

  .roadshow-row .cinema-row-link {
    grid-template-columns: 1fr;
  }
}

/* Film / company profile pages */
.cinema-poster {
  margin-block: var(--space-lg) var(--space-xl);
  text-align: center;
}

.cinema-poster img {
  max-width: 100%;
  height: auto;
  max-height: 60vh;
  object-fit: contain;
  background: var(--color-paper-2);
}

.cinema-poster figcaption {
  margin-block-start: var(--space-xs);
  color: var(--color-muted);
  font-size: var(--text-xs);
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.cinema-stills {
  margin-block: var(--space-xl) var(--space-2xl);
}

.cinema-stills .section-label {
  margin-block-end: var(--space-md);
  color: var(--color-muted);
  font-size: var(--text-xs);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.cinema-stills-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: var(--space-md);
}

.cinema-still {
  margin: 0;
}

.cinema-still img {
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
  object-fit: cover;
  background: var(--color-paper-2);
  border-radius: var(--radius-sm);
}

.cinema-still figcaption {
  margin-block-start: var(--space-xs);
  color: var(--color-muted);
  font-size: var(--text-xs);
  letter-spacing: 0.03em;
  text-transform: uppercase;
  text-align: center;
}

.cinema-profile-meta {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-sm) var(--space-xl);
  max-width: 48rem;
  margin-block: var(--space-xl) var(--space-2xl);
  padding-block: var(--space-lg);
  border-block: var(--rule-thin) solid var(--color-rule);
}

.cinema-profile-meta dt {
  color: var(--color-muted);
  font-size: var(--text-xs);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.cinema-profile-meta dd {
  margin: 0 0 var(--space-sm);
  font-size: var(--text-base);
}

.cinema-profile-meta dd:last-child {
  margin-block-end: 0;
}

.cinema-profile-section {
  max-width: 48rem;
  margin-block: var(--space-xl) var(--space-2xl);
}

.cinema-profile-list {
  margin-block: var(--space-md) 0;
  padding-inline-start: 1.25rem;
}

.cinema-profile-list li + li {
  margin-block-start: var(--space-sm);
}

.cinema-link-list {
  list-style: none;
  padding-inline-start: 0;
}

.cinema-link-list a {
  color: var(--color-ink);
  text-decoration: underline;
  text-underline-offset: 0.25em;
}

.cinema-trailer {
  margin-block: var(--space-xl) var(--space-2xl);
}

.cinema-trailer-embed {
  width: 100%;
  max-width: 48rem;
  aspect-ratio: 16 / 9;
  background: var(--color-ink);
}

.breakout .cinema-trailer-embed {
  max-width: 64rem;
  margin-inline: auto;
}

.cinema-trailer-embed iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.cinema-trailer-fallback {
  margin-block: var(--space-sm) 0;
  color: var(--color-muted);
  font-size: var(--text-sm);
}

.cinema-sources {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
  margin-block-start: var(--space-2xl);
  padding-block-start: var(--space-lg);
  border-block-start: var(--rule-thin) solid var(--color-rule);
}

.cinema-sources a {
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: var(--text-sm);
  text-decoration: underline;
  text-underline-offset: 0.25em;
}

.cinema-back {
  display: inline-block;
  margin-block-end: var(--space-xl);
  color: var(--color-muted);
  font-family: var(--font-display);
  font-size: var(--text-xs);
  letter-spacing: 0.06em;
  text-decoration: none;
  text-transform: uppercase;
}

.cinema-back:hover {
  color: var(--color-ink);
  text-decoration: underline;
}

@media (min-width: 36rem) {
  .cinema-profile-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Netflix/IMDb-style film hero */
.cinema-hero {
  position: relative;
  min-height: 55vh;
  max-height: 70vh;
  display: flex;
  align-items: flex-end;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  margin-block: calc(var(--nav-height) * -1) var(--space-3xl);
  padding-block-start: var(--nav-height);
  border-radius: 0 0 var(--radius-panel) var(--radius-panel);
  overflow: hidden;
}

.cinema-hero-gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    transparent 0%,
    transparent 30%,
    color-mix(in oklch, var(--color-room) 60%, transparent) 55%,
    var(--color-room) 95%
  );
  pointer-events: none;
}

.cinema-hero-inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--content-max);
  margin-inline: auto;
  padding: var(--space-xl) var(--frame-side) var(--space-3xl);
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--space-xl);
  align-items: end;
}

.cinema-hero-poster {
  flex: 0 0 auto;
  margin: 0;
}

.cinema-hero-poster img {
  width: clamp(120px, 18vw, 200px);
  height: auto;
  aspect-ratio: 2/3;
  object-fit: cover;
  border-radius: var(--radius-panel);
  box-shadow: 0 24px 48px -12px color-mix(in oklch, var(--color-room) 80%, transparent);
  background: var(--color-paper-2);
}

.cinema-hero-poster figcaption {
  margin-block-start: var(--space-xs);
  color: var(--color-muted);
  font-size: var(--text-xs);
  letter-spacing: 0.03em;
  text-transform: uppercase;
  text-align: center;
}

.cinema-hero-meta {
  min-width: 0;
}

.cinema-hero-type {
  margin: 0 0 var(--space-xs);
  color: var(--color-screen-soft);
  font-family: var(--font-display);
  font-size: var(--text-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.cinema-hero-title {
  margin: 0 0 var(--space-md);
  font-family: var(--font-display);
  font-size: var(--text-3xl);
  font-weight: 400;
  line-height: 1.1;
  color: var(--color-on-dark);
  max-width: 50ch;
}

.cinema-hero-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
  margin-block-end: var(--space-md);
}

.chip {
  display: inline-flex;
  align-items: center;
  padding: var(--space-2xs) var(--space-sm);
  font-family: var(--font-display);
  font-size: var(--text-xs);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: color-mix(in oklch, var(--color-room) 85%, transparent);
  border: var(--rule-thin) solid var(--color-rule);
  border-radius: var(--radius-control);
  color: var(--color-on-dark);
  white-space: nowrap;
}

.chip--runtime { border-color: var(--color-accent); }
.chip--country { border-color: var(--color-screen); }
.chip--platform { border-color: var(--color-muted); }

.cinema-hero-synopsis {
  margin: 0;
  max-width: 60ch;
  color: var(--color-on-dark);
  font-size: var(--text-base);
  line-height: 1.6;
  opacity: 0.9;
}

/* Cast rail — horizontal scroll like Netflix/IMDb */
.cinema-cast {
  max-width: var(--content-max);
  margin-inline: auto;
  padding-inline: var(--frame-side);
  margin-block-end: var(--space-2xl);
}

.cinema-cast .section-label {
  margin-block-end: var(--space-md);
  color: var(--color-muted);
  font-family: var(--font-display);
  font-size: var(--text-xs);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.cinema-cast-list {
  display: flex;
  gap: var(--space-sm);
  overflow-x: auto;
  padding-block-end: var(--space-xs);
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--color-rule) transparent;
}

.cinema-cast-list::-webkit-scrollbar {
  height: 6px;
}

.cinema-cast-list::-webkit-scrollbar-track {
  background: transparent;
}

.cinema-cast-list::-webkit-scrollbar-thumb {
  background: var(--color-rule);
  border-radius: 3px;
}

.cinema-cast-item {
  flex: 0 0 auto;
  scroll-snap-align: start;
  padding: var(--space-2xs) var(--space-md);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--color-ink);
  background: var(--color-paper-2);
  border: var(--rule-thin) solid var(--color-rule);
  border-radius: var(--radius-panel);
  white-space: nowrap;
  transition: border-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out);
}

.cinema-cast-item:hover {
  border-color: var(--color-screen);
  color: var(--color-screen);
}

/* Adjustments when hero is present */
.cinema-profile .cinema-stills,
.cinema-profile .cinema-profile-meta,
.cinema-profile .cinema-profile-section,
.cinema-profile .cinema-trailer {
  max-width: var(--content-max);
  margin-inline: auto;
  padding-inline: var(--frame-side);
}

.cinema-profile .cinema-stills .section-label,
.cinema-profile .cinema-profile-section .section-label,
.cinema-profile .cinema-trailer .section-label {
  color: var(--color-muted);
  font-family: var(--font-display);
  font-size: var(--text-xs);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* Back link positioning inside hero */
.cinema-hero + .cinema-back {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 150ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 150ms !important;
  }

  .hero-enter {
    opacity: 1;
    transform: none;
  }

  ::view-transition-old(page-content),
  ::view-transition-new(page-content) {
    animation: none;
  }
}

/* BFF’26 page: restored from the public guest page, scoped to this edition only. */
.edition-page--bff26 .hero-wrap {

  background-image: linear-gradient(color-mix(in oklch, var(--color-paper) 78.0%, transparent), color-mix(in oklch, var(--color-paper) 90.0%, transparent)), url('../../26/26-assets/photos/bff25-143-bg.jpg');
  background-size: cover; background-position: center;

}
.edition-page--bff26 #warsaw {

  background-image: linear-gradient(color-mix(in oklch, var(--color-ink) 80.0%, transparent), color-mix(in oklch, var(--color-ink) 90.0%, transparent)), url('../../26/26-assets/photos/bff25-72-bg.jpg');
  background-size: cover; background-position: center; background-attachment: fixed;

}
.edition-page--bff26 #bff-friends {

  background-image: linear-gradient(color-mix(in oklch, var(--color-paper) 84.0%, transparent), color-mix(in oklch, var(--color-paper) 93.0%, transparent)), url('../../26/26-assets/photos/bff25-23-bg.jpg');
  background-size: cover; background-position: center;

}
.edition-page--bff26 .hero-logo {
 display: block; height: clamp(34px, 5vw, 56px); width: auto; margin-bottom: 0.9rem;
}
.edition-page--bff26 .topbanner {

  display: block;
  text-align: center;
  text-decoration: none;
  background: var(--color-accent);
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: clamp(0.8rem, 1.4vw, 1rem);
  letter-spacing: 0.04em;
  padding: 0.6rem 1rem;
  line-height: 1.4;

}
.edition-page--bff26 .topbanner:hover {
 background: var(--color-accent); color: var(--color-ink);
}
.edition-page--bff26 .topbanner strong {
 font-weight: 700;
}
.edition-page--bff26 .topbanner .arrow {
 font-weight: 700;
}
.edition-page--bff26 .topbanner .past {
 opacity: 0.78;
}
@media (max-width: 560px) {
.edition-page--bff26 .topbanner .past {
 display: block;
}
}
.edition-page--bff26 .bff-name {
 color: var(--color-ink);
}
.edition-page--bff26 .section-label {

  font-family: var(--font-body);
  font-size: var(--text-xs);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--color-screen);
  margin-bottom: 0.5rem;

}
.edition-page--bff26 .muted {
 color: var(--color-muted); font-size: var(--text-sm);
}
.edition-page--bff26 .hero-wrap {
 background: var(--color-paper); color: var(--color-ink); position: relative; overflow: hidden;
}
.edition-page--bff26 .hero {

  padding-top: clamp(1.5rem, 3.5vw, 2.5rem);
  padding-bottom: clamp(1.5rem, 3vw, 2rem);
  position: relative;

}
.edition-page--bff26 .hero-rabbit {

  position: absolute;
  right: clamp(0.5rem, 3vw, 3rem);
  bottom: 0;
  width: clamp(125px, 16vw, 245px);
  pointer-events: none;
  opacity: 1;
  z-index: 0;

}
.edition-page--bff26 .hero-rabbit img {
 width: 100%; height: auto; display: block;
}
.edition-page--bff26 .hero > * {
 position: relative; z-index: 1;
}
@media (max-width: 760px) {
.edition-page--bff26 .hero-rabbit {
 width: 86px; right: 0.5rem; opacity: 0.9;
}
}
.edition-page--bff26 .hero-pitch {

  font-family: var(--font-display);
  font-size: clamp(1.5rem, 3.5vw, 2.5rem);
  color: var(--color-screen);
  margin: 0.5rem 0 1.25rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;

}
.edition-page--bff26 .hero-when {
 font-size: clamp(1rem, 1.4vw, 1.2rem); margin-bottom: 1.25rem;
}
.edition-page--bff26 .hero-when strong {
 color: var(--color-screen);
}
.edition-page--bff26 .intro {
 margin-top: 1rem; font-size: clamp(0.95rem, 1.2vw, 1.1rem); max-width: 58ch; line-height: 1.6;
}
.edition-page--bff26 .hero-perk {

  display: inline-block; margin: 0.85rem 0 0;
  font-size: clamp(0.78rem, 0.95vw, 0.9rem); color: var(--color-ink-2);
  background: color-mix(in oklch, var(--color-accent) 14.0%, transparent); border-left: 3px solid var(--color-accent);
  padding: 0.45rem 0.7rem; max-width: 55ch;

}
.edition-page--bff26 .hero-perk strong {
 color: var(--color-ink);
}
.edition-page--bff26 .hero-wrap .hero.inner {
 max-width: 1320px;
}
.edition-page--bff26 .hero-title-row {

  display: grid;
  grid-template-columns: minmax(160px, 1fr) auto minmax(160px, 1fr);
  gap: clamp(0.8rem, 2.5vw, 2.5rem);
  align-items: center;
  margin: 0.4rem 0 0.2rem;

}
.edition-page--bff26 .hero-title-row h1 {
 margin: 0; color: var(--color-ink); font-size: clamp(1.8rem, 4.6vw, 3.4rem); line-height: 1; white-space: nowrap;
}
.edition-page--bff26 .hero-title-row .spacer {
 width: 100%;
}
.edition-page--bff26 .hero-date-block {
 font-family: var(--font-display); line-height: 1.15; text-align: right;
}
.edition-page--bff26 .hero-date-block strong {
 color: var(--color-screen); display: block; font-size: clamp(1rem, 1.8vw, 1.5rem); letter-spacing: 0.02em; white-space: nowrap;
}
.edition-page--bff26 .hero-date-block .where {
 display: block; font-size: clamp(0.85rem, 1.2vw, 1.05rem); color: var(--color-ink); margin-top: 0.15rem; white-space: nowrap;
}
.edition-page--bff26 .hero-date-block a {
 color: var(--color-ink); text-decoration: underline; text-decoration-color: rgba(0,0,0,0.25); text-underline-offset: 3px;
}
.edition-page--bff26 .hero-date-block a:hover {
 text-decoration-color: currentColor;
}
.edition-page--bff26 .hero-cta-row3 {

  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: clamp(0.8rem, 2.2vw, 2rem);
  align-items: center;
  margin: 1.4rem 0 0.9rem;

}
.edition-page--bff26 .hero-cta-row3 > .btn-big {
 justify-self: center;
}
.edition-page--bff26 .hero-cta-row3 .hero-perk {
 margin: 0; max-width: 100%;
}
@media (max-width: 820px) {
.edition-page--bff26 .hero-title-row {
 grid-template-columns: 1fr; gap: 0.4rem;
}
.edition-page--bff26 .hero-title-row .spacer {
 display: none;
}
.edition-page--bff26 .hero-date-block {
 text-align: center;
}
.edition-page--bff26 .hero-cta-row3 {
 grid-template-columns: 1fr; gap: 0.7rem;
}
.edition-page--bff26 .hero-cta-row3 .spacer {
 display: none;
}
}
.edition-page--bff26 .btn {

  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  font-family: var(--font-body); font-size: var(--text-sm); font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.14em;
  padding: 0.7rem 1.2rem;
  border: 1px solid var(--color-screen); color: var(--color-screen); background: transparent;
  transition: all 0.15s; text-decoration: none; cursor: pointer;

}
.edition-page--bff26 .btn:hover {
 background: var(--color-screen); color: var(--color-paper);
}
.edition-page--bff26 .btn-primary {
 background: var(--color-screen); color: var(--color-paper);
}
.edition-page--bff26 .btn-primary:hover {
 background: var(--color-screen-bright); border-color: var(--color-screen-bright); color: var(--color-paper);
}
.edition-page--bff26 .btn-big {
 padding: 0.95rem 1.6rem; font-size: clamp(0.85rem, 1.05vw, 1rem);
}
.edition-page--bff26 .curtain {
 height: var(--space-lg); background: var(--color-room); width: 100%;
}
.edition-page--bff26 .band {
 background: var(--color-paper); scroll-margin-top: calc(var(--nav-height) + 1rem);
}
.edition-page--bff26 .band.dark {
 background: var(--color-room-raised); color: var(--color-paper);
}
.edition-page--bff26 .band.dark a {
 color: var(--color-screen-soft);
}
.edition-page--bff26 .band.dark a:hover {
 color: var(--color-paper);
}
.edition-page--bff26 .band.dark .muted {
 color: color-mix(in oklch, var(--color-paper) 65.0%, transparent);
}
.edition-page--bff26 .band.dark .section-label {
 color: var(--color-screen-soft);
}
.edition-page--bff26 .band.dark .bff-name {
 color: var(--color-paper);
}
.edition-page--bff26 .band.dark h1,
.edition-page--bff26 .band.dark h2,
.edition-page--bff26 .band.dark h3,
.edition-page--bff26 .band.dark h4 {
 color: var(--color-paper);
}
.edition-page--bff26 details.section {
 border: 0;
}
.edition-page--bff26 details.section > summary {

  list-style: none; cursor: pointer;
  padding: clamp(1.25rem, 3vw, 2.25rem) 0;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;

}
.edition-page--bff26 details.section > summary::-webkit-details-marker {
 display: none;
}
.edition-page--bff26 .summary-title {
 display: flex; flex-direction: column; gap: 0.35rem;
}
.edition-page--bff26 .summary-title h2 {
 margin: 0;
}
.edition-page--bff26 .summary-title .teaser {
 font-size: var(--text-sm); color: var(--color-muted); letter-spacing: 0.06em;
}
.edition-page--bff26 .band.dark .summary-title .teaser {
 color: color-mix(in oklch, var(--color-paper) 65.0%, transparent);
}
.edition-page--bff26 .chev {

  font-family: var(--font-display); font-size: clamp(1.2rem, 2vw, 1.8rem);
  color: var(--color-screen); flex: 0 0 auto; transition: transform 0.2s; user-select: none;

}
.edition-page--bff26 .band.dark .chev {
 color: var(--color-screen-soft);
}
.edition-page--bff26 details.section[open] > summary .chev {
 transform: rotate(45deg);
}
.edition-page--bff26 details.section > .body {
 padding: 0 0 clamp(1.5rem, 3vw, 2.5rem); animation: fadein 0.25s ease-out; position: relative;
}
@keyframes fadein {
 from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; }
}
.edition-page--bff26 details.sub {
 border-top: 1px dashed color-mix(in oklch, var(--color-ink) 12%, transparent); padding: clamp(0.4rem, 1vw, 0.8rem) 0;
}
.edition-page--bff26 .band.dark details.sub {
 border-top-color: color-mix(in oklch, var(--color-on-dark) 10%, transparent);
}
.edition-page--bff26 details.sub > summary {

  list-style: none; cursor: pointer; padding: 0.6rem 0;
  display: flex; align-items: center; justify-content: space-between; gap: 0.75rem;

}
.edition-page--bff26 details.sub > summary::-webkit-details-marker {
 display: none;
}
.edition-page--bff26 details.sub > summary h3 {

  margin: 0; color: var(--color-screen);
  font-size: clamp(0.95rem, 1.4vw, 1.15rem);
  text-transform: uppercase; letter-spacing: 0.08em;

}
.edition-page--bff26 .band.dark details.sub > summary h3 {
 color: var(--color-screen-soft);
}
.edition-page--bff26 details.sub > summary .chev-sm {

  font-family: var(--font-display); color: var(--color-screen); font-size: 1.05rem; transition: transform 0.2s;

}
.edition-page--bff26 .band.dark details.sub > summary .chev-sm {
 color: var(--color-screen-soft);
}
.edition-page--bff26 details.sub[open] > summary .chev-sm {
 transform: rotate(45deg);
}
.edition-page--bff26 details.sub > .body-sub {
 padding: 0.4rem 0 0.85rem;
}
.edition-page--bff26 details.sub.featured {

  border-top: 1px solid var(--color-screen);
  background: color-mix(in oklch, var(--color-screen) 6.0%, transparent);
  padding: 0.2rem 0.6rem; margin: 0.5rem 0;

}
.edition-page--bff26 .band.dark details.sub.featured {
 background: color-mix(in oklch, var(--color-screen) 12.0%, transparent);
}
.edition-page--bff26 details.sub.featured > summary h3 {
 font-size: clamp(1.05rem, 1.6vw, 1.3rem);
}
.edition-page--bff26 details.sub.featured-mk {

  border-top: 1px solid var(--color-accent);
  background: color-mix(in oklch, var(--color-accent) 7.0%, transparent);
  padding: 0.2rem 0.6rem; margin: 0.5rem 0;

}
.edition-page--bff26 .band.dark details.sub.featured-mk {
 background: color-mix(in oklch, var(--color-accent) 14.0%, transparent);
}
.edition-page--bff26 details.sub.featured-mk > summary h3 {
 color: var(--color-accent); font-size: clamp(1.05rem, 1.6vw, 1.3rem);
}
.edition-page--bff26 .band.dark details.sub.featured-mk > summary h3 {
 color: var(--color-accent);
}
.edition-page--bff26 details.sub.featured-mk > summary .chev-sm {
 color: var(--color-accent);
}
.edition-page--bff26 .band.dark details.sub.featured-mk > summary .chev-sm {
 color: var(--color-accent);
}
.edition-page--bff26 details.sub.featured-mk a {
 color: var(--color-accent);
}
.edition-page--bff26 .band.dark details.sub.featured-mk a {
 color: var(--color-accent);
}
.edition-page--bff26 .satellite-graphic {
 margin: 0 0 1rem; border-radius: 6px; overflow: hidden; background: var(--color-ink); line-height: 0;
}
.edition-page--bff26 .satellite-graphic img {
 display: block; width: 100%; height: auto;
}
.edition-page--bff26 .satellite-list {
 list-style: none; padding: 0; margin: 0.7rem 0 0; display: grid; gap: 0.7rem;
}
.edition-page--bff26 .satellite-list li {
 padding: 0.7rem 0.9rem; background: color-mix(in oklch, var(--color-screen) 7.0%, transparent); border-left: 3px solid var(--color-screen-soft); border-radius: 4px; line-height: 1.5;
}
.edition-page--bff26 .band.dark .satellite-list li {
 background: color-mix(in oklch, var(--color-screen) 11.0%, transparent);
}
.edition-page--bff26 .satellite-list strong {
 font-family: var(--font-display); letter-spacing: 0.02em;
}
.edition-page--bff26 .satellite-list em {
 font-style: italic; color: color-mix(in oklch, var(--color-paper) 65.0%, transparent); margin-left: 0.3rem; font-size: 0.92em;
}
.edition-page--bff26 .band:not(.dark) .satellite-list em {
 color: var(--color-muted);
}
.edition-page--bff26 .mk-callout {

  background: color-mix(in oklch, var(--color-accent) 10.0%, transparent);
  border-left: 3px solid var(--color-accent);
  padding: 0.8rem 1rem; margin: 0.75rem 0;

}
.edition-page--bff26 .disclaimer {

  background: color-mix(in oklch, var(--color-screen) 10.0%, transparent);
  border-left: 3px solid var(--color-screen);
  padding: 0.75rem 1rem;
  margin: 0.5rem 0 1.25rem;
  font-size: var(--text-sm);

}
.edition-page--bff26 .band.dark .disclaimer {
 background: color-mix(in oklch, var(--color-screen) 16.0%, transparent);
}
.edition-page--bff26 .agenda-wide {

  width: calc(100vw - 2 * var(--frame-side));
  position: relative; left: 50%; transform: translateX(-50%);
  margin: 1rem 0 1.5rem; padding: 0 clamp(0.5rem, 1.5vw, 1.5rem);

}
.edition-page--bff26 .agenda-grid {
 display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(0.5rem, 1vw, 1rem);
}
@media (max-width: 900px) {
.edition-page--bff26 .agenda-grid {
 grid-template-columns: 1fr 1fr;
}
}
@media (max-width: 560px) {
.edition-page--bff26 .agenda-grid {
 grid-template-columns: 1fr;
}
}
.edition-page--bff26 .day-col {
 background: color-mix(in oklch, var(--color-on-dark) 10.0%, transparent); border: 1px solid color-mix(in oklch, var(--color-on-dark) 18.0%, transparent); padding: 1rem;
}
.edition-page--bff26 .day-date {

  font-family: var(--font-display); font-size: clamp(0.78rem, 1vw, 0.95rem);
  color: var(--color-screen-soft); letter-spacing: 0.18em; text-transform: uppercase; margin-bottom: 0.4rem;

}
.edition-page--bff26 .day-date .tagday {

  display: inline-block; background: var(--color-screen); color: var(--color-paper);
  padding: 0.08rem 0.4rem; margin-left: 0.3rem; font-size: 0.7em; letter-spacing: 0.14em;

}
.edition-page--bff26 .day-head {

  font-family: var(--font-display); letter-spacing: 0.04em; text-transform: uppercase;
  font-size: clamp(1.2rem, 2.4vw, 2rem); margin-bottom: 0.3rem; color: var(--color-paper); line-height: 1;

}
.edition-page--bff26 .day-list {
 list-style: none; padding: 0; margin: 0.5rem 0 0; position: relative; z-index: 1;
}
.edition-page--bff26 .day-list li {

  padding: 0.45rem 0; border-top: 1px dashed color-mix(in oklch, var(--color-on-dark) 10%, transparent);
  font-size: var(--text-sm); display: grid; grid-template-columns: 3.4rem 1fr; gap: 0.55rem; align-items: baseline;

}
.edition-page--bff26 .day-list li:first-child {
 border-top: 0; padding-top: 0.25rem;
}
.edition-page--bff26 .day-list li .time {

  color: var(--color-screen-soft); font-weight: 700; letter-spacing: 0.04em;
  font-size: var(--text-xs); font-family: var(--font-body);

}
.edition-page--bff26 .day-list li .what {

  color: var(--color-paper); font-family: var(--font-display);
  letter-spacing: 0.02em; font-size: clamp(0.82rem, 1vw, 0.95rem); line-height: 1.2;
  overflow-wrap: anywhere; word-break: break-word; min-width: 0;

}
.edition-page--bff26 .day-list li .what .kind {

  display: block; font-family: var(--font-body); font-size: var(--text-xs);
  letter-spacing: 0.12em; text-transform: uppercase; color: color-mix(in oklch, var(--color-paper) 55.0%, transparent); margin-top: 0.1rem;

}
.edition-page--bff26 .day-list li .what .venue {

  display: inline; font-family: var(--font-body); font-size: 0.88em;
  letter-spacing: 0.02em; color: color-mix(in oklch, var(--color-paper) 65.0%, transparent); margin-left: 0.35em; font-style: italic;
  text-transform: none;

}
.edition-page--bff26 .day-list li .what .venue a {
 color: inherit; text-decoration: none;
}
.edition-page--bff26 .day-list li .what .venue a:hover {
 text-decoration: underline; text-decoration-color: currentColor;
}
.edition-page--bff26 .day-list li.band-label .block-title .venue {
 display: inline; font-style: italic; letter-spacing: 0.04em; color: inherit; opacity: 0.85; margin-left: 0.35em; text-transform: none; font-size: 0.88em;
}
.edition-page--bff26 .day-list li.band-label .block-title .venue a {
 color: inherit; text-decoration: none;
}
.edition-page--bff26 .day-list li.band-label .block-title .venue a:hover {
 text-decoration: underline; text-decoration-color: currentColor;
}
.edition-page--bff26 .day-list li.band-label {

  display: flex; align-items: center; background: color-mix(in oklch, var(--color-screen) 12.0%, transparent);
  margin: 0.4rem 0; padding: 0.4rem 0; border-top: 0;
  font-family: var(--font-display); font-size: var(--text-xs);
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-screen-soft);

}
.edition-page--bff26 .day-list li.band-label .time {

  width: 3.4rem; flex-shrink: 0; color: var(--color-screen-soft);

}
.edition-page--bff26 .day-list li.band-label .block-title {

  flex: 1; text-align: center; padding-right: 3.4rem;

}
.edition-page--bff26 .day-list li.band-label.gala {
 background: color-mix(in oklch, var(--color-accent) 18.0%, transparent); color: var(--color-accent);
}
.edition-page--bff26 .day-list li.band-label.gala .time,
.edition-page--bff26 .day-list li.band-label.gala .block-title {
 color: var(--color-accent);
}
.edition-page--bff26 .day-list li.band-label.break {

  background: transparent; color: color-mix(in oklch, var(--color-paper) 55.0%, transparent);
  padding: 0.3rem 0; margin: 0.15rem 0; letter-spacing: 0.16em;

}
.edition-page--bff26 .day-list li.band-label.break .time,
.edition-page--bff26 .day-list li.band-label.break .block-title {
 color: color-mix(in oklch, var(--color-paper) 55.0%, transparent);
}
.edition-page--bff26 .day-list li.block {

  display: block; padding: 0.25rem 0 0.45rem; margin: 0.45rem 0;
  border-top: 0; border-radius: 6px; background: color-mix(in oklch, var(--color-screen) 10.0%, transparent);

}
.edition-page--bff26 .day-list li.block.gala-block {
 background: rgba(255,140,60,0.14);
}
.edition-page--bff26 .day-list li.block > ul {
 list-style: none; padding: 0; margin: 0;
}
.edition-page--bff26 .day-list li.block > ul > li {
 border-top: 1px dashed color-mix(in oklch, var(--color-paper) 10.0%, transparent); padding: 0.38rem 0; display: grid; grid-template-columns: 1fr; gap: 0.55rem; align-items: baseline; font-size: var(--text-sm);
}
.edition-page--bff26 .day-list li.block > ul > li:first-child {
 border-top: 0; padding-top: 0.15rem;
}
.edition-page--bff26 .day-list li.block > ul > li.band-label {

  background: color-mix(in oklch, var(--color-screen) 22.0%, transparent); border-top: 0;
  margin: 0 0 0.35rem; padding: 0.45rem 0;

}
.edition-page--bff26 .day-list li.block > ul > li.screening {
 padding-left: 0.7rem;
}
.edition-page--bff26 .day-list li.block.gala-block > ul > li.band-label {
 background: rgba(255,140,60,0.26); color: var(--color-accent);
}
.edition-page--bff26 .day-list li.block.gala-block > ul > li.band-label .time,
.edition-page--bff26 .day-list li.block.gala-block > ul > li.band-label .block-title {
 color: var(--color-accent);
}
.edition-page--bff26 .day-list li.screening {

  grid-template-columns: 1fr; padding: 0.32rem 0 0.32rem 0.7rem;
  border-top: 1px dashed color-mix(in oklch, var(--color-on-dark) 10%, transparent);

}
.edition-page--bff26 .day-list li.screening .what::before {
 content: "▸ "; color: var(--color-screen-soft);
}
.edition-page--bff26 .day-list li[data-tip] {
 cursor: help;
}
.edition-page--bff26 .day-list li.party {
 background: rgba(168,85,247,0.22); border-top-color: transparent; border-radius: 4px; padding-left: 0.55rem; padding-right: 0.4rem;
}
.edition-page--bff26 .day-list li.party .time {
 color: #d6b4fe;
}
.edition-page--bff26 .day-list li.tour,
.edition-page--bff26 .day-list li.activity {
 background: rgba(45,212,191,0.18); border-top-color: transparent; border-radius: 4px; padding-left: 0.55rem; padding-right: 0.4rem;
}
.edition-page--bff26 .day-list li.tour .time,
.edition-page--bff26 .day-list li.activity .time {
 color: #5eead4;
}
.edition-page--bff26 .day-list li.outdoor {
 background: rgba(251,191,36,0.22); border-top-color: transparent; border-radius: 4px; padding-left: 0.55rem; padding-right: 0.4rem;
}
.edition-page--bff26 .day-list li.outdoor .time {
 color: #fbbf24;
}
.edition-page--bff26 .day-list li.outdoor .what .kind {
 color: rgba(251,191,36,0.75);
}
.edition-page--bff26 .day-list li.mk-row {
 background: color-mix(in oklch, var(--color-accent) 16.0%, transparent); border-top-color: transparent; border-radius: 4px; padding-left: 0.55rem; padding-right: 0.4rem;
}
.edition-page--bff26 .day-list li.mk-row .time {
 color: var(--color-accent);
}
.edition-page--bff26 .day-list li.mk-row .venue a {
 color: var(--color-accent);
}
.edition-page--bff26 .trezor-mark {
 height: 1.7em; width: auto; vertical-align: -0.5em; margin: 0 0.1em; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.35));
}
.edition-page--bff26 .goodie-ic .trezor-mark {
 height: 2.6em; vertical-align: middle;
}
.edition-page--bff26 .photo img,
.edition-page--bff26 .photo-row img,
.edition-page--bff26 .closing-photo img {
 transition: transform 0.35s ease, filter 0.35s ease;
}
.edition-page--bff26 .photo,
.edition-page--bff26 .closing-photo {
 overflow: hidden;
}
.edition-page--bff26 .photo img:hover,
.edition-page--bff26 .photo-row img:hover,
.edition-page--bff26 .closing-photo img:hover {
 transform: scale(1.04); filter: brightness(1.06);
}
.edition-page--bff26 .closing-photo {
 width: calc(100vw - 2 * var(--frame-side)); position: relative; left: 50%; transform: translateX(-50%); margin: 2.2rem 0 0;
}
.edition-page--bff26 .closing-photo img {
 width: 100%; height: clamp(220px, 38vh, 420px); object-fit: cover; display: block;
}
.edition-page--bff26 .closing-photo figcaption {
 text-align: center; font-size: var(--text-sm); color: var(--color-muted); padding: 0.5rem 1rem;
}
.edition-page--bff26 .program-grid {

  display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
  gap: clamp(0.7rem, 1.4vw, 1.2rem); margin-top: 1rem;

}
.edition-page--bff26 .program-item {
 background: color-mix(in oklch, var(--color-on-dark) 5.0%, transparent); border: 1px solid color-mix(in oklch, var(--color-on-dark) 10%, transparent); padding: 1rem 1.1rem;
}
.edition-page--bff26 .band:not(.dark) .program-item {
 background: var(--color-paper-2); border-color: color-mix(in oklch, var(--color-ink) 12%, transparent);
}
.edition-page--bff26 .program-item .title {

  font-family: var(--font-display); font-size: clamp(0.95rem, 1.2vw, 1.1rem);
  line-height: 1.2; margin-bottom: 0.5rem; color: var(--color-paper);

}
.edition-page--bff26 .band:not(.dark) .program-item .title {
 color: var(--color-ink);
}
.edition-page--bff26 .program-item .desc {
 font-size: var(--text-sm); line-height: 1.5; color: color-mix(in oklch, var(--color-paper) 85.0%, transparent);
}
.edition-page--bff26 .band:not(.dark) .program-item .desc {
 color: var(--color-ink-2);
}
.edition-page--bff26 .program-item .meta {

  font-size: var(--text-xs); letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--color-screen-soft); margin-top: 0.6rem;

}
.edition-page--bff26 .band:not(.dark) .program-item .meta {
 color: var(--color-screen);
}
.edition-page--bff26 .callout {
 background: color-mix(in oklch, var(--color-screen) 8.0%, transparent); border-left: 3px solid var(--color-screen); padding: 1rem 1.25rem; margin: 1rem 0;
}
.edition-page--bff26 .band.dark .callout {
 background: color-mix(in oklch, var(--color-screen) 15.0%, transparent);
}
.edition-page--bff26 .prize-pool {

  display: inline-block; font-family: var(--font-display);
  font-size: clamp(1.4rem, 3.5vw, 2.4rem); color: var(--color-screen-soft);
  letter-spacing: 0.04em; padding: 0.5rem 1rem; border: 2px solid var(--color-screen); margin: 0.75rem 0;

}
.edition-page--bff26 .band:not(.dark) .prize-pool {
 color: var(--color-screen);
}
.edition-page--bff26 .ticket-card {

  background: var(--color-paper-2); border: 1px solid var(--color-screen);
  padding: clamp(1.25rem, 2.5vw, 2rem); margin-top: 0.75rem;
  display: grid; grid-template-columns: 1fr auto; gap: 1.5rem; align-items: center;

}
.edition-page--bff26 .band.dark .ticket-card {
 background: color-mix(in oklch, var(--color-on-dark) 5.0%, transparent);
}
.edition-page--bff26 .ticket-card.free {
 border-color: var(--color-muted);
}
.edition-page--bff26 .band.dark .ticket-card.free {
 border-color: color-mix(in oklch, var(--color-on-dark) 10%, transparent);
}
.edition-page--bff26 .ticket-card.free {
 background: color-mix(in oklch, var(--color-accent) 10.0%, transparent); border-color: color-mix(in oklch, var(--color-accent) 45.0%, transparent);
}
.edition-page--bff26 .band.dark .ticket-card.free {
 background: color-mix(in oklch, var(--color-accent) 12.0%, transparent); border-color: color-mix(in oklch, var(--color-accent) 40.0%, transparent);
}
.edition-page--bff26 .ticket-price {
 font-family: var(--font-display); font-size: clamp(1.7rem, 4vw, 3rem); color: var(--color-screen); line-height: 1;
}
.edition-page--bff26 .ticket-price small {

  display: block; font-family: var(--font-body); font-size: var(--text-sm);
  color: var(--color-muted); letter-spacing: 0.15em; margin-top: 0.4rem;

}
.edition-page--bff26 .band.dark .ticket-price {
 color: var(--color-screen-soft);
}
.edition-page--bff26 .band.dark .ticket-price small {
 color: color-mix(in oklch, var(--color-paper) 60.0%, transparent);
}
.edition-page--bff26 .ticket-card h3 {
 margin-bottom: 0.35rem;
}
@media (max-width: 560px) {
.edition-page--bff26 .ticket-card {
 grid-template-columns: 1fr;
}
}
.edition-page--bff26 .recap-stats {

  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem; margin-top: 0.75rem;

}
.edition-page--bff26 .recap-stat {

  background: var(--color-paper-2); border: 1px solid color-mix(in oklch, var(--color-accent) 45.0%, transparent);
  padding: clamp(0.9rem, 2vw, 1.25rem); text-align: center;
  display: flex; flex-direction: column; gap: 0.3rem;

}
.edition-page--bff26 .recap-stat .n {
 font-family: var(--font-display); font-size: clamp(1.6rem, 4vw, 2.4rem); color: var(--color-screen); line-height: 1;
}
.edition-page--bff26 .recap-stat .l {
 font-size: var(--text-sm); color: var(--color-muted);
}
@media (max-width: 560px) {
.edition-page--bff26 .recap-stats {
 grid-template-columns: repeat(2, 1fr);
}
}
.edition-page--bff26 .recap-highlights {
 list-style: none; padding: 0; margin: 0.5rem 0 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.4rem 1.5rem;
}
.edition-page--bff26 .recap-highlights li {
 padding-left: 1.3rem; position: relative; font-size: var(--text-base);
}
.edition-page--bff26 .recap-highlights li::before {
 content: '→'; position: absolute; left: 0; color: var(--color-accent);
}
@media (max-width: 560px) {
.edition-page--bff26 .recap-highlights {
 grid-template-columns: 1fr;
}
}
.edition-page--bff26 .recap-quote {
 border-left: 3px solid var(--color-accent); padding: 0.1rem 0 0.1rem 1.1rem; margin: 1rem 0; font-style: italic; color: var(--color-ink-2);
}
.edition-page--bff26 .recap-quote cite {
 display: block; font-style: normal; font-size: var(--text-sm); color: var(--color-muted); margin-top: 0.4rem; letter-spacing: 0.04em;
}
.edition-page--bff26 .band.dark .recap-quote {
 color: color-mix(in oklch, var(--color-paper) 85.0%, transparent);
}
.edition-page--bff26 .band.dark .recap-quote cite {
 color: color-mix(in oklch, var(--color-paper) 55.0%, transparent);
}
.edition-page--bff26 .warsaw-grid {

  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: 1rem; margin-top: 1rem;

}
.edition-page--bff26 .warsaw-grid.four {
 grid-template-columns: repeat(4, 1fr); gap: 1.1rem;
}
@media (max-width: 900px) {
.edition-page--bff26 .warsaw-grid.four {
 grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 520px) {
.edition-page--bff26 .warsaw-grid.four {
 grid-template-columns: 1fr;
}
}
.edition-page--bff26 .warsaw-cell {
 background: color-mix(in oklch, var(--color-on-dark) 5.0%, transparent); border: 1px solid color-mix(in oklch, var(--color-on-dark) 10%, transparent); padding: 1rem 1.1rem;
}
.edition-page--bff26 .band:not(.dark) .warsaw-cell {
 background: var(--color-paper-2); border-color: color-mix(in oklch, var(--color-ink) 12%, transparent);
}
.edition-page--bff26 .warsaw-cell ul {
 list-style: none; padding: 0; margin: 0;
}
.edition-page--bff26 .warsaw-cell li {
 padding: 0.2rem 0; font-size: var(--text-sm);
}
.edition-page--bff26 .warsaw-cell li::before {
 content: "→ "; color: var(--color-screen); margin-right: 0.2rem;
}
.edition-page--bff26 .band.dark .warsaw-cell li::before {
 color: var(--color-screen-soft);
}
.edition-page--bff26 .warsaw-cell h4 {
 color: var(--color-paper);
}
.edition-page--bff26 .band:not(.dark) .warsaw-cell h4 {
 color: var(--color-ink);
}
.edition-page--bff26 .map-wrap {

  margin-top: 1.5rem; border: 1px solid color-mix(in oklch, var(--color-on-dark) 10%, transparent); overflow: hidden;
  position: relative; aspect-ratio: 16 / 9; background: var(--color-room);

}
.edition-page--bff26 .band:not(.dark) .map-wrap {
 border-color: color-mix(in oklch, var(--color-ink) 12%, transparent);
}
.edition-page--bff26 .map-wrap iframe {
 position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block;
}
.edition-page--bff26 .friends-tier-label {

  font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.14em;
  font-size: 0.74rem; color: var(--color-screen); margin: 1.4rem 0 0.7rem;

}
.edition-page--bff26 .friends-tier-label:first-of-type {
 margin-top: 0.4rem;
}
.edition-page--bff26 .friends-grid {

  display: flex; flex-wrap: wrap; justify-content: center; align-items: stretch;
  gap: 0.7rem; margin: 0 auto 0.7rem; max-width: 1200px;

}
.edition-page--bff26 .friends-grid.friends-fw {
 max-width: none;
}
.edition-page--bff26 .friend-logo {

  flex: 1 1 180px; max-width: 260px;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid color-mix(in oklch, var(--color-ink) 12%, transparent); border-radius: 5px; overflow: hidden;
  background: #fff; aspect-ratio: 5 / 3; padding: 1.1rem 1.2rem;
  transition: transform 0.15s ease, border-color 0.15s ease;

}
.edition-page--bff26 .friend-logo.dark {
 background: var(--color-ink); border-color: color-mix(in oklch, var(--color-on-dark) 16.0%, transparent);
}
.edition-page--bff26 .friends-grid.smaller .friend-logo {
 flex: 1 1 150px; max-width: 220px; padding: 0.9rem 1rem;
}
.edition-page--bff26 .friend-logo:hover {
 transform: translateY(-3px); border-color: var(--color-screen);
}
.edition-page--bff26 .friend-logo img {
 display: block; max-width: 100%; max-height: 100%; width: auto; height: auto;
}
.edition-page--bff26 .friends-fw {

  margin-left: calc(50% - 50vw + var(--frame-side));
  margin-right: calc(50% - 50vw + var(--frame-side));
  padding: 0 clamp(0.6rem, 1.5vw, 1.4rem);
  gap: 0.55rem;

}
.edition-page--bff26 .logo-marquee {

  margin-left: calc(50% - 50vw + var(--frame-side));
  margin-right: calc(50% - 50vw + var(--frame-side));
  position: relative; overflow: hidden; padding: 0.4rem 0;
  -webkit-mask-image: linear-gradient(90deg, transparent, var(--color-room) 4%, var(--color-room) 96%, transparent);
  mask-image: linear-gradient(90deg, transparent, var(--color-room) 4%, var(--color-room) 96%, transparent);

}
.edition-page--bff26 .logo-track {
 display: flex; gap: 0.7rem; width: max-content; animation: bff-logo-scroll 80s linear infinite; align-items: center;
}
.edition-page--bff26 .logo-track-featured {
 animation-duration: 95s;
}
.edition-page--bff26 .logo-track-regular {
 animation-duration: 65s;
}
.edition-page--bff26 .logo-marquee:hover .logo-track {
 animation-play-state: paused;
}
.edition-page--bff26 .logo-track .friend-logo {
 flex: 0 0 auto; width: 120px; padding: 0.7rem 0.8rem;
}
.edition-page--bff26 .logo-track .friend-logo.featured {
 width: 230px; padding: 1.1rem 1.2rem;
}
.edition-page--bff26 .logo-marquee + .logo-marquee {
 margin-top: 0.4rem;
}
@keyframes bff-logo-scroll {
 from { transform: translateX(0); } to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
.edition-page--bff26 .logo-marquee {
 overflow: visible; -webkit-mask-image: none; mask-image: none;
}
.edition-page--bff26 .logo-track {
 animation: none; width: auto; flex-wrap: wrap; justify-content: center; row-gap: 0.7rem;
}
.edition-page--bff26 .logo-track .friend-logo[aria-hidden="true"] {
 display: none;
}
}
.edition-page--bff26 figure.photo {
 margin: 1.6rem 0; border: 1px solid color-mix(in oklch, var(--color-ink) 12%, transparent); overflow: hidden;
}
.edition-page--bff26 .band.dark figure.photo {
 border-color: color-mix(in oklch, var(--color-on-dark) 10%, transparent);
}
.edition-page--bff26 figure.photo img {
 display: block; width: 100%; height: auto;
}
.edition-page--bff26 figure.photo figcaption {

  font-family: var(--font-body); font-size: var(--text-xs); letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--color-muted); padding: 0.5rem 0.75rem; background: var(--color-paper-2);

}
.edition-page--bff26 .band.dark figure.photo figcaption {
 background: color-mix(in oklch, var(--color-on-dark) 6.0%, transparent); color: color-mix(in oklch, var(--color-paper) 60.0%, transparent);
}
.edition-page--bff26 .photo-row {
 display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 0.6rem; margin: 1.6rem 0;
}
.edition-page--bff26 .photo-row img {

  width: 100%; height: 100%; object-fit: cover; display: block;
  aspect-ratio: 4 / 3; border: 1px solid color-mix(in oklch, var(--color-ink) 12%, transparent);

}
.edition-page--bff26 .band.dark .photo-row img {
 border-color: color-mix(in oklch, var(--color-on-dark) 10%, transparent);
}
.edition-page--bff26 .photo-strip {
 display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; background: var(--color-room); width: 100%;
}
.edition-page--bff26 .photo-strip img {
 width: 100%; height: clamp(120px, 16vw, 200px); object-fit: cover; display: block; transition: filter .3s, transform .5s ease;
}
@media (max-width: 700px) {
.edition-page--bff26 .photo-strip {
 grid-template-columns: repeat(2, 1fr);
}
}
.edition-page--bff26 .photo-strip-wrap {
 position: relative; display: block;
}
.edition-page--bff26 .photo-strip-wrap:hover .photo-strip img {
 filter: brightness(0.62);
}
.edition-page--bff26 .photo-strip-cta {
 position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); color: var(--color-paper); letter-spacing: 0.06em; font-size: clamp(0.85rem, 2vw, 1.2rem);
  text-decoration: none; opacity: 0; transition: opacity .25s; text-shadow: 0 2px 14px rgba(0,0,0,0.8);
}
.edition-page--bff26 .photo-strip-wrap:hover .photo-strip-cta,
.edition-page--bff26 .photo-strip-wrap:focus-within .photo-strip-cta {
 opacity: 1;
}
.edition-page--bff26 .photo-strip-cta span {
 background: var(--color-screen); padding: 0.5rem 1.1rem; border-radius: 2px;
}
.edition-page--bff26 .hero-photos {
 margin: 1.6rem auto 0; max-width: 1100px; text-decoration: none; display: block;
}
.edition-page--bff26 .hero-photos .row {
 display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px; border-radius: 4px; overflow: hidden;
}
.edition-page--bff26 .hero-photos img {
 width: 100%; height: clamp(76px, 14vw, 130px); object-fit: cover; display: block; transition: filter .3s, transform .35s;
}
.edition-page--bff26 .hero-photos:hover img {
 filter: brightness(1.08);
}
.edition-page--bff26 .hero-photos:hover img:hover {
 transform: scale(1.04);
}
.edition-page--bff26 .hero-photos .label {
 display: block; margin-top: 0.6rem; font-family: var(--font-display); font-size: var(--text-sm); letter-spacing: 0.04em; color: var(--color-screen); text-align: center;
}
@media (max-width: 720px) {
.edition-page--bff26 .hero-photos .row {
 grid-template-columns: repeat(3, 1fr);
}
.edition-page--bff26 .hero-photos img {
 height: clamp(80px, 22vw, 130px);
}
}
.edition-page--bff26 .ev-budget {
 font-size: 0.72em; color: var(--color-muted); letter-spacing: 0.05em;
}
.edition-page--bff26 .band.dark .ev-budget {
 color: color-mix(in oklch, var(--color-paper) 50.0%, transparent);
}
.edition-page--bff26 .warsaw-eats-head {
 margin-top: 2.2rem;
}
.edition-page--bff26 .hotel-grid {

  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: 0.9rem; margin: 1rem 0 1.4rem;

}
.edition-page--bff26 .hotel-card {

  background: color-mix(in oklch, var(--color-on-dark) 6.0%, transparent); border: 1px solid color-mix(in oklch, var(--color-on-dark) 10%, transparent);
  padding: 1.1rem 1.2rem; display: flex; flex-direction: column; gap: 0.5rem;

}
.edition-page--bff26 .band:not(.dark) .hotel-card {
 background: var(--color-paper-2); border-color: color-mix(in oklch, var(--color-ink) 12%, transparent);
}
.edition-page--bff26 .hotel-card h4 {
 margin: 0 0 0.15rem; font-size: clamp(1rem, 1.3vw, 1.15rem);
}
.edition-page--bff26 .hotel-card .hotel-meta {
 font-size: var(--text-sm); color: color-mix(in oklch, var(--color-paper) 70.0%, transparent); letter-spacing: 0.04em;
}
.edition-page--bff26 .band:not(.dark) .hotel-card .hotel-meta {
 color: var(--color-muted);
}
.edition-page--bff26 .hotel-card .hotel-price {

  font-family: var(--font-display); color: var(--color-screen-soft);
  font-size: clamp(1rem, 1.3vw, 1.2rem); margin-top: 0.2rem;

}
.edition-page--bff26 .band:not(.dark) .hotel-card .hotel-price {
 color: var(--color-screen);
}
.edition-page--bff26 .hotel-card ul {
 list-style: none; padding: 0; margin: 0.1rem 0 0.3rem; font-size: var(--text-sm);
}
.edition-page--bff26 .hotel-card li {
 padding: 0.15rem 0;
}
.edition-page--bff26 .hotel-card li::before {
 content: "▸ "; color: var(--color-screen-soft);
}
.edition-page--bff26 .band:not(.dark) .hotel-card li::before {
 color: var(--color-screen);
}
.edition-page--bff26 .hotel-card .hotel-links {
 margin-top: auto; display: flex; flex-wrap: wrap; gap: 0.5rem; padding-top: 0.5rem;
}
.edition-page--bff26 .hotel-card .hotel-links a {
 font-size: var(--text-sm); border-bottom: 1px solid color-mix(in oklch, var(--color-on-dark) 10%, transparent); padding: 0.2rem 0;
}
.edition-page--bff26 .band:not(.dark) .hotel-card .hotel-links a {
 border-bottom-color: color-mix(in oklch, var(--color-ink) 12%, transparent);
}
.edition-page--bff26 .goodie-banner {

  display: flex; gap: 1rem; align-items: flex-start;
  background: linear-gradient(135deg, color-mix(in oklch, var(--color-accent) 18.0%, transparent), color-mix(in oklch, var(--color-accent) 4.0%, transparent));
  border: 1px solid var(--color-accent); border-left: 4px solid var(--color-accent);
  padding: 1rem 1.2rem; margin: 0 0 1.4rem;

}
.edition-page--bff26 .goodie-banner .goodie-ic {
 font-size: clamp(1.6rem, 3vw, 2.4rem); line-height: 1; flex-shrink: 0;
}
.edition-page--bff26 .goodie-banner h3 {
 margin: 0 0 0.3rem; color: var(--color-accent);
}
.edition-page--bff26 .goodie-banner p {
 margin: 0; font-size: clamp(0.9rem, 1.1vw, 1rem);
}
.edition-page--bff26 .band.dark .goodie-banner {
 background: linear-gradient(135deg, color-mix(in oklch, var(--color-accent) 26.0%, transparent), color-mix(in oklch, var(--color-accent) 8.0%, transparent));
}
.edition-page--bff26 .prague-teaser {

  background: linear-gradient(135deg, color-mix(in oklch, var(--color-screen) 16.0%, transparent), color-mix(in oklch, var(--color-screen) 4.0%, transparent));
  border-left: 3px solid var(--color-screen);
  padding: 1.1rem 1.3rem; margin: 1.4rem 0 1rem;

}
.edition-page--bff26 .band:not(.dark) .prague-teaser {
 background: linear-gradient(135deg, color-mix(in oklch, var(--color-screen) 10.0%, transparent), color-mix(in oklch, var(--color-screen) 2.0%, transparent));
}
.edition-page--bff26 .prague-teaser h3 {
 margin: 0 0 0.45rem;
}
.edition-page--bff26 .prague-teaser p {
 margin-bottom: 0.6rem;
}
.edition-page--bff26 .rabbits-grid {

  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
  gap: 0.75rem; margin: 1rem 0;

}
.edition-page--bff26 .rabbit-award {
 background: color-mix(in oklch, var(--color-accent) 10.0%, transparent); border: 1px solid var(--color-accent); padding: 0.9rem 1rem; text-align: center;
}
.edition-page--bff26 .rabbit-award .award-name {

  font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.06em;
  color: var(--color-accent); font-size: clamp(0.95rem, 1.3vw, 1.1rem);

}
.edition-page--bff26 .help-grid {
 display: grid; grid-template-columns: 1fr; gap: 1.5rem; margin-top: 0.5rem;
}
@media (min-width: 820px) {
.edition-page--bff26 .help-grid {
 grid-template-columns: 1.3fr 1fr;
}
}
.edition-page--bff26 .help-list {
 list-style: none; padding: 0;
}
.edition-page--bff26 .help-list li {
 padding: 0.5rem 0 0.5rem 1.4rem; position: relative; border-bottom: 1px solid color-mix(in oklch, var(--color-ink) 12%, transparent);
}
.edition-page--bff26 .band.dark .help-list li {
 border-bottom-color: color-mix(in oklch, var(--color-on-dark) 10%, transparent);
}
.edition-page--bff26 .help-list li::before {
 content: "✶"; color: var(--color-screen); position: absolute; left: 0; top: 0.55rem;
}
.edition-page--bff26 .donate-card {
 background: var(--color-paper-2); border: 1px solid var(--color-screen); padding: 1.25rem; text-align: center;
}
.edition-page--bff26 .band.dark .donate-card {
 background: color-mix(in oklch, var(--color-on-dark) 5.0%, transparent);
}
.edition-page--bff26 .lnaddr {

  font-family: var(--font-body); font-size: var(--text-sm); color: var(--color-screen);
  word-break: break-all; background: rgba(0,0,0,0.04); padding: 0.5rem 0.7rem;
  border: 1px solid color-mix(in oklch, var(--color-ink) 12%, transparent); margin-top: 0.6rem; display: block;

}
.edition-page--bff26 .band.dark .lnaddr {
 color: var(--color-screen-soft); background: color-mix(in oklch, var(--color-on-dark) 6.0%, transparent); border-color: color-mix(in oklch, var(--color-on-dark) 10%, transparent);
}
.edition-page--bff26 .faq details {
 border-bottom: 1px solid color-mix(in oklch, var(--color-ink) 12%, transparent); padding: 0.75rem 0;
}
.edition-page--bff26 .band.dark .faq details {
 border-bottom-color: color-mix(in oklch, var(--color-on-dark) 10%, transparent);
}
.edition-page--bff26 .faq summary {

  cursor: pointer; list-style: none; font-family: var(--font-display);
  font-size: clamp(0.95rem, 1.25vw, 1.05rem); position: relative; padding-right: 1.5rem;

}
.edition-page--bff26 .faq summary::-webkit-details-marker {
 display: none;
}
.edition-page--bff26 .faq summary::after {
 content: "+"; position: absolute; right: 0; top: 0; color: var(--color-screen); font-size: 1.25rem; line-height: 1;
}
.edition-page--bff26 .band.dark .faq summary::after {
 color: var(--color-screen-soft);
}
.edition-page--bff26 .faq details[open] summary::after {
 content: "−";
}
.edition-page--bff26 .faq .answer {
 padding-top: 0.5rem; font-size: var(--text-base);
}
.edition-page--bff26 .signoff {
 margin-top: clamp(2rem, 5vw, 4rem); padding-top: 2rem; border-top: 1px solid color-mix(in oklch, var(--color-ink) 12%, transparent); text-align: center;
}
.edition-page--bff26 .band.dark .signoff {
 border-top-color: color-mix(in oklch, var(--color-on-dark) 10%, transparent);
}
.edition-page--bff26 .signoff blockquote {

  font-family: var(--font-display); font-size: clamp(1rem, 1.6vw, 1.35rem);
  letter-spacing: 0.04em; max-width: 36ch; margin: 0 auto 1.25rem; line-height: 1.4; color: var(--color-ink);

}
.edition-page--bff26 .band.dark .signoff blockquote {
 color: var(--color-paper);
}
.edition-page--bff26 .signoff .fix {

  font-family: var(--font-display); font-size: clamp(1.2rem, 2.5vw, 2rem);
  color: var(--color-screen); letter-spacing: 0.08em; margin: 1rem 0 0.5rem;

}
.edition-page--bff26 .band.dark .signoff .fix {
 color: var(--color-screen-soft);
}
.edition-page--bff26 .signoff .rabbit {
 font-size: 1.25rem; margin-top: 0.5rem;
}
.edition-page--bff26 [data-tip] {
 position: relative;
}
.edition-page--bff26 [data-tip]:hover::after,
.edition-page--bff26 [data-tip].tip-open::after {

  content: attr(data-tip);
  position: absolute; bottom: calc(100% + 6px); left: 0; z-index: 200;
  background: var(--color-room-raised); color: var(--color-paper);
  border: 1px solid var(--color-screen); border-left: 3px solid var(--color-screen);
  padding: 0.7rem 0.9rem; font-family: var(--font-body); font-size: var(--text-sm);
  line-height: 1.5; letter-spacing: 0.01em; text-transform: none;
  max-width: 320px; width: max-content; white-space: normal;
  pointer-events: none; box-shadow: 0 8px 24px rgba(0,0,0,0.45); animation: tipin 0.12s ease-out;

}
@keyframes tipin {
 from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; }
}
.edition-page--bff26 .band:not(.dark) [data-tip]:hover::after,
.edition-page--bff26 .band:not(.dark) [data-tip].tip-open::after {
 background: var(--color-ink); color: var(--color-paper);
}
@media (hover: none) {
.edition-page--bff26 [data-tip]:hover::after {
 display: none;
}
}

.edition-page--bff26 .source-note {
  margin: 0.75rem 0 0;
  padding: 0.65rem 0.8rem;
  border-left: 3px solid var(--color-accent);
  background: color-mix(in oklch, var(--color-accent) 10%, transparent);
  font-size: var(--text-sm);
}
.edition-page--bff26 .testimonial-list { display: grid; gap: 0; }
.edition-page--bff26 .testimonial-list .recap-quote { max-width: 48rem; }
.edition-page--bff26 .rabbits-grid small {
  display: block;
  margin-top: 0.45rem;
  color: var(--color-muted);
  font-family: var(--font-body);
  font-size: var(--text-xs);
  line-height: 1.35;
  text-transform: none;
  letter-spacing: 0;
}
/* Mobile containment: retain the old composition without allowing its legacy minimums to clip. */
.edition-page--bff26,
.edition-page--bff26 .hero-wrap,
.edition-page--bff26 .band,
.edition-page--bff26 .curtain,
.edition-page--bff26 .photo-strip-wrap {
  min-width: 0;
  max-width: 100%;
}

.edition-page--bff26 .hero-wrap .hero.inner {
  width: 100%;
  min-width: 0;
}

.edition-page--bff26 .hero-title-row h1,
.edition-page--bff26 .hero-date-block strong,
.edition-page--bff26 .hero-date-block .where {
  white-space: normal;
  overflow-wrap: anywhere;
}

.edition-page--bff26 .hero-cta-row3 > * {
  min-width: 0;
}

.edition-page--bff26 .btn {
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  text-align: center;
}

.edition-page--bff26 .hero-logo {
  background: var(--color-ink);
  padding: 0.25rem 0.4rem;
}

@media (max-width: 560px) {
  .edition-page--bff26 .btn-big {
    padding-inline: 0.55rem;
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    white-space: nowrap;
  }
}

@media (prefers-reduced-motion: reduce) {
  .edition-page--bff26 *, .edition-page--bff26 *::before, .edition-page--bff26 *::after {
    animation: none !important; transition: none !important; scroll-behavior: auto !important;
  }
}

/* BFF’26 fills the usable cinema screen, not the browser viewport. The shared
   layout wrapper remains scoped to this page; its inner bands keep the normal
   responsive viewport padding for readable text and controls. */
.screen-canvas > .inner:has(> .edition-page--bff26) {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}

.edition-page--bff26 > .hero-wrap > .inner,
.edition-page--bff26 > .band > .inner {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}

/* BFF’26 contrast corrections: keep the legacy palette, but darken blue on
   paper and use the paper token over the saturated event-row overlays. */
.edition-page--bff26 {
  --bff26-blue-aa: color-mix(in oklch, var(--color-screen) 58%, var(--color-ink));
}

.edition-page--bff26 .band:not(.dark) {
  color: var(--color-ink);
}

.edition-page--bff26 .band.dark figure.photo figcaption,
.edition-page--bff26 .band.dark .closing-photo figcaption {
  color: var(--color-paper);
}

/* The shared nav stays structurally untouched; this page-only foreground
   override prevents the legacy inactive grey from failing on the black bezel. */
body:has(.edition-page--bff26) .topnav .nav-link {
  color: var(--color-on-dark);
}

.edition-page--bff26 .section-label,
.edition-page--bff26 .hero-photos .label,
.edition-page--bff26 .friends-tier-label {
  color: var(--bff26-blue-aa);
}

.edition-page--bff26 .btn-primary {
  background: var(--bff26-blue-aa);
  border-color: var(--bff26-blue-aa);
  color: var(--color-paper);
}

.edition-page--bff26 .btn-primary:hover {
  background: var(--bff26-blue-aa);
  border-color: var(--bff26-blue-aa);
  color: var(--color-paper);
}

.edition-page--bff26 .day-date .tagday {
  background: var(--bff26-blue-aa);
  color: var(--color-paper);
}

.edition-page--bff26 .band:not(.dark) .summary-title .teaser,
.edition-page--bff26 .band:not(.dark) .muted,
.edition-page--bff26 .band:not(.dark) .program-item .meta,
.edition-page--bff26 .band:not(.dark) .prize-pool,
.edition-page--bff26 .band:not(.dark) .ticket-price,
.edition-page--bff26 .band:not(.dark) .recap-stat .n,
.edition-page--bff26 .band:not(.dark) .warsaw-cell li::before,
.edition-page--bff26 .band:not(.dark) .hotel-card .hotel-price,
.edition-page--bff26 .band:not(.dark) .hotel-card li::before,
.edition-page--bff26 .band:not(.dark) .lnaddr,
.edition-page--bff26 .band:not(.dark) .faq summary::after,
.edition-page--bff26 .band:not(.dark) .signoff .fix {
  color: var(--bff26-blue-aa);
}

.edition-page--bff26 .band:not(.dark) .recap-quote cite,
.edition-page--bff26 .band:not(.dark) .rabbits-grid small,
.edition-page--bff26 .band:not(.dark) .hotel-card .hotel-meta {
  color: var(--color-ink-2);
}

.edition-page--bff26 .warsaw-grid.four > .warsaw-cell h3 {
  color: var(--color-ink);
  font-size: clamp(1rem, 1.3vw, 1.15rem);
  margin: 0 0 0.4rem;
}

.edition-page--bff26 .band:not(.dark) .details.sub > summary h3,
.edition-page--bff26 .band:not(.dark) details.sub > summary h3,
.edition-page--bff26 .band:not(.dark) details.sub > summary .chev-sm,
.edition-page--bff26 .band:not(.dark) .chev {
  color: var(--bff26-blue-aa);
}

.edition-page--bff26 .band:not(.dark) details.sub.featured-mk > summary h3,
.edition-page--bff26 .band:not(.dark) details.sub.featured-mk > summary .chev-sm {
  color: var(--color-ink);
}

.edition-page--bff26 .band:not(.dark) .rabbit-award .award-name {
  color: var(--color-ink);
}

.edition-page--bff26 .photo-strip-cta span {
  background: var(--bff26-blue-aa);
}

.edition-page--bff26 .band.dark .day-list li .what .kind,
.edition-page--bff26 .band.dark .day-list li .what .venue,
.edition-page--bff26 .band.dark .day-list li.band-label.break,
.edition-page--bff26 .band.dark .day-list li.band-label.break .time,
.edition-page--bff26 .band.dark .day-list li.band-label.break .block-title,
.edition-page--bff26 .band.dark .day-list li.party .time,
.edition-page--bff26 .band.dark .day-list li.tour .time,
.edition-page--bff26 .band.dark .day-list li.activity .time,
.edition-page--bff26 .band.dark .day-list li.outdoor .time,
.edition-page--bff26 .band.dark .day-list li.outdoor .what .kind,
.edition-page--bff26 .band.dark .day-list li.mk-row .time,
.edition-page--bff26 .band.dark .day-list li.mk-row .venue a,
.edition-page--bff26 .band.dark .day-list li.block.gala-block > ul > li.band-label,
.edition-page--bff26 .band.dark .day-list li.block.gala-block > ul > li.band-label .time,
.edition-page--bff26 .band.dark .day-list li.block.gala-block > ul > li.band-label .block-title,
.edition-page--bff26 .band.dark details.sub.featured-mk > summary h3,
.edition-page--bff26 .band.dark details.sub.featured-mk > summary .chev-sm,
.edition-page--bff26 .band.dark details.sub.featured-mk a,
.edition-page--bff26 .band.dark .ev-budget,
.edition-page--bff26 .band.dark .hotel-card .hotel-meta,
.edition-page--bff26 .band.dark .recap-quote cite {
  color: var(--color-paper);
}

.edition-page--bff26 .band.dark .day-list li.band-label .block-title .venue {
  opacity: 1;
}

/* BFF’26 old-look parity: keep the subdued photo wash from the guest page,
   but use readable foreground colors where the paper and dark photo bands need
   different contrast rules. */
.edition-page--bff26 .hero-wrap {
  background-color: var(--color-paper);
  background-image:
    linear-gradient(
      color-mix(in oklch, var(--color-paper) 78%, transparent),
      color-mix(in oklch, var(--color-paper) 90%, transparent)
    ),
    url('../../26/26-assets/photos/bff25-143-bg.jpg');
  background-size: cover;
  background-position: center;
}

.edition-page--bff26 .hero-date-block strong,
.edition-page--bff26 .hero-pitch,
.edition-page--bff26 .band:not(.dark) .body a:not(.btn) {
  color: var(--bff26-blue-aa);
}

.edition-page--bff26 .band:not(.dark) .goodie-banner h3,
.edition-page--bff26 .band:not(.dark) .recap-highlights li::before {
  color: color-mix(in oklch, var(--color-accent) 55%, var(--color-ink));
}

/* The Warsaw cards are on the dark photo band. A broad paper-band h3 rule
   previously left these headings ink-on-dark, unlike the guest page. */
.edition-page--bff26 .band.dark .warsaw-grid.four > .warsaw-cell h3 {
  color: var(--color-paper);
}

/* The edition owns the screen from the nav down; the generic shell's top
   article padding otherwise leaves a stray blue/black ledge above the old
   guest-page announcement bar. */
.screen-canvas > .inner:has(> .edition-page--bff26) {
  padding-top: 0;
}

@media (max-width: 560px) {
  /* Keep the wrapped-event callout inside the narrow paper measure instead of
     letting its icon, copy, and CTA create a clipped flex row. */
  .edition-page--bff26 .goodie-banner {
    flex-direction: column;
    gap: 0.7rem;
  }
}

/* BFF’25 archive page. All selectors below are edition-scoped so the BFF’26
   programme and the shared cinema shell remain unchanged. */
.screen-canvas > .inner:has(> .edition-page--bff25) {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding: 0;
}

.edition-page--bff25 {
  --bff25-blue-aa: color-mix(in oklch, var(--color-screen) 58%, var(--color-ink));
  width: 100%;
  max-width: none;
  min-width: 0;
  margin: 0;
  padding: 0;
  background: var(--color-paper);
  color: var(--color-ink);
  overflow-wrap: anywhere;
}

.edition-page--bff25 h1,
.edition-page--bff25 h2,
.edition-page--bff25 h3,
.edition-page--bff25 p,
.edition-page--bff25 figure,
.edition-page--bff25 dl,
.edition-page--bff25 ol,
.edition-page--bff25 ul {
  min-width: 0;
}

.edition-page--bff25 a {
  color: var(--bff25-blue-aa);
}

.edition-page--bff25 a:hover {
  color: var(--color-ink);
}

.edition-page--bff25 .bff25-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.82fr);
  gap: clamp(var(--space-xl), 6vw, var(--space-4xl));
  align-items: center;
  width: min(100%, 1240px);
  margin-inline: auto;
  padding: clamp(var(--space-2xl), 7vw, var(--space-4xl)) clamp(var(--space-md), 5vw, var(--space-2xl));
  background:
    linear-gradient(115deg, color-mix(in oklch, var(--color-paper) 90%, transparent), color-mix(in oklch, var(--color-paper) 67%, transparent)),
    url('../../25/25-assets/photo-143.png') center / cover;
}

.edition-page--bff25 .bff25-hero-copy {
  max-width: 44rem;
}

.edition-page--bff25 .bff25-kicker,
.edition-page--bff25 .bff25-section-label,
.edition-page--bff25 .bff25-subsection-label,
.edition-page--bff25 .bff25-selection-marker,
.edition-page--bff25 .bff25-day-date {
  color: var(--bff25-blue-aa);
  font-family: var(--font-display);
  font-size: var(--text-xs);
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.edition-page--bff25 .bff25-kicker {
  margin-block-end: var(--space-md);
}

.edition-page--bff25 .bff25-hero h1 {
  margin-block-end: 0;
  font-size: clamp(4.5rem, 17vw, 10rem);
  letter-spacing: -0.08em;
  line-height: 0.83;
}

.edition-page--bff25 .bff25-title-line {
  margin-block: var(--space-md) var(--space-sm);
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: clamp(var(--text-xl), 4vw, var(--text-3xl));
  text-transform: uppercase;
}

.edition-page--bff25 .bff25-date {
  margin-block-end: var(--space-xl);
  font-family: var(--font-display);
  font-size: clamp(var(--text-md), 2.5vw, var(--text-xl));
}

.edition-page--bff25 .bff25-lede {
  max-width: 55ch;
  font-size: var(--text-md);
}

.edition-page--bff25 .bff25-archive-note {
  max-width: 60ch;
  margin-block-end: 0;
  padding: 0 var(--space-sm);
  border-inline-start: 3px solid var(--color-accent);
  background: color-mix(in oklch, var(--color-accent) 13%, transparent);
  font-size: var(--text-xs);
  line-height: 1.25;
}

.edition-page--bff25 .bff25-poster {
  margin: 0;
  border: var(--rule-thin) solid color-mix(in oklch, var(--color-ink) 20%, transparent);
  background: var(--color-ink);
  box-shadow: 0 1rem 2.5rem color-mix(in oklch, var(--color-ink) 22%, transparent);
}

.edition-page--bff25 .bff25-poster img {
  width: 100%;
  height: auto;
  margin: 0;
}

.edition-page--bff25 .bff25-poster figcaption,
.edition-page--bff25 .bff25-feature-image figcaption,
.edition-page--bff25 .bff25-pow-poster figcaption,
.edition-page--bff25 .bff25-photo-ledger figcaption {
  padding: var(--space-xs) var(--space-sm);
  color: var(--color-muted);
  font-family: var(--font-body);
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.edition-page--bff25 .bff25-index {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  width: min(100%, 1240px);
  margin: 0 auto;
  padding: 0 clamp(var(--space-md), 5vw, var(--space-2xl));
  border-block: var(--rule-thin) solid color-mix(in oklch, var(--color-ink) 18%, transparent);
  list-style: none;
}

.edition-page--bff25 .bff25-index li {
  flex: 1 1 10rem;
  margin: 0;
  border-inline-end: var(--rule-thin) solid color-mix(in oklch, var(--color-ink) 15%, transparent);
}

.edition-page--bff25 .bff25-index li:last-child {
  border-inline-end: 0;
}

.edition-page--bff25 .bff25-index a {
  display: block;
  padding: var(--space-md) var(--space-sm);
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: var(--text-sm);
  text-decoration: none;
}

.edition-page--bff25 .bff25-index a span {
  display: block;
  margin-block-end: var(--space-2xs);
  color: var(--bff25-blue-aa);
  font-size: var(--text-xs);
}

.edition-page--bff25 .bff25-index a:hover {
  background: color-mix(in oklch, var(--color-screen) 10%, transparent);
}

.edition-page--bff25 .bff25-band {
  width: 100%;
  scroll-margin-block-start: var(--nav-height);
}

.edition-page--bff25 .bff25-band--dark {
  background: var(--color-room-raised);
  color: var(--color-paper);
}

.edition-page--bff25 .bff25-band--paper {
  background: var(--color-paper);
}

.edition-page--bff25 .bff25-band--dark a {
  color: var(--color-screen-soft);
}

.edition-page--bff25 .bff25-band--dark a:hover {
  color: var(--color-paper);
}

.edition-page--bff25 .bff25-band-inner {
  width: min(100%, 1240px);
  margin-inline: auto;
  padding: clamp(var(--space-2xl), 7vw, var(--space-4xl)) clamp(var(--space-md), 5vw, var(--space-2xl));
}

.edition-page--bff25 .bff25-section-label {
  margin-block-end: var(--space-md);
}

.edition-page--bff25 .bff25-band h2 {
  max-width: 16ch;
  margin-block-end: var(--space-lg);
  font-size: clamp(2.2rem, 6vw, 4.8rem);
  letter-spacing: -0.06em;
}

.edition-page--bff25 .bff25-band-lede {
  max-width: 62ch;
  margin-block-end: clamp(var(--space-xl), 5vw, var(--space-3xl));
  font-size: var(--text-md);
}

.edition-page--bff25 .bff25-days {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2xl) clamp(var(--space-lg), 4vw, var(--space-3xl));
}

.edition-page--bff25 .bff25-day {
  min-width: 0;
  padding-block-start: var(--space-md);
  border-block-start: var(--rule-thin) solid color-mix(in oklch, var(--color-paper) 34%, transparent);
}

.edition-page--bff25 .bff25-day-head h3 {
  margin-block: var(--space-xs) var(--space-lg);
  font-size: clamp(var(--text-lg), 2.5vw, var(--text-2xl));
}

.edition-page--bff25 .bff25-day-date {
  margin-block-end: 0;
  color: var(--color-screen-soft);
}

.edition-page--bff25 .bff25-schedule {
  margin: 0;
}

.edition-page--bff25 .bff25-schedule > div {
  display: grid;
  grid-template-columns: minmax(5.8rem, 0.42fr) minmax(0, 1fr);
  gap: var(--space-md);
  padding-block: var(--space-sm);
  border-block-start: var(--rule-thin) dashed color-mix(in oklch, var(--color-paper) 18%, transparent);
}

.edition-page--bff25 .bff25-schedule dt {
  color: var(--color-screen-soft);
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-variant-numeric: tabular-nums;
  text-transform: uppercase;
}

.edition-page--bff25 .bff25-schedule dd {
  min-width: 0;
  margin: 0;
}

.edition-page--bff25 .bff25-schedule dd strong {
  display: block;
  color: var(--color-paper);
  font-family: var(--font-display);
  font-weight: 400;
}

.edition-page--bff25 .bff25-schedule dd span {
  display: block;
  margin-block-start: var(--space-2xs);
  color: color-mix(in oklch, var(--color-paper) 72%, transparent);
  font-size: var(--text-sm);
}

.edition-page--bff25 .bff25-day-note {
  margin-block: var(--space-md) 0;
  color: color-mix(in oklch, var(--color-paper) 62%, transparent);
  font-size: var(--text-sm);
}

.edition-page--bff25 .bff25-selection-group {
  display: grid;
  grid-template-columns: minmax(12rem, 0.5fr) minmax(0, 1fr);
  gap: var(--space-xl);
  padding-block: var(--space-xl);
  border-block-start: var(--rule-thin) solid color-mix(in oklch, var(--color-ink) 20%, transparent);
}

.edition-page--bff25 .bff25-selection-heading h3 {
  margin-block: var(--space-xs) 0;
  color: var(--color-ink);
  font-size: clamp(var(--text-lg), 2.5vw, var(--text-2xl));
}

.edition-page--bff25 .bff25-selection-marker {
  margin-block-end: 0;
}

.edition-page--bff25 .bff25-title-list {
  columns: 2;
  column-gap: var(--space-2xl);
  margin: 0;
  padding-inline-start: var(--space-lg);
  font-family: var(--font-display);
  font-size: var(--text-md);
}

.edition-page--bff25 .bff25-title-list li {
  break-inside: avoid;
  margin-block-end: var(--space-sm);
  padding-inline-start: var(--space-xs);
}

.edition-page--bff25 .bff25-film-notes {
  max-width: 72rem;
  margin-block-start: var(--space-2xl);
  padding-block-start: var(--space-xl);
  border-block-start: var(--rule-thin) solid color-mix(in oklch, var(--color-ink) 20%, transparent);
}

.edition-page--bff25 .bff25-film-notes > p:not(.bff25-subsection-label) {
  max-width: 68ch;
}

.edition-page--bff25 .bff25-film-notes h3 {
  margin-block-start: var(--space-sm);
  color: var(--color-ink);
}

.edition-page--bff25 .bff25-film {
  max-width: 72rem;
  border-block-start: var(--rule-thin) dashed color-mix(in oklch, var(--color-ink) 20%, transparent);
}

.edition-page--bff25 .bff25-film summary {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-sm) var(--space-lg);
  padding-block: var(--space-md);
  cursor: pointer;
  list-style: none;
  color: var(--bff25-blue-aa);
  font-family: var(--font-display);
  font-size: var(--text-md);
}

.edition-page--bff25 .bff25-film summary::-webkit-details-marker {
  display: none;
}

.edition-page--bff25 .bff25-film summary::after {
  content: '+';
  margin-inline-start: auto;
  color: var(--bff25-blue-aa);
}

.edition-page--bff25 .bff25-film[open] summary::after {
  content: '−';
}

.edition-page--bff25 .bff25-film summary small {
  color: var(--color-muted);
  font-family: var(--font-body);
  font-size: var(--text-sm);
}

.edition-page--bff25 .bff25-film > div {
  max-width: 68ch;
  padding-block-end: var(--space-lg);
}

.edition-page--bff25 .bff25-film blockquote {
  margin-inline-start: 0;
}

.edition-page--bff25 .bff25-feature-row {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(15rem, 0.9fr);
  gap: clamp(var(--space-xl), 5vw, var(--space-3xl));
  align-items: center;
  margin-block-end: var(--space-3xl);
}

.edition-page--bff25 .bff25-feature-image {
  margin: 0;
  border: var(--rule-thin) solid color-mix(in oklch, var(--color-paper) 20%, transparent);
}

.edition-page--bff25 .bff25-feature-image img {
  width: 100%;
  height: auto;
  margin: 0;
}

.edition-page--bff25 .bff25-feature-image figcaption {
  color: color-mix(in oklch, var(--color-paper) 64%, transparent);
}

.edition-page--bff25 .bff25-feature-row h3,
.edition-page--bff25 .bff25-event-list h3,
.edition-page--bff25 .bff25-pow-poster figcaption {
  color: var(--color-paper);
}

.edition-page--bff25 .bff25-event-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-xl) var(--space-2xl);
}

.edition-page--bff25 .bff25-event-list article {
  min-width: 0;
  padding-block-start: var(--space-md);
  border-block-start: var(--rule-thin) solid color-mix(in oklch, var(--color-paper) 30%, transparent);
}

.edition-page--bff25 .bff25-event-list p {
  color: color-mix(in oklch, var(--color-paper) 78%, transparent);
}

.edition-page--bff25 .bff25-event-list img {
  width: 100%;
  height: auto;
  margin-block: var(--space-md) 0;
  border: var(--rule-thin) solid color-mix(in oklch, var(--color-paper) 18%, transparent);
}

.edition-page--bff25 .bff25-event-record {
  margin-block-start: var(--space-md);
  padding: var(--space-sm) var(--space-md);
  border-inline-start: 3px solid var(--color-accent);
  color: color-mix(in oklch, var(--color-paper) 72%, transparent);
  font-size: var(--text-sm);
}

.edition-page--bff25 .bff25-pow-poster {
  max-width: 15rem;
  margin: var(--space-3xl) auto 0;
  border: var(--rule-thin) solid color-mix(in oklch, var(--color-paper) 20%, transparent);
}

.edition-page--bff25 .bff25-pow-poster img {
  width: 100%;
  height: auto;
  margin: 0;
}

.edition-page--bff25 .bff25-pow-poster figcaption {
  color: color-mix(in oklch, var(--color-paper) 64%, transparent);
}

.edition-page--bff25 .bff25-photo-ledger {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-md);
}

.edition-page--bff25 .bff25-photo-ledger figure {
  min-width: 0;
  margin: 0;
  border: var(--rule-thin) solid color-mix(in oklch, var(--color-ink) 16%, transparent);
  background: var(--color-paper-2);
}

.edition-page--bff25 .bff25-photo-ledger img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  margin: 0;
}

.edition-page--bff25 .bff25-name-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin-block: var(--space-md) var(--space-2xl);
  padding: 0;
  list-style: none;
  border-block-start: var(--rule-thin) solid color-mix(in oklch, var(--color-paper) 20%, transparent);
}

.edition-page--bff25 .bff25-name-list li {
  min-width: 0;
  margin: 0;
  padding: var(--space-sm) var(--space-xs);
  border-block-end: var(--rule-thin) solid color-mix(in oklch, var(--color-paper) 16%, transparent);
  font-size: var(--text-sm);
}

.edition-page--bff25 .bff25-logo-ledger {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-block: var(--space-2xl) 0;
  padding-block-start: var(--space-lg);
  border-block-start: var(--rule-thin) solid color-mix(in oklch, var(--color-paper) 20%, transparent);
}

.edition-page--bff25 .bff25-logo-ledger a {
  display: flex;
  flex: 1 1 9rem;
  min-width: 8rem;
  max-width: 13rem;
  min-height: 5rem;
  align-items: center;
  justify-content: center;
  padding: var(--space-sm);
  border: var(--rule-thin) solid color-mix(in oklch, var(--color-paper) 20%, transparent);
  background: var(--color-paper);
}

.edition-page--bff25 .bff25-logo-ledger img {
  max-width: 100%;
  max-height: 4rem;
  margin: 0;
}

.edition-page--bff25 .bff25-info-line {
  margin-block-start: var(--space-3xl);
  padding-block-start: var(--space-lg);
  border-block-start: var(--rule-thin) solid color-mix(in oklch, var(--color-paper) 22%, transparent);
}

.edition-page--bff25 .bff25-info-line h3 {
  color: var(--color-paper);
}

.edition-page--bff25 .bff25-info-line p {
  max-width: 74ch;
}

.edition-page--bff25 .bff25-endnote {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-md);
  width: min(100%, 1240px);
  margin-inline: auto;
  padding: var(--space-xl) clamp(var(--space-md), 5vw, var(--space-2xl)) var(--space-4xl);
  background: var(--color-room);
  color: var(--color-paper);
}

.edition-page--bff25 .bff25-endnote p {
  margin: 0;
  color: color-mix(in oklch, var(--color-paper) 78%, transparent);
  font-size: var(--text-sm);
}

.edition-page--bff25 .bff25-endnote a {
  align-self: center;
  font-family: var(--font-display);
}

@media (max-width: 820px) {
  .edition-page--bff25 .bff25-hero,
  .edition-page--bff25 .bff25-feature-row {
    grid-template-columns: 1fr;
  }

  .edition-page--bff25 .bff25-poster {
    max-width: 42rem;
  }

  .edition-page--bff25 .bff25-days {
    grid-template-columns: 1fr;
  }

  .edition-page--bff25 .bff25-name-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .edition-page--bff25 .bff25-index {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .edition-page--bff25 .bff25-index li:nth-child(2n) {
    border-inline-end: 0;
  }

  .edition-page--bff25 .bff25-selection-group,
  .edition-page--bff25 .bff25-event-list {
    grid-template-columns: 1fr;
  }

  .edition-page--bff25 .bff25-title-list,
  .edition-page--bff25 .bff25-photo-ledger,
  .edition-page--bff25 .bff25-name-list {
    grid-template-columns: 1fr;
    columns: 1;
  }

  .edition-page--bff25 .bff25-name-list {
    display: grid;
  }

  .edition-page--bff25 .bff25-schedule > div {
    grid-template-columns: minmax(4.8rem, 0.45fr) minmax(0, 1fr);
    gap: var(--space-sm);
  }
}

@media (prefers-reduced-motion: reduce) {
  .edition-page--bff25 *,
  .edition-page--bff25 *::before,
  .edition-page--bff25 *::after {
    animation: none !important;
    transition: none !important;
  }
}

/* BFF’25 photo coverage: the rail deliberately escapes the readable prose
   measure but stops at the cinema frame, following the BFF’26 wide-asset
   pattern. Captions remain in the same dark band for contrast. */
.edition-page--bff25 .bff25-photo-band {
  overflow: clip;
  padding-block: clamp(var(--space-xl), 5vw, var(--space-3xl));
  background: var(--color-room);
  color: var(--color-paper);
}

.edition-page--bff25 .bff25-photo-rail {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2px;
  width: calc(100vw - 2 * var(--frame-side));
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  margin: 0;
  background: var(--color-room);
}

.edition-page--bff25 .bff25-photo-rail figure {
  min-width: 0;
  margin: 0;
  background: var(--color-room-raised);
}

.edition-page--bff25 .bff25-photo-rail img {
  display: block;
  width: 100%;
  height: clamp(9rem, 17vw, 16rem);
  object-fit: cover;
  margin: 0;
}

.edition-page--bff25 .bff25-photo-rail figcaption {
  min-height: 2.7rem;
  padding: var(--space-xs) var(--space-sm);
  color: color-mix(in oklch, var(--color-paper) 70%, transparent);
  font-size: var(--text-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.edition-page--bff25 .bff25-photo-band-caption {
  width: min(100%, 1240px);
  margin: var(--space-md) auto 0;
  padding-inline: clamp(var(--space-md), 5vw, var(--space-2xl));
  color: color-mix(in oklch, var(--color-paper) 72%, transparent);
  font-size: var(--text-sm);
}

.edition-page--bff25 .bff25-award-categories {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin-block: var(--space-lg) var(--space-xl);
  padding: 0;
  border-block: var(--rule-thin) solid color-mix(in oklch, var(--color-ink) 20%, transparent);
  list-style: none;
}

.edition-page--bff25 .bff25-award-categories li {
  max-width: none;
  margin: 0;
  padding: var(--space-sm);
  border-inline-end: var(--rule-thin) solid color-mix(in oklch, var(--color-ink) 16%, transparent);
  font-family: var(--font-display);
  font-size: var(--text-sm);
}

.edition-page--bff25 .bff25-award-categories li:last-child {
  border-inline-end: 0;
}

.edition-page--bff25 .bff25-ticket-ledger {
  max-width: 74rem;
  margin-block: var(--space-2xl) var(--space-3xl);
  padding-block-start: var(--space-xl);
  border-block-start: var(--rule-thin) solid color-mix(in oklch, var(--color-ink) 20%, transparent);
}

.edition-page--bff25 .bff25-ticket-ledger h3 {
  margin-block-start: var(--space-xs);
  color: var(--color-ink);
}

.edition-page--bff25 .bff25-ticket-ledger > p:not(.bff25-subsection-label) {
  max-width: 68ch;
}

.edition-page--bff25 .bff25-ticket-ledger dl {
  margin: var(--space-xl) 0 0;
  border-block-start: var(--rule-thin) solid color-mix(in oklch, var(--color-ink) 18%, transparent);
}

.edition-page--bff25 .bff25-ticket-ledger dl > div {
  display: grid;
  grid-template-columns: minmax(10rem, 0.45fr) minmax(0, 1fr);
  gap: var(--space-lg);
  padding-block: var(--space-md);
  border-block-end: var(--rule-thin) dashed color-mix(in oklch, var(--color-ink) 18%, transparent);
}

.edition-page--bff25 .bff25-ticket-ledger dt {
  font-family: var(--font-display);
  font-size: var(--text-md);
}

.edition-page--bff25 .bff25-ticket-ledger dd {
  display: grid;
  grid-template-columns: minmax(4rem, auto) minmax(0, 1fr);
  gap: var(--space-md);
  margin: 0;
}

.edition-page--bff25 .bff25-ticket-ledger dd strong {
  color: var(--bff25-blue-aa);
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: 400;
}

.edition-page--bff25 .bff25-ticket-ledger dd span {
  max-width: 68ch;
  color: var(--color-ink-2);
  font-size: var(--text-sm);
}

.edition-page--bff25 .bff25-context-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2xl) clamp(var(--space-lg), 5vw, var(--space-3xl));
}

.edition-page--bff25 .bff25-context-grid > section {
  min-width: 0;
  padding-block-start: var(--space-md);
  border-block-start: var(--rule-thin) solid color-mix(in oklch, var(--color-ink) 18%, transparent);
}

.edition-page--bff25 .bff25-context-grid h3,
.edition-page--bff25 .bff25-digest-note h3 {
  margin-block: var(--space-xs) var(--space-sm);
  color: var(--color-ink);
}

.edition-page--bff25 .bff25-context-grid ul {
  margin-block: var(--space-sm) 0;
}

.edition-page--bff25 .bff25-context-grid li {
  max-width: 68ch;
  margin-block-end: var(--space-xs);
}

.edition-page--bff25 .bff25-digest-note {
  margin-block-start: var(--space-3xl);
  padding: var(--space-lg) var(--space-xl);
  border-inline-start: 3px solid var(--color-accent);
  background: color-mix(in oklch, var(--color-accent) 11%, transparent);
}

.edition-page--bff25 .bff25-digest-note p {
  max-width: 74ch;
  margin-block-end: 0;
}

@media (max-width: 820px) {
  .edition-page--bff25 .bff25-photo-rail {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .edition-page--bff25 .bff25-award-categories,
  .edition-page--bff25 .bff25-context-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .edition-page--bff25 .bff25-award-categories li:nth-child(2n) {
    border-inline-end: 0;
  }
}

@media (max-width: 560px) {
  .edition-page--bff25 .bff25-photo-rail {
    grid-template-columns: 1fr 1fr;
  }

  .edition-page--bff25 .bff25-photo-rail img {
    height: clamp(7rem, 32vw, 10rem);
  }

  .edition-page--bff25 .bff25-photo-rail figcaption {
    min-height: 3.2rem;
    padding-inline: var(--space-xs);
    font-size: 0.65rem;
  }

  .edition-page--bff25 .bff25-award-categories,
  .edition-page--bff25 .bff25-context-grid {
    grid-template-columns: 1fr;
  }

  .edition-page--bff25 .bff25-award-categories li,
  .edition-page--bff25 .bff25-award-categories li:nth-child(2n) {
    border-inline-end: 0;
    border-block-end: var(--rule-thin) solid color-mix(in oklch, var(--color-ink) 16%, transparent);
  }

  .edition-page--bff25 .bff25-award-categories li:last-child {
    border-block-end: 0;
  }

  .edition-page--bff25 .bff25-ticket-ledger dl > div,
  .edition-page--bff25 .bff25-ticket-ledger dd {
    grid-template-columns: 1fr;
    gap: var(--space-xs);
  }

  .edition-page--bff25 .bff25-digest-note {
    padding-inline: var(--space-md);
  }
}

/* BFF’24 and BFF’23 archive pages. All selectors are edition-scoped. */
.screen-canvas > .inner:has(> .edition-page--bff24),
.screen-canvas > .inner:has(> .edition-page--bff23) { width: 100%; max-width: none; margin: 0; padding: 0; }
.edition-page--bff24, .edition-page--bff23 { width: 100%; min-width: 0; margin: 0; padding: 0; overflow-wrap: anywhere; }
.edition-page--bff24 { --archive-blue: color-mix(in oklch, var(--color-screen) 58%, var(--color-ink)); }
.edition-page--bff23 { --archive-blue: color-mix(in oklch, var(--color-screen) 58%, var(--color-ink)); }
.edition-page--bff24 a, .edition-page--bff23 a { color: var(--archive-blue); }
.edition-page--bff24 a:hover, .edition-page--bff23 a:hover { color: var(--color-ink); }
.bff24-hero, .bff23-hero { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,.82fr); gap: clamp(var(--space-xl),6vw,var(--space-4xl)); align-items: center; width: min(100%,1240px); margin-inline: auto; padding: clamp(var(--space-2xl),7vw,var(--space-4xl)) clamp(var(--space-md),5vw,var(--space-2xl)); color: var(--color-ink); }
.bff24-hero { background: linear-gradient(115deg,color-mix(in oklch,var(--color-paper) 90%,transparent),color-mix(in oklch,var(--color-paper) 67%,transparent)),url('../../24/24-assets/bff24-banner.png') center/cover; }
.bff23-hero { background: linear-gradient(115deg,color-mix(in oklch,var(--color-paper) 90%,transparent),color-mix(in oklch,var(--color-paper) 67%,transparent)),url('../../23/23-assets/bff23-community.png') center/cover; }
.bff24-hero h1,.bff23-hero h1 { color: var(--color-ink); }
.bff24-hero-copy, .bff23-hero-copy { max-width: 44rem; }
.bff24-kicker,.bff24-section-label,.bff23-kicker,.bff23-section-label { margin-block-end: var(--space-md); color: var(--archive-blue); font-family: var(--font-display); font-size: var(--text-xs); letter-spacing:.16em; text-transform:uppercase; }
.bff24-hero h1,.bff23-hero h1 { margin:0; font-size:clamp(4.5rem,17vw,10rem); letter-spacing:-.08em; line-height:.83; }
.bff24-title-line,.bff23-title-line { margin-block:var(--space-md) var(--space-sm); font-family:var(--font-display); font-size:clamp(var(--text-xl),4vw,var(--text-3xl)); text-transform:uppercase; }
.bff24-date,.bff23-date { margin-block-end:var(--space-xl); font-family:var(--font-display); font-size:clamp(var(--text-md),2.5vw,var(--text-xl)); }
.bff24-lede,.bff23-lede { max-width:55ch; font-size:var(--text-md); }
.bff24-archive-note,.bff23-archive-note { max-width:60ch; margin-block-end:0; padding-inline-start:var(--space-sm); border-inline-start:3px solid var(--color-accent); background:color-mix(in oklch,var(--color-accent) 13%,transparent); font-size:var(--text-xs); line-height:1.3; }
.bff24-poster,.bff23-poster { margin:0; border:1px solid color-mix(in oklch,var(--color-ink) 20%,transparent); background:var(--color-ink); box-shadow:0 1rem 2.5rem color-mix(in oklch,var(--color-ink) 22%,transparent); }
.bff24-poster img,.bff23-poster img { display:block; width:100%; height:auto; margin:0; }
.bff24-poster figcaption,.bff23-poster figcaption,.bff24-gallery figcaption,.bff23-gallery figcaption,.bff24-story-image figcaption,.bff23-story-image figcaption { padding:var(--space-xs) var(--space-sm); color:var(--color-muted); font-size:var(--text-xs); letter-spacing:.08em; text-transform:uppercase; }
.bff24-index,.bff23-index { display:flex; flex-wrap:wrap; width:min(100%,1240px); margin:0 auto; padding:0 clamp(var(--space-md),5vw,var(--space-2xl)); border-block:1px solid color-mix(in oklch,var(--color-ink) 18%,transparent); list-style:none; }
.bff24-index li,.bff23-index li { flex:1 1 9rem; margin:0; border-inline-end:1px solid color-mix(in oklch,var(--color-ink) 15%,transparent); }
.bff24-index li:last-child,.bff23-index li:last-child { border-inline-end:0; }
.bff24-index a,.bff23-index a { display:block; padding:var(--space-md) var(--space-sm); color:var(--color-ink); font-family:var(--font-display); font-size:var(--text-sm); text-decoration:none; }
.bff24-index a span,.bff23-index a span { display:block; margin-block-end:var(--space-2xs); color:var(--archive-blue); font-size:var(--text-xs); }
.bff24-band,.bff23-band,.bff24-photo-band,.bff23-photo-band { width:100%; scroll-margin-block-start:var(--nav-height); }
.bff24-band--dark,.bff23-band--dark { background:var(--color-room-raised); color:var(--color-paper); }
.bff24-band--paper,.bff23-band--paper { background:var(--color-paper); color:var(--color-ink); }
.bff24-inner,.bff23-inner { width:min(100%,1240px); margin-inline:auto; padding:clamp(var(--space-2xl),7vw,var(--space-4xl)) clamp(var(--space-md),5vw,var(--space-2xl)); }
.bff24-band h2,.bff23-band h2,.bff24-photo-band h2,.bff23-photo-band h2 { max-width:18ch; margin-block-end:var(--space-lg); font-size:clamp(2.2rem,6vw,4.8rem); letter-spacing:-.06em; }
.bff24-band-lede,.bff23-band-lede { max-width:65ch; margin-block-end:clamp(var(--space-xl),5vw,var(--space-3xl)); font-size:var(--text-md); }
.bff24-band--dark a,.bff23-band--dark a { color:var(--color-screen-soft); }
.bff24-band--dark a:hover,.bff23-band--dark a:hover { color:var(--color-paper); }
.bff24-story-grid,.bff23-story-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.8fr); gap:clamp(var(--space-xl),5vw,var(--space-3xl)); align-items:center; }
.bff24-lead-copy,.bff23-lead-copy { font-size:var(--text-lg); }
.bff24-story-image,.bff23-story-image { margin:0; border:1px solid color-mix(in oklch,var(--color-paper) 18%,transparent); }
.bff24-story-image img,.bff23-story-image img { display:block; width:100%; height:auto; margin:0; }
.bff24-fact-line,.bff23-fact-line { display:flex; flex-wrap:wrap; gap:0; margin-block-start:var(--space-3xl); border-block:1px solid color-mix(in oklch,var(--color-paper) 22%,transparent); }
.bff24-fact-line span,.bff23-fact-line span { flex:1 1 9rem; padding:var(--space-sm); border-inline-end:1px solid color-mix(in oklch,var(--color-paper) 18%,transparent); font-family:var(--font-display); font-size:var(--text-sm); }
.bff24-programme-grid,.bff23-programme-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-xl); }
.bff24-programme-grid article,.bff23-programme-grid article { min-width:0; padding-block-start:var(--space-md); border-block-start:1px solid currentColor; }
.bff24-number,.bff23-number { color:var(--archive-blue); font-family:var(--font-display); }
.bff24-programme-grid h3,.bff23-programme-grid h3 { margin-block:var(--space-sm); color:inherit; }
.bff24-film-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-xl); }
.bff24-film-card { min-width:0; border-block-start:1px solid color-mix(in oklch,var(--color-paper) 32%,transparent); }
.bff24-film-card img { display:block; width:100%; height:14rem; object-fit:cover; margin:0; }
.bff24-film-card div { padding-block:var(--space-md); }
.bff24-film-card h3 { margin-block:var(--space-xs) var(--space-sm); color:var(--color-paper); font-size:var(--text-lg); }
.bff24-film-tag,.bff24-wall-label { color:var(--color-screen-soft); font-size:var(--text-xs); letter-spacing:.08em; text-transform:uppercase; }
.bff24-title-wall { margin-block-start:var(--space-3xl); padding-block-start:var(--space-xl); border-block-start:1px solid color-mix(in oklch,var(--color-paper) 24%,transparent); }
.bff24-title-wall ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 var(--space-2xl); margin:0; padding:0; list-style:none; }
.bff24-title-wall li { padding-block:var(--space-md); border-block-end:1px dashed color-mix(in oklch,var(--color-paper) 20%,transparent); }
.bff24-title-wall strong,.bff24-title-wall span { display:block; }
.bff24-title-wall span { color:color-mix(in oklch,var(--color-paper) 66%,transparent); font-size:var(--text-sm); }
.bff24-awards-grid,.bff23-awards-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--space-md); }
.bff24-awards-grid article,.bff23-awards-grid article { min-width:0; padding:var(--space-md); border-block-start:1px solid var(--color-ink); background:var(--color-paper-2); }
.bff24-awards-grid img { display:block; width:min(100%,9rem); aspect-ratio:1; object-fit:contain; margin:0 auto var(--space-md); }
.bff24-awards-grid p,.bff23-awards-grid p { margin-block-end:var(--space-xs); color:var(--archive-blue); font-size:var(--text-xs); text-transform:uppercase; }
.bff24-awards-grid h3,.bff23-awards-grid h3 { margin-block:0 var(--space-xs); color:var(--color-ink); font-size:var(--text-md); }
.bff24-awards-grid span,.bff23-awards-grid span { color:var(--color-muted); font-size:var(--text-sm); }
.bff24-award-note { margin-block-start:var(--space-xl); max-width:70ch; color:var(--color-muted); font-size:var(--text-sm); }
.bff24-photo-band,.bff23-photo-band { background:var(--color-room); color:var(--color-paper); }
.bff24-photo-band .bff24-section-label,.bff23-photo-band .bff23-section-label { color:var(--color-screen-soft); }
.bff24-gallery,.bff23-gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--space-md); }
.bff24-gallery figure,.bff23-gallery figure { min-width:0; margin:0; border:1px solid color-mix(in oklch,var(--color-paper) 18%,transparent); }
.bff24-gallery img,.bff23-gallery img { display:block; width:100%; height:13rem; object-fit:cover; margin:0; }
.bff24-gallery figcaption,.bff23-gallery figcaption { color:color-mix(in oklch,var(--color-paper) 70%,transparent); }
.bff24-source-list,.bff23-source-list { max-width:70ch; }
.bff24-uncertainty,.bff23-uncertainty { max-width:70ch; padding:var(--space-md); border-inline-start:3px solid var(--color-accent); background:color-mix(in oklch,var(--color-accent) 10%,transparent); }
.bff24-sources h3,.bff23-sources h3 { color:var(--color-paper); }
.bff24-endnote,.bff23-endnote { display:flex; flex-wrap:wrap; justify-content:space-between; gap:var(--space-md); width:min(100%,1240px); margin-inline:auto; padding:var(--space-xl) clamp(var(--space-md),5vw,var(--space-2xl)) var(--space-4xl); background:var(--color-room); color:var(--color-paper); }
.bff24-endnote p,.bff23-endnote p { margin:0; color:color-mix(in oklch,var(--color-paper) 78%,transparent); font-size:var(--text-sm); }
.bff24-endnote a,.bff23-endnote a { align-self:center; font-family:var(--font-display); }
.bff23-film-list { border-block-start:1px solid color-mix(in oklch,var(--color-paper) 28%,transparent); }
.bff23-film-list article { display:grid; grid-template-columns:4rem minmax(0,1fr); gap:var(--space-lg); padding-block:var(--space-lg); border-block-end:1px dashed color-mix(in oklch,var(--color-paper) 18%,transparent); }
.bff23-film-index { color:var(--color-screen-soft); font-family:var(--font-display); font-size:var(--text-lg); }
.bff23-film-list h3 { margin-block:0 var(--space-xs); color:var(--color-paper); }
.bff23-film-list h3 small { color:color-mix(in oklch,var(--color-paper) 64%,transparent); font-size:var(--text-sm); }
.bff23-film-list p { max-width:68ch; color:color-mix(in oklch,var(--color-paper) 76%,transparent); }
.bff23-award-mark { color:var(--archive-blue); font-family:var(--font-display); font-size:2.5rem; }
.bff23-award-muted { opacity:.72; }
.bff24-index a:hover,
.bff23-index a:hover {
  background: color-mix(in oklch, var(--color-screen) 10%, transparent);
  color: var(--color-ink);
  transform: translateX(var(--space-2xs));
}

@media (min-width: 821px) {
  .bff24-film-card:first-child {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
  }

  .bff24-film-card:first-child img {
    height: 19rem;
  }

  .bff23-programme-grid article:first-child {
    grid-column: span 2;
  }
}

.archive-route-notice { width:min(100%,60rem); margin-inline:auto; padding:clamp(5rem,12vw,10rem) clamp(var(--space-md),5vw,var(--space-2xl)); }
.archive-route-notice__label { color:var(--color-accent); font-family:var(--font-display); text-transform:uppercase; letter-spacing:.12em; }
.archive-route-notice h1 { max-width:18ch; }
@media (max-width:820px) { .bff24-hero,.bff23-hero,.bff24-story-grid,.bff23-story-grid { grid-template-columns:1fr; } .bff24-programme-grid,.bff23-programme-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .bff24-awards-grid,.bff23-awards-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .bff24-gallery,.bff23-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .bff24-index,.bff23-index { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); } .bff24-index li:nth-child(2n),.bff23-index li:nth-child(2n) { border-inline-end:0; } .bff24-programme-grid,.bff23-programme-grid,.bff24-film-grid,.bff24-title-wall ul,.bff24-awards-grid,.bff23-awards-grid,.bff24-gallery,.bff23-gallery { grid-template-columns:1fr; } .bff24-fact-line span,.bff23-fact-line span { border-block-end:1px solid color-mix(in oklch,var(--color-paper) 18%,transparent); } .bff24-gallery img,.bff23-gallery img { height:15rem; } }

/* BFF'27 early-bird MVP */
.edition-page--current.bff27-page {
  --archive-blue: var(--color-screen-soft);
  display: block;
  min-height: 0;
  align-content: initial;
  gap: 0;
}
.bff27-hero { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(16rem,.8fr); gap:clamp(var(--space-xl),7vw,var(--space-4xl)); align-items:center; padding-block:clamp(var(--space-2xl),8vw,var(--space-4xl)) calc(clamp(var(--space-2xl),8vw,var(--space-4xl)) + var(--frame-bottom) + var(--space-3xl)); }
.bff27-kicker,.bff27-section-label { margin-block-end:var(--space-md); color:var(--color-accent); font-family:var(--font-display); font-size:var(--text-xs); font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.bff27-year { margin-block-end:var(--space-xs); color:var(--color-accent); font-family:var(--font-display); font-size:var(--text-sm); letter-spacing:.18em; }
.bff27-hero h1 { margin-block:0 var(--space-xs); font-size:clamp(5rem,20vw,11rem); letter-spacing:-.08em; line-height:.82; }
.bff27-title-line { margin-block-end:var(--space-xl); color:var(--color-paper); font-family:var(--font-display); font-size:clamp(var(--text-lg),4vw,var(--text-3xl)); }
.bff27-date { margin-block-end:var(--space-xl); font-family:var(--font-display); font-size:var(--text-md); }
.bff27-lede { max-width:50ch; font-size:clamp(var(--text-lg),2.8vw,var(--text-2xl)); line-height:1.08; }
.bff27-note { max-width:58ch; margin-block-start:var(--space-xl); padding:var(--space-md); border-inline-start:3px solid var(--color-accent); background:color-mix(in oklch,var(--color-accent) 12%,transparent); font-size:var(--text-sm); }
.bff27-hero-cta { display:inline-block; margin-block-start:var(--space-lg); color:var(--color-paper); font-family:var(--font-display); font-size:var(--text-sm); text-decoration:underline; text-decoration-color:var(--color-accent); text-underline-offset:.35em; }
.bff27-hero-cta:hover { color:var(--color-accent); }
.bff27-hero-art {
  position: relative;
  margin: 0;
  padding: 0 0 var(--space-xl);
  border-block-end: 1px solid color-mix(in oklch, var(--color-paper) 30%, transparent);
  background: transparent;
  box-shadow: none;
}

.bff27-hero-art::before {
  position: absolute;
  inset-block-start: 12%;
  inset-inline-start: 0;
  width: 42%;
  height: 1px;
  background: var(--color-accent);
  content: "";
}

.bff27-hero-art img {
  display: block;
  width: min(100%, 25rem);
  height: auto;
  margin: 0 auto;
  filter: drop-shadow(0 1rem 1.5rem color-mix(in oklch, var(--color-ink) 42%, transparent));
}
.bff27-hero-art figcaption,.bff27-photo-caption { margin-block-start:var(--space-sm); color:var(--color-muted); font-size:var(--text-xs); letter-spacing:.08em; text-transform:uppercase; }
.bff27-index { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin:0; padding:0; border-block:1px solid color-mix(in oklch,var(--color-ink) 22%,transparent); list-style:none; }
.bff27-index a { display:block; min-width:0; padding:var(--space-md) var(--space-sm); border-inline-end:1px solid color-mix(in oklch,var(--color-ink) 18%,transparent); color:var(--color-ink); font-family:var(--font-display); font-size:var(--text-sm); text-decoration:none; }
.bff27-index a:last-child { border-inline-end:0; }
.bff27-index a:hover { color:var(--archive-blue); transform:translateX(var(--space-2xs)); }
.bff27-index span { display:block; margin-block-end:var(--space-2xs); color:var(--archive-blue); font-size:var(--text-xs); }
.bff27-band,.bff27-photo-band { width:100%; scroll-margin-block-start:var(--nav-height); }
.bff27-band--dark { background:var(--color-room-raised); color:var(--color-paper); }
.bff27-band--paper { background:var(--color-paper); color:var(--color-ink); }
.bff27-inner { width:min(100%,1240px); margin-inline:auto; padding:clamp(var(--space-2xl),7vw,var(--space-4xl)) clamp(var(--space-md),5vw,var(--space-2xl)); }
.bff27-band h2 { max-width:18ch; margin-block-end:var(--space-xl); font-size:clamp(2.5rem,7vw,5.5rem); letter-spacing:-.07em; line-height:.9; }
.bff27-band-lede { max-width:65ch; margin-block-end:var(--space-2xl); font-size:var(--text-lg); }
.bff27-band--dark a { color:var(--color-screen-soft); }
.bff27-band--dark a:hover { color:var(--color-paper); }
.bff27-story-grid,.bff27-two-column { display:grid; grid-template-columns:minmax(0,1fr) minmax(16rem,.72fr); gap:clamp(var(--space-xl),6vw,var(--space-4xl)); align-items:start; }
.bff27-lead-copy { font-size:var(--text-lg); }
.bff27-fact-strip { display:grid; border-block-start:1px solid currentColor; }
.bff27-fact-strip span { display:flex; flex-direction:column; gap:var(--space-2xs); padding-block:var(--space-md); border-block-end:1px dashed color-mix(in oklch,currentColor 38%,transparent); font-family:var(--font-display); font-size:var(--text-sm); }
.bff27-fact-strip strong { color:var(--archive-blue); font-size:var(--text-lg); font-weight:400; }
.bff27-cta-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; border-block-start:1px solid currentColor; }
.bff27-cta { display:flex; min-width:0; flex-direction:column; gap:var(--space-md); padding:var(--space-lg) var(--space-md); border-inline-end:1px solid color-mix(in oklch,currentColor 25%,transparent); border-block-end:1px solid currentColor; color:inherit; text-decoration:none; }
.bff27-cta:last-child { border-inline-end:0; }
.bff27-cta span { font-size:var(--text-sm); }
.bff27-cta strong { font-family:var(--font-display); font-size:var(--text-md); font-weight:400; text-decoration:underline; text-underline-offset:.3em; }
.bff27-cta:hover { background:color-mix(in oklch,var(--color-accent) 13%,transparent); transform:translateY(calc(var(--space-2xs) * -1)); }
.bff27-cta--dark { border-color:color-mix(in oklch,var(--color-paper) 35%,transparent); color:var(--color-paper); }
.bff27-small-note { margin-block-start:var(--space-lg); color:var(--color-muted); font-size:var(--text-xs); }
.bff27-photo-band { background:var(--color-room); color:var(--color-paper); }
.bff27-photo-rail { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2px; width:100vw; margin-inline:calc(50% - 50vw); }
.bff27-photo-rail figure { min-width:0; margin:0; overflow:hidden; background:var(--color-ink); }
.bff27-photo-rail img { display:block; width:100%; aspect-ratio:4 / 3; object-fit:cover; margin:0; opacity:.88; transition:opacity var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out); }
.bff27-photo-rail figure:hover img { opacity:1; transform:scale(1.025); }
.bff27-photo-rail figcaption { padding:var(--space-sm); color:color-mix(in oklch,var(--color-paper) 78%,transparent); font-family:var(--font-display); font-size:var(--text-xs); letter-spacing:.08em; text-transform:uppercase; }
.bff27-photo-caption { width:min(100%,1240px); margin:0 auto; padding:var(--space-md) clamp(var(--space-md),5vw,var(--space-2xl)) var(--space-3xl); }
.bff27-endnote { display:flex; width:min(100%,1240px); flex-wrap:wrap; justify-content:space-between; gap:var(--space-md); margin-inline:auto; padding:var(--space-xl) clamp(var(--space-md),5vw,var(--space-2xl)) var(--space-4xl); background:var(--color-room); color:var(--color-paper); }
.bff27-endnote p { margin:0; color:color-mix(in oklch,var(--color-paper) 78%,transparent); font-size:var(--text-sm); }
.bff27-endnote a { align-self:center; color:var(--color-screen-soft); font-family:var(--font-display); }
@media (max-width:820px) { .bff27-hero,.bff27-story-grid,.bff27-two-column { grid-template-columns:1fr; } .bff27-hero-art { max-width:28rem; } .bff27-cta-grid { grid-template-columns:1fr; } .bff27-cta { border-inline-end:0; } }
@media (max-width:560px) { .bff27-index { grid-template-columns:repeat(2,minmax(0,1fr)); } .bff27-index a:nth-child(2n) { border-inline-end:0; } .bff27-photo-rail { grid-template-columns:repeat(2,minmax(0,1fr)); } .bff27-photo-rail figcaption { padding:var(--space-xs); } }

.edition-page--bff25 .bff25-full-album,
.edition-page--bff23 .bff23-full-album {
  margin-block-start: var(--space-3xl);
  border-block-start: var(--rule-thin) solid color-mix(in oklch, var(--color-ink) 20%, transparent);
}

.edition-page--bff25 .bff25-full-album summary,
.edition-page--bff23 .bff23-full-album summary {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-sm) var(--space-lg);
  padding-block: var(--space-lg);
  cursor: pointer;
  list-style: none;
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: var(--text-md);
}

.edition-page--bff25 .bff25-full-album summary::-webkit-details-marker,
.edition-page--bff23 .bff23-full-album summary::-webkit-details-marker {
  display: none;
}

.edition-page--bff25 .bff25-full-album summary::after,
.edition-page--bff23 .bff23-full-album summary::after {
  content: '+';
  color: var(--bff25-blue-aa, var(--archive-blue));
  font-size: var(--text-xl);
  line-height: 1;
}

.edition-page--bff25 .bff25-full-album[open] summary::after,
.edition-page--bff23 .bff23-full-album[open] summary::after {
  content: '−';
}

.edition-page--bff25 .bff25-full-album summary strong,
.edition-page--bff23 .bff23-full-album summary strong {
  margin-inline-start: auto;
  color: var(--bff25-blue-aa, var(--archive-blue));
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 400;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.edition-page--bff25 .bff25-full-album-body,
.edition-page--bff23 .bff23-full-album-body {
  padding-block-end: var(--space-xl);
}

.edition-page--bff25 .bff25-full-album-body > .bff25-archive-note {
  margin-block: 0 var(--space-lg);
}

.edition-page--bff25 .bff25-photo-ledger--full { grid-template-columns:repeat(5,minmax(0,1fr)); }
.edition-page--bff25 .bff25-photo-ledger--full img { aspect-ratio:4 / 3; }
@media (max-width:60rem) { .edition-page--bff25 .bff25-photo-ledger--full { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (max-width:40rem) { .edition-page--bff25 .bff25-photo-ledger--full { grid-template-columns:repeat(2,minmax(0,1fr)); } }
