.name-portal .portal-svg{z-index:2}.projector-screen{position:absolute;left:50%;top:50%;width:100%;height:100%;transform:translate(-50%,-50%);overflow:hidden;background:transparent;z-index:0;contain:paint;--film-life:1;--film-scale:1.08;box-shadow:none}.projector-frame,.projector-lens-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(var(--film-scale));filter:saturate(.84);display:block}.projector-frame{opacity:0;transition:opacity .24s ease-out}.projector-frame-a{opacity:1}.projector-lens-film{z-index:3;transition:opacity .2s;filter:saturate(.75) sepia(.13) brightness(1.05)}.projector-exposure{position:absolute;inset:0;z-index:4;background:linear-gradient(115deg,#f5cf8221,transparent 45%,#fff4d909);opacity:var(--film-life);mix-blend-mode:screen;pointer-events:none;animation:projector-breathe 2.73s linear infinite}.projector-grain{position:absolute;inset:-20%;z-index:5;pointer-events:none;opacity:calc(var(--film-life)*.1);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='film-noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23film-noise)' opacity='.8'/%3E%3C/svg%3E");animation:projector-grain 1.8s steps(4) infinite}.projector-halo{position:absolute;width:170px;height:135px;pointer-events:none;z-index:3;mix-blend-mode:screen;transform:translate(-50%,-50%);background:radial-gradient(ellipse,#fff9db7a 0,#e4c08d36 15%,#d6a85c12 40%,transparent 70%);filter:blur(5px);animation:projector-breathe 2.73s linear infinite}.projector-halo i{position:absolute;inset:-90% -110%;background:conic-gradient(from 78deg at 50% 50%,transparent 0deg,#efcc8a13 12deg,transparent 28deg,transparent 165deg,#fff0b315 190deg,transparent 208deg);filter:blur(12px)}.projector-halo b{position:absolute;left:35%;top:39%;width:30%;height:19%;background:#fff1c229;border-radius:50%;filter:blur(10px)}.portal-caption{z-index:4}@keyframes projector-breathe{0%,100%{filter:brightness(1) blur(5px)}13%{filter:brightness(.91) blur(5px)}27%{filter:brightness(1.08) blur(5px)}39%{filter:brightness(.96) blur(5px)}54%{filter:brightness(1.04) blur(5px)}72%{filter:brightness(.92) blur(5px)}86%{filter:brightness(1.06) blur(5px)}}@keyframes projector-grain{0%{transform:translate(0,0)}25%{transform:translate(2%,-1%)}50%{transform:translate(-1%,2%)}75%{transform:translate(1%,1%)}}@media(max-width:760px){.projector-halo{width:100px;height:90px}}@media(prefers-reduced-motion:reduce){.projector-halo,.projector-lens-film,.projector-exposure,.projector-grain{display:none!important}.projector-frame{transition:none}.projector-screen{visibility:visible!important;left:50%!important;top:50%!important;width:100%!important;height:100%!important}.projector-frame-a{opacity:1!important}}

/* Small, shutter-like flicker in the lens; restrained exposure in the larger montage. */
.projector-frame{object-fit:contain;transition:opacity .12s ease-out}.projector-lens-film{transform:scale(1.04)}.projector-screen{background:transparent}.projector-screen.is-resting .projector-lens-film{animation:none;filter:saturate(.7) sepia(.2) brightness(var(--lens-exposure,1))}.projector-halo{animation:projector-breathe 2.73s linear infinite}.projector-at-rest .projector-halo{animation:none;filter:brightness(var(--lens-exposure,1)) blur(3px)}.projector-halo i{opacity:.8}.projector-screen.is-montage .projector-exposure{animation:none;opacity:.16}.projector-screen.is-montage .projector-grain{opacity:.07}.intro-playing .chapter-nav,.intro-playing .scene-actions{pointer-events:none}
@media(prefers-reduced-motion:reduce){.projector-screen.is-resting .projector-lens-film,.projector-halo{animation:none}}

/* The aperture reveals the work itself, without an outer projection rectangle. */
.projector-screen:not(.is-resting) .projector-exposure,.projector-screen:not(.is-resting) .projector-grain{display:none}

/* A round projector lens inside the triangular letter aperture. */
.projector-halo{width:150px;height:150px;background:radial-gradient(circle,#fff9db7a 0,#e4c08d36 15%,#d6a85c12 40%,transparent 70%)}.projector-halo b{left:38%;top:38%;width:24%;height:24%;border-radius:50%}@media(max-width:760px){.projector-halo{width:90px;height:90px}}

.projector-void{position:absolute;inset:0;z-index:0;background:#222520;opacity:var(--lens-void,1);pointer-events:none}

/* Keep the light spill in proportion to the letter at desktop and mobile sizes. */
.projector-halo{width:12.5vw;height:12.5vw}
.projector-screen.is-resting .projector-exposure{
 animation:none;
 background:#fff3cf;
 opacity:clamp(.12,calc(var(--lens-exposure,1)*.3),.84);
}
/* A luminous lamp core and warm spill, tied to the same shutter as the film. */
.projector-at-rest .projector-halo{
 background:radial-gradient(circle,#fffef2e8 0%,#fff7d4bd 9%,#ffe6aa70 21%,#f4ca7230 39%,transparent 70%);
}
.projector-at-rest .projector-halo b{
 background:#fffef2e6;filter:blur(3px);
}
.projector-at-rest .projector-halo i{opacity:1}
