:root{
  --bg:#04050a;
  --ink:#e9f3ff;
  --muted:rgba(233,243,255,.72);
  --cyan:#37eaff;
  --pink:#ff4fd8;
  --yellow:#ffe85a;
  --green:#2cff88;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial;
  color:var(--ink);
  background: radial-gradient(1200px 700px at 10% 10%, rgba(59,123,255,.14), transparent 55%),
              radial-gradient(900px 600px at 90% 18%, rgba(255,79,216,.12), transparent 55%),
              radial-gradient(900px 600px at 50% 0%, rgba(255,232,90,.08), transparent 55%),
              linear-gradient(180deg, #02030a, var(--bg));
  overflow:hidden;
}

/* full-screen canvas layers */
#bg, #fx{
  position:fixed; inset:0;
  width:100%; height:100%;
  display:block;
}
#fx{ pointer-events:none; }

/* minimal HUD (not a boxy layout) */
.hud{
  position:fixed;
  left:22px; right:22px;
  top:18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  z-index:10;
}

.brand{
  display:flex;
  align-items:center;
  gap:12px;
  user-select:none;
}
.badge{
  width:14px;height:14px;border-radius:99px;
  background:var(--green);
  box-shadow:0 0 18px rgba(44,255,136,.55);
}
.brand b{
  font-weight:900;
  letter-spacing:.6px;
  font-size:1.05rem;
}
.brand span{
  display:block;
  color:var(--muted);
  font-size:.9rem;
  letter-spacing:.2px;
}

.actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

a.btn{
  text-decoration:none;
  color:rgba(0,0,0,.92);
  font-weight:950;
  letter-spacing:.2px;
  padding:12px 14px;
  border-radius:999px;
  background: linear-gradient(90deg, var(--cyan), var(--yellow));
  box-shadow: 0 0 26px rgba(55,234,255,.38);
  transform: translateZ(0);
  transition: transform .12s ease, box-shadow .2s ease, filter .2s ease;
}
a.btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 0 36px rgba(55,234,255,.55);
  filter: saturate(1.1);
}
a.btn.secondary{
  background: rgba(255,255,255,.08);
  color: rgba(233,243,255,.92);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.14);
}
a.btn.secondary:hover{
  transform: translateY(-1px);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.20);
}

.center{
  position:fixed;
  left:22px; right:22px;
  bottom:22px;
  z-index:10;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
}

.headline{
  max-width:min(760px, 100%);
  user-select:none;
}
h1{
  margin:0;
  font-size: clamp(2.2rem, 4.2vw, 4.2rem);
  letter-spacing:.4px;
  text-shadow: 0 0 18px rgba(55,234,255,.22);
}
p{
  margin:10px 0 0;
  color:var(--muted);
  font-size:1.05rem;
  line-height:1.55;
  max-width:70ch;
}

.hint{
  text-align:right;
  color:rgba(233,243,255,.62);
  font-size:.92rem;
  user-select:none;
}
.kbd{
  display:inline-block;
  padding:3px 8px;
  border-radius:999px;
  background: rgba(255,255,255,.08);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.14);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  color: rgba(233,243,255,.84);
}

@media (max-width: 720px){
  .center{ flex-direction:column; align-items:flex-start; }
  .hint{ text-align:left; }
}

/* --- mini game section --- */
.gamewrap{
  position:fixed;
  left:22px; right:22px;
  bottom:110px;
  display:flex;
  justify-content:center;
  z-index:10;
  pointer-events:auto;
}
.game{
  width:min(920px, 100%);
  height:240px;
  border-radius:18px;
  background: rgba(255,255,255,.04);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.12);
}
.gametitle{
  position:fixed;
  left:22px; right:22px;
  bottom:74px;
  z-index:10;
  display:flex;
  justify-content:center;
  pointer-events:none;
  color: rgba(233,243,255,.70);
  font-size:.95rem;
}
