/* Changes stay inside the original 1080 x 1920 stage; the Buddha remains unobstructed. */
.platform-temple .sanctuary-bg-img{transition:filter 2s ease}
.platform-temple[data-temple-scene=morning] .sanctuary-bg-img{filter:brightness(1.09) saturate(.88)}
.platform-temple[data-temple-scene=day] .sanctuary-bg-img{filter:none}
.platform-temple[data-temple-scene=evening] .sanctuary-bg-img{filter:brightness(.88) sepia(.15) saturate(1.15)}
.platform-temple[data-temple-scene=night] .sanctuary-bg-img{filter:brightness(.65) saturate(.72)}
.platform-temple[data-temple-scene=night] .buddha-halo-system{opacity:.95}
.platform-temple[data-temple-scene=festival] .sanctuary-bg-img{filter:brightness(1.04) saturate(1.14)}
.program-service-label{position:absolute;top:72px;left:26px;max-width:650px;padding:6px 14px;border-left:2px solid #eac57a;color:#ffedc1;font:17px/1.4 'Be Vietnam Pro',sans-serif;background:#160c0790;z-index:25;pointer-events:none}
.program-service-label[hidden]{display:none}
.program-rain{position:absolute;inset:0;z-index:5;pointer-events:none;opacity:0;background-image:repeating-linear-gradient(105deg,transparent 0 38px,#d9e4ee33 39px,transparent 40px 83px);background-size:130px 180px;animation:temple-rain 1s linear infinite}
[data-temple-weather=rain] .program-rain{opacity:.2}
[data-temple-weather=none] #templeCanvas{opacity:0}
.program-lanterns{display:none;position:absolute;inset:0;z-index:6;pointer-events:none;overflow:hidden}
[data-temple-scene=festival] .program-lanterns{display:block}
.program-lanterns i{position:absolute;top:-30px;width:48px;height:65px;border-radius:40%;background:radial-gradient(ellipse,#ffe09a,#e89c36 48%,#8c2815);border:2px solid #ffdd8c;box-shadow:0 0 30px #eab24d88;animation:temple-lantern 8s ease-in-out infinite;transform-origin:50% -30px}
.program-lanterns i:after{content:'';position:absolute;top:64px;left:22px;height:28px;width:2px;background:#eac57a}
@keyframes temple-rain{to{background-position:60px 180px}}
@keyframes temple-lantern{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}
@media(prefers-reduced-motion:reduce){.program-rain,.program-lanterns i{animation:none}.platform-temple .sanctuary-bg-img{transition:none}}
/* Only identified guests occupy the hall in the one-temple visitor model. */
.presence-mode #vipCushionsLayer,.presence-mode #congregationHall,.presence-mode .hud-gift-cards,.presence-mode .hud-right-leaderboard,.presence-mode .devotee-name-line{display:none!important}
.presence-mode .real-congregation{position:absolute;inset:0;z-index:20;pointer-events:none}
.presence-devotee{position:absolute;width:120px;transform-origin:50% 100%;display:flex;align-items:center;flex-direction:column;}
.presence-devotee .devotee-sprite{width:120px;height:auto;display:block}
.presence-name{max-width:170px;background:#180b06e8;border:1px solid #eac57a90;color:#ffedc2;border-radius:18px;padding:3px 10px;font:14px/1.5 'Be Vietnam Pro',sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:-7px}
.temple-visit-invitation{position:absolute;left:28px;right:28px;bottom:30px;text-align:center;color:#ffe5b3;font:21px/1.5 'Be Vietnam Pro',sans-serif;padding:12px 22px;border-radius:10px;background:#1b0c08cf;border:1px solid #d9ad5a55;z-index:40;pointer-events:none}
@keyframes guest-arrives{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.presence-devotee{animation:none;transition:none}}
.presence-mode .bottom-hud-bar{display:none!important}
.presence-mode #centralWorshipper:not([data-guest-id]){display:none!important}

.presence-devotee .actor-poses{position:relative;width:126px;height:176px}
.presence-devotee .actor-pose{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:126px;height:162px;object-fit:contain;opacity:0}
.presence-devotee .actor-kneel{opacity:1}
.presence-devotee.is-walking .actor-kneel,.presence-devotee.is-kneeling .actor-kneel{opacity:0}
.presence-devotee.is-walking .actor-walk1,.presence-devotee.is-walking .actor-walk2{width:102px;height:176px}
.presence-devotee.is-walking .actor-walk1{animation:temple-step-one .38s steps(1) infinite}
.presence-devotee.is-walking .actor-walk2{animation:temple-step-two .38s steps(1) infinite}
.presence-devotee.is-kneeling .actor-kneelDown{opacity:1}
.presence-devotee.is-walking{z-index:40!important}
.temple-courtyard{position:absolute;left:55px;right:55px;bottom:112px;z-index:41;background:#160c09dc;border:1px solid #d9ad5a55;border-radius:10px;padding:9px 15px 6px;pointer-events:none}
.temple-courtyard[hidden]{display:none}.courtyard-title{text-align:center;font-size:15px;color:#f1ce8c;letter-spacing:1px}
.courtyard-people{display:flex;align-items:flex-end;justify-content:center;gap:9px}.outside-devotee{width:95px;min-width:0;display:flex;flex-direction:column;align-items:center}
.outside-devotee img{height:92px;width:60px;object-fit:contain}.outside-devotee span{max-width:95px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:12px;color:#f4d9a3}.courtyard-more{font-size:17px;color:#f4d9a3;align-self:center}
.presence-mode .top-Right-badges{gap:6px}.presence-mode #actualPresenceCount{font-size:16px;padding:7px 11px}
@keyframes temple-step-one{0%,49.99%{opacity:1}50%,100%{opacity:0}}
@keyframes temple-step-two{0%,49.99%{opacity:0}50%,100%{opacity:1}}
@media(prefers-reduced-motion:reduce){.presence-devotee.is-walking .actor-walk1{animation:none;opacity:1}.presence-devotee.is-walking .actor-walk2{animation:none}}
.presence-name{max-width:114px;padding:2px 7px;font-size:18px;line-height:1.2}
/* Upstream hall proportions: 92×120 sprites, five rows of four on each side. */
.presence-devotee{transform-origin:50% 50%}
.presence-devotee .actor-poses{width:92px;height:120px}
.presence-devotee .actor-pose{width:92px;height:120px}
.presence-devotee.is-walking .actor-walk1,.presence-devotee.is-walking .actor-walk2{width:78px;height:132px}
/* Keep names above the head; cap their width to fit the nearest, tightest row. */
.presence-name{position:absolute;left:50%;top:auto;bottom:calc(100% + 6px);transform:translateX(-50%);margin:0;max-width:76px;padding:2px 6px;font-size:13px;line-height:1.4}
.presence-devotee.is-walking .presence-name{bottom:calc(100% + 18px)}
