:root{
  --bg:#07070d; --panel:#101018; --line:#26263a;
  --a:#f5f5f5; --b:#15151f; --accent:#7df9ff; --danger:#ff4d5e;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:#e8e8f2;
  font-family:"Segoe UI",system-ui,-apple-system,sans-serif;min-height:100vh}
#app{min-height:100vh;display:flex;align-items:center;justify-content:center}
.screen{display:none;width:100%;max-width:1100px;padding:24px}
.screen.active{display:block}
#screen-game{max-width:1010px}

/* menu */
.title-wrap{text-align:center;margin-bottom:28px}
.game-title{font-size:84px;letter-spacing:14px;margin:0;font-weight:800}
.flip-a{color:#f5f5f5;text-shadow:0 0 24px #9adcff}
.flip-b{color:#15151f;text-shadow:0 0 24px #ff4d5e;-webkit-text-stroke:2px #ff8d9a}
.tagline{color:#8a8aa3;letter-spacing:3px;text-transform:uppercase;font-size:13px}
.menu{display:flex;flex-direction:column;gap:12px;max-width:340px;margin:0 auto}
.hint{text-align:center;color:#5c5c76;margin-top:26px;font-style:italic}

/* buttons */
.btn{background:#17171f;border:1px solid var(--line);color:#e8e8f2;
  padding:12px 22px;font-size:15px;letter-spacing:1px;cursor:pointer;border-radius:6px;
  transition:all .15s}
.btn:hover{border-color:var(--accent);box-shadow:0 0 12px rgba(125,249,255,.25)}
.btn:disabled{opacity:.35;cursor:default;box-shadow:none}
.btn.big{font-size:18px;padding:15px 22px}
.btn.small{padding:8px 14px;font-size:13px}
.btn.danger{border-color:var(--danger);color:#ffb3ba}
.btn.danger:hover{box-shadow:0 0 12px rgba(255,77,94,.35)}
kbd{background:#22222e;border:1px solid #3a3a52;border-radius:4px;padding:1px 7px;font-family:inherit}

/* panels */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:28px;max-width:560px;margin:0 auto}
.panel h2{margin-top:0;letter-spacing:2px}
.howto{line-height:2}
.row{display:flex;gap:10px;margin:12px 0;align-items:center;flex-wrap:wrap}
input,textarea{background:#0a0a12;border:1px solid var(--line);color:#e8e8f2;
  padding:10px;border-radius:6px;font-size:15px;font-family:monospace;flex:1;min-width:0}
textarea{width:100%;resize:vertical}
.code{font-size:44px;letter-spacing:12px;font-family:monospace;text-align:center;
  color:var(--accent);text-shadow:0 0 18px rgba(125,249,255,.5);margin:8px 0}
.lobby-label{color:#8a8aa3;font-size:12px;letter-spacing:3px;margin:14px 0 4px}
.status{color:#9a9ab5}
.status.warn{color:#ffcf6e}

/* game */
#game-wrap{position:relative;width:960px;max-width:100%;margin:0 auto}
#game{width:100%;display:block;background:#050508;border:1px solid var(--line);border-radius:8px}
#hud{position:absolute;inset:0;pointer-events:none;font-family:monospace}
#hud-score{position:absolute;top:10px;left:14px;font-size:18px;color:#fff}
#hud-chain{position:absolute;top:36px;left:14px;font-size:14px;color:var(--accent)}
#hud-lives{position:absolute;top:10px;right:14px;font-size:16px;color:#ff8d9a}
#hud-level{position:absolute;top:36px;right:14px;font-size:14px;color:#9a9ab5}
#hud-nova{position:absolute;bottom:12px;left:14px;width:220px;height:22px;
  border:1px solid var(--line);border-radius:4px;background:rgba(0,0,0,.5)}
#nova-fill{height:100%;width:0%;background:linear-gradient(90deg,#7df9ff,#c58bff);border-radius:3px}
#hud-nova span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:11px;letter-spacing:2px;color:#fff}
#boss-bar{position:absolute;top:10px;left:50%;transform:translateX(-50%);width:420px;height:20px;
  border:1px solid var(--danger);border-radius:4px;background:rgba(0,0,0,.55)}
#boss-fill{height:100%;width:100%;background:linear-gradient(90deg,#ff4d5e,#ff9d6e)}
#boss-bar span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:11px;letter-spacing:3px;color:#fff}
#banner{position:absolute;top:38%;width:100%;text-align:center;font-size:42px;letter-spacing:10px;
  color:#fff;text-shadow:0 0 30px var(--accent);font-weight:700}
#paused{position:absolute;top:48%;width:100%;text-align:center;font-size:26px;letter-spacing:6px;color:#ffcf6e}
.final-score{font-size:28px;font-family:monospace}
#end-detail{margin-bottom:18px}
