/* Vivid Cinema — unified atmosphere layer.
   One authoritative visual layer for background, typography, ambient art and interaction.
   Content, APIs and player architecture remain untouched. */

:root{--vivid-site-ink:#07090d;--vivid-site-text:#f4f6f8;--vivid-site-muted:#a4abb5;--vivid-site-dim:#727985;--vivid-site-line:rgba(255,255,255,.085);--vivid-atmosphere-x:50%;--vivid-atmosphere-y:28%}
html{background:var(--vivid-site-ink);color:var(--vivid-site-text);scroll-behavior:smooth}
/* Persistent theme authority: keep the cinematic shell active after app initialization. */
html[data-vivid-theme="cinematic"] body.vivid-atmosphere{background:radial-gradient(900px 620px at 8% 4%,rgba(91,108,132,.13),transparent 62%),radial-gradient(760px 560px at 92% 16%,rgba(65,79,101,.10),transparent 62%),radial-gradient(900px 700px at 50% 100%,rgba(52,61,76,.08),transparent 66%),linear-gradient(180deg,#090b10 0%,#07090d 48%,#06080c 100%)!important;color:#f4f6f8!important;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Segoe UI",Roboto,Helvetica,Arial,sans-serif!important}
html[data-vivid-theme="cinematic"] body.vivid-atmosphere .vivid-home{background:transparent!important;color:#f4f6f8!important}
html[data-vivid-theme="cinematic"] body.vivid-atmosphere h1,
html[data-vivid-theme="cinematic"] body.vivid-atmosphere h2,
html[data-vivid-theme="cinematic"] body.vivid-atmosphere h3,
html[data-vivid-theme="cinematic"] body.vivid-atmosphere h4{color:#f5f7fa!important;font-weight:650!important;letter-spacing:-.035em!important}
body.vivid-atmosphere{position:relative;isolation:isolate;min-height:100%;overflow-x:hidden;color:var(--vivid-site-text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background:radial-gradient(900px 620px at 8% 4%,rgba(91,108,132,.13),transparent 62%),radial-gradient(760px 560px at 92% 16%,rgba(65,79,101,.10),transparent 62%),radial-gradient(900px 700px at 50% 100%,rgba(52,61,76,.08),transparent 66%),linear-gradient(180deg,#090b10 0%,#07090d 48%,#06080c 100%)}
body.vivid-atmosphere::before{content:"";position:fixed;inset:-10%;z-index:-2;pointer-events:none;background:radial-gradient(ellipse at 14% 10%,rgba(170,185,205,.09),transparent 30%),radial-gradient(ellipse at 86% 24%,rgba(110,128,155,.07),transparent 32%),radial-gradient(ellipse at 50% 88%,rgba(120,130,148,.055),transparent 34%);filter:blur(48px);opacity:.95;animation:vividAmbientDrift 24s ease-in-out infinite alternate}
body.vivid-atmosphere::after{content:"";position:fixed;inset:0;z-index:30;pointer-events:none;opacity:.48;background:radial-gradient(700px circle at var(--vivid-atmosphere-x) var(--vivid-atmosphere-y),rgba(255,255,255,.055),transparent 67%),linear-gradient(180deg,rgba(255,255,255,.018),transparent 22%,transparent 78%,rgba(0,0,0,.08));mix-blend-mode:screen}
@keyframes vividAmbientDrift{0%{transform:translate3d(-1.5%,0,0) scale(1)}50%{transform:translate3d(1%,1.5%,0) scale(1.035)}100%{transform:translate3d(-.5%,-1%,0) scale(1.02)}}

body.vivid-atmosphere h1,body.vivid-atmosphere h2,body.vivid-atmosphere h3,body.vivid-atmosphere h4{color:#f5f7fa;font-weight:650;letter-spacing:-.035em}
body.vivid-atmosphere p{color:var(--vivid-site-muted)}
body.vivid-atmosphere small{color:var(--vivid-site-dim)}
body.vivid-atmosphere .vivid-rail-head h2,body.vivid-atmosphere .vivid-section-heading h2,body.vivid-atmosphere .vivid-library-header h1,body.vivid-atmosphere .vivid-discovery-intro h1,body.vivid-atmosphere .account-header h1{font-weight:650;letter-spacing:-.045em}
body.vivid-atmosphere .vivid-rail-head p,body.vivid-atmosphere .vivid-section-heading>div>span,body.vivid-atmosphere .vivid-library-kicker,body.vivid-atmosphere .vivid-discovery-kicker{color:#8e96a2}

body.vivid-atmosphere .vivid-card,body.vivid-atmosphere .account-card,body.vivid-atmosphere .vivid-filter-panel,body.vivid-atmosphere .vivid-collection-toolbar,body.vivid-atmosphere .vivid-library-tabs,body.vivid-atmosphere .vivid-provider-group{background:linear-gradient(150deg,rgba(23,27,35,.88),rgba(11,14,19,.88));border-color:var(--vivid-site-line);box-shadow:0 20px 60px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.035)}
body.vivid-atmosphere .vivid-card-info{background:linear-gradient(180deg,rgba(13,16,21,.18),rgba(8,10,14,.72))}
body.vivid-atmosphere .vivid-topbar,body.vivid-atmosphere .vivid-discovery-nav,body.vivid-atmosphere .vivid-title-nav,body.vivid-atmosphere .vivid-library-nav,body.vivid-atmosphere .vivid-watch-nav{z-index:1000;transition:background .35s ease,border-color .35s ease,box-shadow .35s ease,backdrop-filter .35s ease;background:linear-gradient(180deg,rgba(7,9,13,.86),rgba(7,9,13,.54));border-bottom:1px solid rgba(255,255,255,.07);box-shadow:0 12px 40px rgba(0,0,0,.16)}
body.vivid-atmosphere .vivid-search-panel,body.vivid-atmosphere .auth-container{background:linear-gradient(145deg,rgba(22,26,34,.9),rgba(10,13,18,.9));border-color:rgba(255,255,255,.1);box-shadow:0 30px 90px rgba(0,0,0,.42)}
body.vivid-atmosphere .vivid-footer,body.vivid-atmosphere .landing-footer{background:linear-gradient(180deg,transparent,rgba(3,5,8,.32));border-top-color:rgba(255,255,255,.08)}

body.vivid-atmosphere .vivid-discovery-app,body.vivid-atmosphere .vivid-library-app,body.vivid-atmosphere .vivid-title-app,body.vivid-atmosphere .vivid-watch-app,body.vivid-atmosphere .account-page,body.vivid-atmosphere .auth-container,body.vivid-atmosphere .nav,body.vivid-atmosphere .vivid-collection-app{position:relative;z-index:1}
body.vivid-atmosphere .vivid-rails,body.vivid-atmosphere .vivid-title-section,body.vivid-atmosphere .vivid-library-main,body.vivid-atmosphere .vivid-discovery-main,body.vivid-atmosphere .account-shell,body.vivid-atmosphere .vivid-watch-shell{position:relative}
body.vivid-atmosphere .vivid-rails::before,body.vivid-atmosphere .vivid-title-section::before,body.vivid-atmosphere .vivid-library-main::before,body.vivid-atmosphere .vivid-discovery-main::before,body.vivid-atmosphere .account-shell::before,body.vivid-atmosphere .vivid-watch-shell::before{content:"";position:absolute;left:4%;right:4%;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),transparent);pointer-events:none}
body.vivid-atmosphere.vivid-cinema-home .vivid-home{background:transparent!important}

body.vivid-atmosphere .vivid-ambient-art{position:fixed;inset:-8%;z-index:0;pointer-events:none!important;overflow:hidden;contain:paint;opacity:.64!important;filter:blur(24px) saturate(.58) brightness(.68)!important;transform:scale(1.08)}
body.vivid-atmosphere .vivid-ambient-art-layer{position:absolute;inset:0;background-position:center;background-size:cover;opacity:0;transform:scale(1.04);transition:opacity 1.8s ease,transform 14s ease}
body.vivid-atmosphere .vivid-ambient-art-layer.is-visible{opacity:.18!important;transform:scale(1.09)}
body.vivid-atmosphere .vivid-ambient-art::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,7,10,.90),rgba(5,7,10,.64) 45%,rgba(5,7,10,.86)),linear-gradient(0deg,rgba(5,7,10,.94),rgba(5,7,10,.18) 48%,rgba(5,7,10,.82))}

body.vivid-atmosphere .vivid-card,body.vivid-atmosphere .vivid-feature-card,body.vivid-atmosphere .landing-poster{transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease,border-color .28s ease,filter .28s ease}
body.vivid-atmosphere .vivid-card::before,body.vivid-atmosphere .vivid-feature-card::before,body.vivid-atmosphere .landing-poster::before{content:"";position:absolute;z-index:4;inset:0;pointer-events:none;opacity:0;background:linear-gradient(112deg,transparent 30%,rgba(255,255,255,.14) 48%,transparent 65%);transform:translateX(-115%)}
@media(hover:hover) and (pointer:fine){body.vivid-atmosphere .vivid-card:hover::before,body.vivid-atmosphere .vivid-feature-card:hover::before,body.vivid-atmosphere .landing-poster:hover::before{opacity:1;animation:vividSheen .7s ease forwards}body.vivid-atmosphere .vivid-card:hover .vivid-card-info{transform:translateY(-1px)}}
@keyframes vividSheen{to{transform:translateX(115%)}}

body.vivid-atmosphere .vivid-rail{gap:12px;--vivid-rail-shift:0px}
body.vivid-atmosphere .vivid-card{flex:0 0 clamp(150px,11vw,168px)!important;width:clamp(150px,11vw,168px);min-width:clamp(150px,11vw,168px);max-width:clamp(150px,11vw,168px);transform:none;isolation:isolate;overflow:visible}
body.vivid-atmosphere .vivid-card-media{position:relative;isolation:isolate;aspect-ratio:3/4!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.025)}
body.vivid-atmosphere .vivid-card-media::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.08),transparent 35%,rgba(0,0,0,.12)),linear-gradient(112deg,transparent 35%,rgba(255,255,255,.09) 49%,transparent 61%);background-size:100% 100%,220% 100%;background-position:0 0,-130% 0;transition:background-position .7s ease}
body.vivid-atmosphere .vivid-card-info{position:relative;z-index:2;min-height:48px!important;padding:8px 9px 10px;transition:transform .28s ease,opacity .28s ease}
body.vivid-atmosphere .vivid-card-title{font-size:.82rem}
body.vivid-atmosphere .vivid-card-sub{margin-top:3px;font-size:.68rem;transition:color .28s ease}
body.vivid-atmosphere .vivid-card::after{content:"";position:absolute;z-index:-1;inset:8% -10% -8%;border-radius:24px;background-image:var(--vivid-card-art);background-position:center;background-size:cover;filter:blur(24px) saturate(.72);opacity:.12;transform:scale(.92);transition:opacity .35s ease,transform .45s cubic-bezier(.2,.8,.2,1);pointer-events:none}
body.vivid-atmosphere .vivid-skeleton-card{flex:0 0 clamp(150px,11vw,168px)!important;width:clamp(150px,11vw,168px);min-width:clamp(150px,11vw,168px);max-width:clamp(150px,11vw,168px);aspect-ratio:3/4!important}

