/* ============================================================================
   Previously — cinema title pages (shared).
   The approved cinema design language for /movies/ + /games/ title pages:
   noir cinematic surfaces, Signal Red accent, Playfair Display headlines,
   self-hosted type, zero hotlinks. External file — no inline styles.
   ========================================================================== */
:root{
  --tc-noir:#0a0a0b;
  --tc-noir-2:#111113;
  --tc-noir-3:#17171a;
  --tc-ivory:#f4efe6;
  --tc-ivory-dim:rgba(244,239,230,.62);
  --tc-ivory-faint:rgba(244,239,230,.38);
  --tc-rule:rgba(244,239,230,.14);
  --tc-red:#ec4634;
  --tc-red-deep:#b32b1d;
  --tc-red-ember:#ff6a52;
  --tc-red-glow:rgba(236,70,52,.35);
  --tc-serif:'Playfair Display',Georgia,'Times New Roman',serif;
  --tc-sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}
html{background:var(--tc-noir)}
body.tc-page{
  margin:0;background:var(--tc-noir);color:var(--tc-ivory);
  font-family:var(--tc-sans);line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
/* keep the shared chrome above the hero art */
#pvn-mount{position:relative;z-index:30}
.pv-search{position:relative;z-index:25}

/* ---------- hero ---------- */
.tc-hero{position:relative;min-height:min(92vh,860px);display:flex;align-items:flex-end;overflow:hidden;background:#000}
.tc-hero-art{position:absolute;inset:0}
.tc-hero-art img{width:100%;height:100%;object-fit:cover;object-position:center 28%;display:block;transform:scale(1.04)}
.tc-hero-shade{position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(10,10,11,.62) 0%,rgba(10,10,11,.08) 34%,rgba(10,10,11,.55) 66%,var(--tc-noir) 100%),
  linear-gradient(100deg,rgba(10,10,11,.72) 0%,rgba(10,10,11,.05) 58%)}
.tc-ghost{position:absolute;right:2vw;bottom:-2vw;font-family:var(--tc-serif);font-weight:700;
  font-size:clamp(120px,24vw,300px);line-height:1;color:transparent;
  -webkit-text-stroke:1px rgba(244,239,230,.16);user-select:none;pointer-events:none}
.tc-hero-inner{position:relative;z-index:2;width:100%;max-width:1180px;margin:0 auto;
  padding:120px 24px 64px}
.tc-kicker{display:flex;align-items:center;gap:14px;font-size:11px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--tc-ivory-dim);margin:0 0 18px}
.tc-kicker .line{display:inline-block;width:44px;height:1px;background:var(--tc-red)}
.tc-hero h1.tc-title{font-family:var(--tc-serif);font-weight:600;
  font-size:clamp(42px,7.2vw,96px);line-height:1.02;margin:0 0 22px;letter-spacing:.01em}
.tc-hero h1.tc-title .lm{display:block;overflow:hidden}
.tc-hero h1.tc-title .lm > span{display:block;animation:tc-rise .9s cubic-bezier(.2,.7,.2,1) both}
.tc-hero h1.tc-title .lm:nth-child(2) > span{animation-delay:.12s}
@keyframes tc-rise{from{transform:translateY(105%)}to{transform:translateY(0)}}
.tc-meta-row{margin:0 0 30px}
/* integrated metadata typography (no pills): small caps under the title */
.tc-meta-line{margin:0 0 30px;font-size:12.5px;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;color:var(--tc-ivory-dim)}
.tc-chips{display:flex;flex-wrap:wrap;gap:10px}
.tc-chip{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:500;
  letter-spacing:.04em;color:var(--tc-ivory-dim);border:1px solid var(--tc-rule);
  border-radius:999px;padding:8px 16px;background:rgba(10,10,11,.42);backdrop-filter:blur(6px)}
.tc-chip.hot{color:var(--tc-red-ember);border-color:rgba(236,70,52,.5)}
.tc-hero-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.tc-btn-play{display:inline-flex;align-items:center;gap:12px;background:var(--tc-red);color:#0a0a0b;
  font-weight:700;font-size:15px;letter-spacing:.02em;border:0;border-radius:999px;
  padding:15px 30px;cursor:pointer;text-decoration:none;
  box-shadow:0 8px 32px var(--tc-red-glow);transition:transform .25s,box-shadow .25s,background .25s}
.tc-btn-play:hover{background:var(--tc-red-ember);transform:translateY(-2px);
  box-shadow:0 12px 40px var(--tc-red-glow)}
