:root{
  --ink:#2E2E36;
  --ink-soft:#6E7280;
  --brand:#3B3856;
}
*{
  box-sizing:border-box;
  -webkit-tap-highlight-color:transparent;
  /* 移动端长按会弹出「复制 / 查词 / 翻译」的标注菜单，游戏里不需要 */
  -webkit-user-select:none;
  -moz-user-select:none;
  -ms-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
}
html,body{
  margin:0;padding:0;height:100%;overflow:hidden;
  overscroll-behavior:none;touch-action:none;
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:#D3D8E0;
  color:var(--ink);
  /* 双击缩放和长按标注一并关掉 */
  -webkit-text-size-adjust:100%;
  -webkit-touch-callout:none;
}
#game{
  display:block;position:fixed;inset:0;width:100%;height:100%;
  touch-action:none;
  -webkit-user-select:none;user-select:none;
  -webkit-touch-callout:none;
  pointer-events:auto;
}

/* ---------- 计分（原版样式：左上角深色圆角块） ---------- */
.hud{position:fixed;inset:0;pointer-events:none;z-index:20}

/* ---------- 顶部签名（很轻的一行小字，不抢画面） ---------- */
.topbar{
  position:fixed;top:0;left:0;right:0;z-index:25;
  padding:calc(5px + env(safe-area-inset-top)) 18px 0;
  text-align:center;pointer-events:none;
  font-size:9px;font-weight:700;line-height:1.4;
  letter-spacing:.24em;text-transform:uppercase;
  color:rgba(92,99,118,.58);
  text-shadow:0 1px 2px rgba(255,255,255,.8);
  white-space:nowrap;
}
.hud-top{
  position:absolute;top:0;left:0;right:0;
  padding:calc(22px + env(safe-area-inset-top)) 18px 0;
  display:flex;align-items:flex-start;justify-content:space-between;
}
/* min-width:0 让这一块在 320px 的老机器上能被压缩，不至于把右边的按钮挤出屏幕 */
.score-box{display:flex;align-items:center;gap:10px;min-width:0}
.score{
  min-width:52px;height:52px;padding:0 12px;flex:none;
  display:flex;align-items:center;justify-content:center;
  background:#3A3A44;border-radius:13px;
  color:#fff;font-size:30px;font-weight:700;line-height:1;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.5px;
  box-shadow:0 3px 10px rgba(60,65,80,.22);
}
.best{
  font-size:12.5px;color:#7B8090;font-weight:600;
  background:rgba(255,255,255,.55);
  border-radius:9px;padding:4px 9px;
  min-width:0;overflow:hidden;white-space:nowrap;
}
.icon-btn{
  pointer-events:auto;
  width:42px;height:42px;border-radius:13px;border:0;
  background:rgba(255,255,255,.72);
  font-size:20px;color:#4A4E5C;cursor:pointer;
  box-shadow:0 3px 10px rgba(60,65,80,.16);
  touch-action:manipulation;
}
.hud-btns{display:flex;gap:8px;flex:none}
.icon-btn.off{opacity:.45}
.icon-btn:active{transform:scale(.95)}

