/* ========== AIAS 档案库 · 机密档案风格 · 仿旧纸质 ========== */

@import url('https://fonts.googleapis.com/css2?family=Special+Elite&family=Oswald:wght@400;500;700&family=Caveat:wght@400;700&display=swap');

:root {
    /* 纸张色系 — 偏黄褐、非纯色 */
    --paper: #d4c9aa;
    --paper-light: #ddd2b8;
    --paper-dark: #c0b390;
    --paper-edge: #a4926a;
    --paper-white: #d8cfb6;
    --paper-aged: #ccbca0;
    --paper-stain: #b8a87e;

    /* 墨水色系 — 非纯黑，偏深褐 */
    --ink: #2a2418;
    --ink-soft: #3c3424;
    --ink-fade: #6a5e3e;
    --ink-print: #1e1a10;

    /* 印章色系 — 退色、不均匀 */
    --stamp-red: #8a1e22;
    --stamp-red-fade: rgba(138,30,34,0.6);
    --stamp-red-old: #6a1820;
    --stamp-blue: #1a3858;
    --stamp-blue-fade: rgba(26,56,88,0.55);
    --stamp-orange: #b5651d;
    --stamp-orange-fade: rgba(181,101,29,0.55);

    /* 文件夹色系 — 牛皮纸、非均匀 */
    --folder: #ae9258;
    --folder-dark: #8a6e38;
    --folder-light: #c4a872;
    --folder-edge: #5a4418;
    --folder-interior: #9a7e48;

    --accent: #6a4e10;
    --border: #988868;

    /* 危险/提示 */
    --danger-bg: transparent;
    --danger-border: #6a3010;
    --insight-bg: #d0c4a8;
    --insight-border: #6a4e10;

    /* 老化效果 — 明显可见 */
    --watermark: rgba(106,78,16,0.1);
    --stain: rgba(106,68,12,0.2);
    --stain-dark: rgba(74,46,8,0.25);
    --ruled-line: rgba(0,0,0,0.1);
    --margin-red: rgba(138,30,34,0.35);
    --foxing: rgba(106,68,12,0.18);
    --foxing-dark: rgba(74,46,8,0.22);
    --ink-smudge: rgba(36,26,12,0.08);
    --water-ring: rgba(120,90,40,0.12);

    /* 字体 — 中文用宋体/仿宋(官方文档体)，拉丁文用打字机字体 */
    --font-body: 'SimSun', 'Songti SC', '宋体', 'Noto Serif SC', serif;
    --font-head: 'FangSong', 'STFangsong', '仿宋', 'SimSun', '宋体', serif;
    --font-mono: 'Special Elite', 'Courier New', 'Lucida Console', monospace;
    --font-stamp: 'Oswald', 'Arial Black', sans-serif;
    --font-hand: 'Caveat', 'KaiTi', '楷体', 'STKaiti', cursive;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    background-color: #221e1a;
    font-family: var(--font-body);
    padding-top: 80px;
    color: var(--ink);
    line-height: 1.75;
    overflow-x: hidden;
    word-wrap: break-word;
}

::selection { background: var(--stamp-red); color: var(--paper); }

body::before {
    content: '';
    position: fixed; inset: 0;
    background:
        repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.03) 2px, rgba(0,0,0,0.03) 3px),
        repeating-linear-gradient(90deg, transparent, transparent 4px, rgba(106,78,16,0.02) 4px, rgba(106,78,16,0.02) 5px),
        radial-gradient(ellipse at 50% 0%, rgba(30,22,16,0.5) 0%, transparent 70%),
        radial-gradient(ellipse at 80% 90%, rgba(50,38,20,0.3) 0%, transparent 50%),
        #221e1a;
    pointer-events: none; z-index: -1;
}

/* === 顶栏 — 档案柜顶轨 · 凸出标签风格 === */
.aias-topbar {
    position: fixed; top: 0; left: 0; width: 100%;
    background:
        repeating-linear-gradient(90deg, transparent, transparent 2px, rgba(255,255,255,0.015) 2px, rgba(255,255,255,0.015) 3px),
        repeating-linear-gradient(0deg, transparent, transparent 4px, rgba(0,0,0,0.06) 4px, rgba(0,0,0,0.06) 5px),
        radial-gradient(ellipse at 30% 20%, rgba(80,70,50,0.25) 0%, transparent 60%),
        radial-gradient(ellipse at 70% 80%, rgba(40,35,25,0.2) 0%, transparent 50%),
        linear-gradient(180deg, #1a1610 0%, #0e0c08 50%, #14110d 100%);
    color: var(--paper);
    padding: 0 24px;
    display: flex; align-items: stretch; justify-content: space-between;
    z-index: 1000;
    box-shadow: 0 3px 20px rgba(0,0,0,0.7), inset 0 -1px 0 rgba(255,255,255,0.03);
    border-bottom: 3px solid var(--stamp-red);
    height: 72px;
}
/* 左侧红白分类条纹 */
.aias-topbar::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 5px;
    background: repeating-linear-gradient(0deg, var(--stamp-red) 0, var(--stamp-red) 10px, var(--paper-dark) 10px, var(--paper-dark) 12px);
    box-shadow: 2px 0 4px rgba(0,0,0,0.3);
}

/* Logo区域 */
.aias-logo { display: flex; align-items: center; gap: 10px; cursor: pointer; padding: 8px 0; position: relative; z-index: 10; }
.aias-logo img {
    height: 42px; width: auto;
    border: 2px solid var(--paper-dark); border-radius: 2px; padding: 2px;
    box-shadow: 0 0 0 1px rgba(0,0,0,0.3), 0 2px 5px rgba(0,0,0,0.25);
    background: #0a0804;
}
.logo-text { display: flex; flex-direction: column; gap: 1px; }
.aias-logo span { font-size: 1.15rem; font-weight: bold; letter-spacing: 3px; font-family: var(--font-head); color: var(--paper); }
.aias-logo small { display: block; font-size: 0.46rem; letter-spacing: 1.5px; color: var(--paper-dark); font-family: var(--font-mono); opacity: 0.5; margin-top: 1px; }

/* 导航 — 凸出文件标签风格 */
.aias-nav { display: flex; gap: 2px; align-items: flex-end; position: relative; }
.aias-nav > a, .aias-nav .dropdown {
    position: relative; text-decoration: none;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.aias-nav > a, .dropbtn {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: 5px 16px 7px;
    background:
        repeating-linear-gradient(87deg, transparent, transparent 5px, rgba(106,78,16,0.05) 5px, rgba(106,78,16,0.05) 6px),
        repeating-linear-gradient(3deg, transparent, transparent 7px, rgba(0,0,0,0.02) 7px, rgba(0,0,0,0.02) 8px),
        linear-gradient(180deg, rgba(180,160,120,0.1) 0%, rgba(120,100,60,0.06) 100%);
    border: 1px solid rgba(180,160,120,0.18);
    border-bottom: none;
    border-radius: 5px 5px 0 0;
    color: var(--paper); text-decoration: none;
    font-family: var(--font-head); cursor: pointer;
    transition: all 0.25s ease;
    min-width: 70px; margin-bottom: -1px;
    position: relative;
}
/* 标签上的金属扣孔 */
.aias-nav > a::before, .dropbtn::before {
    content: ''; position: absolute; top: 3px; left: 50%; transform: translateX(-50%);
    width: 4px; height: 4px; border-radius: 50%;
    background: rgba(180,160,120,0.25);
    box-shadow: inset 0 1px 1px rgba(0,0,0,0.3);
}
/* 标签文字 */
.aias-nav > a span, .dropbtn span { display: block; line-height: 1.2; text-align: center; }
.aias-nav > a .nav-label, .dropbtn .nav-label { font-size: 0.82rem; font-weight: bold; letter-spacing: 2px; }
.aias-nav > a .nav-code, .dropbtn .nav-code { font-size: 0.46rem; color: var(--paper-dark); font-family: var(--font-mono); letter-spacing: 1.5px; opacity: 0.5; margin-top: 1px; }

/* hover — 标签上提 */
.aias-nav > a:hover, .dropbtn:hover {
    background:
        repeating-linear-gradient(87deg, transparent, transparent 5px, rgba(106,78,16,0.07) 5px, rgba(106,78,16,0.07) 6px),
        repeating-linear-gradient(3deg, transparent, transparent 7px, rgba(0,0,0,0.02) 7px, rgba(0,0,0,0.02) 8px),
        linear-gradient(180deg, rgba(212,201,170,0.14) 0%, rgba(140,120,80,0.08) 100%);
    border-color: rgba(212,201,170,0.3);
    transform: translateY(-3px);
    box-shadow: 0 -3px 8px rgba(0,0,0,0.2);
}
/* 当前页 — 标签翻起 */
.aias-nav > a.active {
    background:
        repeating-linear-gradient(87deg, transparent, transparent 5px, rgba(106,78,16,0.08) 5px, rgba(106,78,16,0.08) 6px),
        linear-gradient(180deg, rgba(212,201,170,0.18) 0%, rgba(180,160,120,0.1) 100%);
    border-color: rgba(212,201,170,0.35);
    transform: translateY(-2px);
}
.aias-nav > a.active .nav-label { color: var(--paper); }
.aias-nav > a.active::after {
    content: ''; position: absolute; bottom: -1px; left: 10%; right: 10%; height: 2px;
    background: var(--stamp-red); border-radius: 1px;
}
.dropbtn.active {
    background:
        repeating-linear-gradient(87deg, transparent, transparent 5px, rgba(106,78,16,0.08) 5px, rgba(106,78,16,0.08) 6px),
        linear-gradient(180deg, rgba(212,201,170,0.18) 0%, rgba(180,160,120,0.1) 100%);
    border-color: rgba(212,201,170,0.35);
    transform: translateY(-2px);
}
.dropbtn.active::after {
    content: ''; position: absolute; bottom: -1px; left: 10%; right: 10%; height: 2px;
    background: var(--stamp-red); border-radius: 1px;
}

/* 下拉菜单 — 抽屉拉出 */
.dropdown { position: relative; }
.dropdown-content {
    display: none; position: absolute;
    background:
        repeating-linear-gradient(87deg, transparent, transparent 5px, rgba(106,78,16,0.04) 5px, rgba(106,78,16,0.04) 6px),
        linear-gradient(180deg, #1a1610 0%, #0e0c08 100%);
    min-width: 160px; box-shadow: 0 10px 28px rgba(0,0,0,0.65);
    border: 1px solid rgba(180,160,120,0.2); border-radius: 0 0 4px 4px;
    z-index: 1; top: 100%; left: 50%; transform: translateX(-50%); margin-top: 1px;
    overflow: hidden;
}
.dropdown-content a {
    color: var(--paper); padding: 10px 18px; text-decoration: none; display: block;
    font-size: 0.82rem; border-bottom: 1px solid rgba(180,160,120,0.08);
    font-family: var(--font-head); letter-spacing: 1px; transition: all 0.15s; position: relative;
}
.dropdown-content a:last-child { border-bottom: none; }
.dropdown-content a:hover { background: rgba(180,160,120,0.08); color: var(--stamp-red); padding-left: 26px; }
.dropdown-content a::before { content: '▸'; position: absolute; left: 10px; opacity: 0; transition: all 0.15s; }
.dropdown-content a:hover::before { opacity: 0.6; }
.dropdown-content.show { display: block; animation: drawer-drop 0.25s ease; }
@keyframes drawer-drop {
    from { opacity: 0; transform: translateX(-50%) translateY(-8px); }
    to { opacity: 1; transform: translateX(-50%) translateY(0); }
}

/* 右侧权限标识 */
.nav-clearance { display: flex; align-items: center; gap: 8px; padding: 8px 0; position: relative; z-index: 10; }
.clearance-badge {
    border: 2px solid var(--stamp-red-fade); color: var(--stamp-red-fade);
    padding: 3px 10px; font-size: 0.58rem; font-weight: bold; letter-spacing: 2px;
    font-family: var(--font-stamp); border-radius: 2px; opacity: 0.7; text-transform: uppercase;
    background: rgba(138,30,34,0.05);
}
.clearance-badge::before { content: '◆'; margin-right: 4px; font-size: 0.5rem; }
.nav-status-dot {
    width: 7px; height: 7px; border-radius: 50%;
    background: #88a860; box-shadow: 0 0 4px rgba(136,168,96,0.5);
    animation: status-blink 3s ease-in-out infinite;
}
@keyframes status-blink { 0%,100% { opacity: 1; } 50% { opacity: 0.4; } }

/* === 主内容容器 === */
.container {
    max-width: 1000px; margin: 30px auto;
    background:
        /* 老化斑点 */
        radial-gradient(ellipse at 15% 20%, var(--foxing) 0%, transparent 45%),
        radial-gradient(ellipse at 80% 80%, var(--foxing-dark) 0%, transparent 40%),
        radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.02) 0%, transparent 40%),
        /* 水渍环 */
        radial-gradient(circle at 70% 30%, var(--water-ring) 0%, transparent 8%, transparent 12%, rgba(120,90,40,0.06) 13%, transparent 18%),
        /* 纸张纹理 */
        repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.018) 2px, rgba(0,0,0,0.018) 3px),
        repeating-linear-gradient(90deg, transparent, transparent 4px, rgba(106,78,16,0.022) 4px, rgba(106,78,16,0.022) 5px),
        /* 边缘泛黄 */
        radial-gradient(ellipse at center, transparent 45%, rgba(106,78,16,0.1) 100%),
        var(--paper);
    border: 1.5px solid var(--paper-edge); border-radius: 2px;
    padding: 35px 45px; box-shadow: 0 4px 25px rgba(0,0,0,0.4), inset 0 0 60px rgba(106,78,16,0.06);
    position: relative;
}
.container > * { position: relative; z-index: 1; }

/* === 轮播 === */
.carousel {
    width: 100%; aspect-ratio: 3/2; overflow: hidden; border-radius: 2px;
    margin-bottom: 30px; position: relative; background-color: var(--paper-dark);
    border: 1.5px solid var(--paper-edge);
}
.carousel img { width: 100%; height: 100%; object-fit: cover; display: none; border-radius: 2px; }
.carousel img.active { display: block; }

/* ========== 档案目录（索引卡 · 卡片柜风格 · 仿旧） ========== */

