:root{
  --bg:#f4f7ff; --card:#ffffff; --ink:#1f2440; --muted:#7a80a0;
  --brand:#6c5ce7; --brand2:#00cec9; --accent:#ff7675; --yellow:#ffeaa7;
  --shadow:0 8px 24px rgba(60,60,120,.10);
}
*{box-sizing:border-box}
body{margin:0;font-family:'Segoe UI',system-ui,-apple-system,Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);line-height:1.5}
a{color:inherit;text-decoration:none}
.wrap{max-width:1160px;margin:0 auto;padding:0 20px}

.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid #e9ecff}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.logo{font-size:1.5rem;font-weight:800;color:var(--brand)}
.logo span{color:var(--brand2)}
.nav a{margin-left:22px;font-weight:600;color:var(--muted)}
.nav a:hover{color:var(--brand)}

.hero{background:linear-gradient(135deg,#6c5ce7,#00cec9);color:#fff;padding:64px 0;text-align:center}
.hero h1{font-size:2.6rem;margin:0 0 12px;font-weight:800}
.hero p{font-size:1.2rem;max-width:640px;margin:0 auto 26px;opacity:.95}
.btn-hero{display:inline-block;background:#fff;color:var(--brand);font-weight:800;padding:14px 34px;border-radius:40px;font-size:1.1rem;box-shadow:var(--shadow);transition:transform .15s}
.btn-hero:hover{transform:translateY(-3px)}

.section-title{font-size:1.7rem;margin:44px 0 20px}
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px}
.filters button{border:2px solid #e2e6ff;background:#fff;color:var(--muted);font-weight:700;padding:8px 18px;border-radius:30px;cursor:pointer;transition:.15s}
.filters button.active,.filters button:hover{background:var(--brand);color:#fff;border-color:var(--brand)}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;margin-bottom:24px}
.card{background:var(--card);border-radius:20px;overflow:hidden;box-shadow:var(--shadow);transition:transform .18s,box-shadow .18s;cursor:pointer;display:block}
.card:hover{transform:translateY(-6px);box-shadow:0 16px 32px rgba(60,60,120,.16)}
.card .thumb{height:140px;display:flex;align-items:center;justify-content:center;font-size:4rem}
.card .body{padding:14px 16px}
.card h3{margin:0 0 4px;font-size:1.1rem}
.card p{margin:0;color:var(--muted);font-size:.9rem}
.tag{display:inline-block;margin-top:8px;font-size:.72rem;font-weight:700;color:var(--brand);background:#eef0ff;padding:3px 10px;border-radius:20px}

.site-footer{background:#1f2440;color:#cfd3f0;margin-top:56px;padding:32px 0;text-align:center}
.site-footer .muted{color:#8b90b8;font-size:.9rem}

/* in-game shell */
.game-shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;background:var(--bg)}
.game-bar{width:100%;background:#fff;border-bottom:1px solid #e9ecff}
.game-bar .inner{max-width:800px;margin:0 auto;display:flex;align-items:center;gap:16px;padding:12px 20px}
.game-bar a.back{font-weight:700;color:var(--brand)}
.game-bar h1{font-size:1.2rem;margin:0}
.game-area{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;gap:14px;width:100%}
.score{font-weight:800;font-size:1.2rem}
.btn{background:var(--brand);color:#fff;border:none;font-weight:700;padding:10px 22px;border-radius:30px;cursor:pointer;font-size:1rem}
.btn:hover{filter:brightness(1.08)}
canvas{background:#fff;border-radius:16px;box-shadow:var(--shadow);touch-action:none;max-width:100%}
@media(max-width:600px){.hero h1{font-size:2rem}.nav{display:none}}
