.chapel-gate{position:absolute;inset:0;z-index:30;display:block;padding:0;border:0;border-radius:0;overflow:hidden;background:transparent;color:#fff8e8;perspective:1100px;opacity:0;transition:opacity .35s;--door-angle:0deg;--approach:1;--portal-opacity:1;touch-action:manipulation}
.chapel-gate.is-ready{opacity:1}.chapel-gate:focus-visible{outline:2px solid #fff;outline-offset:-7px}.gate-composition{position:absolute;left:50%;top:50%;width:max(100%,56.28svh);height:auto;aspect-ratio:941/1672;transform:translate(-50%,-50%) scale(var(--approach));transform-origin:50% 53%;transform-style:preserve-3d;perspective:1100px;opacity:var(--portal-opacity);pointer-events:none}
.gate-leaf,.gate-face,.gate-back,.gate-portal{position:absolute;inset:0;display:block;transform-style:preserve-3d}.gate-leaf svg,.gate-portal svg{display:block;width:100%;height:100%}.gate-left{transform-origin:13.39% 60%;transform:rotateY(var(--door-angle))}.gate-right{transform-origin:85.44% 60%;transform:rotateY(calc(-1 * var(--door-angle)))}.gate-face{transform:translateZ(1px);backface-visibility:hidden;filter:brightness(calc(1 - var(--shade,0)))}.gate-back{transform:translateZ(-4px);filter:brightness(.62);backface-visibility:visible}.gate-portal{transform:translateZ(4px);pointer-events:none}.gate-edge{position:absolute;top:11%;height:77%;width:5px;display:block;background:linear-gradient(90deg,#7e552e,#c8955a,#805329);transform:rotateY(90deg);transform-origin:0 50%;backface-visibility:visible}.edge-left{left:50%}.edge-right{left:50%}.gate-instruction{position:absolute;left:15%;right:15%;bottom:5.5%;font:400 18px/1.4 var(--serif);letter-spacing:.035em;text-shadow:0 1px 6px #33261c;background:#66503959;padding:9px 12px;opacity:0;transition:opacity .5s}.is-ready .gate-instruction{opacity:1}.is-opening .gate-instruction{opacity:0}.is-opening{cursor:default}.is-opening .gate-face{filter:brightness(.94)}
@media(prefers-reduced-motion:reduce){.chapel-gate{display:none}}
.gate-volume{perspective:none;background:transparent}.gate-volume canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.gate-volume .gate-instruction{z-index:2}
