/* ============================================================================
   PREVIOUSLY · Coming Soon — overlays: centered modals + anchored popovers
   Luxury treatment: noir cinematic surfaces, Signal Red accent. No inline
   styles anywhere;strict-CSP safe. Loaded on /coming-soon/ only.
   ========================================================================== */

/* Reserve the scrollbar gutter so locking body scroll never shifts layout. */
html{scrollbar-gutter:stable}body.pv-ovl-open{overflow:hidden}/* ---------- backdrop ---------- */
.pv-ovl{position:fixed;inset:0;z-index:200;display:flex;align-items:center;
  justify-content:center;padding:20px;background:rgba(var(--desert-ink-rgb), .74);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  animation:pv-ovl-in .28s ease}@keyframes pv-ovl-in{from{opacity:0}to{opacity:1}}/* ---------- modal shell ---------- */
.pv-modal{position:relative;width:min(1060px,94vw);max-height:92vh;
  display:flex;flex-direction:column;overflow:hidden;
  background:linear-gradient(180deg,var(--pv-noir-2) 0%,var(--desert-card) 100%);
  border:1px solid var(--pv-rule);border-radius:20px;
  box-shadow:0 48px 120px rgba(var(--desert-shadow-rgb), .65),0 0 90px rgba(var(--brand-red-rgb), .10);
  animation:pv-modal-rise .34s cubic-bezier(.22,1,.36,1)}@keyframes pv-modal-rise{from{opacity:0;transform:translateY(26px) scale(.985)}to{opacity:1;transform:none}}/* Signal Red crown — the luxury accent */
.pv-modal::before{content:"";display:block;height:3px;flex:none;
  background:linear-gradient(90deg,var(--pv-red-wine),var(--pv-red) 40%,
  var(--pv-red-ember) 55%,var(--pv-red) 70%,var(--pv-red-wine))}.pv-modal__head{display:flex;align-items:flex-start;gap:14px;
  padding:20px 24px 16px}.pv-modal__titles{min-width:0;flex:1}.pv-modal__kicker{font-size:11px;font-weight:800;letter-spacing:var(--pv-track-xl);
  text-transform:uppercase;color:var(--pv-red-ember);margin:0 0 6px}.pv-modal__title{font-family:var(--pv-serif);font-size:clamp(20px,2.6vw,28px);
  font-weight:600;letter-spacing:var(--pv-track-tight);color:var(--pv-ivory);
  margin:0;line-height:1.15;overflow:hidden;text-overflow:ellipsis}.pv-modal__actions{display:flex;align-items:center;gap:10px;flex:none}/* ghost pill buttons in the modal chrome */
.pv-ghostbtn{display:inline-flex;align-items:center;gap:8px;
  min-height:40px;padding:8px 16px;border-radius:var(--pv-r-pill);
  border:1px solid var(--pv-rule);background:rgba(var(--desert-ink-rgb), .04);
  color:var(--pv-ivory);font-size:13px;font-weight:700;cursor:pointer;
  transition:border-color var(--pv-t-fast),color var(--pv-t-fast),
  background var(--pv-t-fast);white-space:nowrap}.pv-ghostbtn:hover{border-color:var(--pv-red-ember);color:var(--pv-red-ember)}.pv-ghostbtn:focus-visible{outline:2px solid var(--pv-red);outline-offset:2px}.pv-ghostbtn svg{flex:none}.pv-x{width:40px;height:40px;flex:none;display:inline-flex;align-items:center;
  justify-content:center;border-radius:50%;border:1px solid var(--pv-rule);
  background:rgba(var(--desert-ink-rgb), .04);color:var(--pv-ivory);cursor:pointer;
  transition:border-color var(--pv-t-fast),color var(--pv-t-fast),
  transform var(--pv-t-fast)}.pv-x:hover{border-color:var(--pv-red);color:var(--pv-red-ember);transform:rotate(90deg)}.pv-x:focus-visible{outline:2px solid var(--pv-red);outline-offset:2px}/* ---------- trailer modal ---------- */