/* 抽屉头（模拟档案柜抽屉面板 · 老旧金属） */
.catalog-drawer {
    background:
        repeating-linear-gradient(87deg, transparent, transparent 15px, rgba(255,255,255,0.03) 15px, rgba(255,255,255,0.03) 16px),
        repeating-linear-gradient(3deg, transparent, transparent 22px, rgba(0,0,0,0.08) 22px, rgba(0,0,0,0.08) 23px),
        radial-gradient(ellipse at 30% 50%, rgba(142,110,56,0.4) 0%, transparent 60%),
        radial-gradient(ellipse at 70% 50%, rgba(100,80,30,0.3) 0%, transparent 55%),
        linear-gradient(180deg, #5e4e2e 0%, #8a6e3a 35%, #6e5828 65%, #4e4020 100%);
    border: 2px solid var(--folder-edge);
    border-radius: 3px 3px 0 0;
    padding: 12px 20px 12px 45px;
    display: flex; justify-content: space-between; align-items: center;
    color: var(--paper-light); font-size: 0.82rem; letter-spacing: 3px;
    font-family: var(--font-mono);
    box-shadow: 0 3px 10px rgba(0,0,0,0.4), inset 0 -2px 8px rgba(0,0,0,0.3), inset 0 1px 2px rgba(255,255,255,0.08);
    position: relative; margin-top: 20px;
}
/* 抽屉拉手 */
.catalog-drawer::before {
    content: ''; position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
    width: 16px; height: 16px; border: 2.5px solid var(--paper-edge);
    border-radius: 50%; background: var(--folder-edge);
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.5), 0 1px 2px rgba(0,0,0,0.2);
}
.catalog-drawer::after {
    content: ''; position: absolute; left: 19px; top: 50%; transform: translateY(-50%);
    width: 6px; height: 6px; border-radius: 50%; background: #c4b890;
    box-shadow: 0 0 3px rgba(255,255,255,0.15);
}
.drawer-label { font-weight: bold; text-transform: uppercase; }
.drawer-meta { font-size: 0.7rem; opacity: 0.65; letter-spacing: 1.5px; }

/* 卡片柜体（包裹所有索引卡 · 牛皮纸纤维） */
.catalog-cabinet {
    background:
        repeating-linear-gradient(87deg, transparent, transparent 8px, rgba(106,78,16,0.06) 8px, rgba(106,78,16,0.06) 9px),
        repeating-linear-gradient(3deg, transparent, transparent 12px, rgba(0,0,0,0.03) 12px, rgba(0,0,0,0.03) 13px),
        repeating-linear-gradient(91deg, transparent, transparent 16px, rgba(106,68,12,0.04) 16px, rgba(106,68,12,0.04) 17px),
        radial-gradient(ellipse at 50% 0%, rgba(142,110,56,0.3) 0%, transparent 50%),
        radial-gradient(ellipse at 30% 100%, rgba(100,70,30,0.2) 0%, transparent 50%),
        radial-gradient(ellipse at center, var(--folder-light) 0%, var(--folder) 55%, var(--folder-dark) 100%);
    border: 2px solid var(--folder-edge); border-top: none;
    border-radius: 0 0 3px 3px;
    padding: 35px 20px 25px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.35), inset 0 2px 8px rgba(0,0,0,0.12);
    position: relative;
}

.catalog { display: flex; flex-direction: column; gap: 22px; position: relative; z-index: 1; }

/* 索引卡本体 · 老化纸张 · 默认 */
.catalog-item {
    position: relative;
    background:
        /* 老化斑点（foxing）— 更明显 */
        radial-gradient(ellipse at 12% 22%, var(--foxing) 0%, transparent 38%),
        radial-gradient(ellipse at 82% 68%, var(--foxing-dark) 0%, transparent 33%),
        radial-gradient(ellipse at 50% 88%, rgba(0,0,0,0.03) 0%, transparent 28%),
        /* 水渍 */
        radial-gradient(circle at 65% 40%, var(--water-ring) 0%, transparent 6%, transparent 10%, rgba(120,90,40,0.08) 11%, transparent 16%),
        /* 纸张纹理 */
        repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.018) 2px, rgba(0,0,0,0.018) 3px),
        repeating-linear-gradient(90deg, transparent, transparent 3px, rgba(106,78,16,0.022) 3px, rgba(106,78,16,0.022) 4px),
        /* 边缘泛黄 */
        radial-gradient(ellipse at center, transparent 50%, rgba(106,78,16,0.1) 100%),
        var(--paper-white);
    border: 1px solid var(--paper-edge);
    border-radius: 1px 2px 1px 2px;
    transition: all 0.25s ease;
    box-shadow: 0 1.5px 6px rgba(0,0,0,0.2), 0 0 0 0.5px rgba(0,0,0,0.08), 1px 1.5px 3px rgba(0,0,0,0.05);
    min-height: 90px;
}

/* 五种卡片差异 — 不同老化程度 + 轻微旋转 + 不规则边缘 */
.catalog-item:nth-child(5n+1) {
    transform: rotate(-0.4deg);
    background:
        radial-gradient(ellipse at 18% 28%, var(--foxing-dark) 0%, transparent 40%),
        radial-gradient(ellipse at 75% 60%, rgba(0,0,0,0.03) 0%, transparent 35%),
        radial-gradient(circle at 40% 70%, var(--water-ring) 0%, transparent 5%, transparent 9%, rgba(120,90,40,0.06) 10%, transparent 15%),
        repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.018) 2px, rgba(0,0,0,0.018) 3px),
        repeating-linear-gradient(90deg, transparent, transparent 3px, rgba(106,78,16,0.022) 3px, rgba(106,78,16,0.022) 4px),
        radial-gradient(ellipse at center, transparent 45%, rgba(106,78,16,0.12) 100%),
        #d4c8ac;
}
.catalog-item:nth-child(5n+2) {
    transform: rotate(0.3deg);
    background:
        radial-gradient(ellipse at 78% 18%, var(--foxing) 0%, transparent 38%),
        radial-gradient(ellipse at 22% 75%, var(--foxing-dark) 0%, transparent 33%),
        radial-gradient(circle at 55% 45%, rgba(120,90,40,0.1) 0%, transparent 7%, transparent 11%, rgba(120,90,40,0.05) 12%, transparent 17%),
        repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.015) 2px, rgba(0,0,0,0.015) 3px),
        repeating-linear-gradient(90deg, transparent, transparent 3px, rgba(106,78,16,0.025) 3px, rgba(106,78,16,0.025) 4px),
        radial-gradient(ellipse at center, transparent 50%, rgba(106,78,16,0.08) 100%),
        #d8ccb0;
}
.catalog-item:nth-child(5n+3) {
    transform: rotate(-0.2deg);
    background:
        radial-gradient(ellipse at 30% 80%, var(--stain) 0%, transparent 30%),
        radial-gradient(ellipse at 70% 20%, var(--foxing) 0%, transparent 35%),
        radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.02) 0%, transparent 40%),
        repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.02) 2px, rgba(0,0,0,0.02) 3px),
        repeating-linear-gradient(90deg, transparent, transparent 3px, rgba(106,78,16,0.018) 3px, rgba(106,78,16,0.018) 4px),
        radial-gradient(ellipse at center, transparent 48%, rgba(106,78,16,0.1) 100%),
        #ccc0a2;
}
.catalog-item:nth-child(5n+4) {
    transform: rotate(0.5deg);
    background:
        radial-gradient(ellipse at 60% 30%, var(--foxing-dark) 0%, transparent 36%),
        radial-gradient(ellipse at 15% 65%, rgba(0,0,0,0.025) 0%, transparent 32%),
        radial-gradient(circle at 80% 75%, var(--water-ring) 0%, transparent 4%, transparent 8%, rgba(120,90,40,0.07) 9%, transparent 14%),
        repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.014) 2px, rgba(0,0,0,0.014) 3px),
        repeating-linear-gradient(90deg, transparent, transparent 3px, rgba(106,78,16,0.02) 3px, rgba(106,78,16,0.02) 4px),
        radial-gradient(ellipse at center, transparent 52%, rgba(106,78,16,0.07) 100%),
        #d6cabc;
}
.catalog-item:nth-child(5n) {
    transform: rotate(-0.6deg);
    background:
        radial-gradient(ellipse at 25% 25%, var(--stain) 0%, transparent 28%),
        radial-gradient(ellipse at 80% 80%, var(--foxing) 0%, transparent 35%),
        radial-gradient(ellipse at 50% 10%, rgba(0,0,0,0.02) 0%, transparent 30%),
        repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.016) 2px, rgba(0,0,0,0.016) 3px),
        repeating-linear-gradient(90deg, transparent, transparent 3px, rgba(106,78,16,0.024) 3px, rgba(106,78,16,0.024) 4px),
        radial-gradient(ellipse at center, transparent 46%, rgba(106,78,16,0.11) 100%),
        #c8ba9a;
}

/* 横线（模拟笔记本横线） */
.catalog-item::before {
    content: ''; position: absolute; inset: 0;
    background: repeating-linear-gradient(
        0deg, transparent, transparent 27px,
        var(--ruled-line) 27px, var(--ruled-line) 28px
    );
    pointer-events: none; border-radius: inherit;
    z-index: 0;
}
/* 左侧红色边距线 */
.catalog-item::after {
    content: ''; position: absolute;
    left: 48px; top: 0; bottom: 0; width: 1.5px;
    background: var(--margin-red); pointer-events: none;
    z-index: 0;
}

/* 顶部凸出标签（文件柜tab · 牛皮纸纤维） */
.cat-tab {
    position: absolute; top: -22px; left: 30px; z-index: 5;
    background:
        repeating-linear-gradient(87deg, transparent, transparent 6px, rgba(106,78,16,0.06) 6px, rgba(106,78,16,0.06) 7px),
        repeating-linear-gradient(3deg, transparent, transparent 10px, rgba(0,0,0,0.03) 10px, rgba(0,0,0,0.03) 11px),
        radial-gradient(ellipse at center, var(--folder-light) 0%, var(--folder) 75%, var(--folder-dark) 100%);
    border: 1.5px solid var(--folder-edge); border-bottom: none;
    border-radius: 6px 6px 0 0;
    padding: 3px 16px 4px;
    font-weight: bold; font-size: 0.78rem; color: var(--ink);
    letter-spacing: 1.5px; font-family: var(--font-mono);
    box-shadow: 0 -2px 5px rgba(0,0,0,0.15), inset 0 1px 2px rgba(255,255,255,0.1);
    min-width: 80px; text-align: center;
}
/* nth-child tab 位置 + 旋转变化 */
.catalog-item:nth-child(5n+1) .cat-tab { left: 25px; transform: rotate(-1deg); }
.catalog-item:nth-child(5n+2) .cat-tab { left: 48px; transform: rotate(0.8deg); }
.catalog-item:nth-child(5n+3) .cat-tab { left: 35px; transform: rotate(-0.5deg); }
.catalog-item:nth-child(5n+4) .cat-tab { left: 55px; transform: rotate(1.2deg); }
.catalog-item:nth-child(5n) .cat-tab { left: 20px; transform: rotate(-1.5deg); }
/* tab上的打孔 */
.cat-tab::after {
    content: ''; position: absolute; bottom: 2px; left: 50%; transform: translateX(-50%);
    width: 4px; height: 4px; border-radius: 50%;
    background: var(--folder-edge); opacity: 0.6;
    box-shadow: inset 0 1px 1px rgba(0,0,0,0.3);
}

/* 卡片内容区 */
.cat-body {
    position: relative; z-index: 1;
    padding: 16px 20px 14px 62px;
    display: flex; align-items: center; gap: 12px;
    min-height: 90px;
}

/* 右上角序号 */
.cat-serial {
    position: absolute; top: 6px; right: 14px;
    font-size: 0.6rem; color: var(--ink-fade);
    letter-spacing: 1px; font-family: var(--font-mono);
    z-index: 2;
}

/* 条形码 */
.cat-barcode {
    display: inline-flex; flex-direction: column; align-items: center; gap: 2px;
    flex-shrink: 0;
}
.cat-barcode-lines {
    width: 44px; height: 26px;
    background: repeating-linear-gradient(90deg,
        var(--ink) 0, var(--ink) 1px, transparent 1px, transparent 2px,
        var(--ink) 2px, var(--ink) 3px, transparent 3px, transparent 5px,
        var(--ink) 5px, var(--ink) 6px, transparent 6px, transparent 7px,
        var(--ink) 7px, var(--ink) 9px, transparent 9px, transparent 10px,
        var(--ink) 10px, var(--ink) 11px, transparent 11px, transparent 13px,
        var(--ink) 13px, var(--ink) 14px, transparent 14px, transparent 15px,
        var(--ink) 15px, var(--ink) 17px, transparent 17px, transparent 18px,
        var(--ink) 18px, var(--ink) 19px, transparent 19px, transparent 21px,
        var(--ink) 21px, var(--ink) 23px, transparent 23px, transparent 24px,
        var(--ink) 24px, var(--ink) 25px, transparent 25px, transparent 27px,
        var(--ink) 27px, var(--ink) 28px, transparent 28px, transparent 30px,
        var(--ink) 30px, var(--ink) 31px, transparent 31px, transparent 33px,
        var(--ink) 33px, var(--ink) 35px, transparent 35px, transparent 36px,
        var(--ink) 36px, var(--ink) 37px, transparent 37px, transparent 39px,
        var(--ink) 39px, var(--ink) 40px, transparent 40px, transparent 42px,
        var(--ink) 42px, var(--ink) 44px
    );
}
.cat-barcode-num { font-size: 0.52rem; color: var(--ink); letter-spacing: 1px; font-family: var(--font-mono); }

/* 链接区域 */
.cat-link { text-decoration: none; color: var(--ink); flex: 1; display: flex; align-items: center; gap: 12px; }
.cat-name { font-size: 1.08rem; font-weight: bold; letter-spacing: 0.5px; font-family: var(--font-head); }
.cat-meta { font-size: 0.7rem; color: var(--ink-fade); letter-spacing: 0.5px; margin-left: auto; text-align: right; line-height: 1.5; font-family: var(--font-mono); }
.cat-meta-dept { display: block; }
.cat-meta-level { display: block; }
.cat-meta-date { display: block; font-size: 0.62rem; }

/* 分类印章 · 不均匀油墨感 · 更强 */
.cat-stamp {
    border: 2.5px solid var(--stamp-red-fade); color: var(--stamp-red-fade);
    padding: 3px 10px; font-size: 0.68rem; font-weight: bold; letter-spacing: 3px;
    transform: rotate(-7deg); border-radius: 2px; opacity: 0.65; flex-shrink: 0;
    font-family: var(--font-stamp);
    box-shadow: inset 0 0 4px rgba(138,30,34,0.15);
    text-shadow: 0.5px 0.5px 0 rgba(138,30,34,0.2);
    /* 印章油墨不均匀 — 局部缺失 */
    -webkit-mask-image: radial-gradient(ellipse at 30% 40%, black 80%, transparent 92%),
                         radial-gradient(ellipse at 70% 60%, black 75%, transparent 88%);
    -webkit-mask-composite: source-in;
    mask-image: radial-gradient(ellipse at 30% 40%, black 80%, transparent 92%),
                 radial-gradient(ellipse at 70% 60%, black 75%, transparent 88%);
    mask-composite: intersect;
}
.catalog-item:nth-child(5n+1) .cat-stamp { transform: rotate(-4deg); }
.catalog-item:nth-child(5n+2) .cat-stamp { transform: rotate(-9deg); }
.catalog-item:nth-child(5n+3) .cat-stamp { transform: rotate(-6deg); }
.catalog-item:nth-child(5n+4) .cat-stamp { transform: rotate(-11deg); }
.catalog-item:nth-child(5n) .cat-stamp { transform: rotate(-3deg); }
.cat-stamp.secret { border-color: var(--stamp-orange); color: var(--stamp-orange); }
.cat-stamp.topsecret { border-color: var(--stamp-red-old); color: var(--stamp-red-old); border-width: 3px; opacity: 0.75; }
.cat-stamp.public { border-color: var(--stamp-blue-fade); color: var(--stamp-blue-fade); }
.cat-stamp.pending { border-color: var(--ink-fade); color: var(--ink-fade); border-style: dashed; opacity: 0.5; }

