/* ============ 阴间 · 祭祀 · 官方文书主题（白底质感） ============ */
:root{
  --paper:#f1ede3;          /* 宣纸白 */
  --paper-2:#fbf9f4;        /* 文书白 */
  --ink:#232020;            /* 墨黑 */
  --ink-soft:#5a554c;       /* 淡墨 */
  --seal:#9e2b25;           /* 封印红 */
  --gold:#b08d3e;           /* 祭祀金 */
  --line:#d6cfbf;           /* 细线 */
  --line-strong:#bcb29c;
  --jade:#3f7d6e;           /* 幽绿（魂火） */
  --shadow:0 10px 34px rgba(60,45,30,.16);
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:"Noto Serif SC","Songti SC","STSong","SimSun",serif;
  color:var(--ink);
  background:
    radial-gradient(1200px 700px at 50% -8%, #fbf8f1 0%, transparent 60%),
    var(--paper);
  background-attachment:fixed;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
  line-height:1.7;
}
/* 纸张纹理 */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.5;
  background-image:
    repeating-linear-gradient(0deg, rgba(120,100,70,.035) 0 1px, transparent 1px 3px),
    repeating-linear-gradient(90deg, rgba(120,100,70,.035) 0 1px, transparent 1px 3px);
}

#app{position:relative;z-index:1;max-width:800px;margin:0 auto;padding:18px 18px 44px;}

