/* 解压小游戏：沿用 index.html 的 :root 变量与 home.css 的 home-surface 卡片语言。 */

/* ---------- 入口页（v-vent） ---------- */
.vent-head h1{font-size:25px;letter-spacing:1px}
.vent-head p{font-size:13.5px;color:var(--gray);margin-top:8px;line-height:1.7}
.vent-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}
.vent-card{
  position:relative;text-align:left;font-family:inherit;color:var(--ink);
  padding:16px 16px 18px;min-height:148px;cursor:pointer;overflow:hidden;
}
.vent-card h2{font-size:16px;font-weight:650;letter-spacing:.5px;margin:10px 0 6px;position:relative}
.vent-card p{font-size:12px;color:var(--gray);line-height:1.6;position:relative}
.vent-art{
  display:flex;align-items:center;justify-content:center;width:46px;height:46px;
  border-radius:14px;background:linear-gradient(140deg,#f9f0e5,#faf2e8);color:#c18658;
}
.vent-art svg{width:28px;height:28px}
.vent-foot{text-align:center;font-size:12.5px;color:var(--gray);line-height:2;margin-top:30px}

/* ---------- 游戏页通用 ---------- */
.g-head h1{font-size:21px;letter-spacing:1px;line-height:1.5}
.g-head p{font-size:13px;color:var(--gray);margin-top:8px;line-height:1.7}
.g-hud{display:flex;justify-content:space-between;align-items:baseline;margin-top:16px;font-size:13px;color:var(--gray)}
.g-hud span:first-child{color:var(--ink);font-weight:650}
.g-timer{font-size:12px}
.g-stage{
  position:relative;margin-top:14px;height:340px;border:1px solid var(--line);
  border-radius:16px;background:var(--card);overflow:hidden;
  box-shadow:0 2px 12px rgba(61,47,43,.05);isolation:isolate;
}
.g-counter{text-align:center;font-size:14px;color:var(--ink);font-weight:650;margin-top:16px;min-height:20px}
.g-end{
  position:absolute;inset:0;z-index:40;margin:0;padding:30px 22px;border:0;border-radius:inherit;
  background:linear-gradient(155deg,#fffdf9 0%,#fbf2e9 100%);text-align:center;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  opacity:1;transform:none;
}
.g-end[hidden]{display:none}
.g-end.show{opacity:1}
.g-end::before{
  content:'这一轮结束了';display:block;margin-bottom:14px;color:var(--red);
  font-size:11px;font-weight:750;letter-spacing:3px;
}
.g-end-main{font-size:16.5px;font-weight:700;letter-spacing:.5px;line-height:1.8}
.g-end-sub{font-size:13.5px;color:var(--gray);margin-top:8px;line-height:1.8}
.g-end-btns{display:flex;flex-direction:column;gap:10px;width:min(100%,280px);margin-top:22px}
.g-btn{
  display:block;width:100%;min-height:46px;padding:12px;border:none;border-radius:12px;
  background:var(--red);color:#fff;font-size:14.5px;font-weight:700;letter-spacing:1px;
  font-family:inherit;cursor:pointer;
}
.g-btn-ghost{background:none;border:1.5px solid var(--red);color:var(--red)}
.g-btn[hidden]{display:none}
.g-note{text-align:center;font-size:13.5px;color:var(--gray);margin-top:16px;line-height:1.8}

/* ---------- ① 扎一扎 ---------- */
.g-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.g-chips button{
  min-height:36px;font-size:13px;padding:8px 16px;border-radius:999px;
  border:1px solid var(--line-dark);background:var(--card);color:var(--gray);
  font-family:inherit;cursor:pointer;
}
.g-chips button.on{border-color:var(--red);color:var(--red);background:#FBEEE8;font-weight:700}
.g-chips .poke-add{
  width:36px;padding:0;border-style:dashed;font-size:22px;line-height:1;color:var(--red);
}
.poke-saved-target{position:relative;display:inline-flex}
.poke-saved-target > button[data-custom]{padding-right:20px}
.g-chips .poke-target-delete{
  position:absolute;right:-5px;top:-6px;z-index:2;width:19px;height:19px;min-height:19px;padding:0;
  border:1px solid var(--red);border-radius:50%;background:#FFFDF9;color:var(--red);
  font-size:14px;font-weight:700;line-height:16px;box-shadow:0 2px 5px rgba(61,47,43,.1);
}
.g-chips .poke-target-delete:active{transform:scale(.9)}
.poke-custom{
  display:flex;width:150px;min-height:36px;margin:0;border:1px solid var(--red);border-radius:999px;
  background:rgba(255,253,249,.86);overflow:hidden;
}
.poke-custom[hidden]{display:none}
.poke-custom:focus-within{box-shadow:0 0 0 3px rgba(178,64,49,.08)}
.poke-custom input{
  width:100%;min-width:0;padding:7px 13px;border:0;outline:0;background:transparent;
  font-size:13px;font-family:inherit;color:var(--ink);
}
.poke-custom input::placeholder{color:#B79E92}
.poke-game-count{
  position:absolute;left:50%;bottom:12px;z-index:11;color:var(--red-deep);
  font-size:var(--count-size,24px);font-weight:850;line-height:1;font-variant-numeric:tabular-nums;
  transform:translateX(-50%);transform-origin:50% 100%;pointer-events:none;text-shadow:0 2px 10px rgba(178,64,49,.13);
  transition:font-size .18s ease;
}
.poke-game-count.bump{animation:poke-count-bump .34s cubic-bezier(.22,.78,.3,1)}
@keyframes poke-count-bump{
  0%,100%{transform:translateX(-50%) rotate(0) scale(1)}
  22%{transform:translateX(calc(-50% - 4px)) rotate(-6deg) scale(1.14,.9)}
  46%{transform:translateX(calc(-50% + 4px)) rotate(5deg) scale(.96,1.04)}
  70%{transform:translateX(calc(-50% - 2px)) rotate(-2deg) scale(1.04,.97)}
}
.poke-stage{display:flex;align-items:flex-start;justify-content:center;height:340px;padding-top:22px}
.poke-doll-wrap{position:relative;width:168px;height:210px;cursor:pointer;touch-action:manipulation;flex-shrink:0}
.poke-doll{width:100%;height:100%}
.poke-hit-area{position:absolute;inset:0;z-index:10;background:transparent;touch-action:manipulation}
/* 胸牌：HTML 覆盖层，位于小针（z-index:2）之上，不随 SVG 肿胀变形，永远居中 */
.poke-tag{
  position:absolute;left:50%;top:45.7%;transform:translate(-50%,-50%);z-index:3;
  padding:3px 10px;border:1.5px solid var(--red);border-radius:8px;
  background:#FFFDFC;color:var(--red-deep);font-size:13px;font-weight:700;
  line-height:1.3;white-space:nowrap;max-width:72%;overflow:hidden;text-overflow:ellipsis;
  pointer-events:none;
}
.poke-plea{
  position:absolute;left:calc(50% + 58px);top:24px;z-index:12;max-width:122px;
  padding:6px 11px;border:1px solid #DAB8A6;border-radius:13px 13px 13px 3px;
  background:#fffdf9;color:#865f51;font-size:12px;font-weight:750;letter-spacing:.5px;
  white-space:nowrap;pointer-events:none;box-shadow:0 4px 10px rgba(61,47,43,.1);
}
.poke-plea.left{left:auto;right:calc(50% + 48px);border-radius:13px 13px 3px 13px}
.poke-plea:not([hidden]){animation:plea-pop .9s cubic-bezier(.18,.72,.28,1)}
@keyframes plea-pop{
  0%{opacity:0;transform:translateY(8px) scale(.7)}
  18%,72%{opacity:1;transform:translateY(0) scale(1)}
  100%{opacity:0;transform:translateY(-8px) scale(.94)}
}
.poke-doll-wrap.shaking .poke-doll{animation:poke-shake .28s ease}
@keyframes poke-shake{
  0%,100%{transform:translateX(0) rotate(0)}
  25%{transform:translateX(-4px) rotate(-2deg)}
  55%{transform:translateX(4px) rotate(2deg)}
  80%{transform:translateX(-2px) rotate(-1deg)}
}
.poke-pin{
  position:absolute;width:2.5px;height:17px;background:var(--red);border-radius:2px;
  pointer-events:none;animation:pin-in .25s ease;z-index:11;transform-origin:50% 100%;
}
.poke-pin::before{
  content:'';position:absolute;top:-4.5px;left:-2.75px;width:8px;height:8px;
  border-radius:50%;background:var(--gold);
}
@keyframes pin-in{from{opacity:0;margin-top:-8px}to{opacity:1;margin-top:0}}
/* 扎击红印：一小片红晕 + 几颗小红点，几百毫秒内淡掉 */
.poke-blood{position:absolute;pointer-events:none;z-index:11}
.poke-blood b{
  position:absolute;left:-6px;top:-6px;width:12px;height:12px;border-radius:50%;
  background:var(--red);opacity:0;animation:blood-blush .45s ease-out forwards;
}
@keyframes blood-blush{0%{opacity:.28;transform:scale(.4)}100%{opacity:0;transform:scale(1.7)}}
.poke-blood i{
  position:absolute;left:0;top:0;border-radius:50%;background:var(--red);opacity:.75;
  animation:blood-fly .5s ease-out forwards;
}
@keyframes blood-fly{
  from{transform:translate(0,0) scale(1);opacity:.8}
  to{transform:translate(var(--dx),var(--dy)) scale(.4);opacity:0}
}
/* 布偶肿胀阶段：0 正常 → 1 红印 → 2 头不对称肿+晕眼 → 3 彻底肿+创可贴 */
.poke-doll .doll-head{transform-box:fill-box;transform-origin:center 85%;transition:transform .35s ease}
.poke-doll .doll-bruises,.poke-doll .doll-bruises-more,
.poke-doll .doll-bumps,.poke-doll .doll-bandage,
.poke-doll .doll-dizzy,.poke-doll .doll-mouth-dizzy{display:none}
.poke-doll .doll-bruises circle,.poke-doll .doll-bruises-more circle{opacity:.5}
.poke-doll.stage-1 .doll-bruises{display:block}
.poke-doll.stage-2 .doll-bruises{display:block}
.poke-doll.stage-2 .doll-head{transform:scale(1.14,1.07) translate(-3.5%,1%)}
.poke-doll.stage-2 .doll-eyes,.poke-doll.stage-2 .doll-mouth{display:none}
.poke-doll.stage-2 .doll-dizzy,.poke-doll.stage-2 .doll-mouth-dizzy{display:block}
.poke-doll.stage-3 .doll-bruises,.poke-doll.stage-3 .doll-bruises-more{display:block}
.poke-doll.stage-3 .doll-bumps,.poke-doll.stage-3 .doll-bandage{display:block}
.poke-doll.stage-3 .doll-head{transform:scale(1.32,1.22) translate(-4%,2%)}
.poke-doll.stage-3 .doll-eyes,.poke-doll.stage-3 .doll-mouth{display:none}
.poke-doll.stage-3 .doll-dizzy,.poke-doll.stage-3 .doll-mouth-dizzy{display:block}
/* 底部话堆：文字从扎击点上抛，再落到舞台底部；下一次扎击会把旧文字重新震起。 */
.poke-pile{
  position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:5;
}
.poke-pile.shock{animation:pile-shock .38s ease-out}
.poke-pile::after{
  content:'';position:absolute;left:12%;right:12%;bottom:3px;height:16px;border-radius:50%;
  background:radial-gradient(ellipse,rgba(176,73,62,.16),rgba(176,73,62,0) 70%);
  opacity:0;transform:scaleX(.55);pointer-events:none;
}
.poke-pile.shock::after{animation:floor-pulse .48s ease-out}
.poke-curse{position:absolute;left:0;top:0;will-change:transform,opacity;z-index:2;transition:opacity .2s ease}
.poke-curse.out{opacity:0}
.poke-curse i{
  display:inline-block;font-style:normal;padding:5px 11px;border-radius:999px;
  background:#FBEEE8;border:1px solid #E4B7AC;color:var(--red-deep);
  font-size:11.5px;font-weight:650;letter-spacing:.5px;white-space:nowrap;
  transform:rotate(var(--rot,0deg));box-shadow:0 3px 8px rgba(176,73,62,.08);user-select:none;
}
@keyframes pile-shock{
  0%,100%{transform:translateY(0)}
  24%{transform:translateY(6px)}
  52%{transform:translateY(-3px)}
  76%{transform:translateY(2px)}
}
@keyframes floor-pulse{
  0%{opacity:0;transform:scaleX(.45)}
  35%{opacity:1;transform:scaleX(1)}
  100%{opacity:0;transform:scaleX(1.22)}
}

/* ---------- ② 把“不”砸出去 ---------- */
.smash-stage{height:390px;background:linear-gradient(180deg,rgba(255,253,249,.96),rgba(251,242,233,.9))}
.smash-stage.hurt{animation:smash-hurt .42s ease-out}
@keyframes smash-hurt{
  0%,100%{box-shadow:0 2px 12px rgba(61,47,43,.05),inset 0 0 0 rgba(176,73,62,0)}
  38%{box-shadow:0 2px 12px rgba(61,47,43,.05),inset 0 0 46px rgba(176,73,62,.24)}
}
.smash-game-hud{
  position:absolute;left:10px;right:10px;top:10px;z-index:12;display:grid;grid-template-columns:1fr 1.25fr 1fr;
  min-height:48px;padding:7px 8px;border:1px solid rgba(224,204,191,.82);border-radius:12px;
  background:rgba(255,253,249,.9);box-shadow:0 2px 8px rgba(61,47,43,.05);backdrop-filter:blur(5px);
  pointer-events:none;
}
.smash-game-hud span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}
.smash-game-hud small{font-size:9.5px;color:var(--gray);letter-spacing:1px}
.smash-game-hud b{font-size:15px;color:var(--ink);line-height:1.2}
.smash-game-hud .smash-life b{color:var(--red);font-size:14px;letter-spacing:3px}
.smash-no{
  position:absolute;bottom:12px;left:50%;z-index:12;transform:translateX(-50%);
  width:92px;height:92px;border:2px solid var(--line-dark);border-radius:50%;
  background:rgba(255,253,249,.95);color:var(--gray);font-family:inherit;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  box-shadow:0 4px 16px rgba(61,47,43,.1);user-select:none;cursor:default;isolation:isolate;overflow:visible;
}
.smash-no span{position:relative;z-index:2;font-size:38px;font-weight:900;line-height:.95}
.smash-no small{
  position:absolute;right:-5px;bottom:1px;z-index:3;min-width:28px;height:28px;padding:0 6px;
  border:2px solid #fff;border-radius:999px;background:var(--gold-deep);color:#fff;
  font-size:12px;font-weight:800;line-height:24px;letter-spacing:0;white-space:nowrap;
  box-shadow:0 3px 8px rgba(61,47,43,.16);
}
.smash-no small[hidden]{display:none}
.smash-no.ready{
  border-color:#D35B43;background:linear-gradient(155deg,#CB4A39,#A92F2A);color:#fff;cursor:pointer;
  animation:ultimate-ready .8s ease-in-out infinite alternate;
}
.smash-no.ready::before{
  content:'';position:absolute;inset:-13px;z-index:-2;border-radius:48% 52% 45% 55%;
  background:conic-gradient(from 15deg,rgba(211,91,67,0),#E67945,#F2B05D,rgba(211,91,67,.15),#D85038,rgba(211,91,67,0));
  filter:blur(3px);animation:ultimate-fire 1.1s linear infinite;
}
.smash-no.ready::after{
  content:'';position:absolute;inset:-5px;z-index:-1;border-radius:50%;background:#B63C31;
  box-shadow:0 0 15px 6px rgba(222,89,55,.38),0 0 34px 12px rgba(238,151,68,.2);
}
@keyframes ultimate-ready{
  from{box-shadow:0 0 10px 3px rgba(211,91,67,.26)}
  to{box-shadow:0 0 22px 8px rgba(238,151,68,.42)}
}
@keyframes ultimate-fire{
  from{transform:rotate(0deg) scale(.96)}
  50%{transform:rotate(180deg) scale(1.08,.94)}
  to{transform:rotate(360deg) scale(.96)}
}
.smash-no.rejecting{animation:smash-no-punch .28s ease-out;filter:drop-shadow(0 5px 10px rgba(176,73,62,.22))}
@keyframes smash-no-punch{
  0%,100%{transform:translateX(-50%) scale(1)}
  42%{transform:translateX(-50%) scale(1.24)}
  68%{transform:translateX(-50%) scale(.96)}
}
.smash-bubble{
  position:absolute;min-height:44px;padding:10px 16px;border-radius:999px;
  border:1px solid var(--line-dark);background:var(--paper);color:var(--ink);
  font-size:13.5px;font-family:inherit;cursor:pointer;white-space:nowrap;
  box-shadow:0 2px 9px rgba(61,47,43,.09);z-index:3;will-change:transform;
  touch-action:manipulation;
}
.smash-bubble.smash-prop{
  min-width:68px;border-width:1.5px;font-weight:750;color:#fff;
  box-shadow:0 4px 14px rgba(61,47,43,.14);
}
.smash-bubble.prop-life{background:#C6675A;border-color:#A7473C}
.smash-bubble.prop-time{background:#C18A52;border-color:#9F6F3E}
@keyframes bubble-in{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
.smash-bubble.hit{opacity:0;pointer-events:none}
.smash-bubble.fade{opacity:0;transform:scale(.85)}
.smash-fragment{
  position:absolute;display:flex;align-items:center;justify-content:center;padding:10px 16px;
  border:1px solid var(--line-dark);border-radius:999px;background:var(--paper);color:var(--ink);
  font-size:13.5px;line-height:1.2;white-space:nowrap;pointer-events:none;z-index:5;
  box-shadow:0 2px 9px rgba(61,47,43,.09);overflow:hidden;
}
.smash-fragment.left{
  clip-path:polygon(0 0,54% 0,48% 23%,55% 47%,47% 71%,53% 100%,0 100%);
  animation:smash-left .62s cubic-bezier(.18,.7,.3,1) forwards;
}
.smash-fragment.right{
  clip-path:polygon(54% 0,100% 0,100% 100%,53% 100%,47% 71%,55% 47%,48% 23%);
  animation:smash-right .62s cubic-bezier(.18,.7,.3,1) forwards;
}
@keyframes smash-left{
  0%{transform:translate(0,0) rotate(0);opacity:1}
  100%{transform:translate(-34px,20px) rotate(-14deg);opacity:0}
}
@keyframes smash-right{
  0%{transform:translate(0,0) rotate(0);opacity:1}
  100%{transform:translate(34px,22px) rotate(15deg);opacity:0}
}
.smash-shard{
  position:absolute;width:6px;height:4px;border-radius:1px;background:var(--red);
  pointer-events:none;z-index:6;animation:smash-shard .56s ease-out forwards;
}
@keyframes smash-shard{
  from{transform:translate(0,0) rotate(0);opacity:.9}
  to{transform:translate(var(--dx),var(--dy)) rotate(var(--spin));opacity:0}
}
.smash-impact{
  position:absolute;width:18px;height:18px;border:2px solid var(--red);border-radius:50%;
  transform:translate(-50%,-50%);pointer-events:none;z-index:4;
  animation:smash-impact .5s ease-out forwards;
}
@keyframes smash-impact{from{opacity:.8;scale:.45}to{opacity:0;scale:3.2}}
.smash-reply{
  position:absolute;z-index:8;padding:5px 11px;border-radius:999px;background:var(--red);
  color:#fff;font-size:12.5px;font-weight:750;letter-spacing:.5px;white-space:nowrap;
  pointer-events:none;box-shadow:0 4px 12px rgba(176,73,62,.2);
  animation:smash-reply .82s cubic-bezier(.16,.76,.3,1) forwards;
}
.smash-reply.prop{background:var(--gold-deep)}
.smash-reply.hurt{background:#8F302A}
.smash-ultimate-flash{
  position:absolute;left:50%;top:47%;z-index:18;transform:translate(-50%,-50%);
  font-size:30px;font-weight:900;color:var(--red);letter-spacing:4px;white-space:nowrap;
  pointer-events:none;text-shadow:0 3px 14px rgba(176,73,62,.18);
  animation:ultimate-flash .72s ease-out forwards;
}
@keyframes ultimate-flash{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}
  28%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}
  100%{opacity:0;transform:translate(-50%,-65%) scale(1)}
}
#smash-end-main{display:flex;flex-direction:column;align-items:center;line-height:1.15}
#smash-end-main strong{font-size:66px;color:var(--red);font-weight:900;letter-spacing:-2px}
#smash-end-main span{font-size:17px;margin-top:5px;letter-spacing:2px}
@keyframes smash-reply{
  0%{transform:translate(-50%,-25%) scale(.45) rotate(var(--reply-rot));opacity:0}
  18%{transform:translate(-50%,-70%) scale(1.08) rotate(var(--reply-rot));opacity:1}
  68%{transform:translate(-50%,-115%) scale(1) rotate(var(--reply-rot));opacity:1}
  100%{transform:translate(-50%,-155%) scale(.92) rotate(var(--reply-rot));opacity:0}
}

/* ---------- ③ 压力气球 ---------- */
.balloon-stage{height:360px}
.g-balloon{
  position:absolute;width:74px;height:92px;border:none;border-radius:50% 50% 48% 48%;
  color:#FFFBF6;font-size:13px;font-weight:650;font-family:inherit;letter-spacing:1px;
  cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0 8px;
  text-align:center;line-height:1.4;animation:balloon-bob 3.2s ease-in-out infinite alternate;
  transition:transform .3s ease,opacity .3s ease;
}
.g-balloon::before{
  content:'';position:absolute;bottom:-30px;left:50%;width:1.5px;height:24px;
  background:rgba(61,47,43,.25);
}
@keyframes balloon-bob{from{transform:translateY(-7px)}to{transform:translateY(9px)}}
.g-balloon.pop{transform:scale(1.35);opacity:0;animation:none}
.g-balloon.fade{opacity:0}
.g-dot{
  position:absolute;width:7px;height:7px;border-radius:50%;pointer-events:none;
  animation:dot-fly .65s ease-out forwards;
}
@keyframes dot-fly{
  from{transform:translate(0,0);opacity:1}
  to{transform:translate(var(--dx),var(--dy));opacity:0}
}

/* ---------- ④ 情绪碎纸机 ---------- */
.shred-input{
  width:100%;margin-top:16px;padding:12px 14px;border:1px solid var(--line-dark);
  border-radius:12px;background:var(--card);font-size:14px;font-family:inherit;
  color:var(--ink);resize:none;
}
.shred-input.shake{animation:poke-shake .3s ease}
.shred-stage{height:250px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:26px}
.shred-machine{width:220px;height:auto;flex-shrink:0}
.shred-paper{
  position:absolute;top:26px;left:50%;transform:translateX(-50%);width:64%;max-width:240px;
  min-height:44px;padding:10px 14px;background:#FFFDFC;border:1px solid var(--line);
  border-radius:6px;font-size:13px;color:var(--ink);line-height:1.6;text-align:center;
  box-shadow:0 2px 8px rgba(61,47,43,.08);transition:transform .85s ease-in,opacity .85s ease-in;
  word-break:break-all;
}
.shred-paper.in{transform:translateX(-50%) translateY(120px) scaleY(.55);opacity:0}
.shred-strips{position:absolute;left:0;right:0;bottom:34px;height:80px;pointer-events:none}
.shred-strip{
  position:absolute;top:0;width:6px;height:26px;background:#FFFDFC;
  border:1px solid var(--line);border-radius:2px;opacity:0;
  animation:strip-fall 1.3s ease-in forwards;
}
@keyframes strip-fall{
  0%{transform:translateY(-6px) rotate(0);opacity:0}
  15%{opacity:1}
  100%{transform:translateY(56px) rotate(24deg);opacity:0}
}
.shred-btn{margin-top:16px}

/* ---------- ⑤ 拒绝按钮 ---------- */
.no-stage{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:20px;height:340px;padding:20px;
}
.no-phrase{
  font-size:17px;font-weight:700;letter-spacing:.5px;color:var(--ink);
  text-align:center;min-height:26px;line-height:1.6;
}
.no-big{
  width:164px;height:164px;border-radius:50%;border:2px solid var(--red);
  background:var(--paper);color:var(--red);font-size:46px;font-weight:900;
  font-family:inherit;cursor:pointer;letter-spacing:2px;
  box-shadow:0 4px 18px rgba(176,73,62,.14);touch-action:manipulation;
}
.no-big.pressed{animation:no-press .22s ease}
@keyframes no-press{0%{transform:scale(.92)}60%{transform:scale(1.04)}100%{transform:scale(1)}}
.no-level{font-size:12px;color:var(--gold-deep);letter-spacing:2px;min-height:16px}

/* ---------- ⑥ 甩锅弹射器 ---------- */
.guo-stage{height:360px}
.guo-launcher{position:absolute;left:14px;bottom:12px;width:92px;height:auto}
.guo-chip{
  position:absolute;min-height:44px;padding:10px 14px;border-radius:12px;
  border:1px solid var(--line-dark);background:var(--paper);color:var(--ink);
  font-size:12.5px;font-family:inherit;cursor:pointer;line-height:1.5;max-width:52%;
  text-align:center;
  box-shadow:0 1px 6px rgba(61,47,43,.06);animation:bubble-in .3s ease;
  transition:transform .55s ease-in,opacity .55s ease-in;
}
.guo-chip.fly{transform:translate(240px,-300px) rotate(38deg) scale(.7);opacity:0}
.guo-chip.fade{opacity:0;transform:scale(.85)}
.guo-toast{
  position:absolute;left:50%;bottom:20px;transform:translateX(-50%);
  padding:7px 16px;border-radius:999px;background:#FBF3E4;border:1px solid var(--gold);
  color:var(--gold-deep);font-size:12.5px;font-weight:650;white-space:nowrap;
}

/* ---------- 响应式 ---------- */
@media(max-width:420px){
  .vent-card{min-height:136px;padding:14px 13px 16px}
  .vent-card h2{font-size:14.5px}
  .vent-card p{font-size:11px}
  .vent-art{width:40px;height:40px;border-radius:12px}
  .vent-art svg{width:24px;height:24px}
  .g-stage{height:320px}
  .smash-stage{height:380px}
  .poke-stage{height:320px;padding-top:14px}
  .poke-doll-wrap{width:150px;height:188px}
  .shred-stage{height:230px}
  .no-big{width:150px;height:150px;font-size:42px}
  .smash-no{font-size:56px}
}
@media(max-width:360px){
  .g-head h1{font-size:18px}
  .vent-card h2{font-size:13px}
  .g-stage{height:300px}
  .smash-stage{height:360px}
  .no-big{width:138px;height:138px;font-size:38px}
}

/* ---------- 降低动效 ---------- */
@media(prefers-reduced-motion:reduce){
  .poke-doll-wrap.shaking .poke-doll,.no-big.pressed,.shred-input.shake,.smash-no.rejecting,
  .g-balloon,.poke-pin,.smash-bubble,.guo-chip,.shred-strip,.g-dot,
  .poke-curse,.poke-curse i,.poke-blood i,.poke-blood b,.poke-plea:not([hidden]){animation:none}
  .smash-no,.shred-paper,.smash-bubble,.g-balloon,.guo-chip{transition-duration:.01s}
  .poke-doll .doll-head{transition:none}
  .g-end{transition:none}
  .poke-pile.shock,.poke-pile.shock::after{animation:none}
  .poke-blood{display:none}
  .shred-strip,.g-dot{display:none}
}
