/* V510.1.1 — light homepage roles. Load after the semantic runtime.
   Hero/poster copy belongs to artwork; headings and controls belong to the page. */

/* V510.1.5 — one hero handoff for every palette, including custom palettes.
   Keep the art scrim behind readable copy; dissolve only the reserved lower tail
   into the live canvas. No fixed terminal band or white fade across the content. */
body.studio-theme .studio-page :is(.studio-cine-slider,.studio-exact-hero){
  --studio-hero-handoff:clamp(128px,10vw,160px);
  background:var(--studio-color-canvas)!important;
  color:var(--studio-color-on-art)!important;
}
body.studio-theme .studio-page .studio-cine-bg{
  background:
    linear-gradient(90deg,color-mix(in srgb,var(--studio-color-art-scrim) 84%,transparent),color-mix(in srgb,var(--studio-color-art-scrim) 78%,transparent)),
    var(--cine-bg) center / cover no-repeat!important;
}
body.studio-theme .studio-page .studio-cine-glow{
  background:radial-gradient(circle at 76% 45%,color-mix(in srgb,var(--studio-color-accent) 12%,transparent),transparent 34%),radial-gradient(circle at 23% 35%,color-mix(in srgb,var(--studio-color-accent-secondary) 10%,transparent),transparent 32%)!important;
}
body.studio-theme .studio-page .studio-exact-background::after{
  background:linear-gradient(90deg,color-mix(in srgb,var(--studio-color-art-scrim) 84%,transparent),color-mix(in srgb,var(--studio-color-art-scrim) 78%,transparent))!important;
}
body.studio-theme .studio-page :is(.studio-cine-slider,.studio-exact-hero)::after{
  content:"";
  position:absolute;
  z-index:9!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  height:var(--studio-hero-handoff)!important;
  border:0!important;
  filter:none!important;
  box-shadow:none!important;
  pointer-events:none;
  background:linear-gradient(180deg,
    color-mix(in srgb,var(--studio-color-canvas) 0%,transparent) 0%,
    color-mix(in srgb,var(--studio-color-canvas) 4%,transparent) 16%,
    color-mix(in srgb,var(--studio-color-canvas) 16%,transparent) 34%,
    color-mix(in srgb,var(--studio-color-canvas) 38%,transparent) 52%,
    color-mix(in srgb,var(--studio-color-canvas) 68%,transparent) 72%,
    color-mix(in srgb,var(--studio-color-canvas) 92%,transparent) 90%,
    var(--studio-color-canvas) 100%)!important;
}
body.studio-theme .studio-page :is(
  .studio-cine-copy h1>span,.studio-cine-copy .studio-cine-secondary-title,
  .studio-cine-tagline,.studio-cine-proof,.studio-cine-proof b,
  .studio-exact-copy h1>span:first-child,.studio-exact-kicker,
  .studio-exact-features b,.studio-exact-mosaic-label strong
){color:var(--studio-color-on-art)!important}
body.studio-theme .studio-page .studio-cine-copy .studio-cine-secondary-title{
  -webkit-text-fill-color:var(--studio-color-on-art)!important;
}
body.studio-theme .studio-page :is(
  .studio-cine-copy>p,.studio-cine-live small,.studio-cine-card small,
  .studio-cine-next-card em,.studio-cine-next-card small,
  .studio-exact-copy>p,.studio-exact-flags b,.studio-exact-features span
){color:color-mix(in srgb,var(--studio-color-on-art) 88%,transparent)!important}
body.studio-theme .studio-page :is(
  .studio-cine-proof,.studio-cine-next-card,.studio-cine-arrow,
  .studio-cine-actions>:not(.primary),.studio-exact-buttons .ghost,
  .studio-exact-features span,.studio-exact-mosaic-label
){
  background:color-mix(in srgb,var(--studio-color-art-scrim) 88%,transparent)!important;
  border-color:color-mix(in srgb,var(--studio-color-on-art) 28%,transparent)!important;
  color:var(--studio-color-on-art)!important;
}
body.studio-theme .studio-page :is(.studio-cine-actions,.studio-exact-buttons)>.primary{
  background:var(--studio-color-accent)!important;
  color:var(--studio-color-on-accent)!important;
}
body.studio-theme .studio-page :is(.studio-cine-dots,.studio-exact-dots){z-index:10!important}
body.studio-theme .studio-page :is(.studio-cine-dots,.studio-exact-dots) button{
  background:color-mix(in srgb,var(--studio-color-text) 24%,var(--studio-color-canvas))!important;
}
body.studio-theme .studio-page :is(.studio-cine-dots,.studio-exact-dots) button i{
  background:var(--studio-color-accent)!important;
}

