/* === Qube Clicker – Modern Neon UI ===
   Drop-in für /assets/style.css
   Fonts via @import; keine HTML-Änderungen nötig.
*/
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800&display=swap');

:root{
  --bg: #070b14;
  --bg-2: #0c1320;
  --panel: #0f1827;
  --panel-2:#0c1422;
  --border:#1b2a44;
  --text:#e6edf3;
  --muted:#8fa1b7;
  --primary:#6d5ef7;      /* indigo */
  --primary-2:#9a8cff;    /* lighter glow */
  --ok:#14b8a6;
  --danger:#ff4d4f;
  --ring: 0 0 0 2px rgba(157,144,255,.25), 0 0 40px rgba(157,144,255,.15) inset;
  --shadow: 0 10px 30px rgba(0,0,0,.35);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font:16px/1.55 'Inter',system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Helvetica Neue,Arial,Apple Color Emoji,Segoe UI Emoji;
  color:var(--text);
  background:
    radial-gradient(1200px 1200px at 80% -10%, #1a2540, transparent 60%),
    radial-gradient(1000px 1000px at -10% 110%, #1b2a4a, transparent 60%),
    linear-gradient(180deg, var(--bg), var(--bg-2));
}

.topbar{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 16px;
  background:rgba(10,14,25,.7);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--border);
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
}
.brand{font-weight:800;letter-spacing:.2px}
.nav{display:flex;gap:8px;align-items:center}
.muted{color:var(--muted)}
.hidden{display:none !important}

.container{
  display:grid;gap:24px;
  grid-template-columns: 1fr 340px;
  padding: 28px 22px 40px;
  max-width: 1200px;margin:0 auto;
}
@media (max-width: 980px){
  .container{grid-template-columns:1fr}
  .leaderboard{order:-1}
}

/* Cards / Panels */
.game,.leaderboard,.card{
  background: linear-gradient(180deg, rgba(20,28,45,.9), rgba(12,18,32,.85));
  border:1px solid var(--border);
  border-radius:18px;
  box-shadow: var(--shadow);
}
.game{ padding:24px }
.leaderboard{ padding:18px }
.card{ padding:16px }

/* Stats */
.stats{ display:flex; flex-wrap:wrap; gap:14px; }
.stat{
  background: linear-gradient(180deg, var(--panel), var(--panel-2));
  border:1px solid var(--border);
  border-radius:14px;
  padding:12px 16px; min-width:170px;
  box-shadow: inset 0 0 20px rgba(255,255,255,.04);
}
.stat-label{ color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.35px }
.stat-value{ font-size:30px; font-weight:800 }

/* Buttons */
.btn{
  background: linear-gradient(135deg, var(--primary), var(--primary-2));
  color:#fff; border:0; border-radius:12px;
  padding:10px 14px; font-weight:700;
  box-shadow: 0 8px 24px rgba(120,102,255,.35);
  cursor:pointer; transition: transform .12s ease, box-shadow .3s ease, filter .2s ease;
}
.btn:hover{ transform: translateY(-1px); filter: brightness(1.05); box-shadow: 0 12px 32px rgba(153,136,255,.5) }
.btn:active{ transform: translateY(0) scale(.99) }
.btn-ghost{
  background: rgba(18,26,45,.35);
  border:1px solid var(--border);
  color:var(--text);
  box-shadow:none;
}
.small{ font-size:14px; padding:8px 10px }

/* Inputs */
label{display:block;margin:10px 0}
input{
  width:100%; padding:11px 12px; border-radius:10px;
  border:1px solid var(--border);
  background:#0b1220; color:var(--text);
  outline:none; transition: box-shadow .2s ease, border-color .2s ease;
}
input:focus{ border-color: var(--primary-2); box-shadow: var(--ring) }

/* Leaderboard */
.leaderboard h2{
  margin: 0 0 10px;
  color: var(--primary-2);
  text-shadow: 0 0 10px rgba(154,140,255,.35);
  letter-spacing:.4px;
}
#lb{ margin:0; padding:0 0 0 18px }
#lb li{ margin:7px 0; }

/* Center helper */
.center{text-align:center}

/* === Cube === */
#cube{
  display:block;margin: 26px auto 10px;
  width: clamp(180px, 26vw, 240px); height: clamp(180px, 26vw, 240px);
  border:0;background:transparent;cursor:pointer; perspective: 900px;
}
.cube{
  position:relative; width:100%; height:100%;
  transform-style:preserve-3d;
  animation: spin 9s linear infinite;
  filter: drop-shadow(0 22px 30px rgba(0,0,0,.45));
}
.face{
  position:absolute;width:100%;height:100%;
  background:
    radial-gradient(120% 120% at 20% 15%, rgba(255,255,255,.16), transparent 40%),
    linear-gradient(145deg, var(--primary), var(--primary-2));
  border: 3px solid rgba(54,70,110,.9);
  border-radius: 18px;
  box-shadow:
    inset 0 0 80px rgba(255,255,255,.10),
    0 0 25px rgba(135,120,255,.25);
  opacity:.98;
}
.front  { transform: translateZ( calc(var(--depth, 110px)) ); }
.back   { transform: rotateY(180deg) translateZ( calc(var(--depth, 110px)) ); }
.right  { transform: rotateY(90deg)  translateZ( calc(var(--depth, 110px)) ); }
.left   { transform: rotateY(-90deg) translateZ( calc(var(--depth, 110px)) ); }
.top    { transform: rotateX(90deg)  translateZ( calc(var(--depth, 110px)) ); }
.bottom { transform: rotateX(-90deg) translateZ( calc(var(--depth, 110px)) ); }

@keyframes spin{
  0%{   transform: rotateX(0) rotateY(0) }
  100%{ transform: rotateX(360deg) rotateY(360deg) }
}

/* Click feedback */
#cube:active .cube{ animation: spin 9s linear infinite, clickPulse .28s ease }
@keyframes clickPulse{
  0%{   transform: scale(1) rotateX(0) rotateY(0) }
  50%{  transform: scale(.92) rotateX(8deg) rotateY(8deg) }
  100%{ transform: scale(1) rotateX(0) rotateY(0) }
}

/* Dialog */
dialog::backdrop{ background: rgba(3,6,12,.65) }
dialog{ border:0; padding:0; background:transparent }
.card{ backdrop-filter: blur(10px) }

/* Subtle animated glow behind cube */
#cube::before{
  content:""; position:absolute; inset:-10% -10% -15% -10%;
  background: radial-gradient(60% 60% at 50% 40%, rgba(120,102,255,.25), transparent 60%),
              radial-gradient(30% 30% at 65% 30%, rgba(255,255,255,.05), transparent 60%);
  filter: blur(30px);
  z-index:-1; pointer-events:none; animation: glow 6s ease-in-out infinite alternate;
}
@keyframes glow{
  0%{ opacity:.40; transform: translateY(2px) }
  100%{ opacity:.75; transform: translateY(-2px) }
}
