
/* ==========================================================================
   SITE-CN-912 · 管理权限凭证（人事报告 · 纯文本版）
   流程：极简待机态（标题 + 文字键）→ 一次点击 → 一段纯 CSS 入场编排
   形态：纯黑背景上的文字，无卡片 / 无边框容器 / 无 canvas / 无辉光 / 无渐变
   质感：字距 + 字号层级 + 1px 发丝线
   入场编排（一段，CSS 变量控制 stagger）：
     发丝线 scaleX 展开 → 标题 clip-path 揭幕 + 字距从宽收到标准
     （先慢后快再收的 cubic-bezier(.72,0,.18,1)）→ 字段逐行上浮、
     数值列轻微错位归位 → 陈述段 clip-path 逐行揭幕淡入 → 收尾发丝线
   仅使用 opacity / transform / clip-path / letter-spacing。
   ========================================================================== */

/* ---- 调色板接管：把共享运行时（site-fx.css）的色板变量整体重定向到黑白 ---- */
:root{
    --bg:#050505; --black:#050505; --ink:#050505;
    --ikb:#3a3a3a; --ikb-lift:#4a4a4a; --ikb-glow:#6a6a6a;
    --ikb-pale:#9a9a9a; --ikb-mist:#c2c2c2;
    --gold:#f2f2f2; --gold-lt:#f2f2f2; --gold-hi:#ffffff;
    --gold-line:rgba(255,255,255,.25); --gold-soft:rgba(255,255,255,.12);
    --line:rgba(255,255,255,.18); --line-soft:rgba(255,255,255,.10);
    --line-hard:rgba(255,255,255,.30);
    --txt:#f2f2f2; --txt-2:#9a9a9a; --txt-3:#6a6a6a; --txt-4:#3a3a3a;
    --cur-line:rgba(255,255,255,.62); --cur-dot:#f2f2f2;

    /* ---- 入场编排（一段动画的全局节拍，只改这里即可整体重排） ---- */
    --t0:.45s;              /* 编排起点（相对 body.issued） */
    --step:85ms;            /* 字段逐行步进 */
    --ease-cmd:cubic-bezier(.72,0,.18,1);   /* 先慢后快再收 */
    --ease-settle:cubic-bezier(.16,1,.3,1);
}
::selection{background:#3a3a3a;color:#f2f2f2;}
body{background:var(--bg);color:var(--txt);}
/* 纯文本页：共享运行时的扫描亮带关掉，只留噪点颗粒与暗角 */
.sfx-scan{display:none;}

/* ========================================================================== 待机态 */
.vault{
    position:fixed;inset:0;z-index:20;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:clamp(2.6rem,8vh,4.4rem);
    padding:10vh var(--pad);
    opacity:0;transition:opacity 1.2s var(--ease-settle);
}
.vault.on{opacity:1;}
.vault.out{opacity:0;transform:translateY(-12px);pointer-events:none;
    transition:opacity .5s ease,transform .6s ease;}

.standby-title{
    font-size:clamp(2.2rem,7vw,4.6rem);
    font-weight:200;letter-spacing:.34em;
    color:#f2f2f2;text-align:center;
}

/* 文字键 */
.trigger{
    border:1px solid rgba(255,255,255,.30);
    padding:.9rem clamp(2rem,7vw,3.6rem);
    font-family:var(--mono);
    font-size:clamp(.7rem,1.5vw,.86rem);
    letter-spacing:.5em;color:#f2f2f2;
    background:transparent;
    transition:border-color .7s var(--ease-soft),letter-spacing .7s var(--ease-soft),color .5s ease;
}
.trigger:hover{border-color:#f2f2f2;color:#ffffff;letter-spacing:.56em;}
.trigger:disabled{opacity:.3;pointer-events:none;}

/* 震动（仅 transform） */
.shake{animation:shakeIt .5s cubic-bezier(.36,.07,.19,.97);}
@keyframes shakeIt{
    0%,100%{transform:translate3d(0,0,0);}
    10%{transform:translate3d(-6px,3px,0);}
    25%{transform:translate3d(7px,-4px,0);}
    40%{transform:translate3d(-5px,2px,0);}
    55%{transform:translate3d(4px,4px,0);}
    70%{transform:translate3d(-3px,-2px,0);}
    85%{transform:translate3d(2px,1px,0);}
}

/* ========================================================================== 人事报告文档 */
.doc{
    position:fixed;inset:0;z-index:18;
    display:flex;align-items:center;justify-content:center;
    padding:8vh clamp(1.2rem,7vw,4rem);
    opacity:0;pointer-events:none;
}
body.issued .doc{opacity:1;pointer-events:auto;transition:opacity .45s ease .1s;}
.doc-inner{max-width:720px;width:100%;}

/* 阶段 A：标题 —— clip-path 从左揭幕 + 字距从宽收到标准（先慢后快再收） */
.doc-title{
    font-size:clamp(2rem,4.6vh,3rem);
    font-weight:200;
    color:#f2f2f2;
    opacity:0;
    clip-path:inset(0 100% 0 0);
    letter-spacing:.62em;
    transition:
        clip-path 1.15s var(--ease-cmd) var(--t0),
        letter-spacing 1.35s var(--ease-cmd) var(--t0),
        opacity .4s ease var(--t0);
}
body.issued .doc-title{opacity:1;clip-path:inset(0 0 0 0);letter-spacing:.3em;}

.doc-sub{
    margin-top:.5rem;
    font-family:var(--mono);font-size:.6rem;letter-spacing:.42em;
    color:var(--txt-2);
    opacity:0;transform:translateY(8px);
    transition:opacity .6s ease calc(var(--t0) + .55s),
               transform .85s var(--ease-settle) calc(var(--t0) + .55s);
}
body.issued .doc-sub{opacity:1;transform:none;}

/* 发丝线：从中心 scaleX 展开 */
.doc-rule{
    height:1px;background:rgba(255,255,255,.22);
    transform:scaleX(0);transform-origin:50% 50%;
    transition:transform 1.2s var(--ease-cmd) calc(var(--t0) + .7s);
}
body.issued .doc-rule{transform:scaleX(1);}
.doc-rule.top{margin-top:1.4rem;margin-bottom:1.1rem;}

/* 阶段 B：字段逐行上浮，数值列轻微错位归位 */
.f-grid{display:grid;gap:0;}
.f-row{
    display:grid;grid-template-columns:minmax(6.5rem,9rem) 1fr;
    gap:clamp(1rem,4vw,2.4rem);
    align-items:baseline;
    padding:clamp(.38rem,1.6vh,.5rem) 0;
    border-bottom:1px solid rgba(255,255,255,.10);
}
.f-label{
    font-family:var(--mono);font-size:.6rem;letter-spacing:.3em;
    color:var(--txt-3);
    opacity:0;transform:translateY(14px);
    transition:opacity .55s ease calc(var(--t0) + .85s + var(--i)*var(--step)),
               transform .8s var(--ease-settle) calc(var(--t0) + .85s + var(--i)*var(--step));
}
.f-val{
    font-size:clamp(.9rem,2.3vh,1.02rem);letter-spacing:.06em;
    color:#f2f2f2;
    opacity:0;transform:translate(12px,14px);
    transition:opacity .5s ease calc(var(--t0) + .85s + var(--i)*var(--step) + 70ms),
               transform .85s var(--ease-settle) calc(var(--t0) + .85s + var(--i)*var(--step) + 70ms);
}
body.issued .f-label,body.issued .f-val{opacity:1;transform:none;}
.f-val.v-mono{
    font-family:var(--mono);font-size:.84rem;letter-spacing:.1em;padding-top:.14em;
}

/* 阶段 C：陈述段 —— clip-path 从上往下逐行揭幕 */
.doc-para{
    margin-top:clamp(1.2rem,3vh,1.7rem);
    max-width:640px;
    font-size:clamp(.84rem,2.1vh,.94rem);
    line-height:2.05;letter-spacing:.04em;
    color:var(--txt-2);
    opacity:0;
    clip-path:inset(0 0 100% 0);
    transform:translateY(10px);
    transition:clip-path 1.1s var(--ease-cmd) calc(var(--t0) + 1.65s),
               opacity .5s ease calc(var(--t0) + 1.65s),
               transform 1s var(--ease-settle) calc(var(--t0) + 1.65s);
}
body.issued .doc-para{opacity:1;clip-path:inset(0 0 0 0);transform:none;}
.doc-para b{color:#f2f2f2;font-weight:400;}
.doc-para b.mono{font-family:var(--mono);font-size:.92em;letter-spacing:.06em;}

/* 阶段 D：收尾发丝线 + 寄语 */
.doc-close{
    margin-top:clamp(1.1rem,2.8vh,1.6rem);
    display:grid;justify-items:center;gap:.8rem;
}
.doc-rule.bottom{margin-top:0;}
.doc-close .wish{
    font-size:.68rem;letter-spacing:.32em;color:var(--txt-3);
    opacity:0;transform:translateY(8px);
    transition:opacity .7s ease calc(var(--t0) + 2.35s),
               transform .9s var(--ease-settle) calc(var(--t0) + 2.35s);
}
body.issued .doc-close .wish{opacity:1;transform:none;}

@media (max-width:560px){
    .f-row{grid-template-columns:1fr;gap:.2rem;align-items:start;}
}

/* reduced-motion：直接呈现最终文档 —— 共享运行时已清零时长，
   这里再把编排里的 stagger 延迟也一并清零，杜绝任何等待 */
@media (prefers-reduced-motion:reduce){
    .doc-title,.doc-sub,.doc-rule,.f-label,.f-val,.doc-para,.doc-close .wish{
        transition-delay:0s !important;
    }
}
    