/* Temple courtyard proscenium. The original paired doors remain interactive. */
.grand-entrance{--portal-width:min(760px,78vw);--portal-top:15svh;--portal-bottom:6svh;--column-width:clamp(27px,4.5vw,65px);background:#f6eddb;perspective:1800px}
.entrance-world,.courtyard-art,.courtyard-haze,.courtyard-rays,.entrance-architecture{position:absolute;inset:0;pointer-events:none}
.entrance-world{transform-origin:50% 60%;overflow:hidden}
.courtyard-art{background:#f6eddb url('assets/grand-courtyard.jpg') center/cover no-repeat;transform:scale(1.015)}
.courtyard-haze{background:linear-gradient(180deg,#fff9e344,transparent 30%,#f8e9cc08 60%,#4f321119),radial-gradient(ellipse at 50% 45%,#fffae549,transparent 68%)}
.courtyard-rays{background:conic-gradient(from 250deg at 50% 5%,transparent 0deg,#ffedb01a 16deg,transparent 35deg,#fff1bc30 48deg,transparent 70deg);opacity:.65;animation:courtyard-light 7s ease-in-out infinite alternate}
.entrance-architecture{z-index:5;transform-origin:50% 55%}
.entry-crown{position:absolute;left:50%;translate:-50% 0;top:calc(var(--portal-top) - 35px);width:calc(var(--portal-width) + 60px);height:44px;background:repeating-linear-gradient(90deg,#e6c578 0 3px,#b58434 4px 6px,#f9e2a0 7px 9px);border:5px ridge #d4a653;box-shadow:0 8px 15px #55321545,inset 0 4px 7px #ffecac;display:grid;place-items:center;border-radius:8px 8px 2px 2px}
.entry-crown:before{content:'';position:absolute;bottom:33px;left:50%;translate:-50% 0;width:140px;height:37px;background:linear-gradient(90deg,#b18035,#f3dc92,#bd8939);border:3px ridge #d4a653;border-radius:100% 100% 0 0}
.entry-crown svg{position:absolute;top:-32px;left:calc(50% - 30px);width:60px;height:45px;fill:#d7ad5d;stroke:#82551c;stroke-width:1;filter:drop-shadow(0 1px 1px #ffecb5)}
.entry-pillar{position:absolute;top:calc(var(--portal-top) - 4px);bottom:calc(var(--portal-bottom) - 10px);width:var(--column-width);display:flex;flex-direction:column;filter:drop-shadow(4px 3px 7px #51311644)}
.entry-pillar-left{left:calc(50% - var(--portal-width)/2 - var(--column-width)*.72)}
.entry-pillar-right{right:calc(50% - var(--portal-width)/2 - var(--column-width)*.72)}
.pillar-capital{display:block;height:65px;flex-shrink:0;background:repeating-linear-gradient(0deg,#bd8e3c 0 4px,#ffe4a0 5px 8px,#ac7726 9px 10px);border:3px ridge #d4a653;clip-path:polygon(0 0,100% 0,92% 26%,80% 36%,80% 70%,65% 100%,35% 100%,20% 70%,20% 36%,8% 26%)}
.pillar-shaft{display:block;flex:1;margin:0 18%;background:repeating-linear-gradient(90deg,#af7a2d 0%,#f1d58b 13%,#fff0b9 23%,#bf9147 30%,#aa7628 37%);border:2px solid #b9873b;border-radius:7px 7px 3px 3px;box-shadow:inset 2px 0 4px #fff1c5}
.pillar-base{display:block;height:65px;flex-shrink:0;background:repeating-linear-gradient(0deg,#9a661f 0 6px,#e1b665 7px 12px,#f9dea0 13px 15px);clip-path:polygon(28% 0,72% 0,72% 17%,85% 30%,85% 68%,100% 76%,100% 100%,0 100%,0 76%,15% 68%,15% 30%,28% 17%)}
.entry-toran{top:0;left:5%;right:5%;height:140px;border-top:0;z-index:6;animation:none}
.entry-toran .flower-strand{padding-top:7px}.entry-toran .flower-strand:nth-child(3n){padding-top:32px}.entry-toran .flower-strand:nth-child(2n){padding-top:17px}
.entry-toran .mango-leaf{display:none}.entry-toran .flower-strand b{font-size:22px;line-height:15px}.entry-toran .flower-tip{color:#a64236;font-size:21px}
.entry-bells .temple-bell{top:0;width:56px;z-index:7;filter:drop-shadow(0 4px 4px #5d3c1e33)}.entry-bells .bell-left{left:25%}.entry-bells .bell-right{right:25%}
.entrance-doorway{position:absolute;top:var(--portal-top);bottom:var(--portal-bottom);left:50%;width:var(--portal-width);translate:-50% 0;z-index:3;perspective:1800px;border:8px ridge #cda450;border-bottom-width:5px;box-shadow:0 12px 50px #46251355,inset 0 0 0 4px #6c3c20;transform-origin:50% 65%}
.entrance-doorway:after{content:'';position:absolute;left:calc(50% - 1px);top:0;bottom:0;width:2px;background:#fff4b2;box-shadow:0 0 0 transparent;opacity:.12;pointer-events:none;z-index:3}
.grand-entrance .temple-door{width:50.2%;border:5px ridge #a36d32;background:repeating-linear-gradient(90deg,#3c121807 0 2px,#ce8b4210 3px 4px,transparent 5px 8px),linear-gradient(95deg,#421b1c,#74302a 25%,#8a3d2c 50%,#5d2420 85%,#3f1719);box-shadow:inset 0 0 60px #210b1199;transform-style:preserve-3d}
.grand-entrance .temple-door:before{inset:17px;border:2px ridge #d2a25288;border-radius:130px 130px 3px 3px;box-shadow:inset 0 0 0 5px #d4a74712,0 0 0 5px #d4a74712}
.grand-entrance .temple-door:after{inset:31px;border-color:#b0804266;border-radius:115px 115px 0 0}
.grand-entrance .door-medallion{position:absolute;bottom:11%;left:0;right:0;text-align:center;font-size:clamp(70px,10vw,150px);opacity:.18;color:#e6bd74;animation:none}
.door-knocker{position:absolute;top:56%;width:30px;height:39px;border:5px ridge #e8c37d;border-radius:50%;background:#6a332477;box-shadow:0 3px 5px #260e13;z-index:2}.door-knocker:before{content:'';position:absolute;left:5px;top:-11px;width:10px;height:10px;border-radius:50%;background:#eccb85;border:1px solid #9c6b2b}.door-left .door-knocker{right:12px}.door-right .door-knocker{left:12px}
.grand-entrance .entrance-blessing{z-index:6;top:calc(var(--portal-top) + 8svh);left:calc((100% - var(--portal-width))/2 + 22px);right:calc((100% - var(--portal-width))/2 + 22px);letter-spacing:1px;color:#ffe6a9;text-shadow:0 2px 7px #260c14}
.grand-entrance .entrance-blessing p{font-size:22px;line-height:1.8}.grand-entrance .entrance-blessing h2{font:italic 400 clamp(25px,3.3vw,43px)/1.2 var(--serif);margin:14px 0 18px;color:#fff0cb;letter-spacing:.2px}
.grand-entrance .entrance-blessing>span{font:500 clamp(22px,3.5vw,44px)/1.1 var(--serif);color:#ffe4ab;letter-spacing:.5px}
.grand-entrance .entrance-blessing small{display:block;font:12px/1.8 var(--sans);letter-spacing:1px;margin-top:16px;color:#f3d79f}
.grand-entrance .entrance-prompt{z-index:7;bottom:calc(var(--portal-bottom) + 9svh);left:10%;right:10%}
.grand-entrance .entrance-prompt .button{display:inline-flex;flex-direction:column;gap:2px;width:122px;height:122px;padding:14px;border:2px solid #e9c77b;border-radius:50%;background:radial-gradient(#8a4833,#5c2224);color:#ffe9b9;box-shadow:0 0 0 6px #d0a45425,0 0 0 7px #e9c77b70,0 10px 25px #280e1655;animation:entry-seal-glow 3.5s ease-in-out infinite alternate}
.grand-entrance .entrance-prompt .button svg{width:40px;height:32px;fill:none;stroke:#f1d393;stroke-width:1.4}.grand-entrance .entrance-prompt .button span{font:500 12px/1.5 var(--sans);letter-spacing:.4px}
.grand-entrance .entrance-prompt p{font-size:12px;color:#fff0c6;text-shadow:0 1px 5px #33121a;margin-top:20px;background:#4c20204d;display:table;margin-left:auto;margin-right:auto;padding:4px 9px;border-radius:3px}
.grand-entrance .entrance-prompt .button:focus-visible{outline:3px solid #fff5d5;outline-offset:11px}
.grand-entrance.opening{animation:grand-scene-away 3.4s ease both}
.grand-entrance.opening .door-left{animation:grand-door-left 2.6s .25s cubic-bezier(.35,.05,.12,1) both}
.grand-entrance.opening .door-right{animation:grand-door-right 2.6s .25s cubic-bezier(.35,.05,.12,1) both}
.grand-entrance.opening .entrance-world{animation:courtyard-forward 3.4s cubic-bezier(.25,.1,.2,1) both}
.grand-entrance.opening .entrance-architecture{animation:portal-forward 3.4s cubic-bezier(.25,.1,.2,1) both}
.grand-entrance.opening .entrance-doorway:after{animation:doorway-light 2.8s ease both}
.grand-entrance.opening .entrance-blessing{animation:blessing-away .55s ease both}
.entrance-just-opened .hero-content{animation:grand-invitation-arrive 1.1s ease both}
@keyframes grand-door-left{0%{transform:rotateY(0);opacity:1}75%{opacity:1}100%{transform:rotateY(-108deg);opacity:0}}
@keyframes grand-door-right{0%{transform:rotateY(0);opacity:1}75%{opacity:1}100%{transform:rotateY(108deg);opacity:0}}
@keyframes courtyard-forward{from{transform:scale(1)}to{transform:scale(1.15)}}
@keyframes portal-forward{0%{transform:scale(1);opacity:1}65%{opacity:1}100%{transform:scale(1.27);opacity:0}}
@keyframes grand-scene-away{0%,80%{opacity:1}100%{opacity:0}}
@keyframes doorway-light{0%{opacity:.12;box-shadow:0 0 0 transparent}38%{opacity:.9;box-shadow:0 0 75px 25px #fff3be70}100%{opacity:0;box-shadow:0 0 100px 70px #fff3be00}}
@keyframes courtyard-light{from{opacity:.4}to{opacity:.8}}
@keyframes entry-seal-glow{from{box-shadow:0 0 0 6px #d0a45425,0 0 0 7px #e9c77b70,0 10px 25px #280e1655}to{box-shadow:0 0 0 9px #d0a45412,0 0 0 10px #e9c77b55,0 10px 28px #280e1655}}
@keyframes grand-invitation-arrive{from{transform:translateY(15px) scale(.98);opacity:.75}to{transform:translateY(0) scale(1);opacity:1}}
@media(max-width:600px){
 .grand-entrance{--portal-width:79vw;--portal-top:15svh;--portal-bottom:5svh;--column-width:30px}
 .entry-crown{width:calc(var(--portal-width) + 40px);height:33px;top:calc(var(--portal-top) - 25px);border-width:3px}.entry-crown:before{width:95px;height:28px;bottom:25px}.entry-crown svg{width:44px;height:35px;left:calc(50% - 22px);top:-24px}
 .pillar-capital,.pillar-base{height:46px}.pillar-shaft{border-width:1px}.entrance-doorway{border-width:5px}
 .entry-toran{left:1%;right:1%;height:115px}.entry-toran .flower-strand b{font-size:15px;line-height:10px}.entry-toran .flower-tip{font-size:17px}.entry-toran .flower-strand:nth-child(3n){padding-top:26px}
 .entry-bells .temple-bell{width:40px}.entry-bells .bell-left{left:18%}.entry-bells .bell-right{right:18%}
 .grand-entrance .temple-door{border-width:3px}.grand-entrance .temple-door:before{inset:10px;border-width:1px;border-radius:80px 80px 3px 3px}.grand-entrance .temple-door:after{inset:19px;border-radius:70px 70px 0 0}
 .grand-entrance .entrance-blessing{top:calc(var(--portal-top) + 9svh);left:calc((100% - var(--portal-width))/2 + 18px);right:calc((100% - var(--portal-width))/2 + 18px)}.grand-entrance .entrance-blessing p{font-size:19px}.grand-entrance .entrance-blessing h2{font-size:27px;margin:10px 0 17px}.grand-entrance .entrance-blessing>span{font-size:29px;line-height:1.15}.grand-entrance .entrance-blessing small{font-size:11px;letter-spacing:.3px;margin-top:13px}
 .grand-entrance .entrance-prompt{bottom:calc(var(--portal-bottom) + 9svh)}.grand-entrance .entrance-prompt .button{width:109px;height:109px}.grand-entrance .entrance-prompt p{font-size:10px;margin-top:17px;max-width:240px;line-height:1.6}
 .door-knocker{width:23px;height:30px;border-width:4px}.door-left .door-knocker{right:8px}.door-right .door-knocker{left:8px}.door-knocker:before{left:3px;width:9px;height:9px}
}
@media(max-height:600px) and (min-width:601px){.grand-entrance{--portal-top:13svh;--portal-bottom:4svh}.grand-entrance .entrance-blessing{top:20svh}.grand-entrance .entrance-blessing h2{font-size:27px;margin:6px 0}.grand-entrance .entrance-blessing p{font-size:18px}.grand-entrance .entrance-blessing>span{font-size:27px}.grand-entrance .entrance-blessing small{margin-top:8px;font-size:10px}.grand-entrance .entrance-prompt .button{width:90px;height:90px}.grand-entrance .entrance-prompt{bottom:10svh}.grand-entrance .entrance-prompt p{font-size:10px;margin-top:14px}}

/* Local divine-door revision: embossed brass panels with chakra, conch and lotus. */
.divine-entrance .temple-door{background:repeating-linear-gradient(90deg,#fff0bf0a 0 2px,#70460b0a 3px 4px,transparent 5px 7px),linear-gradient(105deg,#97611e,#d8b05d 16%,#f2d791 35%,#b98435 65%,#e0bc6e 83%,#8b571b);border-color:#8f5c22;box-shadow:inset 0 0 45px #70411566,inset 0 0 0 4px #ffe5a288}
.divine-entrance .temple-door:before{inset:12px;border-radius:4px;border:3px ridge #f2d38b;box-shadow:0 0 0 3px #956123,inset 0 0 0 3px #ad7830}
.divine-entrance .temple-door:after{inset:24px;border-radius:2px;border-color:#87501988}
.divine-reliefs{position:absolute;inset:35px;display:grid;grid-template-rows:1fr 1.15fr 1fr;gap:17px}
.divine-relief{position:relative;display:grid;place-items:center;border:3px ridge #e9c574;border-radius:6px;background:radial-gradient(ellipse at 40% 30%,#f7e1a585,#a66d2177);box-shadow:inset 0 0 0 4px #8e581b55,inset 0 4px 14px #6a3e2244,0 2px 4px #f9e5ae77}
.divine-relief:before,.divine-relief:after{content:'✦';position:absolute;top:8px;color:#916025;font-size:18px;text-shadow:0 1px 1px #fff2c7}.divine-relief:before{left:9px}.divine-relief:after{right:9px}
.divine-relief svg{width:clamp(47px,9vw,115px);height:clamp(47px,9vw,115px);fill:#b6813244;stroke:#81501c;stroke-width:1.7;filter:drop-shadow(1px 2px 1px #ffeab3);opacity:.92}
.divine-relief.relief-center svg{width:clamp(55px,11vw,145px);height:clamp(55px,11vw,145px)}
.divine-entrance .door-knocker{top:58%;border-color:#ffe4a0;background:#8c592777;box-shadow:0 3px 6px #57331977}
.divine-entrance .entrance-blessing{color:#743420;text-shadow:0 1px 1px #fff9e4;isolation:isolate}
.divine-entrance .entrance-blessing:before{content:'';position:absolute;inset:-10px -12px -8px;background:linear-gradient(#fff9e7f5,#f8e8bef5);border:1px solid #b88b3d;border-radius:4px;box-shadow:0 5px 20px #653d2325,inset 0 0 0 4px #dfbf7655;z-index:-1}
.divine-entrance .entrance-blessing h2,.divine-entrance .entrance-blessing>span{color:#743420}.divine-entrance .entrance-blessing small{color:#684727}
.divine-entrance .entrance-prompt p{background:#fff4daed;color:#663b22;text-shadow:none;border:1px solid #ba934655}
@media(max-width:600px){.divine-reliefs{inset:20px 15px;gap:13px}.divine-relief{border-width:2px}.divine-relief:before,.divine-relief:after{font-size:12px;top:5px}.divine-relief:before{left:5px}.divine-relief:after{right:5px}.divine-entrance .temple-door:before{inset:7px;border-width:2px;border-radius:3px}.divine-entrance .temple-door:after{inset:14px;border-radius:2px}.divine-entrance .entrance-blessing:before{inset:-9px -10px -7px}}

.divine-entrance .entrance-blessing>span{font-family:'Great Vibes','Snell Roundhand','Brush Script MT',cursive;font-weight:400;font-size:clamp(34px,4.4vw,55px);line-height:1.35;letter-spacing:0;text-transform:none}
@media(max-width:600px){.divine-entrance .entrance-blessing>span{font-size:clamp(27px,7.5vw,39px)}}
@media(max-height:600px) and (min-width:601px){.divine-entrance .entrance-blessing>span{font-size:34px}}