/* 仿浏览器地址栏（每页显示各自「官网」域名） */
.urlbar{
  display:flex;align-items:center;gap:7px;
  background:var(--paper-2);border:1px solid var(--line-strong);
  border-radius:10px;padding:7px 12px;margin-bottom:14px;
  font-family:"Menlo","Consolas",monospace;font-size:clamp(11px,3.2vw,13px);
  box-shadow:var(--shadow);
}
.url-dot{width:9px;height:9px;border-radius:50%;display:inline-block;}
.url-dot.r{background:#cf5b52;}.url-dot.y{background:#d8b54e;}.url-dot.g{background:#6fae8a;}
.url-field{flex:1;display:flex;align-items:center;gap:6px;background:#fff;
  border:1px solid var(--line);border-radius:7px;padding:4px 9px;overflow:hidden;}
.url-lock{opacity:.6;font-size:11px;}
.url-text{color:var(--jade);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.3px;}

/* 站点导航 */
.topnav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;border-bottom:1px solid var(--line);padding-bottom:10px;}
.topnav a{color:var(--ink-soft);text-decoration:none;font-size:13px;padding:5px 10px;border-radius:8px;border:1px solid transparent;}
.topnav a:hover{color:var(--seal);border-color:var(--line);}
.topnav a.cur{color:var(--seal);border-color:var(--seal);background:rgba(158,43,37,.06);}
.topnav a.locked{color:#9a9284;cursor:not-allowed;opacity:.75;}
.topnav a.locked:hover{color:#9a9284;border-color:transparent;}

/* 文书头 + 红印章 */
.site-head{position:relative;border-bottom:2px solid var(--ink);padding-bottom:14px;margin-bottom:16px;}
.site-head .gov{font-size:12px;color:var(--ink-soft);letter-spacing:.22em;}
.site-head h1{font-size:clamp(20px,5.6vw,28px);margin:6px 0 0;letter-spacing:.04em;font-weight:700;}
.site-head::after{
  content:"封";position:absolute;right:6px;top:0;width:46px;height:46px;border-radius:50%;
  border:2px solid var(--seal);color:var(--seal);display:flex;align-items:center;justify-content:center;
  font-size:20px;transform:rotate(-12deg);opacity:.82;
  box-shadow:inset 0 0 0 1px rgba(158,43,37,.4);
}

/* 正文 */
.site-body{line-height:1.95;font-size:clamp(14px,3.8vw,16px);}
.site-body p{margin:10px 0;}
.site-body b{color:var(--seal);font-weight:600;}
.notice{border-left:4px solid var(--seal);background:rgba(158,43,37,.06);
  padding:10px 14px;border-radius:0 8px 8px 0;margin:14px 0;font-size:14px;color:var(--ink-soft);}

/* 区块面板 */
.panel{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:14px 0;background:var(--paper-2);box-shadow:var(--shadow);}
.panel h3{margin:0 0 8px;color:var(--gold);font-size:15px;letter-spacing:.06em;border-bottom:1px dashed var(--line);padding-bottom:6px;}
.panel p{margin:8px 0;line-height:1.9;}
.panel.links a{display:inline-block;margin:6px 12px 6px 0;color:var(--jade);text-decoration:underline;}

/* 时间线 */
.timeline{margin:12px 0 4px;border-left:2px solid var(--line-strong);padding-left:16px;}
.timeline .t{margin:12px 0;line-height:1.8;}
.timeline .t b{color:var(--seal);}
.timeline .t.ghost b{color:var(--ink);text-decoration:line-through;}

/* 名单 */
.roster{margin:18px 0;border:1px solid var(--line);border-radius:10px;padding:12px 16px;background:var(--paper-2);}
.roster h3{margin:0 0 8px;font-size:15px;color:var(--gold);letter-spacing:.08em;}
.roster ul{margin:0;padding-left:20px;line-height:2;font-size:14px;}
.roster .dim,.dim{color:var(--ink-soft);font-size:13px;}

/* 站内检索 */
.search-box{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:16px 0 4px;
  background:var(--paper-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;box-shadow:var(--shadow);}
.search-box label{color:var(--ink-soft);font-size:14px;}
.search-box .text-input{min-width:180px;flex:1;}
.search-box .btn{padding:11px 16px;font-size:14px;}
#searchResult{margin-top:8px;}
.reveal{border-left:3px solid var(--seal);background:rgba(158,43,37,.07);
  padding:10px 14px;border-radius:0 8px 8px 0;margin:8px 0;line-height:1.8;font-size:14px;animation:fadein .4s ease;}
.reveal.dim{border-color:var(--line-strong);background:rgba(0,0,0,.03);color:var(--ink-soft);}
@keyframes fadein{from{opacity:0;transform:translateY(-4px);}to{opacity:1;}}

/* 内部系统登录 */
.login-box{margin:16px 0;border:1px dashed var(--seal);border-radius:10px;padding:12px 14px;background:rgba(158,43,37,.04);}
.login-box h3{margin:0 0 8px;color:var(--seal);font-size:14px;}
.login-box .row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0;}
.login-box label{font-size:13px;color:var(--ink-soft);min-width:64px;}
.login-box .text-input{min-width:160px;flex:1;}
.login-box .btn{padding:10px 16px;font-size:14px;}
.appendix{margin-top:10px;border-left:3px solid var(--jade);background:rgba(63,125,110,.08);
  padding:10px 14px;border-radius:0 8px 8px 0;line-height:1.9;font-size:14px;display:none;}

/* 评论区 */
.comments{margin-top:22px;border-top:1px dashed var(--line-strong);padding-top:14px;}
.comments h2{font-size:15px;color:var(--ink-soft);letter-spacing:.1em;margin:14px 0 10px;}
.cmt{background:var(--paper-2);border:1px solid var(--line);border-radius:10px;
  padding:10px 12px;margin:10px 0;font-size:14px;line-height:1.7;box-shadow:var(--shadow);}
.cmt .name{color:var(--jade);font-size:12px;margin-bottom:3px;}
.cmt.ghost{opacity:.92;border-color:rgba(158,43,37,.45);background:rgba(158,43,37,.04);}
.cmt.ghost .name{color:var(--seal);}
.cmt a{color:var(--gold);text-decoration:underline;word-break:break-all;}

/* 图片占位/展示 */
.photo{position:relative;width:100%;aspect-ratio:16/10;margin:14px 0;border:1px dashed var(--line-strong);
  border-radius:10px;background:repeating-linear-gradient(45deg,rgba(120,100,70,.06) 0 12px,transparent 12px 24px);
  display:flex;align-items:center;justify-content:center;text-align:center;
  color:var(--ink-soft);font-size:13px;padding:16px;line-height:1.7;overflow:hidden;}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.photo .tag{position:relative;z-index:1;background:rgba(241,237,227,.85);border-radius:8px;padding:8px 14px;}
body.scared .photo{border-color:#5a3a3a;background:repeating-linear-gradient(45deg,rgba(201,69,59,.08) 0 12px,transparent 12px 24px);}
body.scared .photo img{filter:grayscale(.3) contrast(1.1) brightness(.85) hue-rotate(-8deg);}
body.scared .photo .tag{background:rgba(20,12,12,.85);color:var(--ink);}

/* 按钮 / 输入 / 密码门 */
.btn{font-family:inherit;cursor:pointer;border:1px solid var(--line-strong);
  background:var(--paper-2);color:var(--ink);border-radius:10px;
  padding:12px 20px;font-size:15px;transition:.2s;}
.btn:hover{border-color:var(--seal);color:var(--seal);}
.btn.primary{background:linear-gradient(180deg,#b5372f,#8e231e);color:#fdf6ec;border:none;font-weight:600;letter-spacing:.05em;}
.btn.primary:hover{box-shadow:0 0 18px rgba(158,43,37,.35);color:#fff;}
.input-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;justify-content:center;}
.text-input{font-family:inherit;background:#fff;border:1px solid var(--line-strong);
  color:var(--ink);border-radius:10px;padding:12px 14px;font-size:15px;min-width:160px;}
.text-input:focus{outline:none;border-color:var(--seal);box-shadow:0 0 0 3px rgba(158,43,37,.12);}
.feedback{min-height:20px;margin-top:10px;text-align:center;font-size:14px;}
.feedback.bad{color:var(--seal);}.feedback.good{color:var(--jade);}
.gate{text-align:center;margin-top:18px;}

/* 结局 */
.ending{text-align:center;padding:24px 10px;}
.ending .emoji{font-size:54px;}
.ending h1{letter-spacing:.1em;margin:10px 0;}
.ending p{line-height:2;max-width:560px;margin:14px auto;}

.foot{text-align:center;color:rgba(90,85,76,.5);font-size:12px;margin-top:26px;letter-spacing:.2em;}
.back-link{display:inline-block;margin:4px 0 10px;color:var(--seal);text-decoration:none;
  border:1px solid var(--seal);border-radius:9px;padding:8px 16px;font-size:13px;letter-spacing:.05em;transition:.2s;}
.back-link:hover{background:rgba(158,43,37,.08);}

/* ===== 阴间 · 祭祀元素 ===== */
/* 手机/短信（仍用深色，作为"另一世界"入口，与白底文书形成反差） */
.phone{background:#0a0b12;border:1px solid #2a2c3c;border-radius:22px;
  max-width:420px;margin:14px auto;padding:14px;box-shadow:0 12px 40px rgba(0,0,0,.4);}
.phone-top{display:flex;justify-content:space-between;align-items:center;
  color:#8a8678;font-size:12px;padding-bottom:8px;border-bottom:1px solid #23252f;}
.sms-list{display:flex;flex-direction:column;gap:12px;margin-top:12px;}
.sms{display:flex;flex-direction:column;gap:4px;max-width:84%;}
.sms.them{align-self:flex-start;}
.sms.me{align-self:flex-end;align-items:flex-end;}
.bubble{background:rgba(255,255,255,.07);border:1px solid rgba(217,177,90,.3);
  border-radius:14px;padding:10px 13px;line-height:1.7;font-size:14px;color:#e9e3cf;}
.sms.me .bubble{background:rgba(63,125,110,.22);border-color:var(--jade);}
.sms .who{font-size:11px;color:#8a8678;}
.sms .time{font-size:10px;color:#8a8678;opacity:.7;}
.sms a.link{color:var(--gold);text-decoration:underline;word-break:break-all;}

/* 牌位 / 灵位 */
.tablet{margin:18px auto;max-width:300px;text-align:center;
  border:2px solid var(--ink);border-radius:8px 8px 4px 4px;background:var(--paper-2);
  box-shadow:var(--shadow);padding:18px 10px;position:relative;}
.tablet::before{content:"";position:absolute;top:-10px;left:50%;transform:translateX(-50%);
  width:60%;height:10px;background:var(--ink);border-radius:4px 4px 0 0;}
.tablet .dian{color:var(--seal);font-size:13px;letter-spacing:.3em;}
.tablet .name{font-size:24px;font-weight:700;margin:6px 0;letter-spacing:.1em;}
.tablet .life{color:var(--ink-soft);font-size:13px;}

/* 三炷香 */
.incense{display:flex;gap:18px;justify-content:center;margin:14px 0;}
.incense .stick{width:6px;height:54px;background:linear-gradient(180deg,#caa,#8a7);border-radius:3px;position:relative;cursor:pointer;transition:box-shadow .15s,transform .15s;}
.incense .stick:hover{box-shadow:0 0 12px rgba(231,201,138,.9);transform:translateY(-2px);}
.incense .stick[data-lit="1"]{box-shadow:0 0 16px rgba(231,201,138,.8);}
.incense .stick::after{content:"";position:absolute;top:-8px;left:50%;transform:translateX(-50%);
  width:8px;height:10px;border-radius:50% 50% 50% 50%;background:#e0a23b;
  box-shadow:0 0 10px #e0a23b;animation:flick 1.4s infinite alternate;}
@keyframes flick{from{opacity:.7;transform:translateX(-50%) scale(.9);}to{opacity:1;transform:translateX(-50%) scale(1.1);}}

/* 纸钱飘落（仅祭祀页） */
.paper-money{position:fixed;inset:0;pointer-events:none;z-index:2;overflow:hidden;}
.paper-money i{position:absolute;top:-20px;width:14px;height:20px;background:rgba(176,141,62,.5);
  border:1px solid rgba(176,141,62,.7);border-radius:2px;animation:fall linear infinite;}
@keyframes fall{to{transform:translateY(110vh) rotate(240deg);opacity:.2;}}

.whisper{font-style:italic;color:var(--ink-soft);border-left:3px solid var(--gold);
  padding:8px 12px;margin:12px 0;background:rgba(176,141,62,.06);font-size:14px;}

/* 可点击惊吓词 */
.scare-click{cursor:pointer;border-bottom:1px dashed var(--seal);transition:color .2s;}
.scare-click:hover{color:var(--seal);}

/* 人物档案 */
.profile{margin:10px 0;padding:10px 12px;border:1px solid var(--line);border-radius:9px;
  background:rgba(63,125,110,.05);line-height:1.85;font-size:14px;}
.profile b{color:var(--jade);}

/* 解签 */
.lots{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-start;margin:12px 0 4px;}
.lot-tube{width:96px;height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  border:2px solid var(--gold);border-radius:12px;background:repeating-linear-gradient(45deg,
  rgba(176,141,62,.1) 0 10px,transparent 10px 20px);cursor:pointer;transition:transform .18s,box-shadow .18s;
  flex-shrink:0;user-select:none;}
.lot-tube:hover{transform:translateY(-4px) rotate(-3deg);box-shadow:0 6px 18px rgba(176,141,62,.4);}
.lot-tube:active{transform:scale(.94);}
.lot-tube .tube-ico{font-size:30px;}
.lot-tube .tube-txt{font-size:13px;color:var(--gold);letter-spacing:.15em;}
.lot-tube.shaking{animation:lotShake .55s ease;}
@keyframes lotShake{
  0%,100%{transform:rotate(0);}
  15%{transform:rotate(-8deg) translateX(-3px);}
  30%{transform:rotate(7deg) translateX(3px);}
  45%{transform:rotate(-6deg) translateX(-2px);}
  60%{transform:rotate(5deg) translateX(2px);}
  75%{transform:rotate(-3deg);}
}
.lot-prog{text-align:center;font-size:12px;color:var(--ink-soft);margin-top:8px;letter-spacing:.08em;}
.lot-card.drawn{animation:lotFly .38s cubic-bezier(.2,.9,.3,1.2) both;}
@keyframes lotFly{
  from{opacity:0;transform:translateY(-26px) scale(.55) rotate(-6deg);}
  to{opacity:1;transform:none;}
}
.lot-card .lot-xt{font-size:11px;color:var(--ink-soft);border:1px solid var(--line);border-radius:8px;
  padding:1px 7px;margin-left:8px;letter-spacing:.1em;vertical-align:2px;}
body.scared .lot-prog{color:#a08978;}
body.scared .lot-card .lot-xt{color:#a08978;border-color:#4a3030;}
.lot-out{flex:1;min-width:200px;display:flex;flex-direction:column;gap:9px;}
.lot-card{border:1px solid var(--line);border-left:3px solid var(--gold);background:var(--paper-2);
  border-radius:0 9px 9px 0;padding:9px 13px;cursor:pointer;transition:transform .15s,border-color .15s;
  animation:lotIn .32s ease both;}
.lot-card:hover{border-color:var(--gold);transform:translateX(3px);}
.lot-card .lot-title{font-size:15px;font-weight:700;color:var(--gold);}
.lot-card .lot-txt{font-size:13px;color:var(--ink);line-height:1.8;margin:3px 0;}
.lot-card .lot-txt b{color:var(--gold);font-weight:700;letter-spacing:.05em;}
.lot-card .lot-seq{font-size:11px;color:var(--ink-soft);}
.lot-card.seq1{border-left-color:var(--jade);}
.lot-card.seq1 .lot-title{color:var(--jade);}
.lot-card.seq2{border-left-color:#3a5a8c;}
.lot-card.seq2 .lot-title{color:#3a5a8c;}
.lot-card.seq3{border-left-color:var(--seal);}
.lot-card.seq3 .lot-title{color:var(--seal);}
.lot-card .lot-seq{font-weight:600;}
@keyframes lotIn{from{opacity:0;transform:translateY(8px) scale(.97);}to{opacity:1;transform:none;}}
body.scared .lot-tube{border-color:#9b7a36;}
body.scared .lot-tube .tube-txt{color:#9b7a36;}
body.scared .lot-card{background:#1d1010;border-color:#4a3030;}
body.scared .lot-card .lot-txt{color:var(--ink);}
body.scared .lot-card .lot-txt b{color:#c4a878;}
body.scared .lot-card .lot-seq{color:var(--ink-soft);}

/* 遗言面板 */
.ghost-note{border:1px solid var(--seal);background:rgba(158,43,37,.05);}
.ghost-note h3{color:var(--seal);}

/* 帮助页热线 */
.hotline{color:var(--jade);font-family:"Menlo","Consolas",monospace;letter-spacing:.1em;
  cursor:pointer;text-decoration:underline dotted;}

/* 终站证据条 */
.evbar{margin:0 0 12px;padding:9px 13px;border:1px solid var(--gold);border-radius:9px;
  background:rgba(176,141,62,.1);color:var(--ink);font-size:13px;line-height:1.8;}
.evbar span:first-child{color:var(--gold);}

@media (max-width:480px){
  .urlbar{font-size:11px;}
  .phone{max-width:100%;}
  .topnav a{font-size:12px;padding:4px 7px;}
  .site-head::after{width:38px;height:38px;font-size:16px;}
}

/* ===== 突脸 / 跳脸惊吓 ===== */
.scare-overlay{position:fixed;inset:0;z-index:9999;background:#000;display:none;
  align-items:center;justify-content:center;overflow:hidden;}
.scare-overlay.show{display:flex;animation:bgFlash .6s steps(3,end);}
.scare-face{width:min(68vw,520px);transform:scale(.4);opacity:0;}
.scare-overlay.show .scare-face{animation:scareIn .62s ease-out forwards;}
.scare-overlay.big .scare-face{width:min(94vw,860px);}
.scare-img{width:100%;display:block;}
@keyframes bgFlash{0%,100%{background:#000;}30%{background:#4a0a0a;}60%{background:#000;}}
@keyframes scareIn{
  0%{transform:scale(.4) rotate(-4deg);opacity:0;}
  18%{transform:scale(1.22) rotate(2deg);opacity:1;}
  78%{opacity:1;}
  100%{transform:scale(1.3) rotate(-1deg);opacity:0;}
}

/* ===== 站点跳转：复制网址卡片 ===== */
.urlcard{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0;padding:7px 11px;
  border:1px solid #c9bfa8;border-radius:9px;background:#fff;color:#222;box-shadow:0 1px 4px rgba(0,0,0,.08);}
.urlcard .gt-site{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;color:#9e2b25;
  letter-spacing:.2px;word-break:break-all;}
.urlcard .gt-copy,.urlcard .gt-go{font:inherit;font-size:12px;line-height:1;padding:5px 11px;border-radius:6px;
  cursor:pointer;border:1px solid #c9bfa8;background:#f3efe6;color:#333;transition:filter .15s;}
.urlcard .gt-go{background:#9e2b25;color:#fff;border-color:#9e2b25;}
.urlcard .gt-copy:hover,.urlcard .gt-go:hover{filter:brightness(.94);}
.toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%) translateY(22px);
  background:#1c1712;color:#f3e9d6;padding:11px 17px;border-radius:11px;font-size:13px;line-height:1.5;
  opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:9998;
  box-shadow:0 8px 30px rgba(0,0,0,.45);max-width:92vw;text-align:center;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ===== 惊吓后页面配色（永久）===== */
body.scared{
  --paper:#150a0a;--paper-2:#1d1010;--ink:#e6d2c2;--ink-soft:#a08978;
  --seal:#c9453b;--gold:#9b7a36;--line:#4a3030;--line-strong:#5e3e3e;--jade:#6a9c8c;
  background:radial-gradient(1100px 600px at 50% -8%, #2a0f0f 0%, transparent 60%), #0d0606;
  color:var(--ink);
}
body.scared #app{max-width:800px;}
body.scared .site-head{border-bottom-color:#5a3a3a;}
body.scared .site-head::after{border-color:var(--seal);color:var(--seal);}
body.scared .urlbar{background:#1d1010;border-color:#5a3a3a;}
body.scared .url-field{background:#2a1818;border-color:#4a3030;}
body.scared .url-text{color:#c4a878;}
body.scared .topnav{border-bottom-color:#4a3030;}
body.scared .topnav a{color:var(--ink-soft);}
body.scared .topnav a:hover{color:var(--seal);border-color:#5a3a3a;}
body.scared .topnav a.cur{color:var(--seal);border-color:var(--seal);background:rgba(201,69,59,.1);}
body.scared .panel{background:#1d1010;border-color:#4a3030;}
body.scared .panel h3{color:#9b7a36;border-bottom-color:#4a3030;}
body.scared .roster,.scared .search-box,.scared .login-box,.scared .cmt{background:#1d1010;border-color:#4a3030;}
body.scared .cmt.ghost{background:rgba(201,69,59,.08);border-color:#5a3a3a;}
body.scared .cmt.ghost .name{color:#c9453b;}
body.scared .reveal{background:rgba(201,69,59,.1);border-color:#c9453b;color:var(--ink);}
body.scared .reveal.dim{background:rgba(74,48,48,.4);border-color:#4a3030;color:var(--ink-soft);}
body.scared .appendix{background:rgba(106,156,140,.1);border-color:#6a9c8c;}
body.scared .notice{background:rgba(201,69,59,.1);border-color:#c9453b;color:var(--ink);}
body.scared .whisper{background:rgba(155,122,54,.1);border-color:#9b7a36;}
body.scared .btn{background:#1d1010;border-color:#5a3a3a;color:var(--ink);}
body.scared .btn:hover{border-color:#c9453b;color:#c9453b;}
body.scared .btn.primary{background:linear-gradient(180deg,#a53028,#5e1812);color:#fbe8d8;}
body.scared .text-input{background:#1d1010;border-color:#5a3a3a;color:var(--ink);}
body.scared .text-input:focus{border-color:#c9453b;box-shadow:0 0 0 3px rgba(201,69,59,.15);}
body.scared .urlcard{background:#1d1010;border-color:#5a3a3a;color:var(--ink);}
body.scared .urlcard .gt-site{color:#c4a878;}
body.scared .urlcard .gt-copy{background:#2a1818;border-color:#5a3a3a;color:var(--ink);}
body.scared .urlcard .gt-go{background:#7a1f1a;border-color:#7a1f1a;color:#fbe8d8;}
body.scared .phone{background:#0a0506;border-color:#3a2020;}
body.scared .phone-top{border-bottom-color:#3a2020;color:#7a6a5a;}
body.scared .bubble{background:rgba(201,69,59,.08);border-color:#5a3a3a;color:#e6d2c2;}
body.scared .sms.me .bubble{background:rgba(106,156,140,.18);border-color:#6a9c8c;}
body.scared .fog{background:radial-gradient(...transparent 60%);opacity:.55;}
body.scared .evbar{background:rgba(155,122,54,.12);border-color:#9b7a36;}
body.scared .tablet{background:#1d1010;border-color:#5a3a3a;}
body.scared .tablet::before{background:#5a3a3a;}
body.scared .foot{color:rgba(160,137,120,.5);}

/* ===== 真香（替代旧版）===== */
.incense{display:flex;gap:32px;justify-content:center;margin:18px 0 8px;align-items:flex-end;}
.incense .stick{position:relative;width:4px;height:96px;cursor:pointer;transition:transform .2s;
  background:linear-gradient(180deg,#c33a32 0%,#a32a25 40%,#7a1f1c 100%);
  border-radius:1px 1px 0 0;box-shadow:inset 0 0 2px rgba(0,0,0,.3);}
.incense .stick::before{content:"";position:absolute;left:50%;top:-4px;transform:translateX(-50%);
  width:0;height:0;border-left:3px solid transparent;border-right:3px solid transparent;
  border-top:6px solid #2a1612;transition:border-top-color .2s;}
.incense .stick[data-lit="0"]:hover::before{border-top-color:#5a2826;}
.incense .stick[data-lit="1"]{background:linear-gradient(180deg,#c33a32 0%,#8a201c 60%,#4a1010 100%);}
.incense .stick[data-lit="1"]::before{width:6px;height:6px;border:none;border-radius:50%;
  background:#ffb74d;box-shadow:0 0 8px #ff8a3c,0 0 18px rgba(255,140,60,.6);
  top:-3px;animation:flicker .4s infinite alternate;}
.incense .stick[data-lit="1"]::after{content:"";position:absolute;left:50%;top:-30px;transform:translateX(-50%);
  width:14px;height:30px;background:radial-gradient(ellipse at center bottom,
  rgba(220,220,220,.55) 0%,rgba(220,220,220,.25) 40%,transparent 75%);
  filter:blur(3px);animation:smoke 2.8s linear infinite;}
@keyframes flicker{from{opacity:.85;transform:translateX(-50%) scale(.95);}to{opacity:1;transform:translateX(-50%) scale(1.1);}}
@keyframes smoke{
  0%{opacity:0;transform:translateX(-50%) translateY(0) scaleY(.5);}
  20%{opacity:.7;}
  100%{opacity:0;transform:translateX(calc(-50% + 8px)) translateY(-50px) scaleY(1.8);}
}

/* ===== 遗像 ===== */
.portrait{position:relative;width:170px;height:215px;margin:0 auto 14px;
  border:6px solid #3a2418;box-shadow:0 8px 28px rgba(0,0,0,.45),inset 0 0 0 1px rgba(0,0,0,.4);
  background:#111;overflow:hidden;}
.portrait img{width:100%;height:100%;object-fit:cover;display:block;
  transition:filter .6s,transform .6s;}
.portrait .frame{position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 24px rgba(0,0,0,.4);}
/* 正常时：黑白+轻微去饱和，庄重 */
.portrait[data-state="normal"] img{filter:grayscale(.95) contrast(1.05) brightness(.95);}
/* 点完三炷香后：变恐怖 */
.portrait[data-state="haunted"] img{filter:grayscale(.4) contrast(1.4) brightness(.8) hue-rotate(-12deg) saturate(1.4);}
.portrait[data-state="haunted"]{animation:portraitShake 1.4s ease-in-out;
  border-color:#5a1010;box-shadow:0 0 30px rgba(201,69,59,.6),inset 0 0 30px rgba(201,69,59,.4);}
.portrait[data-state="haunted"]::after{content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(180deg,transparent 0 12px,rgba(120,0,0,.08) 12px 14px);
  pointer-events:none;}
@keyframes portraitShake{
  0%,100%{transform:translateX(0) rotate(0);}
  15%{transform:translateX(-4px) rotate(-.6deg);}
  30%{transform:translateX(5px) rotate(.8deg);}
  45%{transform:translateX(-3px) rotate(-.4deg);}
  60%{transform:translateX(4px) rotate(.5deg);}
  80%{transform:translateX(-2px) rotate(-.2deg);}
}
.portrait-hint{text-align:center;font-size:12px;color:var(--ink-soft);margin:0 0 6px;letter-spacing:.05em;}

/* ===== 首页短信会话列表 ===== */
.sms-convo-list{display:flex;flex-direction:column;gap:8px;padding:8px 0;}
.sms-convo{display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid #2a2c3c;
  border-radius:14px;background:rgba(255,255,255,.04);cursor:pointer;transition:background .15s;}
.sms-convo:hover{background:rgba(255,255,255,.09);}
.sms-convo .avatar{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:18px;background:#1c1c2a;color:#cfc8b5;flex-shrink:0;}
.sms-convo .meta{flex:1;min-width:0;}
.sms-convo .row1{display:flex;justify-content:space-between;align-items:baseline;gap:6px;}
.sms-convo .name{font-size:14px;color:#e9e3cf;font-weight:600;}
.sms-convo .time{font-size:11px;color:#7a6f5a;flex-shrink:0;}
.sms-convo .preview{font-size:12px;color:#8a8678;margin-top:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sms-convo.unread .preview{color:#d8c8a0;}
.sms-convo.unread .name{color:#fff;}
.sms-convo.has-ghost{border-color:rgba(201,69,59,.5);background:rgba(201,69,59,.08);}
.sms-convo .badge{background:#c9453b;color:#fff;font-size:10px;padding:1px 6px;border-radius:9px;margin-left:4px;}
.sms-convo-back{display:inline-block;margin-bottom:10px;font-size:13px;color:#cfc8b5;cursor:pointer;padding:6px 10px;border-radius:8px;border:1px solid #2a2c3c;background:transparent;}
.sms-convo-back:hover{background:rgba(255,255,255,.06);}
.sms-convo.hidden{display:none;}
.sms-convo-data.hidden{display:none;}

/* ===== 短信实时对话：typing + 选项（无 ABC） + 消息淡入 ===== */
.sms-convo-data .sms:not(.typing){animation:smsIn .38s ease both;}
.sms-convo-data .sms:nth-child(1){animation-delay:.06s;}
.sms-convo-data .sms:nth-child(2){animation-delay:.30s;}
.sms-convo-data .sms:nth-child(3){animation-delay:.54s;}
.sms-convo-data .sms:nth-child(4){animation-delay:.78s;}
.sms-convo-data .sms:nth-child(5){animation-delay:1.02s;}
.sms-convo-data .sms:nth-child(6){animation-delay:1.26s;}
@keyframes smsIn{from{opacity:0;transform:translateY(9px);}to{opacity:1;transform:none;}}
.sms.typing{display:none;}
.typing-dot{color:#8a8678;font-size:13px;}
.typing-dot span{animation:dotPulse 1s infinite;}
.typing-dot span:nth-child(2){animation-delay:.18s;}
.typing-dot span:nth-child(3){animation-delay:.36s;}
@keyframes dotPulse{0%,60%,100%{opacity:.25;}30%{opacity:1;}}
.sms.me.opt{align-self:flex-end;align-items:flex-end;max-width:88%;}
.opt-row{display:flex;flex-direction:column;gap:7px;align-items:flex-end;}
.opt-btn{font-family:inherit;font-size:14px;color:#d8e6dd;text-align:left;max-width:100%;
  background:rgba(63,125,110,.22);border:1px solid var(--jade);border-radius:13px;
  padding:9px 13px;cursor:pointer;transition:transform .12s,background .12s;}
.opt-btn:hover{background:rgba(63,125,110,.4);transform:translateX(-3px);}
.opt-btn:active{transform:scale(.97);}

/* ===== 5 结局样式 ===== */
.ending-river{color:#c4a878;}
.ending-return{color:#9b7a36;}
.ending-half{color:#a08978;}
.ending-stub{color:#c9453b;}
.ending-loop{color:#7a6a5a;font-style:italic;}
.ending-tag{display:inline-block;padding:3px 10px;border-radius:11px;font-size:12px;letter-spacing:.1em;margin:6px 0;}
.ending-tag.r{background:rgba(155,122,54,.18);border:1px solid #9b7a36;color:#9b7a36;}
.ending-tag.g{background:rgba(106,156,140,.18);border:1px solid #6a9c8c;color:#6a9c8c;}
.ending-tag.h{background:rgba(160,137,120,.18);border:1px solid #a08978;color:#a08978;}
.ending-tag.s{background:rgba(201,69,59,.18);border:1px solid #c9453b;color:#c9453b;}
.ending-tag.l{background:rgba(80,80,80,.2);border:1px solid #7a6a5a;color:#7a6a5a;}

/* ===== 突脸 v3 增强：噪点 + glitch 切片 + 文字闪现 ===== */
.scare-noise{position:absolute;inset:0;pointer-events:none;opacity:.5;mix-blend-mode:screen;
  background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,transparent 1px 3px),
  repeating-linear-gradient(90deg,rgba(255,0,0,.04) 0 1px,transparent 1px 4px);
  animation:noiseShift .12s steps(3) infinite;}
@keyframes noiseShift{
  0%{transform:translate(0,0);}
  25%{transform:translate(-2px,1px);}
  50%{transform:translate(2px,-1px);}
  75%{transform:translate(-1px,-2px);}
  100%{transform:translate(1px,2px);}
}
.scare-word{position:absolute;left:0;right:0;bottom:11%;text-align:center;z-index:3;
  color:#e8d5c0;font-size:clamp(20px,6vw,36px);letter-spacing:.42em;font-weight:600;
  text-shadow:0 0 20px rgba(201,69,59,.9),0 0 44px rgba(201,69,59,.5);opacity:0;pointer-events:none;}
.scare-overlay.show .scare-word{animation:wordPop .42s ease-out .32s forwards;}
@keyframes wordPop{
  0%{opacity:0;transform:scale(.7) rotate(-2deg);filter:blur(6px);}
  55%{opacity:1;transform:scale(1.12) rotate(1deg);filter:blur(0);}
  100%{opacity:1;transform:scale(1);}
}
.scare-overlay.show .scare-img{
  animation:scareIn .62s ease-out forwards, glitchSlice .36s steps(2) .05s 2, jitter .14s steps(2) infinite .05s;}
@keyframes glitchSlice{
  0%{clip-path:inset(0 0 0 0);transform:translate(0,0);}
  20%{clip-path:inset(8% 0 62% 0);transform:translate(-9px,3px) skewX(-2deg);}
  40%{clip-path:inset(52% 0 18% 0);transform:translate(8px,-2px) skewX(2deg);}
  60%{clip-path:inset(28% 0 42% 0);transform:translate(-5px,1px);}
  80%{clip-path:inset(70% 0 4% 0);transform:translate(6px,-1px);}
  100%{clip-path:inset(0 0 0 0);transform:translate(0,0);}
}
@keyframes jitter{
  0%{transform:translate(0,0);}25%{transform:translate(1px,-1px);}
  50%{transform:translate(-1px,1px);}75%{transform:translate(2px,0);}100%{transform:translate(0,0);}
}

/* ===== 惊吓后精神污染层 ===== */
.pollute-layer{position:fixed;inset:0;z-index:3;pointer-events:none;overflow:hidden;}
.pollute-layer i{position:absolute;color:rgba(201,69,59,.16);font-size:14px;font-style:normal;
  font-family:"Noto Serif SC","Songti SC",serif;animation:polluteBlink ease-in-out infinite alternate;}
@keyframes polluteBlink{
  from{opacity:.05;transform:translateY(0);filter:blur(1px);}
  to{opacity:.95;transform:translateY(-9px);filter:blur(0);}
}
.pollute-whisper{position:fixed;left:0;right:0;bottom:8px;z-index:3;pointer-events:none;text-align:center;
  color:rgba(201,69,59,.26);font-size:13px;letter-spacing:.34em;white-space:nowrap;
  transform:skewX(-9deg);animation:whisperMove 16s linear infinite;user-select:none;}
@keyframes whisperMove{
  from{transform:translateX(32%) skewX(-9deg);}
  to{transform:translateX(-62%) skewX(-9deg);}
}
body.scared::after{content:"";position:fixed;inset:0;z-index:4;pointer-events:none;
  background:rgba(150,10,10,.035);animation:redPulse 2.4s ease-in-out infinite;}
@keyframes redPulse{0%,100%{opacity:.3;}50%{opacity:1;}}

/* ===== 搜索：新闻卡片（简洁） ===== */
/* 搜索结果 = 可点击的关联条目，点击后弹出对应回帖/新闻详情 */
.search-hit{margin:8px 0;padding:11px 13px;border:1px solid var(--line);border-radius:9px;
  background:var(--paper-2);cursor:pointer;display:flex;align-items:center;gap:11px;
  transition:border-color .15s,transform .15s,box-shadow .15s;box-shadow:0 1px 5px rgba(0,0,0,.05);
  animation:fadein .3s ease;}
.search-hit:hover{border-color:var(--seal);transform:translateX(4px);box-shadow:0 3px 12px rgba(158,43,37,.12);}
.search-hit .hit-icon{font-size:20px;flex-shrink:0;width:34px;height:34px;display:flex;align-items:center;
  justify-content:center;background:rgba(0,0,0,.04);border-radius:9px;}
.search-hit .hit-t{font-size:14px;font-weight:600;color:var(--ink);}
.search-hit .hit-preview{font-size:12px;color:var(--ink-soft);margin-top:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.search-hit .hit-arrow{color:var(--seal);margin-left:auto;font-size:12px;flex-shrink:0;letter-spacing:.05em;}
.news-empty{padding:12px 14px;font-size:13px;color:var(--ink-soft);
  border:1px dashed var(--line-strong);border-radius:9px;text-align:center;animation:fadein .3s ease;}
body.scared .search-hit{background:#1d1010;border-color:#4a3030;}
body.scared .search-hit .hit-t{color:var(--ink);}
body.scared .search-hit .hit-preview{color:var(--ink-soft);}
body.scared .search-hit .hit-icon{background:rgba(0,0,0,.25);}

/* 回帖/新闻详情弹层 */
.hit-modal{position:fixed;inset:0;z-index:8000;display:none;align-items:center;justify-content:center;
  background:rgba(5,3,3,.6);padding:18px;backdrop-filter:blur(2px);}
.hit-modal.show{display:flex;}
.hit-modal .modal-card{background:var(--paper-2);border:1px solid var(--line-strong);border-radius:13px;
  max-width:540px;width:100%;max-height:82vh;overflow:auto;padding:16px 19px;
  box-shadow:0 20px 70px rgba(0,0,0,.55);animation:modalIn .26s ease;position:relative;}
@keyframes modalIn{from{opacity:0;transform:translateY(16px) scale(.96);}to{opacity:1;transform:none;}}
.hit-modal .modal-x{position:absolute;top:8px;right:10px;border:none;background:transparent;
  font-size:22px;cursor:pointer;color:var(--ink-soft);line-height:1;padding:4px;z-index:2;}
.hit-modal .modal-x:hover{color:var(--seal);}
.hit-modal .modal-title{font-size:15px;font-weight:700;margin:0 24px 4px 0;color:var(--ink);line-height:1.5;}
.hit-modal .modal-src{font-size:11px;color:var(--ink-soft);margin-bottom:10px;letter-spacing:.02em;}
.hit-modal .modal-body{font-size:14px;line-height:1.95;color:var(--ink);}
.hit-modal .modal-body p{margin:8px 0;}
.hit-modal .modal-tag{display:inline-block;font-size:10px;padding:1px 8px;border-radius:8px;margin:0 0 8px;letter-spacing:.08em;}
.hit-modal .modal-tag.official{background:rgba(158,43,37,.12);color:var(--seal);}
.hit-modal .modal-tag.news{background:rgba(63,125,110,.12);color:var(--jade);}
.hit-modal .modal-tag.rumor{background:rgba(176,141,62,.14);color:var(--gold);}
.hit-modal .modal-tag.secret{background:rgba(122,31,26,.14);color:#c9453b;}
body.scared .hit-modal .modal-card{background:#1d1010;border-color:#5a3a3a;}
body.scared .hit-modal .modal-title{color:var(--ink);}
body.scared .hit-modal .modal-body{color:var(--ink);}
body.scared .hit-modal .modal-src{color:var(--ink-soft);}
body.scared .hit-modal .modal-x{color:var(--ink-soft);}

/* ===== 站内检索独立弹层 ===== */
.search-btn{font-family:inherit;font-size:14px;cursor:pointer;color:var(--seal);
  background:var(--paper-2);border:1px solid var(--line-strong);border-radius:10px;
  padding:10px 18px;transition:.18s;display:inline-flex;align-items:center;gap:7px;}
.search-btn:hover{border-color:var(--seal);box-shadow:0 0 0 3px rgba(158,43,37,.1);transform:translateY(-1px);}
body.scared .search-btn{background:#1d1010;border-color:#5a3a3a;color:#c9453b;}
.search-panel{position:fixed;inset:0;z-index:8500;display:none;flex-direction:column;
  background:rgba(8,5,5,.82);padding:22px 16px;backdrop-filter:blur(3px);}
.search-panel.show{display:flex;}
.sp-head{display:flex;gap:9px;align-items:center;max-width:620px;margin:0 auto;width:100%;
  background:var(--paper-2);border:1px solid var(--line-strong);border-radius:13px;padding:9px 12px;
  box-shadow:0 12px 40px rgba(0,0,0,.5);}
.sp-icon{font-size:18px;}
.sp-head .text-input{flex:1;min-width:0;border:none;background:transparent;box-shadow:none;padding:8px 4px;}
.sp-head .text-input:focus{box-shadow:none;}
.sp-x{background:transparent;border:none;color:var(--ink-soft);font-size:20px;padding:4px 8px;cursor:pointer;}
.sp-x:hover{color:var(--seal);}
.sp-result{max-width:620px;width:100%;margin:14px auto 0;flex:1;overflow:auto;padding:4px 2px;}
.sp-tip{max-width:620px;width:100%;margin:0 auto;font-size:12px;color:var(--ink-soft);text-align:center;
  min-height:18px;}
body.scared .sp-head{background:#1d1010;border-color:#5a3a3a;}
body.scared .sp-icon{color:#c9453b;}
body.scared .sp-tip{color:#a08978;}

/* ===== 折叠面板 ===== */
details.fold{background:var(--paper-2);border:1px solid var(--line);border-radius:11px;padding:10px 14px;margin:14px 0;}
details.fold summary{cursor:pointer;color:var(--gold);font-size:14px;letter-spacing:.06em;user-select:none;list-style:none;}
details.fold summary::-webkit-details-marker{display:none;}
details.fold summary::before{content:"▸ ";color:var(--seal);}
details.fold[open] summary::before{content:"▾ ";}
details.fold[open] .timeline{margin-top:10px;}
body.scared details.fold{background:#1d1010;border-color:#4a3030;}
body.scared details.fold summary{color:#9b7a36;}

/* ===== 终站名单逐条点亮 ===== */
.reveal-line{opacity:0;transform:translateY(10px);transition:opacity .7s ease,transform .7s ease;}
.reveal-line.on{opacity:1;transform:none;}

/* ===== 终站名单排序（第二道验证） ===== */
.sort-wrap{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:16px 0 4px;max-width:520px;margin-left:auto;margin-right:auto;}
.sort-card{font-family:inherit;width:calc(33% - 8px);min-width:130px;padding:14px 10px;border-radius:12px;
  background:var(--paper-2);border:1px solid var(--line-strong);cursor:pointer;text-align:center;
  transition:transform .15s,border-color .15s,box-shadow .15s;position:relative;}
.sort-card:hover{border-color:var(--seal);transform:translateY(-3px);box-shadow:0 6px 16px rgba(158,43,37,.15);}
.sort-card .s-name{display:block;font-size:17px;font-weight:700;color:var(--ink);letter-spacing:.08em;}
.sort-card .s-hint{display:block;font-size:11px;color:var(--ink-soft);margin-top:4px;}
.sort-card .s-seq{position:absolute;top:8px;right:10px;width:22px;height:22px;border-radius:50%;
  background:var(--line-strong);color:var(--paper-2);font-size:12px;display:flex;align-items:center;justify-content:center;font-weight:700;}
.sort-card.seq1{border-color:var(--jade);}
.sort-card.seq1 .s-seq{background:var(--jade);}
.sort-card.seq2{border-color:#3a5a8c;}
.sort-card.seq2 .s-seq{background:#3a5a8c;}
.sort-card.seq3{border-color:var(--gold);}
.sort-card.seq3 .s-seq{background:var(--gold);}
.sort-card.seq4{border-color:var(--seal);}
.sort-card.seq4 .s-seq{background:var(--seal);}
.sort-card.seq5{border-color:#7a6a5a;}
.sort-card.seq5 .s-seq{background:#7a6a5a;}
body.scared .sort-card{background:#1d1010;border-color:#5a3a3a;}
body.scared .sort-card .s-name{color:var(--ink);}
body.scared .sort-card .s-hint{color:var(--ink-soft);}
body.scared .sort-card .s-seq{background:#5a3a3a;color:#f3e9d6;}

/* ===== 终站抉择 ===== */
.choice-wrap{display:flex;flex-direction:column;gap:11px;max-width:400px;margin:18px auto 4px;}
.choice-btn{font-family:inherit;font-size:15px;color:var(--ink);text-align:center;cursor:pointer;
  background:var(--paper-2);border:1px solid var(--line-strong);border-radius:12px;
  padding:13px 16px;transition:transform .15s,border-color .15s,box-shadow .15s;}
.choice-btn:hover{border-color:var(--seal);transform:translateX(5px);box-shadow:0 4px 14px rgba(158,43,37,.15);}
.choice-btn:first-child{border-color:var(--jade);}
.choice-btn:first-child:hover{border-color:var(--jade);box-shadow:0 4px 14px rgba(63,125,110,.25);}
.choice-btn:disabled{opacity:.55;cursor:default;transform:none;}
body.scared .choice-btn{background:#1d1010;border-color:#5a3a3a;color:var(--ink);}
body.scared .choice-btn:first-child{border-color:#6a9c8c;}
