/* Shared stone-and-copper architecture for the public and approved entrances. */
.ep-door-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(22px,4vw,60px);width:100%;max-width:1050px;margin:48px auto 0}
.ep-door-choice{display:flex;flex-direction:column;align-items:center;min-width:0}
.ep-door{display:flex;flex-direction:column;align-items:center;width:100%;min-width:0;padding:0;color:#58605f;text-align:center;text-decoration:none;transition:opacity .9s ease}
.ep-door-frame{position:relative;display:block;width:min(100%,206px);aspect-ratio:2/3;isolation:isolate;filter:drop-shadow(7px 9px 7px #75695417)}
.ep-door-stone{position:absolute;inset:0;clip-path:polygon(11% 0,89% 0,100% 100%,0 100%);background:linear-gradient(100deg,#fffdf6 0%,#eae5d9 37%,#dfd7c9 88%,#cfc5b6 100%)}
.ep-door-stone::before{content:'';position:absolute;inset:2px 3px 1px;clip-path:polygon(11% 0,89% 0,100% 100%,0 100%);background:radial-gradient(ellipse at 15% 4%,#ffffffa6,transparent 63%),repeating-linear-gradient(113deg,#ad9f8520 0 1px,transparent 1px 5px),linear-gradient(105deg,#f1ecdf,#e6dfd2 76%,#d9d0c1);opacity:.68}
.ep-door-stone::after{content:'';position:absolute;inset:0;clip-path:polygon(87% 1%,89% 0,100% 100%,97% 100%);background:#bdb2a154}
.ep-door-opening{position:absolute;inset:12% 16% 0;overflow:hidden;border-radius:10px 10px 0 0;clip-path:polygon(4% 0,96% 0,100% 100%,0 100%);background:#d5c5a7;box-shadow:inset 0 4px 15px #4d40274a}
.ep-door-passage{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 43%,#fff8dd 0%,#eee1be 22%,#c6ae8866 68%),linear-gradient(90deg,#ad9479,#e0d0ab 18%,#d9c69c 82%,#aa9072);box-shadow:inset 11px 0 13px -9px #5e4c38b3,inset -11px 0 13px -9px #5e4c3899;opacity:.6;transition:opacity 1.3s ease .25s}
.ep-door-passage::before{content:'';position:absolute;inset:9% 16% 11%;border:1px solid #fff9dd8c;border-bottom:0;box-shadow:0 0 19px #fff5d0bb,inset 0 0 23px #fff5d0aa;background:linear-gradient(90deg,#a58f724a,transparent 10% 90%,#a58f724a)}
.ep-door-passage::after{content:'';position:absolute;left:-20%;right:-20%;height:20%;bottom:-4%;background:linear-gradient(#f5e4ba,#ded0ae);transform:perspective(80px) rotateX(35deg);box-shadow:0 -7px 18px #fff2d0a6}
.ep-door-leaf{position:absolute;top:1px;bottom:0;width:50%;overflow:hidden;background:linear-gradient(103deg,#efe9dc,#e3dccd 78%,#d5cbba);box-shadow:inset 0 0 0 1px #bfb4a333,inset 2px 0 3px #fff9ed66;transition:transform 1.55s cubic-bezier(.35,0,.14,1) .3s}
.ep-door-leaf--left{left:0;border-right:1px solid #92816d4d}
.ep-door-leaf--right{right:0;border-left:1px solid #fff9edb3;background:linear-gradient(103deg,#e7dfd0,#ddd4c4 98%)}
.ep-door-leaf::after{content:'';position:absolute;top:43%;width:100%;aspect-ratio:1;border-radius:50%;transform:translateY(-50%);background:radial-gradient(circle at 33% 26%,#d9ae8a5c,transparent 65%),repeating-conic-gradient(from 24deg,#d8b49444 0deg 1deg,#8a5b3c11 1deg 2deg),linear-gradient(125deg,#cd9b75,#b47e59 48%,#966343);box-shadow:inset 0 0 0 1px #98674766,inset 0 1px 1px #f4d6b999}
.ep-door-leaf--left::after{left:50%}
.ep-door-leaf--right::after{left:-50%}
.ep-door-lock{position:absolute;z-index:2;left:50%;top:43%;width:23px;height:29px;transform:translate(-50%,-50%);color:#614d37;filter:drop-shadow(0 1px 1px #f3d2ad66);transition:opacity .28s ease .26s}
.ep-door-lock svg{display:block;width:100%;height:100%;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.ep-door-lock rect{fill:#c59d77}
.ep-lock-shackle{transform-origin:7px 12px;transition:transform .3s ease}
.ep-door-threshold{position:absolute;bottom:-2%;left:-7%;right:-7%;height:3%;background:linear-gradient(180deg,#e2d9c8,#b8ad9a 30%,#ddd4c5 38%,#e9e1d4);clip-path:polygon(7% 0,93% 0,100% 100%,0 100%)}
.ep-door-label{display:block;margin-top:30px;font:400 12px/1.6 'Manrope',Arial,sans-serif;letter-spacing:-.025em;min-height:20px}
.ep-door-label .ep-door-number{display:inline;color:#8b8c83;font-size:9px;margin-right:6px;letter-spacing:.04em;white-space:nowrap}
.ep-door-label h3{display:inline;font:inherit;letter-spacing:inherit;color:inherit;margin:0}
.ep-door p{font:400 11px/1.85 'Manrope',Arial,sans-serif;color:#73776f;max-width:23ch;min-height:42px;margin:10px 0 0;text-align:center;text-align-last:center;hyphens:none}
.ep-door .ep-door-enter{font:400 10px/1.6 'Manrope',Arial,sans-serif;margin-top:20px;padding:5px 0;border-bottom:1px solid #7a7b7038;min-height:32px}
.ep-door-enter>span{margin-left:8px}
.ep-door:hover .ep-door-enter,.ep-door:focus-visible .ep-door-enter{border-color:#85694b;color:#75563b}
.ep-door:focus-visible{outline:2px solid #94734f;outline-offset:9px}
/* Only approved navigation can set this class; locked doors never open on hover. */
.ep-door.is-opening .ep-lock-shackle{transform:translateY(-3px) rotate(-28deg)}
.ep-door.is-opening .ep-door-lock{opacity:0}
.ep-door.is-opening .ep-door-leaf--left{transform:translateX(-101%)}
.ep-door.is-opening .ep-door-leaf--right{transform:translateX(101%)}
.ep-door.is-opening .ep-door-passage{opacity:1}
.offscript-is-leaving[data-offscript-route=home] .ep-door:not(.is-opening){opacity:.42}
@media(max-width:760px){.ep-door-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:440px;gap:42px 30px;margin-top:38px}.ep-door-frame{width:min(100%,170px)}.ep-door-label{margin-top:25px;font-size:11px;min-height:20px}.ep-door-label .ep-door-number{font-size:8px;margin-right:3px}.ep-door p{font-size:10px;max-width:21ch;min-height:40px}.ep-door .ep-door-enter{font-size:10px;margin-top:13px}.ep-door-lock{width:19px;height:24px}}
@media(max-width:360px){.ep-door-grid{gap:36px 22px}.ep-door-label{max-width:130px;min-height:36px}.ep-door-label .ep-door-number{display:block}.ep-door p{min-height:55px}}
@media(prefers-reduced-motion:reduce){.ep-door,.ep-door-leaf,.ep-door-lock,.ep-lock-shackle,.ep-door-passage{transition:none}}
