/* ============================================================
   effects.css — CRT / 噪点 / 暗角 / 蜕皮转场 / 粒子
   ============================================================ */

/* ---------- CRT 扫描线（里层开启） ---------- */
#crt-filter{inset:0;opacity:0;transition:opacity .8s;}
body.crt-on #crt-filter{opacity:1;}
#crt-filter{
  background:
    repeating-linear-gradient(0deg,rgba(0,0,0,.13) 0 1px,transparent 1px 3px);
  mix-blend-mode:multiply;
}
body.crt-on #screen-layer{
  text-shadow:1px 0 1px rgba(255,0,0,.14),-1px 0 1px rgba(0,255,255,.14);
}

/* ---------- 噪点 ---------- */
#noise-filter{
  opacity:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/></svg>");
  animation:noiseShift .5s steps(3) infinite;
}
body.crt-on #noise-filter{opacity:.06;}
body.noise-on #noise-filter{opacity:.05;}
@keyframes noiseShift{
  0%{background-position:0 0;}33%{background-position:40px 20px;}
  66%{background-position:-20px 40px;}100%{background-position:0 0;}}

/* ---------- 暗角 ---------- */
#vignette-filter{opacity:0;transition:opacity .8s;
  background:radial-gradient(ellipse at 50% 46%,transparent 46%,rgba(0,0,0,.55) 100%);}
body.vignette-on #vignette-filter{opacity:1;}

/* ---------- 光敏保护：压制闪烁 ---------- */
body.photosensitive #noise-filter{animation:none;}
body.photosensitive .surface-world{animation:none;}
body.photosensitive *{animation-duration:inherit;}

/* ---------- 淡出黑屏 ---------- */
#transition-layer .fade-black{position:absolute;inset:0;background:#000;opacity:0;}
#transition-layer.fade .fade-black{opacity:1;}
#transition-layer.fade{pointer-events:auto;}