.pv-trailer-modal{width:min(1060px,94vw)}.pv-video{position:relative;aspect-ratio:16/9;background:var(--desert-bg);flex:none;
  border-top:1px solid var(--pv-rule)}.pv-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;
  display:block;background:var(--desert-bg)}.pv-video__loading{position:absolute;inset:0;display:flex;align-items:center;
  justify-content:center;color:var(--pv-ivory-faint);font-size:13px;
  letter-spacing:.12em;text-transform:uppercase;pointer-events:none}.pv-modal__foot{padding:14px 24px 20px;color:var(--pv-ivory-faint);
  font-size:12.5px;line-height:1.6}/* ---------- day modal ---------- */
.pv-day-modal{width:min(760px,94vw)}.pv-day-body{overflow-y:auto;padding:6px 24px 26px;overscroll-behavior:contain}.pv-day-body .cu-kicker{margin:10px 0 4px}.pv-day-body .cs-list{margin-top:14px}.pv-day-empty{padding:26px 4px;color:var(--pv-ivory-dim);font-size:15px;
  line-height:1.6}/* ---------- anchored popover ---------- */
/* Frosted-glass scrim behind the popover: dims + blurs the page so the
   card floats over a softened backdrop. Sits under the pop (z 210). */
.pv-pop-scrim{position:fixed;inset:0;z-index:205;
  background:rgba(var(--desert-card-rgb), .52);
  -webkit-backdrop-filter:blur(14px) saturate(1.25);
  backdrop-filter:blur(14px) saturate(1.25);
  animation:pv-scrim-in .25s ease}@keyframes pv-scrim-in{from{opacity:0}to{opacity:1}}.pv-pop{position:fixed;z-index:210;width:min(360px,90vw);
  background:linear-gradient(180deg,var(--pv-noir-2),var(--desert-card));
  border:1px solid var(--pv-rule);border-radius:18px;
  box-shadow:0 32px 90px rgba(var(--desert-shadow-rgb), .65),0 0 50px rgba(var(--brand-red-rgb), .10);
  overflow:hidden;animation:pv-pop-in .24s cubic-bezier(.22,1,.36,1)}@keyframes pv-pop-in{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.pv-pop::before{content:"";display:block;height:2px;
  background:linear-gradient(90deg,var(--pv-red-wine),var(--pv-red),
  var(--pv-red-wine))}.pv-pop__head{display:flex;gap:14px;align-items:center;padding:18px 18px 14px}.pv-pop__art{width:64px;height:64px;flex:none;border-radius:14px;overflow:hidden;
  background:var(--pv-noir-3);box-shadow:0 6px 18px rgba(var(--desert-shadow-rgb), .45)}.pv-pop__art img{width:100%;height:100%;object-fit:cover;display:block}.pv-pop__meta{font-size:10.5px;font-weight:800;letter-spacing:.18em;
  text-transform:uppercase;color:var(--pv-red-ember);margin:0 0 5px}.pv-pop__title{font-size:16px;font-weight:700;color:var(--pv-ivory);
  margin:0;line-height:1.3;letter-spacing:-.01em}.pv-pop__blurb{margin:0;padding:0 18px 12px;font-size:13.5px;line-height:1.6;
  color:var(--pv-ivory);opacity:.85}/* Hero CTA — the presale/pre-save button as a proper red pill */
.pv-pop__cta{display:flex;align-items:center;justify-content:center;gap:10px;
  width:calc(100% - 36px);margin:2px 18px 8px;padding:14px 18px;border:0;
  border-radius:999px;cursor:pointer;
  background:linear-gradient(135deg,var(--pv-red) 0%,var(--desert-accent) 100%);
  color:var(--desert-card);font-size:15px;font-weight:800;letter-spacing:.02em;
  box-shadow:0 10px 28px rgba(var(--brand-red-rgb), .38),inset 0 1px 0 rgba(var(--desert-card-rgb), .22);
  transition:transform var(--pv-t-fast),box-shadow var(--pv-t-fast),
  filter var(--pv-t-fast)}.pv-pop__cta:hover{transform:translateY(-1px);filter:brightness(1.08);
  box-shadow:0 14px 34px rgba(var(--brand-red-rgb), .48),inset 0 1px 0 rgba(var(--desert-card-rgb), .22)}.pv-pop__cta:active{transform:translateY(0)}.pv-pop__cta:focus-visible{outline:2px solid var(--desert-card);outline-offset:2px}.pv-pop__cta svg{flex:none}.pv-pop__menu{padding:4px 10px 12px;display:flex;flex-direction:column;gap:2px}.pv-pop__item{display:flex;align-items:center;gap:10px;width:100%;
  padding:11px 12px;border:0;border-radius:10px;background:transparent;
  color:var(--pv-ivory);font-size:14px;font-weight:600;text-align:left;
  cursor:pointer;transition:background var(--pv-t-fast)}.pv-pop__item:hover{background:rgba(var(--desert-ink-rgb), .07)}.pv-pop__item:focus-visible{outline:2px solid var(--pv-red);outline-offset:-2px}.pv-pop__item svg{flex:none;color:var(--pv-red-ember)}.pv-pop__item--primary{color:var(--pv-ivory)}.pv-pop__item--primary:hover{background:rgba(var(--brand-red-rgb), .14)}.pv-pop__item[aria-pressed="true"]{color:var(--pv-red-ember)}/* ---------- responsive ---------- */
@media (max-width:560px){
  .pv-ovl{padding:12px}
  .pv-modal{width:94vw;border-radius:16px}
  .pv-modal__head{padding:16px 16px 12px}
  .pv-day-body{padding:4px 16px 20px}
  .pv-modal__foot{padding:12px 16px 16px}
  .pv-ghostbtn span.pv-ghostbtn__label{display:none}
  .pv-ghostbtn{padding:8px 12px}
}/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  .pv-ovl,.pv-modal,.pv-pop,.pv-pop-scrim{animation:none}
  .pv-x:hover{transform:none}
  .pv-pop__cta:hover{transform:none}
}

