/* 风游汇小游戏统一外观：透明舞台 + 柔光 + 玻璃 HUD + 开场卡。配合 _fx.js 使用。
   页面底色一律透明：播放壳（play.html）在 iframe 后面铺该游戏的模糊封面，游戏画布浮在上面；
   各游戏 canvas 自带底色，《风炮防线》的战场底图画在 canvas 里，不受影响。
   color-scheme 与播放壳一致（都是 dark），iframe 才能保持透明；单独打开时浏览器给深色底而不是白底。 */
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
html{color-scheme:dark}
html,body{margin:0;height:100%;overflow:hidden;background:transparent;color:#fff;font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",Arial,sans-serif;touch-action:none}
html body{background:transparent}
body::before{content:"";position:fixed;inset:0;pointer-events:none;background-image:
  linear-gradient(rgba(240,212,138,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(240,212,138,.03) 1px,transparent 1px);
  background-size:28px 28px;mask-image:radial-gradient(ellipse at center,#000 40%,transparent 80%);-webkit-mask-image:radial-gradient(ellipse at center,#000 40%,transparent 80%)}
.stage{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px}
.hud{position:absolute;top:10px;left:0;right:0;display:flex;justify-content:center;gap:8px;font-size:13px;color:#8fa4bb;pointer-events:none;z-index:3;padding:0 10px;flex-wrap:wrap}
.hud span{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(6px)}
.hud b{color:#fff;font-variant-numeric:tabular-nums;font-size:14px}
.hud .warn{color:#ff8a3d}
.hud .combo{color:#ffd166}
.tip{position:absolute;bottom:14px;left:0;right:0;text-align:center;font-size:12px;color:#5b7088;pointer-events:none;z-index:3}
canvas{display:block;border-radius:18px;background:#0f1a2b;box-shadow:0 18px 50px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.06) inset;max-width:100%;max-height:100%}
.board{box-shadow:0 18px 50px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.06) inset}
/* 开场卡 */
.start{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;background:rgba(5,10,20,.62);backdrop-filter:blur(6px);cursor:pointer;z-index:8}
.start[hidden]{display:none}
.start .card{display:flex;flex-direction:column;align-items:center;gap:12px;padding:26px 24px 22px;border-radius:24px;background:linear-gradient(180deg,rgba(26,38,62,.95),rgba(14,22,40,.95));border:1px solid rgba(255,255,255,.1);box-shadow:0 24px 60px rgba(0,0,0,.55);max-width:340px;width:calc(100% - 40px);text-align:center;animation:cardIn .5s cubic-bezier(.2,.9,.3,1.2) both}
.start .icon{width:84px;height:84px;border-radius:24px;display:grid;place-items:center;background:linear-gradient(135deg,#f0d48a,#c4923a);color:#1a1204;box-shadow:0 12px 30px rgba(196,146,58,.35);font-size:40px}
.start .icon canvas,.start .icon svg{width:84px;height:84px;border-radius:24px}
.start h2{margin:0;font-size:24px;letter-spacing:1px;background:linear-gradient(90deg,#fff6df,#e2b657);-webkit-background-clip:text;background-clip:text;color:transparent}
.start p{margin:0;color:#c6d3e2;font-size:14px;line-height:1.65;padding:0 4px}
.start .best{font-size:12px;color:#8fa4bb;display:flex;gap:14px}
.start .best b{color:#ffd166}
.start .go{padding:13px 38px;border-radius:999px;border:0;background:linear-gradient(135deg,#f0d48a,#c4923a);color:#1a1204;font-weight:800;font-size:16px;box-shadow:0 10px 24px rgba(196,146,58,.35);transition:transform .12s}
.start .go:active{transform:scale(.96)}
.start .hint{font-size:12px;color:#5b7088}
@keyframes cardIn{from{opacity:0;transform:translateY(24px) scale(.94)}to{opacity:1;transform:none}}
/* 结束 / 过关 内嵌提示（可选） */
.banner{position:absolute;left:50%;top:14%;transform:translate(-50%,-50%) scale(.6);opacity:0;font-size:30px;font-weight:900;color:#ffd166;text-shadow:0 4px 20px rgba(0,0,0,.6);pointer-events:none;z-index:7;transition:all .25s cubic-bezier(.2,.9,.3,1.3)}
.banner.show{transform:translate(-50%,-50%) scale(1);opacity:1}
.fx-pop{font-family:inherit}
