/* ===========================================
   UXWAVE STUDIO - CINEMATIC LOADER
   Production-ready, minimal, performant
   =========================================== */

.ux-loader{position:fixed;inset:0;background:#000;z-index:99999;display:flex;align-items:center;justify-content:center;overflow:hidden}
.ux-loader__curtain{position:absolute;top:0;height:100%;width:50%;background:#000;will-change:transform;transform:translate3d(0,0,0)}
.ux-loader__curtain--left{left:0;transition:transform .9s cubic-bezier(.85,0,.15,1)}
.ux-loader__curtain--right{right:0;transition:transform .9s cubic-bezier(.85,0,.15,1)}
.ux-loader--open .ux-loader__curtain--left{transform:translateX(-100%)}
.ux-loader--open .ux-loader__curtain--right{transform:translateX(100%)}
.ux-loader__content{position:relative;z-index:1;text-align:center;transition:opacity .4s cubic-bezier(.22,1,.36,1),transform .4s cubic-bezier(.22,1,.36,1);will-change:opacity,transform;transform:translate3d(0,0,0)}
.ux-loader--open .ux-loader__content{opacity:0;transform:scale(.96)}
.ux-loader__title{font-family:'DM Sans',sans-serif;font-size:clamp(2.5rem,7vw,5.5rem);font-weight:700;color:#fff;letter-spacing:.08em;text-transform:uppercase;margin:0;overflow:hidden;white-space:nowrap}
.ux-loader__title-inner{display:inline-block;border-right:3px solid #fff;padding-right:.15em;animation:blink .6s step-end infinite;will-change:contents;min-height:1em}
@keyframes blink{50%{border-color:transparent}}
.ux-loader__title-inner.typing-done{border:0;animation:none}
.ux-loader__subtitle{font-family:'DM Sans',sans-serif;font-size:clamp(.9rem,2vw,1.3rem);font-weight:300;color:#888;letter-spacing:.2em;text-transform:lowercase;margin:1.2rem 0 0;opacity:0;transform:translate3d(0,8px,0);animation:fadeUp .6s cubic-bezier(.22,1,.36,1) .8s forwards;will-change:opacity,transform}
@keyframes fadeUp{to{opacity:1;transform:translate3d(0,0,0)}}
.ux-loader--done{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s cubic-bezier(.22,1,.36,1),visibility 0s .4s}
body.ux-loading{overflow:hidden}
body.ux-loading #main-content,body.ux-loading .header{opacity:0;transform:scale(1.04) translate3d(0,0,0);filter:blur(8px);will-change:transform,opacity,filter}
body.ux-revealing #main-content,body.ux-revealing .header{animation:reveal .8s cubic-bezier(.22,1,.36,1) forwards}
@keyframes reveal{to{opacity:1;transform:scale(1) translate3d(0,0,0);filter:blur(0)}}