/* 待归档占位卡 */
.catalog-item.pending {
    opacity: 0.55;
    filter: grayscale(0.4);
}
.catalog-item.pending .cat-link { cursor: not-allowed; }
.catalog-item.pending .cat-name { color: var(--ink-fade); }
.catalog-item.pending .cat-tab {
    background: repeating-linear-gradient(45deg, transparent, transparent 4px, rgba(0,0,0,0.03) 4px, rgba(0,0,0,0.03) 8px),
                var(--paper-dark);
    border-color: var(--paper-edge-dark);
    color: var(--ink-fade);
}

/* 手写标注 */
.cat-handwritten {
    position: absolute; bottom: 5px; right: 20px;
    font-family: var(--font-hand);
    font-size: 0.82rem; color: var(--stamp-blue); opacity: 0.45;
    transform: rotate(-2deg); z-index: 2; letter-spacing: 0.5px;
}
.catalog-item:nth-child(5n+1) .cat-handwritten { transform: rotate(-3.5deg); }
.catalog-item:nth-child(5n+2) .cat-handwritten { transform: rotate(1.5deg); }
.catalog-item:nth-child(5n+3) .cat-handwritten { transform: rotate(-1deg); }
.catalog-item:nth-child(5n+4) .cat-handwritten { transform: rotate(2.5deg); }
.catalog-item:nth-child(5n) .cat-handwritten { transform: rotate(-4deg); }

/* hover 效果 */
.catalog-item:hover {
    transform: translateX(5px) rotate(0deg);
    box-shadow: 0 3px 15px rgba(0,0,0,0.25), 0 0 0 0.5px rgba(0,0,0,0.1), 2px 2px 4px rgba(0,0,0,0.06);
}
.catalog-item:hover .cat-tab {
    background:
        repeating-linear-gradient(87deg, transparent, transparent 6px, rgba(106,78,16,0.06) 6px, rgba(106,78,16,0.06) 7px),
        repeating-linear-gradient(3deg, transparent, transparent 10px, rgba(0,0,0,0.03) 10px, rgba(0,0,0,0.03) 11px),
        radial-gradient(ellipse at center, #d4b880 0%, var(--folder-light) 75%, var(--folder) 100%);
}

/* 简易索引卡 fallback（无 cat-body 结构时） */
.catalog-item > a:not(.cat-link) {
    display: block; position: relative; z-index: 1;
    padding: 16px 20px 14px 62px;
    text-decoration: none; color: var(--ink);
    font-size: 1.02rem; font-weight: bold; letter-spacing: 0.5px; font-family: var(--font-head);
}
.catalog-item > a:not(.cat-link):hover { color: var(--stamp-red); }

/* === 通用标题 === */
h1 {
    color: var(--ink); border-bottom: 3px double var(--paper-edge);
    padding-bottom: 12px; margin-bottom: 24px; font-size: 1.45rem;
    letter-spacing: 1px; font-family: var(--font-head);
    text-shadow: 0.3px 0.3px 0 rgba(42,36,24,0.08);
}
h2 {
    color: var(--ink); margin: 24px 0 12px; font-size: 1.12rem;
    border-left: 4px solid var(--stamp-red); padding-left: 12px;
    letter-spacing: 0.5px; font-family: var(--font-head);
}
h3 { margin: 18px 0 8px; color: var(--ink-soft); font-size: 0.98rem; font-family: var(--font-head); }
p {
    line-height: 1.8; color: var(--ink-soft); margin-bottom: 14px;
    font-family: var(--font-body);
    text-shadow: 0.2px 0.2px 0 rgba(42,36,24,0.04);
}
ul, ol { margin-left: 1.5rem; margin-bottom: 1rem; color: var(--ink-soft); }
li { margin-bottom: 6px; font-family: var(--font-body); }
strong { color: var(--ink); font-weight: bold; }

/* === 档案专用 === */
.archive-header { background: var(--paper-dark); padding: 20px 24px; border-radius: 2px; margin-bottom: 30px; border-left: 8px solid var(--ink); position: relative; }
.archive-header h1 { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.archive-meta { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 12px; font-size: 0.88rem; color: var(--ink-soft); }
.archive-meta div { background: var(--paper); padding: 4px 12px; border-radius: 2px; border: 1px solid var(--paper-edge); }
.danger-box {
    background:
        repeating-linear-gradient(135deg, transparent, transparent 8px, rgba(106,48,16,0.03) 8px, rgba(106,48,16,0.03) 9px),
        rgba(106,48,16,0.025);
    border-left: 4px solid var(--danger-border);
    border-top: 1px dashed rgba(106,48,16,0.2);
    border-right: 1px dashed rgba(106,48,16,0.2);
    border-bottom: 1px dashed rgba(106,48,16,0.2);
    padding: 14px 20px 14px 24px;
    margin: 24px 0; border-radius: 1px; position: relative;
}
.danger-box::after {
    content: 'WARNING'; position: absolute; top: 6px; right: 14px;
    font-size: 0.62rem; color: var(--danger-border); font-weight: bold;
    letter-spacing: 2px; opacity: 0.22; font-family: var(--font-stamp);
    transform: rotate(-3deg);
}
.insight { background: rgba(106,78,16,0.04); padding: 14px 20px; border-radius: 2px; margin: 20px 0; border-left: 4px solid var(--insight-border); }
.back-link { margin-top: 40px; text-align: center; }
.back-link a { background: var(--ink); color: var(--paper); padding: 8px 24px; border-radius: 2px; text-decoration: none; transition: all 0.2s; font-weight: bold; letter-spacing: 1px; border: 1px solid var(--paper-dark); display: inline-block; font-family: var(--font-head); }
.back-link a:hover { background: var(--stamp-red); border-color: var(--stamp-red); }

/* ========== 牛皮纸文件夹（竖向 · 文件从顶部抽出） ========== */
.folder-scene {
    max-width: 1000px; margin: 40px auto; padding: 0 20px;
    position: relative; text-align: center;
}

.folder-wrapper {
    position: relative;
    transition: opacity 0.6s ease, height 0.6s ease, margin 0.6s ease;
    z-index: 2;
}
.folder-wrapper.faded { opacity: 0; pointer-events: none; }

/* 文件夹本体 — 竖向，加高 */
.manila-folder {
    width: 100%; max-width: 440px; margin: 60px auto 20px;
    height: 560px; position: relative;
    overflow: hidden; cursor: pointer;
}

/* 顶部标签卡（凸出文件夹顶部 · 牛皮纸纤维） */
.folder-tab {
    position: absolute; top: -26px; left: 50%; transform: translateX(-50%);
    width: 210px; height: 28px;
    background:
        repeating-linear-gradient(87deg, transparent, transparent 6px, rgba(106,78,16,0.06) 6px, rgba(106,78,16,0.06) 7px),
        repeating-linear-gradient(3deg, transparent, transparent 10px, rgba(0,0,0,0.03) 10px, rgba(0,0,0,0.03) 11px),
        radial-gradient(ellipse at 40% 50%, var(--folder-light) 0%, var(--folder) 70%, var(--folder-dark) 100%);
    border: 1.5px solid var(--folder-edge); border-bottom: none;
    border-radius: 8px 8px 0 0;
    display: flex; align-items: center; justify-content: center;
    font-weight: bold; font-size: 0.78rem; color: var(--ink); letter-spacing: 1.5px;
    font-family: var(--font-mono);
    z-index: 6;
    box-shadow: 0 -2px 6px rgba(0,0,0,0.15), inset 0 1px 2px rgba(255,255,255,0.1);
}
/* tab 上的金属扣孔 */
.folder-tab::after {
    content: ''; position: absolute; bottom: 3px; left: 50%; transform: translateX(-50%);
    width: 5px; height: 5px; border-radius: 50%;
    background: var(--folder-edge); box-shadow: inset 0 1px 2px rgba(0,0,0,0.4);
}

/* 纸张边缘 — 露出文件夹顶部（模拟文件内纸张 · 老化） */
.paper-edge {
    position: absolute; top: 14px; left: 22px; right: 22px;
    height: 28px;
    background:
        radial-gradient(ellipse at 30% 50%, var(--foxing) 0%, transparent 50%),
        radial-gradient(ellipse at 70% 50%, rgba(106,68,12,0.08) 0%, transparent 40%),
        repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.015) 2px, rgba(0,0,0,0.015) 3px),
        repeating-linear-gradient(90deg, transparent, transparent 3px, rgba(106,78,16,0.022) 3px, rgba(106,78,16,0.022) 4px),
        var(--paper-white);
    border: 1px solid var(--paper-edge); border-bottom: 1px dashed var(--paper-edge);
    border-radius: 2px 2px 0 0;
    z-index: 5;
    box-shadow: 0 -2px 5px rgba(0,0,0,0.1);
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 10px;
    font-size: 0.56rem; color: var(--ink-fade); letter-spacing: 1px;
    font-family: var(--font-mono);
    transition: all 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
/* 纸张上的横线 */
.paper-edge::before {
    content: ''; position: absolute; left: 10px; right: 10px;
    top: 6px; height: 1px; background: var(--ruled-line);
}
.paper-edge::after {
    content: ''; position: absolute; left: 10px; right: 10px;
    top: 18px; height: 1px; background: var(--ruled-line);
}
/* 抽出状态：纸张向上抽出 */
.paper-edge.pulling {
    height: 80px; top: -50px;
    box-shadow: 0 -4px 15px rgba(0,0,0,0.15);
}

/* 文件夹封面/本体 · 真实牛皮纸纤维 · 非纯色 */
.folder-body {
    position: absolute; top: 36px; left: 0; right: 0; bottom: 0;
    background:
        /* 纤维丝 — 更明显 */
        repeating-linear-gradient(87deg, transparent, transparent 7px, rgba(106,78,16,0.05) 7px, rgba(106,78,16,0.05) 8px),
        repeating-linear-gradient(3deg, transparent, transparent 11px, rgba(0,0,0,0.03) 11px, rgba(0,0,0,0.03) 12px),
        repeating-linear-gradient(91deg, transparent, transparent 15px, rgba(106,68,12,0.035) 15px, rgba(106,68,12,0.035) 16px),
        /* 色块变化 — 非均匀 */
        radial-gradient(ellipse at 25% 35%, rgba(196,168,120,0.3) 0%, transparent 50%),
        radial-gradient(ellipse at 75% 65%, rgba(138,110,56,0.25) 0%, transparent 50%),
        radial-gradient(ellipse at 50% 100%, rgba(90,68,24,0.2) 0%, transparent 40%),
        /* 水渍 */
        radial-gradient(circle at 40% 70%, var(--water-ring) 0%, transparent 8%, transparent 12%, rgba(120,90,40,0.08) 13%, transparent 20%),
        /* 边缘暗化 */
        radial-gradient(ellipse at center, transparent 55%, rgba(0,0,0,0.12) 100%),
        /* 基础渐变 — 牛皮纸色 */
        linear-gradient(135deg, var(--folder-light) 0%, var(--folder) 40%, var(--folder-dark) 100%);
    border: 2px solid var(--folder-edge); border-radius: 2px;
    box-shadow: 0 6px 30px rgba(0,0,0,0.45), inset 0 0 60px rgba(0,0,0,0.15);
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: 40px 30px;
    z-index: 1;
}
/* 封面顶部阴影 */
.folder-body::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 5px;
    background: linear-gradient(to bottom, rgba(0,0,0,0.3), transparent);
    border-radius: 2px 2px 0 0;
}
/* 中央折痕 */
.folder-body::after {
    content: ''; position: absolute; left: 50%; top: 0; bottom: 0; width: 1px;
    background: rgba(0,0,0,0.1); transform: translateX(-50%);
}

/* 封面内容 */
.folder-label { text-align: center; position: relative; z-index: 2; }
.folder-label-org { font-size: 0.72rem; color: var(--ink-fade); letter-spacing: 4px; margin-bottom: 8px; text-transform: uppercase; font-family: var(--font-mono); }
.folder-label-divider { width: 60%; height: 1.5px; background: var(--folder-edge); margin: 0 auto 24px; opacity: 0.5; }
.folder-label-id { font-size: 0.66rem; color: var(--ink-fade); letter-spacing: 2px; margin-bottom: 4px; font-family: var(--font-mono); }
.folder-label-num { font-size: 2.3rem; font-weight: bold; color: var(--ink); letter-spacing: 4px; margin-bottom: 16px; font-family: var(--font-mono); }
.folder-label-title { font-size: 1.35rem; color: var(--ink-soft); margin-bottom: 28px; letter-spacing: 2px; font-family: var(--font-head); }
.folder-label-meta { font-size: 0.7rem; color: var(--ink-fade); letter-spacing: 1px; margin-bottom: 16px; line-height: 1.8; font-family: var(--font-mono); }
.folder-label-stamp {
    display: inline-block; border: 3px solid var(--stamp-red); color: var(--stamp-red);
    padding: 6px 20px; font-weight: bold; font-size: 1rem; letter-spacing: 4px;
    transform: rotate(-10deg); opacity: 0.65; border-radius: 2px;
    font-family: var(--font-stamp);
    box-shadow: inset 0 0 4px rgba(138,30,34,0.1);
    text-shadow: 0.5px 0.5px 0 rgba(138,30,34,0.2);
}
.folder-label-stamp.secret {
    border-color: var(--stamp-orange); color: var(--stamp-orange);
    box-shadow: inset 0 0 4px rgba(180,100,20,0.1);
    text-shadow: 0.5px 0.5px 0 rgba(180,100,20,0.2);
}
.folder-label-stamp.public {
    border-color: var(--stamp-blue); color: var(--stamp-blue);
    box-shadow: inset 0 0 4px rgba(26,56,88,0.1);
    text-shadow: 0.5px 0.5px 0 rgba(26,56,88,0.2);
}

/* 点击提示 */
.click-hint {
    margin-top: 16px; font-size: 0.8rem; color: var(--paper-dark);
    letter-spacing: 4px; transition: opacity 0.3s;
    animation: hint-pulse 2s ease-in-out infinite;
    font-family: var(--font-mono);
}
@keyframes hint-pulse { 0%,100% { opacity: 0.4; } 50% { opacity: 0.9; } }
.folder-scene.opened .click-hint { opacity: 0; pointer-events: none; }