/* The bottom reserve contains the dissolve, including the next-card overhang.
   Auto height lets longer translations grow instead of moving copy into it. */
body.studio-theme .studio-page .studio-cine-inner{
  box-sizing:border-box;
  height:auto!important;
  padding-block-start:clamp(28px,4vw,64px)!important;
  padding-block-end:calc(var(--studio-hero-handoff) + 72px)!important;
}
body.studio-theme .studio-page .studio-exact-hero{height:auto!important}
body.studio-theme .studio-page .studio-exact-hero-in{
  box-sizing:border-box;
  height:auto;
  min-height:800px;
  padding-block-start:clamp(32px,4vw,64px)!important;
  padding-block-end:calc(var(--studio-hero-handoff) + 40px)!important;
}
body.studio-theme .studio-page .studio-exact-hero .studio-exact-arrow{
  z-index:10!important;
  background:var(--studio-color-control)!important;
  border-color:var(--studio-color-border-strong)!important;
  color:var(--studio-color-text)!important;
}
body.studio-theme .studio-page :is(.studio-cine-arrow,.studio-exact-arrow):focus-visible,
body.studio-theme .studio-page :is(.studio-cine-dots,.studio-exact-dots) button:focus-visible{
  outline:2px solid var(--studio-color-link)!important;
  outline-offset:4px;
}
body.studio-theme .studio-page .studio-responsive-section:has(:is(.studio-cine-slider,.studio-exact-hero)){
  margin-block-end:0!important;
  background:var(--studio-color-canvas)!important;
}
body.studio-theme .studio-page .studio-responsive-section:has(:is(.studio-cine-slider,.studio-exact-hero))+.studio-responsive-section{
  margin-block-start:0!important;
  background-color:var(--studio-color-canvas)!important;
}
body.studio-theme .studio-page .studio-responsive-section:has(:is(.studio-cine-slider,.studio-exact-hero))+.studio-responsive-section::before{
  content:none!important;
  display:none!important;
}
@media(max-width:900px){
  body.studio-theme .studio-page :is(.studio-cine-slider,.studio-exact-hero){--studio-hero-handoff:128px}
  body.studio-theme .studio-page .studio-cine-inner{padding-block-end:calc(var(--studio-hero-handoff) + 52px)!important}
  body.studio-theme .studio-page .studio-exact-hero-in{min-height:0}
}
@media(max-width:680px){
  body.studio-theme .studio-page :is(.studio-cine-slider,.studio-exact-hero){--studio-hero-handoff:104px}
  body.studio-theme .studio-page .studio-cine-slider,
  body.studio-theme .studio-page .studio-responsive-section:first-child .studio-cine-slider{
    height:auto!important;
    min-height:500px!important;
  }
  body.studio-theme .studio-page .studio-cine-inner,
  body.studio-theme .studio-page .studio-responsive-section:first-child .studio-cine-inner{
    height:auto!important;
    min-height:500px!important;
    padding-block-start:28px!important;
    padding-block-end:calc(var(--studio-hero-handoff) + 24px)!important;
  }
  body.studio-theme .studio-page .studio-exact-hero-in{padding-block-end:calc(var(--studio-hero-handoff) + 32px)!important}
}

