/* Astra service structure, in the adopted paper / charcoal / lime system. */
.film-section { --film-lime: #e7ff5b; }
.film-service-hero { padding-bottom: 0; }
.film-audience-nav { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); width: min(100%, 540px); margin-bottom: 36px; border: 1px solid #1116; }
.film-audience-nav a { display: flex; align-items: center; justify-content: center; min-width: 0; min-height: 48px; padding: 12px 16px; font-size: 13px; line-height: 1.6; text-align: center; }
.film-audience-nav a + a { border-left: 1px solid #1116; }
.film-audience-nav a:hover { background: #e7ff5b; color: #111; }
.film-audience-nav a[aria-current="page"] { background: #111; color: #e7ff5b; }
.film-audience-nav a[aria-current="page"] span { border-bottom: 1px solid currentColor; }
.film-audience-nav a:focus-visible { position: relative; outline: 2px solid #111; outline-offset: 4px; }
@media (max-width: 600px) {
  .film-audience-nav { margin-bottom: 28px; }
  .film-audience-nav a { padding-inline: 10px; font-size: 12px; }
}
.film-hero-grid { display: grid; grid-template-columns: 1fr 1.08fr; gap: var(--content-gap); align-items: center; }
.film-service-hero h1 { font-size: calc(clamp(28px, 3vw, 44px) * var(--heading-scale, 1)); }
.film-service-hero .micro { line-height: 1.9; }
.film-service-hero .page-lead { max-width: 38em; }
.film-service-hero .film-note { max-width: 38em; margin-top: 20px; }
.film-jump-nav { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 56px; border-top: 1px solid #1114; }
.film-jump-nav a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 25px 22px; border-right: 1px solid #1114; font-size: 12px; }
.film-jump-nav a:first-child { padding-left: 0; }
.film-jump-nav a:last-child { border: 0; padding-right: 0; }
.film-jump-nav a:hover { text-decoration: underline; text-underline-offset: 5px; }
.film-jump-nav .micro { margin: 0; }
.film-section h3 { font-size: calc(clamp(20px, 2vw, 28px) * var(--heading-scale, 1)); line-height: 1.5; letter-spacing: -.04em; }
.film-section p:not(.micro):not(.film-note) { font-size: 14px; line-height: 1.95; }
.film-section h3 + p { margin-top: 16px; }
.film-section-lead { max-width: 60em; margin: -10px 0 40px; }
.film-note { font-size: 12px; line-height: 1.9; margin-top: 22px; color: #555; }
.dark-section .film-note { color: #bdbbb5; }
.film-two, .film-three { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.film-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.film-three > article { border-top: 1px solid #8886; padding-top: 26px; }
.film-step-index { display: inline-block; color: #53620d; font: 12px/1 monospace; letter-spacing: .1em; margin-bottom: 22px; }
.dark-section .film-step-index { color: #e7ff5b; }
.film-media, .film-still, .film-placeholder { margin: 0; min-width: 0; }
.film-media video, .film-still img { display: block; width: 100%; aspect-ratio: 16 / 9; height: auto; object-fit: contain; background: #191b1a; }
.film-media figcaption, .film-still figcaption, .film-board figcaption, .film-placeholder figcaption { padding-top: 13px; font-size: 11px; line-height: 1.8; color: #555; }
.dark-section figcaption { color: #c6c3bb; }
.film-placeholder .placeholder-frame { position: relative; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(16px, 2vw, 28px); aspect-ratio: 16 / 9; border: 1px dashed #767773; background: repeating-linear-gradient(135deg, #88888808 0 1px, transparent 1px 22px); }
.film-placeholder .micro { font-size: 10px; letter-spacing: .08em; line-height: 1.8; }
.film-placeholder .placeholder-mark { position: absolute; inset: 0; display: grid; place-items: center; font: 32px monospace; opacity: .45; pointer-events: none; }
.film-placeholder .placeholder-format { align-self: end; font: 10px monospace; opacity: .55; }
.film-portrait video, .film-portrait .placeholder-frame { aspect-ratio: 9 / 16; }
.film-comparison { margin-top: 64px; padding-top: 40px; border-top: 1px solid #8886; }
.film-comparison .film-two { margin-top: 28px; }
.film-board-flow { display: grid; gap: 36px; margin-top: 28px; }
.film-board { margin: 0; min-width: 0; }
.film-board-top { display: grid; grid-template-columns: 1.5fr 1fr; gap: var(--content-gap); align-items: start; }
.film-board-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.film-board-steps .micro { margin: 0; }
.film-board-steps ol { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 22px; }
.film-board-steps li { padding-top: 14px; border-top: 1px solid currentColor; }
.film-board-steps li p { margin: 0; }
.film-board-steps .film-note a { color: inherit; }
.film-board-grid img { display: block; width: 100%; aspect-ratio: 16 / 9; height: auto; object-fit: cover; background: #191b1a; }
.film-use-case { padding-top: 48px; margin-top: 48px; border-top: 1px solid #1113; }
.film-use-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 48px; margin-bottom: 30px; }
.film-use-heading .micro { grid-column: 1 / -1; color: #596721; }
.film-use-heading h3 + p { margin: 0; max-width: 44em; }
.film-food-grid { display: grid; grid-template-columns: 1.65fr .6fr; align-items: center; gap: var(--content-gap); }
.film-food-grid .film-still img { background: #e5e2da; aspect-ratio: 16 / 10; }
.film-food-grid .film-portrait { width: min(100%, 280px); justify-self: center; }
.film-case-detail { display: grid; grid-template-columns: 1fr 1.15fr; align-items: center; gap: var(--content-gap); margin-top: 52px; }
.film-case-detail h3 { margin-top: 16px; }
.film-case-detail .film-portrait { width: min(100%, 280px); justify-self: center; }
.film-reference a { text-decoration: underline; text-underline-offset: 4px; }
.film-partner-note, .film-business-note { display: grid; grid-template-columns: 1fr 1.4fr; gap: 40px; margin-top: 48px; padding-top: 35px; border-top: 1px solid #8886; }
.film-partner-note h3 + p, .film-business-note h3 + p { margin: 0; }
/* Agency collaboration is a secondary route, not the main business pitch. */
.theme-a .film-partner-panel { display: grid; grid-template-columns: minmax(0, .65fr) minmax(0, 1.35fr); gap: var(--content-gap); padding-block: 40px; background: #e4e1db; }
.film-partner-panel .micro { font-size: 9px; margin-bottom: 14px; color: #546221; }
.film-partner-panel h2 { font-size: calc(clamp(20px, 2vw, 26px) * var(--heading-scale, 1)); line-height: 1.5; letter-spacing: -.04em; }
.film-partner-panel p:not(.micro) { font-size: 13px; line-height: 1.95; max-width: 54em; }
.film-partner-panel .text-link { margin-top: 12px; padding-block: 8px; min-height: 44px; }
@media (max-width: 760px) {
  .theme-a .film-partner-panel { grid-template-columns: 1fr; gap: 18px; padding-block: 30px; }
}
.film-belief { display: grid; grid-template-columns: 1.4fr 1fr; align-items: center; gap: 48px; }
.film-belief > img { width: 100%; max-height: 400px; object-fit: contain; }
.film-demo { margin-top: 60px; }
.film-demo .film-three { margin-top: 26px; }
.film-direction-steps { margin-top: 50px; }
.film-direction-steps > article { display: grid; grid-template-columns: 50px 1fr; border-top: 1px solid #1114; padding: 28px 0; gap: 24px; }
.film-direction-steps .film-step-index { margin-top: 10px; }
.film-direction-steps p { max-width: 68em; }
.film-previz { margin: 0 0 35px 74px; }
.film-timeline { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); list-style: none; padding: 0; margin: 40px 0 0; }
.film-timeline li { padding: 20px 22px 0 0; border-top: 2px solid #e7ff5b; position: relative; }
.film-timeline li::before { content: ''; position: absolute; width: 7px; height: 7px; border-radius: 50%; background: #e7ff5b; top: -4px; left: 0; }
.film-timeline .micro { color: #e7ff5b; font-size: 10px; }
.film-timeline p { margin-top: 14px; }
.dark-section .solid-button { border-color: #e7ff5b; }
@media (max-width: 1000px) {
  .film-hero-grid { grid-template-columns: 1fr; }
  .film-hero-grid > .film-media { max-width: 840px; }
  .film-belief { grid-template-columns: 1.4fr 1fr; gap: 25px; }
  .film-three { gap: 18px; }
}
@media (max-width: 600px) {
  .film-section h3 { font-size: calc(21px * var(--heading-scale, 1)); }
  .film-section p:not(.micro):not(.film-note) { font-size: 13px; }
  .film-jump-nav { margin-top: 35px; grid-template-columns: 1fr; }
  .film-jump-nav a { padding: 18px 0; border-right: 0; border-bottom: 1px solid #1113; }
  .film-two, .film-three, .film-case-detail, .film-use-heading, .film-partner-note, .film-business-note, .film-belief, .film-faq { grid-template-columns: 1fr; gap: 28px; }
  .film-two { gap: 30px; }
  .film-board-top { grid-template-columns: 1fr; gap: 30px; }
  .film-board-grid { gap: 4px; }
  .film-board-flow { gap: 30px; }
  .film-food-grid { grid-template-columns: 1fr; gap: 28px; }
  .film-food-grid .film-portrait, .film-case-detail .film-portrait { width: 75%; max-width: 260px; }
  .film-use-case { padding-top: 34px; margin-top: 34px; }
  .film-use-heading { gap: 16px; }
  .film-comparison, .film-demo { margin-top: 42px; }
  .film-direction-steps > article { grid-template-columns: 26px 1fr; gap: 16px; }
  .film-previz { margin-left: 0; }
  .film-timeline { grid-template-columns: 1fr; }
  .film-timeline li { border-top: 0; border-left: 1px solid #e7ff5b; padding: 0 0 28px 24px; }
  .film-timeline li::before { top: 4px; left: -4px; }
  .film-timeline li:last-child { padding-bottom: 0; }
}

/* 06–NEXT: an image-free editorial sequence. Display type and the four SVG
   constructions are decorative; service headings/copy stay semantic and visible. */
.film-composition-heading { display: flex; justify-content: space-between; align-items: end; gap: 40px; margin-bottom: 42px; }
.film-composition-heading .subsection-heading { margin: 0; }
.film-format-count { display: flex; align-items: center; gap: 18px; flex-shrink: 0; }
.film-format-count > span:first-child { font: 700 62px/.9 Arial, sans-serif; letter-spacing: -.08em; color: #737768; }
.film-format-count .micro { max-width: 15em; font-size: 10px; line-height: 1.8; }
.film-format-count .micro > span { display: block; }
.film-menu { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 14px; }
.film-menu .film-program { --program-ink: #111; --program-rule: #1113; --program-accent: #697b20; color: var(--program-ink); position: relative; min-width: 0; padding: clamp(24px, 2.6vw, 36px); border: 1px solid var(--program-rule); background: #faf9f6; }
.film-program:nth-child(1), .film-program:nth-child(4) { grid-column: span 7; }
.film-program:nth-child(2), .film-program:nth-child(3) { grid-column: span 5; }
.film-menu .film-program-2 { --program-ink: #f5f3ef; --program-rule: #f5f3ef40; --program-accent: #e7ff5b; background: #171817; }
.film-menu .film-program-3 { background: #e0ded7; }
.film-menu .film-program-4::after { content: ''; position: absolute; bottom: -1px; left: 36px; width: 56px; height: 3px; background: #889b39; }
.program-top { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; }
.program-number { font: 11px/1.5 monospace; letter-spacing: .08em; }
.film-menu .program-top .micro { margin: 0; color: var(--program-accent); font-size: 9px; letter-spacing: .12em; }
.program-composition { display: grid; grid-template-columns: minmax(0, 1fr) clamp(64px, 7vw, 96px); align-items: center; gap: 16px; margin: 38px 0 32px; }
.program-wordmark { font: 700 clamp(48px, 4.7vw, 72px)/.87 Arial, sans-serif; letter-spacing: -.075em; }
.program-wordmark > span { display: block; }
.program-wordmark > span + span { margin-top: 3px; }
.program-wordmark i { color: var(--program-accent); font-style: normal; }
.program-symbol { display: block; width: 100%; height: auto; overflow: visible; color: var(--program-ink); stroke: currentColor; stroke-width: .9; transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.program-symbol .program-fill { fill: #e7ff5b; stroke: var(--program-ink); }
.film-program-2 .program-symbol { color: #e7ff5b; }
.film-program-2 .program-symbol .program-fill { stroke: #e7ff5b; }
.program-copy { border-top: 1px solid var(--program-rule); padding-top: 22px; }
.film-menu .program-copy h3 { font-size: calc(clamp(20px, 1.65vw, 24px) * var(--heading-scale, 1)); line-height: 1.45; }
.film-menu .program-copy p { max-width: 38em; margin-top: 12px; }
.film-menu-section > .film-note { max-width: 65em; margin-top: 26px; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .film-program:hover .program-symbol { transform: rotate(-10deg) translateY(-4px); }
  .film-program:nth-child(even):hover .program-symbol { transform: rotate(10deg) translateY(-4px); }
}

.film-workflow-section, .film-faq-section { display: grid; grid-template-columns: minmax(0, .65fr) minmax(0, 1.35fr); gap: var(--content-gap); align-items: start; }
.film-workflow-intro, .film-faq-intro { position: sticky; top: 126px; min-width: 0; }
.film-workflow-intro .subsection-heading h2 { max-width: 12em; }
.film-workflow-intro .subsection-heading h2 > span { display: block; }
.workflow-typeset { margin-top: 60px; font: 700 clamp(42px, 5vw, 72px)/.92 Arial, sans-serif; letter-spacing: -.07em; color: #93968d; }
.workflow-typeset > span { display: block; }
.workflow-typeset-indent { padding-left: .85em; }
.workflow-period { color: #e7ff5b; }
.film-workflow { list-style: none; margin: 0; padding: 0; }
.film-workflow li { display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 28px; position: relative; border-top: 1px solid #f5f3ef40; padding: 30px 0 34px; }
.film-workflow li:last-child { border-bottom: 1px solid #f5f3ef40; }
.film-workflow li::before { content: ''; position: absolute; left: -12px; top: 32px; width: 2px; height: 16px; background: #e7ff5b; }
.film-workflow .film-step-index { margin: 0; font: 400 48px/1 Arial, sans-serif; letter-spacing: -.07em; color: #e7ff5b; }
.workflow-copy .micro { font-size: 9px; letter-spacing: .16em; margin-bottom: 12px; }
.film-workflow .workflow-copy h3 { font-size: calc(22px * var(--heading-scale, 1)); line-height: 1.5; }
.film-workflow .workflow-copy p:not(.micro) { color: #c4c2ba; margin-top: 14px; max-width: 38em; }

.faq-typeset { position: relative; isolation: isolate; display: inline-flex; align-items: baseline; gap: 14px; margin-top: 20px; font: 500 clamp(90px, 11vw, 154px)/1 Arial, sans-serif; letter-spacing: -.085em; }
.faq-typeset > i { font: 300 .65em/1 Arial, sans-serif; color: #929585; }
.faq-typeset > span:last-of-type { font-size: .75em; }
.faq-typeset b { position: absolute; z-index: -1; right: -9px; bottom: 9px; width: .42em; aspect-ratio: 1; border-radius: 50%; background: #e7ff5b; }
.film-faq { display: block; min-width: 0; }
.film-faq article { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 22px; border-top: 1px solid #1113; padding: 28px 0 32px; }
.film-faq article:last-child { border-bottom: 1px solid #1113; }
.faq-number { font: 10px/2 monospace; color: #637020; padding-top: 3px; }
.film-faq article h3 { font-size: calc(19px * var(--heading-scale, 1)); line-height: 1.6; }
.film-faq article p { margin-top: 14px; color: #4b4c46; }

.theme-a .film-next-step { padding-block: 54px 84px; }
.film-contact-bar { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-bottom: 25px; border-bottom: 1px solid #1114; }
.film-contact-bar > p { display: flex; align-items: center; gap: 14px; }
.film-contact-bar > p::before { content: ''; width: 26px; height: 3px; background: #687724; }
.film-contact-bar > span { font-size: 9px; color: #555; }
.film-contact-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--content-gap); align-items: center; margin-top: 52px; }
.contact-typeset { font: 700 clamp(56px, 7vw, 100px)/.86 Arial, sans-serif; letter-spacing: -.075em; }
.contact-typeset > span { display: block; }
.contact-typeset > span + span { margin-top: 4px; }
.contact-typeset i { display: inline-block; font: 400 .66em/1 Arial, sans-serif; color: #667629; vertical-align: middle; margin-left: .15em; }
.film-contact-copy { min-width: 0; }
.film-contact-copy h2 { font-size: calc(clamp(26px, 2.6vw, 36px) * var(--heading-scale, 1)); line-height: 1.5; }
.film-contact-copy > p { font-size: 13px; line-height: 2; max-width: 36em; margin-top: 24px; }
.film-next-step .solid-button { display: flex; width: 100%; align-items: center; gap: 18px; margin-top: 34px; padding: 18px 20px 18px 26px; color: #e7ff5b; }
.film-next-step .solid-button > span { display: grid; place-items: center; flex-shrink: 0; width: 42px; height: 42px; border-radius: 50%; background: #e7ff5b; color: #111; font-size: 25px; transition: transform .3s; }
.film-next-step .solid-button:hover > span { transform: rotate(45deg); }

@media (max-width: 1000px) {
  .film-menu { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .film-program:nth-child(n) { grid-column: auto; }
  .program-composition { grid-template-columns: minmax(0, 1fr) 64px; gap: 12px; }
  .program-wordmark { font-size: clamp(36px, 5vw, 52px); }
  .film-workflow-section, .film-faq-section { gap: 40px; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); }
  .film-workflow li { grid-template-columns: 52px minmax(0, 1fr); gap: 18px; }
  .film-workflow .film-step-index { font-size: 40px; }
  .film-workflow .workflow-copy h3 { font-size: calc(20px * var(--heading-scale, 1)); }
  .film-format-count { gap: 12px; }
  .film-format-count > span:first-child { font-size: 48px; }
  .film-format-count .micro { max-width: 12em; font-size: 9px; }
  .film-contact-grid { gap: 40px; }
}
@media (max-width: 700px) {
  .film-composition-heading { display: block; margin-bottom: 30px; }
  .film-format-count { margin-top: 28px; gap: 16px; }
  .film-format-count > span:first-child { font-size: 40px; }
  .film-format-count .micro { max-width: none; font-size: 9px; }
  .film-menu { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .film-menu .film-program { padding: 24px; }
  .program-composition { grid-template-columns: minmax(0, 1fr) clamp(52px, 16vw, 100px); margin-block: 30px 28px; }
  .program-wordmark { font-size: clamp(40px, 12vw, 72px); }
  .film-menu .program-copy h3 { font-size: calc(21px * var(--heading-scale, 1)); }
  .film-workflow-section, .film-faq-section { display: block; }
  .film-workflow-intro, .film-faq-intro { position: static; }
  .workflow-typeset { display: flex; align-items: baseline; gap: .2em; font-size: clamp(25px, 6.5vw, 42px); margin: 30px 0 38px; }
  .workflow-typeset-indent { padding: 0; }
  .film-workflow li { grid-template-columns: 44px minmax(0, 1fr); gap: 22px; padding: 26px 0 28px; }
  .film-workflow li::before { left: -8px; top: 28px; height: 12px; }
  .film-workflow .film-step-index { font-size: 36px; }
  .film-workflow .workflow-copy h3 { font-size: calc(20px * var(--heading-scale, 1)); }
  .film-faq-intro { display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: end; margin-bottom: 36px; }
  .film-faq-intro .subsection-heading { margin: 0; }
  .film-faq-intro .subsection-heading h2 { font-size: calc(24px * var(--heading-scale, 1)); }
  .faq-typeset { font-size: 72px; gap: 8px; margin: 0; }
  .film-faq article { grid-template-columns: 34px minmax(0, 1fr); gap: 14px; padding-block: 24px 28px; }
  .film-faq article h3 { font-size: calc(18px * var(--heading-scale, 1)); }
  .theme-a .film-next-step { padding-block: 38px 54px; }
  .film-contact-grid { grid-template-columns: 1fr; gap: 36px; margin-top: 36px; }
  .contact-typeset { font-size: clamp(52px, 15vw, 82px); }
  .film-contact-copy h2 { font-size: calc(27px * var(--heading-scale, 1)); }
  .film-contact-copy > p { margin-top: 20px; }
  .film-next-step .solid-button { margin-top: 26px; padding: 16px 18px; font-size: 12px; }
}
@media (max-width: 360px) {
  .film-menu .film-program { padding: 20px; }
  .film-menu .program-top .micro { font-size: 8px; }
  .film-faq-intro { grid-template-columns: 1fr; gap: 22px; }
  .faq-typeset { justify-self: end; }
  .film-contact-bar { gap: 12px; }
  .film-contact-bar > span { font-size: 8px; letter-spacing: .08em; }
  .film-contact-copy h2 { font-size: calc(24px * var(--heading-scale, 1)); }
}
@media (prefers-reduced-motion: reduce) {
  .program-symbol, .film-next-step .solid-button > span { transition: none; }
  .film-next-step .solid-button:hover > span { transform: none; }
}

/* Keep the service compositions; remove duplicate labels and slogan panels. */
.editorial-clean .film-case-detail h3 { margin-top: 0; }
.editorial-clean .program-composition { margin-top: 0; }
.editorial-clean .film-contact-grid { display: block; margin-top: 0; }
.editorial-clean .film-contact-copy {
  display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 24px var(--content-gap); align-items: start;
}
.editorial-clean .film-contact-copy h2 { grid-row: 1 / 3; }
.editorial-clean .film-contact-copy > p { margin-top: 0; }
.editorial-clean .film-next-step .solid-button { margin-top: 0; max-width: 430px; }
.theme-a.editorial-clean .film-next-step { padding-block: 60px; }
@media (max-width: 700px) {
  .editorial-clean .film-faq-intro { display: block; }
  .editorial-clean .film-contact-copy { display: block; }
  .editorial-clean .film-contact-copy > p { margin-top: 18px; }
  .editorial-clean .film-next-step .solid-button { margin-top: 24px; }
  .theme-a.editorial-clean .film-next-step { padding-block: 40px 54px; }
}

/* Vertical social film shown inside a smartphone. */
.film-phone .film-phone-body { position: relative; padding: 8px; border-radius: 42px; background: linear-gradient(115deg, #5e5e5c 0, #222221 15%, #101010 55%, #5f5f5c 100%); box-shadow: 0 22px 34px -22px rgba(36, 35, 31, .45), inset 0 0 0 1px #777773; }
.film-phone .film-phone-screen { position: relative; overflow: hidden; border-radius: 34px; background: #000; aspect-ratio: 9 / 19.5; display: flex; align-items: center; }
.film-phone .film-phone-island { position: absolute; z-index: 2; top: 10px; left: 50%; width: 30%; height: 22px; transform: translateX(-50%); border-radius: 12px; background: #000; }
.film-phone video { width: 100%; height: 100%; aspect-ratio: auto; object-fit: contain; background: #000; }

/* VC DROP case: how a film takes shape before generation. */
.film-belief:has(> div:only-child) { grid-template-columns: 1fr; }
.film-process { margin-top: 48px; }
.film-process ol { list-style: none; margin: 18px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1.25fr 2.4fr; gap: 28px; align-items: start; }
.film-process li { min-width: 0; padding-top: 14px; border-top: 1px solid currentColor; }
.film-process-num { display: block; font-size: 11px; letter-spacing: .12em; margin-bottom: 14px; }
.film-process-core strong { display: block; font-size: clamp(22px, 2.2vw, 30px); line-height: 1.5; letter-spacing: .04em; margin-bottom: 14px; }
.film-process img { display: block; width: 100%; height: auto; margin-bottom: 12px; background: #e5e2da; }
.film-process li p { font-size: 12px; line-height: 1.8; }
@media (max-width: 760px) { .film-process ol { grid-template-columns: 1fr; gap: 32px; } }

/* VC DROP case: volume of generation, rejects and failure examples. */
.film-curation { margin-top: 44px; }
.film-numbers { list-style: none; margin: 18px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; border-top: 1px solid currentColor; }
.film-numbers li { padding-top: 16px; }
.film-numbers strong { display: block; font-size: clamp(34px, 4.2vw, 60px); line-height: 1; font-weight: 700; letter-spacing: -.01em; }
.film-numbers small { font-size: .32em; font-weight: 600; margin-left: .25em; letter-spacing: .04em; }
.film-numbers span { display: block; margin-top: 10px; font-size: 12px; }
.film-numbers li:last-child strong { color: #6f7f22; }
.film-wall { margin: 34px 0 0; }
.film-wall img { display: block; width: 100%; height: auto; background: #0d0c0b; }
.film-wall figcaption, .film-fails figcaption { padding-top: 12px; font-size: 12px; line-height: 1.8; }
.film-fails-title { margin-top: 56px; }
.film-fails { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-top: 20px; }
.film-fails figure { margin: 0; min-width: 0; }
.film-fails img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.film-fails figcaption strong { display: block; font-size: 14px; margin-bottom: 6px; }
@media (max-width: 960px) { .film-numbers, .film-fails { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .film-fails { grid-template-columns: 1fr; } }

/* base.css sets img height:100%; keep these images at their own proportions. */
.film-fails img, .film-wall img, .film-process img { height: auto; }
.film-process { margin-top: 64px; }

.film-process-previz { display: grid; grid-template-columns: 1fr 2.2fr; gap: 28px; align-items: start; margin-top: 40px; padding-top: 14px; border-top: 1px solid currentColor; }
.film-process-previz h3 { margin: 0 0 14px; }
.film-process-previz p { font-size: 12px; line-height: 1.8; }
.film-process-previz .film-media video { aspect-ratio: 1932 / 540; height: auto; background: #0d0c0b; }
@media (max-width: 760px) { .film-process-previz { grid-template-columns: 1fr; } }

.film-fails-lead { max-width: 760px; margin-top: 14px; font-size: 13px; line-height: 1.9; }
.film-process-core strong span { display: inline-block; white-space: nowrap; }
.film-process-previz h3 span { display: inline-block; max-width: 100%; white-space: normal; }
/* Japanese headings wrap between phrases, never mid-word (falls back to normal wrapping if one phrase is wider than the column). */
.jp-phrase { display: inline-block; max-width: 100%; }