/* ========== 档案文档（纸质文件 · 强化版） ========== */
.archive-document {
    display: none; opacity: 0; transform: translateY(80px);
    background:
        /* 老化斑点 — 明显 */
        radial-gradient(ellipse at 12% 18%, var(--foxing) 0%, transparent 35%),
        radial-gradient(ellipse at 85% 82%, var(--foxing-dark) 0%, transparent 30%),
        radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.02) 0%, transparent 40%),
        /* 水渍环 */
        radial-gradient(circle at 70% 25%, var(--water-ring) 0%, transparent 7%, transparent 11%, rgba(120,90,40,0.08) 12%, transparent 17%),
        radial-gradient(circle at 25% 70%, rgba(120,90,40,0.08) 0%, transparent 5%, transparent 9%, rgba(120,90,40,0.05) 10%, transparent 15%),
        /* 纸张纹理 */
        repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.012) 2px, rgba(0,0,0,0.012) 3px),
        repeating-linear-gradient(90deg, transparent, transparent 5px, rgba(106,78,16,0.015) 5px, rgba(106,78,16,0.015) 6px),
        /* 边缘泛黄 */
        radial-gradient(ellipse at center, transparent 45%, rgba(106,78,16,0.12) 100%),
        var(--paper-white);
    border: none; border-radius: 0;
    padding: 55px 65px 65px; margin: 0 auto; max-width: 720px;
    box-shadow: 0 8px 35px rgba(0,0,0,0.4), 0 0 0 1px var(--paper-edge);
    position: relative; text-align: left;
    transition: opacity 0.7s ease, transform 0.9s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.archive-document > * { position: relative; z-index: 2; }
.archive-document.visible { opacity: 1; transform: translateY(0); }

/* 水印（背景大字） */
.doc-watermark {
    position: absolute; top: 45%; left: 50%; transform: translate(-50%, -50%) rotate(-28deg);
    font-size: 5rem; font-weight: bold; color: var(--watermark);
    letter-spacing: 8px; z-index: 0; pointer-events: none;
    white-space: nowrap; user-select: none;
    font-family: var(--font-stamp);
}

/* 左侧装订孔 */
.archive-document::after {
    content: ''; position: absolute; left: 22px; top: 65px; bottom: 65px; width: 12px;
    background: radial-gradient(circle at center, var(--paper-edge) 3px, transparent 4px);
    background-size: 12px 32px; background-repeat: repeat-y; background-position: center 0;
    opacity: 0.3; z-index: 1;
}

