/* =====================================================================
   Adament Cabin · 亮白 + 故障赛博 阅读站
   ===================================================================== */

/* ---- WordPress 调色板变量（承载“谁在说话”的文字色，务必保留） ---- */
:root{
  --wp--preset--color--black:#000000;
  --wp--preset--color--white:#ffffff;
  --wp--preset--color--cyan-bluish-gray:#abb8c3;
  --wp--preset--color--pale-pink:#f78da7;
  --wp--preset--color--vivid-red:#cf2e2e;
  --wp--preset--color--luminous-vivid-amber:#fcb900;
  --wp--preset--color--vivid-purple:#9b51e0;

  --bg:#eef0f4;
  --paper:#ffffff;
  --ink:#15171c;
  --ink-soft:#565b66;
  --line:#d7dbe2;
  --accent:#00b3c8;      /* 青 */
  --accent-2:#ff2e88;    /* 品红 */
  --accent-3:#7a5cff;    /* 紫 */
  --mono:'Share Tech Mono','Noto Sans JP',monospace;
  --disp:'ZCOOL XiaoWei',serif;
  --body:'Noto Sans SC','Noto Sans JP',system-ui,sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--body); font-size:17px; line-height:1.9;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}

/* ---- 全局故障层 ---- */
.scanlines{position:fixed; inset:0; z-index:9998; pointer-events:none;
  background:repeating-linear-gradient(to bottom,rgba(0,0,0,.025) 0 1px,transparent 1px 3px);
  mix-blend-mode:multiply; opacity:.5;}
.noise{position:fixed; inset:0; z-index:9997; pointer-events:none; opacity:.04;
  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='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:noiseShift .7s steps(3) infinite;}
@keyframes noiseShift{0%{transform:translate(0,0)}33%{transform:translate(-2%,1%)}66%{transform:translate(1%,-2%)}100%{transform:translate(0,0)}}
@media (prefers-reduced-motion:reduce){.noise{animation:none}}

/* ---- 故障文字 ---- */
.glitch{position:relative; display:inline-block;}
.glitch::before,.glitch::after{content:attr(data-text); position:absolute; inset:0; pointer-events:none;}
.glitch::before{color:var(--accent-2); transform:translate(2px,0); mix-blend-mode:multiply; animation:gl1 4.5s infinite steps(2);}
.glitch::after{color:var(--accent); transform:translate(-2px,0); mix-blend-mode:multiply; animation:gl2 4.5s infinite steps(2);}
@keyframes gl1{0%,92%,100%{clip-path:inset(100% 0 0 0)}93%{clip-path:inset(10% 0 60% 0)}96%{clip-path:inset(50% 0 20% 0)}}
@keyframes gl2{0%,90%,100%{clip-path:inset(100% 0 0 0)}91%{clip-path:inset(40% 0 30% 0)}97%{clip-path:inset(70% 0 5% 0)}}
@media (prefers-reduced-motion:reduce){.glitch::before,.glitch::after{display:none}}

/* =================== 页眉 =================== */
.site-header{position:sticky; top:0; z-index:100; display:flex; align-items:center; gap:24px;
  padding:12px 28px; background:rgba(255,255,255,.85); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);}
.brand{display:flex; flex-direction:column; text-decoration:none; line-height:1.15;}
.brand-en{font-family:var(--mono); font-size:18px; letter-spacing:.18em; color:var(--ink);}
.brand-zh{font-family:var(--disp); font-size:12px; color:var(--ink-soft); letter-spacing:.1em;}
.site-nav{display:flex; gap:6px; margin-left:auto; flex-wrap:wrap;}
.nav-link{font-family:var(--disp); font-size:15px; text-decoration:none; color:var(--ink-soft);
  padding:5px 13px; border:1px solid transparent; border-radius:2px; transition:.18s;}