/* Popover X close (2026-10-14) — placement mirrors /browse/ .mpop-close:
   38px circle pinned top-right; head gains right clearance so meta/title
   never slide under it. Button chrome itself is the shared .pv-x above. */
.pv-pop__x{position:absolute;top:12px;right:12px;width:38px;height:38px;z-index:2}
.pv-pop__head{padding-right:58px}
/* ============================================================================
   2026-10-16 — James's Coming Soon build: brand lockup on every pop-up,
   the title pop-up (player + action row + facts + cast), and the visual
   day schedule. Two deliberate compositions: phone (390) stacks for
   one-hand reading; laptop (1440) widens the day modal into a real
   day-planner grid. No pills anywhere in these surfaces.
   ========================================================================== */
/* Brand lockup — all-red Previously. wordmark in the pop-up chrome */
.pv-modal__head{flex-wrap:wrap}
.pv-brand{flex:0 0 100%;font-family:'Previously Display',Georgia,serif;
  font-weight:400;font-size:17px;letter-spacing:.01em;color:#E10600;
  line-height:1;margin:0 0 2px}
/* ---------- title pop-up ---------- */
.pv-title-modal{width:min(1060px,94vw)}
.pv-title-body{overflow-y:auto;overscroll-behavior:contain}
.pv-title-video{position:sticky;top:0;z-index:3}
.pv-hero{position:relative;aspect-ratio:16/9;background:#000;margin:0;overflow:hidden;flex:none}
.pv-hero__fg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 22%;display:block}
.pv-hero--poster .pv-hero__bg{position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;filter:blur(28px) brightness(.5);transform:scale(1.15)}
.pv-hero--poster .pv-hero__fg{object-fit:contain}
/* action row — directly under the player */
.pv-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;
  padding:14px 24px;border-bottom:1px solid var(--pv-rule)}