@media(hover:hover) and (pointer:fine){
 body.vivid-atmosphere .vivid-card:hover,body.vivid-atmosphere .vivid-card:focus-visible{transform:translateY(-7px) scale(1.035)!important}
 body.vivid-atmosphere .vivid-card:hover::after,body.vivid-atmosphere .vivid-card:focus-visible::after{opacity:.28;transform:scale(1.02)}
 body.vivid-atmosphere .vivid-card:hover .vivid-card-media::after,body.vivid-atmosphere .vivid-card:focus-visible .vivid-card-media::after{background-position:0 0,130% 0}
 body.vivid-atmosphere .vivid-feature-card:hover::after,body.vivid-atmosphere .vivid-feature-card.is-active::after{opacity:1;transform:scale(1.03)}
}

.vivid-reveal{opacity:0;transform:translate3d(0,18px,0);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.8,.2,1)}
.vivid-reveal.is-visible{opacity:1;transform:none}
.vivid-reveal:nth-child(2){transition-delay:45ms}.vivid-reveal:nth-child(3){transition-delay:90ms}.vivid-reveal:nth-child(4){transition-delay:135ms}.vivid-reveal:nth-child(5){transition-delay:180ms}.vivid-reveal:nth-child(6){transition-delay:225ms}
.vivid-page-transition{position:fixed;inset:0;z-index:9999;pointer-events:none;background:#07090d;opacity:0;transition:opacity .22s ease}
.vivid-page-transition.is-active{opacity:1}
body.vivid-atmosphere{transition:opacity .32s ease}
body.vivid-atmosphere .vivid-button,body.vivid-atmosphere button,body.vivid-atmosphere a{-webkit-tap-highlight-color:transparent}
body.vivid-atmosphere .vivid-button:active,body.vivid-atmosphere .landing-submit:active{transform:translateY(1px) scale(.985)}
body.vivid-atmosphere .vivid-rail-head{transform:none}

@media(max-width:900px){body.vivid-atmosphere .vivid-ambient-art{filter:blur(20px) saturate(.55) brightness(.65)!important;opacity:.42!important}body.vivid-atmosphere .vivid-ambient-art-layer.is-visible{opacity:.12!important}}
@media(max-width:640px){html{scroll-behavior:smooth}body.vivid-atmosphere::before{filter:blur(32px);animation-duration:32s}body.vivid-atmosphere::after{opacity:.45}body.vivid-atmosphere .vivid-rail{gap:10px}body.vivid-atmosphere .vivid-card,body.vivid-atmosphere .vivid-skeleton-card{flex-basis:136px!important;width:136px;min-width:136px;max-width:136px}body.vivid-atmosphere .vivid-card-info{min-height:46px!important;padding:7px 8px 9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}body.vivid-atmosphere::before{animation:none}body.vivid-atmosphere::after{display:none}body.vivid-atmosphere .vivid-ambient-art-layer{transition:none;transform:none}.vivid-reveal{opacity:1;transform:none;transition:none}.vivid-atmosphere .vivid-card,.vivid-atmosphere .vivid-card-info,.vivid-atmosphere .vivid-card-media::after,.vivid-atmosphere .vivid-card::after{transition:none!important;transform:none!important}.vivid-atmosphere .vivid-card::before,.vivid-atmosphere .vivid-feature-card::before,.vivid-atmosphere .landing-poster::before{display:none}.vivid-page-transition{display:none}}


/* Global responsive containment: every page must fit the viewport without clipping or accidental zoom. */
html,body{width:100%;max-width:100%;min-width:0;overflow-x:clip}
body.vivid-atmosphere{min-width:0}
body.vivid-atmosphere *,body.vivid-atmosphere *::before,body.vivid-atmosphere *::after{box-sizing:border-box;max-inline-size:100%}
body.vivid-atmosphere img,body.vivid-atmosphere video,body.vivid-atmosphere iframe,body.vivid-atmosphere svg,body.vivid-atmosphere canvas{max-width:100%}
body.vivid-atmosphere table{display:block;max-width:100%;overflow-x:auto}
body.vivid-atmosphere pre,body.vivid-atmosphere code{max-width:100%;overflow:auto}
body.vivid-atmosphere p,body.vivid-atmosphere h1,body.vivid-atmosphere h2,body.vivid-atmosphere h3,body.vivid-atmosphere h4,body.vivid-atmosphere h5,body.vivid-atmosphere h6{overflow-wrap:anywhere}
body.vivid-atmosphere .vivid-landing-shell,
body.vivid-atmosphere .vivid-discovery-app,
body.vivid-atmosphere .vivid-collection-app,
body.vivid-atmosphere .vivid-title-app,
body.vivid-atmosphere .vivid-watch-app,
body.vivid-atmosphere .vivid-library-app,
body.vivid-atmosphere .vivid-home{background:transparent!important}
body.vivid-atmosphere .vivid-discovery-main,
body.vivid-atmosphere .vivid-collection-main,
body.vivid-atmosphere .vivid-title-section,
body.vivid-atmosphere .vivid-watch-recommendations,
body.vivid-atmosphere .vivid-library-main,
body.vivid-atmosphere .vivid-account-shell,
body.vivid-atmosphere .vivid-legal-main,
body.vivid-atmosphere .vivid-shell{min-width:0;max-width:100%}
body.vivid-atmosphere .vivid-discovery-grid,
body.vivid-atmosphere .vivid-library-grid,
body.vivid-atmosphere .vivid-cast-grid,
body.vivid-atmosphere .vivid-provider-grid,
body.vivid-atmosphere .vivid-video-grid,
body.vivid-atmosphere .account-grid{min-width:0}
body.vivid-atmosphere .vivid-discovery-grid>*,
body.vivid-atmosphere .vivid-library-grid>*,
body.vivid-atmosphere .vivid-cast-grid>*,
body.vivid-atmosphere .vivid-provider-grid>*,
body.vivid-atmosphere .vivid-video-grid>*,
body.vivid-atmosphere .account-grid>*{min-width:0}
@media (max-width:1100px){
  body.vivid-atmosphere .vivid-discovery-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  body.vivid-atmosphere .vivid-library-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  body.vivid-atmosphere .vivid-cast-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  body.vivid-atmosphere .vivid-video-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  body.vivid-atmosphere .vivid-discovery-intro{grid-template-columns:minmax(0,1fr) minmax(240px,380px)}
}
@media (max-width:800px){
  body.vivid-atmosphere .vivid-discovery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  body.vivid-atmosphere .vivid-library-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  body.vivid-atmosphere .vivid-cast-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  body.vivid-atmosphere .vivid-video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.vivid-atmosphere .vivid-title-info-inner{grid-template-columns:minmax(96px,120px) minmax(0,1fr)}
  body.vivid-atmosphere .vivid-title-hero-inner{grid-template-columns:minmax(96px,120px) minmax(0,1fr)}
}
@media (max-width:560px){
  body.vivid-atmosphere .vivid-discovery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.vivid-atmosphere .vivid-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.vivid-atmosphere .vivid-cast-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  body.vivid-atmosphere .vivid-video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.vivid-atmosphere .vivid-discovery-intro{grid-template-columns:1fr;gap:18px}
  body.vivid-atmosphere .vivid-filter-panel,
  body.vivid-atmosphere .vivid-collection-toolbar{padding:12px}
  body.vivid-atmosphere .vivid-title-info-inner{grid-template-columns:1fr}
  body.vivid-atmosphere .vivid-title-poster{width:min(145px,44vw)}
}
@media (max-width:380px){
  body.vivid-atmosphere .vivid-discovery-main,
  body.vivid-atmosphere .vivid-collection-main,
  body.vivid-atmosphere .vivid-title-section,
  body.vivid-atmosphere .vivid-watch-recommendations,
  body.vivid-atmosphere .vivid-library-main{padding-left:12px;padding-right:12px}
  body.vivid-atmosphere .vivid-discovery-grid,
  body.vivid-atmosphere .vivid-library-grid{gap:9px}
  body.vivid-atmosphere .vivid-cast-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (hover:hover) and (pointer:fine){
  body.vivid-atmosphere .vivid-card:hover,
  body.vivid-atmosphere .vivid-card:focus-visible{transform:translateY(-7px) scale(1.035)!important}
  body.vivid-atmosphere .vivid-feature-card:hover,
  body.vivid-atmosphere .vivid-feature-card:focus-visible,
  body.vivid-atmosphere .vivid-feature-card.is-active{transform:translateY(-8px) scale(1.05)!important}
}
@media (max-width:640px){
  body.vivid-atmosphere .vivid-card:hover,
  body.vivid-atmosphere .vivid-card:focus-visible,
  body.vivid-atmosphere .vivid-feature-card:hover,
  body.vivid-atmosphere .vivid-feature-card:focus-visible,
  body.vivid-atmosphere .vivid-feature-card.is-active{transform:none!important}
}


/* Cross-platform visual parity.
   One home composition across desktop browser, mobile browser and iOS standalone.
   Responsive differences are limited to navigation density and available width;
   the cinematic hierarchy, surfaces, spacing language and card treatment stay shared. */
body.vivid-cinema-home .vivid-home{
  width:100%;
  max-width:none;
  overflow:clip;
}
body.vivid-cinema-home .vivid-topbar{
  padding-top:calc(8px + var(--vivid-safe-top,0px));
  padding-right:max(12px,var(--vivid-safe-right,0px));
  padding-bottom:8px;
  padding-left:max(12px,var(--vivid-safe-left,0px));
}
body.vivid-cinema-home .vivid-nav{
  width:min(100%,1440px);
  min-height:50px;
  gap:10px;
}
body.vivid-cinema-home .vivid-brand{
  font-size:1.05rem;
}
body.vivid-cinema-home .vivid-feature-strip{
  width:min(1440px,100%);
  padding:12px var(--vivid-page-gutter) 20px;
}
body.vivid-cinema-home .vivid-feature-card{
  flex:0 0 clamp(172px,18vw,220px);
  width:clamp(172px,18vw,220px);
  height:97px;
}
body.vivid-cinema-home .vivid-section-wrap{
  width:min(1440px,100%);
  padding-inline:var(--vivid-page-gutter);
}
body.vivid-cinema-home .vivid-rails{
  padding-block:18px 4px;
}
body.vivid-cinema-home .vivid-rail{
  gap:12px;
  padding-top:4px;
  padding-bottom:14px;
}
body.vivid-cinema-home .vivid-card,
body.vivid-cinema-home .vivid-skeleton-card{
  flex:0 0 clamp(136px,11vw,168px)!important;
  width:clamp(136px,11vw,168px);
  min-width:clamp(136px,11vw,168px);
  max-width:clamp(136px,11vw,168px);
}
@media(max-width:900px){
  body.vivid-cinema-home .vivid-nav{
    gap:8px;
  }
  body.vivid-cinema-home .vivid-feature-strip{
    padding-inline:24px;
  }
}
@media(max-width:640px){
  body.vivid-cinema-home .vivid-topbar{
    padding-top:calc(8px + var(--vivid-safe-top,0px));
    padding-right:calc(12px + var(--vivid-safe-right,0px));
    padding-bottom:8px;
    padding-left:calc(12px + var(--vivid-safe-left,0px));
  }
  body.vivid-cinema-home .vivid-nav{
    min-height:50px;
  }
  body.vivid-cinema-home .vivid-feature-strip{
    padding:12px 16px 20px;
  }
  body.vivid-cinema-home .vivid-feature-card{
    flex-basis:172px;
    width:172px;
    height:97px;
  }
  body.vivid-cinema-home .vivid-section-wrap{
    padding-inline:14px;
    padding-bottom:calc(96px + env(safe-area-inset-bottom,0px));
  }
  body.vivid-cinema-home .vivid-card,
  body.vivid-cinema-home .vivid-skeleton-card{
    flex-basis:136px!important;
    width:136px;
    min-width:136px;
    max-width:136px;
  }
}


/* Streaming-product standardization.
   Vivid follows the common premium-service hierarchy: one hero, a small set of
   high-signal rows, consistent card geometry, quiet chrome, and personalization
   ahead of generic catalogue volume. */
body.vivid-cinema-home .vivid-rail-head{
  min-height:42px;
  margin-bottom:12px;
}
body.vivid-cinema-home .vivid-rail-head h2{
  font-size:clamp(1.18rem,1.65vw,1.55rem);
  line-height:1.12;
}
body.vivid-cinema-home .vivid-rail-head p{
  max-width:620px;
  margin-top:5px;
  line-height:1.35;
}
body.vivid-cinema-home .vivid-rail-see-all{
  min-height:34px;
  display:inline-flex;
  align-items:center;
}
body.vivid-cinema-home .vivid-rail{
  scroll-padding-inline:2px;
  scrollbar-width:none;
}
body.vivid-cinema-home .vivid-card,
body.vivid-cinema-home .vivid-skeleton-card{
  flex-basis:clamp(180px,13.5vw,220px)!important;
  width:clamp(180px,13.5vw,220px);
  min-width:clamp(180px,13.5vw,220px);
  max-width:clamp(180px,13.5vw,220px);
}
body.vivid-cinema-home .vivid-card-media{
  aspect-ratio:2/3!important;
}
body.vivid-cinema-home .vivid-card-info{
  min-height:58px!important;
  padding:9px 10px 11px;
}
body.vivid-cinema-home .vivid-card-title{
  font-size:.84rem;
  line-height:1.25;
}
body.vivid-cinema-home .vivid-card-sub{
  font-size:.7rem;
}
body.vivid-cinema-home .vivid-rails{
  padding-block:20px 8px;
}
body.vivid-cinema-home .vivid-rails + .vivid-rails{
  border-top:1px solid rgba(255,255,255,.025);
}
body.vivid-cinema-home .vivid-catalogue-explore{
  padding-top:22px;
  padding-bottom:6px;
}
body.vivid-cinema-home .vivid-catalogue-chips a{
  min-height:38px;
  display:inline-flex;
  align-items:center;
}
@media(max-width:900px){
  body.vivid-cinema-home .vivid-card,
  body.vivid-cinema-home .vivid-skeleton-card{
    flex-basis:180px!important;
    width:180px;
    min-width:180px;
    max-width:180px;
  }
}
@media(max-width:640px){
  body.vivid-cinema-home .vivid-rails{
    padding-block:16px 4px;
  }
  body.vivid-cinema-home .vivid-rails + .vivid-rails{
    border-top:0;
  }
  body.vivid-cinema-home .vivid-card,
  body.vivid-cinema-home .vivid-skeleton-card{
    flex-basis:136px!important;
    width:136px;
    min-width:136px;
    max-width:136px;
  }
  body.vivid-cinema-home .vivid-card-info{
    min-height:46px!important;
    padding:7px 8px 9px;
  }
}

/* Desktop is pointer-led; touch devices keep cards visually stable. */
@media(hover:hover) and (pointer:fine){
  body.vivid-cinema-home .vivid-card:hover,
  body.vivid-cinema-home .vivid-card:focus-visible{
    transform:translateY(-9px) scale(1.035)!important;
    box-shadow:0 24px 54px rgba(0,0,0,.34);
  }
}


/* Premium page standardization — detail, playback, discovery and library use the
   same cinematic chrome as Home without changing player/data behavior. */
body.vivid-atmosphere .vivid-title-nav,
body.vivid-atmosphere .vivid-watch-nav,
body.vivid-atmosphere .vivid-library-nav,
body.vivid-atmosphere .vivid-discovery-nav{
  padding-top:calc(10px + var(--vivid-safe-top,0px));
  padding-right:max(var(--vivid-page-gutter),var(--vivid-safe-right,0px));
  padding-left:max(var(--vivid-page-gutter),var(--vivid-safe-left,0px));
  min-height:calc(62px + var(--vivid-safe-top,0px));
}
body.vivid-atmosphere .vivid-title-nav,
body.vivid-atmosphere .vivid-watch-nav{
  background:linear-gradient(180deg,rgba(7,9,13,.92),rgba(7,9,13,.62));
}
body.vivid-atmosphere .vivid-title-nav .vivid-brand,
body.vivid-atmosphere .vivid-watch-nav .vivid-brand,
body.vivid-atmosphere .vivid-library-nav .vivid-brand,
body.vivid-atmosphere .vivid-discovery-nav .vivid-brand{
  flex:0 0 auto;
}
body.vivid-atmosphere .vivid-title-page .vivid-title-backdrop{
  margin-top:0;
  height:clamp(300px,46svh,520px);
  min-height:300px;
}
body.vivid-atmosphere .vivid-title-page .vivid-title-info-inner{
  width:min(1280px,100%);
  grid-template-columns:220px minmax(0,1fr);
  gap:36px;
}
body.vivid-atmosphere .vivid-title-page .vivid-title-section{
  width:min(1280px,100%);
}
body.vivid-atmosphere .vivid-title-page .vivid-title-library-actions{
  width:min(1280px,100%);
}
body.vivid-atmosphere .vivid-title-page .vivid-title-section + .vivid-title-section{
  border-top:1px solid rgba(255,255,255,.035);
}
body.vivid-atmosphere .vivid-watch-page .vivid-watch-hero{
  min-height:clamp(300px,42svh,500px);
}
body.vivid-atmosphere .vivid-watch-page .vivid-player-section{
  width:min(1280px,100%);
}
body.vivid-atmosphere .vivid-watch-page .vivid-player-placeholder{
  min-height:clamp(300px,44vw,560px);
  border-radius:20px;
}
body.vivid-atmosphere .vivid-watch-page .vivid-watch-recommendations{
  width:min(1280px,100%);
}
body.vivid-atmosphere .vivid-watch-page .vivid-watch-rec-card{
  flex-basis:176px;
}
body.vivid-atmosphere .vivid-watch-page .vivid-watch-rec-card img{
  border-radius:16px;
  box-shadow:0 16px 42px rgba(0,0,0,.22);
}
body.vivid-atmosphere .vivid-watch-page .vivid-watch-player-dialog{
  width:min(1320px,100%);
}
body.vivid-atmosphere .vivid-discovery-page .vivid-discovery-main,
body.vivid-atmosphere .vivid-library-page .vivid-library-main,
body.vivid-atmosphere .account-page .account-shell{
  width:min(1280px,100%);
}
body.vivid-atmosphere .vivid-discovery-page .vivid-filter-panel,
body.vivid-atmosphere .vivid-library-page .vivid-library-tabs{
  border-color:rgba(255,255,255,.09);
}
body.vivid-atmosphere .vivid-discovery-page .vivid-discovery-card,
body.vivid-atmosphere .vivid-library-page .vivid-library-card{
  min-width:0;
}
@media(max-width:800px){
  body.vivid-atmosphere .vivid-title-nav,
  body.vivid-atmosphere .vivid-watch-nav,
  body.vivid-atmosphere .vivid-library-nav,
  body.vivid-atmosphere .vivid-discovery-nav{
    padding-top:calc(8px + var(--vivid-safe-top,0px));
    padding-right:max(12px,var(--vivid-safe-right,0px));
    padding-left:max(12px,var(--vivid-safe-left,0px));
  }
  body.vivid-atmosphere .vivid-title-page .vivid-title-backdrop{
    height:clamp(260px,40svh,380px);
    min-height:260px;
  }
  body.vivid-atmosphere .vivid-title-page .vivid-title-info-inner{
    grid-template-columns:120px minmax(0,1fr);
    gap:18px;
  }
  body.vivid-atmosphere .vivid-watch-page .vivid-watch-hero{
    min-height:280px;
  }
  body.vivid-atmosphere .vivid-watch-page .vivid-player-placeholder{
    min-height:280px;
    border-radius:14px;
  }
}
@media(max-width:560px){
  body.vivid-atmosphere .vivid-title-page .vivid-title-info-inner{
    grid-template-columns:1fr;
    gap:14px;
  }
  body.vivid-atmosphere .vivid-title-page .vivid-title-poster{
    width:116px;
  }
  body.vivid-atmosphere .vivid-watch-page .vivid-watch-rec-card{
    flex-basis:148px;
  }
}
@media(prefers-reduced-motion:reduce){
  body.vivid-atmosphere .vivid-watch-page .vivid-watch-rec-card img{transition:none}
}


/* Phase B personalization surfaces. Kept deliberately quiet so intelligence
   feels native to Vivid rather than like a marketing modal. */
.vivid-onboarding-modal{
  position:fixed;
  inset:0;
  z-index:1200;
  display:grid;
  place-items:center;
  padding:clamp(16px,4vw,40px);
  background:rgba(3,4,7,.78);
  backdrop-filter:blur(22px) saturate(115%);
  -webkit-backdrop-filter:blur(22px) saturate(115%);
}
.vivid-onboarding-dialog{
  width:min(920px,100%);
  max-height:min(820px,calc(100dvh - 32px));
  overflow:auto;
  border:1px solid rgba(255,255,255,.11);
  border-radius:28px;
  background:rgba(13,15,19,.96);
  box-shadow:0 32px 100px rgba(0,0,0,.5);
  padding:clamp(20px,4vw,34px);
}
.vivid-onboarding-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}
.vivid-onboarding-head span{font-size:.68rem;letter-spacing:.16em;color:var(--vivid-text-subtle)}
.vivid-onboarding-head h2{margin:7px 0 6px;font-size:clamp(1.55rem,3vw,2.2rem);letter-spacing:-.035em}
.vivid-onboarding-head p{margin:0;color:var(--vivid-text-muted);max-width:620px}
.vivid-onboarding-close{width:40px;height:40px;flex:0 0 40px;border:1px solid var(--vivid-border);border-radius:50%;background:var(--vivid-surface-soft);color:var(--vivid-text);cursor:pointer}
.vivid-onboarding-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:26px 0}
.vivid-onboarding-card{position:relative;min-width:0;padding:0;border:1px solid var(--vivid-border);border-radius:15px;overflow:hidden;background:var(--vivid-bg-elevated);color:var(--vivid-text);text-align:left;cursor:pointer}
.vivid-onboarding-card img{display:block;width:100%;aspect-ratio:2/3;object-fit:cover}
.vivid-onboarding-card span{display:block;padding:9px 10px 11px;font-size:.78rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vivid-onboarding-card.is-selected{border-color:rgba(255,255,255,.75);box-shadow:0 0 0 2px rgba(255,255,255,.2);transform:translateY(-3px)}
.vivid-onboarding-card.is-selected:after{content:"✓";position:absolute;top:9px;right:9px;width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:#fff;color:#08090b;font-weight:800}
.vivid-onboarding-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:18px;border-top:1px solid rgba(255,255,255,.07)}
.vivid-onboarding-actions small{color:var(--vivid-text-muted)}
@media(max-width:700px){
  .vivid-onboarding-modal{padding:10px}
  .vivid-onboarding-dialog{border-radius:22px;padding:18px}
  .vivid-onboarding-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:20px 0}
  .vivid-onboarding-head{gap:12px}
  .vivid-onboarding-actions{align-items:flex-start;flex-direction:column}
  .vivid-onboarding-actions>div{width:100%;display:flex;justify-content:flex-end}
}
@media(prefers-reduced-motion:reduce){
  .vivid-onboarding-card.is-selected{transform:none}
}


