/* Mahjong - Style */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --bg:#1a0f08;--bg2:#2a1a10;--card:#3a2214;--border:#5a3a1a;
  --text:#f0e6d2;--text2:#c8b898;--accent:#e63946;--accent2:#f4a261;
  --gold:#e6b422;--gold2:#c08a1e;--green:#2a9d8f;
  --radius:12px;--shadow:0 4px 20px rgba(0,0,0,.4);
  --font:'Microsoft YaHei','PingFang SC','Noto Sans SC',sans-serif;
}
[data-theme="light"]{
  --bg:#fdf6ec;--bg2:#f5e6c8;--card:#fff;--border:#d4b896;
  --text:#3a2214;--text2:#6a4a34;--accent:#c62828;--accent2:#b8731b;
  --gold:#b8860b;--gold2:#8b6914;--green:#1b7a6e;
}

html{font-size:16px;scroll-behavior:smooth}
body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.7;min-height:100vh}

.wrap{max-width:900px;margin:0 auto;padding:0 20px}

/* ─── Header ─── */
header{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 0;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:12px;
}
.logo{
  display:flex;align-items:center;gap:10px;font-size:1.2rem;font-weight:700;
  color:var(--gold);text-decoration:none;
}
nav{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
nav>a{color:var(--text2);text-decoration:none;font-size:.9rem;transition:color .2s}
nav>a:hover{color:var(--gold)}
.lang-sel{position:relative}
.lang-btn{
  background:var(--card);border:1px solid var(--border);color:var(--text);
  padding:6px 12px;border-radius:6px;cursor:pointer;font-size:.85rem;
}
.lang-menu{
  display:none;position:absolute;top:100%;right:0;background:var(--card);
  border:1px solid var(--border);border-radius:8px;z-index:100;
  min-width:150px;box-shadow:var(--shadow);padding:4px 0;
}
.lang-sel:hover .lang-menu,.lang-menu:hover{display:block}
.lang-menu a{display:block;padding:8px 16px;color:var(--text);text-decoration:none;font-size:.85rem}
.lang-menu a:hover{background:var(--bg2);color:var(--gold)}
.theme-btn{
  background:var(--card);border:1px solid var(--border);color:var(--text);
  padding:6px 10px;border-radius:6px;cursor:pointer;font-size:1rem;
}

/* ─── Hero ─── */
.hero{text-align:center;padding:40px 0 20px}
.hero h1{
  font-size:2.8rem;font-weight:900;
  background:linear-gradient(135deg,var(--gold),var(--accent2));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
}
.hero p{color:var(--text2);font-size:1.05rem;max-width:650px;margin:12px auto 0}

/* ─── Game Area ─── */
.game-area{background:var(--card);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-bottom:32px;text-align:center}
.score-row{display:flex;justify-content:center;gap:16px;margin-bottom:16px;flex-wrap:wrap}
.score-box{
  background:var(--bg2);border-radius:10px;padding:10px 20px;text-align:center;min-width:80px;
}
.score-box .label{font-size:.75rem;color:var(--text2);text-transform:uppercase;letter-spacing:.5px}
.score-box .val{font-size:1.5rem;font-weight:700;color:var(--gold)}
#game-canvas{display:block;margin:0 auto;max-width:100%;height:auto;border-radius:8px;cursor:pointer}
.action-row{display:flex;justify-content:center;gap:10px;margin-top:16px;flex-wrap:wrap}
.action-btn{
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  border:none;color:#fff;padding:10px 16px;border-radius:8px;
  cursor:pointer;font-size:.85rem;font-weight:600;transition:transform .15s,opacity .2s,box-shadow .2s;
  box-shadow:0 2px 8px rgba(0,0,0,.3);
}
.action-btn:hover{transform:translateY(-2px);opacity:.9;box-shadow:0 4px 14px rgba(0,0,0,.4)}
.action-btn:active{transform:translateY(0)}

/* Difficulty Selector */
.diff-row{display:flex;justify-content:center;gap:8px;margin-bottom:12px}
.diff-btn{
  background:var(--bg2);border:1px solid var(--border);color:var(--text2);
  padding:6px 14px;border-radius:20px;cursor:pointer;font-size:.8rem;font-weight:600;
  transition:all .2s;
}
.diff-btn:hover{color:var(--gold);border-color:var(--gold)}
.diff-btn.active{
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  color:#fff;border-color:transparent;box-shadow:0 2px 10px rgba(230,57,70,.4);
}

/* Combo */
.combo-pop{animation:comboPop .3s ease-out}
@keyframes comboPop{0%{transform:scale(1.3);color:#ffd600}100%{transform:scale(1);color:var(--gold)}}

/* ─── How to Play ─── */
.how-to,.controls-guide{
  background:var(--card);border-radius:var(--radius);padding:24px;margin-bottom:24px;
}
.how-to h3,.controls-guide h3{color:var(--gold);margin-bottom:8px;font-size:1.1rem}
.how-to p{color:var(--text2)}
.controls-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:12px}
.control-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg2);border-radius:6px}
.control-key{font-weight:700;color:var(--gold);font-size:.85rem;white-space:nowrap}
.control-desc{color:var(--text2);font-size:.85rem}

