/* ==========================================================================
   Americas Book Service — Book Video page
   Loads after abs-design-system.css + home.css. Page styles prefixed .bv-.
   Art direction: the ABS cinema department — warm blacks, ivory title-card
   type, thin rules, letterboxed stills and one fictional production
   (The Last Tide) carried through the whole scroll, clearly labelled.
   ========================================================================== */
.page-video {
  --bv-black: #0d0d0f; --bv-warm: #121110; --bv-char: #18181b; --bv-ink2: #1f1e1d;
  --bv-champ: #d8c6a0; --bv-line: rgba(246, 240, 228, 0.12); --bv-line-2: rgba(246, 240, 228, 0.22);
  --bv-t1: rgba(248, 243, 234, 0.96); --bv-t2: rgba(248, 243, 234, 0.7); --bv-t3: rgba(248, 243, 234, 0.46);
  --bv-grade: saturate(0.6) sepia(0.14) contrast(1.06) brightness(0.9);
  background: var(--bv-black);
}
.page-video main { background: var(--bv-black); color: var(--bv-t1); }

/* ---------- shared type ---------- */
.bv-sec { position: relative; isolation: isolate; padding-block: clamp(88px, 10vw, 150px); overflow: hidden; }
.bv-sec > .container { position: relative; z-index: 1; }
.bv-kicker { display: flex; align-items: center; gap: 12px; margin: 0 0 22px; font-size: 0.66rem; font-weight: 700; letter-spacing: 0.24em; text-transform: uppercase; color: var(--bv-champ); }
.bv-kicker b { font-family: var(--font-display); font-weight: 400; font-style: italic; font-size: 1.02rem; letter-spacing: 0; color: var(--bv-t1); font-variant-numeric: tabular-nums; }
.bv-kicker span { width: 36px; height: 1px; background: currentColor; opacity: 0.6; }
.bv-kicker--ink { color: var(--bronze-ink); }
.bv-kicker--ink b { color: var(--ink); }
.bv-kicker--c { justify-content: center; }
.bv-h2 { margin: 0; font-family: var(--font-display); font-weight: 300; font-size: clamp(2.4rem, 1.3rem + 3.1vw, 4.4rem); line-height: 1; letter-spacing: -0.038em; color: var(--bv-t1); }
.bv-h2 em { display: block; font-style: italic; font-weight: 300; color: var(--bv-champ); }
.bv-h2--xl { font-size: clamp(2.7rem, 1.4rem + 3.8vw, 5.3rem); }
.bv-h2--ink { color: var(--ink); }
.bv-h2--ink em { color: #6b5536; }
.bv-h2--c { text-align: center; }
.bv-body { margin: 26px 0 0; max-width: 54ch; font-size: clamp(1rem, 0.96rem + 0.2vw, 1.1rem); line-height: 1.78; color: var(--bv-t2); }
.bv-body--ink { color: var(--on-light-2); }

/* thin frame corner marks, like a camera monitor's framing guides */
.bv-marks { position: absolute; inset: 14px; pointer-events: none; z-index: 3; }
.bv-marks i { position: absolute; width: 16px; height: 16px; border-color: rgba(248, 243, 234, 0.55); border-style: solid; border-width: 0; }
.bv-marks i:nth-child(1) { left: 0; top: 0; border-left-width: 1px; border-top-width: 1px; }
.bv-marks i:nth-child(2) { right: 0; top: 0; border-right-width: 1px; border-top-width: 1px; }
.bv-marks i:nth-child(3) { left: 0; bottom: 0; border-left-width: 1px; border-bottom-width: 1px; }
.bv-marks i:nth-child(4) { right: 0; bottom: 0; border-right-width: 1px; border-bottom-width: 1px; }

/* slow "iris" reveal for film frames */
.bv-reveal-frame { clip-path: inset(0 0 0 0); }
.js [data-reveal] .bv-reveal-frame, .js [data-reveal].bv-reveal-frame { clip-path: inset(8% 6% 8% 6%); transition: clip-path 1.6s var(--ease-out) var(--d, 0s); }
.js [data-reveal].is-in .bv-reveal-frame, .js [data-reveal].is-in.bv-reveal-frame { clip-path: inset(0 0 0 0); }
.bv-reveal-frame img { transform: scale(1.08); transition: transform 2.4s var(--ease-out); }
[data-reveal].is-in .bv-reveal-frame img { transform: scale(1); }

/* photographic section layer */
.bv-bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.bv-bg::before { content: ""; position: absolute; inset: -30px; background-image: none; background-size: cover; background-position: var(--pos, center); filter: blur(var(--b, 5px)) var(--bv-grade); opacity: 0; transition: opacity 1.8s var(--ease-out); }
.bv-bg.is-loaded::before { background-image: var(--img); opacity: var(--o, 0.3); }
.bv-bg::after { content: ""; position: absolute; inset: 0; background: var(--veil, radial-gradient(120% 90% at 50% 50%, transparent 30%, rgba(13, 13, 15, 0.8) 100%)); }

/* ---------- Book cover: The Last Tide ---------- */
.bv-cover { position: relative; display: flex; flex-direction: column; aspect-ratio: 2 / 3; overflow: hidden; container-type: inline-size; background: #3c4446; color: #f3ede2; border-radius: 1px 3px 3px 1px; box-shadow: inset 2px 0 0 rgba(255, 255, 255, 0.12), inset 5px 0 6px -3px rgba(0, 0, 0, 0.35), 0 18px 30px -14px rgba(0, 0, 0, 0.8); flex: none; }
.bv-cover img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(0.5) contrast(1.05) brightness(0.86); }
.bv-cover::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20, 24, 26, 0.5) 0%, transparent 30%, transparent 55%, rgba(16, 18, 20, 0.78) 100%); }
.bv-cover > span { position: relative; z-index: 1; }
.bv-cover__k { margin: 11cqw 0 0; text-align: center; font-size: 5.4cqw; font-weight: 700; letter-spacing: 0.34em; text-transform: uppercase; opacity: 0.85; }
.bv-cover__t { margin-top: auto; padding: 0 9cqw; text-align: center; font-family: var(--font-display); font-style: italic; font-weight: 300; font-size: 17cqw; line-height: 0.95; letter-spacing: -0.02em; }
.bv-cover__a { margin: 6cqw 0 10cqw; text-align: center; font-size: 5.6cqw; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; }
.bv-cover--sm { width: clamp(46px, 4.4vw, 62px); }
.bv-cover--md { width: clamp(58px, 7vw, 104px); }

