/* ===== SPLASH / LOADING (tech) ===== */
.splash{position:fixed;inset:0;z-index:9999;overflow:hidden;background:radial-gradient(1200px 700px at 50% 38%,#0b1526 0%,#05070c 62%,#020308 100%);transition:opacity .7s ease,filter .7s ease}
.splash.done{opacity:0;filter:blur(6px);pointer-events:none}
.splash-net{position:absolute;inset:0;width:100%;height:100%}
.splash-grid{position:absolute;inset:-60% 0 0 0;pointer-events:none;background:linear-gradient(rgba(41,151,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(41,151,255,.09) 1px,transparent 1px);background-size:54px 54px;transform:perspective(600px) rotateX(58deg);mask-image:linear-gradient(180deg,transparent 30%,#000 75%);-webkit-mask-image:linear-gradient(180deg,transparent 30%,#000 75%);animation:sp-grid 4s linear infinite}
@keyframes sp-grid{to{background-position:0 54px,0 0}}
.splash-scan{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent,rgba(41,151,255,.10) 48%,rgba(124,192,255,.22) 50%,rgba(41,151,255,.10) 52%,transparent);background-size:100% 240px;background-repeat:no-repeat;animation:sp-scan 3.2s ease-in-out infinite}
@keyframes sp-scan{0%{background-position:0 -240px}100%{background-position:0 110vh}}
.splash-core{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);width:300px;height:300px;display:grid;place-items:center}
.splash-core::before{content:"";position:absolute;inset:22%;background:radial-gradient(circle,rgba(41,151,255,.32),transparent 65%);border-radius:50%;animation:sp-pulse 2.4s ease-in-out infinite}
@keyframes sp-pulse{0%,100%{transform:scale(.9);opacity:.7}50%{transform:scale(1.15);opacity:1}}
.splash-orbit{position:absolute;border-radius:50%}
.splash-orbit.o1{inset:26%;border:1px solid rgba(124,192,255,.4);border-top-color:#7cc0ff;border-right-color:transparent;animation:sp-spin 1.6s linear infinite;box-shadow:0 0 24px rgba(41,151,255,.25),inset 0 0 24px rgba(41,151,255,.15)}
.splash-orbit.o2{inset:14%;border:1px dashed rgba(41,151,255,.35);animation:sp-spin 7s linear infinite reverse}
.splash-orbit.o3{inset:2%;border:1px solid rgba(41,151,255,.18);animation:sp-spin 4.5s linear infinite}
.splash-sat{position:absolute;top:-4px;left:50%;width:8px;height:8px;border-radius:50%;background:#7cc0ff;box-shadow:0 0 14px 3px rgba(41,151,255,.8)}
@keyframes sp-spin{to{transform:rotate(360deg)}}
.splash-bar{width:min(300px,62vw);height:3px;border-radius:99px;overflow:hidden;background:rgba(255,255,255,.1)}
.splash-fill{display:block;height:100%;width:0%;background:linear-gradient(90deg,#2997ff,#7cc0ff);box-shadow:0 0 12px rgba(41,151,255,.7);transition:width .15s linear}
.splash-ui{position:absolute;left:0;right:0;top:calc(42% + 170px);display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:0 24px;opacity:0;animation:sp-ui-in .7s ease .4s forwards}
.splash-type{margin:0;min-height:18px;font:600 12px/1.5 'SF Mono','Cascadia Code',Consolas,monospace;letter-spacing:.14em;text-transform:uppercase;color:#7cc0ff}
.splash-type::after{content:"▍";animation:sp-blink .9s steps(1) infinite}
@keyframes sp-blink{50%{opacity:0}}
.splash-pct{margin:0;font:600 11px/1 'SF Mono','Cascadia Code',Consolas,monospace;letter-spacing:.12em;color:rgba(255,255,255,.5)}
.splash-logo{position:relative;height:46px;width:auto;filter:drop-shadow(0 0 18px rgba(41,151,255,.6));animation:sp-logo-in 1s cubic-bezier(.2,.8,.2,1) both}
@keyframes sp-logo-in{from{opacity:0;transform:scale(.7);filter:blur(8px)}to{opacity:1;transform:scale(1);filter:blur(0) drop-shadow(0 0 18px rgba(41,151,255,.6))}}
.splash-tag{margin:0;font:500 13px/1.5 'Manrope',sans-serif;letter-spacing:.04em;color:rgba(255,255,255,.72);text-shadow:0 1px 10px rgba(0,0,0,.6)}
.splash-enter{display:inline-flex;align-items:center;gap:9px;margin-top:4px;font:700 13px/1 'Manrope',sans-serif;letter-spacing:.06em;color:#fff;background:rgba(41,151,255,.92);padding:15px 26px;border-radius:99px;border:1px solid rgba(124,192,255,.5);box-shadow:0 6px 26px rgba(41,151,255,.38);cursor:pointer;transition:background .2s,transform .2s,box-shadow .2s}
.splash-enter:hover{background:#2997ff;transform:translateY(-2px);box-shadow:0 10px 32px rgba(41,151,255,.5)}
.splash-enter svg{transition:transform .2s}
.splash-enter:hover svg{transform:translateX(3px)}
@keyframes sp-ui-in{to{opacity:1}}
@media (max-width:560px){.splash-core{width:230px;height:230px}.splash-ui{top:calc(42% + 135px);gap:10px}.splash-logo{height:36px}.splash-tag{font-size:12px}}
