:root{
  --bg:#09090c; --bg2:#0e0e13; --panel:#11131a; --panel2:#161822; --line:#232733;
  --ink:#f2f2f2; --mut:#8b93a3; --red:#c8252c; --red2:#8f1d22; --gray:#7e8a9a; --acc:#7e8a9a;
  --mincho:"Hiragino Mincho ProN","Yu Mincho","YuMincho",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic","YuGothic","Noto Sans JP",sans-serif;
  --mono:"SFMono-Regular",Consolas,"Osaka-mono","MS Gothic",monospace;
  --radius:14px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--sans);color:var(--ink);line-height:1.75;
  background:
   radial-gradient(110% 55% at 50% -8%, #14141d 0%, rgba(20,20,29,0) 55%),
   radial-gradient(70% 45% at 92% 6%, rgba(143,29,34,.18) 0%, rgba(143,29,34,0) 55%),
   linear-gradient(180deg,#0b0b10 0%, #09090c 60%, #070709 100%);
  min-height:100vh;
}
.wrap{max-width:680px;margin:0 auto;padding:0 14px 44px}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{font-family:var(--mincho);line-height:1.4;font-weight:800}
.btn{appearance:none;border:0;border-radius:10px;font-family:var(--sans);font-weight:900;
  cursor:pointer;font-size:16px;padding:15px 22px;transition:transform .12s,box-shadow .12s,background .12s}
.btn:active{transform:translateY(1px)}
.btn-cta{background:linear-gradient(180deg,#c8252c,#8f1d22);color:#fff;width:100%;font-size:19px;
  box-shadow:0 0 0 1px rgba(255,255,255,.06),0 10px 26px rgba(200,37,44,.38);letter-spacing:.06em}
.btn-ghost{background:#171a23;color:var(--ink);border:1px solid var(--line)}
.btn-gold{background:#1b1e2a;color:var(--ink);border:1px solid var(--line)}
.note{font-size:12.5px;color:var(--mut)}
.center{text-align:center}

/* ===== LP ===== */
.hero{margin:12px 0 6px;border-radius:16px;overflow:hidden;box-shadow:0 14px 36px rgba(0,0,0,.6);border:1px solid #1b1e29;position:relative}
.hero img{width:100%}
.hero.noimg img{display:none}
.hero.noimg::before{content:"オカルト都市伝説診断";display:flex;align-items:center;justify-content:center;
  aspect-ratio:1672/941;font-family:var(--mincho);font-weight:800;font-size:26px;color:#e8e4ee;letter-spacing:.1em;
  background:
   radial-gradient(60% 60% at 50% 30%, rgba(200,37,44,.28), rgba(200,37,44,0) 62%),
   linear-gradient(180deg,#101018,#0a0a0f);
  text-shadow:0 0 22px rgba(200,37,44,.6)}
.lead{margin:14px 6px 2px;text-align:center}
.lead h1{font-size:21px;margin:0 0 8px;color:#f4f1f6;letter-spacing:.02em}
.lead p{margin:0;color:var(--mut);font-size:14px}
.series{font-family:var(--mincho);font-size:12px;letter-spacing:.3em;color:#8d93a8;margin:2px 0 8px;text-align:center}
.badges{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:14px 0}
.badge{background:#12141c;border:1px solid var(--line);border-radius:999px;padding:6px 13px;font-size:12.5px;color:#b9c0cf}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px 16px;margin:14px 0;
  box-shadow:0 10px 26px rgba(0,0,0,.4)}
.fiction{font-size:11.5px;color:#6f7686;text-align:center;margin-top:8px}

/* ===== 設問画面（記録ファイル風） ===== */
#quiz{display:none}
.uq{position:relative;border-radius:14px;overflow:hidden;min-height:76vh;
  border:1px solid #232733;
  background:
   radial-gradient(75% 50% at 50% 30%, rgba(143,29,34,.16) 0%, rgba(143,29,34,0) 60%),
   linear-gradient(180deg,#0d0d13 0%, #0a0a0f 55%, #08080c 100%);
  box-shadow:0 18px 44px rgba(0,0,0,.6), inset 0 0 90px rgba(0,0,0,.65);
  display:flex;flex-direction:column;
}
.uq-grain{position:absolute;inset:-50%;pointer-events:none;opacity:.05;mix-blend-mode:screen;z-index:2;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:uqGrain 1.1s steps(4) infinite;transition:opacity .8s}
.uq.ph2 .uq-grain{opacity:.09}
.uq.ph3 .uq-grain{opacity:.15}
@keyframes uqGrain{0%{transform:translate(0,0)}25%{transform:translate(-4%,3%)}50%{transform:translate(3%,-3%)}75%{transform:translate(-2%,-4%)}100%{transform:translate(2%,2%)}}
.uq-scan{position:absolute;inset:0;pointer-events:none;z-index:2;opacity:.5;
  background:repeating-linear-gradient(180deg, rgba(255,255,255,.015) 0 1px, rgba(0,0,0,0) 1px 3px)}
.uq-top{position:relative;z-index:3;display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid #1a1d28;background:rgba(8,8,12,.75)}
.uq-rec{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:#c9535a}
.uq-rec i{width:8px;height:8px;border-radius:50%;background:#c8252c;box-shadow:0 0 8px rgba(200,37,44,.9);animation:recBlink 1.4s steps(2) infinite}
@keyframes recBlink{0%,100%{opacity:1}50%{opacity:.25}}
.uq.ph3 .uq-rec{animation:jitter 3.7s steps(2) infinite}
@keyframes jitter{0%,94%,100%{transform:none;opacity:1}95%{transform:translateX(2px);opacity:.7}97%{transform:translateX(-2px)}}
.uq-num{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;color:#9aa2b4}
.uq-bar{flex:1;height:2px;background:rgba(255,255,255,.08);overflow:hidden}
.uq-bar i{display:block;height:100%;background:linear-gradient(90deg,#8f1d22,#c8252c);
  box-shadow:0 0 8px rgba(200,37,44,.7);transition:width .4s}
.uq-scene{position:relative;aspect-ratio:16/9;overflow:hidden;z-index:1;
  background:
   radial-gradient(60% 70% at 50% 45%, rgba(126,138,154,.14), rgba(0,0,0,0) 65%),
   linear-gradient(180deg,#101018,#0a0a0e)}
.uq-scene .ph{position:absolute;inset:0;background-position:center;background-size:cover;opacity:0;transition:opacity .6s ease}
.uq-scene .ph.show{opacity:1}
.uq-scene::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(8,8,12,.25) 0%, rgba(8,8,12,0) 40%, rgba(8,8,12,.85) 100%)}
.uq-legend{position:absolute;left:12px;bottom:8px;z-index:2;font-family:var(--mincho);font-weight:700;font-size:12px;
  letter-spacing:.2em;color:#d8c9cb;text-shadow:0 0 10px rgba(200,37,44,.55);border-left:2px solid var(--red);padding-left:8px}
.uq-body{position:relative;z-index:3;flex:1;display:flex;flex-direction:column;padding:16px 14px 18px}
.uq-q{font-family:var(--mincho);font-weight:600;font-size:16.5px;line-height:1.95;color:#efeef2;
  min-height:5.8em;margin:0 0 6px;white-space:pre-wrap;text-shadow:0 1px 8px rgba(0,0,0,.7)}
.uq-q b{color:#f4dfe0;font-weight:800}
.uq-caret{color:var(--red);font-size:12px;opacity:0;animation:uqCaret 1s steps(2) infinite}
.uq-caret.on{opacity:1}
@keyframes uqCaret{0%,100%{transform:translateY(0)}50%{transform:translateY(3px)}}
.uq-opts{display:flex;flex-direction:column;gap:9px;margin-top:auto;padding-top:10px;
  opacity:0;transform:translateY(6px);transition:opacity .5s,transform .5s;pointer-events:none}
.uq-opts.show{opacity:1;transform:none;pointer-events:auto}
.uq-opts .opt{position:relative;display:block;text-align:left;cursor:pointer;
  font-family:var(--sans);font-weight:600;font-size:14.5px;letter-spacing:.02em;color:#e6e4ea;
  background:linear-gradient(180deg,rgba(17,19,26,.85),rgba(12,13,19,.9));
  border:1px solid #2a2f3d;border-radius:6px;padding:12px 14px 12px 34px;
  transition:border-color .15s,background .15s,box-shadow .15s,color .15s,transform .08s}
.uq-opts .opt::before{content:"▸";position:absolute;left:13px;top:50%;transform:translateY(-50%);
  color:#c8252c;font-size:12px;opacity:.55;transition:opacity .15s}
.uq-opts .opt:hover,.uq-opts .opt:focus-visible{border-color:#c8252c;color:#fff;outline:none;
  background:linear-gradient(180deg,rgba(40,14,17,.8),rgba(18,10,12,.9));
  box-shadow:0 0 16px rgba(200,37,44,.35)}
.uq-opts .opt:hover::before,.uq-opts .opt:focus-visible::before{opacity:1}
.uq-opts .opt:active{transform:scale(.99)}
.uq-back{position:absolute;z-index:4;top:46px;left:10px;background:rgba(8,8,12,.65);border:1px solid #232733;
  color:#9aa2b4;font-size:12px;padding:5px 11px;border-radius:4px;cursor:pointer;font-family:var(--mono)}
.uq-back:hover{color:#fff;border-color:#8f1d22}
.uq-warn{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;
  background:rgba(6,4,5,.82);pointer-events:none;opacity:0}
.uq-warn.on{animation:warnFlash 1.2s ease both}
.uq-warn p{font-family:var(--mincho);font-weight:800;font-size:17px;letter-spacing:.18em;color:#e04a52;
  text-shadow:0 0 14px rgba(200,37,44,.9);margin:0}
@keyframes warnFlash{0%{opacity:0}12%{opacity:1}70%{opacity:1}100%{opacity:0}}

/* ===== ローディング（解析）画面 ===== */
#loading{display:none}
.an{border:1px solid #232733;border-radius:14px;background:#0a0a0f;min-height:60vh;
  padding:26px 18px;font-family:var(--mono);position:relative;overflow:hidden;
  box-shadow:0 18px 44px rgba(0,0,0,.6), inset 0 0 70px rgba(0,0,0,.6)}
.an-line{font-size:13px;letter-spacing:.06em;color:#9aa2b4;margin:0 0 12px;opacity:0}
.an-line.on{opacity:1;transition:opacity .3s}
.an-line::before{content:"> ";color:#5c6475}
.an-line.noise{color:#e04a52;text-shadow:0 0 10px rgba(200,37,44,.8)}
.an-line.noise::before{content:"! "}
.an-bar{height:3px;background:rgba(255,255,255,.07);border-radius:999px;overflow:hidden;margin-top:20px}
.an-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#8f1d22,#c8252c);transition:width .5s}

/* ===== 結果画面 ===== */
#result{display:none}
.rcard{border-radius:18px;overflow:hidden;border:1px solid var(--line);background:var(--panel);
  box-shadow:0 18px 44px rgba(0,0,0,.55)}
.rhead{position:relative;text-align:center;padding:26px 18px 22px;overflow:hidden;
  background:
   radial-gradient(90% 80% at 50% 0%, color-mix(in srgb, var(--acc) 34%, transparent) 0%, rgba(0,0,0,0) 60%),
   linear-gradient(180deg,#13151d,#0e0f16)}
.rhead::before{content:"";position:absolute;inset:10px;border:1px solid rgba(255,255,255,.1);pointer-events:none}
.rhead::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.12;
  background:repeating-linear-gradient(180deg,rgba(255,255,255,.12) 0 1px,transparent 1px 5px)}
.rfile-top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;margin:0 0 22px;
  font-family:var(--mono);font-size:9px;letter-spacing:.12em;color:#7f8797;text-align:left}
.rfile-rec{display:flex;align-items:center;gap:6px}.rfile-rec i{width:6px;height:6px;border-radius:50%;background:var(--acc);box-shadow:0 0 8px var(--acc)}
.r-kicker{position:relative;font-family:var(--mincho);font-weight:700;font-size:12.5px;letter-spacing:.14em;color:#c3c9d6;opacity:.9}
.endname{position:relative;font-family:var(--mincho);font-weight:800;font-size:28px;letter-spacing:.04em;
  color:#fff;margin:10px 0 4px;text-shadow:0 2px 14px rgba(0,0,0,.6),0 0 18px color-mix(in srgb,var(--acc) 60%,transparent)}
.rcatch{position:relative;margin:2px auto 0;font-size:14.5px;color:#d5d2dd;max-width:28em}
.stats{position:relative;display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap}
.stat{background:rgba(0,0,0,.32);border:1px solid rgba(255,255,255,.16);border-radius:10px;padding:8px 12px;min-width:88px}
.stat .sl{font-size:10.5px;color:#c2c8d4;letter-spacing:.08em}
.stat b{display:block;font-family:var(--mincho);font-size:21px;color:#fff;line-height:1.3}
.stat .sb{height:4px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden;margin-top:5px}
.stat .sb i{display:block;height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--acc) 70%,#fff 0%),#e8e4ee)}
.stat.danger .sb i{background:linear-gradient(90deg,#8f1d22,#e04a52)}
.legendline{position:relative;margin-top:14px;font-family:var(--mincho);font-size:13px;color:#d8c9cb;letter-spacing:.06em}
.legendline b{font-size:16px;color:#fff;text-shadow:0 0 12px rgba(200,37,44,.55)}
.rbody{padding:16px 14px 20px}
.rlead{font-family:var(--mincho);font-size:13px;letter-spacing:.06em;color:#9aa2b4;text-align:center;margin:2px 0 14px}
.rblock{margin:0 0 14px;background:var(--panel2);border:1px solid var(--line);
  border-left:4px solid var(--acc);border-radius:11px;padding:13px 14px}
.rblock h3{font-size:15.5px;margin:0 0 7px;color:#f2f0f5;display:flex;align-items:center;gap:7px}
.rblock p{margin:0;font-size:14.5px;color:#d6d4dd}
.rblock ul{margin:0;padding-left:1.15em}
.rblock li{font-size:14.5px;margin:4px 0;color:#d6d4dd}
.forbid{border-left-color:var(--red);background:rgba(143,29,34,.1)}
.forbid p b{color:#ff9aa0}
.rumor{background:#0c0d12;border:1px dashed #2c3140;border-left:4px solid var(--gray)}
.rumor p{font-family:var(--mincho);font-size:14px;line-height:2;color:#c6ccd8}
.rumor .rq{color:#5c6475;font-family:var(--mono);font-size:11px;margin-bottom:6px}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{border-radius:999px;padding:5px 11px;font-size:12.5px;font-weight:700;border:1px solid var(--line);
  background:#171a23;color:#cfd4de}
.chip.tag{background:color-mix(in srgb,var(--acc) 18%, #171a23);border-color:color-mix(in srgb,var(--acc) 45%, var(--line));color:#eef0f4}
.sharebox{background:#0a0b10;border:1px solid var(--line);color:#c6ccd8;border-radius:10px;padding:13px;font-size:13px;
  white-space:pre-wrap;word-break:break-word}
.rshare{border-left-color:var(--acc);background:linear-gradient(180deg,color-mix(in srgb,var(--acc) 9%,var(--panel2)),var(--panel2))}
.share-hook{font-family:var(--mincho);color:#e5e0e7!important;margin:0 0 10px!important}
.actions{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.actions .btn{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;text-decoration:none;font-size:16px}
.actions .btn svg{width:19px;height:19px;fill:currentColor}
.btn-share-card{background:linear-gradient(180deg,color-mix(in srgb,var(--acc) 88%,#fff 4%),color-mix(in srgb,var(--acc) 72%,#050507));
  color:#fff;border:1px solid color-mix(in srgb,var(--acc) 75%,#fff);box-shadow:0 10px 24px color-mix(in srgb,var(--acc) 28%,transparent)}
.btn-share-card:disabled{cursor:wait;opacity:.72}
.social-actions,.result-nav{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.social-actions .btn{padding:14px 8px;font-size:14px;white-space:nowrap}
.btn-x,.btn-th{background:#000;color:#fff;border:1px solid #232733}
.copied{color:#7ad6a0;font-weight:900;font-size:13px;text-align:center;height:16px;opacity:0;transition:opacity .2s}
.copied.on{opacity:1}
.rdisc{font-size:11px;color:var(--mut);text-align:center;margin:12px 2px 0}
@keyframes rbIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* ===== 静的コンテンツ ===== */
.exp h2{font-size:18px;margin:0 0 10px;color:#f2f0f5}
.exp h3{font-size:15px;margin:14px 0 4px;color:#e4e7ef}
.exp p{font-size:14px;margin:0 0 8px;color:#bfc5d2}
.faq{border:1px solid var(--line);border-radius:11px;padding:0 14px;margin:8px 0;background:var(--panel2)}
.faq summary{cursor:pointer;font-weight:700;padding:12px 0;font-size:14.5px;color:#e9ecf3;font-family:var(--mincho)}
.faq p{padding:0 0 12px;margin:0;font-size:14px;color:#b7bdcb}
.ul-static{position:relative;z-index:2;max-width:680px;margin:26px auto;padding:0 16px}
.ul-static-card{background:rgba(17,19,26,.85);border:1px solid rgba(126,138,154,.25);border-radius:16px;padding:20px 18px;box-shadow:0 8px 24px rgba(0,0,0,.45)}
.ul-static h2{margin:0 0 10px;color:var(--ink)}
.ul-static p,.ul-static li,.ul-static dd{line-height:1.95;font-size:.94rem;color:var(--ink)}
.ul-axes{display:grid;gap:12px;margin:14px 0}
.ul-axes dt{font-weight:800;color:#a9b4c6;margin-bottom:2px}
.ul-axes dd{margin:0;color:#b7bdcb}
.ul-cat-item{border:1px solid rgba(126,138,154,.22);border-radius:12px;padding:14px 16px;margin:12px 0;background:rgba(255,255,255,.03)}
.ul-cat-item h4{margin:0 0 4px;font-size:1.02rem;color:var(--ink)}
.ul-catch{font-weight:700;color:#d0a3a6;margin:2px 0 8px}
.ul-label{font-weight:700;margin:8px 0 2px;color:#e4e7ef}
.ul-cat-item ul{margin:0;padding-left:1.2em;color:#b7bdcb}
.ul-tags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.ul-tag{font-size:.72rem;font-weight:700;color:#a9b4c6;border:1px solid currentColor;border-radius:999px;padding:2px 10px}
.ul-light{color:#b7bdcb;font-size:.9rem;border-top:1px dashed rgba(126,138,154,.3);padding-top:8px;margin-top:8px}
.ul-column p{line-height:2}
.exp,.tc-common-footer{content-visibility:auto;contain-intrinsic-size:520px}

@media (max-width:430px){.result-nav{grid-template-columns:1fr}.result-nav .btn{font-size:14px}.sharebox{font-size:12px}.rfile-top{margin-bottom:18px}}
@media (max-width:380px){ .uq-q{font-size:15.5px}.uq-opts .opt{font-size:13.5px;padding:11px 12px 11px 30px}.endname{font-size:24px}.social-actions{grid-template-columns:1fr} }
@media (prefers-reduced-motion:reduce){ *,*::before,*::after{animation:none!important;transition:none!important} }

.tc-common-footer{margin-top:26px;background:#07070a;border-top:1px solid var(--line);color:#8b93a3;padding:22px 14px}
.tc-common-footer-inner{max-width:680px;margin:0 auto;text-align:center}
.tc-common-footer-logo{font-family:var(--mincho);font-weight:800;color:#c6ccd8;font-size:18px;margin-bottom:8px}
.tc-common-footer-links{display:flex;flex-wrap:wrap;gap:10px 16px;justify-content:center;margin-bottom:10px}
.tc-common-footer-links a{color:#99a1b3;text-decoration:none;font-size:13px}
.tc-common-footer p{font-size:12px;margin:6px 0;color:#727a8c}

/* ===== クイズ演出強化 v1.2 ===== */
/* シーン画像：ゆっくりズーム（Ken Burns） */
.uq-scene .ph.show{animation:kenburns 16s ease-out forwards}
@keyframes kenburns{from{transform:scale(1.02)}to{transform:scale(1.12)}}
/* 選択肢：1つずつ段階フェードイン */
.uq-opts.show .opt{animation:optIn .42s ease both}
.uq-opts.show .opt:nth-child(1){animation-delay:.05s}
.uq-opts.show .opt:nth-child(2){animation-delay:.13s}
.uq-opts.show .opt:nth-child(3){animation-delay:.21s}
.uq-opts.show .opt:nth-child(4){animation-delay:.29s}
.uq-opts.show .opt:nth-child(5){animation-delay:.37s}
@keyframes optIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
/* 選択フィードバック：選んだものが赤く灯り、他が沈む */
.uq-opts .opt.chosen{border-color:#e04a52;color:#fff;
  background:linear-gradient(180deg,rgba(64,16,21,.9),rgba(26,9,12,.94));
  box-shadow:0 0 22px rgba(200,37,44,.55),inset 0 0 18px rgba(200,37,44,.18)}
.uq-opts.picked .opt{transition:opacity .3s,filter .3s;pointer-events:none}
.uq-opts.picked .opt:not(.chosen){opacity:.18;filter:blur(1px)}
/* 設問間の暗転ワイプ */
.uq-black{position:absolute;inset:0;background:#060409;opacity:0;pointer-events:none;transition:opacity .24s ease;z-index:7}
.uq-black.on{opacity:1}
/* フェーズ2（Q5〜8）：うっすら明滅、スキャンライン強調 */
.uq.ph2{animation:uqBreath 7s ease-in-out infinite}
@keyframes uqBreath{0%,100%{filter:brightness(1)}47%{filter:brightness(1.05)}53%{filter:brightness(.94)}}
.uq.ph2 .uq-scan{opacity:.75}
/* フェーズ3（Q9〜12）：グリッチ各種 */
.uq.ph3 .uq-scan{opacity:1}
.uq.ph3 .uq-scene .ph.show{animation:kenburns 16s ease-out forwards,phFlick 4.3s steps(1) infinite}
@keyframes phFlick{0%,92%,100%{filter:none}93%{filter:invert(.07) contrast(1.25)}94.5%{filter:none}97%{filter:brightness(.65) saturate(.6)}98%{filter:none}}
.uq.ph3 .uq-q{animation:tGlitch 5.7s steps(1) infinite}
@keyframes tGlitch{0%,95%,100%{text-shadow:0 1px 8px rgba(0,0,0,.7);transform:none}
 96%{text-shadow:-2px 0 rgba(200,37,44,.85),2px 0 rgba(90,140,255,.6);transform:translateX(1px)}
 97.5%{text-shadow:2px 0 rgba(200,37,44,.85),-2px 0 rgba(90,140,255,.6);transform:translateX(-1px)}
 98.5%{text-shadow:0 1px 8px rgba(0,0,0,.7);transform:none}}
.uq.ph3 .uq-bar i{animation:barPulse 1.5s ease-in-out infinite}
@keyframes barPulse{0%,100%{box-shadow:0 0 8px rgba(200,37,44,.7)}50%{box-shadow:0 0 16px rgba(224,74,82,1)}}
.uq.ph3 .uq-rec i{animation:recBlink .7s steps(2) infinite}
.uq-num.glitch{color:#e04a52;text-shadow:0 0 8px rgba(200,37,44,.9)}
/* 最終問（Q12）：画面端がさらに暗く */
.uq.last{box-shadow:0 18px 44px rgba(0,0,0,.7), inset 0 0 150px rgba(0,0,0,.92)}
/* 偽通知トースト */
.uq-notif{position:absolute;top:52px;left:50%;transform:translate(-50%,-14px);z-index:6;
  display:flex;gap:11px;align-items:center;background:rgba(15,15,21,.94);
  border:1px solid #2a2f3d;border-radius:13px;padding:10px 16px;min-width:230px;max-width:86%;
  opacity:0;pointer-events:none;transition:opacity .35s ease,transform .35s ease;
  box-shadow:0 8px 24px rgba(0,0,0,.65)}
.uq-notif.on{opacity:1;transform:translate(-50%,0)}
.uq-notif .ni{font-size:19px;line-height:1}
.uq-notif b{font-size:12.5px;color:#e6e4ea;display:block;line-height:1.5}
.uq-notif p{margin:0;font-size:11.5px;color:#8b93a3;line-height:1.5}

/* Q3直前：スマホだけに出す全画面の着信風演出（見た目のみ） */
.fake-call{display:none}
@media (max-width:640px){
  .fake-call{position:fixed;inset:0;z-index:30;display:none;flex-direction:column;justify-content:space-between;
    padding:calc(env(safe-area-inset-top) + 12px) 24px calc(env(safe-area-inset-bottom) + 34px);
    background:
      radial-gradient(90% 56% at 50% 12%, rgba(80,88,110,.34), rgba(6,7,10,0) 64%),
      linear-gradient(180deg,#11141c 0%, #07080c 58%, #030307 100%);
    color:#f4f5f7;opacity:0;pointer-events:none}
  .fake-call.on{display:flex;animation:fakeCallIn .28s ease both}
  .fake-call.out{animation:fakeCallOut .62s ease both}
  .fake-call::before{content:"";position:absolute;inset:0;pointer-events:none;
    background:repeating-linear-gradient(180deg,rgba(255,255,255,.018) 0 1px,transparent 1px 4px);
    opacity:.45}
  .fake-call::after{content:"";position:absolute;left:50%;top:18px;width:82px;height:6px;border-radius:999px;
    transform:translateX(-50%);background:rgba(255,255,255,.18)}
  .fake-call-status{position:relative;z-index:1;display:flex;justify-content:space-between;
    font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:rgba(244,245,247,.74)}
  .fake-call-body{position:relative;z-index:1;text-align:center;margin-top:54px}
  .fake-call-label{margin:0 0 18px;font-size:13px;letter-spacing:.22em;color:rgba(244,245,247,.58)}
  .fake-call-name{margin:0;font-size:clamp(36px,11vw,48px);font-weight:300;line-height:1.25;letter-spacing:.02em}
  .fake-call-sub{margin:18px 0 0;font-family:var(--mincho);font-size:17px;letter-spacing:.14em;color:#cbd1dc;
    text-shadow:0 0 14px rgba(200,37,44,.42)}
  .fake-call-actions{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;
    max-width:282px;width:100%;margin:0 auto}
  .fake-call-btn{position:relative;width:70px;height:70px;border-radius:50%;
    box-shadow:0 15px 34px rgba(0,0,0,.45),inset 0 0 0 1px rgba(255,255,255,.08)}
  .fake-call-btn::before{content:"";position:absolute;left:50%;top:50%;width:28px;height:14px;border:3px solid #fff;
    border-top:0;border-radius:0 0 18px 18px;transform:translate(-50%,-50%) rotate(0deg)}
  .fake-call-btn.decline{background:#d94343;animation:callPulse 1.05s ease-in-out infinite}
  .fake-call-btn.answer{background:#39a856;animation:callPulse 1.05s .18s ease-in-out infinite}
  .fake-call-btn.decline::before{transform:translate(-50%,-50%) rotate(135deg)}
  .fake-call-btn.answer::before{transform:translate(-50%,-50%) rotate(-45deg)}
  @keyframes fakeCallIn{from{opacity:0;transform:scale(1.025)}to{opacity:1;transform:none}}
  @keyframes fakeCallOut{0%{opacity:1;filter:none}45%{opacity:1;filter:invert(.12) contrast(1.25)}100%{opacity:0;transform:translateY(-18px) scale(.985)}}
  @keyframes callPulse{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.06);filter:brightness(1.16)}}
}
@media (prefers-reduced-motion:reduce){.fake-call{display:none!important}}

/* ===== 口裂け女 迎撃演出（Q1特殊選択肢） ===== */
.uq-opts.show .opt:nth-child(6){animation-delay:.45s}
.ks{position:absolute;inset:0;z-index:8;display:none;align-items:flex-end;justify-content:center;overflow:hidden;
  background:radial-gradient(90% 90% at 50% 60%, rgba(40,6,10,.5), rgba(4,2,4,.75))}
.ks.on{display:flex}
.ks svg{width:120%;max-width:none;margin-bottom:-6%;opacity:0;transform:scale(.12) translateY(34%);
  filter:drop-shadow(0 0 34px rgba(0,0,0,.95))}
.ks.lunge svg{animation:ksLunge .52s cubic-bezier(.65,0,1,1) forwards}
@keyframes ksLunge{0%{transform:scale(.12) translateY(34%);opacity:0}22%{opacity:1}100%{transform:scale(1.65) translateY(5%);opacity:1}}
.ks.retreat svg{animation:ksOut .55s ease-in forwards}
@keyframes ksOut{0%{transform:scale(1.65) translateY(5%);opacity:1;filter:blur(0)}100%{transform:scale(.1) translateY(42%);opacity:0;filter:blur(8px)}}
.ks-flash{position:absolute;inset:0;background:#c8252c;opacity:0;pointer-events:none}
.ks.lunge .ks-flash{animation:ksFlash .5s .42s ease-out both}
@keyframes ksFlash{0%{opacity:0}18%{opacity:.55}100%{opacity:0}}
.ks-line{position:absolute;left:16px;right:16px;bottom:16%;text-align:center;
  font-family:var(--mincho);font-weight:700;font-size:15.5px;line-height:2;letter-spacing:.08em;
  color:#e9dde2;opacity:0;text-shadow:0 0 14px rgba(200,37,44,.7)}
.ks.retreat .ks-line{animation:ksLineIn .6s .3s ease both}
@keyframes ksLineIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.uq.shake{animation:uqShake .5s .34s linear}
@keyframes uqShake{0%,100%{transform:none}15%{transform:translate(-7px,4px) rotate(-.4deg)}
 30%{transform:translate(6px,-5px) rotate(.4deg)}45%{transform:translate(-5px,3px)}
 60%{transform:translate(4px,-3px)}75%{transform:translate(-3px,2px)}90%{transform:translate(2px,-1px)}}
@media (prefers-reduced-motion:reduce){.ks{display:none!important}}

/* ===== 口裂け女：実写画像版（画像があればSVGと差し替え） ===== */
.ks .ks-img{width:96%;max-width:520px;margin-bottom:-4%;opacity:0;transform:scale(.12) translateY(34%);
  filter:drop-shadow(0 0 40px rgba(0,0,0,.95))}
.ks.hasimg svg{display:none}
.ks:not(.hasimg) .ks-img{display:none}
.ks.lunge .ks-img{animation:ksLunge .52s cubic-bezier(.65,0,1,1) forwards}
.ks.retreat .ks-img{animation:ksOut .55s ease-in forwards}
/* インパクトフレーム（衝突の瞬間に0.13秒だけ差し込むドアップ） */
.ks-impact{position:absolute;inset:0;z-index:9;display:none;background-position:center;background-size:cover;
  filter:contrast(1.15) saturate(.85)}
.ks-impact.on{display:block;animation:ksImpact .13s steps(1) both}
@keyframes ksImpact{from{transform:scale(1.06)}to{transform:scale(1.06)}}

/* ===== 偽ブラクラ演出（解析完了後） ===== */
.an.broken{animation:uqShake .5s linear 2}
.crash-win{position:fixed;min-width:240px;max-width:78vw;background:#14161d;border:1px solid #3a4050;
  border-radius:8px;box-shadow:0 14px 34px rgba(0,0,0,.75);z-index:60;font-family:var(--sans);
  animation:cwIn .14s ease both}
@keyframes cwIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
.crash-win .cw-t{display:flex;align-items:center;gap:7px;background:linear-gradient(180deg,#2a2f3d,#1a1d28);
  padding:7px 12px;font-size:12px;font-weight:700;color:#e6e4ea;border-bottom:1px solid #3a4050;
  border-radius:8px 8px 0 0;letter-spacing:.04em}
.crash-win p{margin:0;padding:13px 14px 10px;font-size:13px;color:#c6ccd8;line-height:1.7}
.crash-win .cw-btn{display:block;width:72px;margin:0 auto 12px;text-align:center;font-size:12px;font-weight:700;
  color:#e6e4ea;background:#232733;border:1px solid #3a4050;border-radius:5px;padding:4px 0}
.crash-win.evil{border-color:#8f1d22;box-shadow:0 14px 34px rgba(0,0,0,.75),0 0 24px rgba(200,37,44,.35)}
.crash-win.evil .cw-t{color:#ff9aa0;background:linear-gradient(180deg,#3a1418,#1d0c0e);border-bottom-color:#8f1d22}
.crash-win.evil p{color:#f0d9d9;font-family:var(--mincho)}
html.tearall{animation:invFlick .45s steps(2) both}
@keyframes invFlick{0%,100%{filter:none}50%{filter:invert(1) hue-rotate(160deg) contrast(1.2)}}
.crash-final{position:fixed;inset:0;z-index:70;background:#040308;display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .5s ease;padding:24px}
.crash-final.on{opacity:1}
.crash-final p{font-family:var(--mincho);font-weight:700;font-size:17px;letter-spacing:.12em;line-height:2;
  color:#e9dde2;text-align:center;text-shadow:0 0 16px rgba(200,37,44,.65);margin:0}

/* ===== 演出増強 v1.3 ===== */
/* Q9以降：赤いビネットが脈打つ */
.uq.ph3 .uq-vigred{position:absolute;inset:0;pointer-events:none;z-index:2;
  background:radial-gradient(115% 100% at 50% 50%, rgba(0,0,0,0) 58%, rgba(143,29,34,.32) 100%);
  animation:redVig 3.4s ease-in-out infinite}
.uq-vigred{display:none}
.uq.ph3 .uq-vigred{display:block}
@keyframes redVig{0%,100%{opacity:.3}50%{opacity:1}}
/* 暗転中のサブリミナル文字 */
.uq-black .sub{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--mincho);font-weight:800;font-size:22px;letter-spacing:.34em;color:#c9333b;
  text-shadow:0 0 20px rgba(200,37,44,.95);opacity:0;pointer-events:none}
.uq-black .sub.on{opacity:1}
/* 暗転がノイズ混じりに（ph3の遷移時） */
.uq-black.static{background:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.14'/%3E%3C/svg%3E"),
  #060409}
/* 解析画面：消される行 */
.an-line.erased{color:#5c6475;text-decoration:line-through;text-decoration-color:rgba(200,37,44,.7)}
/* 偽ブラクラ：連鎖中の画面振動を継続 */
.an.broken{animation:uqShake .5s linear infinite}
/* トップページ：シェアボタン */
.intro-share{margin-top:4px}
.intro-share h3{font-family:var(--mincho);font-size:14px;color:#c6ccd8;margin:0 0 10px;text-align:center;letter-spacing:.08em}