/* Vivid Cinema critical UI consistency pass.
   Final cascade: cards stay anchored; depth comes from light/shadow, not layout scaling. */
body.vivid-atmosphere .vivid-card,
body.vivid-atmosphere .vivid-feature-card,
body.vivid-atmosphere .landing-poster{
  transform:none!important;
  transition:
    box-shadow var(--vivid-duration-ui) var(--vivid-motion),
    border-color var(--vivid-duration-ui) ease,
    filter var(--vivid-duration-ui) ease;
}
@media(hover:hover) and (pointer:fine){
  body.vivid-atmosphere .vivid-card:hover,
  body.vivid-atmosphere .vivid-card:focus-visible{
    transform:translateY(-4px)!important;
    box-shadow:0 22px 54px rgba(0,0,0,.34),inset 0 1px 0 var(--vivid-highlight)!important;
  }
  body.vivid-atmosphere .vivid-feature-card:hover,
  body.vivid-atmosphere .vivid-feature-card:focus-visible,
  body.vivid-atmosphere .vivid-feature-card.is-active{
    transform:translateY(-4px)!important;
  }
}
@media(max-width:640px){
  body.vivid-atmosphere .vivid-card,
  body.vivid-atmosphere .vivid-card:hover,
  body.vivid-atmosphere .vivid-card:focus-visible,
  body.vivid-atmosphere .vivid-feature-card,
  body.vivid-atmosphere .vivid-feature-card:hover,
  body.vivid-atmosphere .vivid-feature-card:focus-visible,
  body.vivid-atmosphere .vivid-feature-card.is-active{
    transform:none!important;
  }
}