/* ---------- Play control (quiet, not a giant icon) ---------- */
.bv-play { display: inline-flex; align-items: center; gap: 14px; padding: 0; background: none; border: 0; color: var(--bv-t1); text-decoration: none; cursor: pointer; font: inherit; }
.bv-play__ring { position: relative; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgba(248, 243, 234, 0.55); background: rgba(13, 13, 15, 0.28); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transition: transform 0.6s var(--ease-out), border-color 0.4s, background 0.4s; }
.bv-play__ring::after { content: ""; position: absolute; inset: -7px; border-radius: 50%; border: 1px solid rgba(216, 198, 160, 0.35); animation: bvBreath 3.6s ease-in-out infinite; }
.bv-play__ring svg { width: 18px; height: 18px; margin-left: 3px; }
.bv-play__txt { display: grid; gap: 2px; text-align: left; }
.bv-play__txt b { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; }
.bv-play__txt i { font-style: normal; font-size: 0.78rem; color: var(--bv-t3); font-variant-numeric: tabular-nums; letter-spacing: 0.08em; }
.bv-play:hover .bv-play__ring, .bv-play:focus-visible .bv-play__ring { transform: scale(1.06); border-color: var(--bv-champ); background: rgba(216, 198, 160, 0.14); }
@keyframes bvBreath { 0%, 100% { transform: scale(0.96); opacity: 0.35; } 50% { transform: scale(1.06); opacity: 0.9; } }

/* ==========================================================================
   HERO
   ========================================================================== */
.bv-hero { position: relative; isolation: isolate; overflow: hidden; min-height: min(100svh, 940px); display: flex; align-items: center; padding: 150px 0 clamp(96px, 9vw, 120px); background: var(--bv-black); color: var(--bv-t1); }
.bv-hero__media { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.bv-hero__img { position: absolute; inset: -34px; filter: blur(5px) saturate(0.8) sepia(0.12) contrast(1.04) brightness(1.08);
  background: #2a2119 url("../images/photos/1632670536499-ebc8bc72892a-2400.webp") 38% 40% / auto 118% no-repeat; }
.bv-hero__media::after { content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(90deg, rgba(10, 10, 12, 0.93) 0%, rgba(10, 10, 12, 0.74) 30%, rgba(10, 10, 12, 0.2) 52%, rgba(10, 10, 12, 0.42) 100%),
    linear-gradient(180deg, rgba(10, 10, 12, 0.62) 0%, transparent 24%, transparent 66%, rgba(13, 13, 15, 1) 100%),
    radial-gradient(90% 80% at 70% 45%, rgba(176, 130, 72, 0.14), transparent 70%),
    radial-gradient(140% 120% at 55% 50%, transparent 55%, rgba(0, 0, 0, 0.6) 100%); }
.bv-hero__inner { position: relative; width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.92fr); gap: clamp(40px, 5vw, 80px); align-items: center; }
.bv-crumbs { position: absolute; top: -60px; left: var(--gutter); }
.bv-crumbs ol { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; font-size: 0.76rem; letter-spacing: 0.04em; }
.bv-crumbs li { display: inline-flex; align-items: center; gap: 6px; color: var(--bv-t3); }
.bv-crumbs li + li::before { content: "/"; color: rgba(248, 243, 234, 0.26); }
.bv-crumbs a { color: var(--bv-t2); text-decoration: none; }
.bv-crumbs a:hover, .bv-crumbs a:focus-visible { color: var(--bv-t1); }
.bv-crumbs [aria-current] { color: var(--bv-champ); }
.bv-hero__copy { display: grid; gap: 24px; max-width: 640px; }
.bv-eyebrow { display: inline-flex; align-items: center; gap: 12px; margin: 0; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.28em; text-transform: uppercase; color: var(--bv-champ); }
.bv-rec { width: 7px; height: 7px; border-radius: 50%; background: #b5473a; box-shadow: 0 0 0 3px rgba(181, 71, 58, 0.18); animation: bvRec 2.4s steps(2) infinite; }
@keyframes bvRec { 50% { opacity: 0.25; } }
.bv-hero__title { margin: 0; font-family: var(--font-display); font-weight: 280; font-size: clamp(3rem, 1.5rem + 4.6vw, 6.1rem); line-height: 0.95; letter-spacing: -0.045em; color: var(--bv-t1); text-wrap: balance; }
.bv-hero__title span { display: block; }
.bv-hero__title em { display: block; font-style: italic; font-weight: 300; color: var(--bv-champ); }
.bv-hero__lead { margin: 0; max-width: 50ch; font-size: clamp(1.02rem, 0.96rem + 0.26vw, 1.15rem); line-height: 1.74; color: var(--bv-t2); }
.bv-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
.bv-hero__ctas .btn, .bv-cta__btns .btn { border-radius: 10px; }
.bv-hero__formats { display: flex; flex-wrap: wrap; gap: 6px 0; margin: 10px 0 0; padding-top: 20px; border-top: 1px solid var(--bv-line); font-size: 0.74rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--bv-t3); }
.bv-hero__formats span + span::before { content: "·"; margin: 0 12px; color: var(--bv-champ); }

.bv-poster { margin: 0; justify-self: end; width: 100%; max-width: 640px; }
.bv-poster__frame { position: relative; aspect-ratio: 16 / 10.5; overflow: hidden; background: #111; border-radius: 3px; box-shadow: 0 0 0 1px rgba(248, 243, 234, 0.12), 0 60px 110px -50px rgba(0, 0, 0, 0.95); }
.bv-poster .bv-marks { inset: calc(9.5% + 12px) 14px; }
.bv-poster__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 30% 50%; filter: var(--bv-grade); animation: bvKen 26s ease-in-out infinite alternate; }
@keyframes bvKen { from { transform: scale(1.03) translate(0, 0); } to { transform: scale(1.12) translate(-2%, 1%); } }
.bv-poster__frame::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(8, 8, 10, 0.92) 0 9.5%, transparent 9.5% 90.5%, rgba(8, 8, 10, 0.92) 90.5%), linear-gradient(0deg, rgba(8, 8, 10, 0.85) 0%, rgba(8, 8, 10, 0.2) 45%, transparent 70%); }
.bv-poster__top { position: absolute; z-index: 3; left: 0; right: 0; top: 0; height: 9.5%; display: flex; align-items: center; justify-content: space-between; padding: 0 22px; font-size: 0.6rem; letter-spacing: 0.26em; text-transform: uppercase; color: var(--bv-t3); }
.bv-poster__title { position: absolute; z-index: 3; left: clamp(18px, 2.4vw, 32px); bottom: calc(9.5% + 20px); display: flex; align-items: flex-end; gap: 16px; }
.bv-poster__name { margin: 0; font-family: var(--font-display); font-weight: 300; font-size: clamp(1.8rem, 1rem + 2vw, 2.8rem); line-height: 1; letter-spacing: -0.03em; }
.bv-poster__by { margin: 6px 0 0; font-size: 0.68rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: var(--bv-t2); }
.bv-poster .bv-play { position: absolute; z-index: 3; right: clamp(18px, 2.4vw, 30px); bottom: calc(9.5% + 22px); }
.bv-poster figcaption { margin-top: 14px; font-size: 0.72rem; letter-spacing: 0.08em; color: var(--bv-t3); text-align: right; }
.bv-hero__tc { position: absolute; left: 0; right: 0; bottom: 0; display: flex; gap: 28px; justify-content: space-between; padding: 14px var(--gutter); border-top: 1px solid var(--bv-line); font-size: 0.64rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--bv-t3); font-variant-numeric: tabular-nums; }

