/* ============================================================
   恐怖氛围层 —— 渐进腐化版
   基线(未发现任何诡异处)：不施加任何效果，保持原网站正常配色。
   每"点入"一个诡异处，corruption.js 会 +1 并加深腐化：
     · html.d-on      —— 已进入腐化(发现数>=1)
     · --dread        —— 发现数(0..6)，驱动强度
     · html.d-flicker —— 发现数>=2：灯管闪
     · html.d-whisper —— 发现数>=3：浮出低语
   ============================================================ */

/* —— 全局：降饱和/压暗/冷色偏 ——
   强度用 --dv（视觉强度）而不是 --dread（等级）。
   两者的映射在 corruption.js 里：0 / 0.12 / 0.45 / 1.3 / 2.4 / 3.6 / 5。

   为什么要分开：等级是**进度**，视觉是**表达**，它们不该是同一条直线。
   原来直接按等级线性缩放，L1 就已经 saturate(0.86) —— 玩家刚点开一个内部页面，
   整站当场发灰，「这是个正常网站」的前提当场作废。
   而那个前提是后面所有恐怖的对比基准，花光了就没有了。

   现在：L1 几乎不可察觉，L2 只是「今天屏幕有点暗？」，L3 起才真的开始掉色。 */
html.d-on {
  filter:
    saturate(calc(1 - 0.14 * var(--dv)))
    brightness(calc(1 - 0.045 * var(--dv)))
    contrast(calc(1 + 0.02 * var(--dv)))
    sepia(calc(0.025 * var(--dv)))
    hue-rotate(calc(-2deg * var(--dv)));
}
/* 看「原图」时摘掉全局滤镜。
   根元素的 filter 会把放大层一起压暗去色 —— 而放大层存在的意义
   恰恰是让玩家看清背景里那块东西。滤镜留着等于把线索又藏回去。
   顺带在设定上也说得通：那个查看器写着「未经修饰」。 */
html.zooming.d-on { filter: none !important; }
html.zooming.d-on body::after { display: none !important; }

/* 纯白底渐变旧纸色。
   **从 L3 才换**，而且分两档。
   原来 L1 就整页硬切白→米灰 —— 那是个一眼就看得出的突变，
   玩家会立刻知道"网站变了"，而不是"我是不是看错了"。 */
html[data-dread="3"] body,
html[data-dread="4"] body { background: #e6e3db !important; }
html[data-dread="5"] body,
html[data-dread="6"] body { background: #dcd8ce !important; }

/* —— 颗粒 + 暗角 覆盖层：透明度随腐化增强(基线不渲染) —— */
html.d-on body::after {
  content: "";
  position: fixed; inset: 0; pointer-events: none; z-index: 9998;
  background-image:
    radial-gradient(130% 100% at 50% 42%, rgba(0,0,0,0) 46%, rgba(12,16,12,0.55) 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: cover, 150px 150px;
  mix-blend-mode: multiply;
  opacity: calc(0.12 * var(--dv));
}

/* —— 缩略图随腐化去色压暗(pastel 底 + 可爱 emoji 逐渐失色) —— */
html.d-on #pet-results article > div:first-child,
html.d-on .card .thumb,
html.d-on .pc .th,
html.d-on [style*="font-size:58px"], html.d-on [style*="font-size:60px"],
html.d-on [style*="font-size:54px"], html.d-on [style*="font-size:46px"],
html.d-on [style*="font-size:44px"], html.d-on [style*="font-size:42px"] {
  filter: grayscale(calc(0.30 * var(--dv))) brightness(calc(1 - 0.04 * var(--dv))) contrast(1.03) !important;
}

/* 腐化后：卡片 hover 不再活泼放大，改成静止沉降 */
html.d-on .card:hover, html.d-on article:hover, html.d-on .pc:hover {
  transform: none !important; box-shadow: 0 1px 3px rgba(0,0,0,.25) !important;
}

/* —— 发现数>=2：极缓慢的灯管闪 —— */
@keyframes flr { 0%,96%,100%{opacity:1} 97%{opacity:.94} 98%{opacity:.99} 99%{opacity:.9} }
html.d-flicker #wrapper, html.d-flicker body { animation: flr 11s linear infinite; }

/* —— 发现数>=3：页面左下角浮出一句几乎看不清的话 —— */
html.d-whisper body::before {
  content: "它记得你。";
  position: fixed; left: 12px; bottom: 10px; z-index: 9999;
  color: rgba(150,110,102,0.42); font-size: 12px; letter-spacing: 3px; pointer-events: none;
}

/* ---- 可读性保底 ----
   腐化会整体压暗，但正文不能掉到读不清。
   镜像站正文用 #666，配上腐化后的米灰底只有 4.03:1（WCAG AA 要求 4.5）。
   这里把正文压深一档，氛围交给 filter 去做，文字保持可读。 */
html.d-on #content p,
html.d-on #content li,
html.d-on #content td,
html.d-on #content dd,
html.d-on .section p,
html.d-on .section li{
  color:#4d4d4d;
}
html.d-on #content .txt-blue,
html.d-on #content h3,
html.d-on #content h4,
html.d-on #content h5{
  color:#2f5b57;
}

/* —— 非目录记录：检索框敲对关键词才会出现的东西 ——
   刻意做成"系统吐出来的一张纸"，和旁边花花绿绿的宠物卡片完全不是一个东西。
   它不随腐化变化 —— 这类记录从一开始就是这个样子，是你先前没看见而已。 */
.vault-rec{background:#12161a;border:1px solid #2b3339;border-left:3px solid #7c4a3e;
  border-radius:3px;padding:16px 18px;margin:0 0 18px;
  font:13px/1.95 Consolas,"Courier New","PingFang SC","Microsoft YaHei",monospace;color:#9aa39c;}
.vault-rec .vr-h{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;
  border-bottom:1px solid #262d33;padding-bottom:8px;margin-bottom:10px;}
.vault-rec .vr-no{color:#6d7a72;font-size:12px;letter-spacing:1px;}
.vault-rec .vr-t{color:#c3b0a8;font-size:14px;font-weight:700;letter-spacing:.5px;}
.vault-rec .vr-d{margin:0;white-space:pre-wrap;font:inherit;color:#a9b2ab;}
.vault-rec .vr-f{margin-top:10px;color:#5c665e;font-size:11.5px;}
.vault-rec .vr-c{margin-top:6px;color:#7c4a3e;font-size:11.5px;letter-spacing:1px;}
