/* ── RESET & BASE ─────────────────────── */
*{box-sizing:border-box;margin:0;padding:0}
html,body{min-height:100vh;background:#07080d;color:#e2e0da;font-family:"Sora",sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}

/* ── ANIMATIONS ───────────────────────── */
@keyframes ledGlow{0%,100%{opacity:1;box-shadow:0 0 4px currentColor}50%{opacity:.3;box-shadow:none}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes breathe{0%,100%{transform:scale(1);opacity:.7}50%{transform:scale(1.08);opacity:1}}
@keyframes float{0%{bottom:-10px;opacity:0}10%{opacity:1}85%{opacity:.4}100%{bottom:105%;opacity:0}}
@keyframes fadeUp{0%{opacity:0;transform:translateY(22px)}100%{opacity:1;transform:translateY(0)}}
@keyframes pgFlash{0%{opacity:0}18%{opacity:1}42%{opacity:.2}68%{opacity:.65}100%{opacity:0}}
@keyframes shimmer{0%{background-position:200% center}100%{background-position:-200% center}}
@keyframes borderPulse{0%,100%{opacity:.7}50%{opacity:1}}
@keyframes arrowPulse{0%,100%{transform:translateY(0);opacity:.8}50%{transform:translateY(8px);opacity:1}}
@keyframes heroFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes nameBreath{0%,100%{filter:drop-shadow(0 0 16px rgba(107,122,249,1)) drop-shadow(0 0 48px rgba(79,92,232,.75)) drop-shadow(0 0 96px rgba(79,92,232,.4))}50%{filter:drop-shadow(0 0 22px rgba(130,145,255,1)) drop-shadow(0 0 68px rgba(107,122,249,.9)) drop-shadow(0 0 130px rgba(79,92,232,.55))}}
@keyframes slScan{0%{top:-3px;opacity:0}4%{opacity:1}93%{opacity:.55}100%{top:105%;opacity:0}}
@keyframes nllIn{0%{opacity:0;transform:translateX(-6px)}100%{opacity:1;transform:none}}
@keyframes loadPulse{0%,100%{opacity:.2;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}
.anim-fadeup{animation:fadeUp .7s cubic-bezier(.22,1,.36,1) both}
.anim-d1{animation-delay:.08s}.anim-d3{animation-delay:.34s}.anim-d4{animation-delay:.5s}.anim-d5{animation-delay:.66s}

/* ── BG LAYERS ────────────────────────── */
.bg-base{position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(ellipse 80% 60% at 50% -10%,rgba(79,92,232,.18) 0%,transparent 60%),
    radial-gradient(ellipse 50% 40% at 15% 80%,rgba(79,92,232,.06) 0%,transparent 55%),
    radial-gradient(ellipse 40% 50% at 85% 85%,rgba(29,185,84,.05) 0%,transparent 55%)}
.bg-grid{position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(rgba(79,92,232,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(79,92,232,.04) 1px,transparent 1px);
  background-size:56px 56px;mask-image:radial-gradient(ellipse 100% 100% at 50% 50%,black 20%,transparent 80%)}
.bg-noise{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.032;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:200px 200px}
.bg-scanlines{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.018;
  background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,1) 2px,rgba(0,0,0,1) 4px)}

/* ── CURSOR ───────────────────────────── */
*{cursor:none!important}
.cur{position:fixed;top:0;left:0;z-index:99999;pointer-events:none;width:26px;height:26px;transform:translate(-50%,-50%);transition:width .1s,height .1s}
.cur-arm{position:absolute;background:#6b7af9}
.cur-arm.t{top:0;left:50%;transform:translateX(-50%);width:1.5px;height:8px;box-shadow:0 0 7px rgba(107,122,249,1)}
.cur-arm.b{bottom:0;left:50%;transform:translateX(-50%);width:1.5px;height:8px;box-shadow:0 0 7px rgba(107,122,249,1)}
.cur-arm.l{left:0;top:50%;transform:translateY(-50%);height:1.5px;width:8px;box-shadow:0 0 7px rgba(107,122,249,1)}
.cur-arm.r{right:0;top:50%;transform:translateY(-50%);height:1.5px;width:8px;box-shadow:0 0 7px rgba(107,122,249,1)}
.cur-dot{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:3px;height:3px;border-radius:50%;background:#8b98ff;box-shadow:0 0 9px #6b7af9}
.cur.press{width:18px;height:18px}
.cur.press .cur-dot{width:5px;height:5px}

/* ── PAGE FLASH ───────────────────────── */
.page-flash{position:fixed;inset:0;z-index:500;pointer-events:none;background:rgba(79,92,232,.09);animation:pgFlash .4s ease forwards}

/* ── BACK BUTTON (login + public) ─────── */
.back-btn{display:inline-flex;align-items:center;gap:8px;font-family:"Space Mono",monospace;font-size:10px;color:rgba(226,224,218,.4);cursor:pointer;background:none;border:none;padding:0;transition:color .2s,gap .2s;letter-spacing:.1em;text-transform:uppercase}
.back-btn:hover{color:rgba(226,224,218,.75);gap:12px}
.back-btn svg{width:14px;height:14px;transition:transform .2s}
.back-btn:hover svg{transform:translateX(-2px)}