/* ==========================================================================
   01 — THE CINEMATIC DIFFERENCE
   ========================================================================== */
.bv-diff { background: var(--bv-black); }
.bv-diff__grid { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: clamp(48px, 6vw, 110px); align-items: center; }
.bv-diff__spec { display: grid; margin: 40px 0 0; border-top: 1px solid var(--bv-line); max-width: 460px; }
.bv-diff__spec div { display: grid; grid-template-columns: 110px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--bv-line); }
.bv-diff__spec dt { font-size: 0.66rem; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--bv-champ); padding-top: 3px; }
.bv-diff__spec dd { margin: 0; font-family: var(--font-display); font-size: 1.08rem; color: var(--bv-t1); }
.bv-still { margin: 0; }
.bv-still__frame { position: relative; aspect-ratio: 2.39 / 1; overflow: hidden; background: #111; box-shadow: 0 0 0 1px var(--bv-line); }
.bv-still__frame img { width: 100%; height: 100%; object-fit: cover; filter: var(--bv-grade) brightness(0.95); }
.bv-still figcaption, .bv-produce__fig figcaption { display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--bv-line); font-size: 0.66rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--bv-t3); font-variant-numeric: tabular-nums; }

/* ==========================================================================
   02 — WHAT WE PRODUCE: an editorial reel list
   ========================================================================== */
.bv-produce { background: var(--bv-warm); border-top: 1px solid var(--bv-line); }
.bv-produce .bv-bg { --veil: linear-gradient(90deg, rgba(18, 17, 16, 0.55) 0%, rgba(18, 17, 16, 0.92) 55%, rgba(18, 17, 16, 0.96) 100%); }
.bv-produce__grid { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(48px, 7vw, 120px); align-items: start; }
.bv-produce__head { position: sticky; top: 110px; }
.bv-produce__fig { margin: 40px 0 0; max-width: 420px; }
.bv-produce__fig > div { aspect-ratio: 4 / 4.6; overflow: hidden; box-shadow: 0 0 0 1px var(--bv-line); }
.bv-produce__fig img { width: 100%; height: 100%; object-fit: cover; filter: var(--bv-grade); }
.bv-produce__fig figcaption { justify-content: flex-start; letter-spacing: 0.08em; text-transform: none; font-size: 0.78rem; }
.bv-reel { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--bv-line-2); }
.bv-reel__item { position: relative; display: grid; grid-template-columns: clamp(64px, 7vw, 108px) minmax(0, 1fr) auto; gap: 20px; align-items: baseline; padding: clamp(22px, 2.4vw, 30px) 0; border-bottom: 1px solid var(--bv-line); }
.bv-reel__item::before { content: ""; position: absolute; left: 0; bottom: -1px; height: 1px; width: 0; background: var(--bv-champ); transition: width 0.9s var(--ease-out); }
.bv-reel__item:hover::before { width: 100%; }
.bv-reel__n { font-family: var(--font-display); font-weight: 250; font-size: clamp(2.4rem, 1.6rem + 2vw, 3.6rem); line-height: 0.8; letter-spacing: -0.04em; color: rgba(248, 243, 234, 0.28); font-variant-numeric: tabular-nums; transition: color 0.5s; }
.bv-reel__item:hover .bv-reel__n { color: var(--bv-champ); }
.bv-reel h3 { margin: 0; font-family: var(--font-display); font-weight: 350; font-size: clamp(1.3rem, 1.1rem + 0.6vw, 1.7rem); letter-spacing: -0.02em; color: var(--bv-t1); }
.bv-reel p { margin: 8px 0 0; max-width: 50ch; color: var(--bv-t2); line-height: 1.65; font-size: 0.98rem; }
.bv-reel__ph { font-size: 0.62rem; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--bv-t3); white-space: nowrap; }
.bv-produce__also { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 0; margin: 30px 0 0; font-size: 0.86rem; color: var(--bv-t3); }
.bv-produce__also span { margin-left: 14px; font-family: var(--font-display); font-style: italic; font-size: 1rem; color: var(--bv-t1); }
.bv-produce__also span + span::before { content: "/"; margin-right: 14px; color: var(--bv-champ); font-style: normal; }

/* ==========================================================================
   03 — FEATURED TRAILER + FILM STRIP
   ========================================================================== */