/* Shared controls: every page gets the same tactile glass language. */
body.vivid-atmosphere .vivid-button,
body.vivid-atmosphere .vivid-icon-button,
body.vivid-atmosphere .vivid-mode-chip,
body.vivid-atmosphere .vivid-provider-chip,
body.vivid-atmosphere .vivid-filter-panel select,
body.vivid-atmosphere .vivid-collection-toolbar select{
  border-color:var(--vivid-border);
  border-radius:var(--vivid-radius-sm);
  box-shadow:inset 0 1px 0 var(--vivid-highlight);
}
body.vivid-atmosphere .vivid-button:hover,
body.vivid-atmosphere .vivid-icon-button:hover,
body.vivid-atmosphere .vivid-mode-chip:hover,
body.vivid-atmosphere .vivid-provider-chip:hover{
  border-color:var(--vivid-border-strong);
}
body.vivid-atmosphere .vivid-button--primary{
  background:var(--vivid-accent);
  color:var(--vivid-bg);
}
html[data-vivid-theme="light"] body.vivid-atmosphere .vivid-button--primary{
  background:#10131a;
  color:#fff;
}

/* Light theme: preserve cinematic depth without turning the UI flat white. */
html[data-vivid-theme="light"] body.vivid-atmosphere{
  background:
    radial-gradient(900px 560px at 10% 0%,rgba(150,170,205,.16),transparent 65%),
    radial-gradient(800px 520px at 92% 8%,rgba(190,200,220,.18),transparent 64%),
    #f2f4f7!important;
}
html[data-vivid-theme="light"] body.vivid-atmosphere .vivid-topbar,
html[data-vivid-theme="light"] body.vivid-atmosphere .vivid-discovery-nav,
html[data-vivid-theme="light"] body.vivid-atmosphere .vivid-title-nav,
html[data-vivid-theme="light"] body.vivid-atmosphere .vivid-library-nav,
html[data-vivid-theme="light"] body.vivid-atmosphere .vivid-watch-nav{
  background:rgba(255,255,255,.62)!important;
  border-color:rgba(20,28,40,.11)!important;
  box-shadow:0 12px 36px rgba(20,28,40,.09),inset 0 1px rgba(255,255,255,.9)!important;
}
html[data-vivid-theme="light"] body.vivid-atmosphere .vivid-card,
html[data-vivid-theme="light"] body.vivid-atmosphere .vivid-feature-card,
html[data-vivid-theme="light"] body.vivid-atmosphere .vivid-provider-group,
html[data-vivid-theme="light"] body.vivid-atmosphere .vivid-library-tabs{
  background:rgba(255,255,255,.72)!important;
  border-color:rgba(20,28,40,.11)!important;
  box-shadow:0 16px 42px rgba(20,28,40,.09),inset 0 1px rgba(255,255,255,.9)!important;
}
html[data-vivid-theme="light"] body.vivid-atmosphere .vivid-card-title,
html[data-vivid-theme="light"] body.vivid-atmosphere .vivid-rail-head h2,
html[data-vivid-theme="light"] body.vivid-atmosphere .vivid-section-heading h2,
html[data-vivid-theme="light"] body.vivid-atmosphere .vivid-library-header h1,
html[data-vivid-theme="light"] body.vivid-atmosphere .vivid-discovery-intro h1,
html[data-vivid-theme="light"] body.vivid-atmosphere .account-header h1{
  color:#10131a!important;
}
html[data-vivid-theme="light"] body.vivid-atmosphere p,
html[data-vivid-theme="light"] body.vivid-atmosphere .vivid-card-sub{
  color:#606875!important;
}

/* Keep focus accessible in both themes. */
body.vivid-atmosphere :where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:2px solid var(--vivid-focus);
  outline-offset:3px;
}


/* Keep the streaming surface cheaper to composite on desktop GPUs. The watch page retains its static cinematic backdrop without the full-screen blur drift and blend overlay. */
body.vivid-watch-page.vivid-atmosphere::before{animation:none;filter:none;opacity:.42}
body.vivid-watch-page.vivid-atmosphere::after{display:none}
