/* ========= PUZZLE ARCADE — Shared Styles ========= */
@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Fraunces:opsz,wght@9..144,300;9..144,600;9..144,700&display=swap');

*{margin:0;padding:0;box-sizing:border-box}

:root{
  --bg:#08080d;
  --surface:#111118;
  --surface2:#1a1a24;
  --border:rgba(255,255,255,.06);
  --text:#e0ddd4;
  --muted:#6b6580;
  --accent:#f0c040;
  --accent-glow:rgba(240,192,64,.3);
  --green:#5cdb6a;
  --red:#f05050;
  --blue:#50a0f0;
  --pink:#e870a0;
  --radius:10px;
  --font-display:'Fraunces',serif;
  --font-body:'DM Mono',monospace;
}

body{
  background:var(--bg);color:var(--text);
  font-family:var(--font-body);
  min-height:100dvh;
  -webkit-font-smoothing:antialiased;
}

/* ——— NAV ——— */
.site-nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:.9rem 1.5rem;
  border-bottom:1px solid var(--border);
  background:rgba(8,8,13,.8);
  backdrop-filter:blur(12px);
  position:sticky;top:0;z-index:100;
}
.site-nav .logo{
  font-family:var(--font-display);font-weight:700;font-size:1.15rem;
  color:var(--accent);text-decoration:none;letter-spacing:-.02em;
}
.site-nav .logo span{color:var(--muted);font-weight:300;font-size:.85rem;margin-left:.5rem}
.site-nav a.back{
  font-size:.8rem;color:var(--muted);text-decoration:none;
  border:1px solid var(--border);padding:.35rem .8rem;border-radius:6px;
  transition:border-color .15s,color .15s;
}
.site-nav a.back:hover{border-color:var(--accent);color:var(--accent)}

/* ——— GAME LAYOUT ——— */
.game-container{
  display:flex;flex-direction:column;align-items:center;
  padding:2rem 1.5rem 3rem;gap:1.5rem;
  min-height:calc(100dvh - 52px);
  background-image:radial-gradient(ellipse 600px 400px at 50% 30%,rgba(240,192,64,.03),transparent);
}
.game-header{text-align:center}
.game-header h1{
  font-family:var(--font-display);font-weight:700;
  font-size:clamp(1.6rem,4vw,2.4rem);letter-spacing:-.02em;
  color:var(--accent);text-shadow:0 0 40px var(--accent-glow);
}
.game-header .tagline{
  font-size:.75rem;color:var(--muted);margin-top:.3rem;
  letter-spacing:.08em;text-transform:uppercase;
}
.game-stats{
  display:flex;gap:2rem;font-size:.82rem;color:var(--muted);
}
.game-stats span{color:var(--accent)}
.game-how{
  max-width:380px;text-align:center;font-size:.72rem;
  color:var(--muted);line-height:1.7;margin-top:.5rem;
}

/* ——— CONTROLS ——— */
.game-controls{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:center}
.btn{
  font-family:var(--font-body);font-size:.78rem;
  padding:.5rem 1.1rem;border-radius:6px;cursor:pointer;
  border:1.5px solid var(--muted);background:transparent;color:var(--text);
  transition:border-color .15s,color .15s;letter-spacing:.04em;
}
.btn:hover{border-color:var(--accent);color:var(--accent)}
.btn.primary{border-color:var(--accent);color:var(--accent)}
select.btn{appearance:none;text-align:center;background:var(--bg)}

/* ——— WIN OVERLAY ——— */
.win-overlay{
  position:fixed;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(8,8,13,.88);backdrop-filter:blur(10px);
  opacity:0;pointer-events:none;transition:opacity .4s;z-index:50;
}
.win-overlay.show{opacity:1;pointer-events:auto}
.win-box{text-align:center}
.win-box h2{
  font-family:var(--font-display);font-size:2.4rem;
  color:var(--accent);text-shadow:0 0 60px var(--accent-glow);
}
.win-box p{color:var(--muted);margin:.7rem 0 1.5rem;font-size:.82rem}
.win-box .btn{border-color:var(--accent);color:var(--accent)}

/* ——— UTILITIES ——— */
@keyframes pop{0%{transform:scale(.85)}50%{transform:scale(1.08)}100%{transform:scale(1)}}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.fade-in{animation:fadeIn .5s ease both}