.bv-feature { background: #09090a; }
.bv-feature__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr); gap: 24px 60px; align-items: end; margin-bottom: clamp(40px, 5vw, 64px); }
.bv-feature__head .bv-kicker { grid-column: 1 / -1; margin: 0; }
.bv-feature__head .bv-body { margin: 0; justify-self: end; }
.bv-player { margin: 0; }
.bv-player__screen { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: #050506; box-shadow: 0 0 0 1px rgba(248, 243, 234, 0.1), 0 80px 140px -60px rgba(0, 0, 0, 1); container-type: inline-size; }
.bv-player__slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.4s ease; }
.bv-player__slide.is-on { opacity: 1; }
.bv-player__slide img { width: 100%; height: 100%; object-fit: cover; filter: var(--bv-grade); transform: scale(1.02); }
.bv-player__slide.is-on img { animation: bvPush 7s linear forwards; }
.bv-player__slide--poster.is-on img { animation: bvKen 30s ease-in-out infinite alternate; }
@keyframes bvPush { to { transform: scale(1.11); } }
/* 2.39:1 letterbox inside the 16:9 screen */
.bv-player__bars { position: absolute; inset: 0; z-index: 2; pointer-events: none; background: linear-gradient(180deg, #050506 0 12.8%, transparent 12.8% 87.2%, #050506 87.2%); }
.bv-player__bars::after { content: ""; position: absolute; left: 0; right: 0; top: 12.8%; bottom: 12.8%; background: linear-gradient(0deg, rgba(5, 5, 6, 0.8) 0%, transparent 42%), radial-gradient(120% 120% at 50% 50%, transparent 55%, rgba(0, 0, 0, 0.55) 100%); }
.bv-player__title { position: absolute; z-index: 3; left: 4.5cqw; bottom: calc(12.8% + 3.6cqw); display: flex; align-items: flex-end; gap: 2.2cqw; transition: opacity 0.8s, transform 0.8s var(--ease-out); }
.bv-player__kick { margin: 0 0 1cqw; font-size: max(0.6rem, 0.9cqw); font-weight: 700; letter-spacing: 0.26em; text-transform: uppercase; color: var(--bv-champ); }
.bv-player__name { margin: 0; font-family: var(--font-display); font-weight: 280; font-size: clamp(2rem, 6.4cqw, 5.4rem); line-height: 0.92; letter-spacing: -0.04em; color: var(--bv-t1); }
.bv-player__by { margin: 1.1cqw 0 0; font-size: max(0.64rem, 1cqw); font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: var(--bv-t2); }
.bv-play--lg { position: absolute; z-index: 3; right: 4.5cqw; bottom: calc(12.8% + 4cqw); transition: opacity 0.6s; }
.bv-play--lg .bv-play__ring { width: clamp(52px, 6.4cqw, 78px); height: clamp(52px, 6.4cqw, 78px); }
.bv-play--lg .bv-play__ring svg { width: 22px; height: 22px; }
.bv-player__caps { position: absolute; z-index: 3; left: 0; right: 0; top: 50%; transform: translateY(-50%); text-align: center; pointer-events: none; }
.bv-player__cap { position: absolute; left: 8%; right: 8%; top: 50%; margin: 0; transform: translateY(-40%); font-family: var(--font-display); font-style: italic; font-weight: 300; font-size: clamp(1.2rem, 3.6cqw, 3rem); letter-spacing: -0.02em; color: var(--bv-t1); text-shadow: 0 2px 30px rgba(0, 0, 0, 0.6); opacity: 0; transition: opacity 1s ease 0.5s, transform 1.6s var(--ease-out) 0.5s; }
.bv-player__cap.is-on { opacity: 1; transform: translateY(-50%); }
.bv-player__ctrl { position: absolute; z-index: 4; left: 0; right: 0; bottom: 0; height: 12.8%; display: flex; align-items: center; gap: clamp(10px, 1.6cqw, 22px); padding: 0 clamp(12px, 2.4cqw, 30px); font-size: 0.7rem; letter-spacing: 0.14em; color: var(--bv-t3); font-variant-numeric: tabular-nums; }
.bv-player__pp { display: grid; place-items: center; width: 30px; height: 30px; padding: 0; border: 0; border-radius: 50%; background: none; color: var(--bv-t1); cursor: pointer; flex: none; }
.bv-player__pp svg { width: 16px; height: 16px; fill: currentColor; }
.bv-player__pp .pp-pause, .is-playing .bv-player__pp .pp-play { display: none; }
.is-playing .bv-player__pp .pp-pause { display: block; }
.bv-player__tc b { font-weight: 600; color: var(--bv-t1); }
.bv-player__track { position: relative; flex: 1; height: 1px; background: rgba(248, 243, 234, 0.2); }
.bv-player__fill { position: absolute; left: 0; top: -0.5px; height: 2px; width: 0; background: var(--bv-champ); }
.bv-player__track i { position: absolute; top: -3px; width: 1px; height: 7px; background: rgba(248, 243, 234, 0.35); }
.bv-player__fmt { white-space: nowrap; }
.is-playing .bv-player__title { opacity: 0; transform: translateY(10px); }
.is-playing .bv-play--lg { opacity: 0; pointer-events: none; }
.bv-player__meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 36px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--bv-line); font-size: 0.86rem; color: var(--bv-t1); }
.bv-player__meta b { display: block; margin-bottom: 4px; font-size: 0.6rem; font-weight: 700; letter-spacing: 0.24em; text-transform: uppercase; color: var(--bv-t3); }
.bv-player__meta em { margin-left: auto; font-size: 0.74rem; color: var(--bv-t3); }

.bv-strip { margin-top: clamp(64px, 7vw, 100px); }
.bv-strip__label { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; margin: 0 0 18px; font-size: 0.66rem; font-weight: 700; letter-spacing: 0.24em; text-transform: uppercase; color: var(--bv-champ); }
.bv-strip__label span + span { color: var(--bv-t3); font-weight: 600; }
.bv-strip__list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; margin: 0; padding: 16px 0; list-style: none; background: #050506;
  border-block: 1px solid var(--bv-line);
  /* discreet perforations above and below the frames */
  background-image: radial-gradient(circle at 50% 50%, rgba(248, 243, 234, 0.14) 0 1.6px, transparent 2.2px), radial-gradient(circle at 50% 50%, rgba(248, 243, 234, 0.14) 0 1.6px, transparent 2.2px);
  background-size: 22px 8px, 22px 8px; background-position: 0 4px, 0 calc(100% - 4px); background-repeat: repeat-x; }