.pv-act{display:inline-flex;align-items:center;gap:8px;min-height:42px;
  padding:9px 16px;border-radius:10px;border:1px solid var(--pv-rule);
  background:transparent;color:var(--pv-ivory);font-size:13.5px;font-weight:700;
  cursor:pointer;text-decoration:none;transition:border-color var(--pv-t-fast),color var(--pv-t-fast)}
.pv-act:hover{border-color:var(--pv-red-ember);color:var(--pv-red-ember)}
.pv-act[aria-pressed="true"]{border-color:var(--pv-red);color:var(--pv-red-ember)}
.pv-actions .cs-remind.pv-remind{border-radius:10px;min-height:42px;padding:9px 16px}
/* premiere facts */
.pv-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:14px 22px;padding:18px 24px 4px}
.pv-fact dt{font-size:10.5px;font-weight:800;letter-spacing:var(--pv-track-md);
  text-transform:uppercase;color:var(--pv-red-ember);margin:0 0 4px}
.pv-fact dd{margin:0;font-size:14.5px;font-weight:600;color:var(--pv-ivory);line-height:1.45}
.pv-sec-h{font-size:11px;font-weight:800;letter-spacing:var(--pv-track-xl);
  text-transform:uppercase;color:var(--pv-ivory-dim);margin:0 0 12px}
/* featured cast */
.pv-cast-wrap{padding:18px 24px 2px}
.pv-cast{display:flex;flex-wrap:wrap;gap:16px 14px}
.pv-cast__item{display:flex;flex-direction:column;align-items:center;gap:5px;
  width:78px;text-align:center;text-decoration:none;color:var(--pv-ivory)}
.pv-cast__item img{width:64px;height:64px;border-radius:50%;object-fit:cover;
  object-position:center 18%;background:var(--pv-noir-3);display:block}
a.pv-cast__item:hover .pv-cast__name{color:var(--pv-red-ember)}
.pv-cast__name{font-size:12px;font-weight:700;line-height:1.3}
.pv-cast__char{font-size:11px;color:var(--pv-ivory-dim);line-height:1.3}
.pv-about{padding:18px 24px 24px}
.pv-about__p{margin:0;font-size:14.5px;line-height:1.65;color:var(--pv-ivory);opacity:.88;max-width:68ch}
/* ---------- visual day schedule ---------- */
.pv-day-modal{width:min(1060px,94vw)}
.cs-band{margin-top:24px}
.cs-band-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  margin:0;padding:0 0 7px;border-bottom:2px solid var(--pv-red);
  font-family:var(--pv-serif);font-size:19px;font-weight:600;color:var(--pv-ivory)}
.cs-band-span{font-family:inherit;font-size:12px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--pv-ivory-dim)}
.cs-band-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.cs-dcard{display:flex;flex-direction:column;min-width:0;overflow:hidden;
  border:1px solid var(--pv-rule);border-radius:14px;background:rgba(var(--desert-ink-rgb), .03)}
.cs-dcard__art{aspect-ratio:3/4;overflow:hidden;background:var(--pv-noir-2);flex:none}
.cs-dcard__art img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;display:block}
.cs-dcard__body{display:flex;flex-direction:column;gap:4px;padding:10px 12px 12px;flex:1;min-width:0}
.cs-dcard__time{margin:0;font-size:13px;font-weight:800;color:var(--pv-red-ember)}
.cs-dcard__type{margin:0;font-size:10.5px;font-weight:800;letter-spacing:var(--pv-track-md);
  text-transform:uppercase;color:var(--pv-ivory-dim)}
