/* ===== Общая тема Игротеки ===== */
:root{
  --bg:#070a14;
  --panel:#0d1424;
  --panel2:#0e1728;
  --line:#22304e;
  --text:#eaf2ff;
  --muted:#8ea0bf;
  --accent:#34f5a5;
  --accent2:#1fc98e;
  --gold:#ffd166;
  --danger:#ff5d6c;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{
  background:radial-gradient(1100px 700px at 50% -10%, #14203a 0%, var(--bg) 60%);
  color:var(--text);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  display:flex;align-items:center;justify-content:center;
  min-height:100vh;padding:14px;overflow:hidden;
  user-select:none;
}
.wrap{display:flex;flex-direction:column;align-items:center;gap:10px}

/* ===== Шапка ===== */
.top{width:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px}
.top .nav-right{display:flex;justify-content:flex-end}
.logo{
  font-size:22px;letter-spacing:4px;font-weight:800;
  background:linear-gradient(90deg,var(--accent),#7ef0d0 45%,var(--gold));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  white-space:nowrap;
}
.icon-btn{
  background:var(--panel);border:1px solid var(--line);color:var(--text);
  width:38px;height:38px;border-radius:11px;font-size:17px;cursor:pointer;
  transition:.15s;line-height:1;text-decoration:none;
  display:inline-flex;align-items:center;justify-content:center;
}
.icon-btn:hover{border-color:var(--accent);transform:translateY(-1px)}
.back-btn{
  justify-self:start;
  background:var(--panel);border:1px solid var(--line);color:var(--muted);
  border-radius:11px;padding:9px 14px;font-size:13px;font-weight:700;
  text-decoration:none;transition:.15s;white-space:nowrap;
}
.back-btn:hover{color:var(--text);border-color:var(--accent);transform:translateY(-1px)}

/* ===== HUD ===== */
.hud{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap;justify-content:center}
.stat{
  background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:7px 14px;min-width:86px;text-align:center;
  display:flex;flex-direction:column;gap:2px;
}
.stat .label{font-size:10px;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted)}
.stat .value{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}
.value.bump{animation:bump .25s ease}
@keyframes bump{40%{transform:scale(1.22);color:var(--accent)}}

/* ===== Поле ===== */
.board{
  position:relative;border-radius:18px;overflow:hidden;
  box-shadow:0 24px 70px rgba(0,0,0,.55),0 0 0 1px rgba(90,255,190,.14),0 0 44px rgba(52,245,165,.07);
}
.board::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 90px rgba(0,0,0,.5);border-radius:18px;
}
canvas{display:block;touch-action:none}

/* ===== Оверлеи ===== */
.overlay{
  position:absolute;inset:0;z-index:5;
  display:flex;align-items:center;justify-content:center;
  background:rgba(5,9,17,.62);
  backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);
}
.overlay.hidden{display:none}
.panel{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;padding:26px 30px;max-width:94%}
.menu-title{
  font-size:clamp(28px,6vw,42px);letter-spacing:8px;font-weight:900;
  background:linear-gradient(90deg,var(--accent),#8ff5cf 50%,var(--gold));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 18px rgba(52,245,165,.35));
}
.pause-title{
  font-size:clamp(24px,5vw,34px);letter-spacing:8px;font-weight:900;
  background:linear-gradient(90deg,var(--accent),#8ff5cf);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.subtitle{color:var(--muted);font-size:14px;margin-top:-6px}
.rules-text{
  max-width:460px;max-height:46vh;overflow:auto;text-align:left;
  line-height:1.6;font-size:13.5px;white-space:pre-line;
}

.best-line{color:var(--muted);font-size:13px}
.best-line b{color:var(--gold)}

/* ===== Кнопки ===== */
.btn{
  border:none;border-radius:14px;padding:13px 34px;font-size:16px;font-weight:800;
  cursor:pointer;transition:.15s;font-family:inherit;letter-spacing:.4px;
}
.btn.primary{
  background:linear-gradient(135deg,var(--accent),var(--accent2));color:#04231a;
  box-shadow:0 8px 26px rgba(52,245,165,.35);
}
.btn.primary:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(52,245,165,.45)}
.btn.ghost{background:var(--panel);border:1px solid var(--line);color:var(--text);padding:11px 22px;font-size:14px}
.btn.ghost:hover{border-color:var(--accent)}
.btn[disabled]{opacity:.4;pointer-events:none}
.btn:active{transform:scale(.96)}
.tiny-hint{font-size:11px;color:var(--muted)}
.row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}

/* ===== Конец игры ===== */
.over-title{
  font-size:clamp(24px,5vw,36px);font-weight:900;letter-spacing:6px;
  background:linear-gradient(90deg,#ff8a94,var(--danger));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.over-title.win{
  background:linear-gradient(90deg,var(--accent),var(--gold));
  -webkit-background-clip:text;background-clip:text;
}
.cause{color:var(--muted);font-size:14px;margin-top:-8px}
.record{
  display:none;
  background:rgba(255,209,102,.14);border:1px solid rgba(255,209,102,.5);
  color:var(--gold);font-weight:800;font-size:13px;padding:6px 14px;border-radius:999px;
  animation:recordPulse 1.2s ease infinite;
}
.record.show{display:inline-block}
@keyframes recordPulse{50%{transform:scale(1.07);box-shadow:0 0 22px rgba(255,209,102,.35)}}
.final-score{
  font-size:44px;font-weight:900;color:var(--accent);
  font-variant-numeric:tabular-nums;line-height:1;
  text-shadow:0 0 26px rgba(52,245,165,.4);
}
.over-stats{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.over-stats .stat{min-width:74px;padding:6px 10px}

/* ===== Подсказки ===== */
.hints{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;color:var(--muted);font-size:12px}
kbd{
  background:var(--panel);border:1px solid var(--line);border-bottom-width:2px;
  border-radius:6px;padding:2px 7px;font-size:11px;font-family:inherit;margin:0 2px;
}

@media (max-width:560px){
  .stat{min-width:64px;padding:6px 8px}
  .stat .value{font-size:16px}
  .logo{font-size:18px;letter-spacing:2px}
  .hints{display:none}
  .panel{padding:16px 12px;gap:10px}
}