.bv-frame { padding: 0 6px; }
.bv-frame button { display: block; width: 100%; padding: 0; border: 0; background: none; color: inherit; text-align: left; cursor: pointer; font: inherit; }
.bv-frame__img { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #111; }
.bv-frame__img::after { content: ""; position: absolute; inset: 0; box-shadow: inset 0 0 0 1px rgba(248, 243, 234, 0.1); transition: box-shadow 0.5s; }
.bv-frame__img img { width: 100%; height: 100%; object-fit: cover; filter: var(--bv-grade) brightness(0.88); transition: transform 1.4s var(--ease-out), filter 0.6s; }
.bv-frame button:hover .bv-frame__img img, .bv-frame button:focus-visible .bv-frame__img img { transform: scale(1.05); filter: var(--bv-grade) brightness(1); }
.bv-frame button:hover .bv-frame__img::after, .bv-frame.is-current .bv-frame__img::after { box-shadow: inset 0 0 0 1px var(--bv-champ); }
.bv-frame__meta { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; padding: 12px 2px 2px; }
.bv-frame__meta b { font-size: 0.6rem; font-weight: 700; letter-spacing: 0.24em; text-transform: uppercase; color: var(--bv-t3); }
.bv-frame__meta em { grid-row: 2; font-family: var(--font-display); font-style: normal; font-size: 1.08rem; color: var(--bv-t1); letter-spacing: -0.01em; }
.bv-frame__meta span { grid-row: 1 / 3; grid-column: 2; align-self: end; font-size: 0.64rem; letter-spacing: 0.1em; color: var(--bv-t3); font-variant-numeric: tabular-nums; }
.js .bv-frame[data-reveal] { transform: none; }
.js .bv-frame[data-reveal] .bv-frame__img { clip-path: inset(0 100% 0 0); transition: clip-path 1.3s var(--ease-out) var(--d, 0s); }
.js .bv-frame[data-reveal].is-in .bv-frame__img { clip-path: inset(0 0 0 0); }

/* ==========================================================================
   04 — PROCESS: a production timeline
   ========================================================================== */
.bv-process { background: var(--bv-char); }
.bv-process .bv-bg { --veil: linear-gradient(180deg, rgba(24, 24, 27, 0.9) 0%, rgba(24, 24, 27, 0.62) 45%, rgba(24, 24, 27, 0.92) 100%); }
.bv-process__head { margin-bottom: clamp(52px, 6vw, 84px); }
.bv-tl { position: relative; }
.bv-tl__track { position: absolute; left: 0; right: 0; top: 36px; height: 1px; background: var(--bv-line-2); }
.bv-tl__head { position: absolute; top: -12px; left: 0; width: 1px; height: 25px; background: var(--bv-champ); box-shadow: 0 0 12px rgba(216, 198, 160, 0.6); }
.bv-tl__head::before { content: ""; position: absolute; top: -4px; left: -4px; border: 4.5px solid transparent; border-top-color: var(--bv-champ); }
.js .bv-tl.is-in .bv-tl__head { animation: bvHead 9s cubic-bezier(0.45, 0, 0.3, 1) forwards; }
@keyframes bvHead { from { left: 0; } to { left: calc(100% - 1px); } }
.bv-tl__list { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0 clamp(16px, 2vw, 30px); margin: 0; padding: 0; list-style: none; }
.bv-tl__step { position: relative; display: grid; align-content: start; }
.bv-tl__tc { font-size: 0.64rem; letter-spacing: 0.18em; color: var(--bv-t3); font-variant-numeric: tabular-nums; height: 30px; }
.bv-tl__dot { width: 9px; height: 9px; margin: 2px 0 26px -4px; border-radius: 50%; background: var(--bv-char); border: 1px solid var(--bv-champ); }
.bv-tl__n { font-family: var(--font-display); font-style: italic; font-size: 0.95rem; color: var(--bv-champ); }
.bv-tl__step h3 { margin: 6px 0 12px; font-family: var(--font-display); font-weight: 300; font-size: clamp(1.6rem, 1.2rem + 1vw, 2.2rem); letter-spacing: -0.03em; color: var(--bv-t1); }
.bv-tl__step p { margin: 0; font-size: 0.92rem; line-height: 1.65; color: var(--bv-t2); }

/* ==========================================================================
   05 — STORYBOARD: a production board on paper
   ========================================================================== */
.bv-board { background: #e9e2d4; color: var(--ink); }
.bv-board::before { content: ""; position: absolute; inset: 0; background: var(--grain); opacity: 0.5; pointer-events: none; mix-blend-mode: multiply; }
.bv-board__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.75fr); gap: 20px 60px; align-items: end; margin-bottom: clamp(44px, 5vw, 70px); }
.bv-board__head .bv-kicker { grid-column: 1 / -1; margin: 0; }
.bv-board__head .bv-body { margin: 0; }
.bv-board__grid { display: grid; grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.6fr) minmax(0, 0.55fr); gap: clamp(24px, 3vw, 44px); align-items: start; }
.bv-script { padding: clamp(24px, 2.6vw, 36px); background: #fbf8f1; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.05), 0 24px 40px -28px rgba(60, 40, 10, 0.45); font-family: "Courier Prime", "Courier New", ui-monospace, monospace; font-size: 0.8rem; line-height: 1.6; color: #2a2723; transform: rotate(-0.6deg); }
.bv-script p { margin: 0 0 12px; }
.bv-script__hd { display: flex; justify-content: space-between; gap: 12px; padding-bottom: 12px; margin-bottom: 18px !important; border-bottom: 1px solid rgba(0, 0, 0, 0.12); font-family: var(--font-sans); font-size: 0.6rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: #8a8174; }
.bv-script__sl { font-weight: 700; }
.bv-script__ch { margin: 16px 0 0 !important; padding-left: 34%; }
.bv-script__dl { padding: 0 14% 0 18%; }
.bv-script__tr { text-align: right; }
.bv-script__note { margin: 20px 0 0 !important; padding: 10px 12px; border-left: 2px solid var(--bronze); background: rgba(176, 141, 87, 0.08); font-family: var(--font-display); font-style: italic; font-size: 0.9rem; line-height: 1.45; color: #5a4d3b; }
.bv-sb { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 22px; margin: 0; padding: 0; list-style: none; }
.bv-sb__frame { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: #fbf8f1; border: 1.5px solid #2a2723; }
.bv-sb__frame img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.25) brightness(1.04); mix-blend-mode: multiply; opacity: 0.85; }
.bv-sb__move { position: absolute; inset: 0; width: 100%; height: 100%; color: #b5473a; }
.bv-sb__shot { position: absolute; left: 0; top: 0; padding: 3px 8px; background: #2a2723; color: #fbf8f1; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.14em; }
.bv-sb__cam { display: flex; justify-content: space-between; gap: 10px; margin: 12px 0 4px; font-size: 0.66rem; letter-spacing: 0.18em; text-transform: uppercase; color: #8a8174; }
.bv-sb__cam b { color: var(--ink); font-weight: 700; }
.bv-sb__note { margin: 0; font-family: var(--font-display); font-style: italic; font-size: 0.98rem; line-height: 1.45; color: #4a443c; }
.bv-board__refs { padding-top: 4px; border-top: 1px solid rgba(21, 23, 28, 0.2); }
.bv-board__label { margin: 12px 0 16px; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--bronze-ink); }
.bv-swatches { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 0 0 22px; padding: 0; list-style: none; }
.bv-swatches li { display: grid; gap: 6px; font-size: 0.72rem; color: var(--on-light-2); }
.bv-swatches li::before { content: ""; aspect-ratio: 3 / 2; background: var(--c); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08); }
.bv-board__small { margin: 0; padding: 10px 0; border-top: 1px solid rgba(21, 23, 28, 0.1); font-size: 0.82rem; line-height: 1.5; color: var(--on-light-2); }
.bv-board__small b { display: block; font-size: 0.6rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ink); }

/* ==========================================================================
   06 — GENRES: six lit panels
   ========================================================================== */
.bv-genres { background: var(--bv-black); }
.bv-genres__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr); gap: 20px 60px; align-items: end; margin-bottom: clamp(40px, 5vw, 64px); }
.bv-genres__head .bv-kicker { grid-column: 1 / -1; margin: 0; }
.bv-genres__head .bv-body { margin: 0; justify-self: end; }
.bv-genre__list { display: flex; gap: 6px; height: clamp(440px, 42vw, 560px); margin: 0; padding: 0; list-style: none; }
.bv-genre { flex: 1 1 0; min-width: 0; transition: flex-grow 1s var(--ease-out); }
.bv-genre:has(button[aria-pressed="true"]) { flex-grow: 3.2; }
.bv-genre button { position: relative; display: block; width: 100%; height: 100%; padding: 0; overflow: hidden; border: 0; background: #0a0a0b; color: inherit; text-align: left; cursor: pointer; font: inherit; }
.bv-genre__img { position: absolute; inset: -10px; background: var(--img) center / cover no-repeat; filter: var(--f, saturate(0.6)) blur(0.5px); opacity: 0.55; transform: scale(1.04); transition: opacity 0.9s, transform 2.4s var(--ease-out), filter 0.9s; }
.bv-genre button::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9, 9, 10, 0.2) 0%, transparent 35%, rgba(9, 9, 10, 0.92) 100%); }
.bv-genre button[aria-pressed="true"] .bv-genre__img, .bv-genre button:hover .bv-genre__img { opacity: 0.95; transform: scale(1); }
.bv-genre--lit { --f: saturate(0.5) sepia(0.2) brightness(0.85); }
.bv-genre--thr { --f: saturate(0.45) hue-rotate(-8deg) contrast(1.2) brightness(0.7); }
.bv-genre--rom { --f: saturate(0.9) sepia(0.35) brightness(0.85); }
.bv-genre--mem { --f: saturate(0.3) sepia(0.5) contrast(0.95) brightness(0.85); }
.bv-genre--mys { --f: saturate(0.35) contrast(1.15) brightness(0.72); }
.bv-genre--fan { --f: saturate(0.7) contrast(1.08) brightness(0.8); }
.bv-genre__n { position: absolute; z-index: 2; left: 20px; top: 18px; font-family: var(--font-display); font-style: italic; font-size: 0.95rem; color: var(--bv-champ); }
.bv-genre__txt { position: absolute; z-index: 2; left: 20px; right: 20px; bottom: 22px; display: grid; gap: 8px; }
.bv-genre__txt b { font-family: var(--font-display); font-weight: 300; font-size: clamp(1.3rem, 1rem + 1vw, 2.2rem); line-height: 1; letter-spacing: -0.03em; color: var(--bv-t1); white-space: nowrap; }
.bv-genre__txt em { font-style: normal; font-size: 0.7rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--bv-t2); white-space: nowrap; opacity: 0; transform: translateY(8px); transition: opacity 0.6s 0.2s, transform 0.8s var(--ease-out) 0.2s; }
.bv-genre button[aria-pressed="true"] .bv-genre__txt em { opacity: 1; transform: none; }
.bv-genre button:not([aria-pressed="true"]) .bv-genre__txt b { writing-mode: vertical-rl; transform: rotate(180deg); font-size: clamp(1.1rem, 0.9rem + 0.6vw, 1.5rem); }
.bv-genre button:not([aria-pressed="true"]) .bv-genre__txt em { visibility: hidden; }
.bv-genre button:focus-visible { outline: 1px solid var(--bv-champ); outline-offset: -1px; }