.nav-link:hover{color:var(--ink); border-color:var(--line); background:#fff;}
.nav-link.active{color:#fff; background:var(--ink); border-color:var(--ink);}
.nav-toggle{display:none; margin-left:auto; background:none; border:1px solid var(--line);
  font-size:20px; padding:2px 10px; border-radius:3px; cursor:pointer;}

/* =================== Banner（纯 CSS，无图） =================== */
.banner{position:relative; overflow:hidden; padding:104px 24px 92px; text-align:center;
  background:radial-gradient(1200px 420px at 50% -10%, #ffffff 0%, #e7ebf2 55%, #dde2ea 100%);
  border-bottom:1px solid var(--line);}
.banner-grid{position:absolute; inset:0; pointer-events:none; opacity:.5;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:46px 46px; mask-image:radial-gradient(ellipse 80% 70% at 50% 30%,#000 30%,transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 30%,#000 30%,transparent 80%);
  animation:gridDrift 18s linear infinite;}
@keyframes gridDrift{to{background-position:0 46px,46px 0}}
@media (prefers-reduced-motion:reduce){.banner-grid{animation:none}}
.banner::after{content:""; position:absolute; inset:0; pointer-events:none;
  background:repeating-linear-gradient(to bottom,transparent 0 2px,rgba(0,0,0,.035) 2px 4px);}
.banner-inner{position:relative; z-index:1;}
.banner-code{font-family:var(--mono); color:var(--accent); letter-spacing:.34em; font-size:14px;}
.banner-title{font-family:var(--disp); font-size:clamp(42px,8.5vw,92px); margin:.12em 0 .14em; letter-spacing:.05em;}
.banner-sub{font-family:var(--mono); color:var(--ink-soft); letter-spacing:.2em; font-size:13px; margin:0;}
.banner-index .banner-title{font-size:clamp(40px,7.5vw,80px);}
.banner-hidden{background:radial-gradient(1200px 420px at 50% -10%,#1a1c22 0%,#0e0f13 70%);}
.banner-hidden .banner-title,.banner-hidden .banner-sub{color:#e8eaf0;}
.banner-hidden .banner-grid{opacity:.18;}
.banner-hidden::after{background:repeating-linear-gradient(to bottom,transparent 0 2px,rgba(255,255,255,.04) 2px 4px);}

/* =================== 收容总目录（主页头部） =================== */
.catalog{max-width:1000px; margin:60px auto 10px; padding:0 24px;}
.cat-head{text-align:center; margin-bottom:30px;}
.cat-tag{font-family:var(--mono); color:var(--accent); letter-spacing:.28em; font-size:13px;}
.cat-title{font-family:var(--disp); font-size:clamp(28px,5vw,46px); letter-spacing:.16em; margin:.2em 0 .1em;}
.cat-note{font-family:var(--mono); color:var(--ink-soft); font-size:12.5px; letter-spacing:.05em; margin:0;}
.cat-group{margin:26px 0;}
.cat-h{display:flex; align-items:baseline; gap:12px; margin:0 0 12px; padding-bottom:8px;
  border-bottom:2px solid var(--ink); font-family:var(--disp);}
.cat-h span{font-size:22px; letter-spacing:.06em;}
.cat-h em{font-family:var(--mono); font-style:normal; font-size:12px; color:var(--accent); letter-spacing:.2em;}
.cat-scroll{overflow-x:auto; border:1px solid var(--line); background:var(--paper); box-shadow:0 14px 40px rgba(0,0,0,.07);}

/* ---- 表格美化（污染体目录 / 其它正文表格） ---- */
.wp-block-table{margin:1.2em 0;}
.wp-block-table table, .cat-scroll table{width:100%; border-collapse:collapse; font-size:15px; min-width:520px;}
.wp-block-table thead th{position:sticky; top:0; z-index:2;
  background:var(--ink); color:#fff; font-family:var(--disp); font-weight:400; letter-spacing:.12em;
  padding:13px 14px; text-align:center; white-space:nowrap;}
.wp-block-table tbody td{padding:11px 14px; text-align:center; border-bottom:1px solid var(--line); vertical-align:middle;}
.wp-block-table tbody tr:nth-child(even){background:#f6f8fb;}
.wp-block-table tbody tr:hover{background:#eaf6f8;}
.wp-block-table tbody tr:last-child td{border-bottom:none;}
/* 房号：黑底白字芯片（原文已是 mark；强化为芯片） */
.wp-block-table td mark.has-white-color,
.wp-block-table td mark[style*="#000000"]{display:inline-block; min-width:3.4em; padding:.15em .5em;
  background:#000 !important; color:#fff !important; font-family:var(--mono); letter-spacing:.08em; border-radius:2px;}
/* 危险级配色（JS 按关键词加 dl-* 到单元格） */
.dl{font-family:var(--mono); font-weight:700; letter-spacing:.03em; position:relative;}
td.dl::before{content:""; display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:7px; vertical-align:1px; background:currentColor;}
.dl-safe{color:#1f9d57;}      /* 无害 */
.dl-util{color:#0a9bb0;}      /* 利用 */
.dl-trap{color:#d99100;}      /* 陷阱 */
.dl-hazard{color:#e0691b;}    /* 危害 */
.dl-lethal{color:#cf2e2e;}    /* 即死 */
.dl-iso{color:#7a5cff;}       /* 隔离 */
.dl-void{color:#8a909c; text-decoration:line-through;} /* 失效 */
.dl-unknown{color:#5a6675;}   /* 未知 */
.dl-sublime{background:#000 !important; color:#fff !important; padding:.2em .55em; border-radius:2px; letter-spacing:.06em;} /* 崇高 */
.dl-sublime::before{display:none;}
.catalog .cat-head + .cat-group tbody td:nth-child(3).dl{
  color:var(--ink) !important; text-decoration:none;}
.catalog .cat-head + .cat-group tbody td:nth-child(3).dl::before{background:var(--ink);}

/* =================== 层级入口（去掉进度条） =================== */
.overview{max-width:1000px; margin:30px auto 8px; padding:0 24px;}
.ov-head{margin:0 0 14px;}
.ov-tag{font-family:var(--mono); color:var(--accent); letter-spacing:.26em; font-size:12.5px;}
.ov-table{border:1px solid var(--ink); background:var(--paper); box-shadow:0 14px 40px rgba(0,0,0,.07); position:relative;}
.ov-table::before{content:""; position:absolute; left:0; right:0; top:0; height:3px;
  background:linear-gradient(90deg,var(--accent),var(--accent-3),var(--accent-2));}
.ov-row{position:relative; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:18px;
  padding:18px 24px; text-decoration:none; color:var(--ink);
  border-bottom:1px solid var(--line); overflow:hidden;}
.ov-row:last-child{border-bottom:none;}
.ov-row::after{content:""; position:absolute; inset:0; background:var(--ink); transform:translateX(-101%); transition:transform .32s cubic-bezier(.5,0,.2,1); z-index:0;}
.ov-row:hover::after{transform:translateX(0);}
.ov-row > *{position:relative; z-index:1;}
.ov-row:hover{color:#fff;}
.ov-mark{width:12px; height:12px; background:var(--accent); transition:.2s;}
.ov-row:hover .ov-mark{background:var(--accent-2); box-shadow:0 0 12px var(--accent-2);}
.ov-name{font-family:var(--disp); font-size:26px; letter-spacing:.04em;}
.ov-go{font-family:var(--mono); font-size:13px; letter-spacing:.12em; color:var(--ink-soft); white-space:nowrap; transition:.2s;}
.ov-row:hover .ov-go{color:#fff; transform:translateX(3px);}
@media (max-width:680px){
  .ov-name{font-size:22px;}
  .wp-block-table thead th{position:static;}
  .catalog{margin:38px auto 6px; padding:0 14px;}
  .cat-head{margin-bottom:20px;}
  .cat-title{font-size:30px; letter-spacing:.08em;}
  .cat-group{margin:20px 0;}
  .cat-h{gap:8px; margin-bottom:10px;}
  .cat-h span{font-size:19px;}
  .cat-h em{font-size:10px; letter-spacing:.14em;}
  .catalog .cat-scroll{overflow:visible; border:none; background:transparent; box-shadow:none;}
  .catalog .wp-block-table{margin:.7em 0;}
  .catalog .cat-scroll table{display:block; width:100%; min-width:0; font-size:14px; border-collapse:separate;}
  .catalog .cat-scroll thead{display:none;}
  .catalog .cat-scroll tbody{display:grid; gap:8px;}
  .catalog .cat-scroll tbody tr{
    display:grid; grid-template-columns:minmax(72px,auto) minmax(0,1fr) auto; gap:3px 10px;
    padding:10px 12px; border:1px solid var(--line); background:var(--paper);
    box-shadow:0 6px 18px rgba(0,0,0,.045);}
  .catalog .cat-scroll tbody tr:nth-child(even){background:#f8fafc;}
  .catalog .cat-scroll tbody tr:hover{background:var(--paper);}
  .catalog .cat-scroll tbody td{
    display:block; padding:0; border-bottom:none; text-align:left !important; min-width:0;}
  .catalog .cat-scroll tbody td:nth-child(1){
    grid-column:1; grid-row:1 / span 2; align-self:center; font-family:var(--mono); font-weight:700;}
  .catalog .cat-scroll tbody td:nth-child(2){
    grid-column:2 / 4; grid-row:1; font-family:var(--disp); font-size:16px; line-height:1.35;}
  .catalog .cat-scroll tbody td:nth-child(3){
    grid-column:2; grid-row:2; align-self:center; font-size:12px; line-height:1.4;}
  .catalog .cat-scroll tbody td:nth-child(4){
    grid-column:3; grid-row:2; align-self:center; justify-self:end;
    font-family:var(--mono); font-size:11px; color:var(--ink-soft);
    padding:.12em .45em; border:1px solid var(--line); background:#fff; white-space:nowrap;}
  .catalog .cat-scroll tbody td:nth-child(4)::before{content:"第";}
  .catalog .cat-scroll tbody td:nth-child(4)::after{content:"层";}
  .catalog .cat-scroll td mark.has-white-color,
  .catalog .cat-scroll td mark[style*="#000000"]{min-width:auto; padding:.16em .46em;}
}

/* =================== 阅读区 =================== */
.reading{max-width:860px; margin:0 auto; padding:52px 22px 80px;}
.content{background:transparent;}
.content p{margin:0 0 1.15em;}
.content a{color:inherit; text-decoration:none; transition:.15s;}
.content a:hover{color:var(--accent); text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--accent);}
.content a.kb-button:hover{text-decoration:none;}
.content h1,.content h2,.content h3{font-family:var(--disp); line-height:1.4;}
.content hr{border:none; border-top:1px dashed var(--line); margin:2em 0;}
.content img{max-width:100%; height:auto;}

/* ---- 文字样式：保留原作语义（谁在说话） ---- */
.has-cyan-bluish-gray-color{color:var(--wp--preset--color--cyan-bluish-gray)!important;}
.has-white-color{color:var(--wp--preset--color--white)!important;}
.has-pale-pink-color{color:var(--wp--preset--color--pale-pink)!important;}
.has-vivid-red-color{color:var(--wp--preset--color--vivid-red)!important;}
.has-luminous-vivid-amber-color{color:var(--wp--preset--color--luminous-vivid-amber)!important;}
.has-vivid-purple-color{color:var(--wp--preset--color--vivid-purple)!important;}
.has-black-color{color:var(--wp--preset--color--black)!important;}
/* 黑底白字 = “概念崇高”角色；黑底黑字 = 被涂黑的隐藏文本（需选中可读）。 */
mark{background-color:transparent; color:inherit; padding:.02em .12em; border-radius:2px;
  -webkit-box-decoration-break:clone; box-decoration-break:clone;}
del,s{text-decoration:line-through; text-decoration-thickness:1.5px;}
strong{font-weight:700;} em{font-style:italic;}

/* =================== 舱室选择条（原 Kadence 标签页 / 房间） =================== */
.wp-block-kadence-tabs{margin:1.8em 0;}
.kt-tabs-title-list{list-style:none; display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0;}
.kt-tabs-title-list li{margin:0;}
.kt-tab-title{display:inline-flex; align-items:center; cursor:pointer; text-decoration:none !important;
  font-family:var(--disp); font-size:15px; color:var(--ink-soft);
  padding:8px 16px; background:#e9edf2; border:1px solid var(--line);
  border-radius:3px; transition:border-color .16s, box-shadow .16s; white-space:nowrap; position:relative; overflow:hidden;}
.kt-tab-title:hover,.content a.kt-tab-title:hover{background:#e9edf2; color:var(--ink-soft); border-color:var(--line); text-decoration:none !important;}
.kt-title-item.kt-tab-title-active .kt-tab-title{color:var(--ink-soft); background:#fff; border-color:var(--ink); box-shadow:inset 0 0 0 1px var(--ink);}
.kt-title-item.kt-tab-title-active .kt-tab-title:hover,.content .kt-title-item.kt-tab-title-active a.kt-tab-title:hover{background:#fff; color:var(--ink-soft); border-color:var(--ink);}

/* ---- 特殊房间名：未选中时按人物/集合体标识色显示。
   暂无 hover 破碎特效：浮动时与静止一致。 */
.kt-tab-title.room-lenxi{--room-color:#fff;}
.kt-tab-title.room-shafang{--room-color:var(--wp--preset--color--vivid-purple);}
.kt-tab-title.room-biyi{--room-color:var(--wp--preset--color--vivid-red);}
.kt-tab-title.room-heiqi{--room-color:var(--wp--preset--color--cyan-bluish-gray);}
.kt-tab-title.room-ayame{--room-color:#b27dab;}
.kt-tab-title.room-guilt{--room-color:#702020;}
.kt-tab-title.room-molu{--room-color:var(--wp--preset--color--luminous-vivid-amber);}
.kt-tab-title.room-bailuo{--room-color:var(--ink); text-decoration:line-through !important; text-decoration-thickness:1.5px !important;}

/* 特殊房间：未选中 = 对应文字色 + 黑底。 */
.kt-tab-title.room-special{
  color:var(--room-color); background:#000; border-color:#000; box-shadow:none;}

/* 特殊房间：选中 = 对应文字色 + 对应色边框 + 黑底。 */
.kt-title-item.kt-tab-title-active .kt-tab-title.room-special{
  color:var(--room-color); background:#000; border-color:var(--room-color); box-shadow:inset 0 0 0 1px var(--room-color);}

/* 特殊房间：浮动 = 对应文字色 + 对应色边框 + 白底。 */
.kt-tab-title.room-special:hover,
.content a.kt-tab-title.room-special:hover,
.kt-title-item.kt-tab-title-active .kt-tab-title.room-special:hover,
.content .kt-title-item.kt-tab-title-active a.kt-tab-title.room-special:hover{
  color:var(--room-color); background:#fff; border-color:var(--room-color); box-shadow:inset 0 0 0 1px var(--room-color); text-decoration:none !important;}
.kt-tab-title.room-lenxi:hover,
.content a.kt-tab-title.room-lenxi:hover,
.kt-title-item.kt-tab-title-active .kt-tab-title.room-lenxi:hover,
.content .kt-title-item.kt-tab-title-active a.kt-tab-title.room-lenxi:hover{
  color:var(--room-color); background:#000; border-color:var(--room-color); box-shadow:inset 0 0 0 1px var(--room-color); text-decoration:none !important;}
.kt-title-item.kt-tab-title-active .kt-tab-title.room-bailuo,
.kt-tab-title.room-bailuo:hover,
.content a.kt-tab-title.room-bailuo:hover{ text-decoration:line-through !important; text-decoration-thickness:1.5px !important;}

/* 雨祝菖蒲 / █失心罪：默认按普通房间，仅 hover/active 显示对应色。 */
.kt-tab-title.room-ayame,.kt-tab-title.room-guilt{
  color:var(--ink-soft); background:#e9edf2; border-color:var(--line); box-shadow:none;}
.kt-tab-title.room-ayame:hover,.content a.kt-tab-title.room-ayame:hover,
.kt-tab-title.room-guilt:hover,.content a.kt-tab-title.room-guilt:hover{
  color:var(--room-color); background:#e9edf2; border-color:var(--line); box-shadow:none; text-decoration:none !important;}
.kt-title-item.kt-tab-title-active .kt-tab-title.room-ayame,
.kt-title-item.kt-tab-title-active .kt-tab-title.room-guilt{
  color:var(--room-color); background:#e9edf2; border-color:var(--room-color); box-shadow:inset 0 0 0 1px var(--room-color);}
.kt-title-item.kt-tab-title-active .kt-tab-title.room-ayame:hover,
.content .kt-title-item.kt-tab-title-active a.kt-tab-title.room-ayame:hover,
.kt-title-item.kt-tab-title-active .kt-tab-title.room-guilt:hover,
.content .kt-title-item.kt-tab-title-active a.kt-tab-title.room-guilt:hover{
  color:var(--room-color); background:#e9edf2; border-color:var(--line); box-shadow:none;}

/* 白络缇丝：默认普通底色删除线；hover/active 黑底白框。 */
.kt-tab-title.room-bailuo{color:var(--ink); background:#e9edf2; border-color:var(--line);}
.kt-tab-title.room-bailuo:hover,.content a.kt-tab-title.room-bailuo:hover,
.kt-title-item.kt-tab-title-active .kt-tab-title.room-bailuo,
.kt-title-item.kt-tab-title-active .kt-tab-title.room-bailuo:hover,
.content .kt-title-item.kt-tab-title-active a.kt-tab-title.room-bailuo:hover{
  color:#fff; background:#000; border-color:#fff; box-shadow:inset 0 0 0 1px #fff; text-decoration:line-through !important; text-decoration-thickness:1.5px !important;}

/* 白山莲汐：hover/active 使用页头式 RGB 错位故障。 */
.kt-tab-title.room-lenxi::before,.kt-tab-title.room-lenxi::after{
  content:attr(data-room-label); position:absolute; inset:8px 16px; pointer-events:none; opacity:0;
  white-space:nowrap; overflow:hidden; mix-blend-mode:screen;}
.kt-tab-title.room-lenxi:hover::before,
.kt-title-item.kt-tab-title-active .kt-tab-title.room-lenxi::before{
  opacity:.8; color:var(--accent-2); transform:translate(2px,0); animation:lenxiRoomGlitchA 3.8s infinite steps(2);}
.kt-tab-title.room-lenxi:hover::after,
.kt-title-item.kt-tab-title-active .kt-tab-title.room-lenxi::after{
  opacity:.8; color:var(--accent); transform:translate(-2px,0); animation:lenxiRoomGlitchB 3.8s infinite steps(2);}
@keyframes lenxiRoomGlitchA{0%,87%,100%{clip-path:inset(0 0 0 0)} 90%{clip-path:inset(0 0 62% 0)} 93%{clip-path:inset(52% 0 18% 0)}}
@keyframes lenxiRoomGlitchB{0%,84%,100%{clip-path:inset(0 0 0 0)} 88%{clip-path:inset(70% 0 0 0)} 95%{clip-path:inset(18% 0 58% 0)}}
body.page-layer-3b .kt-tab-title:not(.room-special){background:var(--wp--preset--color--luminous-vivid-amber); color:var(--ink-soft);}
body.page-layer-3b .kt-tab-title:not(.room-special):hover,
body.page-layer-3b .content a.kt-tab-title:not(.room-special):hover{background:var(--wp--preset--color--luminous-vivid-amber); color:var(--ink-soft); border-color:var(--line);}
body.page-layer-3b .kt-title-item.kt-tab-title-active .kt-tab-title:not(.room-special){
  background:var(--wp--preset--color--luminous-vivid-amber); color:var(--ink-soft); border-color:var(--ink); box-shadow:inset 0 0 0 1px var(--ink);}
.kt-tabs-content-wrap{margin-top:14px; border-top:2px solid var(--ink); background:var(--paper);
  box-shadow:0 1px 0 var(--line);}
.wp-block-kadence-tab{display:none; padding:26px 22px;}
.wp-block-kadence-tab.kt-tab-active{display:block; animation:tabIn .45s ease both;}
@keyframes tabIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* =================== 记录开关（原 Kadence 手风琴） ===================
   瞬时开/关（无滑动展开收起）。两形态：
   · arrow/默认 = 结构记录(Recorder/Report) → 拨动开关 + 标题
   · none       = 行间隐藏句 → 一句可点击的正文，原地显形 */
.wp-block-kadence-accordion{margin:1.4em 0;}
.kt-blocks-accordion-title{letter-spacing:.02em;}
.kt-accordion-inner-wrap{display:flex; flex-direction:column; gap:10px;}
/* 面板：瞬时显示/隐藏，无 max-height 滑动 */
.kt-accordion-panel{display:none;}
.wp-block-kadence-pane.is-open > .kt-accordion-panel{display:block; animation:decrypt .42s ease both;}
.kt-accordion-panel-inner{padding:10px 20px 18px;}
@keyframes decrypt{0%{opacity:0; filter:blur(3px)} 50%{opacity:.55; filter:blur(0)} 100%{opacity:1; filter:none}}
.wp-block-audio{margin:.7em 0 1.1em;}
.wp-block-audio audio{width:100%; max-width:430px;}
.wp-block-audio.ap-on audio{display:none;}   /* JS 接管后隐藏原生控件 */

/* ---- 自定义音频播放器：极简单行（播放 / 进度 / 时长 / 音量） ---- */
.ap{display:flex; align-items:center; gap:12px; max-width:470px; padding:9px 13px; margin:.2em 0;
  background:linear-gradient(#15171c,#0e0f13); color:#e8eaf0; border:1px solid #2a2d35;
  position:relative; overflow:hidden; clip-path:polygon(0 0,100% 0,100% 100%,12px 100%,0 calc(100% - 12px));}
.ap::before{content:""; position:absolute; inset:0; pointer-events:none;
  background:repeating-linear-gradient(to bottom,transparent 0 2px,rgba(255,255,255,.035) 2px 4px);}
.ap > *{position:relative; z-index:1;}
.ap-toggle{flex:none; width:34px; height:34px; cursor:pointer; background:transparent;
  border:1px solid var(--accent); color:var(--accent); font-family:var(--mono); font-size:12px;
  display:flex; align-items:center; justify-content:center; transition:.15s; padding:0;}
.ap-toggle:hover{background:var(--accent); color:#06070a;}
.ap.is-playing .ap-toggle{border-color:var(--accent-2); color:var(--accent-2);}
.ap.is-playing .ap-toggle:hover{background:var(--accent-2); color:#fff;}
.ap-bar{flex:1; min-width:40px; position:relative; height:6px; background:rgba(255,255,255,.12); cursor:pointer;}
.ap-bar:hover{background:rgba(255,255,255,.18);}
.ap-fill{position:absolute; left:0; top:0; bottom:0; width:0; background:linear-gradient(90deg,var(--accent),var(--accent-3));}
.ap.is-playing .ap-fill{background:linear-gradient(90deg,var(--accent),var(--accent-2));}
.ap-time{flex:none; font-family:var(--mono); font-size:11px; color:#868e9c; letter-spacing:.03em; white-space:nowrap;}
.ap-cur{color:#cdd3dc;}
/* 静音键 */
.ap-mute{flex:none; width:24px; height:24px; padding:0; cursor:pointer; background:transparent; border:none;
  color:#aab1bd; display:flex; align-items:center; justify-content:center; transition:.15s;}
.ap-mute:hover{color:var(--accent);}
.ap.muted .ap-mute{color:#5a6068;}
.ap.muted .ap-w1,.ap.muted .ap-w2{display:none;}
/* 音量条 */
.ap-vol{flex:none; width:62px; height:4px; cursor:pointer; -webkit-appearance:none; appearance:none;
  background:rgba(255,255,255,.2); border-radius:0; outline:none;}
.ap-vol::-webkit-slider-thumb{-webkit-appearance:none; appearance:none; width:11px; height:11px;
  background:var(--accent); border:1px solid #06070a; cursor:pointer;}
.ap-vol::-moz-range-thumb{width:11px; height:11px; background:var(--accent); border:1px solid #06070a; cursor:pointer; border-radius:0;}
@media (max-width:520px){ .ap-vol{width:46px;} .ap-time{font-size:10px;} }
.wp-block-embed__wrapper{position:relative;}
.wp-block-embed__wrapper iframe{width:100%; max-width:560px; aspect-ratio:16/9; height:auto; border:0;}

/* ---- 形态 A：结构记录 · 拨动开关 ---- */
.wp-block-kadence-pane{border:1px solid var(--line); background:var(--paper); transition:border-color .2s, box-shadow .2s;}
.wp-block-kadence-pane.is-open{border-color:var(--ink); box-shadow:0 8px 24px rgba(0,0,0,.06);}
.kt-blocks-accordion-header{width:100%; text-align:left; cursor:pointer;
  display:flex; align-items:center; gap:14px; background:#f6f8fb; border:none;
  font-family:var(--disp); font-size:16.5px; color:var(--ink); padding:12px 18px; transition:.18s;}
.kt-blocks-accordion-header:hover{background:#eef3f8;}
.kt-blocks-accordion-header.kt-accordion-panel-active{background:#fff; color:var(--ink-soft);}
.kt-blocks-accordion-title-wrap{flex:1; min-width:0; order:2;}
/* 拨动开关（取代 +/- 图标） */
.kt-blocks-accordion-icon-trigger{order:1; flex:none; width:42px; height:21px; border-radius:21px;
  background:#cdd5df; position:relative; transition:.22s; box-shadow:inset 0 1px 2px rgba(0,0,0,.12);}
.kt-blocks-accordion-icon-trigger::before{content:""; position:absolute; top:2px; left:2px;
  width:17px; height:17px; border-radius:50%; background:#fff; transition:.22s; box-shadow:0 1px 2px rgba(0,0,0,.35);}
.kt-blocks-accordion-icon-trigger::after{content:none;}
.kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger{background:var(--accent-2);}
.kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger::before{transform:translateX(21px);}

/* 白日山庄 / 霞日不见的（首尾）：外层 Negentropic Statis Document */
.kt-blocks-accordion-header.negentropic-doc{background:#fff0cf; color:var(--ink); border:1px solid transparent;}
.kt-blocks-accordion-header.negentropic-doc:hover{background:#fff0cf; color:var(--ink);}
.kt-blocks-accordion-header.negentropic-doc.kt-accordion-panel-active{
  background:#000; color:#fff; border-color:#fff0cf; box-shadow:inset 0 0 0 1px #fff0cf;}
.wp-block-kadence-pane.negentropic-doc-pane.is-open{
  border-color:#fff0cf; box-shadow:0 0 0 1px #fff0cf, 0 8px 24px rgba(0,0,0,.08);}

/* ---- 形态 B：行间隐藏句（icon-style-none）：隐蔽触发 + 与主目录一致的展开窗口 ----
   *用子选择器*只作用于该手风琴自身这一层；面板内部嵌套的记录(Recorder/Report 等)
   仍走主目录的开关样式，不受影响。 */
.kt-accodion-icon-style-none > .kt-accordion-inner-wrap{gap:0;}
.kt-accodion-icon-style-none > .kt-accordion-inner-wrap > .wp-block-kadence-pane{
  border:none !important; background:transparent !important; box-shadow:none !important;}
.kt-accodion-icon-style-none > .kt-accordion-inner-wrap > .wp-block-kadence-pane
  > .kt-accordion-header-wrap > .kt-blocks-accordion-header{
  display:block; width:100%; text-align:left; cursor:pointer;
  background:transparent !important; border:none; padding:.1em 0; margin:0;
  font-family:var(--body); font-size:1em; line-height:1.9; color:inherit !important; transition:.15s;}
/* 隐蔽：仅悬停 / 已展开时给极淡虚线下划线作提示，无箭头无开关 */
.kt-accodion-icon-style-none > .kt-accordion-inner-wrap > .wp-block-kadence-pane
  > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover,
.kt-accodion-icon-style-none > .kt-accordion-inner-wrap > .wp-block-kadence-pane
  > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{
  text-decoration:underline dotted; text-underline-offset:5px; text-decoration-color:rgba(255,46,136,.55);}
.kt-accodion-icon-style-none > .kt-accordion-inner-wrap > .wp-block-kadence-pane
  > .kt-accordion-header-wrap > .kt-blocks-accordion-header > .kt-blocks-accordion-title-wrap{display:inline;}
.kt-accodion-icon-style-none > .kt-accordion-inner-wrap > .wp-block-kadence-pane
  > .kt-accordion-header-wrap > .kt-blocks-accordion-header .kt-blocks-accordion-icon-trigger{display:none;}
/* 展开窗口：与主目录同款面板（仅本层） */
.kt-accodion-icon-style-none > .kt-accordion-inner-wrap > .wp-block-kadence-pane
  > .kt-accordion-panel > .kt-accordion-panel-inner{padding:12px 18px; margin:.5em 0 .9em;
  background:#f6f8fb; border-left:3px solid var(--accent-2);}

/* =================== Tier 徽章（房间底部居中） =================== */
.tier-stamp{text-align:center; margin:38px auto 10px; max-width:600px;}
.tier-stamp .tier-rule{display:block; height:1px; width:130px; margin:0 auto 14px;
  background:linear-gradient(90deg,transparent,var(--line),transparent);}
.tier-stamp .tier-rule:last-child{margin:14px auto 0;}
.tier-k{display:block; font-family:var(--mono); font-size:12px; letter-spacing:.4em; color:var(--ink-soft); margin-bottom:10px;}
.tier-v{display:block; font-family:var(--disp); font-size:24px; line-height:1.5;}
.tier-v p{margin:.2em 0;}
/* Tier 里夹着的隐藏章节（如 界镜长廊 的 ENDLINE ARK）：
   触发标题显示得像特殊 Tier 值（大号装饰字 + 居中，保留原色与可点击展开）；
   展开后的章节正文回归正常阅读尺寸、左对齐。 */
.tier-v .wp-block-kadence-accordion{margin:.3em 0 0;}
.tier-v .kt-accodion-icon-style-none > .kt-accordion-inner-wrap > .wp-block-kadence-pane
  > .kt-accordion-header-wrap > .kt-blocks-accordion-header{
  font-family:var(--disp); font-size:30px; line-height:1.5; text-align:center;}
.tier-special .tier-v .kt-accodion-icon-style-none > .kt-accordion-inner-wrap > .wp-block-kadence-pane
  > .kt-accordion-header-wrap > .kt-blocks-accordion-header{font-size:30px;}
.tier-v .kt-accordion-panel-inner{font-family:var(--body); font-size:16px; line-height:1.9; text-align:left;}
/* 全大写 = 特殊 Tier：更醒目 + 警示框 */
.tier-special{position:relative; padding:18px 24px;}
.tier-special .tier-k{color:var(--accent-2);}
.tier-special .tier-k::before{content:"⚠ "; }
.tier-special .tier-v{font-size:30px; letter-spacing:.05em;}
.tier-special::before,.tier-special::after{content:""; position:absolute; width:14px; height:14px; border:2px solid var(--accent-2);}
.tier-special::before{top:0; left:50%; transform:translateX(-130px); border-right:0; border-bottom:0;}
.tier-special::after{bottom:0; right:50%; transform:translateX(130px); border-left:0; border-top:0;}

/* =================== 密码门 =================== */
.pw-block{margin:1.6em 0;}
.pw-gate{position:relative; overflow:hidden; text-align:center; color:#e8eaf0;
  background:linear-gradient(#14161b,#0d0e12); border:1px solid #2a2d35; padding:30px 26px;}
.pw-gate::before{content:""; position:absolute; inset:0; pointer-events:none;
  background:repeating-linear-gradient(to bottom,transparent 0 2px,rgba(255,255,255,.035) 2px 4px);}
.pw-gate > *{position:relative; z-index:1;}
.pw-lock{font-family:var(--mono); letter-spacing:.34em; font-size:12px; color:var(--accent); animation:flick 3.5s infinite steps(2);}
@keyframes flick{0%,17%,21%,100%{opacity:.9}19%{opacity:.25}62%,66%{opacity:.5}}
.pw-prompt{font-family:var(--disp); font-size:21px; color:#fff; margin:.6em auto 1.1em; max-width:42em;}
.pw-form{display:flex; gap:10px; justify-content:center; flex-wrap:wrap;}
.pw-input{background:#06070a; border:1px solid #343842; color:#fff; padding:11px 16px;
  font-family:var(--mono); font-size:15px; min-width:260px; border-radius:2px;}
.pw-input:focus{outline:none; border-color:var(--accent); box-shadow:0 0 12px rgba(0,179,200,.45);}
.pw-submit{background:var(--accent-2); color:#fff; border:none; padding:11px 26px;
  font-family:var(--disp); font-size:16px; letter-spacing:.1em; cursor:pointer; transition:.18s;}
.pw-submit:hover{background:#fff; color:#000;}
.pw-msg{font-family:var(--mono); font-size:13px; margin-top:14px; min-height:1.2em; letter-spacing:.05em;}
.pw-msg.err{color:var(--accent-2);}
.pw-msg.ok{color:var(--accent);}
.pw-secret{animation:decrypt .7s ease both; border-left:2px solid var(--accent-2); padding-left:18px; margin-top:6px;}
.pw-block.shake .pw-gate{animation:shake .32s;}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-7px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(3px)}}

/* ---- 隐藏入口：第叁层「拥抱温暖」按钮（kb-button） ---- */
.content .kb-button{display:inline-block; font-family:var(--disp); font-size:17px; letter-spacing:.08em;
  color:#fff !important; background:#0f1014; border:1px solid #2a2c33; border-bottom:0 !important;
  padding:13px 30px; text-decoration:none; transition:.2s; position:relative;
  clip-path:polygon(0 0,100% 0,100% 76%,92% 100%,0 100%);}
.content .kb-button:hover{background:#000; color:#fff !important; box-shadow:0 0 26px rgba(255,46,136,.32); transform:translateY(-2px);}
.kb-buttons-wrap{display:flex; flex-wrap:wrap; gap:14px; margin:1.2em 0;}
.warm-gate-wrap{justify-content:center; width:100%; margin:2.4em 0 .8em; perspective:900px;}
.content .kb-button.warm-gate-link{
  display:grid; grid-template-columns:minmax(0,1fr) 90px; align-items:center; gap:20px;
  width:min(100%,560px); min-height:156px; padding:24px 28px; overflow:hidden;
  color:#fff6de !important; border:1px solid rgba(252,185,0,.72); border-bottom:1px solid rgba(0,179,200,.45) !important;
  background:
    radial-gradient(circle at 82% 50%,rgba(252,185,0,.36) 0 8%,transparent 26%),
    radial-gradient(circle at 20% 20%,rgba(255,46,136,.18),transparent 34%),
    linear-gradient(135deg,#111216 0%,#15100b 44%,#050608 100%);
  box-shadow:0 18px 54px rgba(0,0,0,.22), inset 0 0 0 1px rgba(255,255,255,.08), inset 0 -28px 80px rgba(252,185,0,.12);
  clip-path:polygon(0 0,calc(100% - 28px) 0,100% 28px,100% 100%,28px 100%,0 calc(100% - 28px));
  transform-style:preserve-3d; transition:transform .32s ease, box-shadow .32s ease, border-color .32s ease, filter .32s ease;
}
.content .kb-button.warm-gate-link::before,
.content .kb-button.warm-gate-link::after{content:""; position:absolute; inset:0; pointer-events:none;}
.content .kb-button.warm-gate-link::before{
  background:
    linear-gradient(100deg,transparent 0 22%,rgba(255,255,255,.26) 34%,transparent 48%),
    repeating-linear-gradient(90deg,rgba(252,185,0,.13) 0 1px,transparent 1px 18px);
  mix-blend-mode:screen; opacity:.58; transform:translateX(-70%); animation:warmGateSweep 4.8s ease-in-out infinite;
}
.content .kb-button.warm-gate-link::after{
  background:repeating-linear-gradient(to bottom,transparent 0 4px,rgba(0,179,200,.08) 4px 5px,transparent 5px 9px);
  opacity:.58; animation:warmGateRain .9s linear infinite;
}
.content .kb-button.warm-gate-link:hover{
  color:#fff !important; background:
    radial-gradient(circle at 82% 50%,rgba(252,185,0,.52) 0 9%,transparent 30%),
    radial-gradient(circle at 20% 20%,rgba(255,46,136,.24),transparent 36%),
    linear-gradient(135deg,#15171c 0%,#20140b 48%,#06070a 100%);
  border-color:#fcb900; box-shadow:0 28px 78px rgba(252,185,0,.26),0 0 44px rgba(0,179,200,.2),inset 0 0 0 1px rgba(255,255,255,.12);
  transform:translateY(-4px) rotateX(2deg);
}
.warm-gate-copy{position:relative; z-index:1; display:flex; align-items:center; min-width:0;}
.warm-gate-link .kt-btn-inner-text{font-size:clamp(30px,6vw,54px); line-height:1.05; letter-spacing:.1em; text-shadow:0 0 18px rgba(252,185,0,.44);}
.warm-gate-core{position:relative; z-index:1; width:88px; aspect-ratio:1; justify-self:end;
  border:1px solid rgba(252,185,0,.78); border-radius:50%;
  background:radial-gradient(circle,#fff8d7 0 8%,#fcb900 9% 18%,rgba(252,185,0,.18) 19% 42%,transparent 43%);
  box-shadow:0 0 34px rgba(252,185,0,.64), inset 0 0 18px rgba(255,255,255,.45);
  animation:warmGateCore 2.8s ease-in-out infinite;
}
.warm-gate-core::before,.warm-gate-core::after{content:""; position:absolute; inset:12px; border:1px solid rgba(0,179,200,.7); border-radius:50%;}
.warm-gate-core::before{animation:warmGateOrbit 5.5s linear infinite;}
.warm-gate-core::after{inset:26px; border-color:rgba(255,46,136,.58); animation:warmGateOrbit 3.8s linear reverse infinite;}
.warm-gate-rain{position:absolute; inset:auto 18px 16px 18px; height:1px; z-index:1;
  background:linear-gradient(90deg,transparent,#fcb900,#00b3c8,transparent); opacity:.8;}
@keyframes warmGateSweep{0%,44%{transform:translateX(-78%)} 64%,100%{transform:translateX(86%)}}
@keyframes warmGateRain{to{background-position:0 9px}}
@keyframes warmGateCore{0%,100%{transform:scale(.96); filter:saturate(1)}50%{transform:scale(1.04); filter:saturate(1.28)}}
@keyframes warmGateOrbit{to{transform:rotate(360deg)}}

body.warm-gate-exiting{overflow:hidden;}
body.warm-gate-exiting::before,
body.warm-gate-arriving::before{
  content:""; position:fixed; inset:0; z-index:10020; pointer-events:none;
  background:
    radial-gradient(circle at var(--gate-x,50%) var(--gate-y,50%),rgba(255,248,215,.98) 0 5%,rgba(252,185,0,.92) 9%,rgba(255,46,136,.46) 25%,rgba(6,7,10,.98) 62%),
    repeating-linear-gradient(to bottom,rgba(255,255,255,.08) 0 1px,transparent 1px 5px);
}
body.warm-gate-exiting::before{animation:warmExitVeil 1.18s cubic-bezier(.45,0,.2,1) forwards;}
body.warm-gate-arriving::before{animation:warmArriveVeil 1.05s cubic-bezier(.2,.7,.2,1) forwards;}
body.warm-gate-exiting::after{
  content:"END WAR"; position:fixed; left:50%; top:50%; z-index:10021; pointer-events:none;
  transform:translate(-50%,-50%); font-family:var(--mono); letter-spacing:.42em; color:#fff8d7;
  text-shadow:0 0 20px rgba(252,185,0,.82); animation:warmExitText 1.18s ease forwards;
}
body.page-layer-3b.warm-gate-arriving .banner,
body.page-layer-3b.warm-gate-arriving .reading{animation:warmLanding 1.2s ease both;}
@keyframes warmExitVeil{0%{opacity:0; clip-path:circle(0 at var(--gate-x,50%) var(--gate-y,50%)); filter:blur(0)}68%{opacity:1; clip-path:circle(145vmax at var(--gate-x,50%) var(--gate-y,50%)); filter:blur(0)}100%{opacity:1; clip-path:circle(145vmax at var(--gate-x,50%) var(--gate-y,50%)); filter:brightness(.72)}}
@keyframes warmArriveVeil{0%{opacity:1; clip-path:circle(145vmax at 50% 42%)}100%{opacity:0; clip-path:circle(0 at 50% 42%)}}
@keyframes warmExitText{0%,28%{opacity:0; transform:translate(-50%,-44%)}54%{opacity:1; transform:translate(-50%,-50%)}100%{opacity:0; transform:translate(-50%,-58%)}}
@keyframes warmLanding{0%{filter:blur(8px) saturate(1.7); transform:translateY(18px)}100%{filter:none; transform:none}}

/* =================== 缓入特效 =================== */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:none;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .content .kb-button.warm-gate-link::before,
  .content .kb-button.warm-gate-link::after,
  .warm-gate-core,
  .warm-gate-core::before,
  .warm-gate-core::after{animation:none}
  body.warm-gate-exiting::before,
  body.warm-gate-arriving::before,
  body.warm-gate-exiting::after,
  body.page-layer-3b.warm-gate-arriving .banner,
  body.page-layer-3b.warm-gate-arriving .reading{animation:none}
}

/* =================== 翻页 / 页脚 =================== */
.pager-row{display:flex; justify-content:space-between; margin-top:56px; gap:12px; flex-wrap:wrap;}
.pager{font-family:var(--mono); text-decoration:none; color:var(--ink); border:1px solid var(--line);
  padding:11px 20px; background:var(--paper); transition:.18s;}
.pager:hover{background:var(--ink); color:#fff;}
.pager.next{margin-left:auto;}
.site-footer{display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  padding:26px 28px; border-top:1px solid var(--line); background:var(--paper);
  font-family:var(--mono); font-size:12px; color:var(--ink-soft); letter-spacing:.1em;}
.foot-redact{color:#c2c8d1;}

/* =================== 响应式 =================== */
@media (max-width:760px){
  body{font-size:16px;}
  .nav-toggle{display:block;}
  .site-nav{display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column;
    background:#fff; border-bottom:1px solid var(--line); padding:8px;}
  .site-nav.open{display:flex;}
  .site-header{flex-wrap:wrap;}
  .reading{padding:34px 16px 64px;}
  .content .kb-button.warm-gate-link{grid-template-columns:1fr; min-height:150px; gap:16px; padding:22px;}
  .warm-gate-core{width:62px; justify-self:start;}
  .fm-name{font-size:24px;}
  .fm-node{grid-template-columns:1fr; gap:10px;}
  .fm-go{justify-self:start;}
}

/* =================== 界镜长廊 · TimeLine SUBLIME 文字恐怖谷吞噬 =================== */
/* 展开记录 3s 后：clone 贴合原段落位置出现。
   容器（transform:scale）与字体（font-size）以不同速率膨胀——
   字体更激进，容器更迟缓；字先溢出容器四边，再随容器一起铺满屏幕。 */
.sublime-engulf{
  /* position / left / top / width / height / transform-origin 由 JS 内联设定 */
  will-change:transform, font-size; opacity:0;
  animation:
    sublimeBox    5.5s cubic-bezier(.2, 0, .6, 1)   forwards,
    sublimeFont   5.5s cubic-bezier(.75,0, 1,  .55)  forwards,
    sublimeWeight 5.5s linear                         forwards;
}
.sublime-engulf mark{ background-color:transparent !important; }
.sublime-engulf strong{ font-weight:inherit; }

/* 容器缓慢膨胀（也负责 opacity 淡入） */
@keyframes sublimeBox{
  0%   { transform:scale(1);  opacity:0; }
  6%   { opacity:1; }
  100% { transform:scale(5);  opacity:1; }
}

/* 字体激进膨胀 */
@keyframes sublimeFont{
  0%   { font-size:var(--origFont, 16px); }
  100% { font-size:40vmax; }
}

/* 字重缓慢线性增粗（需字体已加载 900 字重） */
@keyframes sublimeWeight{
  0%   { font-weight:700; }
  100% { font-weight:900; }
}

.sublime-blackout{
  position:fixed; inset:0; background:#000;
  opacity:0; z-index:9999; pointer-events:none;
}
/* 大幅加快：5.5s 内 15% 启动，50% 全黑 */
.sublime-blackout.on{ animation:sublimeBlack 5.5s linear forwards; }

@keyframes sublimeBlack{
  0%   { opacity:0; }
  15%  { opacity:0; }
  50%  { opacity:1; }
  100% { opacity:1; }
}

@media (prefers-reduced-motion:reduce){
  .sublime-engulf{ animation:none; position:static !important; opacity:1; z-index:auto; transform:none; }
  .sublime-blackout{ display:none; }
}
