:root{
  --bg:#0f172a;
  --card-bg:#0b1220;
  --accent:#7c3aed;
  --glass: rgba(255,255,255,0.04);
  --glass-2: rgba(255,255,255,0.02);
}
*{box-sizing:border-box}
html,body,#board{height:100%}
body{
  margin:0;
  font-family:Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  background: radial-gradient(800px 400px at 10% 10%, rgba(124,58,237,0.08), transparent),
              radial-gradient(600px 300px at 90% 90%, rgba(34,197,94,0.03), transparent),
              var(--bg);
  color:#e6eef8;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
}

/* Layout */
.game-wrap{
  width:100%;
  max-width:960px;
  background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  border-radius:14px;
  padding:18px;
  box-shadow: 0 10px 30px rgba(2,6,23,0.6);
  backdrop-filter: blur(6px);
}

/* Topbar */
.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.topbar h1{
  margin:0;
  font-size:20px;
  letter-spacing:0.6px;
}
.controls{
  display:flex;
  align-items:center;
  gap:10px;
}
.controls > div{background:var(--glass); padding:8px 10px; border-radius:10px; font-size:14px}
.controls button{
  background:var(--accent);
  border:none;
  color:white;
  padding:8px 12px;
  border-radius:10px;
  cursor:pointer;
  font-weight:600;
  box-shadow: 0 6px 14px rgba(124,58,237,0.25);
}

/* Board */
.board{
  display:grid;
  gap:12px;
  justify-content:center;
  padding:18px;
}

/* Card */
.card{
  width:90px;
  height:110px;
  perspective:1000px;
}
@media (max-width:520px){
  .card{width:64px;height:80px}
}
.card-inner{
  position:relative;
  width:100%;
  height:100%;
  transform-style:preserve-3d;
  transition: transform 400ms cubic-bezier(.2,.9,.3,1);
  cursor:pointer;
}
.card.flip .card-inner { transform: rotateY(180deg) }
.card .face{
  position:absolute;
  inset:0;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  backface-visibility:hidden;
  box-shadow: 0 6px 18px rgba(2,6,23,0.6);
  user-select:none;
}
.face.front{
  background: linear-gradient(180deg,var(--glass), var(--glass-2));
  transform: rotateY(180deg);
  font-size:40px;
}
.face.back{
  background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  border: 1px solid rgba(255,255,255,0.03);
  font-size:20px;
  color:rgba(255,255,255,0.7);
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:10px;
}
.face.back .pattern{
  width:36px;height:36px;border-radius:8px;background:linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;
}

/* matched animation */
.card.matched .card-inner {
  animation: pop 700ms ease forwards;
  transform: rotateY(180deg) scale(1.03);
}
@keyframes pop {
  0% { transform: rotateY(180deg) scale(1); filter:brightness(1) }
  50% { transform: rotateY(180deg) scale(1.12); filter:brightness(1.15) }
  100% { transform: rotateY(180deg) scale(1.03); filter:brightness(1) }
}

/* overlay */
.overlay{
  position:fixed; inset:0; display:flex;align-items:center;justify-content:center;
  background: linear-gradient(180deg, rgba(2,6,23,0.5), rgba(2,6,23,0.6));
  z-index:40;
}
.overlay.hidden{display:none}
.overlay-card{
  background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  border-radius:12px;padding:24px; text-align:center; width:380px; max-width:92%;
  box-shadow: 0 10px 40px rgba(2,6,23,0.6);
}
.overlay-actions{display:flex;gap:12px;justify-content:center;margin-top:12px}
.overlay-actions button{
  padding:8px 12px;border-radius:8px;border:none;cursor:pointer;font-weight:600;
}
#nextLevelBtn{background:linear-gradient(90deg,var(--accent), #34d399);color:white}
#replayBtn{background:transparent;border:1px solid rgba(255,255,255,0.06);color:inherit}

/* footer */
.footer{margin-top:18px;text-align:center;color:rgba(230,238,248,0.6);font-size:13px}
