:root{
  --bg:#0b0906;
  --ink:#f0e6d2;
  --dim:#9c8f7a;
  --gold:#f2c14e;
  --blood:#c2352c;
  --panel:#171208;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{
  background:
    radial-gradient(circle at 50% 0%, #1c1610 0%, #0b0906 60%, #050403 100%);
  color:var(--ink);
  font-family:"Trebuchet MS","Segoe UI",Tahoma,sans-serif;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
  -webkit-font-smoothing:antialiased;
}
#wrap{
  width:min(96vw, 1000px);
  display:flex;flex-direction:column;gap:6px;
}

/* ---------- HUD ---------- */
#hud{
  display:flex;align-items:center;justify-content:space-between;
  padding:6px 12px;
  background:linear-gradient(#1b1409,#120d06);
  border:2px solid #3a2c16;border-radius:8px;
  font-size:14px;letter-spacing:.5px;
}
#hearts{display:flex;gap:3px;min-width:190px}
.heart{width:22px;height:22px;flex:0 0 auto}
#hudmid{display:flex;flex-direction:column;align-items:center;line-height:1.2}
#floorname{color:var(--gold);font-weight:bold;letter-spacing:2px}
#timer{color:var(--dim);font-size:12px;font-variant-numeric:tabular-nums}
#statline{display:flex;gap:14px;min-width:190px;justify-content:flex-end;color:var(--dim)}
#statline b{color:var(--ink)}

/* ---------- сцена ---------- */
#stage{position:relative;line-height:0}
canvas#game{
  /* только целочисленное увеличение: при дробном пиксели получаются
     разной ширины и картинка «рябит» */
  width:960px;max-width:100%;height:auto;display:block;
  image-rendering:pixelated;          /* растягиваем без сглаживания */
  image-rendering:crisp-edges;
  background:#08070a;
  border:2px solid #3a2c16;border-radius:8px;
  box-shadow:0 0 60px rgba(0,0,0,.9), inset 0 0 90px rgba(0,0,0,.7);
}
#footer{
  min-height:20px;padding:0 12px;color:var(--dim);font-size:12px;
  line-height:1.4;text-align:center;
}
#footer span b{color:var(--gold)}
#marks{display:block;font-size:11px;letter-spacing:1px;margin-bottom:2px}
#marks i{font-style:normal;padding:1px 6px;margin:0 2px;border-radius:8px;
  background:rgba(255,255,255,.06);font-weight:bold}

/* ---------- оверлеи ---------- */
.overlay{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  background:rgba(5,4,3,.86);
  backdrop-filter:blur(3px);
  border-radius:8px;
  line-height:1.5;
  z-index:5;
}
.overlay.hidden{display:none}
.panel{
  width:min(92%,620px);max-height:94%;overflow:auto;
  background:linear-gradient(#1a1409,#0e0a05);
  border:2px solid #4a3818;border-radius:10px;
  padding:22px 26px;text-align:center;
  box-shadow:0 14px 60px rgba(0,0,0,.8);
}
.logo{
  font-size:40px;font-weight:900;letter-spacing:6px;color:var(--gold);
  text-shadow:0 3px 0 #6b4a12, 0 0 30px rgba(242,193,78,.35);
  line-height:1;
}
.logo span{display:block;font-size:26px;color:#e5d9bf;letter-spacing:10px;margin-top:4px}
.sub{color:var(--dim);font-size:14px;margin:14px 0}
.sub.small{font-size:12px}
.namebox{display:block;font-size:11px;color:var(--dim);letter-spacing:2px;margin:10px 0}
#nick{
  display:block;width:100%;margin-top:6px;padding:10px 12px;
  background:#0a0805;border:2px solid #4a3818;border-radius:6px;
  color:var(--gold);font-size:18px;text-align:center;letter-spacing:3px;
  font-family:inherit;text-transform:uppercase;
}
#nick:focus{outline:none;border-color:var(--gold)}
button{
  margin-top:12px;padding:12px 26px;
  background:linear-gradient(#c2352c,#8b2019);
  color:#fff;border:2px solid #f2c14e;border-radius:6px;
  font-family:inherit;font-size:16px;font-weight:bold;letter-spacing:2px;
  cursor:pointer;transition:transform .08s, filter .15s;
}
button:hover{filter:brightness(1.15)}
button:active{transform:translateY(2px)}
button.ghost{background:#241c10;border-color:#5c4720;color:var(--dim)}
.keys{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:16px;
  color:var(--dim);font-size:12px}
.keys b{color:var(--ink)}
.hint{margin-top:16px;font-size:11px;color:#6b5f4c;letter-spacing:2px}

.board{margin-top:18px;border-top:1px solid #3a2c16;padding-top:12px}
.bt{font-size:11px;letter-spacing:2px;color:#6b5f4c;margin-bottom:6px}
#board{list-style:none;margin:0;padding:0;font-size:12px;color:var(--dim);
  max-height:110px;overflow:auto}
#board li{display:flex;justify-content:space-between;padding:2px 6px}
#board li:nth-child(odd){background:rgba(255,255,255,.03)}
#board b{color:var(--gold)}

.bigred{font-size:34px;font-weight:900;color:var(--blood);letter-spacing:4px;
  text-shadow:0 0 26px rgba(194,53,44,.5)}
.bigwin{font-size:30px;font-weight:900;color:var(--gold);letter-spacing:3px}
.flagbox{
  margin:16px 0 6px;padding:14px;
  background:#05100a;border:2px dashed #3ad07a;border-radius:6px;
  color:#6cf5a4;font-family:"Consolas","DejaVu Sans Mono",monospace;
  font-size:20px;letter-spacing:1px;word-break:break-all;
  text-shadow:0 0 18px rgba(60,240,140,.5);
  user-select:all;
}
/* ВРЕМЕННЫЙ КОСТЫЛЬ: отладочная панель */
#debugbar{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center;
  margin-top:4px;padding:6px 10px;
  background:repeating-linear-gradient(45deg,#1d1608,#1d1608 10px,#241c0a 10px,#241c0a 20px);
  border:2px dashed #7a6a2a;border-radius:8px;
}
#debugbar.hidden{display:none}
#debugbar .dbg-title{
  font-size:10px;letter-spacing:2px;color:#c8a83a;font-weight:bold;margin-right:4px;
}
#debugbar button{
  margin:0;padding:5px 10px;font-size:11px;letter-spacing:1px;
  background:#3a3010;border:1px solid #7a6a2a;color:#e8d9a0;border-radius:4px;
}
#debugbar button:hover{filter:brightness(1.3)}
#debugbar button.cur{background:#7a6a2a;color:#fff}
#dbg-floors{display:flex;gap:3px;flex-wrap:wrap}

#conn{
  position:absolute;left:50%;top:12px;transform:translateX(-50%);
  background:rgba(120,20,20,.9);color:#fff;font-size:12px;
  padding:6px 14px;border-radius:20px;letter-spacing:1px;z-index:9;
}
#conn.hidden{display:none}

@media (max-width:700px){
  .logo{font-size:28px}
  #statline{display:none}
  #hearts{min-width:0}
}
