/* A reversible lighting state: only artwork changes; controls stay legible. */
.light-switch{position:fixed;right:24px;bottom:24px;z-index:40;display:flex;align-items:center;gap:12px;min-height:54px;padding:13px 20px;border:1px solid #ffffff66;border-radius:50px;background:#0a0a0aee;color:#fff;font-size:15px;box-shadow:0 8px 35px #000a;backdrop-filter:blur(12px);transition:background .45s,border-color .45s,box-shadow .45s;max-width:calc(100vw - 32px)}.switch-icon{width:25px;height:30px;border:1px solid #fff8;border-radius:6px;padding:4px;display:flex;align-items:flex-start;flex-shrink:0}.switch-icon i{width:100%;height:11px;border-radius:2px;background:#eee;box-shadow:0 0 12px #fff5;transition:transform .4s,background .4s}.lights-out .switch-icon i{transform:translateY(9px);background:#ff263e;box-shadow:0 0 12px #fa163c}.light-switch:hover,.light-switch:focus-visible{border-color:#ed213c;box-shadow:0 0 30px #d7163433}.lights-out .light-switch{background:#32050ded;border-color:#d91d38}.lights-out body{background:#020202}.hero-shade,.quest-image img,.experience-image img,.contact-branch-art img{transition:filter 1s,background 1s}.lights-out .hero-shade{background:linear-gradient(90deg,#020202fa,#02020299 60%,#22020966),linear-gradient(0deg,#000,transparent 65%)}.lights-out .quest-image img{filter:grayscale(.75) brightness(.55)!important}.lights-out .quest-card:is(:hover,:focus-within,.poster-awake) .quest-image img{filter:grayscale(.1) brightness(.8)!important}.lights-out .experience-image>img,.lights-out .contact-branch-art>img{filter:grayscale(.7) brightness(.55)}.lights-out .quest-card{box-shadow:0 0 25px #e20d2220}.lights-out .quest-image:after{background:linear-gradient(0deg,#69051c66,transparent 60%);z-index:3}.lights-out :is(.experience,.catalog,.aftergame,.gift-section,.contact-lounge){background-color:#040404}.lights-out :is(.booking-form,.secret-section,.contact-mail){box-shadow:0 0 50px #b90b2825}.night-shadow{position:absolute;right:8%;bottom:0;width:33%;height:82%;z-index:4;opacity:0;pointer-events:none;filter:blur(2px);transform:translateY(16px);transition:opacity 1.1s,transform 1.8s}.lights-out .night-shadow{opacity:.85;transform:translateY(0)}.shadow-head{position:absolute;left:30%;top:8%;width:45%;height:24%;background:#000;border-radius:45% 45% 40% 40%;box-shadow:0 0 20px #000}.shadow-body{position:absolute;left:0;top:30%;width:100%;height:78%;background:linear-gradient(#000 65%,#0000);border-radius:45% 45% 0 0}.shadow-eyes{position:absolute;left:42%;top:18%;height:3px;width:5px;background:#f71637;box-shadow:20px 0 #f71637,0 0 9px #f71938,20px 0 9px #f71938}.hero-art .night-shadow{height:65%;width:18%;right:15%;z-index:1}.experience-image,.contact-branch-art{position:relative;overflow:hidden}.lights-out .hero-fog{background:radial-gradient(ellipse at 70% 50%,#b3082730,transparent 65%);opacity:.75}.lights-out .room-lit:after{background:linear-gradient(120deg,transparent 30%,#d70c3033 48%,transparent 65%)}
/* A black membrane splits, a real hand reaches through, then withdraws. */
.screen-tear{position:relative;height:230px;width:100%;overflow:hidden;isolation:isolate;background:#000;pointer-events:none;perspective:900px}.tear-depth{position:absolute;inset:0;z-index:0;background:radial-gradient(ellipse at 50% 60%,#730b20 0,#200309 40%,#000 75%);opacity:0;transition:opacity 1s}.tear-wordmark{position:absolute;left:0;right:0;top:44%;text-align:center;font-size:clamp(20px,4vw,48px);letter-spacing:12px;color:#fff4}.tear-skin{position:absolute;inset:0;z-index:2;background:#000;will-change:transform}.tear-left{clip-path:polygon(0 0,53% 0,49% 15%,53% 28%,47% 43%,52% 57%,48% 75%,51% 87%,48% 100%,0 100%);transform-origin:left center}.tear-right{clip-path:polygon(53% 0,100% 0,100% 100%,48% 100%,51% 87%,48% 75%,52% 57%,47% 43%,53% 28%,49% 15%);transform-origin:right center}.tear-crack{position:absolute;left:48%;top:0;bottom:0;width:5%;z-index:3;background:#f2264380;filter:drop-shadow(0 0 12px #d71033);clip-path:polygon(80% 0,20% 15%,85% 28%,0 43%,70% 57%,20% 75%,60% 87%,0 100%,8% 100%,68% 87%,28% 75%,78% 57%,8% 43%,93% 28%,28% 15%,88% 0);opacity:0}.tear-hand{position:absolute;z-index:5;left:50%;top:50%;width:290px;height:290px;object-fit:contain;transform:translate(-50%,-20%) scale(.3);opacity:0;filter:drop-shadow(0 10px 20px #000);will-change:transform,opacity}.tear-edge-light{position:absolute;inset:auto 10% 0;height:1px;background:linear-gradient(90deg,transparent,#de153d,transparent);opacity:0}.tear-playing .tear-depth{opacity:1}.tear-playing .tear-crack{animation:tear-crack-light 2.6s both}.tear-playing .tear-left{animation:tear-left-open 2.6s both}.tear-playing .tear-right{animation:tear-right-open 2.6s both}.tear-playing .tear-hand{animation:tear-hand-reach 2.6s both}.tear-playing .tear-edge-light{animation:tear-border 2.6s both}.tear-finished .tear-hand,.tear-finished .tear-crack{display:none}.tear-finished .tear-skin{opacity:0}.tear-finished .tear-depth{opacity:.45}.tear-finished .tear-edge-light{opacity:.65}@keyframes tear-left-open{0%,18%{transform:translateX(0)}45%{transform:translateX(-20%) rotateY(15deg)}75%,100%{transform:translateX(-65%) rotateY(30deg)}}@keyframes tear-right-open{0%,18%{transform:translateX(0)}45%{transform:translateX(20%) rotateY(-15deg)}75%,100%{transform:translateX(65%) rotateY(-30deg)}}@keyframes tear-crack-light{0%{opacity:0}18%,50%{opacity:1}100%{opacity:0}}@keyframes tear-hand-reach{0%,10%{opacity:0;transform:translate(-50%,10%) scale(.2) rotate(-10deg)}35%{opacity:1;transform:translate(-50%,-45%) scale(.85) rotate(-5deg)}60%{opacity:1;transform:translate(-50%,-50%) scale(1.25) rotate(8deg)}100%{opacity:0;transform:translate(-50%,55%) scale(.9) rotate(15deg)}}@keyframes tear-border{0%,35%{opacity:0}100%{opacity:.65}}@media(max-width:680px){.light-switch{right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));min-height:48px;padding:10px 15px;gap:9px;font-size:13px}.switch-icon{width:22px;height:27px}.screen-tear{height:180px}.tear-hand{width:230px;height:230px}.tear-wordmark{letter-spacing:7px;font-size:24px}}
@media(prefers-reduced-motion:reduce){.night-shadow,.light-switch,.switch-icon i,.hero-shade,.quest-image img,.experience-image img,.contact-branch-art img{transition:none}.screen-tear{height:55px}.screen-tear .tear-hand,.screen-tear .tear-crack,.screen-tear .tear-skin{display:none}.screen-tear .tear-depth{opacity:.4}.tear-wordmark{display:none}.tear-playing *{animation:none!important}}

/* Film-textured apparitions live outside the catalog; cards receive only projected shadows. */
.apparition-screen{position:fixed;inset:0;z-index:25;pointer-events:none;overflow:hidden;background:transparent}
.apparition{position:absolute;width:38%;height:90%;right:-6%;bottom:-6%;background-position:center bottom;background-repeat:no-repeat;background-size:contain;pointer-events:none;opacity:0;z-index:6;transition:opacity .5s;filter:grayscale(.95) brightness(.63) contrast(1.18);will-change:opacity,transform}
.apparition-figure{background-image:url('assets/apparition-figure-v44.png')}.apparition-woman{background-image:url('assets/apparition-woman-v44.png')}
.lights-out .apparition{animation:apparition-visit var(--haunt-cycle,13s) ease-in-out infinite}.apparition-screen .edge-figure{height:min(65vh,570px);width:240px;right:-40px;bottom:10%;filter:grayscale(1) brightness(.52) contrast(1.3)}.apparition-screen .edge-woman{height:300px;width:230px;left:-55px;right:auto;bottom:auto;top:15%;filter:grayscale(1) brightness(.6) contrast(1.2)}.lights-out .edge-woman{animation-name:apparition-peek}
.projected-shadow{position:absolute;inset:-8% -30% -15% 20%;pointer-events:none;z-index:4;opacity:0;background:url('assets/apparition-figure-v44.png') center/contain no-repeat;filter:brightness(0) blur(6px);transform-origin:center bottom;mix-blend-mode:multiply;transition:opacity .6s;will-change:opacity,transform}
.lights-out .projected-shadow{animation:projected-pass var(--haunt-cycle,12s) ease-in-out infinite}.quest-card:nth-child(3n) .projected-shadow{inset:0 22% -10% -35%;filter:brightness(0) blur(9px)}
.haunt-web{position:absolute;left:0;top:0;width:42%;height:43%;z-index:9;opacity:0;pointer-events:none;color:#ccc8;transition:opacity .6s}.haunt-web svg{width:100%;height:100%}.lights-out .haunt-web{opacity:.7}.quest-card:nth-child(even) .haunt-web{left:auto;right:0;transform:scaleX(-1)}
@keyframes apparition-visit{0%{opacity:.55;transform:translateX(0) scale(1)}12%{opacity:.7;transform:translateX(-5px) scale(1.015)}32%,65%{opacity:0;transform:translateX(22px) scale(.96)}80%{opacity:.5;transform:translateX(-9px) scale(1.02)}100%{opacity:.55;transform:translateX(0) scale(1)}}
@keyframes apparition-peek{0%{opacity:.6;transform:translateX(0) rotate(6deg)}18%{opacity:.75;transform:translateX(25px) rotate(12deg)}38%,72%{opacity:0;transform:translateX(-40px) rotate(2deg)}90%,100%{opacity:.6;transform:translateX(0) rotate(6deg)}}
@keyframes projected-pass{0%{opacity:.55;transform:translateX(0) skewX(-12deg) scaleY(1.3)}24%{opacity:.7;transform:translateX(-28%) skewX(-20deg) scaleY(1.4)}48%,75%{opacity:0;transform:translateX(35%) skewX(10deg) scaleY(1.15)}100%{opacity:.55;transform:translateX(0) skewX(-12deg) scaleY(1.3)}}
.motion-suspended .apparition,.motion-suspended .projected-shadow{animation-play-state:paused!important}
@media(max-width:680px){.apparition-screen .edge-figure{width:160px;height:360px;right:-35px}.apparition-screen .edge-woman{width:145px;height:220px;left:-35px}.apparition{width:47%;filter:grayscale(1) brightness(.65)}}
@media(prefers-reduced-motion:reduce){.lights-out .apparition,.lights-out .projected-shadow{animation:none;opacity:.5;will-change:auto}.apparition,.projected-shadow,.haunt-web{transition:none}}

/* Slower approach with a small wrist arc, then an unhurried withdrawal. */
.tear-playing .tear-hand{animation:hand-natural-reach 5.4s cubic-bezier(.4,0,.2,1) both;transform-origin:50% 85%;backface-visibility:hidden}
.tear-playing .tear-left{animation:tear-left-open 5.4s cubic-bezier(.4,0,.2,1) both}
.tear-playing .tear-right{animation:tear-right-open 5.4s cubic-bezier(.4,0,.2,1) both}
.tear-playing .tear-crack{animation:tear-crack-light 5.4s ease-in-out both}
.tear-playing .tear-edge-light{animation:tear-border 5.4s ease-in-out both}
@keyframes hand-natural-reach{0%,8%{opacity:0;transform:translate3d(-50%,30%,0) scale(.78) rotate(-5deg)}28%{opacity:1;transform:translate3d(-51%,-12%,0) scale(.94) rotate(-3deg);animation-timing-function:cubic-bezier(.3,.4,.5,1)}51%{opacity:1;transform:translate3d(-50%,-32%,0) scale(1.03) rotate(0deg);animation-timing-function:ease-in-out}65%{opacity:1;transform:translate3d(-48%,-29%,0) scale(1.01) rotate(2deg);animation-timing-function:cubic-bezier(.45,0,.6,1)}88%{opacity:.55;transform:translate3d(-47%,7%,0) scale(.91) rotate(4deg)}100%{opacity:0;transform:translate3d(-47%,30%,0) scale(.82) rotate(5deg)}}
@media(prefers-reduced-motion:reduce){.tear-playing .tear-hand,.tear-playing .tear-left,.tear-playing .tear-right,.tear-playing .tear-crack,.tear-playing .tear-edge-light{animation:none!important}}

/* Dark silhouettes and eyes only: no character photographs in the lighting effect. */
body .apparition,body .projected-shadow{background-image:radial-gradient(ellipse 18% 15% at 50% 23%,#000 92%,transparent 100%),radial-gradient(ellipse 34% 55% at 50% 79%,#000 75%,transparent 100%);background-size:100% 100%;background-position:center;mix-blend-mode:normal;filter:blur(1px);isolation:isolate}
.haunt-eye{position:absolute;top:22%;left:44%;width:5px;height:3px;border-radius:50%;background:var(--eye-color,#ff1837);box-shadow:0 0 5px var(--eye-color,#ff1837),0 0 12px var(--eye-color,#ff1837);filter:blur(.25px)}.haunt-eye+.haunt-eye{left:55%}
body .apparition-screen .edge-shadow{height:340px;width:210px;left:-55px;right:auto;bottom:auto;top:18%;filter:blur(1.5px)}
body .quest-image{isolation:isolate}body .haunt-web{top:0;left:0;right:auto;bottom:auto;width:46%;max-width:145px;height:auto;aspect-ratio:1;z-index:20;color:#ffffff;filter:drop-shadow(0 0 1px #fff5);opacity:0;transform:none;transition:opacity .7s;pointer-events:none}body .haunt-web.web-right{left:auto;right:0;transform:scaleX(-1)}body .haunt-web svg{display:block;width:100%;height:100%;stroke-width:1.15}html.lights-out body .haunt-web{opacity:.9}
@media(max-width:680px){body .apparition-screen .edge-shadow{width:140px;height:220px;left:-35px}body .haunt-web{width:48%;max-width:110px}}
body .quest-card:nth-child(3n) .projected-shadow,body .apparition-screen .apparition{filter:blur(1px)}
