:root{
  --bg:#08080a;
  --panel:#121216;
  --panel-2:#17171c;
  --line:#26262e;
  --text:#e9e7e4;
  --dim:#8f8d97;
  --accent:#d8453f;
  --accent-2:#f0a35e;
  --calm:#5fb4c9;
  --ok:#5fbf8b;
  --radius:16px;
  --safe-b:env(safe-area-inset-bottom,0px);
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
[hidden]{display:none !important}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text)}
body{
  font-family:system-ui,-apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  font-size:16px;line-height:1.7;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  overflow-x:hidden;
  background-image:radial-gradient(120% 60% at 50% 0%,#15151b 0%,#08080a 60%);
}
b,strong{font-weight:600}

#app{max-width:560px;margin:0 auto;padding:0 18px calc(24px + var(--safe-b));position:relative;min-height:100vh}
.screen{display:none;padding-top:22px}
.screen.is-active{display:block;animation:fade .28s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.wrap{display:flex;flex-direction:column;gap:12px}

.kicker{color:var(--dim);font-size:12.5px;letter-spacing:.06em;margin:0}
.logo{
  font-size:56px;line-height:1;margin:6px 0 2px;letter-spacing:.18em;
  font-weight:600;text-shadow:0 0 28px rgba(216,69,63,.28);
}
.logo span{display:block;font-size:12px;letter-spacing:.44em;color:var(--dim);margin-top:10px;font-weight:400}
.tagline{font-size:20px;margin:6px 0 0;color:var(--accent-2);letter-spacing:.04em}
.lede{color:#c9c7cd;font-size:14.5px;margin:4px 0 8px}

.field{display:flex;flex-direction:column;gap:6px;margin:2px 0}
.field>span{font-size:13px;color:var(--dim)}
.field input{
  width:100%;padding:14px 15px;border-radius:12px;border:1px solid var(--line);
  background:var(--panel);color:var(--text);font-size:16px;font-family:inherit;
}
.field input::placeholder{color:#5c5a63}
.field input:focus{outline:none;border-color:#4a4a58;background:var(--panel-2)}

.btn{
  appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--text);
  font-family:inherit;font-size:16px;min-height:52px;padding:12px 16px;border-radius:14px;
  width:100%;margin:6px 0 0;cursor:pointer;transition:transform .06s ease,background .15s ease,border-color .15s ease;
}
.btn:active{transform:scale(.985)}
.btn.primary{background:linear-gradient(180deg,#d8453f,#b5322d);border-color:#e05952;font-weight:600;box-shadow:0 10px 28px rgba(216,69,63,.22)}
.btn.ghost{background:transparent;color:#c9c7cd}
.btn.ghost[aria-pressed="true"]{border-color:var(--calm);color:var(--calm)}
.btn.big{min-height:58px;font-size:17px}
.btn.small{min-height:44px;font-size:14px;width:auto;padding:8px 14px}
.btn:disabled{opacity:.5}
.row{display:flex;gap:10px;flex-wrap:wrap}
.row .btn{flex:1 1 46%;width:auto}

.stats{margin-top:14px;border-top:1px solid var(--line);padding-top:12px;color:#b9b7bf;font-size:13.5px;display:flex;flex-direction:column;gap:4px}
.fineprint{color:#6f6d78;font-size:12.5px;line-height:1.65;margin:6px 0 0}

/* ---------- 游戏页 ---------- */
.hud{display:flex;gap:8px;justify-content:space-between}
.hud-item{flex:1;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 10px;text-align:center}
.hud-item span{display:block;font-size:11px;color:var(--dim);letter-spacing:.04em}
.hud-item b{font-size:19px;font-variant-numeric:tabular-nums}
.attbar{height:6px;border-radius:99px;background:#1d1d24;margin:10px 0 6px;overflow:hidden}
#attFill{height:100%;width:8%;background:var(--accent);transition:width .5s cubic-bezier(.2,.7,.3,1),background .4s ease}
.attword{margin:0;font-size:12.5px;color:var(--dim);text-align:right}

.scene{margin-top:18px}
.scene-no{font-size:12px;color:var(--dim);margin:0;letter-spacing:.08em}
.scene h2{font-size:22px;margin:6px 0 10px;letter-spacing:.02em}
.scene-text{margin:0;color:#dedce2;font-size:16px}
.entity{
  margin:16px 0 18px;padding:12px 14px;border-left:2px solid var(--accent);
  background:linear-gradient(90deg,rgba(216,69,63,.09),transparent);border-radius:0 12px 12px 0;
  color:#f2d9d7;font-size:15px;min-height:0;
}
.entity:empty{display:none}
.options{display:flex;flex-direction:column;gap:4px}
.opt{
  text-align:left;background:var(--panel);border:1px solid var(--line);color:var(--text);
  font-family:inherit;font-size:15.5px;padding:15px 16px;border-radius:14px;width:100%;
  min-height:56px;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .06s ease;
}
.opt:active{transform:scale(.99);background:var(--panel-2)}
.opt em{display:block;font-style:normal;font-size:12.5px;color:var(--dim);margin-top:3px}
.opt.talk{border-left:3px solid var(--accent)}
.opt.quiet{border-left:3px solid var(--calm)}
.opt.dare{border-left:3px solid var(--accent-2)}
.note{margin:14px 0 0;font-size:13px;color:var(--dim)}

.voice-box{margin-top:14px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px}
.voice-hint{margin:0 0 10px;font-size:13px;color:var(--calm)}
.btn.shout{background:linear-gradient(180deg,#e0592f,#c0401f);border-color:#f0703f;font-weight:600;user-select:none}
.btn.shout.on{background:linear-gradient(180deg,#ff7b3d,#e0592f);transform:scale(.98)}
.vu{height:6px;border-radius:99px;background:#1d1d24;margin-top:12px;overflow:hidden}
#vuFill{height:100%;width:0;background:var(--accent-2);transition:width .08s linear}
.gamefoot{margin-top:22px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.inv{font-size:12.5px;color:var(--calm)}

/* ---------- 结算卡片 ---------- */
.card{
  background:linear-gradient(160deg,#17171d,#101014);border:1px solid var(--line);
  border-radius:20px;padding:22px 20px;box-shadow:0 20px 50px rgba(0,0,0,.5);
}
.card-kicker{margin:0;font-size:12px;color:var(--dim);letter-spacing:.1em}
.card h2{margin:8px 0 6px;font-size:27px;letter-spacing:.02em;line-height:1.3}
.card-desc{margin:0 0 14px;color:#c9c7cd;font-size:14.5px}
.card-rows{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}
.card-rows div{background:#1b1b21;border-radius:11px;padding:9px 11px}
.card-rows span{display:block;font-size:11.5px;color:var(--dim)}
.card-rows b{font-size:17px;font-variant-numeric:tabular-nums}
.card-last{margin:14px 0 12px;font-size:14px;color:#d9b9b7;border-top:1px dashed #33333d;padding-top:13px}
.card-last b{color:#fff}
.card-sign{margin:0;font-size:11.5px;color:#55535d;letter-spacing:.08em}

/* 结算页底部的跨站导流卡（短剧） */
.cross{margin:14px 0 0;padding:15px;border:1px solid var(--line);border-radius:14px;
  background:linear-gradient(160deg,#15151b,#101014);display:grid;gap:6px}
.cross-k{margin:0;font-size:12px;color:var(--dim);letter-spacing:.08em}
.cross-t{margin:0;font-size:13.5px;color:#c9c7cd;line-height:1.72}
.cross .btn{margin-top:6px}
.cross-code{margin:2px 0 0;font-size:21px;font-weight:700;letter-spacing:.12em;color:var(--accent-2)}
.cross-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.cross-row .btn{flex:1 1 46%;width:auto;margin-top:0}

/* ---------- 面板 ---------- */
.sheet{position:fixed;inset:0;z-index:80;display:flex;align-items:flex-end;justify-content:center}
.sheet-mask{position:absolute;inset:0;background:rgba(0,0,0,.66)}
.sheet-body{
  position:relative;width:100%;max-width:560px;background:var(--panel);
  border-radius:20px 20px 0 0;padding:22px 20px calc(22px + var(--safe-b));
  border-top:1px solid var(--line);animation:up .24s ease;max-height:92vh;overflow:auto;
}
@keyframes up{from{transform:translateY(30px)}to{transform:none}}
.sheet h3{margin:0 0 12px;font-size:19px}
.perks{margin:0 0 12px;padding-left:20px;color:#c9c7cd;font-size:14px;display:flex;flex-direction:column;gap:4px}
.price{font-size:24px;margin:6px 0 12px;color:var(--accent-2);font-weight:600}
.ad-player{
  height:150px;border:1px dashed #3a3a45;border-radius:14px;display:flex;
  flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#101015;margin-bottom:12px;
}
#adCount{font-size:34px;font-variant-numeric:tabular-nums;color:var(--dim)}
.ad-player small{color:#5c5a63;font-size:12px}
.qr{display:block;margin:0 auto 10px;width:180px;height:180px;border-radius:12px;background:#fff;padding:6px}

.toast{
  position:fixed;left:50%;bottom:calc(28px + var(--safe-b));transform:translateX(-50%);
  background:#f2f0f5;color:#16161a;padding:11px 18px;border-radius:999px;font-size:14px;
  z-index:99;max-width:88vw;text-align:center;animation:fade .2s ease;
}

@media (max-width:360px){
  .logo{font-size:46px}
  .lede{font-size:13.5px}
  .scene h2{font-size:20px}
}
