.noir-loader{display:none;position:fixed;inset:0;z-index:999999;background:#050405;overflow:hidden;pointer-events:none;isolation:isolate}
.noir-loader.is-active{display:grid;place-items:center;animation:noir-loader-failsafe .1s 3.3s forwards}
.noir-loader::before,.noir-loader::after{content:"";position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#ee244850,transparent);top:18%;transform:scaleX(0);animation:noir-loader-rule .4s forwards}
.noir-loader::after{top:auto;bottom:18%}
.noir-loader-halo{position:absolute;width:min(800px,150vw);aspect-ratio:1;background:radial-gradient(ellipse,#a10a252b,transparent 65%);opacity:1}
.noir-loader-stage{position:relative;display:flex;flex-direction:column;align-items:center;width:min(380px,80vw);text-align:center}
.noir-loader-orbit{position:absolute;width:310px;height:310px;max-width:80vw;max-height:80vw;top:-85px;border:1px solid #f12b4214;border-radius:50%;border-top-color:#f12b4280;transform:rotate(-65deg);animation:noir-loader-orbit .7s cubic-bezier(.2,.6,.2,1) both}
.noir-loader-logo{position:relative;width:clamp(190px,25vw,280px);overflow:hidden;animation:noir-loader-reveal .4s cubic-bezier(.16,1,.3,1) both}
.noir-loader-logo img{display:block;width:100%;height:auto;max-height:180px;object-fit:contain}
.noir-loader-logo>span{position:absolute;inset:-50%;background:linear-gradient(110deg,transparent 42%,#fff8 49%,transparent 56%);opacity:.22;transform:translateX(-100%);animation:noir-loader-shine .4s .05s both}
.noir-loader-stage p{font-family:'DM Sans',sans-serif;font-size:14px;line-height:1.5;letter-spacing:.23em;color:#d5c5c9;margin:36px 0 24px;animation:noir-loader-reveal .35s .05s both}
.noir-loader-line{width:160px;height:2px;background:#372028;overflow:hidden}
.noir-loader-line i{display:block;height:100%;background:#f32e50;box-shadow:0 0 16px #ff244c;transform-origin:left;animation:noir-loader-rule .45s cubic-bezier(.2,.5,.2,1) both}
.noir-loader-signature{font-family:'DM Sans',sans-serif;font-size:14px;letter-spacing:.16em;color:#84727a;margin-top:24px;animation:noir-loader-reveal .3s .1s both}
.noir-loader.is-leaving{opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s;animation:none}
.noir-loader.is-active{will-change:opacity}.noir-loader-logo,.noir-loader-orbit{will-change:transform,opacity}
@keyframes noir-loader-reveal{from{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes noir-loader-rule{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes noir-loader-shine{to{transform:translateX(100%)}}
@keyframes noir-loader-orbit{from{opacity:0;transform:rotate(-65deg) scale(.85)}to{opacity:1;transform:rotate(230deg) scale(1.1)}}
@keyframes noir-loader-halo{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1.15)}}
@keyframes noir-loader-failsafe{to{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:reduce){.noir-loader.is-active{display:none}.noir-loader *{animation:none!important}}
