/* 神秘复苏 · 灵异体质测试 — 问卷样式 */
.quiz-sec{max-width:720px;margin:0 auto;padding:0 28px 48px}
.quiz-box{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);
  padding:42px 40px;position:relative;overflow:hidden;
}
.quiz-box::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 90% at 100% 0%,rgba(176,30,40,.07),transparent 60%);pointer-events:none}
.quiz-progress{display:flex;align-items:center;gap:16px;margin-bottom:36px;position:relative}
.qp-track{flex:1;height:2px;background:var(--line-2);position:relative;overflow:hidden}
.qp-fill{position:absolute;inset:0;background:linear-gradient(90deg,var(--blood),var(--blood-hi));transform:scaleX(var(--qp,0));transform-origin:left;transition:transform .5s var(--ease-out)}
.qp-count{font-family:var(--font-mono);font-size:11px;letter-spacing:.26em;color:var(--ink-faint)}
.quiz-q{
  font-family:var(--font-serif);font-size:clamp(20px,3vw,26px);line-height:1.65;
  color:var(--ink);letter-spacing:.05em;margin:0 0 32px;min-height:3.4em;
}
.quiz-options{display:flex;flex-direction:column;gap:12px;position:relative}
.q-opt{
  position:relative;text-align:left;width:100%;padding:18px 22px;background:var(--bg-1);
  border:1px solid var(--line-2);border-left:2px solid var(--line-2);color:var(--ink-dim);
  font-size:15px;letter-spacing:.06em;cursor:pointer;border-radius:var(--r-sm);
  transition:border-color .3s,color .3s,transform .3s var(--ease-out),background .3s,box-shadow .3s,opacity .3s;
}
.q-opt::before{content:"·";margin-right:14px;color:var(--blood-hi);font-family:var(--font-mono)}
.q-opt:hover{border-color:var(--blood);border-left-color:var(--blood);color:var(--ink);transform:translateX(6px);background:var(--surface-2);box-shadow:0 8px 22px rgba(0,0,0,.3)}
.q-opt.is-picked{border-color:var(--blood);border-left-color:var(--blood);color:#fff;background:var(--blood);box-shadow:0 0 24px rgba(176,30,40,.4)}
.q-opt.is-picked::before{color:#fff}
.q-opt.fade{opacity:0;transform:translateX(16px);transition:opacity .28s,transform .28s}
.quiz-q.fade-out{opacity:0;transform:translateY(-10px);filter:blur(4px);transition:opacity .3s,transform .3s,filter .3s}
.quiz-q.fade-in{opacity:1;transform:none;filter:none;transition:opacity .45s var(--ease-out) .05s,transform .45s var(--ease-out) .05s,filter .45s var(--ease-out) .05s}

/* 结果 */
.quiz-result{max-width:680px;margin:0 auto}
.qr-card{
  position:relative;background:var(--surface);border:1px solid var(--line);border-top:2px solid var(--blood);
  border-radius:var(--r-md);padding:52px 44px 40px;text-align:center;overflow:hidden;
}
.qr-card::before{content:"";position:absolute;inset:0;background:radial-gradient(80% 70% at 50% -10%,rgba(176,30,40,.1),transparent 66%);pointer-events:none}
.qr-kicker{font-family:var(--font-mono);font-size:11px;letter-spacing:.42em;color:var(--blood-hi);margin:0 0 22px}
.qr-title{
  font-family:var(--font-serif);font-size:clamp(36px,6vw,54px);font-weight:900;letter-spacing:.16em;
  color:var(--ink);margin:0 0 22px;text-shadow:0 0 38px rgba(224,52,63,.3);text-indent:.16em;
}
.qr-body{font-size:15px;line-height:2.05;color:var(--ink-dim);max-width:480px;margin:0 auto 26px}
.qr-danger{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:34px}
.qr-danger .lbl{font-family:var(--font-mono);font-size:10px;letter-spacing:.26em;color:var(--ink-faint)}
.qr-danger .bars{display:flex;gap:3px}
.qr-danger i{width:16px;height:4px;background:var(--line-2)}
.qr-danger i.on{background:var(--blood-hi);box-shadow:0 0 8px rgba(224,52,63,.55)}
.qr-danger i.unk{background:transparent;border:1px dashed var(--ink-faint)}
.qr-stamp{
  position:absolute;top:26px;right:26px;font-family:var(--font-serif);font-size:13px;letter-spacing:.3em;
  color:var(--blood-hi);border:2px solid var(--blood);border-radius:50%;width:86px;height:86px;
  display:grid;place-items:center;transform:rotate(-12deg) scale(0);
}
.qr-card.is-stamped .qr-stamp{animation:stampIn .55s var(--ease-out) .35s forwards}
@keyframes stampIn{0%{opacity:0;transform:rotate(-14deg) scale(2.3)}60%{opacity:.95;transform:rotate(-11deg) scale(.92)}100%{opacity:1;transform:rotate(-12deg) scale(1)}}
.qr-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;position:relative}
.qr-note{margin:26px 0 0;font-family:var(--font-mono);font-size:10px;letter-spacing:.22em;color:var(--ink-faint)}

@media (max-width:640px){
  .quiz-box{padding:30px 22px}
  .qr-card{padding:44px 24px 32px}
  .qr-stamp{width:64px;height:64px;font-size:11px;top:18px;right:18px}
}

@media (prefers-reduced-motion:reduce){
  .qp-fill{transition:none!important}
  .q-opt,.quiz-q{transition:none!important;opacity:1!important;transform:none!important;filter:none!important}
  .qr-card.is-stamped .qr-stamp{animation:none!important;transform:rotate(-12deg) scale(1)!important;opacity:1!important}
}

/* ============ 按选项触发的恐怖反馈层 ============ */
.qz-terror{position:fixed;inset:0;z-index:60;pointer-events:none;overflow:hidden}
.qz-terror > span{position:absolute}

/* 红色闪光（驭鬼者） */
.tf-flash{inset:0;background:radial-gradient(85% 65% at 50% 50%,rgba(224,52,63,.3),rgba(176,30,40,.12) 70%,transparent);opacity:0}
.tf-flash.go{animation:tfFlash .55s ease forwards}
@keyframes tfFlash{0%{opacity:0}16%{opacity:1}100%{opacity:0}}

/* 暗角加深（连击） */
.qz-deep{inset:0;background:radial-gradient(120% 100% at 50% 50%,transparent 26%,rgba(0,0,0,.82) 100%);opacity:0;transition:opacity .55s}
.qz-deep.go{opacity:1;animation:deepPulse 1.2s ease forwards}
@keyframes deepPulse{0%,100%{opacity:1}50%{opacity:.55}}

/* 角落黑影（已标记） */
.shadow-fig{
  left:4%;bottom:-6%;width:30vw;max-width:340px;height:56vh;opacity:0;
  background:radial-gradient(72% 52% at 50% 28%,rgba(4,4,6,.94),transparent 72%);
  filter:blur(2px);
}
.shadow-fig.go{animation:shadowIn 1s ease forwards}
@keyframes shadowIn{0%{opacity:0;transform:scaleY(.35) translateY(26%)}55%{opacity:.85;transform:scaleY(1.02)}100%{opacity:0;transform:scaleY(1) translateY(-4%)}}

/* 纸片雨（记录者） */
.paper-fall{top:-7%;width:9px;height:13px;opacity:0;animation:paperFall 1.6s ease-in forwards}
@keyframes paperFall{0%{opacity:0;transform:translateY(0) rotate(0)}10%{opacity:.85}100%{opacity:0;transform:translateY(112vh) rotate(460deg)}}

/* 屏幕抖动（三连击） */
body.qz-shake{animation:qzShake .55s steps(3) both}
@keyframes qzShake{25%{transform:translate(-6px,3px)}50%{transform:translate(5px,-4px)}75%{transform:translate(-3px,2px)}}

/* 裂纹覆盖（已标记结果） */
.crack-overlay{
  inset:0;opacity:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'%3E%3Cg fill='none' stroke='rgba(234,231,225,.55)' stroke-width='2'%3E%3Cpath d='M40 380 L150 260 L120 220 L210 120 L190 60'/%3E%3Cpath d='M370 30 L280 130 L300 170 L220 250 L250 300 L200 360'/%3E%3Cpath d='M60 40 L120 100 L100 140 L160 200'/%3E%3Cpath d='M330 380 L260 300 L285 265 L230 190'/%3E%3C/g%3E%3C/svg%3E");
  background-size:cover;
}
.crack-overlay.go{animation:crackIn .8s ease forwards}
@keyframes crackIn{0%{opacity:0;transform:scale(1.06)}100%{opacity:.65;transform:scale(1)}}

/* 结果页专属氛围 */
.qr-card.result-rider{box-shadow:0 0 60px rgba(176,30,40,.28),inset 0 0 40px rgba(176,30,40,.08);border-color:rgba(176,30,40,.4)}
.qr-card.result-rider::before{
  content:"";position:absolute;inset:-40px;pointer-events:none;
  background:radial-gradient(55% 45% at 50% 0%,rgba(176,30,40,.14),transparent 70%);
}
.qr-card.result-marked{filter:drop-shadow(0 0 30px rgba(0,0,0,.8))}

@media (prefers-reduced-motion:reduce){
  .qz-terror *{animation:none!important;opacity:0!important}
  body.qz-shake{animation:none!important}
  .paper-fall{display:none!important}
}