/* ==========================================================================
   07 — WHERE IT PLAYS
   ========================================================================== */
.bv-uses { background: var(--bv-warm); border-top: 1px solid var(--bv-line); }
.bv-uses__grid { display: grid; grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr); gap: clamp(40px, 6vw, 100px); align-items: start; }
.bv-uses__head { position: sticky; top: 120px; }
.bv-uses__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(28px, 4vw, 56px); margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--bv-line-2); }
.bv-uses__list li { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 14px; align-items: start; padding: 22px 0 24px; border-bottom: 1px solid var(--bv-line); }
.bv-uses__n { font-family: var(--font-display); font-style: italic; font-size: 0.92rem; color: var(--bv-champ); padding-top: 4px; }
.bv-uses__list h3 { margin: 0; font-family: var(--font-display); font-weight: 350; font-size: 1.28rem; letter-spacing: -0.015em; color: var(--bv-t1); }
.bv-uses__list p { margin: 6px 0 0; font-size: 0.88rem; line-height: 1.55; color: var(--bv-t2); }
.bv-uses__r { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; padding-top: 6px; }
.bv-uses__r > i { display: inline-block; height: 16px; aspect-ratio: var(--w) / var(--h); max-width: 30px; border: 1px solid rgba(216, 198, 160, 0.6); border-radius: 1.5px; }
.bv-uses__r > i + i { margin-top: -2px; }
.bv-uses__r { flex-direction: row; flex-wrap: wrap; justify-content: flex-end; max-width: 80px; }
.bv-uses__r em { flex-basis: 100%; text-align: right; font-style: normal; font-size: 0.6rem; letter-spacing: 0.12em; color: var(--bv-t3); white-space: nowrap; }

/* ==========================================================================
   STATEMENT — full-bleed, movie-poster scale
   ========================================================================== */
