/* Layer positions are measured in the supplied 1672 × 941 artwork. */
#entrance.cinema-intro > * { visibility:hidden; }
#entrance.cinematic-opening { display:block; overflow:hidden; background:#000; color:#ead3a1; z-index:900; }
.cinematic-opening .opening-stage { position:absolute; width:max(100vw,177.6833vh); aspect-ratio:1672/941; left:50%; top:50%; transform:translate(-50%,-50%); }
.opening-world { position:absolute; inset:0; transform-origin:62.65% 49%; }
.opening-paper { will-change:transform; }
.opening-layer { position:absolute; display:block; pointer-events:none; user-select:none; }
.opening-world,.opening-screen-group,.opening-foreground { will-change:transform; backface-visibility:hidden; }
.opening-plate { inset:0; width:100%; height:100%; clip-path:polygon(evenodd,0% 0%,100% 0%,100% 69.5%,0% 69.5%,0% 0%,16.56% 20.4%,15.13% 69.5%,85.53% 69.5%,84.15% 20.4%,16.56% 20.4%); }
.opening-screen-group,.opening-foreground,.opening-papers { position:absolute; inset:0; pointer-events:none; }
.opening-seats-left,.opening-seats-right { opacity:.66; }
.opening-viewer { opacity:1; filter:contrast(1.08) saturate(.94); }
.opening-walker { filter:contrast(1.06) saturate(.94); }
.opening-screen-group { transform-origin:50% 45%; }
.opening-screen { left:15.1316%; top:20.4038%; width:70.3947%; height:49.3092%; clip-path:polygon(2% 0,98% 0,100% 100%,0 100%); }
.opening-water {
 opacity:0; pointer-events:none; filter:url('#cinema-screen-ripple');
 --water-x:50%; --water-y:50%;
 -webkit-mask-image:radial-gradient(circle at var(--water-x) var(--water-y),#000 0 45px,rgba(0,0,0,.7) 90px,transparent 165px);
 mask-image:radial-gradient(circle at var(--water-x) var(--water-y),#000 0 45px,rgba(0,0,0,.7) 90px,transparent 165px);
 will-change:opacity;
}
.opening-dim { position:absolute; inset:0; background:#000; opacity:0; pointer-events:none; }
.opening-door-light { position:absolute; left:57.2%; top:30.6%; width:11.5%; height:37%; object-fit:cover; object-position:center; mix-blend-mode:screen; opacity:0; mask-image:linear-gradient(transparent,#000 15%,#000 85%,transparent); pointer-events:none; }
.opening-beam { position:absolute; inset:0; width:100%; height:100%; clip-path:polygon(4% 74%,17% 30%,52% 54%,85% 67%); mix-blend-mode:screen; opacity:0; pointer-events:none; }
.opening-ui { position:absolute; inset:0; pointer-events:none; }
.opening-signature { opacity:.55; }
/* Static soft light textures; GSAP animates only opacity and transform. */
.opening-lighting { position:absolute; inset:0; pointer-events:none; }
.opening-lighting > div { position:absolute; inset:0; opacity:0; mix-blend-mode:screen; }
.opening-screen-spill {
 background:radial-gradient(ellipse 46% 25% at 50% 65%,rgba(255,193,107,.62),rgba(232,149,67,.18) 48%,transparent 78%);
 transform-origin:50% 65%;
}
.opening-wall-warmth {
 background:radial-gradient(ellipse 8% 43% at 9% 49%,rgba(255,180,79,.8),rgba(227,131,43,.14) 48%,transparent 78%),radial-gradient(ellipse 8% 43% at 92% 49%,rgba(255,180,79,.72),rgba(227,131,43,.13) 48%,transparent 78%);
}
.opening-projector-glow {
 transform-origin:4.8% 72.5%;
}
.opening-projector-shutter {
 position:absolute; inset:0;
 background:
  radial-gradient(ellipse 1.2% 3.2% at 4.8% 72.5%,#fffbea 0%,rgba(255,236,187,.96) 22%,rgba(255,194,100,.45) 55%,transparent 100%),
  radial-gradient(ellipse 15% 11% at 5.1% 72.5%,rgba(255,218,156,.8),rgba(245,174,79,.35) 30%,transparent 80%);
}
.opening-projector-shutter::after {
 content:""; position:absolute; left:4.8%; top:35.5%; width:44%; height:37%;
 background:conic-gradient(from 0deg at 0% 100%,transparent 40deg,rgba(255,203,132,.22) 53deg,rgba(255,220,158,.58) 67deg,rgba(255,196,103,.12) 80deg,transparent 88deg);
 mask-image:linear-gradient(to right,#000 0%,rgba(0,0,0,.7) 30%,transparent 95%);
}
.opening-seat-reflection {
 background:radial-gradient(ellipse 44% 12% at 50% 77%,rgba(248,191,109,.46),rgba(224,146,67,.12) 50%,transparent 80%);
 mask-image:linear-gradient(transparent 68%,#000 73%,#000 84%,transparent 96%);
}
.opening-topnav { position:absolute; left:74%; right:3%; top:2.8%; display:flex; justify-content:space-between; pointer-events:auto; }
.opening-topnav button { color:#e8dbc3; background:none; border:0; padding:5px; font:10px Georgia,serif; letter-spacing:2px; cursor:pointer; }
.opening-brand { position:absolute; left:2.9%; top:2.6%; font:20px Georgia,serif; letter-spacing:1px; color:#e8dbc3; }
.opening-brand small { display:block; font:7px Georgia,serif; letter-spacing:4px; margin-top:5px; }
.opening-door { position:absolute; left:57.3%; top:31%; width:11.2%; height:37%; border:0; background:transparent; pointer-events:none; cursor:pointer; }
.opening-door:focus-visible { outline:1px solid #d7f5ff; outline-offset:8px; }
.opening-ready .opening-door { pointer-events:auto; }
.opening-scroll { position:absolute; left:43%; top:84.7%; width:14%; height:12%; background:transparent; border:0; color:#ead3a1; font:10px Georgia,serif; letter-spacing:3px; cursor:pointer; opacity:0; pointer-events:none; }
.opening-scroll span { display:block; margin-bottom:12px; }
.opening-scroll i { font-size:28px; }
.opening-ready .opening-scroll { pointer-events:auto; }
.opening-skip { position:absolute; right:24px; bottom:20px; z-index:10; padding:10px 14px; border:1px solid #ac946448; border-radius:2px; background:#0007; color:#dac49c; font:11px Georgia,serif; letter-spacing:1px; cursor:pointer; }
.opening-cursor { position:fixed; top:0; left:0; z-index:12; display:grid; place-items:center; width:68px; height:68px; margin:-34px; border:1px solid #d6efffb0; border-radius:50%; color:#ecf8ff; font:10px Georgia,serif; letter-spacing:2px; opacity:0; pointer-events:none; }
.opening-near-door .opening-door { cursor:none; }
.opening-flash { position:absolute; inset:0; z-index:8; background:radial-gradient(circle at 62.65% 49%,#eefcff 0%,#a8e4ff 26%,#71c8f4 58%,#438fd0 100%); opacity:0; pointer-events:none; will-change:transform,opacity; }
.opening-black { position:absolute; inset:0; z-index:7; background:#000; pointer-events:none; }
.opening-dust { position:absolute; inset:0; z-index:9; width:100%; height:100%; pointer-events:none; opacity:.4; }
.cinematic-opening.is-exiting { display:none!important; }
@media(max-width:700px) {
 .cinematic-opening .opening-stage { width:100vw; }
 .opening-topnav { display:none; }
 .opening-brand { font-size:10px; }
 .opening-brand small { font-size:4px; letter-spacing:1px; }
 .opening-scroll { top:102%; left:25%; width:50%; height:80px; font-size:11px; }
 .opening-cursor { display:none; }
 .opening-door { width:16%; left:55%; }
}
@media(prefers-reduced-motion:reduce) { .opening-cursor,.opening-dust { display:none; } }
@media(prefers-reduced-motion:reduce) {
 .opening-paper { will-change:auto; }
}
