:root{
  --bg:#0b0e1a; --bg2:#11162b; --panel:#161c36; --line:#252d52;
  --neon:#00e5ff; --pink:#ff3d81; --yellow:#ffd23f; --green:#52ffa8;
  --text:#e8ecff; --dim:#8b93b8;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg); color:var(--text);
  font-family:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
  min-height:100vh; display:flex; flex-direction:column; overflow-x:hidden;
}
.bg-grid{
  position:fixed; inset:0; z-index:-1; opacity:.35;
  background:
    radial-gradient(ellipse 80% 50% at 50% -10%, #1b2450 0%, transparent 60%),
    repeating-linear-gradient(0deg, transparent 0 39px, #141a33 39px 40px),
    repeating-linear-gradient(90deg, transparent 0 39px, #141a33 39px 40px);
}
.hidden{display:none!important}

/* header */
.site-header{
  display:flex; align-items:center; gap:24px; padding:14px 22px;
  border-bottom:1px solid var(--line); background:rgba(11,14,26,.85);
  backdrop-filter:blur(8px); position:sticky; top:0; z-index:10;
}
.brand{
  font-weight:900; font-size:20px; letter-spacing:2px; color:var(--text);
  text-decoration:none; text-shadow:0 0 12px rgba(0,229,255,.6);
}
.brand span{color:var(--neon); margin-left:6px; font-weight:400}
.site-nav{display:flex; gap:18px; margin-left:auto}
.site-nav a{
  white-space:nowrap;
  color:var(--dim); text-decoration:none; font-size:14px; font-weight:600;
  padding:6px 10px; border-radius:8px; transition:.15s;
}
.site-nav a:hover{color:var(--text); background:var(--panel)}
.site-nav a.active{color:var(--neon)}
.icon-btn{
  background:var(--panel); border:1px solid var(--line); border-radius:10px;
  font-size:16px; padding:6px 10px; cursor:pointer; color:var(--text);
}

main{flex:1; width:100%; max-width:1080px; margin:0 auto; padding:28px 20px}

/* hub */
.hero h1{
  font-size:44px; line-height:1.05; letter-spacing:1px;
  text-shadow:0 0 24px rgba(255,61,129,.35);
}
.hero p{color:var(--dim); margin:14px 0 30px; font-size:17px; max-width:560px}
.cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px}
.card{
  position:relative; display:block; background:var(--panel); border:1px solid var(--line);
  border-radius:16px; padding:22px; text-decoration:none; color:var(--text);
  transition:transform .18s, box-shadow .18s, border-color .18s; overflow:hidden;
}
.card:hover{transform:translateY(-4px); border-color:var(--neon); box-shadow:0 12px 40px rgba(0,229,255,.18)}
.card h2{font-size:24px; margin:14px 0 8px; letter-spacing:1px}
.card p{color:var(--dim); font-size:14px; line-height:1.5; min-height:63px}
.card-best{display:block; margin:12px 0; font-size:13px; color:var(--dim)}
.card-best b{color:var(--yellow)}
.card-art{display:flex; gap:6px; height:46px}
.card-art i{width:22px; height:22px; border-radius:4px; display:block}
.card-brickfall .card-art i:nth-child(1){background:var(--neon); align-self:flex-end}
.card-brickfall .card-art i:nth-child(2){background:var(--pink); height:44px}
.card-brickfall .card-art i:nth-child(3){background:var(--yellow); align-self:flex-end; height:34px}
.card-brickfall .card-art i:nth-child(4){background:var(--green); height:44px}
.card-art-num i{
  width:40px!important; height:40px!important; display:flex; align-items:center; justify-content:center;
  font-style:normal; font-weight:800; color:#0b0e1a; border-radius:8px!important;
}
.card-art-num i:nth-child(1){background:#9fd8ff}
.card-art-num i:nth-child(2){background:#6ee7c8}
.card-art-num i:nth-child(3){background:var(--yellow)}
.card-art-num i:nth-child(4){background:var(--pink); color:#fff}
.card-art-snake i{background:var(--green); border-radius:50%!important}
.card-art-snake i:nth-child(1){width:26px;height:26px}
.card-art-snake i:nth-child(4){background:var(--pink); width:16px; height:16px; align-self:center}
.play-btn{
  display:inline-block; background:linear-gradient(90deg,var(--neon),#4f8dff); color:#06121f;
  font-weight:800; padding:10px 22px; border-radius:10px; font-size:14px; letter-spacing:.5px;
  border:0; cursor:pointer;
}
.play-btn.big{font-size:17px; padding:14px 38px}
.foot-note{margin-top:28px; color:var(--dim); font-size:13px; text-align:center}
kbd{
  background:var(--panel); border:1px solid var(--line); border-bottom-width:3px;
  border-radius:6px; padding:2px 8px; font-family:inherit; font-size:.9em;
}

/* game view */
.game-top{display:flex; align-items:center; gap:16px; margin-bottom:18px}
.game-top h2{flex:1; font-size:26px; letter-spacing:1px}
.back-link{color:var(--dim); text-decoration:none; font-size:14px}
.back-link:hover{color:var(--neon)}
.small-btn{
  background:var(--panel); color:var(--text); border:1px solid var(--line);
  border-radius:8px; padding:8px 14px; cursor:pointer; font-size:13px;
}
.small-btn:hover{border-color:var(--neon)}
.game-layout{display:flex; gap:24px; align-items:flex-start; flex-wrap:wrap}
.stage-wrap{position:relative; flex:0 0 auto}
#stage{
  background:#0a0d18; border:1px solid var(--line); border-radius:14px;
  display:block; width:min(480px, 92vw); height:auto; touch-action:none;
  box-shadow:0 0 0 1px rgba(0,229,255,.08), 0 18px 60px rgba(0,0,0,.5);
}
.overlay{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:rgba(8,10,20,.82); border-radius:14px; backdrop-filter:blur(3px);
}
.overlay.hidden{display:none!important}
.overlay-box{text-align:center; padding:20px}
.overlay-box h3{font-size:30px; margin-bottom:10px; letter-spacing:1px; text-shadow:0 0 18px rgba(0,229,255,.5)}
.overlay-box p{color:var(--dim); margin-bottom:20px; font-size:14px; white-space:pre-line}
.hud{display:flex; flex-direction:column; gap:12px; min-width:150px}
.hud-block{
  background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:12px 16px;
}
.hud-block span{display:block; color:var(--dim); font-size:11px; text-transform:uppercase; letter-spacing:1.5px}
.hud-block b{font-size:24px; color:var(--neon)}
#hud-next{background:#0a0d18; border-radius:8px; margin-top:6px; width:96px; height:96px}
.hud-help{color:var(--dim); font-size:12px; line-height:1.9; padding:4px}
.touch-pad{display:none}

/* prose pages */
.prose h1{font-size:34px; margin-bottom:18px}
.prose h3{color:var(--neon); margin:22px 0 8px; font-size:18px}
.prose p{color:#c6cdea; line-height:1.7; max-width:720px; margin-bottom:10px}

.site-footer{
  display:flex; justify-content:space-between; gap:12px; padding:18px 24px;
  border-top:1px solid var(--line); color:var(--dim); font-size:13px;
}

@media (max-width:760px){
  .hero h1{font-size:32px}
  .game-layout{justify-content:center}
  .hud{flex-direction:row; flex-wrap:wrap; width:100%}
  .hud-block{flex:1; min-width:100px}
  .hud-help{display:none}
  .touch-pad{
    display:flex; flex-direction:column; align-items:center; gap:6px; margin-top:14px;
  }
  .touch-pad div{display:flex; gap:6px}
  .touch-pad button{
    width:64px; height:52px; font-size:20px; border-radius:12px;
    background:var(--panel); color:var(--neon); border:1px solid var(--line);
  }
  .touch-pad button:active{background:var(--line)}
  .site-footer{flex-direction:column; text-align:center}
}