.bv-statement { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: center; min-height: clamp(560px, 80vh, 820px); background: #0b0a09; color: var(--bv-t1); }
.bv-statement__media { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.bv-statement__img { position: absolute; inset: -60px -30px; background: none; background-size: cover; background-position: 50% 45%; filter: blur(5px) saturate(0.85) sepia(0.12) brightness(0.8); opacity: 0; transition: opacity 1.8s var(--ease-out); }
.bv-statement__img.is-loaded { background-image: var(--img); opacity: 0.85; }
.bv-statement__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11, 10, 9, 0.9) 0%, rgba(11, 10, 9, 0.55) 45%, rgba(11, 10, 9, 0.2) 75%, rgba(11, 10, 9, 0.5) 100%), radial-gradient(120% 100% at 60% 50%, transparent 40%, rgba(0, 0, 0, 0.75) 100%), linear-gradient(180deg, var(--bv-warm) 0%, transparent 16%, transparent 84%, #0d0d0f 100%); }
.bv-statement__inner { display: grid; gap: clamp(28px, 4vw, 52px); }
.bv-statement__line { margin: 0; max-width: 15ch; font-family: var(--font-display); font-weight: 280; font-size: clamp(2.4rem, 1.2rem + 4vw, 5.4rem); line-height: 0.98; letter-spacing: -0.042em; }
.bv-statement__line em { display: block; font-style: italic; color: var(--bv-champ); }
.bv-statement__line--2 { max-width: 17ch; padding-left: clamp(0px, 8vw, 140px); }

/* ==========================================================================
   08 — DELIVERABLES: end credits
   ========================================================================== */
.bv-credits { background: var(--bv-black); }
.bv-credits::before { content: ""; position: absolute; inset: 0; background: var(--grain); opacity: 0.05; pointer-events: none; }
.bv-credits__head { margin-bottom: clamp(44px, 5vw, 70px); }
.bv-credits__list { max-width: 820px; margin: 0 auto; padding: 0; list-style: none; }
.bv-credits__list li { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; padding: 13px 0; }
.bv-credits__list b { text-align: right; font-size: 0.74rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: var(--bv-t2); padding-top: 5px; }
.bv-credits__list span { font-family: var(--font-display); font-weight: 300; font-size: clamp(1.1rem, 1rem + 0.4vw, 1.34rem); color: var(--bv-t1); letter-spacing: -0.01em; }
.bv-credits__end { margin: clamp(44px, 5vw, 64px) 0 0; text-align: center; font-size: 0.7rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--bv-t3); }
.bv-credits__end b { font-family: var(--font-display); font-style: italic; font-weight: 400; font-size: 1.05rem; letter-spacing: 0; text-transform: none; color: var(--bv-champ); }

