/* Layered photographic scene: original pixels, reversible viewport mask. */
.cinema-warm{isolation:isolate;background:#16100c}.cinema-warm .portrait-room{filter:blur(5px) brightness(.61) saturate(.8);transform:scale(1.09) translateX(calc(var(--drift,0px)*-.35));opacity:.85}.portrait-depth{position:absolute;right:0;top:0;width:65%;height:100%;z-index:2;transform:translateX(var(--drift,0px)) translateY(var(--depth-y,0px));transition:transform 1.5s cubic-bezier(.2,.7,.2,1);filter:drop-shadow(-18px 8px 20px #0009)}.cinema-warm .portrait-foreground{width:100%;height:100%;right:0;object-fit:cover;object-position:50% 32%;transform:scale(var(--image-scale,1.06));mask-image:url('media/portrait-silhouette.svg');mask-size:cover;mask-position:50% 32%;mask-repeat:no-repeat;filter:brightness(1.07) contrast(1.035);animation:portrait-breathe 13s ease-in-out infinite alternate}.portrait-relight{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(108deg,transparent 20%,#ffd49600 34%,#ffe9c86b 42%,#ffe5b996 47%,#ffd9aa1c 53%,transparent 62%);background-size:260% 100%;mix-blend-mode:soft-light;mask-image:url('media/portrait-silhouette.svg');mask-size:cover;mask-position:50% 32%;mask-repeat:no-repeat;transform:scale(var(--image-scale,1.06));animation:portrait-light-pass 10s ease-in-out infinite}.portrait-halo{position:absolute;z-index:1;right:12%;top:6%;width:37%;height:55%;border-radius:50%;background:radial-gradient(ellipse,#e6a45055,transparent 68%);filter:blur(25px);animation:halo-breathe 10s ease-in-out infinite}.cinema-mono{clip-path:none!important;opacity:var(--mono-opacity,0);z-index:3;pointer-events:none}.cinema-title,.cinema-caption,.cinema-instruction{z-index:6}.cinema-stage:after{z-index:4;background:linear-gradient(90deg,#100e0bea,rgba(16,14,11,.45) 37%,transparent 64%),linear-gradient(0deg,#100c0999,transparent 35%)}.projection{z-index:5;opacity:.75;animation-duration:14s}.frame-lines{z-index:5}.cinema-atmosphere{position:absolute;inset:0;z-index:5;pointer-events:none;overflow:hidden;opacity:.45}.cinema-atmosphere i{position:absolute;left:58%;bottom:15%;width:3px;height:3px;border-radius:50%;background:#ffe7bc;filter:blur(1px);animation:dust-rise 18s linear infinite}.cinema-atmosphere i:nth-child(2){left:72%;bottom:25%;animation-delay:-8s;width:2px;height:2px}.cinema-atmosphere i:nth-child(3){left:82%;bottom:0;animation-delay:-13s}.cinema-atmosphere i:nth-child(4){left:63%;bottom:8%;animation-delay:-4s;width:2px;height:2px}.cinema-atmosphere i:nth-child(5){left:46%;bottom:2%;animation-delay:-10s}.cinema-atmosphere i:nth-child(6){left:92%;bottom:20%;animation-delay:-6s;width:2px;height:2px}.cinema-title{animation:soft-enter 1.2s both}.cinema-title h1{ text-shadow:0 4px 45px #0004}.cinema-track{z-index:7}
@keyframes portrait-light-pass{0%,10%{background-position:110% 0;opacity:0}23%{opacity:.6}52%{opacity:.8}72%,100%{background-position:-15% 0;opacity:0}}
@keyframes portrait-breathe{from{filter:brightness(1.03) contrast(1.035)}to{filter:brightness(1.12) contrast(1.035)}}
@keyframes halo-breathe{0%,100%{opacity:.45;transform:scale(.94)}50%{opacity:1;transform:scale(1.08)}}
@keyframes dust-rise{0%{transform:translate(0,25px);opacity:0}20%{opacity:.7}75%{opacity:.35}100%{transform:translate(-65px,-500px);opacity:0}}
.motion-paused .portrait-depth{transition:none}
@media(max-width:700px){.portrait-depth{width:100%}.cinema-warm .portrait-room,.cinema-warm .portrait-foreground{object-position:58% 28%}.cinema-warm .portrait-foreground,.portrait-relight{mask-position:58% 28%}.cinema-stage:after{background:linear-gradient(90deg,#100e0b33,transparent),linear-gradient(0deg,#100e0bdd,transparent 85%)}.portrait-halo{right:7%;width:70%}.cinema-atmosphere{opacity:.25}.cinema-instruction{max-width:65%;line-height:1.8}}
@media(prefers-reduced-motion:reduce){.cinema-mono{opacity:0}.portrait-depth{transition:none;transform:none}.portrait-relight,.cinema-atmosphere,.projection{display:none}.portrait-halo{opacity:.5}.cinema-title{animation:none}}

.scene-idle *, .page-idle .cinema-stage *{animation-play-state:paused!important}