.tc-btn-play svg{width:15px;height:15px;fill:#0a0a0b}
.tc-btn-ghost{display:inline-flex;align-items:center;gap:10px;color:var(--tc-ivory);
  font-weight:600;font-size:15px;text-decoration:none;border:1px solid var(--tc-rule);
  border-radius:999px;padding:14px 28px;background:rgba(10,10,11,.42);backdrop-filter:blur(6px);
  transition:border-color .25s,color .25s}
.tc-btn-ghost:hover{border-color:var(--tc-red);color:var(--tc-red-ember)}

/* ---------- content blocks ---------- */
.tc-wrap{max-width:1180px;margin:0 auto;padding:0 24px 90px}
.tc-block{padding:64px 0 8px}
.tc-block-head{display:flex;align-items:baseline;gap:18px;margin:0 0 26px;
  border-bottom:1px solid var(--tc-rule);padding-bottom:18px}
.tc-block-num{font-family:var(--tc-serif);color:var(--tc-red);font-size:15px;letter-spacing:.1em}
.tc-block-title{font-family:var(--tc-serif);font-weight:500;font-size:clamp(26px,3.4vw,38px);margin:0}
.tc-block-sub{margin-left:auto;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--tc-ivory-faint)}
.tc-split{display:grid;grid-template-columns:1fr;gap:44px}
@media(min-width:900px){.tc-split{grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr)}}
.tc-story p{font-size:17px;line-height:1.85;color:var(--tc-ivory-dim);margin:0 0 20px;max-width:62ch}
.tc-story p.drop::first-letter{font-family:var(--tc-serif);font-size:3.4em;float:left;
  line-height:.86;padding:4px 12px 0 0;color:var(--tc-ivory)}
.tc-side h3{font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--tc-ivory-faint);margin:0 0 16px}
.tc-facts{border:1px solid var(--tc-rule);border-radius:12px;background:var(--tc-noir-2);padding:6px 22px}
.tc-fact{display:flex;justify-content:space-between;gap:18px;padding:13px 0;
  border-bottom:1px solid var(--tc-rule);font-size:14px}
.tc-fact:last-child{border-bottom:0}
.tc-fact dt{color:var(--tc-ivory-faint)}
.tc-fact dd{margin:0;color:var(--tc-ivory);text-align:right;font-weight:500}

/* ---------- trailer ---------- */
.tc-trailer-card{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--tc-rule);
  background:#000;max-width:880px;aspect-ratio:16/9;cursor:pointer;padding:0;width:100%;display:block}
.tc-trailer-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.72;
  transition:opacity .3s,transform .5s}
.tc-trailer-card:hover img{opacity:.55;transform:scale(1.02)}
.tc-trailer-card .tc-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.tc-trailer-card .tc-play span{display:inline-flex;align-items:center;gap:12px;background:var(--tc-red);
  color:#0a0a0b;font-weight:700;font-size:15px;border-radius:999px;padding:15px 30px;
  box-shadow:0 8px 32px var(--tc-red-glow)}
.tc-trailer-card .tc-play svg{width:14px;height:14px;fill:#0a0a0b}
.tc-trailer-frame{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--tc-rule);
  background:#000;max-width:880px}
.tc-trailer-frame::before{content:"";display:block;padding-top:56.25%}
.tc-trailer-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ---------- where to watch / play ---------- */
.tc-stamp{display:inline-flex;align-items:center;gap:10px;font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--tc-ivory-faint);margin:6px 0 28px}
.tc-stamp i{width:8px;height:8px;border-radius:50%;background:var(--tc-red);animation:tc-pulse 2s infinite}
@keyframes tc-pulse{0%,100%{opacity:1}50%{opacity:.35}}
.tc-groups{display:grid;gap:44px}
.tc-group-head{display:flex;align-items:baseline;gap:16px;margin:0 0 18px}
.tc-group-head h3{font-family:var(--tc-serif);font-size:26px;font-weight:500;margin:0}
.tc-group-head span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--tc-ivory-faint)}
.tc-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.tc-provider{display:flex;align-items:center;gap:18px;padding:16px 20px;border:1px solid var(--tc-rule);
  border-radius:8px;background:rgba(255,255,255,.015);text-decoration:none;color:inherit;
  transition:border-color .25s,transform .25s}
.tc-provider:hover{border-color:rgba(236,70,52,.55);transform:translateY(-2px)}
.tc-pinfo{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.tc-pname{font-weight:600;font-size:16px}
.tc-psub{font-size:12.5px;color:var(--tc-ivory-faint)}
.tc-badge{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--tc-red);
  border:1px solid rgba(236,70,52,.4);border-radius:999px;padding:6px 14px;flex:none}
.tc-go{color:var(--tc-ivory-faint);flex:none;font-size:18px}
.tc-provider:hover .tc-go{color:var(--tc-red)}
.tc-note{margin-top:26px;font-size:13px;color:var(--tc-ivory-faint);max-width:660px;line-height:1.7}
.tc-release{border:1px solid var(--tc-rule);border-radius:12px;background:var(--tc-noir-2);
  padding:30px 32px;max-width:720px}