/* FAQ and CTA stay on the shared ABS system */
.bv-faq { border-top: 0; }
.bv-cta { background: #0a0a0b; }
.bv-cta .cta__media img { filter: blur(4px) saturate(0.35) sepia(0.35) brightness(0.55) contrast(1.05); opacity: 0.8; }
.bv-cta .cta__media::after { background: radial-gradient(50% 60% at 30% 40%, rgba(216, 198, 160, 0.08), transparent 70%), linear-gradient(90deg, rgba(10, 10, 11, 0.95) 0%, rgba(10, 10, 11, 0.7) 55%, rgba(10, 10, 11, 0.55) 100%), linear-gradient(180deg, rgba(10, 10, 11, 0.8) 0%, transparent 30%); }
.bv-cta .bv-cta__title em { display: block; font-style: italic; color: var(--bv-champ); }
.bv-cta__btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1180px) {
  .bv-board__grid { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.4fr); }
  .bv-board__refs { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 24px; }
  .bv-board__refs .bv-board__label { grid-column: 1 / -1; }
  .bv-swatches { grid-template-columns: repeat(4, 1fr); margin: 0; }
  .bv-board__small { border-top: 0; padding: 0; }
  .bv-tl__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 44px 30px; }
  .bv-tl__track { display: none; }
  .bv-tl__step { border-top: 1px solid var(--bv-line-2); padding-top: 16px; }
  .bv-tl__tc { height: auto; margin-bottom: 8px; }
  .bv-tl__dot { display: none; }
}
@media (max-width: 1024px) {
  .bv-hero__inner { grid-template-columns: 1fr; }
  .bv-hero { min-height: 0; padding-bottom: 110px; }
  .bv-hero__img { background-size: cover; background-position: 62% 30%; }
  .bv-poster { justify-self: start; max-width: 720px; }
  .bv-poster figcaption { text-align: left; }
  .bv-diff__grid, .bv-produce__grid, .bv-uses__grid { grid-template-columns: 1fr; }
  .bv-produce__head, .bv-uses__head { position: static; }
  .bv-produce__fig { max-width: none; }
  .bv-produce__fig > div { aspect-ratio: 16 / 8; }
  .bv-feature__head, .bv-board__head, .bv-genres__head { grid-template-columns: 1fr; }
  .bv-feature__head .bv-body, .bv-genres__head .bv-body { justify-self: start; }
  .bv-genre__list { height: 460px; }
}
@media (max-width: 860px) {
  .bv-board__grid { grid-template-columns: 1fr; }
  .bv-script { transform: none; }
  .bv-board__refs { grid-template-columns: 1fr 1fr; gap: 14px 24px; }
  .bv-swatches { grid-column: 1 / -1; }
  .bv-uses__list { grid-template-columns: 1fr; }
  .bv-tl__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  /* film strip becomes a horizontal, snapping reel */
  .bv-strip__list { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding-inline: calc(var(--gutter) - 6px); }
  .bv-strip__list::-webkit-scrollbar { display: none; }
  .bv-frame { flex: 0 0 min(72vw, 340px); scroll-snap-align: start; }
  /* genres: stacked lit bands */
  .bv-genre__list { flex-direction: column; height: auto; gap: 4px; }
  .bv-genre, .bv-genre:has(button[aria-pressed="true"]) { flex: none; }
  .bv-genre button { height: 92px; transition: height 0.8s var(--ease-out); }
  .bv-genre button[aria-pressed="true"] { height: 240px; }
  .bv-genre button:not([aria-pressed="true"]) .bv-genre__txt b { writing-mode: horizontal-tb; transform: none; }
  .bv-genre__txt em { opacity: 1; transform: none; }
  .bv-genre__img { opacity: 0.7; }
  .bv-genre button:not([aria-pressed="true"]) .bv-genre__n { display: none; }
  .bv-genre__txt { bottom: 18px; }
}
@media (max-width: 640px) {
  .bv-hero { padding-top: 128px; }
  .bv-crumbs { top: -44px; }
  .bv-hero__title { font-size: clamp(2.6rem, 11.4vw, 3.4rem); }
  .bv-hero__ctas .btn, .bv-cta__btns .btn { flex: 1 1 100%; justify-content: center; }
  .bv-hero__img { inset: -24px; filter: blur(4px) saturate(0.78) sepia(0.12) brightness(0.9); background-position: 70% 45%; }
  .bv-hero__media::after { background: linear-gradient(180deg, rgba(10, 10, 12, 0.7) 0%, rgba(10, 10, 12, 0.7) 40%, rgba(10, 10, 12, 0.85) 75%, #0d0d0f 100%), radial-gradient(140% 120% at 55% 40%, transparent 50%, rgba(0, 0, 0, 0.6) 100%); }
  .bv-hero__tc span:nth-child(n+3) { display: none; }
  .bv-poster__frame { aspect-ratio: 4 / 3.3; }
  .bv-poster__top span + span { display: none; }
  .bv-poster__title { gap: 12px; bottom: calc(9.5% + 76px); }
  .bv-poster .bv-play { left: clamp(18px, 2.4vw, 32px); right: auto; bottom: calc(9.5% + 14px); }
  .bv-play__ring { width: 46px; height: 46px; }
  .bv-diff__spec div { grid-template-columns: 90px 1fr; }
  .bv-reel__item { grid-template-columns: 56px minmax(0, 1fr); }
  .bv-reel__ph { grid-column: 2; margin-top: -8px; }
  .bv-produce__also span { margin-left: 0; }
  .bv-produce__also { display: grid; gap: 4px; }
  .bv-produce__also span + span::before { content: none; }
  /* trailer: stays 16:9; title card and controls scale down inside the frame */
  .bv-player__title { left: 14px; bottom: calc(12.8% + 12px); gap: 10px; }
  .bv-player__title .bv-cover--md { width: 40px; }
  .bv-player__kick { display: none; }
  .bv-player__name { font-size: 1.55rem; }
  .bv-player__by { font-size: 0.52rem; margin-top: 5px; letter-spacing: 0.22em; }
  .bv-play--lg { right: 14px; bottom: calc(12.8% + 12px); }
  .bv-play--lg .bv-play__ring { width: 42px; height: 42px; }
  .bv-play--lg .bv-play__ring svg { width: 15px; height: 15px; }
  .bv-play--lg .bv-play__txt { display: none; }
  .bv-player__ctrl { gap: 8px; padding: 0 8px; font-size: 0.56rem; letter-spacing: 0.08em; }
  .bv-player__pp { width: 22px; height: 22px; }
  .bv-player__pp svg { width: 12px; height: 12px; }
  .bv-player__fmt { display: none; }
  .bv-player__cap { font-size: 1.05rem; }
  .bv-player__meta { gap: 14px 26px; }
  .bv-player__meta em { margin-left: 0; flex-basis: 100%; }
  .bv-tl__list { grid-template-columns: 1fr; gap: 0; }
  .bv-tl__step { grid-template-columns: 64px 1fr; column-gap: 12px; padding: 18px 0 20px; }
  .bv-tl__tc { grid-row: 1 / 4; margin: 6px 0 0; }
  .bv-tl__step h3, .bv-tl__step p, .bv-tl__n { grid-column: 2; }
  .bv-sb { grid-template-columns: 1fr 1fr; gap: 20px 14px; }
  .bv-sb__cam { flex-direction: column; gap: 2px; font-size: 0.58rem; }
  .bv-sb__note { font-size: 0.86rem; }
  .bv-hero__formats { gap: 6px 16px; }
  .bv-hero__formats span + span::before { content: none; }
  .bv-uses__list li { grid-template-columns: 28px minmax(0, 1fr); }
  .bv-uses__r { grid-column: 2; justify-content: flex-start; max-width: none; flex-direction: row; align-items: center; }
  .bv-uses__r em { flex-basis: auto; text-align: left; margin-left: 4px; }
  .bv-statement__line--2 { padding-left: 0; }
  .bv-statement__media::after { background: linear-gradient(180deg, var(--bv-warm) 0%, rgba(11, 10, 9, 0.6) 20%, rgba(11, 10, 9, 0.55) 70%, #0d0d0f 100%), radial-gradient(140% 100% at 50% 50%, transparent 40%, rgba(0, 0, 0, 0.7) 100%); }
  .bv-credits__list li { grid-template-columns: 1fr; gap: 4px; text-align: center; padding: 12px 0; }
  .bv-credits__list b { text-align: center; padding: 0; font-size: 0.66rem; }
}
@media (prefers-reduced-motion: reduce) {
  .bv-poster__img, .bv-player__slide.is-on img, .bv-play__ring::after, .bv-rec { animation: none !important; }
  .js .bv-tl.is-in .bv-tl__head { animation: none; left: calc(100% - 1px); }
}

/* Section photographs named in the page with data-photo */
[data-photo="1453828423292-392a660a502f-1100x1300"] { --img: url("../images/photos/1453828423292-392a660a502f-1100x1300.webp"); }
[data-photo="1477468572316-36979010099d-1100x1300"] { --img: url("../images/photos/1477468572316-36979010099d-1100x1300.webp"); }
[data-photo="1495745512803-dd531415ff55-1100x1300"] { --img: url("../images/photos/1495745512803-dd531415ff55-1100x1300.webp"); }
[data-photo="1557363763-828f93b4108d-1100x1300"] { --img: url("../images/photos/1557363763-828f93b4108d-1100x1300.webp"); }
[data-photo="1668166893230-bab2db9e4343-1100x1300"] { --img: url("../images/photos/1668166893230-bab2db9e4343-1100x1300.webp"); }
[data-photo="1681137063068-081072cf04b4-2000"] { --img: url("../images/photos/1681137063068-081072cf04b4-2000.webp"); }
[data-photo="1750437555030-a5db30cabe88-1100x1300"] { --img: url("../images/photos/1750437555030-a5db30cabe88-1100x1300.webp"); }
[data-photo="1756707207437-831036a30751-2400"] { --img: url("../images/photos/1756707207437-831036a30751-2400.webp"); }
[data-photo="1761370980756-1e7fe8f1a731-2000"] { --img: url("../images/photos/1761370980756-1e7fe8f1a731-2000.webp"); }
