/* ===== 叙事页 ===== */

/* 顶部进度：唯一的金色横线，暗示阅读深度 */
#prog{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--gold),var(--gold-2));z-index:60;transition:width .1s linear}

/* ---------- 右侧章节索引 ---------- */
#rail{position:fixed;right:26px;top:50%;transform:translateY(-50%);z-index:50;display:flex;flex-direction:column;gap:2px;mix-blend-mode:normal}
#rail a{display:flex;align-items:center;gap:10px;justify-content:flex-end;padding:3px 0;color:var(--sage);font-size:var(--t-micro);letter-spacing:.04em;opacity:.55;transition:opacity .3s var(--ease),color .3s}
#rail a span{white-space:nowrap;transform:translateX(6px);opacity:0;transition:.35s var(--ease)}
#rail a i{width:16px;height:1px;background:currentColor;flex:none;transition:width .35s var(--ease)}
#rail a:hover{opacity:1}
#rail a:hover span{transform:none;opacity:1}
#rail a.on{opacity:1;color:var(--gold)}
#rail a.on i{width:30px}
#rail a.on span{transform:none;opacity:1}
#rail.dark a{color:var(--ivory-2)}
#rail.dark a.on{color:var(--gold-2)}
/* 中等宽度下收成刻度，避免章节名压到正文右列 */
@media(max-width:1440px){
  #rail a.on span{opacity:0;transform:translateX(6px)}
  #rail a:hover span{opacity:1;transform:none}
}
@media(max-width:1180px){#rail{display:none}}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}

/* ---------- Hero ---------- */
#hero{min-height:100vh;background:var(--forest-900);color:var(--ivory);position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(28px,4vh,52px) 0}
#hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line-d) 1px,transparent 1px),linear-gradient(90deg,var(--line-d) 1px,transparent 1px);background-size:100% 96px,96px 100%;opacity:.5;mask-image:radial-gradient(120% 90% at 15% 10%,#000 20%,transparent 78%)}
#hero::after{content:"";position:absolute;right:-14vw;top:-10vh;width:52vw;height:52vw;border:1px solid var(--line-d2);border-radius:50%;opacity:.5}
#hero .wrap{position:relative;z-index:2;width:100%}
.h-top{display:flex;align-items:center;gap:16px;font-size:var(--t-micro);letter-spacing:.16em;color:var(--sage-2);text-transform:uppercase}
.h-top b{color:var(--gold-2);font-weight:500;letter-spacing:.16em}
.h-top .ln{flex:1;height:1px;background:var(--line-d2);max-width:200px}
.h-mid{padding:clamp(40px,9vh,110px) 0 0}
.h-kicker{font-family:var(--f-serif);font-size:var(--t-h3);color:var(--gold-2);letter-spacing:.06em;margin-bottom:22px}
h1.h-title{font-size:var(--t-display);line-height:1.06;font-weight:700;letter-spacing:-.02em;max-width:19em}
h1.h-title em{font-style:normal;color:var(--gold-2)}
.h-lede{margin-top:26px;max-width:31em;color:#CFD8D2;font-size:clamp(15px,1.2vw,17.5px);line-height:1.85}
.h-lede strong{color:var(--ivory);font-weight:600}
.h-nums{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--line-d2);margin-top:clamp(36px,7vh,72px)}
.h-nums div{padding:20px 30px 4px 0;margin-right:30px;border-right:1px solid var(--line-d);flex:1 1 120px;min-width:110px}
.h-nums div:last-child{border-right:0}
.h-nums b{display:block;font-family:var(--f-mono);font-size:clamp(24px,2.5vw,36px);color:var(--gold-2);font-weight:500;line-height:1.1;letter-spacing:-.02em}
.h-nums small{display:block;color:var(--sage-2);font-size:var(--t-micro);letter-spacing:.06em;margin-top:6px}
.h-scroll{position:relative;z-index:2;display:flex;align-items:center;gap:12px;color:var(--sage-2);font-size:var(--t-micro);letter-spacing:.12em}
.h-scroll .bar{width:1px;height:34px;background:linear-gradient(var(--gold-2),transparent);animation:drop 2.2s var(--ease-io) infinite}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- 通用区块 ---------- */
.sec{padding:clamp(64px,10vh,132px) 0;position:relative}
.sec.alt{background:var(--ivory-2)}
.sec.deep{background:var(--forest-900);color:var(--ivory)}
.sec.deep .s-title{color:var(--ivory)}
.sec.deep .s-lede{color:#C2CDC7}
.s-head{max-width:44em;margin-bottom:clamp(32px,5vh,60px)}
.s-eyebrow{display:flex;align-items:center;gap:12px;font-size:var(--t-micro);letter-spacing:.18em;color:var(--gold);text-transform:uppercase;margin-bottom:18px}
.s-eyebrow i{width:26px;height:1px;background:var(--gold);flex:none}
.s-title{font-size:var(--t-h1);line-height:1.2;font-weight:700;letter-spacing:-.015em;color:var(--forest-900)}
.s-lede{margin-top:16px;color:var(--sage);max-width:38em}
.s-lede b{color:var(--forest-800)}

/* 引言金句 */
.pull{font-family:var(--f-serif);font-size:clamp(19px,1.8vw,27px);line-height:1.6;color:var(--forest-800);border-left:2px solid var(--gold);padding:4px 0 4px 26px;max-width:26em}
.sec.deep .pull{color:var(--ivory);border-color:var(--gold-2)}

/* ---------- 现状盘点：两栏对照 ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line)}
.split>div{padding:34px 40px 30px 0}
.split>div+div{border-left:1px solid var(--line);padding-left:40px}
.split h4{font-size:var(--t-micro);letter-spacing:.16em;text-transform:uppercase;margin-bottom:22px;display:flex;align-items:center;gap:9px}
.split h4 .dot{width:6px;height:6px;flex:none;border-radius:50%}
.live h4{color:var(--ok)} .live h4 .dot{background:var(--ok);box-shadow:0 0 0 4px rgba(63,122,94,.14)}
.todo h4{color:var(--sage)} .todo h4 .dot{background:transparent;border:1px dashed var(--sage-2)}
.item{padding:16px 0;border-bottom:1px solid var(--line)}
.item:last-child{border-bottom:0}
.item .t{font-weight:600;font-size:var(--t-h3);display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.item .t code{font-family:var(--f-mono);font-size:11px;color:var(--sage);font-weight:400;background:var(--ivory-3);padding:1px 6px}
.item .d{color:var(--sage);font-size:var(--t-small);margin-top:5px}
.item.dash .t{color:var(--sage)}
.metric{display:flex;gap:26px;margin-top:12px;flex-wrap:wrap}
.metric b{font-family:var(--f-mono);font-size:22px;color:var(--gold);font-weight:500;display:block;line-height:1.2}
.metric small{font-size:var(--t-micro);color:var(--sage-2);letter-spacing:.05em}
@media(max-width:860px){.split{grid-template-columns:1fr}.split>div+div{border-left:0;border-top:1px solid var(--line);padding-left:0}}

/* ---------- 架构图 ---------- */
.arch{margin-top:14px;background:var(--forest-950);border:1px solid rgba(247,244,236,.1);padding:clamp(18px,3vw,40px)}
.arch svg{width:100%;height:auto;display:block;overflow:visible}
.arch .lbl{font-family:var(--f-sans);font-size:12.5px;fill:var(--ivory)}
.arch .lbl.s{font-size:10.5px;fill:var(--sage-2)}
.arch .lbl.g{fill:var(--gold-2);font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em}
.arch .bx{fill:rgba(247,244,236,.045);stroke:var(--line-d2)}
.arch .bx.pri{fill:rgba(176,141,63,.1);stroke:var(--gold)}
.arch .bx.done{fill:rgba(63,122,94,.12);stroke:#4C8C6C}
.arch .flow{stroke:var(--sage-2);stroke-width:1;fill:none;stroke-dasharray:var(--len);stroke-dashoffset:var(--len)}
.arch .flow.on{stroke-dashoffset:0;transition:stroke-dashoffset 1.1s var(--ease-io)}
.arch .flow.gold{stroke:var(--gold)}
.arch-legend{display:flex;gap:22px;flex-wrap:wrap;margin-top:20px;font-size:var(--t-micro);color:var(--sage-2)}
.arch-legend i{display:inline-block;width:12px;height:8px;margin-right:7px;vertical-align:1px}

/* ---------- 模块 ---------- */
.mod{display:grid;grid-template-columns:minmax(240px,300px) 1fr;gap:clamp(28px,5vw,84px);align-items:start}
.mod-side{position:sticky;top:82px}
.mod-no{font-family:var(--f-serif);font-size:clamp(52px,6vw,90px);line-height:.86;color:var(--gold);opacity:.34;letter-spacing:-.03em}
.mod-side h3{font-size:var(--t-h2);font-weight:700;margin-top:10px;letter-spacing:-.01em;color:var(--forest-900)}
.mod-side .one{color:var(--sage);font-size:var(--t-small);margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.mod-side .stat{margin-top:16px;font-size:var(--t-micro);color:var(--sage-2);letter-spacing:.04em}
.mod-side .stat b{color:var(--ok);font-weight:600}
.mod-side .stat b.new{color:var(--gold)}
.btn-proto{display:inline-flex;align-items:center;gap:10px;margin-top:22px;padding:11px 18px;background:var(--forest-800);color:var(--ivory);font-size:var(--t-small);font-weight:600;letter-spacing:.02em;transition:.35s var(--ease);box-shadow:var(--sh-1)}
.btn-proto:hover{background:var(--forest-700);transform:translateY(-1px);box-shadow:var(--sh-2)}
.btn-proto .ar{transition:transform .35s var(--ease);color:var(--gold-2)}
.btn-proto:hover .ar{transform:translate(3px,-3px)}

.grp{margin-bottom:38px}
.grp:last-child{margin-bottom:0}
.grp-h{display:flex;align-items:baseline;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--forest-800)}
.grp-h .n{font-family:var(--f-mono);font-size:var(--t-micro);color:var(--gold);letter-spacing:.08em}
.grp-h h5{font-size:var(--t-h3);font-weight:700;letter-spacing:.01em}
.grp-note{font-size:var(--t-small);color:var(--sage);margin-top:12px;font-style:normal}
.grp-note.warn{border-left:2px solid var(--rust);padding-left:14px;color:var(--forest-800);background:var(--rust-wash);padding:12px 14px;margin-top:14px}
.grp-note.warn b{color:var(--rust)}
.grp-note.rule{border-left:2px solid var(--gold);padding:10px 14px;background:var(--gold-wash);color:var(--forest-800);margin-top:14px}

/* 功能条目：细线分隔的行，hover 出金色刻度 */
.f{display:grid;grid-template-columns:64px 1fr auto;gap:16px;align-items:baseline;padding:13px 0 13px 0;border-bottom:1px solid var(--line);position:relative;transition:.3s var(--ease)}
.f::before{content:"";position:absolute;left:-16px;top:14px;bottom:14px;width:2px;background:var(--gold);transform:scaleY(0);transform-origin:top;transition:transform .35s var(--ease)}
.f:hover::before{transform:scaleY(1)}
.f:hover{background:linear-gradient(90deg,rgba(176,141,63,.05),transparent 60%)}
.f .tx{font-size:14.5px;line-height:1.7}
.f .tx b{font-weight:600}
.f .tx .sub{display:block;color:var(--sage);font-size:var(--t-small);margin-top:3px}
.chip{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.06em;padding:2px 7px;white-space:nowrap;border:1px solid;line-height:1.6}
.chip.must{color:var(--forest-800);border-color:var(--forest-800);background:rgba(27,58,50,.05)}
.chip.should{color:var(--sage);border-color:var(--line-2)}
.chip.tbd{color:var(--rust);border-color:var(--rust);background:var(--rust-wash)}
.chip.done{color:var(--ok);border-color:var(--ok);background:rgba(63,122,94,.08)}
.chip.new{color:var(--gold);border-color:var(--gold);background:var(--gold-wash)}
.f .tag{font-size:var(--t-micro);color:var(--sage-2);font-family:var(--f-mono);letter-spacing:.04em;text-align:right;max-width:15em}
@media(max-width:900px){
  .mod{grid-template-columns:1fr}
  .mod-side{position:static}
  .f{grid-template-columns:58px 1fr;}
  .f .tag{grid-column:2;text-align:left;margin-top:2px}
}

/* ---------- 六态状态机 ---------- */
.fsm{margin:18px 0 6px;padding:26px 0 8px;overflow-x:auto}
.fsm-row{display:flex;align-items:center;min-width:640px}
.fsm-n{flex:none;padding:11px 15px;border:1px solid var(--line-2);background:var(--paper);font-size:var(--t-small);font-weight:600;position:relative;box-shadow:var(--sh-1);opacity:.35;transform:translateY(6px);transition:.5s var(--ease)}
.fsm-n.on{opacity:1;transform:none}
.fsm-n.hot{border-color:var(--rust);color:var(--rust);background:var(--rust-wash)}
.fsm-n.key{border-color:var(--gold);background:var(--gold-wash)}
.fsm-n small{display:block;font-family:var(--f-mono);font-size:10px;color:var(--sage-2);font-weight:400;letter-spacing:.04em}
.fsm-a{flex:1;height:1px;background:var(--line-2);min-width:16px;position:relative}
.fsm-a::after{content:"";position:absolute;right:0;top:-2.5px;border-left:5px solid var(--line-2);border-top:3px solid transparent;border-bottom:3px solid transparent}

/* ---------- 三级触发矩阵 ---------- */
.bands{margin-top:6px;border-top:1px solid var(--line)}
.band{border-bottom:1px solid var(--line);cursor:pointer;transition:background .3s}
.band:hover{background:var(--paper)}
.band-h{display:grid;grid-template-columns:8px 1fr auto;gap:18px;align-items:center;padding:18px 0}
.band-h .bar{width:8px;height:38px;background:var(--sage-2)}
.band.l1 .bar{background:var(--rust)}
.band.l2 .bar{background:var(--gold)}
.band.l3 .bar{background:var(--forest-700)}
.band-h b{font-size:var(--t-h3);font-weight:700}
.band-h .ct{font-family:var(--f-mono);font-size:var(--t-micro);color:var(--sage-2);letter-spacing:.06em}
.band-h .ct::after{content:" ＋";color:var(--gold)}
.band.open .band-h .ct::after{content:" －"}
.band-b{max-height:0;overflow:hidden;transition:max-height .5s var(--ease)}
.band-b-in{padding:0 0 22px 26px;display:grid;grid-template-columns:1fr 1fr;gap:26px}
.band-b h6{font-size:var(--t-micro);letter-spacing:.14em;color:var(--gold);margin-bottom:10px;text-transform:uppercase}
.sig{display:flex;flex-wrap:wrap;gap:7px}
.sig span{font-size:var(--t-small);border:1px solid var(--line);background:var(--paper);padding:3px 9px;color:var(--forest-800)}
.band.l1 .sig span{border-color:rgba(166,67,47,.35)}
.act{font-size:var(--t-small);color:var(--sage);line-height:1.9}
.act i{font-style:normal;color:var(--gold);font-family:var(--f-mono);margin-right:6px}
@media(max-width:760px){.band-b-in{grid-template-columns:1fr}}

/* ---------- 接管包七件 ---------- */
.pack{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-top:8px}
.pack div{background:var(--paper);padding:16px 18px;font-size:var(--t-small);line-height:1.65}
.pack div b{display:block;font-family:var(--f-mono);font-size:11px;color:var(--gold);margin-bottom:6px;letter-spacing:.08em}
.pack div.key{background:var(--gold-wash)}

/* ---------- 数据状态机表 ---------- */
.tbl{margin-top:8px;border-top:1px solid var(--forest-800);font-size:14px}
.tbl tr{border-bottom:1px solid var(--line)}
.tbl th{text-align:left;font-size:var(--t-micro);letter-spacing:.12em;color:var(--sage);text-transform:uppercase;padding:11px 14px 11px 0;font-weight:500}
.tbl td{padding:14px 14px 14px 0;vertical-align:top;line-height:1.7}
.tbl td:first-child{font-weight:600;white-space:nowrap;width:1%}
.tbl td .sd{display:inline-block;width:7px;height:7px;margin-right:9px;vertical-align:1px}
.tbl tr:hover{background:var(--paper)}
.tbl .em{color:var(--forest-900);font-weight:600}

/* ---------- 覆盖分层 ---------- */
.tier{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);background:var(--paper);margin-top:8px}
.tier>div{padding:28px 30px}
.tier>div+div{border-left:1px solid var(--line)}
.tier .cap{font-size:var(--t-micro);letter-spacing:.14em;color:var(--sage);text-transform:uppercase}
.tier .big{font-family:var(--f-mono);font-size:clamp(34px,4vw,54px);line-height:1;color:var(--forest-900);margin:12px 0 4px;letter-spacing:-.03em}
.tier .big em{font-style:normal;font-size:.42em;color:var(--sage);letter-spacing:0;margin-left:8px}
.tier.hi{border-color:var(--gold)}
.tier .k{background:var(--gold-wash)}
.tier .k .big{color:var(--gold)}
.tier ul{margin-top:14px;font-size:var(--t-small);color:var(--sage);line-height:2}
.tier li{list-style:none;padding-left:16px;position:relative}
.tier li::before{content:"";position:absolute;left:0;top:12px;width:7px;height:1px;background:var(--sage-2)}
@media(max-width:760px){.tier{grid-template-columns:1fr}.tier>div+div{border-left:0;border-top:1px solid var(--line)}}

/* ---------- 来源优先级 ---------- */
.prio{display:flex;flex-wrap:wrap;gap:0;margin-top:8px;border-left:1px solid var(--line)}
.prio div{flex:1 1 180px;padding:16px 20px;border-right:1px solid var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);font-size:var(--t-small);position:relative}
.prio div b{font-family:var(--f-mono);color:var(--gold);font-size:11px;display:block;margin-bottom:6px}
.prio div.tbd{background:var(--rust-wash)}
.prio div.tbd b{color:var(--rust)}

/* ---------- 技能结构八要素 ---------- */
.eight{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.eight span{border:1px solid var(--line-2);background:var(--paper);padding:8px 13px;font-size:var(--t-small);transition:.3s var(--ease)}
.eight span:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-2px)}
.eight span.g{border-color:var(--gold);background:var(--gold-wash)}

