*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;user-select:none}
html,body{width:100%;height:100%;overflow:hidden;font-family:'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;background:#1a0a2e}
#app{width:100%;height:100%;position:relative;overflow:hidden}
.page{position:absolute;top:0;left:0;width:100%;height:100%;display:none;flex-direction:column;align-items:center;justify-content:center}
.page.active{display:flex}

#page-start{background:linear-gradient(180deg,#1a0a2e 0%,#2d1b4e 30%,#3d1b5e 60%,#1a0a2e 100%);overflow:hidden}
#page-start::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 50% 30%,rgba(251,191,36,0.1),transparent 50%),radial-gradient(circle at 30% 70%,rgba(168,85,247,0.08),transparent 40%),radial-gradient(circle at 70% 50%,rgba(236,72,153,0.06),transparent 35%);z-index:0}
#page-start::after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:repeating-linear-gradient(0deg,transparent,transparent 80px,rgba(251,191,36,0.02) 80px,rgba(251,191,36,0.02) 81px),repeating-linear-gradient(90deg,transparent,transparent 80px,rgba(251,191,36,0.02) 80px,rgba(251,191,36,0.02) 81px),repeating-linear-gradient(45deg,transparent,transparent 120px,rgba(168,85,247,0.015) 120px,rgba(168,85,247,0.015) 121px);z-index:0;pointer-events:none}
.start-content{position:relative;z-index:1;text-align:center;padding:20px;max-width:400px;width:90%}
.start-icon{font-size:72px;animation:iconFloat 3s ease-in-out infinite;filter:drop-shadow(0 8px 30px rgba(251,191,36,0.4))}
@keyframes iconFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-10px) scale(1.05)}}
.start-title{font-size:36px;background:linear-gradient(135deg,#fbbf24,#f97316);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:10px 0 4px;letter-spacing:4px}
.start-sub{font-size:14px;color:rgba(251,191,36,0.5);letter-spacing:8px;margin-bottom:24px}
.start-rules{background:rgba(251,191,36,0.08);border:1px solid rgba(251,191,36,0.2);border-radius:16px;padding:16px;margin-bottom:24px;text-align:left}
.rule-item{display:flex;align-items:center;gap:10px;padding:6px 0;color:rgba(255,255,255,0.8);font-size:14px}
.rule-emoji{font-size:20px;flex-shrink:0;width:28px;text-align:center}
.btn-start{display:block;width:100%;padding:16px;border:none;border-radius:25px;font-size:20px;font-weight:bold;cursor:pointer;background:linear-gradient(135deg,#fbbf24,#f97316);color:#fff;letter-spacing:4px;box-shadow:0 4px 20px rgba(251,191,36,0.4);transition:transform .15s;margin-bottom:12px}
.btn-start:active{transform:scale(0.95)}
.btn-back{display:block;width:100%;padding:12px;border:1px solid rgba(251,191,36,0.3);border-radius:25px;font-size:14px;cursor:pointer;background:rgba(251,191,36,0.1);color:rgba(255,255,255,0.7);letter-spacing:2px;transition:transform .15s}
.btn-back:active{transform:scale(0.95)}

#page-game{background:#1a0a2e;position:relative;overflow:hidden}
#page-game::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:repeating-linear-gradient(0deg,transparent,transparent 60px,rgba(251,191,36,0.03) 60px,rgba(251,191,36,0.03) 61px),repeating-linear-gradient(90deg,transparent,transparent 60px,rgba(251,191,36,0.03) 60px,rgba(251,191,36,0.03) 61px),repeating-linear-gradient(45deg,transparent,transparent 85px,rgba(168,85,247,0.02) 85px,rgba(168,85,247,0.02) 86px),repeating-linear-gradient(-45deg,transparent,transparent 85px,rgba(168,85,247,0.02) 85px,rgba(168,85,247,0.02) 86px);pointer-events:none;z-index:0}
#page-game::after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 20% 80%,rgba(168,85,247,0.08),transparent 40%),radial-gradient(circle at 80% 20%,rgba(251,191,36,0.06),transparent 35%),radial-gradient(circle at 50% 50%,rgba(249,115,22,0.04),transparent 50%),radial-gradient(circle at 10% 30%,rgba(236,72,153,0.05),transparent 30%),radial-gradient(circle at 90% 70%,rgba(96,165,250,0.04),transparent 30%);pointer-events:none;z-index:0}
.game-top{width:100%;padding:28px 14px 10px;flex-shrink:0;position:relative;z-index:1}
.game-info{display:flex;justify-content:space-between;align-items:center;color:#fbbf24;font-size:14px;text-shadow:1px 1px 2px #000}
.game-info .level-name{font-size:16px;letter-spacing:2px}
.game-info .score{color:#f97316}
.progress-bar{width:100%;height:14px;background:rgba(0,0,0,0.4);border-radius:7px;margin-top:6px;overflow:hidden;position:relative;border:1px solid rgba(251,191,36,0.15)}
.progress-fill{height:100%;border-radius:7px;transition:width .3s;background:linear-gradient(90deg,#fbbf24,#f97316)}
.progress-text{position:absolute;top:0;left:50%;transform:translateX(-50%);font-size:10px;line-height:14px;color:#fff;text-shadow:0 0 3px #000}

.game-board-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:8px;min-height:0;overflow:hidden;position:relative;z-index:1}
.game-board{display:grid;gap:6px;perspective:800px}

.card{position:relative;cursor:pointer;transform-style:preserve-3d;transition:transform .4s}
.card.flipped{transform:rotateY(180deg)}
.card.matched{transform:rotateY(180deg);pointer-events:none}
.card.matched .card-front{box-shadow:0 0 15px rgba(34,197,94,0.5);border-color:rgba(34,197,94,0.6)}
.card-face{position:absolute;top:0;left:0;width:100%;height:100%;backface-visibility:hidden;border-radius:10px;display:flex;align-items:center;justify-content:center}
.card-back{background:linear-gradient(145deg,#2d1b4e,#1a0a2e);border:2px solid rgba(251,191,36,0.25);box-shadow:0 4px 12px rgba(0,0,0,0.3),inset 0 1px 0 rgba(255,255,255,0.05)}
.card-back-pattern{font-size:20px;color:rgba(251,191,36,0.3)}
.card-front{transform:rotateY(180deg);background:linear-gradient(145deg,#2d1b4e,#1a0a2e);border:2px solid rgba(251,191,36,0.4);box-shadow:0 4px 12px rgba(0,0,0,0.3)}
.card-emoji{font-size:28px;filter:drop-shadow(0 2px 4px rgba(0,0,0,0.3))}

.card .memory-mark{position:absolute;bottom:2px;right:2px;width:6px;height:6px;border-radius:50%;background:rgba(251,191,36,0.4);opacity:0;transition:opacity .3s}
.card.has-mark .memory-mark{opacity:1}
.card.strong-mark .memory-mark{opacity:1;background:rgba(251,191,36,0.9);width:8px;height:8px}

.card.chain-anim{animation:chainPop .6s ease-out}
@keyframes chainPop{0%{transform:rotateY(180deg) scale(1)}30%{transform:rotateY(180deg) scale(1.15);box-shadow:0 0 20px rgba(249,115,22,0.6)}100%{transform:rotateY(180deg) scale(1)}}

.game-bottom{width:100%;padding:8px 12px;display:flex;justify-content:center;gap:8px;flex-shrink:0;background:linear-gradient(transparent,rgba(26,10,46,0.8));position:relative;z-index:1}
.game-decor{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}
.decor-dot{position:absolute;width:4px;height:4px;border-radius:50%;background:rgba(251,191,36,0.35);animation:dotPulse 3s ease-in-out infinite}
@keyframes dotPulse{0%,100%{opacity:0.2;transform:scale(1)}50%{opacity:0.8;transform:scale(1.8)}}
.decor-line{position:absolute;height:1px;background:linear-gradient(90deg,rgba(251,191,36,0.15),transparent);pointer-events:none}
.decor-line[style*="right:0"]{background:linear-gradient(270deg,rgba(251,191,36,0.15),transparent)}
.decor-corner{position:absolute;width:24px;height:24px;pointer-events:none;z-index:1}
.decor-corner::before,.decor-corner::after{content:'';position:absolute;background:rgba(251,191,36,0.2)}
.decor-corner::before{width:24px;height:1px}
.decor-corner::after{width:1px;height:24px}
.decor-tl{top:8px;left:8px}.decor-tl::before{top:0;left:0}.decor-tl::after{top:0;left:0}
.decor-tr{top:8px;right:8px}.decor-tr::before{top:0;right:0}.decor-tr::after{top:0;right:0}
.decor-bl{bottom:8px;left:8px}.decor-bl::before{bottom:0;left:0}.decor-bl::after{bottom:0;left:0}
.decor-br{bottom:8px;right:8px}.decor-br::before{bottom:0;right:0}.decor-br::after{bottom:0;right:0}
.decor-ring{position:absolute;width:40px;height:40px;border:1px solid rgba(168,85,247,0.15);border-radius:50%;pointer-events:none;animation:ringRotate 8s linear infinite}
@keyframes ringRotate{0%{transform:rotate(0deg);opacity:0.3}50%{opacity:0.6}100%{transform:rotate(360deg);opacity:0.3}}
.decor-cross{position:absolute;width:16px;height:16px;pointer-events:none;opacity:0.2}
.decor-cross::before,.decor-cross::after{content:'';position:absolute;background:rgba(251,191,36,0.4)}
.decor-cross::before{width:16px;height:1px;top:50%;left:0}
.decor-cross::after{width:1px;height:16px;left:50%;top:0}
.tool-btn{width:48px;height:48px;border-radius:12px;border:2px solid rgba(251,191,36,0.3);background:linear-gradient(135deg,rgba(251,191,36,0.15),rgba(26,10,46,0.8));color:#fbbf24;font-size:18px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;transition:transform .15s}
.tool-btn:active{transform:scale(0.9)}
.tool-btn .tool-label{font-size:8px;margin-top:1px;color:rgba(255,255,255,0.5)}
.tool-btn .tool-count{position:absolute;top:-4px;right:-4px;background:linear-gradient(135deg,#f97316,#fbbf24);color:#fff;font-size:10px;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:bold}
.tool-btn .ad-badge{position:absolute;bottom:1px;right:1px;background:#a855f7;color:#fff;font-size:7px;padding:0 3px;border-radius:3px}
.tool-btn:disabled{opacity:0.4;cursor:default}
.pause-btn-sm{width:48px;height:48px;border-radius:12px;border:2px solid rgba(255,255,255,0.15);background:rgba(26,10,46,0.6);color:#fbbf24;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}

#page-clear,#page-fail{background:rgba(26,10,46,0.95);backdrop-filter:blur(10px)}
.over-content{text-align:center;padding:20px;max-width:360px;width:90%}
.over-icon{font-size:64px}
.over-title{font-size:32px;margin:8px 0 4px;letter-spacing:4px}
.clear-title{color:#22c55e;text-shadow:0 0 20px rgba(34,197,94,0.5)}
.fail-title{color:#ef4444;text-shadow:0 0 20px rgba(239,68,68,0.5)}
.over-sub{font-size:12px;color:rgba(255,255,255,0.3);letter-spacing:6px;margin-bottom:20px}
.result-row{display:flex;gap:12px;margin-bottom:20px}
.result-item{flex:1;background:rgba(251,191,36,0.1);border:1px solid rgba(251,191,36,0.2);border-radius:12px;padding:10px}
.result-label{font-size:11px;color:rgba(255,255,255,0.5);margin-bottom:4px}
.result-value{font-size:24px;font-weight:bold;color:#fbbf24;text-shadow:0 0 10px rgba(251,191,36,0.5)}
.coin-val{color:#f97316;text-shadow:0 0 10px rgba(249,115,22,0.5)}
.btn-restart{display:block;width:100%;padding:14px;border:none;border-radius:25px;font-size:18px;font-weight:bold;cursor:pointer;background:linear-gradient(135deg,#fbbf24,#f97316);color:#fff;letter-spacing:3px;box-shadow:0 4px 20px rgba(251,191,36,0.4);margin-bottom:12px;transition:transform .15s}
.btn-restart:active{transform:scale(0.95)}

.pause-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(26,10,46,0.85);backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;z-index:50;flex-direction:column;gap:16px}
.pause-overlay.active{display:flex}
.pause-title{font-size:32px;color:#fbbf24;text-shadow:0 0 20px rgba(251,191,36,0.5);letter-spacing:6px;margin-bottom:10px}
.pause-btn{padding:14px 40px;border:2px solid rgba(251,191,36,0.4);border-radius:25px;font-size:16px;cursor:pointer;background:linear-gradient(135deg,rgba(251,191,36,0.2),rgba(26,10,46,0.8));color:#fbbf24;letter-spacing:3px;transition:transform .15s;min-width:200px}
.pause-btn:active{transform:scale(0.95)}
.pause-btn.primary{background:linear-gradient(135deg,#fbbf24,#f97316);color:#fff;border:none;box-shadow:0 4px 20px rgba(251,191,36,0.4)}

@media(max-height:600px){
  .tool-btn{width:42px;height:42px;font-size:16px}
  .game-info{font-size:12px}
  .card-emoji{font-size:22px}
}

.hidden{display:none!important}

.overlay-mc{
  position:fixed;top:0;left:0;width:100%;height:100%;
  background:rgba(26,10,46,.88);display:flex;align-items:center;justify-content:center;
  z-index:9999;backdrop-filter:blur(8px);animation:fadeInMc .25s ease
}
@keyframes fadeInMc{from{opacity:0}to{opacity:1}}

.ad-loading-content-mc{
  display:flex;flex-direction:column;align-items:center;gap:20px;
  padding:44px 56px;border-radius:24px;
  background:linear-gradient(160deg,rgba(45,27,78,.95),rgba(26,10,46,.95));
  border:2px solid rgba(251,191,36,.25);
  box-shadow:0 12px 40px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.05)
}

.ad-loading-spinner-mc{
  width:50px;height:50px;border:4px solid rgba(251,191,36,.15);
  border-top-color:#fbbf24;border-radius:50%;
  animation:spinMc 1s linear infinite;
  box-shadow:0 0 20px rgba(251,191,36,.3)
}
@keyframes spinMc{to{transform:rotate(360deg)}}

.ad-loading-text-mc{
  font-size:20px;color:#fbbf24;font-weight:bold;
  letter-spacing:3px;text-shadow:0 0 10px rgba(251,191,36,.4)
}

.ad-loading-tip-mc{
  font-size:14px;color:rgba(251,191,36,.4)
}