*{margin:0;padding:0;box-sizing:border-box}
:root{--bg:#000;--bg2:#0c0c0c;--gold:#e8c25a;--red:#c4302b;--ink:#ece9e2;--soft:#8c887e}
body{font-family:'Oswald',sans-serif;background:var(--bg);color:var(--ink);line-height:1.6;font-weight:300}
.anton{font-family:'Anton',sans-serif} .cg{font-family:'Cormorant Garamond',serif;font-style:italic}
a{color:inherit;text-decoration:none}
.grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.05;background-image:repeating-radial-gradient(circle at 17% 32%,#fff 0 1px,transparent 1px 3px),repeating-radial-gradient(circle at 80% 60%,#fff 0 1px,transparent 1px 4px);mix-blend-mode:overlay}
.ribbon{position:fixed;top:0;left:0;right:0;z-index:60;background:rgba(0,0,0,.7);color:var(--gold);font-size:11px;letter-spacing:1px;text-align:center;padding:8px 14px;text-transform:uppercase;backdrop-filter:blur(6px)}
.ribbon a{color:#fff;font-weight:600;border-bottom:1px solid var(--gold)}
section,header{position:relative;z-index:2}
/* hero — letterboxed poster */
.hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:120px 22px 90px;background:radial-gradient(80% 60% at 50% 40%,#1a1a1a,#000 75%);position:relative}
.hero::before,.hero::after{content:"";position:absolute;left:0;right:0;height:7vh;background:#000;z-index:3}
.hero::before{top:0}.hero::after{bottom:0}
.studio{font-size:11px;letter-spacing:5px;text-transform:uppercase;color:var(--soft)}
.rating{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--soft);padding:3px 10px;font-size:10px;letter-spacing:2px;color:var(--soft);margin-bottom:18px}
.rating b{background:var(--ink);color:#000;padding:1px 6px;font-weight:600}
.title{font-family:'Anton',sans-serif;font-size:clamp(3.6rem,18vw,9rem);line-height:.86;letter-spacing:.01em;color:#fff;text-shadow:0 4px 40px rgba(232,194,90,.25)}
.names{margin-top:14px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(1.4rem,5vw,2.2rem);color:var(--gold)}
.play{width:74px;height:74px;border-radius:50%;border:2px solid #fff;display:flex;align-items:center;justify-content:center;margin:30px auto 16px;position:relative;cursor:pointer}
.play::after{content:"";border-left:18px solid #fff;border-top:11px solid transparent;border-bottom:11px solid transparent;margin-left:5px}
.play span{position:absolute;inset:-2px;border-radius:50%;border:2px solid rgba(255,255,255,.5);animation:ring 2s infinite}
@keyframes ring{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.5);opacity:0}}
.intheatres{font-size:12px;letter-spacing:4px;text-transform:uppercase;color:var(--ink)}
.intheatres b{color:var(--gold);font-weight:600}
/* trailer countdown */
.cdsec{text-align:center;padding:60px 22px;background:var(--bg2);border-top:1px solid #1c1c1c;border-bottom:1px solid #1c1c1c}
.lbl{font-size:11px;letter-spacing:5px;text-transform:uppercase;color:var(--gold)}
.cd{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin-top:14px}
.cd .n{font-family:'Anton',sans-serif;font-size:2.8rem;color:#fff}.cd .l{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--soft)}
.sec{max-width:980px;margin:0 auto;padding:80px 22px}
.htag{font-size:11px;letter-spacing:5px;text-transform:uppercase;color:var(--red);text-align:center}
.h2{font-family:'Anton',sans-serif;font-size:clamp(1.8rem,6vw,3rem);text-align:center;color:#fff;margin:8px 0 30px;letter-spacing:.02em}
/* cast */
.cast{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:680px){.cast{grid-template-columns:1fr 1fr}}
.actor{text-align:center}
.actor .ph{aspect-ratio:3/4;border-radius:8px;background:linear-gradient(160deg,#2a2a2a,#0e0e0e);border:1px solid #2c2c2c;display:flex;align-items:flex-end;justify-content:center;padding-bottom:10px;color:var(--soft);font-size:1.8rem}
.actor .nm{font-weight:600;margin-top:10px;color:#fff}.actor small{color:var(--soft);text-transform:uppercase;letter-spacing:1px;font-size:11px}
/* scene chapters */
.scenes{display:flex;flex-direction:column;gap:14px;max-width:760px;margin:0 auto}
.scene{display:grid;grid-template-columns:90px 1fr;gap:18px;align-items:center;border:1px solid #1f1f1f;border-radius:10px;padding:20px 22px;background:linear-gradient(90deg,#0e0e0e,#000)}
.scene .num{font-family:'Anton',sans-serif;font-size:2.2rem;color:var(--gold);opacity:.8}
.scene h3{font-weight:600;color:#fff;font-size:1.2rem}.scene p{color:var(--soft);font-size:.95rem}
.btn{display:inline-block;font-family:'Oswald',sans-serif;font-weight:600;font-size:.8rem;letter-spacing:2px;text-transform:uppercase;padding:14px 30px;cursor:pointer;border:1px solid var(--gold);background:var(--gold);color:#000;transition:.25s}
.btn:hover{background:#f2d27a}
.btn-o{background:transparent;color:var(--gold)}.btn-o:hover{background:rgba(232,194,90,.12)}
.venue{text-align:center}
.rsvp form{max-width:420px;margin:22px auto 0;display:flex;flex-direction:column;gap:12px}
.rsvp input,.rsvp select{padding:13px;border:1px solid #2a2a2a;background:#0e0e0e;color:#fff;font-family:'Oswald',sans-serif}
.rsvp .ok{display:none;color:var(--gold);margin-top:6px;letter-spacing:1px}.rsvp .ok.show{display:block}
/* end credits */
.credits{background:#000;text-align:center;padding:70px 22px;border-top:1px solid #1c1c1c}
.credits .roll div{margin:5px 0;color:var(--soft);font-size:.95rem;letter-spacing:1px}
.credits .roll b{color:#fff}
.cta{text-align:center;padding:60px 22px}
.cta h2{font-family:'Anton',sans-serif;color:#fff;font-size:clamp(1.5rem,5vw,2.2rem)}
.cta p{color:var(--soft);max-width:460px;margin:10px auto 22px}.cta .row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.foot{text-align:center;padding:26px;color:var(--soft);font-size:.82rem;letter-spacing:1px}.foot a{color:var(--gold)}
.rv{opacity:0;transform:translateY(22px);transition:.8s}.rv.in{opacity:1;transform:none}
