/* Centered logo loader. Hidden without JavaScript. */
.preloader{display:none}
html[data-intro]{overflow:hidden}
html[data-intro] .preloader{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse at center,#2c2e2b,#20221f 55%,#141513);color:#fff;font-family:Inter,Arial,sans-serif}
.preloader-stage{display:flex;flex-direction:column;align-items:center;width:min(80vw,360px);text-align:center;transform:scale(1);transition:transform .35s cubic-bezier(.22,1,.36,1),opacity .35s}
.preloader-logo{display:block;width:min(65vw,280px);height:auto;object-fit:contain;filter:drop-shadow(0 0 28px #b7131c40);animation:logo-breathe 1.4s ease-in-out infinite}
.preloader-brand{margin-top:24px;font-size:10px;letter-spacing:.22em;color:#e6e6e0}
.preloader-track{width:min(55vw,230px);height:2px;margin-top:30px;background:#ffffff17;border-radius:2px;overflow:hidden}
.preloader-track span{display:block;width:40%;height:100%;background:linear-gradient(90deg,#b7131c,#ff5a5f);box-shadow:0 0 12px #e0262f;animation:loading-sweep .9s ease-in-out infinite}
.preloader-status{margin-top:15px!important;font-size:9px!important;color:#a9aaa4!important;letter-spacing:.2em;text-transform:uppercase}
.preloader-caption{margin-top:45px;font-size:9px;letter-spacing:.22em;color:#8b8c89}
html[data-intro="loading"] .page-shell{visibility:hidden}
.preloader.is-finishing .preloader-stage{transform:scale(.65) translateY(-20px);opacity:.25}
.preloader.is-finishing .preloader-logo{animation:none}
.preloader.is-finishing .preloader-track span{width:100%;animation:none}
html[data-intro="reveal"] .preloader{animation:intro-curtain .65s cubic-bezier(.76,0,.24,1) both;pointer-events:none}
html[data-intro="reveal"] .page-shell{position:relative;z-index:100001;animation:page-rise .65s cubic-bezier(.22,1,.36,1) both;pointer-events:none;box-shadow:0 -30px 80px #0005;background:var(--cream,#fffef1)}
@keyframes logo-breathe{50%{opacity:.65;transform:scale(.96)}}
@keyframes loading-sweep{from{transform:translateX(-110%)}to{transform:translateX(355%)}}
@keyframes page-rise{from{transform:translateY(100svh);border-radius:35px 35px 0 0}to{transform:translateY(0);border-radius:0}}
@keyframes intro-curtain{to{transform:translateY(-20%);opacity:0}}
@media(prefers-reduced-motion:reduce){.preloader-stage,.preloader-logo,.preloader-track span,html[data-intro="reveal"] .page-shell,html[data-intro="reveal"] .preloader{animation:none;transition:none}}