.cs-dcard h4{margin:0;font-size:15px;font-weight:700;line-height:1.3;color:var(--pv-ivory)}
.cs-dcard__desc{margin:0;font-size:12.5px;line-height:1.55;color:var(--pv-ivory-dim);
  display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.cs-dcard__actions{margin-top:auto;padding-top:9px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cs-dcard__actions .cs-remind,.cs-dcard__actions .pv-act{min-height:38px;padding:7px 12px;font-size:12.5px;border-radius:10px}
.cs-dcard__actions .cs-preorder{min-height:38px;padding:7px 12px;font-size:12.5px;border-radius:10px}
.cs-dcard .cs-trailer{margin-top:6px}
/* laptop composition: the schedule uses its width like a day-planner */
@media (min-width:1024px){
  .cs-band-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
  .cs-dcard__desc{-webkit-line-clamp:6}
  .pv-cast__item{width:92px}
  .pv-cast__item img{width:76px;height:76px}
  .pv-facts{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
}
@media (max-width:560px){
  .pv-actions{padding:12px 16px}
  .pv-facts{padding:16px 16px 2px}
  .pv-cast-wrap{padding:16px 16px 2px}
  .pv-about{padding:16px 16px 20px}
  .pv-brand{font-size:16px}
}
/* square album art keeps a square slot in the day grid */
.cs-dcard__art--sq{aspect-ratio:1/1}
.cs-dcard__art--sq img{object-position:50% 50%}
/* ---------- shielded trailer player (2026-10-17) ----------
   The art shield fronts every trailer embed: it is the click-to-play
   facade, it covers the frame until playback is confirmed (so a
   gated embed's sign-in wall can never show inside our modal), and
   it becomes the fallback panel when a trailer cannot play here. */
.pv-shield{position:absolute;inset:0;z-index:2;background:#000;
  transition:opacity .45s ease}
.pv-shield__art{position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center 22%;display:block}
.pv-shield__btn{position:absolute;inset:0;width:100%;height:100%;
  display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:12px;padding:0;border:0;cursor:pointer;
  color:#fff;font:inherit;
  background:linear-gradient(180deg,rgba(0,0,0,.16),rgba(0,0,0,.56))}
.pv-shield__disc{width:62px;height:62px;border-radius:50%;flex:none;
  background:linear-gradient(135deg,var(--pv-red) 0%,var(--desert-accent) 100%);
  display:flex;align-items:center;justify-content:center;color:#fff;
  box-shadow:0 10px 30px rgba(0,0,0,.5)}
.pv-shield__label{font-size:12.5px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;text-shadow:0 1px 6px rgba(0,0,0,.7)}
.pv-shield--loading .pv-shield__art{opacity:.45}
.pv-shield--off{opacity:0;pointer-events:none}
.pv-fallback{position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:14px;padding:20px;
  text-align:center;
  background:linear-gradient(180deg,rgba(0,0,0,.38),rgba(0,0,0,.74))}
.pv-fallback__msg{margin:0;color:#fff;font-size:16.5px;line-height:1.45;
  text-shadow:0 1px 6px rgba(0,0,0,.8)}
.pv-fallback__row{display:flex;gap:12px;flex-wrap:wrap;
  justify-content:center;align-items:center}
.pv-fallback__cta{display:inline-flex;align-items:center;gap:8px;
  padding:12px 20px;border-radius:999px;border:0;cursor:pointer;
  color:#fff;text-decoration:none;font-size:14px;font-weight:700;
  background:linear-gradient(135deg,var(--pv-red) 0%,var(--desert-accent) 100%);
  box-shadow:0 10px 26px rgba(var(--brand-red-rgb), .35)}
.pv-fallback__retry{display:inline-flex;align-items:center;padding:12px 18px;
  border-radius:999px;cursor:pointer;font:inherit;font-size:14px;
  font-weight:600;color:#fff;background:rgba(0,0,0,.35);
  border:1px solid var(--pv-rule)}
.pv-yt-link{color:#fff;font-weight:600;text-decoration:underline;
  text-underline-offset:3px;white-space:nowrap}
.pv-foot-row{display:flex;justify-content:space-between;
  align-items:baseline;gap:14px;flex-wrap:wrap}
.pv-yt-row{display:flex;justify-content:flex-end;padding:10px 24px 0}
@media (max-width:640px){
  .pv-yt-row{padding:8px 16px 0}
  .pv-shield__disc{width:54px;height:54px}
}