/* Shared signatures resolve their palette in studio-section-title-unify-v333.css. */
html[data-color-scheme="light"] body.studio-theme .studio-page .studio-mood__head>div{
  background:var(--studio-color-card)!important;
  border-color:var(--studio-color-border)!important;
  box-shadow:inset 0 1px 0 color-mix(in srgb,var(--studio-color-on-art) 65%,transparent)!important;
  color:var(--studio-color-heading)!important;
}
html[data-color-scheme="light"] body.studio-theme .studio-page :is(
  .studio-most-watched__title,.studio-section-signature,.studio-mood__head,
  .studio-heading,.studio-exact-section-head,.studio-exact-spot-head,.studio-exact-cinema-head
) h2{
  color:var(--studio-color-heading)!important;
  -webkit-text-fill-color:var(--studio-color-heading)!important;
  text-shadow:none!important;
}
html[data-color-scheme="light"] body.studio-theme .studio-page :is(
  .studio-most-watched__title small,.studio-section-signature small,
  .studio-section-signature>div>span,.studio-mood__head>div>small,
  .studio-heading>div>span,.studio-exact-section-head>div>span:not(.studio-preview-only),
  .studio-exact-spot-head>div>span,.studio-exact-cinema-head>div>span
){color:var(--studio-color-link)!important}
html[data-color-scheme="light"] body.studio-theme .studio-page :is(
  .studio-most-watched__title>span,.studio-section-signature__icon
),
html[data-color-scheme="light"] body.studio-theme .studio-page .studio-mood__head>div::before{
  background:color-mix(in srgb,var(--studio-color-accent) 12%,var(--studio-color-control))!important;
  border-color:var(--studio-color-border)!important;
  color:var(--studio-color-link)!important;
  box-shadow:none!important;
}
html[data-color-scheme="light"] body.studio-theme .studio-page :is(
  .studio-taste__head>p,.movie-premiere__head p,.studio-mood__head p,
  .studio-heading p,.studio-exact-spot-head p,.studio-preview-only,
  .studio-mood__result-head,.studio-mood__result-head b,.movie-premiere__controls>span,
  .movie-premiere__meter i,.movie-premiere__meter em
){color:var(--studio-color-text-muted)!important}

/* Poster titles keep their own dark artwork layers; episode captions below art
   use the page text roles instead. No artwork-wide foreground reset. */
html[data-color-scheme="light"] body.studio-theme .studio-page :is(
  .studio-cine-card.front strong,.studio-cine-next-card strong,.studio-exact-slide-copy strong,
  .studio-exact-premiere>div h3,.studio-exact-films>a>div h3,
  .studio-mood-story__copy strong,.studio-taste-lead__copy>strong,.studio-taste-card__copy>strong,
  .studio-rank-card__copy strong,.movie-premiere__copy>strong,
  .studio-hub-card__copy h3,.studio-hub-finale-card h3
){color:var(--studio-color-on-art)!important}
html[data-color-scheme="light"] body.studio-theme .studio-page :is(
  .studio-exact-slide-copy .studio-card-secondary,.studio-exact-premiere>div p,
  .studio-exact-films>a>div p,.studio-mood-story__copy em,
  .studio-taste-lead__copy>em,.studio-taste-card__copy>em,
  .studio-rank-card__copy .studio-card-secondary,.movie-premiere__copy>em,
  .studio-hub-card__copy em,.studio-hub-finale-card p
){color:color-mix(in srgb,var(--studio-color-on-art) 80%,transparent)!important}
html[data-color-scheme="light"] body.studio-theme .studio-page .studio-exact-episode h3{color:var(--studio-color-heading)!important}
html[data-color-scheme="light"] body.studio-theme .studio-page .studio-exact-episode p{color:var(--studio-color-text-muted)!important}
html[data-color-scheme="light"] body.studio-theme .studio-page .studio-exact-episode>small{color:var(--studio-color-link)!important}
html[data-color-scheme="light"] body.studio-theme .studio-page :is(.studio-no-data,.studio-most-watched__empty){
  background:var(--studio-color-section)!important;
  border-color:var(--studio-color-border)!important;
  color:var(--studio-color-text-muted)!important;
}