/* ---------- 蜕皮转场 ---------- */
.molt{position:absolute;inset:0;pointer-events:none;}
.molt .molt-burn{position:absolute;inset:-10%;
  background:radial-gradient(circle at var(--mx,30%) var(--my,30%),
    transparent 0px,transparent var(--r),
    #1a0d05 calc(var(--r) + 6px),
    #b5561c calc(var(--r) + 16px),
    rgba(60,20,6,.97) calc(var(--r) + 60px),
    #050302 calc(var(--r) + 180px));
  opacity:0;}
.molt.burning .molt-burn{opacity:1;animation:moltSpread 2.6s ease-in forwards;}
@keyframes moltSpread{
  0%{--r:-200px;opacity:0;}8%{opacity:1;}
  100%{--r:160%;opacity:1;}}
.molt.reveal .molt-burn{animation:moltClose 2.2s ease-out reverse forwards;}
@keyframes moltClose{
  0%{--r:160%;}100%{--r:-200px;}}
/* 注册自定义属性以便动画 */
@property --r{syntax:'<length>';initial-value:-200px;inherits:false;}

/* 全屏焦黑（切场景瞬间） */
.molt .molt-flat{position:absolute;inset:0;background:#040201;opacity:0;}
.molt.flat .molt-flat{opacity:1;}

/* ---------- 火星 / 纸灰粒子 ---------- */
.particle{position:absolute;pointer-events:none;border-radius:50%;}
.ember{width:3px;height:3px;background:#ff9a3c;box-shadow:0 0 6px #ff6a1a;
  animation:emberFloat linear forwards;}
@keyframes emberFloat{
  from{transform:translateY(0);opacity:1;}
  to{transform:translate(var(--dx,20px),-120px);opacity:0;}}
.ash{width:5px;height:5px;background:#9a938a;opacity:.7;
  animation:ashRise linear forwards;}
@keyframes ashRise{
  from{transform:translateY(20px) rotate(0);opacity:.8;}
  to{transform:translate(var(--dx,-30px),-160px) rotate(240deg);opacity:0;}}

/* ---------- 突脸（可被减少惊吓模式改为渐显） ---------- */
.scare-pop{animation:scarePop .12s steps(2) forwards;}
@keyframes scarePop{from{opacity:0;transform:scale(.6);}to{opacity:1;transform:scale(1);}}
body.reduced-scares .scare-pop{animation:scareSoft 1.1s ease forwards;}
@keyframes scareSoft{from{opacity:0;}to{opacity:.8;}}

/* 红眼1帧 */
.red-eye-frame{position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,#3a0000,#000);
  display:flex;align-items:center;justify-content:center;opacity:0;z-index:90;pointer-events:none;}
.red-eye-frame.fire{animation:redEyeFire .09s steps(1);}
@keyframes redEyeFire{0%{opacity:0;}50%{opacity:1;}100%{opacity:0;}}
body.reduced-scares .red-eye-frame{display:none;}

/* 灯光点亮 */
.room-light{position:absolute;width:26px;height:40px;background:linear-gradient(180deg,#555,#222);z-index:6;cursor:pointer;}
.room-light.lit{background:radial-gradient(circle at 50% 30%,#fff6c0,#d8c87a);
  box-shadow:0 0 90px 50px rgba(255,230,150,.35);}
.light-safe{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(255,235,170,.22),transparent 70%);pointer-events:none;z-index:3;}

/* 通用闪烁 */
.flicker{animation:flicker 3s steps(1) infinite;}
@keyframes flicker{0%,96%,100%{opacity:1}97%{opacity:.4}98%{opacity:.9}99%{opacity:.5}}
body.photosensitive .flicker{animation:none;}

/* ============================================================
   第六幕 · 那一天（回忆窗景：白天 / 黄昏 / 夜 / 火灾）
   ============================================================ */
.memory-world{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:14px;transition:background 1.2s;font-family:var(--f-serif);}
.memory-world.day{background:radial-gradient(120% 80% at 50% 0%,#f6e2b6,#e6c894 55%,#c69e66);}
.memory-world.dusk{background:linear-gradient(180deg,#2e2a50,#7a5050 52%,#cf8448);}
.memory-world.night{background:linear-gradient(180deg,#0a0f22,#151c38 68%,#080c18);}
.memory-world.fire{background:radial-gradient(circle at 50% 84%,#842c12,#280c05 58%,#0b0402);
  animation:memFire .46s steps(2) infinite;}
@keyframes memFire{50%{filter:brightness(1.28);}}
body.photosensitive .memory-world.fire{animation:none;}
.m-timeind{position:absolute;top:62px;left:50%;transform:translateX(-50%);z-index:6;
  color:#f4ecdc;text-shadow:0 1px 5px rgba(0,0,0,.8);font-size:15px;letter-spacing:3px;
  background:rgba(20,14,8,.42);padding:4px 16px;border-radius:20px;}
.m-stage{width:min(840px,88%);height:min(440px,52%);position:relative;}
.m-phasebox{width:min(840px,88%);min-height:118px;background:rgba(18,14,10,.82);
  border:2px outset #6a6256;padding:14px 18px;color:#ece4d4;font-size:14px;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:9px;justify-content:center;border-radius:3px;}
.m-phasebox .small{color:#c8bca4;}
.m-window-scene{position:absolute;inset:0;border-radius:6px;overflow:hidden;
  border:9px solid #6b5236;box-shadow:0 12px 44px rgba(0,0,0,.55),inset 0 0 70px rgba(0,0,0,.22);}
/* 白天：窗外 + 书桌 */
.m-window-scene.day{background:linear-gradient(180deg,#aed6ef 0%,#cfe6c2 52%,#f0dca6 100%);}
.m-sun{position:absolute;top:28px;right:56px;width:78px;height:78px;border-radius:50%;
  background:radial-gradient(circle,#fff8d0,#ffd868);box-shadow:0 0 64px #ffd260;}
.m-sun::after{content:"";position:absolute;inset:-26px;border-radius:50%;border:2px solid rgba(255,220,120,.5);}
.m-desk{position:absolute;left:0;right:0;bottom:0;height:40%;
  background:linear-gradient(180deg,#b48c5a,#86623a);border-top:5px solid #634526;}
.m-paper{position:absolute;left:13%;bottom:48%;background:#fdfaf0;border:1px solid #c9b890;
  padding:9px 15px;font-size:13px;color:#6a5238;box-shadow:2px 4px 7px rgba(0,0,0,.22);}
.m-envelope{position:absolute;right:13%;bottom:46%;width:100px;height:66px;
  background:linear-gradient(#f2e6c8,#e0d0a4);border:1px solid #ad9666;z-index:2;
  display:flex;align-items:flex-end;justify-content:center;padding-bottom:6px;font-size:13px;color:#7a5a36;cursor:pointer;}
.m-envelope::before{content:"";position:absolute;top:0;left:0;right:0;height:34px;background:#ecdcb4;
  clip-path:polygon(0 0,50% 74%,100% 0);border-bottom:1px solid #ad9666;}
.m-envelope.drop-zone{outline:3px dashed #c4382a;outline-offset:3px;animation:envPulse 1.1s infinite;}
@keyframes envPulse{50%{outline-color:transparent;}}
/* 黄昏江边 */
.m-window-scene.dusk{background:linear-gradient(180deg,#2a2648,#7c4c4c 48%,#d0844a 74%,#7c4428);}
.m-window-scene.dusk::before{content:"";position:absolute;top:26%;left:50%;transform:translateX(-50%);
  width:90px;height:90px;border-radius:50%;background:radial-gradient(circle,#ffe6b0,#f0a050);
  box-shadow:0 0 70px rgba(255,170,80,.7);}
.m-river{position:absolute;left:0;right:0;bottom:0;height:48%;
  background:linear-gradient(180deg,rgba(255,186,96,.55),rgba(110,46,28,.9));overflow:hidden;}
.m-river::before{content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(0deg,transparent 0 11px,rgba(255,224,160,.28) 11px 13px);
  animation:riverShine 3.2s ease-in-out infinite;}
@keyframes riverShine{50%{transform:translateX(10px);}}
/* 夜晚聊天室 / 关机 */
.m-window-scene.night{background:linear-gradient(180deg,#080d20,#141b36);}
.m-chat{position:absolute;inset:26px;background:#e9edf3;border:2px solid #5a6a84;border-radius:4px;
  display:flex;flex-direction:column;font-family:var(--f-sans);}
.m-chatbar{background:linear-gradient(90deg,#2a4a8a,#4a6ab0);color:#fff;padding:5px 11px;font-size:13px;font-weight:bold;}
.m-chatbody{flex:1;padding:11px;font-size:13px;color:#333;overflow:auto;line-height:1.9;}
.m-avatar{width:56px;height:56px;border-radius:50%;background:#8a8a8a;color:#d8d8d8;
  display:flex;align-items:center;justify-content:center;font-size:24px;cursor:pointer;
  border:3px solid #565656;box-shadow:0 0 0 4px rgba(255,255,255,.4);}
.m-avatar:hover{background:#9a9a9a;}
.m-blackscreen{position:absolute;inset:0;background:#05060a;color:#3a4256;
  display:flex;align-items:center;justify-content:center;font-family:var(--f-mono);font-size:14px;letter-spacing:2px;}
/* 火灾 */
.m-window-scene.fire{background:radial-gradient(circle at 50% 92%,#ff8a3a,#b43812 42%,#360d05 74%,#0b0402);
  animation:memFire .4s steps(2) infinite;}
.m-fireglow{position:absolute;inset:0;background:radial-gradient(circle at 50% 100%,rgba(255,186,86,.6),transparent 62%);}
.m-fireglow::before,.m-fireglow::after{content:"";position:absolute;bottom:6%;width:5px;height:5px;border-radius:50%;
  background:#ffb050;box-shadow:0 0 8px #ff8030;animation:emberFloatUp 2.4s linear infinite;}
.m-fireglow::after{left:36%;animation-delay:1.1s;}
.m-fireglow::before{left:60%;}
@keyframes emberFloatUp{from{transform:translateY(0);opacity:1;}to{transform:translateY(-260px);opacity:0;}}

/* ============================================================
   终章 · 黎明（褪色温柔的小美 + 选择 / 告别仪式）
   ============================================================ */
.finale-world{position:absolute;inset:0;overflow:hidden;display:flex;flex-direction:column;
  align-items:center;justify-content:flex-end;
  background:radial-gradient(120% 92% at 50% 118%,#7a6684 0%,#443c56 28%,#1b1826 58%,#0a0910 100%);}
.finale-world::before{content:"";position:absolute;left:0;right:0;bottom:0;height:46%;pointer-events:none;
  background:linear-gradient(0deg,rgba(255,206,150,.16),transparent);}
.finale-figure{position:absolute;left:50%;top:9%;transform:translateX(-50%);
  height:min(412px,47vh);width:auto;opacity:.95;z-index:2;
  filter:drop-shadow(0 0 36px rgba(255,222,184,.32)) saturate(.74);
  animation:finaleFloat 6.4s ease-in-out infinite;}
@keyframes finaleFloat{50%{transform:translateX(-50%) translateY(-9px);}}
.finale-figure svg{height:100%;width:auto;}
.finale-panel{position:relative;z-index:6;width:min(720px,92%);margin-bottom:24px;max-height:42vh;overflow:auto;
  background:rgba(15,13,22,.84);border:1px solid rgba(198,186,166,.32);border-radius:4px;
  padding:16px 20px;color:#e9e3d5;backdrop-filter:blur(3px);font-family:var(--f-sans);}
.finale-choice{display:block;width:100%;margin-bottom:10px;padding:11px 13px;text-align:left;line-height:1.6;
  background:rgba(255,255,255,.06);border:1px solid rgba(198,186,166,.3);color:#f0e9da;border-radius:3px;cursor:pointer;}
.finale-choice:hover{background:rgba(255,228,190,.15);}
.finale-choice.disabled{opacity:.5;}
.ritual-box{margin-top:8px;display:flex;flex-direction:column;align-items:center;gap:8px;}

/* ============================================================
   三结局 + 片尾
   ============================================================ */
.ending-world{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;padding:42px;background:#050507;color:#cfc8bc;
  font-family:var(--f-serif);overflow:auto;cursor:default;}
.end-text{max-width:680px;font-size:18px;line-height:2.35;text-align:center;white-space:pre-wrap;
  animation:endFade 1.4s ease;margin:auto;}
@keyframes endFade{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:none;}}
.ending-world.awake{background:linear-gradient(180deg,#0a0d16,#14192a);}
.ending-world.stinger{background:#000;}
.ending-world.bright{background:linear-gradient(180deg,#f7eeda,#e6d7ba);color:#4a3e2e;}
.ending-world.coma{background:#07070a;color:#8a8478;}
.end-text.bright{color:#4a3e2e;}
.stinger-counter{font-family:"Courier New",monospace;font-size:clamp(48px,9vw,84px);color:#ff2222;
  text-shadow:0 0 24px #ff0000,0 0 6px #ff9090;letter-spacing:10px;margin-bottom:30px;
  animation:stingerFlick 1.2s steps(2) infinite;}
@keyframes stingerFlick{50%{opacity:.55;}}
.ending-world.whitepage{background:#f4efe3;color:#3a3228;}
.white-letter.big{max-width:630px;width:90%;background:#fffdf6;border:1px solid #d8ccad;
  box-shadow:0 10px 34px rgba(0,0,0,.16);padding:36px 42px;font-size:17px;line-height:2.35;
  white-space:pre-wrap;text-align:left;}
.ending-world.cemetery{background:linear-gradient(180deg,#aeb9c8,#7f8a9c 58%,#5d6777);cursor:default;color:#1f262e;}
.cemetery-scene{margin:6px 0 22px;animation:endFade 1.6s ease;}
.tomb{display:flex;flex-direction:column;align-items:center;}
.tomb-stone{width:216px;min-height:162px;background:linear-gradient(180deg,#7d8794,#58616d);
  border-radius:64px 64px 8px 8px;display:flex;align-items:center;justify-content:center;
  font-size:23px;color:#eef1f5;letter-spacing:5px;box-shadow:0 12px 28px rgba(0,0,0,.4),inset 0 2px 2px rgba(255,255,255,.18);
  border:1px solid #4c545e;text-shadow:0 1px 2px rgba(0,0,0,.6);}
.tomb-offer{display:flex;gap:36px;margin-top:24px;}
.offer-item{width:58px;height:58px;cursor:pointer;opacity:.8;transition:.3s;display:flex;
  align-items:center;justify-content:center;}
.offer-item svg,.offer-item img{width:52px;height:52px;}
.offer-item:hover{opacity:1;}
.offer-item.placed{opacity:1;filter:drop-shadow(0 0 14px rgba(255,222,150,.66));}
.screenshot-card{margin-top:26px;width:310px;background:#c9c9c9;border:2px outset #eee;padding:9px;text-align:center;}
.ss-title{font-family:var(--f-serif);font-size:21px;font-weight:bold;letter-spacing:2px;
  background:linear-gradient(90deg,#e85a8a,#f0b040,#58a8e0,#a06ad0);
  -webkit-background-clip:text;background-clip:text;color:transparent;}
.ss-complete{margin-top:7px;font-size:12px;color:#333;line-height:1.7;}
.ending-world.credits{background:radial-gradient(circle at 50% 40%,#10101a,#050508);}
.credits-box{text-align:center;color:#d8d0c0;margin:auto;}
.credits-line1{font-size:clamp(24px,4vw,34px);letter-spacing:7px;margin-bottom:18px;font-family:var(--f-serif);}
.credits-line2{font-size:15px;color:#9a9488;line-height:2.1;white-space:pre-wrap;}
.ending-actions{display:flex;gap:14px;margin-top:28px;justify-content:center;flex-wrap:wrap;}
.ending-actions .btn{padding:10px 24px;}

/* 追逐黑影（蜕皮） */
#chase-ghost{filter:drop-shadow(0 0 22px rgba(120,0,0,.4));}
#chase-ghost svg{filter:blur(.4px);}

/* ============================================================
   【第三轮返工】蜕皮聊天室 / 回忆窗景照片 / 终章与结局写实
   ============================================================ */

/* ---------- 深夜 2003 聊天室 ---------- */
#molting-world{background:#0c0f1c;}
.chat-desktop{position:absolute;inset:0;
  background:linear-gradient(160deg,#1a2440 0%,#0d1426 70%,#080b16 100%);}
.chat-icon{position:absolute;width:64px;text-align:center;color:#dce6ff;
  font-family:var(--f-sans);font-size:12px;line-height:1.4;white-space:pre-line;cursor:pointer;}
.chat-win{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(880px,92%);height:min(560px,84%);display:flex;flex-direction:column;
  background:#c0c0c0;border:2px outset #fff;box-shadow:0 10px 40px rgba(0,0,0,.6);
  font-family:var(--f-sans);}
.chat-titlebar{background:linear-gradient(90deg,#000080,#1084d0);color:#fff;
  padding:3px 8px;display:flex;justify-content:space-between;font-size:13px;font-weight:bold;}
.chat-mini span{padding:0 4px;}
.chat-menubar{background:#c0c0c0;padding:2px 8px;font-size:12px;border-bottom:1px solid #999;}
.chat-split{flex:1;display:flex;min-height:0;}
.chat-body{flex:1;background:#fff;overflow:auto;padding:8px;font-size:13px;line-height:1.85;
  border:1px inset #888;margin:6px;margin-right:0;}
.chat-line{color:#222;}
.chat-line.sys{color:#005500;}
.chat-line.user{}
.chat-line.glitch{color:#7a2a2a;font-weight:bold;}
.chat-sys{color:#888;font-size:12px;}
.chat-users{width:150px;background:#e8e8f0;border:1px inset #888;margin:6px;
  margin-left:6px;overflow:auto;padding:4px;font-size:12px;}
.cu{display:flex;align-items:center;gap:5px;padding:2px 2px;color:#1a5a1a;}
.cu-dot::before{content:"●";font-size:10px;}
.cu.off{color:#9a9a9a;}
.cu.off .cu-dot::before{content:"○";}
.chat-inputbar{background:#c0c0c0;border-top:1px solid #999;padding:4px 8px;font-size:12px;
  display:flex;gap:6px;align-items:center;}
.chat-input{flex:1;background:#fff;border:1px inset #888;padding:2px 6px;color:#666;}
.chat-go{position:absolute;left:50%;bottom:4%;transform:translateX(-50%);z-index:20;
  text-align:center;}
.chat-go .btn{padding:12px 26px;font-size:15px;}

/* 追逐阶段 */
#molting-world.chasing{background:#0a0806;}
#molting-world.chasing .chat-desktop,#molting-world.chasing .chat-win{display:none;}
#chase-ghost img{width:100%;height:100%;object-fit:cover;
  filter:brightness(.22) contrast(1.1) drop-shadow(0 0 26px rgba(120,0,0,.5));}
.chase-held{position:absolute;inset:0;z-index:95;background:#000;display:flex;
  flex-direction:column;align-items:center;justify-content:center;color:#c9f0c0;font-size:16px;}
.chase-flash{position:absolute;inset:0;z-index:90;background:rgba(0,0,0,.4);
  display:flex;align-items:flex-end;justify-content:center;padding-bottom:30px;
  color:#e8e0d0;font-size:15px;}

/* ---------- 回忆窗景：照片底 ---------- */
.m-photobg{position:absolute;inset:0;background-size:cover;background-position:center;
  border-radius:6px;border:9px solid #6b5236;
  box-shadow:0 12px 44px rgba(0,0,0,.55),inset 0 0 70px rgba(0,0,0,.22);}
/* 信封作为透明投放热区仍叠在白天照片上 */
.memory-world .m-envelope{position:absolute;right:14%;bottom:16%;width:104px;height:66px;
  background:rgba(242,230,200,.5);border:1px dashed rgba(120,90,40,.7);z-index:3;
  display:flex;align-items:flex-end;justify-content:center;padding-bottom:5px;
  font-size:12px;color:#5a4020;cursor:pointer;}
/* 火灾阶段：仅轻微光晕，不高频闪烁（光敏友好） */
.memory-world.fire .m-photobg{animation:fireGlow 3.5s ease-in-out infinite;}
@keyframes fireGlow{0%,100%{filter:brightness(1);}50%{filter:brightness(1.18);}}
body.photosensitive .memory-world.fire .m-photobg{animation:none;}

/* ---------- 终章干净女孩：照片 ---------- */
.finale-figure img{height:100%;width:auto;object-fit:contain;}

/* ---------- 真结局：平静小美 + 墓地照片 ---------- */
.ending-world.whitepage.peace{flex-direction:column;}
.peace-img{max-height:46vh;border-radius:6px;box-shadow:0 12px 40px rgba(0,0,0,.25);
  margin-bottom:22px;filter:sepia(.12);}
.ending-world.cemetery{
  background-image:url("../img/depth/cemetery.jpg");
  background-size:cover;background-position:center;color:#1f262e;}
.cemetery-scene{background:rgba(232,238,244,.32);padding:18px;border-radius:6px;}

/* ============================================================
   感谢游玩页（三结局统一）—— 老网页 / 信纸 / 胶片质感
   ============================================================ */
.ending-world.thanks{justify-content:flex-start;padding:60px 20px 54px;cursor:default;}
.thanks-card{width:min(660px,93%);margin:auto;text-align:center;animation:endFade 1.8s ease;}
.thanks-eyebrow{font-family:var(--f-mono);font-size:12px;letter-spacing:3px;opacity:.62;margin-bottom:22px;}
.thanks-title{font-family:var(--f-serif);font-size:clamp(26px,4.6vw,38px);letter-spacing:8px;
  margin-bottom:32px;text-indent:8px;}
.thanks-body{font-family:var(--f-serif);font-size:16.5px;line-height:2.5;}
.thanks-body p{margin-bottom:1.15em;white-space:pre-wrap;}
.thanks-sign{margin-top:30px;font-family:var(--f-serif);font-size:15px;letter-spacing:2px;opacity:.85;}
.thanks-endrule{margin:36px 0 4px;font-family:var(--f-mono);font-size:11px;letter-spacing:3px;opacity:.55;}
.thanks-card .ending-actions{margin-top:26px;}

/* 真结局：暖暗房间，一支蜡烛的光晕 */
.thanks--remember{background:radial-gradient(circle at 50% 32%,#161426,#070609 78%);color:#e2d9c6;}
.thanks--remember::before{content:"";position:absolute;left:50%;top:22%;transform:translateX(-50%);
  width:460px;height:460px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(255,214,140,.14),transparent 66%);}
.thanks--remember .thanks-title{color:#f3e8cd;text-shadow:0 0 22px rgba(255,220,150,.25);}

/* 离开：近黑冷调，计数器一行幽红 */
.thanks--run{background:radial-gradient(circle at 50% 40%,#08080b,#010102 80%);color:#9b948a;}
.thanks--run .thanks-title{color:#cfc7bb;}

/* 留下：2003 暖信纸 */
.thanks--stay{background:linear-gradient(180deg,#f6eccf,#e2d1ac);color:#4a3c28;}
.thanks--stay .thanks-title{color:#5c4526;}
.thanks--stay .thanks-endrule{opacity:.5;}

/* 「留盏灯」按钮：旧网页灰按钮，悬停时泛一点烛光 */
.btn-lamp{color:#3a2c14;border-color:#fff #000 #000 #fff;}
.btn-lamp:hover{box-shadow:0 0 12px rgba(255,214,140,.55);border-color:#fff;}
