/* Full viewport, including overrides for the existing city panel specificity. */
#panel.temple-panel{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;border:0;border-radius:0;transform:none;background:#21160d;color:#f6e5c4;animation:none;z-index:80}
.temple-panel .panel-content{width:100%;height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.temple-panel .panel-top,.temple-panel #panelScene,.temple-panel .city-nav,.temple-panel #cityError{display:none}
.temple-panel #panelBody{padding:0;flex:1;min-height:0;overflow:hidden;position:relative}.temple-panel #cityContent{height:100%}
.temple-open #toast{z-index:1000;top:104px}.temple-room{position:absolute;inset:0;overflow:hidden;background:#21160d;font-family:Arial,'Noto Sans',sans-serif}
.temple-panorama{position:absolute;inset:0;background:#21160d;isolation:isolate;display:flex;align-items:center;justify-content:center;padding:80px 0 120px}
.temple-panorama:before{content:'';position:fixed;inset:-20px;z-index:-1;background:url('./assets/v15-chua-thanh-interior.webp') center/cover;filter:blur(14px) brightness(.4);pointer-events:none}
.temple-pan-hint{display:none;font-size:9px;color:#cbb794;margin-top:8px}
@media(max-width:700px){.temple-pan-hint{display:block}}
.temple-scene{position:relative;flex:none;width:min(100vw,calc((100dvh - 130px)*1.77778));aspect-ratio:16/9;isolation:isolate;border-radius:0;overflow:visible}
.temple-background{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;user-select:none}
.temple-header{position:absolute;z-index:200;top:0;left:0;right:0;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 30px 45px;background:linear-gradient(#1b120df2,#1b120d88,transparent);pointer-events:none}
.temple-header small{font-size:10px;letter-spacing:3px;color:#d9b878}.temple-header h3{font:32px/1.15 Georgia,serif;font-weight:400;margin:7px 0;color:#ffe8bb}.temple-header p{font-size:11px;color:#d9c7a8;margin:0}.temple-header-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;pointer-events:auto}
.temple-room button{touch-action:manipulation}.temple-header-actions button,.temple-scene-controls button{min-height:44px;padding:11px 15px;border:1px solid #b8975959;border-radius:8px;background:#2e2118e8;color:#f7e4bf;font-size:12px;cursor:pointer}.temple-header-actions button:hover,.temple-scene-controls button:hover{background:#5b4228}.temple-room button:focus-visible{outline:3px solid #ffe6a4;outline-offset:3px}
.temple-footer{position:absolute;bottom:0;left:0;right:0;z-index:200;padding:28px 26px max(16px,env(safe-area-inset-bottom));background:linear-gradient(transparent,#1b120dec 24%,#1b120d);text-align:center;pointer-events:none}.temple-footer>*{pointer-events:auto}.temple-status strong{display:block;font-size:13px;font-weight:500;line-height:1.6;color:#ffe4b1}.temple-status>span{display:block;font-size:10px;color:#c4b297;margin:4px 0 12px}.temple-scene-controls{display:flex;justify-content:center;gap:7px;flex-wrap:wrap}.temple-scene-controls #templeBow{background:#dec08a;color:#312215;border-color:#dec08a;font-weight:700}.temple-scene-controls button:disabled{opacity:.45;cursor:not-allowed}.temple-legend{display:block;font-size:9px;color:#ad9c84;margin:10px 0 0;line-height:1.5}
.temple-seat{position:absolute;z-index:5;width:5.2%;height:4.2%;min-width:32px;min-height:24px;transform:translate(-50%,-50%) scale(var(--depth));border:2px solid #d7ac56;border-radius:45%;background:radial-gradient(ellipse,#a64d3b,#682a26);box-shadow:0 4px 0 #50281e,0 6px 10px #36180666;color:#ffdda1;cursor:pointer;pointer-events:auto}.temple-seat span{font-size:10px;pointer-events:none}.temple-seat.selected{outline:2px solid #ffe3a3;outline-offset:4px;box-shadow:0 4px 0 #50281e,0 0 20px #ffce76}.temple-seat.occupied{background:#514b33;border-color:#7bac8b;opacity:.7;cursor:not-allowed}
.temple-people{position:absolute;inset:0;pointer-events:none;z-index:10}.temple-person{position:absolute;width:7%;height:16%;transform:translate(-50%,-100%);transition:left 1.2s ease,top 1.2s ease,opacity 1.2s;pointer-events:none}.temple-person-body{position:absolute;inset:0;transform:scale(var(--person-scale,.9));transform-origin:bottom center;filter:drop-shadow(0 3px 3px #28180b66)}.temple-standing,.temple-kneeling{position:absolute;inset:0}.temple-standing canvas{width:100%!important;height:100%!important;object-fit:contain}.temple-kneeling{display:none}.temple-prayer-person{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.prayer-bowed{opacity:0}.temple-person[data-pose=kneeling] .temple-standing,.temple-person[data-pose=bowing] .temple-standing{display:none}.temple-person[data-pose=kneeling] .temple-kneeling,.temple-person[data-pose=bowing] .temple-kneeling{display:block}
.temple-name{position:absolute;left:50%;bottom:calc(95% * var(--person-scale,.9));transform:translateX(-50%);background:#153f30e8;color:#d9ffe7;border:1px solid #79b48a80;border-radius:4px;padding:3px 7px;max-width:145px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:10px;font-weight:600;box-shadow:0 2px 5px #1d170c44}.is-self .temple-name{background:#f5dca8;color:#4d321b;border-color:#fff0ce}.is-npc .temple-name{background:#3e3328cc;border-color:#b9a68a55;color:#dbccb8;font-size:9px}.temple-person.leaving{opacity:0}.temple-person[hidden]{display:none}
.temple-person[data-pose=bowing] .prayer-upright{animation:temple-upright 2s ease-in-out infinite}.temple-person[data-pose=bowing] .prayer-bowed{animation:temple-prostrate 2s ease-in-out infinite}
@keyframes temple-upright{0%,100%{opacity:1}35%,65%{opacity:0}}@keyframes temple-prostrate{0%,100%{opacity:0}35%,65%{opacity:1}}
.temple-roster{position:absolute;right:28px;top:84px;z-index:250;width:290px;max-height:55%;overflow:auto;padding:20px;border:1px solid #a58a545c;border-radius:12px;background:#231b14f5;color:#ead6b0;box-shadow:0 14px 50px #0006}.temple-roster h4{margin:0 0 16px;font:22px Georgia,serif}.temple-roster p{position:relative;margin:12px 0;padding-left:16px;font-size:12px;line-height:1.5}.temple-roster p i{position:absolute;left:0;top:5px;width:6px;height:6px;border-radius:50%;background:#9cd4a9}.temple-roster p span{display:block;font-size:10px;color:#b5a68c}.temple-roster small{display:block;font-size:10px;line-height:1.7;margin-top:18px;color:#b5a68c}
.temple-drawer{position:absolute;z-index:300;right:22px;top:100px;bottom:160px;width:min(365px,calc(100% - 44px));overflow-y:auto;background:#faf3e5;color:#4e4939;padding:26px;border:1px solid #e8d9b8;border-radius:14px;box-shadow:0 12px 50px #0006}.temple-drawer-close{position:absolute;right:12px;top:8px;background:transparent;color:#6c583c;font-size:27px;width:36px;height:36px}.temple-actions h3{font:29px/1.2 Georgia,serif;color:#57412b;margin:14px 0}.temple-actions p{font-size:12px;line-height:1.8;color:#746851}.temple-eyebrow{display:block;font-size:9px;letter-spacing:1.5px;color:#947343;padding-right:12px}.temple-offering{display:flex;justify-content:space-between;align-items:center;border-block:1px solid #ddceb0;padding:18px 0;margin:20px 0;font-size:13px}.temple-offering b{font:25px Georgia,serif;color:#8e6c38}.temple-actions>.primary,.temple-actions>.secondary{display:block;width:100%;margin:10px 0;min-height:44px}.temple-actions .temple-disclaimer{font-size:10px}.temple-actions .cno-hint-cn{font-size:23px}.temple-actions .cno-hint-py{font-size:13px}.temple-actions .voice-controls{padding:0}.temple-actions .answer-form{margin-bottom:16px}.temple-actions .text-button{font-size:11px}.temple-ceremony-progress{height:4px;background:#e5d9bd;border-radius:10px;overflow:hidden;margin:24px 0}.temple-ceremony-progress i{display:block;height:100%;background:#9a7b45;animation:temple-progress 6.2s linear forwards}@keyframes temple-progress{from{width:0}to{width:100%}}
.temple-room-incense{position:absolute;left:50%;top:53%;display:flex;gap:3px;z-index:2;transform:translateX(-50%);pointer-events:none}.temple-room-incense i{display:block;width:2px;height:15px;background:linear-gradient(#ffd88a 0 7%,#a94b26 10% 100%);position:relative}.temple-room-incense i:before{content:'';position:absolute;width:6px;height:28px;bottom:100%;left:-1px;border-left:2px solid #fcebd275;border-radius:50%;animation:temple-smoke 4s ease-in-out infinite}.temple-room-incense i:nth-child(2):before{animation-delay:-1s}.temple-room-incense i:nth-child(3):before{animation-delay:-2s}@keyframes temple-smoke{from{opacity:0;transform:translateY(0) scale(.7)}50%{opacity:.65}to{opacity:0;transform:translateY(-26px) scale(1.3)}}
@media(max-width:700px){.temple-header{padding:18px 14px 32px;gap:8px}.temple-header h3{font-size:25px}.temple-header small{font-size:8px;letter-spacing:1px}.temple-header p{display:none}.temple-header-actions{gap:5px;max-width:185px}.temple-header-actions button{padding:8px;font-size:10px;min-height:36px}.temple-panorama{padding:105px 0 185px;overflow:auto;align-items:center;justify-content:flex-start}.temple-scene{width:max(760px,100vw);margin:auto;flex-shrink:0}.temple-footer{padding:26px 10px max(10px,env(safe-area-inset-bottom))}.temple-status strong{font-size:11px}.temple-status>span{font-size:9px}.temple-scene-controls{gap:5px}.temple-scene-controls button{font-size:10px;min-height:40px;padding:9px 11px}.temple-legend{font-size:8px}.temple-drawer{top:95px;bottom:178px;right:12px;width:calc(100% - 24px);padding:22px}.temple-roster{top:100px;right:12px;width:min(290px,calc(100% - 24px))}.temple-name{font-size:9px}.temple-seat{min-height:32px}.temple-open #toast{top:105px}}
@media(max-height:540px) and (min-width:701px){.temple-header{padding:10px 18px}.temple-header h3{font-size:23px}.temple-header p{display:none}.temple-panorama{padding:55px 0 105px}.temple-footer{padding:20px 12px 9px}.temple-status>span,.temple-legend{display:none}.temple-status strong{margin-bottom:8px}.temple-drawer{top:65px;bottom:100px}.temple-scene{width:min(100vw,calc((100dvh - 90px)*1.77778))}}
@media(prefers-reduced-motion:reduce){.temple-person{transition:none}.temple-prayer-person,.temple-room-incense i:before{animation:none!important}.temple-person[data-pose=bowing] .prayer-upright{opacity:0}.temple-person[data-pose=bowing] .prayer-bowed{opacity:1}.temple-ceremony-progress i{animation:none;width:100%}}