/* ---------- 赞助按钮：会流动的彩虹 ---------- */
.icon-btn.sponsor{
  background:linear-gradient(120deg,#FF6B6B,#FFC93C,#5BE3A6,#4D9DFF,#C77DFF,#FF6B6B);
  background-size:300% 300%;
  animation:rainbow 5s linear infinite;
  color:#fff;
  text-shadow:0 1px 2px rgba(90,60,140,.4);
  box-shadow:0 4px 14px rgba(150,110,240,.45);
}
@keyframes rainbow{
  0%{background-position:0% 50%}
  100%{background-position:300% 50%}
}
@media (prefers-reduced-motion:reduce){
  .icon-btn.sponsor{animation:none}
}

/* 顶上一排现在有 4 个按钮，窄屏上把按钮和间距收一点，
 * 免得把「最高 xxx」那块挤没 */
@media (max-width:399px){
  .icon-btn{width:38px;height:38px;border-radius:12px;font-size:18px}
  .hud-btns{gap:6px}
}

/* ---------- 赞助弹窗 ---------- */
.smsk{
  position:fixed;inset:0;z-index:320;
  background:rgba(52,58,74,.5);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;padding:18px;
  overflow:auto;touch-action:auto;
}
.smsk[hidden]{display:none}
.sdlg{
  width:100%;max-width:340px;background:#fff;border-radius:20px;
  padding:20px 18px;text-align:center;
  box-shadow:0 22px 54px rgba(40,48,64,.34);
  animation:rise .2s ease;
}
.sdlg h3{margin:0 0 7px;font-size:19px;color:#2E2E36}
.s-lead{margin:0 0 13px;font-size:12.5px;color:#797E8C;line-height:1.7}
/* 长按要能唤起微信的「识别图中二维码」，所以这两条得显式放行 */
.sp-qr{
  display:block;margin:0 auto 14px;
  width:auto;height:auto;
  max-width:100%;max-height:56vh;
  border-radius:14px;
  -webkit-touch-callout:default;
  -webkit-user-select:auto;user-select:auto;
  touch-action:auto;
}

/* ---------- 提示 ---------- */
.hint{
  position:fixed;left:0;right:0;bottom:calc(58px + env(safe-area-inset-bottom));
  z-index:20;pointer-events:none;text-align:center;
}
.hint-inner{
  display:inline-block;
  background:rgba(255,255,255,.72);
  border-radius:16px;padding:11px 22px;
  box-shadow:0 6px 18px rgba(80,90,110,.14);
}
.hint b{display:block;font-size:15px;color:#3A3E4A}
.hint span{display:block;font-size:12.5px;color:#797E8C;margin-top:3px}

/* ---------- 飘字 ---------- */
.toast{
  position:fixed;left:50%;top:32%;z-index:60;
  transform:translate(-50%,10px) scale(.9);
  font-size:27px;font-weight:800;color:#FFFFFF;
  text-shadow:0 2px 10px rgba(60,70,90,.45), 0 0 2px rgba(60,70,90,.6);
  opacity:0;pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
}
.toast.on{opacity:1;transform:translate(-50%,-14px) scale(1.06)}
.toast.perfect{color:#FFFFFF}

/* ---------- 弹窗 ---------- */
.mask{
  position:fixed;inset:0;z-index:200;
  background:rgba(52,58,74,.4);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;padding:20px;
}
.mask[hidden]{display:none}
.dialog{
  width:100%;max-width:330px;background:#fff;border-radius:20px;
  padding:24px 22px;text-align:center;
  box-shadow:0 22px 54px rgba(40,48,64,.32);
  animation:rise .2s ease;
}
@keyframes rise{from{transform:translateY(14px);opacity:0}to{transform:none;opacity:1}}
.dialog h3{margin:0 0 8px;font-size:20px;color:#2E2E36}
.dialog p{margin:0 0 18px;font-size:14.5px;color:#797E8C;line-height:1.75}
.dialog p b{color:#3B3856;font-size:20px}
.dialog .btn{width:100%}
.dialog .btn + .btn{margin-top:9px}
.btn{
  border:0;border-radius:14px;padding:13px 18px;
  font-size:15.5px;font-weight:700;cursor:pointer;font-family:inherit;
  background:#EDEFF3;color:#3A3E4A;
}
.btn-primary{
  background:linear-gradient(180deg,#4E4C74,#38364F);
  color:#fff;
  box-shadow:0 6px 16px rgba(56,54,79,.3);
}
.btn:active{transform:scale(.985)}
.ad-space{
  border:1.5px solid #F0CF84;border-radius:16px;
  background:linear-gradient(135deg,#FFF6E0 0%,#FFE8B4 100%);
  padding:18px 14px 16px;margin-bottom:14px;
}
.ad-tag{
  display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:2px;
  color:#8A6A12;background:rgba(255,255,255,.78);
  border-radius:999px;padding:3px 11px;
}
.ad-title{margin-top:9px;font-size:16.5px;font-weight:800;color:#5A4410;line-height:1.55}
.ad-sub{margin-top:6px;font-size:11.5px;color:#9C8438;letter-spacing:.3px}
.btn-ad{
  width:100%;background:#fff;color:#8A6A12;
  box-shadow:inset 0 0 0 1.5px #F0CF84, 0 3px 10px rgba(200,160,50,.14);
  margin-bottom:4px;
}

/* ---------- 联系开发者 ---------- */
.cmsk{
  position:fixed;inset:0;z-index:300;
  background:rgba(52,58,74,.44);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;padding:20px;
  touch-action:auto;
}
.cmsk[hidden]{display:none}
.cdlg{
  width:100%;max-width:340px;background:#fff;border-radius:20px;
  padding:22px 20px;text-align:center;
  box-shadow:0 22px 54px rgba(40,48,64,.32);
  animation:rise .2s ease;
  -webkit-user-select:text;user-select:text;
}
.cdlg h3{margin:0 0 8px;font-size:19px;color:#2E2E36}
.c-lead{margin:0 0 15px;font-size:13.5px;color:#797E8C;line-height:1.7}
.c-lead .c-alt{display:block;margin-top:3px;font-size:12.5px;color:#A0A7B6}
.c-gift{
  display:inline-block;margin:-6px 0 12px;
  background:linear-gradient(135deg,#FFF6E0,#FFE8B4);
  border:1px solid #F0CF84;border-radius:999px;
  padding:5px 14px;font-size:12px;font-weight:700;color:#8A6A12;
}
.c-gift.done{background:#EDF7F2;border-color:#BFE3D3;color:#2E9A6A}
.c-tip{margin:-4px 0 12px;font-size:11.5px;color:#A0A7B6;line-height:1.55}
.c-unlocked{display:inline-block;margin-top:6px;font-size:12.5px;font-weight:700;color:#2E9A6A}
.cdlg input,.cdlg textarea{
  display:block;width:100%;
  border:1.5px solid #E3E7EF;border-radius:13px;
  padding:12px 13px;font:inherit;font-size:15px;color:#2E2E36;
  background:#FAFBFD;outline:none;margin-bottom:9px;
  -webkit-user-select:text;user-select:text;-webkit-touch-callout:default;
  touch-action:auto;
}
.cdlg textarea{height:92px;resize:none;line-height:1.6}
.cdlg input:focus,.cdlg textarea:focus{border-color:#4E4C74;background:#fff}
.cdlg input::placeholder,.cdlg textarea::placeholder{color:#A9B0C0}
.c-btn{width:100%}
.c-btn + .c-btn{margin-top:9px}
.c-note{min-height:18px;font-size:12.5px;color:#797E8C;margin-top:8px}
.c-note.bad{color:#E4574A}
.c-done{
  width:56px;height:56px;margin:2px auto 12px;border-radius:50%;
  background:linear-gradient(180deg,#43B581,#2E9A6A);color:#fff;
  font-size:30px;font-weight:700;line-height:56px;
}
/* 掉下去 / 看广告的弹窗底部挂一条小链接 */
.c-mini{
  margin-top:14px;font-size:12.5px;color:#8B92A3;cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;pointer-events:auto;
}

/* 结算弹窗里通往赞赏码的入口（掉下去那个弹窗才有） */
.sp-mini{
  margin-top:12px;
  display:flex;align-items:center;gap:9px;
  padding:10px 11px;border-radius:14px;cursor:pointer;
  background:linear-gradient(135deg,#FFF8E6,#FFE9BC);
  border:1.5px solid #F5D48C;
  box-shadow:0 4px 12px rgba(214,164,58,.18);
  text-align:left;pointer-events:auto;
  transition:transform .12s ease,box-shadow .12s ease;
}
.sp-mini:active{transform:scale(.98);box-shadow:0 2px 6px rgba(214,164,58,.16)}
.sp-mini-i{font-size:17px;line-height:1;flex:none}
.sp-mini-t{flex:1;font-size:12.5px;font-weight:700;color:#7A5A16;line-height:1.35}
.sp-mini-a{
  flex:none;font-size:11.5px;font-weight:800;color:#fff;
  padding:5px 11px;border-radius:999px;
  background:linear-gradient(180deg,#F7B733,#E39A16);
  box-shadow:0 3px 8px rgba(200,140,20,.32);
}

/* 辅助线的免费额度用完时飘一下的提示 */
.aim-tip{
  position:fixed;left:50%;bottom:calc(126px + env(safe-area-inset-bottom));
  z-index:30;pointer-events:none;text-align:center;
  padding:11px 20px;border-radius:15px;
  background:rgba(46,46,54,.9);color:#fff;
  font-size:13.5px;font-weight:700;line-height:1.5;
  box-shadow:0 8px 24px rgba(40,48,64,.32);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
  opacity:0;transform:translate(-50%,10px);
  transition:opacity .28s ease, transform .28s ease;
}
.aim-tip.on{opacity:1;transform:translate(-50%,0)}
.aim-tip span{display:block;margin-top:3px;font-size:11.5px;font-weight:600;color:#C9CEDB}

/* 主页面上的「打开辅助线」入口：贴在最下沿，尽量躲开玩家点屏幕的位置 */
.aim-cta{
  position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));
  transform:translateX(-50%);z-index:25;
  pointer-events:auto;cursor:pointer;
  display:flex;align-items:center;gap:8px;
  max-width:calc(100vw - 32px);
  border:0;border-radius:999px;padding:11px 20px;
  font:inherit;font-size:13.5px;font-weight:800;letter-spacing:.2px;
  color:#5A4410;background:linear-gradient(135deg,#FFD86B,#F7B32B);
  box-shadow:0 6px 20px rgba(220,160,20,.4), inset 0 0 0 1.5px rgba(255,255,255,.5);
  white-space:nowrap;
  animation:cta-in .45s cubic-bezier(.2,.9,.3,1.2) both;
}
.aim-cta[hidden]{display:none}
.aim-cta:active{transform:translateX(-50%) scale(.97)}
.aim-cta-dot{
  width:8px;height:8px;border-radius:50%;background:#E4574A;flex:none;
  box-shadow:0 0 0 0 rgba(228,87,74,.7);
  animation:cta-pulse 1.8s ease-out infinite;
}
@keyframes cta-pulse{
  0%{box-shadow:0 0 0 0 rgba(228,87,74,.65)}
  70%{box-shadow:0 0 0 9px rgba(228,87,74,0)}
  100%{box-shadow:0 0 0 0 rgba(228,87,74,0)}
}
@keyframes cta-in{
  from{opacity:0;transform:translateX(-50%) translateY(14px) scale(.94)}
  to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}
}
@media (prefers-reduced-motion:reduce){
  .aim-cta{animation:none}
  .aim-cta-dot{animation:none}
}
.ad-count{font-size:34px;font-weight:800;color:#3B3856;font-variant-numeric:tabular-nums;line-height:1.1}
.fall-anim{
  margin:2px auto 12px;
  width:132px;height:172px;
  display:flex;align-items:center;justify-content:center;
}
.fall-anim img{max-width:100%;max-height:100%;display:block}
.ad-note{font-size:11.5px;letter-spacing:1px;color:#A6ABB8;margin-top:2px}
.ad-space + .ad-count{margin-top:0}
.dialog .ad-count + .ad-note{margin-bottom:14px}

.qq-watermark{position:fixed;left:50%;top:calc(84px + env(safe-area-inset-top));transform:translateX(-50%);max-width:calc(100% - 24px);z-index:25;padding:8px 16px;border:2px solid #D78C28;border-radius:12px;background:rgba(255,244,210,.96);box-shadow:0 3px 12px rgba(83,55,25,.16);text-align:center;pointer-events:none;white-space:nowrap;font-size:15px;line-height:1.4;font-weight:800;color:#713C18}
.dialog .qq-community,.cdlg .qq-community,.qq-community{margin:14px 0;padding:10px 8px;border:2px solid #D78C28;border-radius:10px;background:#FFF4D2;color:#713C18;font-size:16px;font-weight:800;line-height:1.5;overflow-wrap:anywhere}
