/* The preloader is opt-in so a no-JS visit never gets trapped behind an overlay. */
.preloader{display:none}
html.js .preloader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;overflow:hidden;background:#292d29;color:#f7f5ef;opacity:1;visibility:visible;transition:opacity .62s cubic-bezier(.22,.61,.36,1),visibility .62s}
html.js .preloader.is-leaving{opacity:0;visibility:hidden;pointer-events:none}
.preloader-center{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:22px;transform:translateY(-4vh);animation:preloader-rise 1.1s cubic-bezier(.22,.61,.36,1) both}
.preloader-center img{display:block;width:auto;height:108px;object-fit:contain;filter:drop-shadow(0 14px 26px #0003)}
.preloader-center p{margin:0;color:#c8c9c1;font:400 10px/1.2 Arial,sans-serif;letter-spacing:.28em;text-indent:.28em}
.preloader-rule{width:min(220px,50vw);height:1px;background:#f7f5ef2b;overflow:hidden}
.preloader-rule span{display:block;width:100%;height:100%;background:#f7f5ef;transform-origin:left;animation:preloader-progress 1.65s cubic-bezier(.22,.61,.36,1) both}
.preloader-frame{position:absolute;inset:12% 8%;pointer-events:none;opacity:.72}
.preloader-frame::before,.preloader-frame::after,.preloader-frame span{content:"";position:absolute;display:block;background:#f7f5ef36}
.preloader-frame::before{left:0;right:0;top:0;height:1px;transform-origin:left;animation:preloader-line-x 1.3s .08s ease-out both}
.preloader-frame::after{left:0;bottom:0;width:1px;top:0;transform-origin:bottom;animation:preloader-line-y 1.3s .18s ease-out both}
.preloader-frame span:first-child{right:0;bottom:0;width:1px;top:0;transform-origin:bottom;animation:preloader-line-y 1.3s .28s ease-out both}
.preloader-frame span:last-child{left:0;right:0;bottom:0;height:1px;transform-origin:right;animation:preloader-line-x 1.3s .38s ease-out both reverse}
@keyframes preloader-rise{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(-4vh) scale(1)}}
@keyframes preloader-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes preloader-line-x{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes preloader-line-y{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@media(max-width:700px){.preloader-frame{inset:10% 7%}.preloader-center img{height:92px}.preloader-center{gap:18px}.preloader-center p{font-size:9px;letter-spacing:.2em}}
@media(prefers-reduced-motion:reduce){html.js .preloader{transition:none}.preloader-center,.preloader-rule span,.preloader-frame::before,.preloader-frame::after,.preloader-frame span{animation:none}.preloader-rule span{transform:scaleX(1)}}