/* ---------- 权限矩阵 ---------- */
.perm{margin-top:10px;font-size:13.5px;border-top:1px solid var(--forest-800)}
.perm th{text-align:left;padding:10px 12px 10px 0;font-size:var(--t-micro);letter-spacing:.1em;color:var(--sage);text-transform:uppercase;font-weight:500}
.perm td{padding:13px 12px 13px 0;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.7}
.perm td:first-child{font-weight:600;white-space:nowrap}
.perm .no{color:var(--rust)}

/* ---------- 边界声明 ---------- */
.bnd{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line-d2)}
.bnd>div{padding:30px 30px 26px 0}
.bnd>div+div{border-left:1px solid var(--line-d);padding-left:30px}
.bnd h5{font-size:var(--t-small);letter-spacing:.1em;margin-bottom:18px;display:flex;align-items:center;gap:9px}
.bnd .m{font-family:var(--f-mono);font-size:15px}
.bnd ul{list-style:none}
.bnd li{font-size:var(--t-small);line-height:1.7;padding:11px 0;border-bottom:1px solid var(--line-d);color:#C2CDC7}
.bnd li b{color:var(--ivory);font-weight:600;display:block}
.bnd .g2 h5{color:var(--gold-2)}
.bnd .g3 h5{color:var(--sage-2)}
.bnd .g3 li b{color:var(--sage-2);text-decoration:line-through;text-decoration-color:rgba(140,154,146,.5)}
.bnd .g4 h5{color:var(--ivory)}
@media(max-width:900px){.bnd{grid-template-columns:1fr}.bnd>div+div{border-left:0;border-top:1px solid var(--line-d);padding-left:0}}
.judge{margin-top:36px;padding:24px 28px;border:1px solid var(--gold);background:rgba(176,141,63,.1)}
.judge b{color:var(--gold-2)}

/* ---------- 验收指标 ---------- */
.acc{display:flex;flex-wrap:wrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.acc>div{flex:1 1 190px;padding:30px 26px 26px 0;border-right:1px solid var(--line);margin-right:26px}
.acc>div:last-child{border-right:0;margin-right:0}
.acc .v{font-family:var(--f-mono);font-size:clamp(30px,3.4vw,46px);line-height:1;color:var(--gold);letter-spacing:-.03em}
.acc .v small{font-size:.4em;color:var(--sage);letter-spacing:0;margin-left:4px}
.acc .k{font-weight:600;margin-top:14px;font-size:14.5px}
.acc .d{color:var(--sage);font-size:var(--t-small);margin-top:5px;line-height:1.65}

/* ---------- 前置条件 ---------- */
.gate{border-top:1px solid var(--line);margin-top:8px}
.gate .g{display:grid;grid-template-columns:44px 1fr minmax(140px,auto);gap:18px;padding:16px 0;border-bottom:1px solid var(--line);align-items:baseline;transition:.3s}
.gate .g:hover{background:var(--paper)}
.gate .g .i{font-family:var(--f-mono);color:var(--sage-2);font-size:var(--t-small)}
.gate .g .t{font-size:14.5px}
.gate .g .t b{font-weight:600}
.gate .g .e{font-size:var(--t-small);color:var(--sage);text-align:right}
.gate .g.block{background:var(--rust-wash)}
.gate .g.block .i,.gate .g.block .e{color:var(--rust);font-weight:600}
@media(max-width:760px){.gate .g{grid-template-columns:34px 1fr}.gate .g .e{grid-column:2;text-align:left}}

/* ---------- 排期 ---------- */
.plan{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:10px}
.plan>div{background:var(--paper);padding:26px 24px}
.plan .ph{font-family:var(--f-mono);font-size:var(--t-micro);letter-spacing:.12em;color:var(--gold)}
.plan .dd{font-family:var(--f-mono);font-size:26px;color:var(--forest-900);margin:10px 0 12px;letter-spacing:-.02em}
.plan .dd small{font-size:12px;color:var(--sage);letter-spacing:0;margin-left:6px}
.plan ul{list-style:none;font-size:var(--t-small);color:var(--sage);line-height:1.9}
.plan li{padding-left:14px;position:relative}
.plan li::before{content:"";position:absolute;left:0;top:13px;width:6px;height:1px;background:var(--gold)}
@media(max-width:820px){.plan{grid-template-columns:1fr}}
.money{display:flex;flex-wrap:wrap;gap:0;margin-top:34px;border-top:1px solid var(--line)}
.money>div{flex:1 1 150px;padding:22px 24px 18px 0;border-right:1px solid var(--line);margin-right:24px}
.money>div:last-child{border-right:0}
.money b{display:block;font-family:var(--f-mono);font-size:22px;color:var(--forest-900);letter-spacing:-.02em}
.money small{display:block;color:var(--sage);font-size:var(--t-micro);letter-spacing:.06em;margin-top:6px}

/* 交付物 */
.del{columns:2;column-gap:44px;margin-top:8px}
.del div{break-inside:avoid;display:grid;grid-template-columns:30px 1fr;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.7}
.del div i{font-family:var(--f-mono);color:var(--gold);font-style:normal;font-size:var(--t-small)}
@media(max-width:760px){.del{columns:1}}

/* ---------- 页脚 ---------- */
footer{background:var(--forest-950);color:var(--sage-2);padding:52px 0 46px;font-size:var(--t-small)}
footer .wrap{display:flex;flex-wrap:wrap;gap:26px;align-items:flex-end;justify-content:space-between}
footer b{color:var(--ivory);font-weight:600;display:block;font-size:15px;margin-bottom:6px}
footer .r{text-align:right;font-family:var(--f-mono);font-size:var(--t-micro);letter-spacing:.06em;line-height:2}
@media(max-width:700px){footer .r{text-align:left}}

/* ---------- 原型浮层 ---------- */
#ov{position:fixed;inset:0;z-index:90;background:var(--forest-950);display:none;flex-direction:column}
#ov.on{display:flex}
#ov .bar{flex:none;height:50px;display:flex;align-items:center;gap:16px;padding:0 18px;background:var(--forest-900);border-bottom:1px solid var(--line-d2);color:var(--ivory)}
#ov .bar .back{display:flex;align-items:center;gap:8px;font-size:var(--t-small);padding:7px 13px;border:1px solid var(--line-d2);transition:.3s}
#ov .bar .back:hover{background:rgba(247,244,236,.08)}
#ov .bar .ttl{font-size:var(--t-small);color:var(--sage-2);letter-spacing:.04em}
#ov .bar .ttl b{color:var(--gold-2);font-weight:500}
#ov .bar .note{margin-left:auto;font-size:var(--t-micro);color:var(--sage-2);letter-spacing:.04em}
#ov iframe{flex:1;width:100%;border:0;background:var(--ivory)}

/* ---------- 入场动画 ---------- */
[data-r]{opacity:0;transform:translateY(20px)}
[data-r].in{opacity:1;transform:none;transition:opacity .8s var(--ease),transform .8s var(--ease)}
.no-anim [data-r]{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){[data-r]{opacity:1!important;transform:none!important}}
