:root{
  --bg1: #03021a;
  --bg2: #071233;
  --neon: #00ffd5;
  --accent: #8a4fff;
  --muted: rgba(255,255,255,0.08);
  --glass: rgba(255,255,255,0.04);
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family: "Share Tech Mono", monospace;
  background: linear-gradient(180deg,var(--bg1),var(--bg2) 60%);
  color:#dffcff;
  overflow:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  position:relative;
}

/* full-screen canvas */
#starfield{position:fixed;inset:0;width:100%;height:100%;display:block;z-index:0}

/* center UI */
.ui{position:relative;z-index:5;height:100%;display:flex;align-items:center;justify-content:center;padding:40px}
.frame{
  width:min(980px,92%);
  text-align:center;
  padding:48px;
  border-radius:14px;
  background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  box-shadow: 0 10px 40px rgba(4,8,20,0.6), inset 0 1px 0 rgba(255,255,255,0.02);
  backdrop-filter: blur(8px) saturate(120%);
  border:1px solid rgba(255,255,255,0.03);
}

/* Glitch/Neon title */
h1{
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(28px,6vw,72px);
  letter-spacing: 0.02em;
  margin-bottom:12px;
  position:relative;
  color:var(--neon);
  text-shadow:
    0 0 10px rgba(0,255,213,0.12),
    0 0 30px rgba(138,79,255,0.06),
    0 6px 30px rgba(2,6,20,0.6);
  line-height:1;
  z-index:2;
}

/* Glitch effect via pseudo layers */
.glitch{
  position:relative;
}
.glitch::before,
.glitch::after{
  content:attr(data-text);
  position:absolute;
  left:0;top:0;
  width:100%;
  overflow:hidden;
  clip-path: inset(0 0 0 0);
}
.glitch::before{
  color:#9fffe8;
  z-index:-1;
  transform:translate(-2px,-2px) skew(-2deg);
  opacity:0.85;
  filter:drop-shadow(0 0 20px rgba(0,255,213,0.12));
  animation:glitchTop 2.6s infinite linear;
}
.glitch::after{
  color:#b388ff;
  z-index:-2;
  transform:translate(2px,2px) skew(2deg);
  opacity:0.75;
  animation:glitchBottom 3.2s infinite linear;
}

@keyframes glitchTop{
  0%{clip-path: inset(0 0 80% 0)}
  20%{clip-path: inset(10% 0 60% 0)}
  40%{clip-path: inset(30% 0 30% 0)}
  60%{clip-path: inset(10% 0 70% 0)}
  80%{clip-path: inset(0 0 40% 0)}
  100%{clip-path: inset(0 0 80% 0)}
}
@keyframes glitchBottom{
  0%{clip-path: inset(60% 0 0 0)}
  20%{clip-path: inset(40% 0 10% 0)}
  40%{clip-path: inset(20% 0 30% 0)}
  60%{clip-path: inset(50% 0 5% 0)}
  80%{clip-path: inset(30% 0 20% 0)}
  100%{clip-path: inset(60% 0 0 0)}
}

/* subtitle */
.sub{
  color:rgba(223,255,252,0.8);
  margin-bottom:22px;
  font-size:16px;
  opacity:0.95;
}

/* scanner bar */
.scanner{height:6px;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.02),transparent);border-radius:6px;overflow:hidden;margin:18px 0;position:relative}
.scanner .bar{
  position:absolute;left:-30%;top:0;height:100%;
  width:30%;
  background:linear-gradient(90deg,transparent,var(--neon),transparent);
  animation:scan 2.6s linear infinite;
  filter:blur(8px);
}
@keyframes scan{to{left:130%}}

/* HUD chip */
.hud{display:flex;gap:12px;align-items:center;justify-content:center;margin-top:10px}
.chip{background:var(--glass);padding:8px 12px;border-radius:8px;font-size:13px;color:rgba(255,255,255,0.75);border:1px solid rgba(255,255,255,0.03)}
.pulse{width:10px;height:10px;border-radius:999px;background:var(--accent);box-shadow:0 0 18px var(--accent);animation:pulse 1.6s infinite}
@keyframes pulse{0%{transform:scale(.8);opacity:.6}50%{transform:scale(1.2);opacity:1}100%{transform:scale(.8);opacity:.6}}

/* scanline overlay */
.scanlines{
  position:fixed;inset:0;pointer-events:none;z-index:6;
  background-image:linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px);
  background-size:100% 3px;
  mix-blend-mode:overlay;opacity:0.6;
}

/* small responsive tweaks */
@media (max-width:520px){
  .frame{padding:28px}
  .sub{font-size:13px}
}