/* Rehmansoft boot loader */
html.rsl-ld{overflow:hidden}
.ldr{display:none}
html.rsl-ld .ldr{display:block}
html.rsl-ld body>*:not(.ldr),html.rsl-ld body>*:not(.ldr) *,html.rsl-ld body>*:not(.ldr) *::before,html.rsl-ld body>*:not(.ldr) *::after{animation-play-state:paused!important}
.ldr{position:fixed;inset:0;z-index:99999;font-family:'IBM Plex Mono',ui-monospace,SFMono-Regular,Consolas,monospace;color:#d7d9ff}
.ldr *{box-sizing:border-box}
.ldr .half{position:absolute;left:0;right:0;height:50.2%;background:#070717;transition:transform .9s cubic-bezier(.77,0,.18,1) .1s;overflow:hidden}
.ldr .top{top:0}.ldr .bot{bottom:0}
.ldr .half::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(122,92,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(122,92,255,.09) 1px,transparent 1px);background-size:44px 44px;animation:ldgrid 6s linear infinite}
@keyframes ldgrid{to{background-position:44px 44px}}
.ldr canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.5;z-index:1;transition:opacity .5s}
.ldr.out canvas{opacity:0}
.ldr.out .top{transform:translateY(-101%)}.ldr.out .bot{transform:translateY(101%)}
.ldr.out .core{opacity:0;scale:1.25;filter:blur(8px)}
.ldr.gone{display:none!important}
.ldr .scan{position:absolute;left:0;right:0;height:140px;top:-140px;background:linear-gradient(transparent,rgba(106,76,255,.22),transparent);animation:ldscan 2.6s linear infinite;z-index:2;pointer-events:none}
@keyframes ldscan{to{top:100%}}
.ldr .core{position:absolute;inset:0;z-index:3;display:grid;place-content:center;justify-items:center;gap:26px;padding:20px;transition:opacity .45s,scale .7s,filter .45s}
.ldr .hud{position:relative;width:min(260px,62vw);aspect-ratio:1/1}
.ldr .hud svg{position:absolute;inset:0;width:100%;height:100%}
.ldr .r1{animation:ldspin 7s linear infinite;transform-origin:50% 50%}
.ldr .r2{animation:ldspin 11s linear infinite reverse;transform-origin:50% 50%}
.ldr .r3{animation:ldspin 3.4s linear infinite;transform-origin:50% 50%}
@keyframes ldspin{to{transform:rotate(360deg)}}
.ldr .lm{position:absolute;left:23%;top:26%;width:54%;aspect-ratio:700/617;filter:drop-shadow(0 0 22px rgba(122,92,255,.7))}
.ldr .lm img{position:absolute;height:auto;animation:ldfly 1.1s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i)*.22s + .15s)}
.ldr .lm .a{left:25.57%;top:0;width:48.57%;--fx:0px;--fy:-90px;--fr:-40deg}
.ldr .lm .b{left:0;top:46.84%;width:47.43%;--fx:-90px;--fy:50px;--fr:-70deg}
.ldr .lm .c{left:52.29%;top:46.84%;width:47.71%;--fx:90px;--fy:50px;--fr:70deg}
@keyframes ldfly{from{opacity:0;translate:var(--fx) var(--fy);rotate:var(--fr);scale:.3;filter:blur(8px)}}
.ldr .lm::after{content:"";position:absolute;inset:-12%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.55),transparent 60%);opacity:0;animation:ldflash 1s ease-out 1.15s both}
@keyframes ldflash{0%{opacity:.9;scale:.4}100%{opacity:0;scale:1.6}}
.ldr .pc{font:700 clamp(2.2rem,8vw,3.2rem)/1 'Bricolage Grotesque','Trebuchet MS',system-ui,sans-serif;letter-spacing:-.04em;color:#fff;text-shadow:0 0 24px rgba(122,92,255,.8)}
.ldr .pc small{font-size:.45em;opacity:.7;margin-left:2px}
.ldr .bar{width:min(340px,76vw);height:6px;border-radius:6px;background:rgba(255,255,255,.1);overflow:hidden;position:relative}
.ldr .bar i{position:absolute;inset:0;width:100%;transform-origin:0 50%;scale:0 1;background:linear-gradient(90deg,#ff3b2f,#7a3cff,#17b657);box-shadow:0 0 16px #7a3cff}
.ldr .term{width:min(380px,84vw);min-height:6.6em;font-size:.8rem;line-height:1.65;color:#9fa3d8;text-align:left}
.ldr .term div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;translate:-8px 0;animation:ldln .35s ease-out forwards}
.ldr .term div b{color:#2fd27c;font-weight:700}
.ldr .term div em{color:#ff6a5e;font-style:normal}
.ldr .term .cur{display:inline-block;width:.55em;height:1em;background:#9f8cff;vertical-align:-.15em;margin-left:3px;animation:ldblink .8s steps(1) infinite}
@keyframes ldln{to{opacity:1;translate:0 0}}
@keyframes ldblink{50%{opacity:0}}
.ldr .tag{position:absolute;left:0;right:0;bottom:max(18px,env(safe-area-inset-bottom));text-align:center;font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:#6c70a8;z-index:3}
@media (prefers-reduced-motion:reduce){
  .ldr *,.ldr *::before{animation:none!important}
  .ldr .lm img{opacity:1}
  .ldr .half{transition:opacity .3s}
  .ldr.out .top,.ldr.out .bot{transform:none;opacity:0}
}