.tc-release .tc-when{font-family:var(--tc-serif);font-size:clamp(24px,3vw,34px);margin:0 0 10px}
.tc-release .tc-when em{font-style:normal;color:var(--tc-red-ember)}
.tc-release p{margin:0;color:var(--tc-ivory-dim);font-size:15px;line-height:1.7}

/* ---------- provenance ---------- */
.tc-credit-row{display:grid;grid-template-columns:180px 1fr;gap:20px;padding:16px 0;
  border-bottom:1px solid var(--tc-rule)}
.tc-credit-row h4{margin:0;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--tc-ivory-faint);font-weight:600}
.tc-credit-row p{margin:0;font-size:14.5px;color:var(--tc-ivory-dim)}

/* ---------- trailer modal ---------- */
.tc-modal-backdrop{position:fixed;inset:0;z-index:200;background:rgba(4,4,5,.86);
  backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:20px;
  opacity:0;transition:opacity .28s ease}
.tc-modal-backdrop.open{opacity:1}
.tc-modal{width:min(1060px,100%);position:relative;
  transform:translateY(14px) scale(.985);transition:transform .28s ease}
.tc-modal-backdrop.open .tc-modal{transform:none}
.tc-modal-shell{position:relative;border-radius:16px;overflow:hidden;background:#000;
  border:1px solid rgba(236,70,52,.28);box-shadow:0 30px 90px rgba(0,0,0,.7),0 0 60px rgba(236,70,52,.12)}
.tc-modal-shell::before{content:"";display:block;padding-top:56.25%}
.tc-modal-shell iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.tc-modal-close{position:absolute;top:-52px;right:0;display:inline-flex;align-items:center;gap:10px;
  background:none;border:1px solid var(--tc-rule);color:var(--tc-ivory);border-radius:999px;
  padding:10px 20px;font-size:13px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.tc-modal-close:hover{border-color:var(--tc-red);color:var(--tc-red-ember)}
.tc-modal-cap{margin-top:14px;text-align:center;color:var(--tc-ivory-faint);font-size:13px;
  letter-spacing:.06em}
/* story modal: front-and-center reading panel */
.tc-story-modal{max-width:760px}
.tc-story-modal .tc-modal-close{position:static;margin:0 0 4px auto;display:flex}
.tc-story-modal-body{background:var(--tc-noir-2);border:1px solid var(--tc-rule);border-radius:16px;
  padding:34px 36px;max-height:min(76vh,640px);overflow-y:auto}
.tc-story-modal-body .tc-block-head{margin-bottom:20px}
.tc-story-modal-body .tc-split{grid-template-columns:1fr;gap:26px}
.tc-story-modal-body .tc-story p{font-size:16px}
body.tc-locked{overflow:hidden}

/* ---------- reveal ---------- */
.tc-reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.tc-reveal.in{opacity:1;transform:none}

.tc-credit{max-width:1180px;margin:0 auto;padding:0 24px 26px;font-size:12px;
  color:var(--tc-ivory-faint);letter-spacing:.04em}

@media(max-width:640px){
  .tc-hero{min-height:86vh}
  .tc-hero-inner{padding:110px 20px 52px}
  .tc-block-sub{display:none}
  .tc-credit-row{grid-template-columns:1fr;gap:6px}
  .tc-modal-close{top:-46px}
}
@media(prefers-reduced-motion:reduce){
  .tc-hero h1.tc-title .lm > span{animation:none}
  .tc-reveal{opacity:1;transform:none;transition:none}
  .tc-stamp i{animation:none}
}

/* ---- bare hero (no art): typographic noir when no super-HD art exists ---- */
.tc-hero--bare{background:
  radial-gradient(1000px 460px at 50% -120px,rgba(229,9,20,.17),transparent 62%),
  radial-gradient(760px 520px at 88% 108%,rgba(229,9,20,.09),transparent 60%),
  radial-gradient(620px 420px at 8% 100%,rgba(244,239,230,.05),transparent 60%),
  linear-gradient(180deg,#0d0b0a 0%,#141112 58%,#0a0908 100%)}
.tc-hero--bare .tc-hero-inner{padding-top:150px}
.tc-hero--bare::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(255,255,255,.014) 3px 4px)}

/* ---- key art figure (poster beside facts) ---- */
.tc-keyart{margin:0 0 26px}
.tc-keyart img{width:100%;height:auto;display:block;border-radius:14px;
  border:1px solid rgba(244,239,230,.14);
  box-shadow:0 24px 60px -18px rgba(0,0,0,.75),0 0 0 1px rgba(0,0,0,.4)}
.tc-keyart figcaption{margin-top:10px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--tc-ivory-dim);text-align:center}
@media(max-width:760px){.tc-keyart{max-width:300px}}