/* ─── Highlights Cards ─── */
.highlights{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:32px}
.card{background:var(--card);border-radius:var(--radius);padding:20px;border:1px solid var(--border);transition:transform .2s}
.card:hover{transform:translateY(-3px)}
.card h3{color:var(--gold);margin-bottom:8px;font-size:1.05rem}
.card p{color:var(--text2);font-size:.9rem}

/* ─── FAQ ─── */
.faq{margin-bottom:32px}
.faq details{background:var(--card);border-radius:var(--radius);padding:0;margin-bottom:10px;overflow:hidden}
.faq summary{
  padding:16px 20px;cursor:pointer;font-weight:600;color:var(--gold);
  list-style:none;user-select:none;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:'▸ ';display:inline-block;transition:transform .2s}
.faq details[open] summary::before{content:'▾ '}
.faq details p{padding:0 20px 16px;color:var(--text2);font-size:.9rem}

/* ─── Footer ─── */
footer{text-align:center;padding:24px 0;border-top:1px solid var(--border);color:var(--text2);font-size:.85rem}
footer a{color:var(--gold);text-decoration:none}
footer a:hover{text-decoration:underline}

/* ─── Cookie Banner ─── */
.cookie{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);
  background:var(--card);border:1px solid var(--border);border-radius:10px;
  padding:14px 20px;display:flex;align-items:center;gap:16px;
  box-shadow:var(--shadow);z-index:999;font-size:.85rem;
}
.cookie.hidden{display:none}
.cookie button{
  background:var(--accent);color:#fff;border:none;padding:6px 16px;
  border-radius:6px;cursor:pointer;font-weight:600;white-space:nowrap;
}

/* ─── About / Privacy Pages ─── */
.page-content{background:var(--card);border-radius:var(--radius);padding:32px;margin:24px 0}
.page-content h2{color:var(--gold);margin-bottom:16px;font-size:1.4rem}
.page-content h3{color:var(--gold);margin:20px 0 10px;font-size:1.1rem}
.page-content p,.page-content li{color:var(--text2);margin-bottom:8px}
.page-content ul{padding-left:20px;margin-bottom:16px}

/* ─── 404 ─── */
._404{text-align:center;padding:80px 20px}
._404 h2{font-size:5rem;color:var(--gold)}
._404 p{color:var(--text2);font-size:1.1rem;margin:16px 0}
._404 a{color:var(--accent);text-decoration:none;font-weight:600}

/* ─── Responsive ─── */
@media(max-width:700px){
  .hero h1{font-size:2rem}
  .score-row{gap:8px}
  .score-box{padding:8px 12px;min-width:60px}
  .score-box .val{font-size:1.2rem}
  .action-btn{padding:8px 12px;font-size:.8rem}
  .highlights{grid-template-columns:1fr}
}