/* 订书钉（左上角） */
.doc-staple {
    position: absolute; top: 18px; left: 55px; z-index: 3;
    width: 28px; height: 7px;
    background: linear-gradient(90deg, #888 0%, #bbb 30%, #999 50%, #bbb 70%, #888 100%);
    border-radius: 1px; box-shadow: 0 1px 2px rgba(0,0,0,0.15), 0 0 1px rgba(0,0,0,0.1);
    transform: rotate(-5deg);
}
.doc-staple::before {
    content: ''; position: absolute; left: -2px; top: 2px; width: 5px; height: 3px;
    border-left: 2px solid #777; border-bottom: 2px solid #777;
    transform: skewY(-20deg);
}
.doc-staple::after {
    content: ''; position: absolute; right: -2px; top: 2px; width: 5px; height: 3px;
    border-right: 2px solid #777; border-bottom: 2px solid #777;
    transform: skewY(20deg);
}

/* 右下角折角（狗耳） */
.doc-corner-fold {
    position: absolute; bottom: 0; right: 0; z-index: 3;
    width: 42px; height: 42px;
    background: linear-gradient(135deg, var(--paper-edge) 0%, var(--paper-dark) 100%);
    box-shadow: -2px -2px 6px rgba(0,0,0,0.1);
    border-top: 1px solid var(--paper-edge);
    border-left: 1px solid var(--paper-edge);
    clip-path: polygon(100% 0, 100% 100%, 0 100%);
}
.doc-corner-fold::after {
    content: ''; position: absolute; bottom: 0; right: 0;
    width: 42px; height: 42px;
    background: var(--paper-white);
    box-shadow: -1px -1px 3px rgba(0,0,0,0.08);
    clip-path: polygon(100% 0, 100% 100%, 0 100%);
    transform-origin: bottom right;
}

/* 咖啡渍/污渍 — 更明显 */
.doc-stain {
    position: absolute; z-index: 0; pointer-events: none;
    border-radius: 50%; opacity: 0.55;
}
.doc-stain.s1 { top: 120px; right: 40px; width: 60px; height: 50px;
    background: radial-gradient(ellipse, var(--stain) 30%, transparent 70%); }
.doc-stain.s2 { bottom: 200px; left: 30px; width: 45px; height: 38px;
    background: radial-gradient(ellipse, var(--stain-dark) 20%, transparent 60%); opacity: 0.4; }

/* 信头 */
.doc-letterhead { text-align: center; margin-bottom: 20px; padding-bottom: 14px; border-bottom: 2.5px solid var(--ink); position: relative; }
.doc-letterhead::after {
    content: ''; position: absolute; bottom: -5px; left: 50%; transform: translateX(-50%);
    width: 30%; height: 1px; background: var(--ink); opacity: 0.5;
}
.doc-letterhead-logo { font-size: 1.45rem; font-weight: bold; color: var(--ink); letter-spacing: 5px; font-family: var(--font-head); }
.doc-letterhead-sub { font-size: 0.62rem; color: var(--ink-fade); letter-spacing: 3px; margin-top: 3px; text-transform: uppercase; font-family: var(--font-mono); }
.doc-letterhead-meta { font-size: 0.66rem; color: var(--ink-fade); margin-top: 6px; letter-spacing: 1px; font-family: var(--font-mono); }

/* 圆形印章（右上角） */
.doc-seal {
    position: absolute; top: 42px; right: 50px; z-index: 3;
    width: 90px; height: 90px; border-radius: 50%;
    border: 3px solid var(--stamp-red); color: var(--stamp-red);
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    font-weight: bold; font-size: 0.75rem; letter-spacing: 2px; line-height: 1.3;
    transform: rotate(-12deg); opacity: 0.55;
    box-shadow: inset 0 0 0 1.5px var(--stamp-red), inset 0 0 6px rgba(138,30,34,0.08);
    font-family: var(--font-stamp);
}
.doc-seal::before {
    content: ''; position: absolute; inset: 4px; border-radius: 50%;
    border: 1.5px solid var(--stamp-red); opacity: 0.6;
}
.doc-seal small { display: block; font-size: 0.52rem; letter-spacing: 1px; margin-top: 2px; opacity: 0.8; }
.doc-seal-star { font-size: 1rem; margin-bottom: 2px; }

/* 分类标识条 */
.doc-classification {
    background: var(--stamp-red); color: var(--paper); text-align: center;
    padding: 5px 16px; font-size: 0.72rem; font-weight: bold; letter-spacing: 4px;
    margin-bottom: 20px; border-radius: 1px; text-transform: uppercase;
    font-family: var(--font-stamp);
    box-shadow: inset 0 0 4px rgba(0,0,0,0.1);
}
.doc-classification.secret {
    background: var(--stamp-orange);
    box-shadow: inset 0 0 4px rgba(0,0,0,0.1);
}

/* 文档元信息行 */
.doc-meta-line {
    display: flex; flex-wrap: wrap; gap: 20px; font-size: 0.76rem; color: var(--ink-fade);
    margin-bottom: 20px; padding: 8px 0; border-bottom: 1px solid var(--paper-edge);
    border-top: 1px solid var(--paper-edge); letter-spacing: 0.5px;
    font-family: var(--font-mono);
}

/* 涂黑条 */
.redact { background: var(--ink); color: var(--ink); padding: 0 4px; border-radius: 1px; user-select: none; letter-spacing: 1px; }

/* 签名区 */
.doc-signature-area {
    display: flex; justify-content: space-around; gap: 40px;
    margin-top: 40px; padding: 24px 10px 10px; border-top: 2px solid var(--paper-edge);
    position: relative;
}
.doc-signature-area::before {
    content: '以下签字确认本档案内容准确无误';
    position: absolute; top: -10px; left: 50%; transform: translateX(-50%);
    background: var(--paper-white); padding: 0 12px;
    font-size: 0.66rem; color: var(--ink-fade); letter-spacing: 2px;
    font-family: var(--font-body);
}
.sig-block { text-align: center; position: relative; }
.sig-label { font-size: 0.7rem; color: var(--ink-fade); letter-spacing: 1px; margin-bottom: 35px; font-family: var(--font-mono); }
.sig-line { border-top: 1.5px dotted var(--ink-soft); padding-top: 4px; }
.sig-name {
    font-family: var(--font-hand);
    font-size: 1.35rem; color: var(--stamp-blue); margin-top: -32px; margin-bottom: 6px;
    transform: rotate(-4deg); display: inline-block; font-weight: 700;
    text-shadow: 0.5px 0.5px 0 rgba(26,56,88,0.15);
}
.sig-title { font-size: 0.66rem; color: var(--ink-fade); letter-spacing: 0.5px; font-family: var(--font-mono); }

/* 签名旁的小印章 */
.sig-seal {
    position: absolute; top: 10px; right: -5px;
    width: 34px; height: 34px; border-radius: 50%;
    border: 2px solid var(--stamp-red-fade); opacity: 0.4;
    transform: rotate(15deg);
}
.sig-seal::after {
    content: '✓'; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
    font-size: 0.7rem; color: var(--stamp-red-fade); font-weight: bold;
}

/* 底部归档章（蓝色长方章） */
.doc-received-stamp {
    position: absolute; bottom: 45px; right: 55px; z-index: 3;
    border: 2.5px solid var(--stamp-blue); color: var(--stamp-blue);
    padding: 7px 16px; font-weight: bold; font-size: 0.8rem; letter-spacing: 2px;
    transform: rotate(5deg); opacity: 0.45; border-radius: 2px;
    text-align: center; line-height: 1.4;
    font-family: var(--font-stamp);
}
.doc-received-stamp small { display: block; font-size: 0.58rem; letter-spacing: 1px; margin-top: 2px; }

/* 日期戳（圆形蓝章） */
.doc-date-stamp {
    position: absolute; bottom: 50px; left: 55px; z-index: 3;
    width: 70px; height: 70px; border-radius: 50%;
    border: 2px solid var(--stamp-blue-fade); color: var(--stamp-blue-fade);
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    font-size: 0.58rem; letter-spacing: 1px; line-height: 1.3;
    transform: rotate(-8deg); opacity: 0.4; text-align: center;
    font-family: var(--font-stamp);
}
.doc-date-stamp::before {
    content: ''; position: absolute; inset: 3px; border-radius: 50%;
    border: 1px solid var(--stamp-blue-fade); opacity: 0.5;
}
.doc-date-stamp strong { font-size: 0.72rem; }

/* 页码 */
.doc-page-num { text-align: center; font-size: 0.68rem; color: var(--ink-fade); margin-top: 30px; letter-spacing: 1px; font-family: var(--font-mono); }

/* 文档内标题覆写 */
.archive-document h1 { font-size: 1.3rem; }
.archive-document h2 { font-size: 1.08rem; }
.archive-document p { font-family: var(--font-body); }

/* ========== 三位密码锁（档案加密区） ========== */
.combo-lock {
    margin: 35px auto; max-width: 340px;
    padding: 24px 22px 20px;
    background:
        radial-gradient(ellipse at 40% 30%, rgba(180,150,80,0.12) 0%, transparent 55%),
        radial-gradient(ellipse at 65% 70%, rgba(100,80,30,0.1) 0%, transparent 50%),
        linear-gradient(180deg, #3a3028 0%, #2a2218 50%, #1e180e 100%);
    border: 2px solid #5a4818;
    border-radius: 4px;
    box-shadow: 0 4px 18px rgba(0,0,0,0.45), inset 0 1px 2px rgba(255,255,255,0.06);
    text-align: center; position: relative;
}
.combo-lock::before {
    content: ''; position: absolute; top: 6px; left: 6px; right: 6px; bottom: 6px;
    border: 1px solid rgba(180,150,80,0.12);
    border-radius: 3px; pointer-events: none;
}
/* 四角铆钉 */
.combo-lock::after {
    content: ''; position: absolute; top: 10px; left: 10px;
    width: 6px; height: 6px; border-radius: 50%;
    background: #5a4818; box-shadow:
        312px 0 0 0 #5a4818,
        0 200px 0 0 #5a4818,
        312px 200px 0 0 #5a4818;
}
.lock-frame { position: relative; z-index: 1; }
.lock-header { color: #c4a872; margin-bottom: 14px; }
.lock-title {
    font-size: 0.8rem; letter-spacing: 3px; color: #d4b880;
    font-family: var(--font-mono); margin-bottom: 4px;
}
.lock-hint {
    font-size: 0.64rem; color: #8a7448; font-family: var(--font-body);
}
.lock-wheels {
    display: flex; justify-content: center; gap: 14px;
    margin: 16px 0 14px;
}
.wheel {
    display: flex; flex-direction: column; align-items: center; gap: 4px;
}
.wheel-btn {
    background: #1a1408; color: #c4a872; border: 1px solid #5a4818;
    width: 46px; height: 22px; font-size: 0.62rem; cursor: pointer;
    border-radius: 2px; transition: all 0.15s;
    font-family: var(--font-mono); line-height: 1;
}
.wheel-btn:hover { background: #2a2010; color: #d4b880; border-color: #8a6828; }
.wheel-btn:active { transform: scale(0.92); }
.wheel-display {
    width: 46px; height: 52px;
    background:
        radial-gradient(ellipse at 50% 30%, rgba(212,184,128,0.08) 0%, transparent 60%),
        linear-gradient(180deg, #0a0804 0%, #1a1408 50%, #0a0804 100%);
    border: 2px solid #5a4818;
    border-radius: 3px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.7rem; font-weight: bold; color: #d4b880;
    font-family: var(--font-mono);
    text-shadow: 0 0 5px rgba(212,184,128,0.35);
    box-shadow: inset 0 2px 5px rgba(0,0,0,0.5);
    user-select: none;
}
.wheel-display.spinning { animation: wheel-spin 0.18s ease; }
@keyframes wheel-spin {
    0% { transform: translateY(-8px); opacity: 0.3; }
    50% { transform: translateY(2px); }
    100% { transform: translateY(0); opacity: 1; }
}
.lock-verify {
    background: linear-gradient(180deg, #6a4818 0%, #4a3010 100%);
    color: #d4b880; border: 1px solid #8a6828;
    padding: 8px 26px; font-size: 0.76rem; font-weight: bold;
    letter-spacing: 3px; cursor: pointer; border-radius: 2px;
    font-family: var(--font-mono);
    transition: all 0.2s;
    box-shadow: 0 2px 5px rgba(0,0,0,0.3), inset 0 1px 1px rgba(255,255,255,0.06);
}
.lock-verify:hover {
    background: linear-gradient(180deg, #7a5820 0%, #5a3812 100%);
    color: #e4c890;
}
.lock-verify:active { transform: translateY(1px); }
.lock-status {
    margin-top: 10px; font-size: 0.7rem; min-height: 1.2em;
    color: #8a7448; font-family: var(--font-body);
    transition: all 0.3s;
}
.lock-status.error { color: #c84848; animation: shake 0.35s; }
.lock-status.success { color: #88a860; }
@keyframes shake {
    0%, 100% { transform: translateX(0); }
    20% { transform: translateX(-5px); }
    40% { transform: translateX(5px); }
    60% { transform: translateX(-3px); }
    80% { transform: translateX(3px); }
}
.combo-lock.unlocked { animation: unlock-fade 0.8s ease forwards; }
@keyframes unlock-fade {
    0% { opacity: 1; transform: scale(1); }
    40% { opacity: 0.6; transform: scale(0.98); }
    100% { opacity: 0; transform: scale(0.94); max-height: 0; margin: 0; padding: 0; overflow: hidden; border-width: 0; }
}
.hidden-archive { display: none; opacity: 0; transition: opacity 0.6s ease; }
.hidden-archive.revealed { display: block; opacity: 1; }
.hidden-archive.revealed::before {
    content: ''; display: block; height: 2px;
    background: repeating-linear-gradient(90deg, var(--stamp-red) 0, var(--stamp-red) 8px, transparent 8px, transparent 14px);
    margin: -10px 0 20px; opacity: 0.3;
}

/* ========== 页面差异化样式 ========== */

/* === 证据板 / 软木板（异常实体 entities.html） === */
.evidence-board {
    background:
        /* 软木板纹理 */
        radial-gradient(circle at 15% 25%, rgba(139,90,43,0.12) 0%, transparent 8%),
        radial-gradient(circle at 45% 60%, rgba(139,90,43,0.1) 0%, transparent 6%),
        radial-gradient(circle at 75% 35%, rgba(139,90,43,0.13) 0%, transparent 7%),
        radial-gradient(circle at 85% 80%, rgba(139,90,43,0.1) 0%, transparent 6%),
        radial-gradient(circle at 25% 85%, rgba(139,90,43,0.12) 0%, transparent 7%),
        radial-gradient(circle at 60% 15%, rgba(139,90,43,0.09) 0%, transparent 5%),
        repeating-radial-gradient(circle at 30% 50%, transparent 0, transparent 3px, rgba(100,60,30,0.04) 3px, rgba(100,60,30,0.04) 4px),
        /* 基础软木板色 */
        radial-gradient(ellipse at 50% 50%, #6b4a2a 0%, #5a3d20 60%, #4a3318 100%);
    border: 3px solid #3a2810; border-radius: 3px;
    padding: 35px 25px 25px;
    box-shadow: inset 0 0 80px rgba(0,0,0,0.4), 0 4px 20px rgba(0,0,0,0.3);
    position: relative; min-height: 500px;
    display: flex; flex-wrap: wrap; gap: 20px 30px; justify-content: center; align-items: flex-start;
}
/* 软木板边框装饰 — 图钉痕迹 */
.evidence-board::before {
    content: ''; position: absolute; top: 8px; left: 8px; right: 8px; bottom: 8px;
    border: 1px dashed rgba(212,201,170,0.08); border-radius: 2px; pointer-events: none;
}
/* 实体卡片 — 拍立得/便签风格 */
.entity-card {
    background:
        radial-gradient(ellipse at 20% 30%, var(--foxing) 0%, transparent 40%),
        repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.012) 2px, rgba(0,0,0,0.012) 3px),
        var(--paper-white);
    border: 1px solid var(--paper-edge);
    padding: 12px 14px 16px; width: 200px; min-height: 240px;
    box-shadow: 0 3px 12px rgba(0,0,0,0.25), 0 0 0 0.5px rgba(0,0,0,0.08);
    position: relative; cursor: pointer; transition: all 0.25s ease;
    text-decoration: none; color: var(--ink); display: block;
}
.entity-card:nth-child(3n+1) { transform: rotate(-2deg); }
.entity-card:nth-child(3n+2) { transform: rotate(1.5deg); }
.entity-card:nth-child(3n) { transform: rotate(-1deg); }
.entity-card:hover { transform: rotate(0deg) scale(1.04); z-index: 10; box-shadow: 0 6px 20px rgba(0,0,0,0.3); }
/* 图钉 */
.entity-card::before {
    content: ''; position: absolute; top: -8px; left: 50%; transform: translateX(-50%);
    width: 12px; height: 12px; border-radius: 50%;
    background: radial-gradient(circle at 35% 35%, #d44848 0%, #a82828 60%, #882020 100%);
    box-shadow: 0 2px 4px rgba(0,0,0,0.3), inset 0 1px 2px rgba(255,255,255,0.2);
    z-index: 5;
}
.entity-card:nth-child(3n+1)::before { background: radial-gradient(circle at 35% 35%, #d44848 0%, #a82828 60%, #882020 100%); }
.entity-card:nth-child(3n+2)::before { background: radial-gradient(circle at 35% 35%, #4878d4 0%, #2848a8 60%, #202088 100%); }
.entity-card:nth-child(3n)::before { background: radial-gradient(circle at 35% 35%, #d4a848 0%, #a88828 60%, #886820 100%); }
.entity-photo {
    width: 100%; aspect-ratio: 4/3; background: var(--paper-dark);
    border: 1px solid var(--paper-edge); margin-bottom: 10px;
    display: flex; align-items: center; justify-content: center;
    font-size: 2.5rem; color: var(--ink-fade); opacity: 0.3;
    filter: sepia(0.3) contrast(0.9);
}
.entity-id { font-size: 0.58rem; color: var(--ink-fade); letter-spacing: 1.5px; font-family: var(--font-mono); margin-bottom: 2px; }
.entity-name { font-size: 1rem; font-weight: bold; font-family: var(--font-head); margin-bottom: 6px; letter-spacing: 0.5px; }
.entity-class { font-size: 0.62rem; color: var(--stamp-red-fade); font-family: var(--font-stamp); letter-spacing: 1px; }
.entity-note {
    font-family: var(--font-hand); font-size: 0.78rem; color: var(--stamp-blue); opacity: 0.6;
    margin-top: 6px; transform: rotate(-1deg); line-height: 1.4;
}
/* 红线连接装饰 */
.red-string {
    position: absolute; pointer-events: none; z-index: 0;
    width: 2px; background: var(--stamp-red-fade); opacity: 0.25;
    transform-origin: top center;
}
.red-string::before {
    content: ''; position: absolute; top: -3px; left: -2px;
    width: 6px; height: 6px; border-radius: 50%; background: var(--stamp-red-fade);
}
.red-string::after {
    content: ''; position: absolute; bottom: -3px; left: -2px;
    width: 6px; height: 6px; border-radius: 50%; background: var(--stamp-red-fade);
}

/* === 标本登记卡（异常物品 artifacts.html） === */
.specimen-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; }
.specimen-card {
    background:
        radial-gradient(ellipse at 15% 20%, var(--foxing) 0%, transparent 35%),
        radial-gradient(ellipse at 80% 80%, var(--foxing-dark) 0%, transparent 30%),
        repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.01) 2px, rgba(0,0,0,0.01) 3px),
        var(--paper-white);
    border: 1.5px solid var(--paper-edge); border-radius: 1px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.15), inset 0 0 30px rgba(106,78,16,0.04);
    overflow: hidden; position: relative; transition: all 0.25s ease;
    text-decoration: none; color: var(--ink); display: block;
}
.specimen-card:hover { box-shadow: 0 4px 18px rgba(0,0,0,0.25); transform: translateY(-2px); }
.specimen-header {
    background: linear-gradient(180deg, var(--ink) 0%, var(--ink-soft) 100%);
    color: var(--paper); padding: 6px 14px; font-size: 0.62rem;
    letter-spacing: 2px; font-family: var(--font-mono); text-transform: uppercase;
    display: flex; justify-content: space-between; align-items: center;
}
.specimen-display {
    height: 140px; background:
        radial-gradient(ellipse at center, var(--paper-light) 0%, var(--paper-dark) 100%);
    display: flex; align-items: center; justify-content: center;
    border-bottom: 1px solid var(--paper-edge); position: relative;
}
.specimen-silhouette {
    font-size: 3rem; color: var(--ink-fade); opacity: 0.2;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.1));
}
/* 玻璃柜反光 */
.specimen-display::after {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 60%;
    background: linear-gradient(180deg, rgba(255,255,255,0.06) 0%, transparent 100%);
    pointer-events: none;
}
.specimen-body { padding: 12px 14px; }
.specimen-name { font-size: 1.05rem; font-weight: bold; font-family: var(--font-head); margin-bottom: 4px; letter-spacing: 0.5px; }
.specimen-id { font-size: 0.56rem; color: var(--ink-fade); font-family: var(--font-mono); letter-spacing: 1px; margin-bottom: 8px; }
.specimen-props { font-size: 0.72rem; color: var(--ink-soft); line-height: 1.7; font-family: var(--font-mono); }
.specimen-props span { display: inline-block; margin-right: 12px; }
.specimen-props strong { color: var(--ink); font-weight: bold; }
.specimen-footer {
    border-top: 1px dashed var(--paper-edge); padding: 8px 14px;
    display: flex; justify-content: space-between; align-items: center;
    font-size: 0.62rem; color: var(--ink-fade); font-family: var(--font-mono);
}
.specimen-status { padding: 2px 8px; border: 1px solid; border-radius: 1px; font-size: 0.56rem; letter-spacing: 1px; }
.specimen-status.contained { border-color: #4a6818; color: #4a6818; background: rgba(74,104,24,0.05); }
.specimen-status.lost { border-color: var(--stamp-red); color: var(--stamp-red); background: rgba(138,30,34,0.05); }

/* === 时间轴日志（编年史 chronicle.html） === */
.timeline-log {
    position: relative; padding: 20px 0 20px 40px;
}
/* 垂直轴线 */
.timeline-log::before {
    content: ''; position: absolute; left: 15px; top: 10px; bottom: 10px; width: 2px;
    background: repeating-linear-gradient(180deg, var(--ink-fade) 0, var(--ink-fade) 6px, transparent 6px, transparent 10px);
    opacity: 0.4;
}
.timeline-entry {
    position: relative; margin-bottom: 35px; padding-left: 20px;
}
/* 轴上节点 */
.timeline-entry::before {
    content: ''; position: absolute; left: -30px; top: 6px;
    width: 14px; height: 14px; border-radius: 50%;
    background: var(--paper-dark); border: 2px solid var(--ink-fade);
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
    z-index: 2;
}
.timeline-entry::after {
    content: ''; position: absolute; left: -24px; top: 10px;
    width: 14px; height: 1.5px; background: var(--ink-fade); opacity: 0.3;
}
/* 日期戳 */
.timeline-date {
    display: inline-block; border: 2px solid var(--stamp-blue-fade); color: var(--stamp-blue-fade);
    padding: 3px 12px; font-size: 0.7rem; font-weight: bold; letter-spacing: 2px;
    font-family: var(--font-stamp); border-radius: 2px; transform: rotate(-2deg);
    opacity: 0.65; margin-bottom: 8px;
}
.timeline-entry:nth-child(odd) .timeline-date { transform: rotate(1.5deg); }
.timeline-content {
    background:
        radial-gradient(ellipse at 20% 30%, var(--foxing) 0%, transparent 35%),
        repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.015) 2px, rgba(0,0,0,0.015) 3px),
        var(--paper-white);
    border: 1px solid var(--paper-edge); border-radius: 1px;
    padding: 16px 20px; box-shadow: 0 2px 8px rgba(0,0,0,0.12);
    position: relative;
}
.timeline-content::before {
    content: ''; position: absolute; left: -1px; top: 0; bottom: 0; width: 3px;
    background: var(--stamp-red-fade); opacity: 0.5;
}
.timeline-title { font-size: 1rem; font-weight: bold; font-family: var(--font-head); margin-bottom: 6px; }
.timeline-text { font-size: 0.84rem; color: var(--ink-soft); line-height: 1.7; }
.timeline-tag {
    display: inline-block; font-size: 0.56rem; padding: 1px 8px; border-radius: 1px;
    font-family: var(--font-mono); letter-spacing: 1px; margin-top: 8px;
    border: 1px solid var(--ink-fade); color: var(--ink-fade); opacity: 0.6;
}

/* 编年史待解密占位符 */
.chronicle-placeholder {
    text-align: center;
    padding: 60px 40px;
    background:
        repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(0,0,0,0.015) 3px, rgba(0,0,0,0.015) 4px),
        radial-gradient(ellipse at center, rgba(180,150,90,0.08) 0%, transparent 60%),
        var(--paper);
    border: 2px dashed var(--paper-edge-dark);
    border-radius: 2px;
    position: relative;
    margin: 20px 0;
}
.placeholder-stamp { margin-bottom: 20px; }
.placeholder-seal {
    display: inline-block;
    border: 3px solid var(--ink-fade);
    color: var(--ink-fade);
    padding: 8px 24px;
    font-family: var(--font-stamp);
    font-size: 0.9rem;
    letter-spacing: 4px;
    transform: rotate(-5deg);
    opacity: 0.5;
    border-radius: 2px;
}
.placeholder-seal-sub {
    font-family: var(--font-mono);
    font-size: 0.55rem;
    letter-spacing: 2px;
    color: var(--ink-fade);
    opacity: 0.5;
    margin-top: 8px;
}
.placeholder-icon {
    font-size: 3rem;
    opacity: 0.25;
    margin: 10px 0 15px;
}
.placeholder-title {
    font-family: var(--font-head);
    font-size: 1.1rem;
    color: var(--ink-soft);
    letter-spacing: 2px;
    margin-bottom: 15px;
    opacity: 0.7;
}
.placeholder-text {
    font-family: var(--font-body);
    font-size: 0.78rem;
    color: var(--ink-fade);
    line-height: 2;
    opacity: 0.65;
    margin-bottom: 25px;
}
.placeholder-meta {
    display: flex;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
    font-family: var(--font-mono);
    font-size: 0.62rem;
    color: var(--ink-fade);
    opacity: 0.5;
    margin-bottom: 25px;
}
.placeholder-meta span {
    padding: 2px 10px;
    border: 1px solid var(--paper-edge-dark);
    border-radius: 1px;
}
.placeholder-barcode {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 1px;
    opacity: 0.2;
    flex-direction: column;
    align-items: center;
}
.placeholder-barcode > div {
    display: flex;
    gap: 1px;
    align-items: flex-end;
}
.placeholder-barcode span {
    background: var(--ink);
    width: 1.5px;
}
.placeholder-barcode-num {
    font-family: var(--font-mono);
    font-size: 0.5rem;
    color: var(--ink);
    margin-top: 4px;
    letter-spacing: 1px;
}

/* === 卷宗夹平铺（组织档案 organizations.html 专用） === */
.dossier-grid { display: flex; flex-direction: column; gap: 20px; }
.dossier-folder {
    background:
        repeating-linear-gradient(87deg, transparent, transparent 7px, rgba(106,78,16,0.04) 7px, rgba(106,78,16,0.04) 8px),
        repeating-linear-gradient(3deg, transparent, transparent 11px, rgba(0,0,0,0.02) 11px, rgba(0,0,0,0.02) 12px),
        linear-gradient(135deg, var(--folder-light) 0%, var(--folder) 50%, var(--folder-dark) 100%);
    border: 2px solid var(--folder-edge); border-radius: 2px;
    box-shadow: 0 3px 12px rgba(0,0,0,0.2);
    position: relative; overflow: hidden; transition: all 0.25s ease;
}
.dossier-folder:nth-child(even) { transform: rotate(0.3deg); }
.dossier-folder:nth-child(odd) { transform: rotate(-0.2deg); }
.dossier-folder:hover { transform: rotate(0deg) translateY(-2px); box-shadow: 0 5px 18px rgba(0,0,0,0.25); }
/* 文件夹tab */
.dossier-tab {
    position: absolute; top: 0; right: 20px; z-index: 5;
    background:
        repeating-linear-gradient(87deg, transparent, transparent 5px, rgba(106,78,16,0.06) 5px, rgba(106,78,16,0.06) 6px),
        radial-gradient(ellipse at center, var(--folder-light) 0%, var(--folder) 80%, var(--folder-dark) 100%);
    border: 1.5px solid var(--folder-edge); border-bottom: none;
    border-radius: 0 0 4px 4px; padding: 4px 16px 5px;
    font-weight: bold; font-size: 0.76rem; color: var(--ink); letter-spacing: 1.5px;
    font-family: var(--font-mono); text-decoration: none;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.dossier-content {
    display: flex; align-items: center; gap: 20px; padding: 18px 20px 18px 24px;
    text-decoration: none; color: var(--ink);
}
.dossier-emblem {
    width: 60px; height: 60px; border-radius: 50%;
    border: 2px solid var(--folder-edge); flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.2rem; font-weight: bold; color: var(--ink); font-family: var(--font-head);
    background: radial-gradient(ellipse at 30% 30%, rgba(255,255,255,0.1) 0%, transparent 50%), var(--folder-dark);
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.2);
}
.dossier-info { flex: 1; }
.dossier-name { font-size: 1.1rem; font-weight: bold; font-family: var(--font-head); margin-bottom: 4px; letter-spacing: 0.5px; }
.dossier-desc { font-size: 0.76rem; color: var(--ink-soft); line-height: 1.5; }
.dossier-meta { text-align: right; flex-shrink: 0; }
.dossier-meta-level { font-size: 0.72rem; font-family: var(--font-mono); color: var(--ink-fade); letter-spacing: 1px; margin-bottom: 4px; }
.dossier-meta-stamp {
    display: inline-block; border: 2px solid; padding: 2px 10px;
    font-size: 0.62rem; font-weight: bold; letter-spacing: 2px;
    font-family: var(--font-stamp); border-radius: 2px; transform: rotate(-3deg);
}
.dossier-meta-stamp.ally { border-color: var(--stamp-blue-fade); color: var(--stamp-blue-fade); opacity: 0.6; }
.dossier-meta-stamp.hostile { border-color: var(--stamp-red-fade); color: var(--stamp-red-fade); opacity: 0.65; }
.dossier-meta-stamp.neutral { border-color: var(--ink-fade); color: var(--ink-fade); opacity: 0.5; }

/* === 安全简报（主页 index.html 专用） === */
.briefing-header {
    text-align: center; margin-bottom: 30px; padding: 20px;
    border: 2px solid var(--ink); border-radius: 2px; position: relative;
    background:
        repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.015) 2px, rgba(0,0,0,0.015) 3px),
        var(--paper-light);
}
.briefing-header::before {
    content: ''; position: absolute; top: -6px; left: 50%; transform: translateX(-50%);
    width: 70%; height: 3px; background: var(--ink); opacity: 0.3;
}
.briefing-classified {
    display: inline-block; border: 3px solid var(--stamp-red); color: var(--stamp-red);
    padding: 4px 24px; font-size: 0.9rem; font-weight: bold; letter-spacing: 5px;
    font-family: var(--font-stamp); transform: rotate(-3deg); opacity: 0.6;
    margin-bottom: 16px; border-radius: 2px;
}
.briefing-title { font-size: 1.6rem; font-weight: bold; letter-spacing: 3px; font-family: var(--font-head); margin-bottom: 6px; }
.briefing-subtitle { font-size: 0.62rem; color: var(--ink-fade); letter-spacing: 2px; font-family: var(--font-mono); text-transform: uppercase; }
.briefing-meta-row {
    display: flex; justify-content: center; gap: 24px; margin-top: 14px;
    font-size: 0.7rem; color: var(--ink-fade); font-family: var(--font-mono); letter-spacing: 1px;
}
.briefing-meta-row span { border-bottom: 1px dotted var(--ink-fade); padding-bottom: 2px; }
.briefing-section {
    margin: 24px 0; padding: 16px 20px;
    border-left: 4px solid var(--paper-edge); background: rgba(0,0,0,0.02);
}
.briefing-section h2 { border-left: none; padding-left: 0; }

/* === 简报区块标题行 === */
.section-header {
    display: flex; align-items: center; gap: 12px;
    margin-bottom: 14px; flex-wrap: wrap;
}
.section-num {
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; flex-shrink: 0;
    background: var(--ink); color: var(--paper);
    font-family: var(--font-mono); font-size: 0.72rem; font-weight: bold;
    border-radius: 2px; letter-spacing: 1px;
}
.section-header h2 {
    flex: 1; min-width: 120px; margin: 0;
    font-size: 1.08rem; font-family: var(--font-head);
    border-bottom: 2px solid var(--paper-edge); padding-bottom: 4px;
}
.section-tag {
    display: inline-block; padding: 2px 10px; font-size: 0.56rem; font-weight: bold;
    font-family: var(--font-mono); letter-spacing: 2px; border-radius: 1px;
    background: rgba(0,0,0,0.06); color: var(--ink-soft); border: 1px solid var(--paper-edge);
}
.section-tag.hostile { background: rgba(139,26,26,0.1); color: var(--stamp-red); border-color: var(--stamp-red); }
.section-tag.ally { background: rgba(46,80,46,0.1); color: #3a5a3a; border-color: #3a5a3a; }

/* === 打字机正文 === */
.typewriter-text {
    font-family: var(--font-body); font-size: 0.82rem; line-height: 1.85;
    color: var(--ink); margin: 10px 0; text-align: justify;
    word-break: break-word; overflow-wrap: break-word;
}
.typewriter-text.redact { user-select: none; letter-spacing: 1px; }

/* === 小节标题 === */
.sub-section-title {
    font-size: 0.88rem; font-family: var(--font-head); color: var(--ink);
    margin: 18px 0 8px; padding-left: 12px; border-left: 3px solid var(--paper-edge);
}

/* === 分类列表 === */
.classification-list {
    list-style: none; padding: 0; margin: 12px 0;
}
.classification-list li {
    font-family: var(--font-body); font-size: 0.78rem; line-height: 1.8;
    padding: 6px 14px; border-bottom: 1px dotted var(--paper-edge);
}
.classification-list li strong {
    display: inline-block; min-width: 36px; padding: 1px 6px;
    background: var(--ink); color: var(--paper); border-radius: 1px;
    font-family: var(--font-mono); font-size: 0.66rem; text-align: center;
    margin-right: 8px;
}

/* === 组织条目 === */
.org-entry {
    margin: 16px 0; padding: 14px 18px;
    border: 1px solid var(--paper-edge); border-radius: 2px;
    background: var(--paper); position: relative;
}
.org-entry.hostile { border-left: 4px solid var(--stamp-red); }
.org-entry.ally { border-left: 4px solid #3a5a3a; }
.org-entry h3 { font-size: 0.92rem; font-family: var(--font-head); margin-bottom: 6px; }
.org-entry p { font-size: 0.76rem; line-height: 1.75; margin: 4px 0; color: var(--ink); }
.org-entry p strong { font-family: var(--font-mono); font-size: 0.7rem; }

/* === 部门目录卡片 === */
.dept-directory { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; margin-top: 16px; }
.dept-card {
    background: var(--paper); border: 1px solid var(--paper-edge); border-radius: 1px;
    padding: 10px 14px; position: relative; transition: all 0.2s;
}
.dept-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.1); transform: translateY(-1px); }
.dept-card .dept-code {
    display: inline-block; font-size: 0.56rem; font-family: var(--font-mono);
    color: var(--ink-fade); letter-spacing: 1px; margin-bottom: 4px;
}
.dept-card h3 { font-size: 0.88rem; font-weight: bold; font-family: var(--font-head); margin-bottom: 2px; }
.dept-card p { font-size: 0.56rem; color: var(--ink-fade); font-family: var(--font-mono); letter-spacing: 1px; margin: 0 0 6px; }
.dept-card .dept-fn { display: block; font-size: 0.7rem; font-family: var(--font-body); color: var(--ink-soft); line-height: 1.5; }
.dept-card::before {
    content: ''; position: absolute; top: 8px; right: 10px;
    width: 5px; height: 5px; border-radius: 50%; background: var(--stamp-red-fade); opacity: 0.4;
}

/* ========== 文章页面差异化主题元素 ========== */

/* === 旅馆钥匙标签（Md-001 极点旅店） === */
.key-tag {
    margin: 30px auto; max-width: 320px; position: relative;
    display: flex; align-items: center; gap: 0;
}
.key-tag-string {
    width: 3px; height: 40px; margin: 0 auto -2px;
    background: linear-gradient(180deg, #6a5028, #4a3818);
    border-radius: 1px; position: relative; z-index: 0;
}
.key-tag-string::after {
    content: ''; position: absolute; bottom: -3px; left: -3px;
    width: 9px; height: 9px; border-radius: 50%;
    background: radial-gradient(circle at 35% 35%, #8a7040, #3a2810);
    border: 1px solid #2a1808;
}
.key-tag-body {
    flex: 1; padding: 16px 20px; position: relative;
    background:
        repeating-linear-gradient(88deg, transparent, transparent 4px, rgba(106,78,16,0.04) 4px, rgba(106,78,16,0.04) 5px),
        radial-gradient(ellipse at 30% 20%, rgba(180,150,80,0.12) 0%, transparent 60%),
        linear-gradient(135deg, #c4a870 0%, #a08850 50%, #8a7040 100%);
    border: 1px solid #6a4818; border-radius: 2px;
    clip-path: polygon(0 0, 100% 0, 100% 70%, 92% 100%, 0 100%);
    box-shadow: 0 3px 12px rgba(0,0,0,0.25), inset 0 1px 2px rgba(255,255,255,0.1);
}
.key-tag-hole {
    position: absolute; top: 10px; left: 10px;
    width: 10px; height: 10px; border-radius: 50%;
    background: var(--paper-edge); border: 1px solid #5a3810;
    box-shadow: inset 0 1px 2px rgba(0,0,0,0.3);
}
.key-tag-content { margin-left: 28px; }
.key-tag-label { font-size: 0.58rem; letter-spacing: 2px; color: #4a3010; font-family: var(--font-mono); }
.key-tag-room { font-size: 1.6rem; font-weight: bold; color: #2a1808; font-family: var(--font-head); line-height: 1.1; margin: 2px 0; }
.key-tag-info { font-size: 0.66rem; color: #5a3818; font-family: var(--font-body); line-height: 1.5; }

/* === 黑匣子数据条（Md-003 迫降） === */
.blackbox-strip {
    margin: 30px auto; max-width: 560px;
    background:
        repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(255,255,255,0.02) 3px, rgba(255,255,255,0.02) 4px),
        linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
    border: 2px solid #333; border-radius: 3px;
    padding: 18px 22px; position: relative;
    box-shadow: 0 3px 15px rgba(0,0,0,0.4), inset 0 1px 3px rgba(255,255,255,0.03);
}
.blackbox-strip::before {
    content: 'FLIGHT DATA RECORDER · FDR'; position: absolute; top: 5px; right: 14px;
    font-size: 0.52rem; color: #555; letter-spacing: 2px; font-family: var(--font-mono);
}
.blackbox-strip::after {
    content: ''; position: absolute; top: 10px; left: 10px;
    width: 6px; height: 6px; border-radius: 50%; background: #cc3300;
    box-shadow: 0 0 4px rgba(204,51,0,0.5);
    animation: blackbox-blink 2s ease-in-out infinite;
}
@keyframes blackbox-blink { 0%,100% { opacity: 0.3; } 50% { opacity: 1; } }
.blackbox-header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; padding-left: 20px; }
.blackbox-flight { font-size: 0.9rem; color: #cc8833; font-family: var(--font-mono); font-weight: bold; letter-spacing: 1px; }
.blackbox-status { font-size: 0.62rem; color: #cc3300; font-family: var(--font-mono); letter-spacing: 2px; }
.blackbox-data { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px 20px; padding-left: 20px; }
.blackbox-row { display: flex; justify-content: space-between; font-size: 0.66rem; font-family: var(--font-mono); color: #886633; border-bottom: 1px dotted rgba(136,102,51,0.15); padding-bottom: 3px; }
.blackbox-row span:last-child { color: #bb9944; }

/* === 台阶计数图（D-005 十四层台阶） === */
.step-counter {
    margin: 30px auto; max-width: 360px; padding: 20px;
    background:
        repeating-linear-gradient(90deg, transparent, transparent 20px, rgba(0,0,0,0.02) 20px, rgba(0,0,0,0.02) 21px),
        var(--paper-white);
    border: 1px solid var(--paper-edge); border-radius: 2px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    position: relative;
}
.step-counter-title { text-align: center; font-size: 0.72rem; color: var(--ink-soft); font-family: var(--font-mono); letter-spacing: 2px; margin-bottom: 14px; }
.step-diagram { display: flex; flex-direction: column-reverse; gap: 1px; align-items: flex-start; padding: 0 8px 0 32px; }
.step-item { display: flex; align-items: center; height: 18px; position: relative; width: 100%; }
.step-block { width: 55%; height: 16px; border: 1px solid var(--paper-edge); background: rgba(0,0,0,0.03); border-radius: 1px; }
.step-num { position: absolute; left: -28px; font-size: 0.58rem; color: var(--ink-fade); font-family: var(--font-mono); width: 22px; text-align: right; line-height: 18px; }
.step-item:nth-child(1) .step-block { margin-left: 0%; }
.step-item:nth-child(2) .step-block { margin-left: 3.5%; }
.step-item:nth-child(3) .step-block { margin-left: 7%; }
.step-item:nth-child(4) .step-block { margin-left: 10.5%; }
.step-item:nth-child(5) .step-block { margin-left: 14%; }
.step-item:nth-child(6) .step-block { margin-left: 17.5%; }
.step-item:nth-child(7) .step-block { margin-left: 21%; }
.step-item:nth-child(8) .step-block { margin-left: 24.5%; }
.step-item:nth-child(9) .step-block { margin-left: 28%; }
.step-item:nth-child(10) .step-block { margin-left: 31.5%; }
.step-item:nth-child(11) .step-block { margin-left: 35%; }
.step-item:nth-child(12) .step-block { margin-left: 38.5%; }
.step-item:nth-child(13) .step-block { margin-left: 42%; }
.step-item:nth-child(14) .step-block { margin-left: 45.5%; }
/* 错位阶（第7级 · 标记） */
.step-item.misaligned .step-block {
    background: rgba(106,48,16,0.15); border: 1px solid var(--danger-border);
    box-shadow: 0 0 6px rgba(106,48,16,0.2);
    position: relative;
}
.step-item.misaligned .step-block::after {
    content: '错位阶'; position: absolute; right: -52px; top: 0;
    font-size: 0.56rem; color: var(--danger-border); font-family: var(--font-mono);
    white-space: nowrap;
}
.step-counter-note { margin-top: 12px; text-align: center; font-size: 0.62rem; color: var(--ink-fade); font-family: var(--font-body); }

/* === 热力监测仪表（Eh-004 沸城） === */
.thermal-gauge {
    margin: 30px auto; max-width: 300px; padding: 20px 24px;
    background:
        radial-gradient(ellipse at 40% 30%, rgba(204,51,0,0.06) 0%, transparent 60%),
        linear-gradient(180deg, #2a1a10 0%, #1a1008 100%);
    border: 2px solid #5a3010; border-radius: 4px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.35), inset 0 1px 2px rgba(255,255,255,0.04);
    text-align: center; position: relative;
}
.thermal-gauge::before {
    content: 'THERMAL MONITOR'; position: absolute; top: 6px; left: 50%; transform: translateX(-50%);
    font-size: 0.52rem; color: #6a4818; letter-spacing: 3px; font-family: var(--font-mono);
}
.thermal-display { margin-top: 16px; }
.thermal-value {
    font-size: 2.6rem; font-weight: bold; color: #cc3300; font-family: var(--font-mono);
    text-shadow: 0 0 12px rgba(204,51,0,0.4); line-height: 1;
}
.thermal-unit { font-size: 1rem; color: #cc5522; font-family: var(--font-mono); }
.thermal-bar {
    height: 8px; margin: 12px auto 8px; max-width: 200px;
    background: linear-gradient(90deg, #2a6010 0%, #88aa20 30%, #cc8810 60%, #cc3300 85%, #660000 100%);
    border-radius: 4px; border: 1px solid #333;
    position: relative;
}
.thermal-bar-marker {
    position: absolute; top: -4px; left: 82%;
    width: 4px; height: 16px; background: #ffcc00; border-radius: 1px;
    box-shadow: 0 0 4px rgba(255,204,0,0.5);
}
.thermal-labels { display: flex; justify-content: space-between; max-width: 200px; margin: 0 auto; font-size: 0.5rem; color: #6a4818; font-family: var(--font-mono); }
.thermal-warning { margin-top: 10px; font-size: 0.62rem; color: #cc5522; font-family: var(--font-mono); letter-spacing: 1px; }

/* === 碎镜警告面板（Vsd-006 换衣间） === */
.mirror-panel {
    margin: 30px auto; max-width: 480px; padding: 0;
    position: relative; overflow: hidden;
    border-radius: 2px;
}
.mirror-frame {
    padding: 20px 24px; position: relative;
    background:
        radial-gradient(ellipse at 40% 30%, rgba(40,38,42,0.7) 0%, transparent 60%),
        radial-gradient(ellipse at 60% 70%, rgba(20,18,24,0.5) 0%, transparent 50%),
        linear-gradient(180deg, #1a181e 0%, #0e0c12 100%);
    border: 2px solid #3a383e; border-radius: 3px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.5), inset 0 2px 8px rgba(0,0,0,0.3);
}
.mirror-frame::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0;
    background:
        linear-gradient(135deg, transparent 30%, rgba(255,255,255,0.04) 40%, transparent 50%),
        linear-gradient(45deg, transparent 60%, rgba(255,255,255,0.02) 70%, transparent 80%);
    pointer-events: none; border-radius: 2px;
}
/* 裂纹 */
.mirror-crack { position: absolute; pointer-events: none; }
.mirror-crack.c1 { top: 10%; left: 20%; width: 60%; height: 1px; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2) 30%, rgba(255,255,255,0.3) 50%, transparent); transform: rotate(15deg); }
.mirror-crack.c2 { top: 5%; left: 45%; width: 1px; height: 80%; background: linear-gradient(180deg, transparent, rgba(255,255,255,0.15) 40%, rgba(255,255,255,0.25) 60%, transparent); transform: rotate(8deg); }
.mirror-crack.c3 { top: 30%; left: 10%; width: 50%; height: 1px; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.15) 50%, transparent); transform: rotate(-25deg); }
.mirror-crack.c4 { top: 50%; left: 30%; width: 40%; height: 1px; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1) 50%, transparent); transform: rotate(40deg); }
.mirror-content { position: relative; z-index: 2; text-align: center; }
.mirror-icon { font-size: 2rem; color: #6a4818; opacity: 0.5; margin-bottom: 8px; }
.mirror-title { font-size: 0.82rem; color: #cc3322; font-family: var(--font-mono); letter-spacing: 3px; font-weight: bold; }
.mirror-subtitle { font-size: 0.62rem; color: #886644; font-family: var(--font-mono); letter-spacing: 1px; margin-top: 4px; }
.mirror-text { margin-top: 10px; font-size: 0.68rem; color: #664422; font-family: var(--font-body); line-height: 1.6; }

/* === 气体浓度深度图（Eh3-007 瓦斯矿洞） === */
.gas-chart {
    margin: 30px auto; max-width: 420px; padding: 20px 24px;
    background:
        repeating-linear-gradient(0deg, transparent, transparent 20px, rgba(0,0,0,0.02) 20px, rgba(0,0,0,0.02) 21px),
        var(--paper-white);
    border: 1px solid var(--paper-edge); border-radius: 2px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.gas-chart-title { text-align: center; font-size: 0.72rem; color: var(--ink-soft); font-family: var(--font-mono); letter-spacing: 2px; margin-bottom: 16px; }
.gas-chart-body { display: flex; gap: 12px; align-items: flex-end; height: 160px; padding-left: 28px; position: relative; }
.gas-chart-yaxis {
    position: absolute; left: 2px; top: 0; height: 100%; width: 18px;
    display: flex; align-items: center; justify-content: center;
    writing-mode: vertical-rl; text-orientation: mixed;
    font-size: 0.52rem; color: var(--ink-fade); font-family: var(--font-mono);
}
.gas-bar-group { display: flex; flex-direction: column; align-items: center; gap: 4px; flex: 1; height: 100%; justify-content: flex-end; }
.gas-bar { width: 100%; border-radius: 1px 1px 0 0; border: 1px solid var(--paper-edge); border-bottom: none; position: relative; }
.gas-bar.safe { background: rgba(42,96,16,0.2); }
.gas-bar.warn { background: rgba(204,136,16,0.2); }
.gas-bar.danger { background: rgba(204,51,0,0.2); }
.gas-bar.fatal { background: rgba(102,0,0,0.25); }
.gas-bar-value { position: absolute; top: -16px; left: 50%; transform: translateX(-50%); font-size: 0.52rem; color: var(--ink-fade); font-family: var(--font-mono); white-space: nowrap; }
.gas-bar-label { font-size: 0.52rem; color: var(--ink-fade); font-family: var(--font-mono); }
.gas-chart-legend { display: flex; justify-content: center; gap: 12px; margin-top: 14px; flex-wrap: wrap; }
.gas-legend { display: flex; align-items: center; gap: 4px; font-size: 0.52rem; color: var(--ink-fade); font-family: var(--font-mono); }
.gas-legend-dot { width: 8px; height: 8px; border-radius: 1px; }
.gas-legend-dot.safe { background: rgba(42,96,16,0.4); }
.gas-legend-dot.warn { background: rgba(204,136,16,0.4); }
.gas-legend-dot.danger { background: rgba(204,51,0,0.4); }
.gas-legend-dot.fatal { background: rgba(102,0,0,0.5); }

/* === 胶片边框（Sd-008 换影） === */
.film-strip {
    margin: 30px auto; max-width: 580px; position: relative;
    display: flex; flex-direction: column; gap: 0;
}
.film-strip-top, .film-strip-bottom {
    height: 18px; display: flex; justify-content: space-between; align-items: center;
    background: #0a0806; border: 1px solid #1a1610; border-radius: 1px;
    padding: 0 4px; position: relative;
}
.film-perf { width: 14px; height: 10px; background: var(--paper-white); border-radius: 1px; opacity: 0.7; }
.film-strip-content {
    background:
        radial-gradient(ellipse at 30% 20%, rgba(40,38,42,0.4) 0%, transparent 60%),
        radial-gradient(ellipse at 70% 80%, rgba(20,18,24,0.3) 0%, transparent 50%),
        linear-gradient(180deg, #12101a 0%, #08060e 100%);
    border-left: 2px solid #0a0806; border-right: 2px solid #0a0806;
    padding: 20px 24px; position: relative;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
}
.film-frame-num {
    position: absolute; top: 8px; right: 14px;
    font-size: 0.52rem; color: #444038; font-family: var(--font-mono); letter-spacing: 1px;
}
.film-content { text-align: center; }
.film-icon { font-size: 1.8rem; color: #6a5828; opacity: 0.4; margin-bottom: 6px; }
.film-title { font-size: 0.76rem; color: #886633; font-family: var(--font-mono); letter-spacing: 2px; }
.film-subtitle { font-size: 0.58rem; color: #6a4818; font-family: var(--font-mono); margin-top: 4px; }
.film-note { margin-top: 10px; font-size: 0.64rem; color: #554422; font-family: var(--font-body); line-height: 1.6; text-align: left; }

/* === 涂白消褪区域（Dz-009 乏味白城） === */
.whiteout-zone {
    margin: 30px auto; max-width: 500px; padding: 20px 24px;
    background:
        repeating-linear-gradient(0deg, transparent, transparent 28px, rgba(0,0,0,0.015) 28px, rgba(0,0,0,0.015) 29px),
        var(--paper-white);
    border: 1px solid var(--paper-edge); border-radius: 2px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.08); position: relative;
}
.whiteout-zone::before {
    content: ''; position: absolute; top: 12px; right: 16px; width: 80px; height: 24px;
    background: rgba(255,253,248,0.92); border: 1px solid rgba(0,0,0,0.04);
    transform: rotate(-1.5deg); box-shadow: 0 1px 3px rgba(0,0,0,0.06); z-index: 3;
    border-radius: 1px;
}
.whiteout-zone::after {
    content: ''; position: absolute; bottom: 20px; left: 20px; width: 60px; height: 18px;
    background: rgba(255,253,248,0.88); border: 1px solid rgba(0,0,0,0.03);
    transform: rotate(2deg); box-shadow: 0 1px 3px rgba(0,0,0,0.05); z-index: 3;
    border-radius: 1px;
}
.whiteout-title { font-size: 0.72rem; color: var(--ink-fade); font-family: var(--font-mono); letter-spacing: 2px; margin-bottom: 14px; text-align: center; }
.whiteout-meter { display: flex; align-items: center; gap: 12px; margin: 14px 0; }
.whiteout-meter-label { font-size: 0.62rem; color: var(--ink-fade); font-family: var(--font-mono); white-space: nowrap; }
.whiteout-meter-bar { flex: 1; height: 6px; background: var(--paper-edge); border-radius: 3px; overflow: hidden; }
.whiteout-meter-fill { width: 87%; height: 100%; background: linear-gradient(90deg, rgba(180,180,180,0.3), rgba(220,220,220,0.5), rgba(240,240,240,0.7)); }
.whiteout-meter-value { font-size: 0.62rem; color: var(--ink-fade); font-family: var(--font-mono); }
.whiteout-text { font-size: 0.72rem; color: rgba(0,0,0,0.25); font-family: var(--font-body); line-height: 1.8; }
.whiteout-text-faded { color: rgba(0,0,0,0.12); }

/* === 登车票据（Nd-010 星际列车） === */
.boarding-pass {
    margin: 30px auto; max-width: 480px; display: flex;
    border: 1px solid var(--paper-edge); border-radius: 2px; overflow: hidden;
    box-shadow: 0 3px 12px rgba(0,0,0,0.12);
    background: var(--paper-white);
    position: relative;
}
.boarding-pass::before {
    content: ''; position: absolute; left: 62%; top: 0; bottom: 0; width: 1px;
    border-left: 2px dashed var(--paper-edge); z-index: 1;
}
.bp-main { flex: 0 0 62%; padding: 16px 20px; position: relative; }
.bp-stub { flex: 1; padding: 16px 14px; background: rgba(106,78,16,0.04); position: relative; }
.bp-header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 12px; }
.bp-brand { font-size: 0.72rem; font-weight: bold; color: var(--ink); font-family: var(--font-head); letter-spacing: 1px; }
.bp-class { font-size: 0.56rem; color: var(--ink-fade); font-family: var(--font-mono); letter-spacing: 2px; }
.bp-route { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.bp-station { text-align: center; }
.bp-station-code { font-size: 1.3rem; font-weight: bold; color: var(--ink); font-family: var(--font-head); }
.bp-station-name { font-size: 0.56rem; color: var(--ink-fade); font-family: var(--font-mono); }
.bp-arrow { font-size: 1.1rem; color: var(--ink-fade); }
.bp-info-row { display: flex; gap: 14px; flex-wrap: wrap; }
.bp-info-item { display: flex; flex-direction: column; }
.bp-info-label { font-size: 0.5rem; color: var(--ink-fade); font-family: var(--font-mono); letter-spacing: 1px; text-transform: uppercase; }
.bp-info-value { font-size: 0.72rem; color: var(--ink); font-family: var(--font-head); font-weight: bold; }
.bp-stub-title { font-size: 0.56rem; color: var(--ink-fade); font-family: var(--font-mono); letter-spacing: 2px; text-align: center; margin-bottom: 8px; }
.bp-stub-num { font-size: 0.9rem; font-family: var(--font-mono); color: var(--ink); text-align: center; margin: 6px 0; }
.bp-stub-barcode { height: 28px; margin: 8px 0; background: repeating-linear-gradient(90deg, var(--ink) 0 2px, transparent 2px 4px, var(--ink) 4px 5px, transparent 5px 8px, var(--ink) 8px 10px, transparent 10px 13px); opacity: 0.7; }
.bp-stub-note { font-size: 0.5rem; color: var(--ink-fade); font-family: var(--font-mono); text-align: center; }

/* === 多文件卷宗夹（组织档案 · 多份文件叠放） === */
.multi-file-viewer {
    display: none; opacity: 0; transform: translateY(40px);
    transition: opacity 0.7s ease, transform 0.9s cubic-bezier(0.25,0.46,0.45,0.94);
}
.multi-file-viewer.visible { opacity: 1; transform: translateY(0); }

.file-stack {
    display: flex; justify-content: center; align-items: flex-end;
    gap: 0; padding: 60px 20px 30px; position: relative;
    min-height: 420px;
}
.stacked-file {
    flex: 0 0 auto; width: 240px; height: 340px;
    background:
        radial-gradient(ellipse at 15% 20%, var(--foxing) 0%, transparent 35%),
        radial-gradient(ellipse at 80% 80%, var(--foxing-dark) 0%, transparent 30%),
        repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.012) 2px, rgba(0,0,0,0.012) 3px),
        repeating-linear-gradient(90deg, transparent, transparent 5px, rgba(106,78,16,0.015) 5px, rgba(106,78,16,0.015) 6px),
        radial-gradient(ellipse at center, transparent 45%, rgba(106,78,16,0.1) 100%),
        var(--paper-white);
    border: 1px solid var(--paper-edge); border-radius: 2px;
    box-shadow: 0 6px 20px rgba(0,0,0,0.25);
    margin-left: -45px; position: relative; cursor: pointer;
    transition: transform 0.35s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.35s ease;
    transform-origin: bottom center;
}
.stacked-file:first-child { margin-left: 0; }
.stacked-file:nth-child(1) { transform: rotate(-6deg) translateY(8px); z-index: 1; }
.stacked-file:nth-child(2) { transform: rotate(-2deg) translateY(2px); z-index: 2; }
.stacked-file:nth-child(3) { transform: rotate(2deg) translateY(2px); z-index: 3; }
.stacked-file:nth-child(4) { transform: rotate(6deg) translateY(8px); z-index: 4; }
.stacked-file:hover {
    transform: translateY(-30px) rotate(0deg) !important;
    z-index: 10 !important;
    box-shadow: 0 16px 40px rgba(0,0,0,0.35);
}
.stacked-file.expanded {
    opacity: 0; pointer-events: none;
    transform: translateY(-60px) scale(0.95) !important;
    transition: opacity 0.4s ease, transform 0.5s ease;
}
.stacked-file.redacted-file {
    background:
        radial-gradient(ellipse at center, rgba(0,0,0,0.03) 0%, transparent 50%),
        repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.02) 2px, rgba(0,0,0,0.02) 3px),
        var(--paper-dark);
    border-color: var(--paper-edge-dark);
}
.stacked-file.redacted-file .sf-label { color: var(--ink-fade); }

/* 文件标签卡（顶部凸出） */
.sf-tab {
    position: absolute; top: -22px; left: 20px;
    width: 80px; height: 24px;
    background:
        repeating-linear-gradient(87deg, transparent, transparent 5px, rgba(106,78,16,0.06) 5px, rgba(106,78,16,0.06) 6px),
        radial-gradient(ellipse at 40% 50%, var(--folder-light) 0%, var(--folder) 70%, var(--folder-dark) 100%);
    border: 1px solid var(--folder-edge); border-bottom: none;
    border-radius: 5px 5px 0 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 0.62rem; font-weight: bold; color: var(--ink); letter-spacing: 1px;
    font-family: var(--font-mono);
    z-index: 2;
}
.sf-body {
    padding: 24px 22px; height: 100%; display: flex; flex-direction: column;
}
.sf-label {
    font-size: 0.9rem; font-weight: bold; color: var(--ink);
    font-family: var(--font-head); text-align: center; margin-bottom: 10px;
    letter-spacing: 1px;
}
.sf-preview {
    font-size: 0.66rem; color: var(--ink-soft); font-family: var(--font-body);
    line-height: 1.7; text-align: center; margin-top: auto; margin-bottom: 12px;
}
.sf-hint {
    font-size: 0.56rem; color: var(--ink-fade); font-family: var(--font-mono);
    text-align: center; letter-spacing: 1px; margin-bottom: 8px;
}
.sf-icon {
    text-align: center; font-size: 1.6rem; color: var(--ink-fade);
    margin: 20px 0 10px; opacity: 0.5;
}
.sf-stamp {
    position: absolute; bottom: 20px; right: 20px;
    font-size: 0.5rem; color: var(--stamp-red); opacity: 0.4;
    font-family: var(--font-stamp); letter-spacing: 2px;
    border: 1px solid var(--stamp-red); padding: 2px 6px;
    border-radius: 1px; transform: rotate(-8deg);
}

/* 文件内容面板（点击后展开的全屏文档） */
.file-content-panel {
    display: none; opacity: 0; transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.7s cubic-bezier(0.25,0.46,0.45,0.94);
}
.file-content-panel.visible { opacity: 1; transform: translateY(0); }
.file-content-panel .archive-document {
    display: block; opacity: 1; transform: none;
}

/* 返回按钮 */
.file-back-btn {
    display: inline-block; margin: 0 auto 20px; padding: 8px 24px;
    background:
        repeating-linear-gradient(87deg, transparent, transparent 5px, rgba(106,78,16,0.06) 5px, rgba(106,78,16,0.06) 6px),
        radial-gradient(ellipse at 40% 50%, var(--folder-light) 0%, var(--folder) 70%, var(--folder-dark) 100%);
    border: 1px solid var(--folder-edge); border-radius: 3px;
    color: var(--ink); font-family: var(--font-mono); font-size: 0.72rem;
    letter-spacing: 1px; cursor: pointer;
    transition: all 0.25s ease;
}
.file-back-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(0,0,0,0.2);
}

/* 涂黑文档（历史文档） */
.redacted-doc { position: relative; }
.redacted-line {
    display: block; background: #000; border-radius: 1px;
    margin: 3px 0; opacity: 0.92;
}
.redacted-line.short { width: 60%; }
.redacted-line.medium { width: 78%; }
.redacted-line.long { width: 95%; }
.redacted-line.full { width: 100%; }
.redacted-gap { height: 8px; }

/* === 响应式 === */
@media (max-width: 700px) {
    body { padding-top: 130px; }
    .aias-topbar { height: auto; flex-direction: column; gap: 6px; padding: 8px 12px; }
    .aias-topbar::before { width: 3px; }
    .aias-logo img { height: 32px; }
    .aias-logo span { font-size: 0.95rem; }
    .aias-logo small { font-size: 0.4rem; }
    .aias-nav { flex-wrap: wrap; justify-content: center; gap: 1px; }
    .aias-nav > a, .dropbtn { padding: 4px 10px 5px; min-width: 56px; }
    .nav-label { font-size: 0.7rem; }
    .nav-code { display: none; }
    .nav-clearance { display: none; }
    .container { padding: 20px; margin: 15px; max-width: none; }
    .doc-classification { font-size: 0.58rem; letter-spacing: 1px; padding: 5px 8px; }
    .doc-classification span { display: inline; }
    .briefing-header { padding: 14px 12px; margin-bottom: 20px; }
    .briefing-classified { padding: 3px 14px; font-size: 0.72rem; letter-spacing: 3px; margin-bottom: 10px; }
    .briefing-title { font-size: 1.2rem; letter-spacing: 1px; }
    .briefing-subtitle { font-size: 0.5rem; letter-spacing: 1px; }
    .briefing-meta-row { flex-wrap: wrap; gap: 8px 16px; font-size: 0.58rem; justify-content: center; }
    .briefing-meta-row span { white-space: nowrap; }
    .briefing-section { margin: 16px 0; padding: 12px 14px; }
    .section-header { gap: 8px; }
    .section-num { width: 26px; height: 26px; font-size: 0.6rem; }
    .section-header h2 { font-size: 0.92rem; min-width: 100px; }
    .section-tag { font-size: 0.48rem; padding: 2px 6px; letter-spacing: 1px; }
    .typewriter-text { font-size: 0.72rem; line-height: 1.75; }
    .sub-section-title { font-size: 0.78rem; margin: 14px 0 6px; padding-left: 10px; }
    .classification-list li { font-size: 0.68rem; padding: 4px 10px; line-height: 1.6; }
    .classification-list li strong { min-width: 30px; font-size: 0.58rem; margin-right: 6px; }
    .org-entry { margin: 12px 0; padding: 10px 12px; }
    .org-entry h3 { font-size: 0.82rem; }
    .org-entry p { font-size: 0.68rem; line-height: 1.65; }
    .org-entry p strong { font-size: 0.62rem; }
    .manila-folder { height: 480px; max-width: 340px; margin-top: 50px; }
    .file-stack { flex-direction: column; align-items: center; gap: 12px; min-height: auto; padding: 30px 10px 20px; }
    .stacked-file { margin-left: 0 !important; width: 92%; max-width: 300px; height: 180px; transform: rotate(0deg) !important; }
    .stacked-file:hover { transform: translateY(-8px) !important; }
    .stacked-file.expanded { transform: translateY(-20px) scale(0.97) !important; }
    .sf-body { padding: 16px 18px; }
    .sf-label { font-size: 0.82rem; margin-bottom: 6px; }
    .sf-preview { font-size: 0.58rem; line-height: 1.5; margin-bottom: 8px; }
    .sf-hint { font-size: 0.5rem; }
    .sf-icon { font-size: 1.2rem; margin: 8px 0 6px; }
    .sf-tab { width: 64px; height: 20px; font-size: 0.5rem; top: -18px; left: 16px; }
    .sf-stamp { bottom: 12px; right: 12px; font-size: 0.42rem; padding: 1px 4px; }
    .file-back-btn { font-size: 0.62rem; padding: 10px 28px; margin-bottom: 16px; }
    .multi-file-viewer { padding: 0 5px; }
    .file-content-panel .archive-document { padding: 30px 20px 35px; }
    .redacted-line { margin: 2px 0; }
    .folder-label-num { font-size: 1.75rem; }
    .folder-label-title { font-size: 1.12rem; }
    .folder-tab { width: 170px; font-size: 0.7rem; }
    .archive-document { padding: 35px 28px 40px; max-width: 100%; }
    .doc-seal { top: 28px; right: 22px; width: 68px; height: 68px; font-size: 0.62rem; }
    .doc-received-stamp { bottom: 30px; right: 22px; }
    .doc-date-stamp { bottom: 32px; left: 22px; width: 56px; height: 56px; }
    .doc-staple { left: 30px; }
    .doc-signature-area { flex-direction: column; gap: 24px; }
    .cat-meta { display: none; }
    .cat-barcode { display: none; }
    .cat-body { padding-left: 55px; }
    .catalog-drawer { padding-left: 40px; font-size: 0.72rem; }
    .catalog-item { transform: rotate(0deg) !important; }
    .combo-lock { max-width: 280px; padding: 20px 16px 16px; }
    .wheel-btn, .wheel-display { width: 38px; }
    .wheel-display { height: 44px; font-size: 1.4rem; }
    .combo-lock::after { display: none; }
    .entity-card { width: 160px; min-height: 200px; }
    .specimen-grid { grid-template-columns: 1fr; }
    .dossier-content { flex-direction: column; align-items: flex-start; }
    .dossier-meta { text-align: left; }
    .dept-directory { grid-template-columns: 1fr; }
    .blackbox-data { grid-template-columns: 1fr; }
    .gas-chart-body { height: 120px; padding-left: 28px; }
    .boarding-pass { flex-direction: column; }
    .boarding-pass::before { display: none; }
    .bp-stub { background: rgba(106,78,16,0.06); border-top: 2px dashed var(--paper-edge); }
    .film-strip { max-width: 100%; }
    .key-tag { max-width: 280px; }
    .step-counter { max-width: 300px; }
    .thermal-gauge { max-width: 260px; }
    .mirror-panel { max-width: 100%; }
    .gas-chart { max-width: 100%; }
    .whiteout-zone { max-width: 100%; }
}

/* === 触摸设备适配（无hover） === */
@media (hover: none) and (pointer: coarse) {
    .stacked-file:hover { transform: rotate(var(--rot, 0deg)) !important; box-shadow: 0 6px 20px rgba(0,0,0,0.25) !important; }
    .stacked-file:active { transform: translateY(-6px) rotate(0deg) !important; box-shadow: 0 10px 30px rgba(0,0,0,0.3) !important; }
    .stacked-file { --rot: 0deg; }
    .stacked-file:nth-child(1) { --rot: -6deg; }
    .stacked-file:nth-child(2) { --rot: -2deg; }
    .stacked-file:nth-child(3) { --rot: 2deg; }
    .stacked-file:nth-child(4) { --rot: 6deg; }
}

/* === 超小屏幕（≤480px） === */
@media (max-width: 480px) {
    .stacked-file { width: 95%; height: 160px; }
    .sf-body { padding: 12px 14px; }
    .sf-label { font-size: 0.75rem; }
    .sf-preview { font-size: 0.52rem; }
    .sf-icon { font-size: 1rem; margin: 6px 0 4px; }
    .sf-tab { width: 56px; height: 18px; font-size: 0.46rem; top: -16px; left: 12px; }
    .file-back-btn { font-size: 0.56rem; padding: 8px 20px; }
    .file-content-panel .archive-document { padding: 25px 16px 30px; }
    .archive-title { font-size: 1.1rem !important; }
    .archive-subtitle { font-size: 0.6rem !important; }
    .doc-meta-line { flex-wrap: wrap; gap: 4px; }
    .doc-meta-line span { font-size: 0.58rem; }
    .danger-box { padding: 12px 14px; font-size: 0.62rem; }
    .dept-card { padding: 10px 12px; }
    .dept-card h3 { font-size: 0.85rem; }
    .dept-card .dept-code { font-size: 0.56rem; }
    .dept-card .dept-fn { font-size: 0.56rem; }
    .briefing-title { font-size: 1rem; }
    .briefing-classified { font-size: 0.62rem; letter-spacing: 2px; padding: 2px 10px; }
    .doc-classification { font-size: 0.5rem; letter-spacing: 0.5px; padding: 4px 6px; }
    .briefing-meta-row { gap: 6px 12px; font-size: 0.52rem; }
    .section-num { width: 22px; height: 22px; font-size: 0.54rem; }
    .section-header h2 { font-size: 0.82rem; }
    .section-tag { font-size: 0.44rem; padding: 1px 5px; }
    .typewriter-text { font-size: 0.66rem; line-height: 1.7; }
    .classification-list li { font-size: 0.62rem; padding: 3px 8px; }
    .classification-list li strong { min-width: 26px; font-size: 0.52rem; }
    .org-entry { padding: 8px 10px; margin: 10px 0; }
    .org-entry h3 { font-size: 0.74rem; }
    .org-entry p { font-size: 0.62rem; }
    .briefing-section { padding: 10px 10px; margin: 12px 0; }
    .sub-section-title { font-size: 0.7rem; }
}
