/* 首页 hero */
.hero{position:relative;min-height:min(94vh,820px);display:grid;align-items:end;overflow:hidden;background:var(--wine-950);color:var(--cream-100);isolation:isolate}
.hero__bg{position:absolute;inset:0;z-index:0}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:50% 62%}
.hero__veil{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(0deg,
    rgba(124,22,29,.82) 0%,
    rgba(146,26,31,.74) 30%,
    rgba(169,30,35,.48) 52%,
    rgba(169,30,35,.16) 70%,
    rgba(169,30,35,0) 86%,
    rgba(169,30,35,0) 100%);
}
.hero__canvas{
  position:absolute;right:0;bottom:0;width:58%;height:64%;z-index:2;pointer-events:none;
  -webkit-mask-image:radial-gradient(62% 72% at 72% 76%,#000 38%,transparent 100%);
  mask-image:radial-gradient(62% 72% at 72% 76%,#000 38%,transparent 100%);
}
.hero__inner{position:relative;z-index:3;padding:var(--s10) 0 var(--s9)}
.hero__kicker{display:inline-flex;align-items:center;gap:var(--s2);font-size:13px;letter-spacing:.3em;color:var(--gold-300);text-shadow:0 2px 16px rgba(20,4,5,.95),0 1px 3px rgba(20,4,5,.9)}
.hero__kicker::before{content:"";width:26px;height:1px;background:var(--gold-400);box-shadow:0 0 10px rgba(20,4,5,.8)}
.hero__title{margin-top:var(--s4);font-size:clamp(33px,6.2vw,70px);line-height:1.26;letter-spacing:.1em;color:var(--cream-100);text-shadow:0 2px 30px rgba(20,4,5,.85),0 1px 3px rgba(20,4,5,.6)}
.hero__title .gold{color:var(--gold-300)}
.hero__lede{margin-top:var(--s5);max-width:33em;font-size:clamp(16px,1.65vw,19px);line-height:2.05;color:rgba(251,246,236,.97);text-shadow:0 1px 14px rgba(20,4,5,.92),0 1px 3px rgba(20,4,5,.75)}
.hero__actions{margin-top:var(--s6);display:flex;gap:var(--s3);flex-wrap:wrap}


/* 三句宣言 */
.manifesto{display:grid;gap:var(--s6);max-width:920px}
.manifesto__row{display:grid;grid-template-columns:84px 1fr;gap:var(--s5);align-items:start}
.manifesto__no{
  font-family:var(--font-display);font-size:34px;line-height:1;
  letter-spacing:.08em;color:var(--gold-500);padding-top:2px;
  font-variant-numeric:tabular-nums;
}
.manifesto__text{font-family:var(--font-display);font-size:clamp(20px,2.4vw,27px);line-height:1.85;letter-spacing:.05em;color:var(--ink-900)}
.manifesto__text em{font-style:normal;color:var(--red-800)}
.manifesto__sub{margin-top:var(--s3);font-size:15.5px;color:var(--ink-500);letter-spacing:.02em;line-height:1.95}
@media (max-width:640px){
  .manifesto__row{grid-template-columns:1fr;gap:var(--s2)}
  .manifesto__no{font-size:26px;padding-top:0}
}

/* 数据带 */
.stat-band{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s5)}
.stat-band--light{padding-top:var(--s6);border-top:1px solid var(--line)}
.stat-band--light .stat__num{color:var(--red-800)}
.stat-band--light .stat__unit{color:var(--ink-700)}
.stat-band--light .stat__label{color:var(--ink-500)}
@media (max-width:980px){.stat-band{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:var(--s6)}}
@media (max-width:560px){.stat-band{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* CTA */
.cta{
  position:relative;overflow:hidden;
  display:grid;grid-template-columns:auto 1fr;gap:var(--s5);align-items:start;
  padding:var(--s7);border-radius:var(--radius-lg);
  background:var(--red-900);
  color:var(--cream-100);border:1px solid rgba(201,154,63,.42);
  box-shadow:0 28px 60px -44px rgba(60,12,10,.9);
}
.cta .seal{margin-top:2px}
.cta h2{font-size:clamp(21px,2.8vw,30px);color:var(--cream-100);letter-spacing:.08em}
.cta p{margin-top:var(--s3);font-size:15.5px;line-height:1.95;color:rgba(251,246,236,.8);max-width:36em}
.cta .btn{margin-top:var(--s5)}
@media (max-width:720px){.cta{grid-template-columns:1fr;padding:var(--s5)}}

/* 二级页首屏 */
.page-hero{
  position:relative;overflow:hidden;background:var(--red-950);color:var(--cream-100);
  display:flex;align-items:center;
  min-height:340px;padding:var(--s6) 0;
}
.page-hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(90% 120% at 100% 0%,rgba(192,70,51,.42),transparent 58%);
}
.page-hero .wrap{position:relative;z-index:1}
.page-hero h1{margin-top:var(--s4);font-size:clamp(29px,4.4vw,46px);color:var(--cream-100);letter-spacing:.1em}
.page-hero .lede{margin-top:var(--s4);color:rgba(251,246,236,.82);max-width:38em}
.page-hero--compact h1{margin-top:var(--s3)}
.page-hero--compact .lede{margin-top:var(--s3)}
@media (max-width:760px){
  .page-hero{min-height:260px;padding:var(--s5) 0}
}

/* 两栏图文 */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--s7);align-items:center}
@media (max-width:880px){.split{grid-template-columns:1fr;gap:var(--s5)}}
.split--reverse .split__media{order:-1}
@media (max-width:880px){.split--reverse .split__media{order:0}}
.split__media .photo-frame{aspect-ratio:4/3}
.split h2{font-size:clamp(22px,2.8vw,30px)}
.split p{margin-top:var(--s4);font-size:16.5px;line-height:2;color:var(--ink-700)}
.split p+p{margin-top:var(--s3)}

/* 子页列表 */
.sub-list{display:grid;gap:var(--s4);margin-top:var(--s6)}

/* ===== 首页：时间轴 ===== */
.timeline{position:relative;margin-top:var(--s6);padding-left:var(--s6)}
.timeline::before{content:"";position:absolute;left:5px;top:8px;bottom:10px;width:1px;background:linear-gradient(180deg,var(--gold-500),rgba(201,154,63,.18))}
.timeline__item{position:relative;padding-bottom:var(--s5)}
.timeline__item:last-child{padding-bottom:0}
.timeline__item::before{
  content:"";position:absolute;left:calc(-1 * var(--s6) + 1px);top:9px;
  width:9px;height:9px;border-radius:50%;background:var(--red-800);
  box-shadow:0 0 0 3px var(--cream-100);
}
.timeline__date{font-family:var(--font-display);font-size:13.5px;letter-spacing:.16em;color:var(--red-800)}
.timeline__title{font-size:18.5px;margin-top:2px;color:var(--ink-900)}
.timeline__desc{margin-top:2px;font-size:15.5px;line-height:1.9;color:var(--ink-500)}

/* ===== 首页：精神谱系（行式） ===== */
.spirit-list{margin-top:var(--s7);border-top:1px solid var(--line)}
.spirit-row{
  display:grid;grid-template-columns:64px 190px minmax(0,1fr);gap:var(--s5);
  align-items:start;padding:var(--s6) 0;border-bottom:1px solid var(--line);
  transition:background var(--t-base) var(--ease);
}
.spirit-row:hover{background:rgba(201,154,63,.08)}
.spirit-row__no{font-family:var(--font-display);font-size:20px;line-height:1.7;letter-spacing:.1em;color:var(--gold-500)}
.spirit-row__name{font-size:22px;letter-spacing:.1em;color:var(--ink-900)}
.spirit-row__body p{font-size:16px;line-height:2;color:var(--ink-700)}
.spirit-row__body p + p{margin-top:var(--s2)}
.tag{
  display:inline-block;margin-right:var(--s2);padding:1px 7px;border-radius:2px;
  font-size:12.5px;letter-spacing:.1em;color:var(--red-800);background:rgba(201,154,63,.2);
}
@media (max-width:860px){
  .spirit-row{grid-template-columns:44px minmax(0,1fr);gap:var(--s3) var(--s4);padding:var(--s5) 0}
  .spirit-row__body{grid-column:1 / -1}
  .spirit-row__name{font-size:20px}
}

/* ===== 首页：要点清单 ===== */
.facts{display:grid;gap:var(--s3);margin-top:var(--s5)}
.facts li{display:flex;gap:var(--s3);font-size:16px;line-height:1.9;color:var(--ink-700)}
.facts li::before{
  content:"";flex:0 0 6px;width:6px;height:6px;margin-top:.72em;
  background:var(--gold-500);border-radius:50%;
}

/* ===== 首页：结束语块 ===== */
.closing{
  padding:var(--s6);border-top:1px solid var(--line);
  font-family:var(--font-display);font-size:clamp(17px,2.2vw,22px);
  line-height:1.95;letter-spacing:.05em;color:var(--ink-900);
}
/* ===== 首页：横向时间轴（宽屏）===== */
@media (min-width:1080px){
  .timeline--h{
    display:grid;grid-template-columns:repeat(6,minmax(0,1fr));
    column-gap:var(--s5);padding-left:0;margin-top:var(--s7);
  }
  .timeline--h::before{
    left:0;right:0;top:7px;bottom:auto;width:auto;height:1px;
    background:linear-gradient(90deg,var(--gold-500),rgba(201,154,63,.22));
  }
  .timeline--h .timeline__item{padding:var(--s6) 0 0}
  .timeline--h .timeline__item::before{left:0;top:3px}
  .timeline--h .timeline__date{font-size:13.5px}
  .timeline--h .timeline__title{font-size:18px}
  .timeline--h .timeline__desc{font-size:15px;line-height:1.85}
}
/* ===== 图片带（图文混排）===== */
.photo-band{position:relative;margin:var(--s7) auto 0;max-width:860px;border-radius:var(--radius);overflow:hidden;isolation:isolate;background:var(--red-900)}
.photo-band img{width:100%;height:auto;display:block}
.photo-band::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(18,12,12,0) 46%,rgba(18,12,12,.72) 100%);
}
.photo-band__cap{
  position:absolute;z-index:2;left:var(--s5);right:var(--s5);bottom:var(--s4);
  color:var(--gold-300);font-size:14px;letter-spacing:.08em;line-height:1.7;
  text-shadow:0 1px 10px rgba(43,6,7,.9);
}
/* ===== 子页：正文、引文、横向时间轴、数据表 ===== */
.article{max-width:740px}
.article p{font-size:17px;line-height:2.05;color:var(--ink-700);margin-top:var(--s4)}
.article p:first-child{margin-top:0}
.article h2{font-size:clamp(22px,2.6vw,28px);margin-top:var(--s7)}
.article h2:first-child{margin-top:0}
.article ul{margin-top:var(--s4);display:grid;gap:var(--s2)}
.article li{font-size:16px;line-height:1.95;color:var(--ink-700);padding-left:var(--s4);position:relative}
.article li::before{content:"";position:absolute;left:0;top:.78em;width:6px;height:6px;border-radius:50%;background:var(--gold-500)}

.quote{
  margin:var(--s7) 0;padding:var(--s5) var(--s6);
  border-left:3px solid var(--gold-500);background:rgba(201,154,63,.1);
  font-family:var(--font-display);font-size:clamp(17px,2vw,21px);line-height:1.95;color:var(--ink-900);
}
.quote cite{display:block;margin-top:var(--s2);font-family:var(--font-body);font-style:normal;font-size:13.5px;color:var(--ink-500)}

/* 横向时间轴 */
.htl{margin-top:var(--s6)}
.htl__track{
  overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;
  padding-bottom:var(--s3);scrollbar-width:thin;
}
.htl__track:focus-visible{outline:3px solid var(--gold-400);outline-offset:4px;border-radius:var(--radius-sm)}
.htl__list{display:flex;gap:var(--s5);padding:var(--s5) 0 0}
.htl__item{flex:0 0 clamp(230px,24vw,290px);scroll-snap-align:start;position:relative;padding-top:var(--s4);border-top:1px solid var(--line)}
.htl__item::before{content:"";position:absolute;left:0;top:-5px;width:9px;height:9px;border-radius:50%;background:var(--red-800)}
.htl__date{font-family:var(--font-display);font-size:13.5px;letter-spacing:.14em;color:var(--red-800)}
.htl__name{font-size:19px;margin-top:2px;color:var(--ink-900)}
.htl__desc{margin-top:var(--s2);font-size:15.5px;line-height:1.9;color:var(--ink-500)}
.htl__hint{margin-top:var(--s3);font-size:13px;color:var(--ink-500)}

/* 数据表 */
.fact-table{width:100%;border-collapse:collapse;margin-top:var(--s6);font-size:16px}
.fact-table caption{text-align:left;font-size:13.5px;color:var(--ink-500);padding-bottom:var(--s3)}
.fact-table th,.fact-table td{text-align:left;padding:var(--s4) var(--s3);border-bottom:1px solid var(--line);vertical-align:top}
.fact-table th{font-family:var(--font-display);font-size:15px;letter-spacing:.08em;color:var(--red-800)}
.fact-table td:first-child{font-family:var(--font-display);font-size:21px;color:var(--red-800);white-space:nowrap}
.fact-table td:last-child{color:var(--ink-500);line-height:1.85}
@media (max-width:640px){
  .fact-table{font-size:15px}
  .fact-table th,.fact-table td{padding:var(--s3) var(--s2)}
}
/* ===== 互动页：闯关 ===== */
.quiz{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--cream-100);padding:var(--s6)}
.quiz__meta{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);font-size:13.5px;letter-spacing:.12em;color:var(--ink-500)}
.quiz__bar{height:4px;border-radius:99px;background:rgba(201,154,63,.25);margin-top:var(--s3);overflow:hidden}
.quiz__bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold-500),var(--red-800));transition:width var(--t-base) var(--ease)}
.quiz__q{margin-top:var(--s5);font-size:clamp(18px,2.2vw,22px);line-height:1.75;color:var(--ink-900)}
.quiz__options{display:grid;gap:var(--s3);margin-top:var(--s5)}
.quiz__opt{
  display:flex;gap:var(--s3);align-items:flex-start;text-align:left;
  min-height:48px;padding:var(--s4) var(--s5);border-radius:var(--radius);
  border:1px solid var(--line);background:var(--cream-100);
  font-size:16px;line-height:1.7;color:var(--ink-700);
  transition:border-color var(--t-fast),background var(--t-fast),transform var(--t-fast) var(--ease);
}
.quiz__opt:hover:not(:disabled){border-color:rgba(166,50,39,.45);background:rgba(201,154,63,.1);transform:translateX(2px)}
.quiz__opt:disabled{cursor:default}
.quiz__opt b{flex:0 0 22px;font-family:var(--font-display);color:var(--gold-500)}
.quiz__opt.is-correct{border-color:#3f7d52;background:rgba(63,125,82,.12)}
.quiz__opt.is-wrong{border-color:var(--red-800);background:rgba(166,50,39,.12)}
.quiz__fb{margin-top:var(--s5);padding:var(--s4) var(--s5);border-left:3px solid var(--gold-500);background:rgba(201,154,63,.12);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:15px;line-height:1.95;color:var(--ink-700)}
.quiz__fb strong{color:var(--red-800)}
.quiz__fb cite{display:block;margin-top:var(--s2);font-style:normal;font-size:13px;color:var(--ink-500)}
.quiz__foot{margin-top:var(--s5);display:flex;justify-content:flex-end;gap:var(--s3)}
.quiz__start{display:grid;gap:var(--s4);justify-items:start}

.result{display:grid;gap:var(--s4)}
.result__score{font-family:var(--font-display);font-size:clamp(40px,7vw,64px);line-height:1;color:var(--red-800)}
.result__score span{font-size:18px;color:var(--ink-500);margin-left:var(--s2)}
.result__rating{font-family:var(--font-display);font-size:22px;letter-spacing:.14em;color:var(--ink-900)}
.wrong-list{margin-top:var(--s4);display:grid;gap:var(--s3)}
.wrong-list li{font-size:15px;line-height:1.9;color:var(--ink-700);padding-left:var(--s4);position:relative}
.wrong-list li::before{content:"";position:absolute;left:0;top:.8em;width:6px;height:6px;border-radius:50%;background:var(--red-800)}
.wrong-list em{font-style:normal;color:var(--red-800)}

/* ===== 章节页：左目录 + 右内容（史实 / 精神共用）===== */
.doc-layout{
  display:grid;grid-template-columns:236px minmax(0,1fr);
  gap:var(--s8);align-items:start;
}
@media (max-width:960px){
  .doc-layout{grid-template-columns:minmax(0,1fr);gap:var(--s5)}
}
.doc-toc{position:sticky;top:calc(var(--header-h) + var(--s5))}
.doc-toc__title{
  font-size:12.5px;letter-spacing:.24em;color:var(--ink-500);
  padding-left:12px;margin-bottom:var(--s3);
}
.doc-toc ol{display:grid;gap:2px;counter-reset:toc}
.doc-toc a{
  display:flex;gap:var(--s2);align-items:baseline;
  padding:9px 12px;border-left:2px solid var(--line);
  font-size:15px;color:var(--ink-700);
  transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast);
}
.doc-toc a span{font-family:var(--font-display);font-size:12.5px;color:var(--gold-500)}
.doc-toc a:hover{color:var(--red-800);border-color:rgba(166,50,39,.4)}
.doc-toc a.is-current{color:var(--red-800);border-color:var(--red-800);background:rgba(201,154,63,.1);font-weight:600}
@media (max-width:960px){
  .doc-toc{position:static;margin-bottom:var(--s5)}
  .doc-toc__title{display:none}
  .doc-toc ol{display:flex;gap:var(--s2);overflow-x:auto;padding-bottom:var(--s2);scrollbar-width:none;-ms-overflow-style:none}
  .doc-toc ol::-webkit-scrollbar{height:0;width:0;display:none}
  .doc-toc a{border-left:0;border-bottom:2px solid var(--line);white-space:nowrap;padding:8px 10px}
  .doc-toc a.is-current{border-bottom-color:var(--red-800)}
}

.doc-body > * + *{margin-top:var(--s6)}
.doc-section{scroll-margin-top:calc(var(--header-h) + var(--s6))}
.doc-section + .doc-section{margin-top:var(--s9);padding-top:var(--s7);border-top:1px solid var(--line)}
.doc-section h2{font-size:clamp(22px,2.6vw,30px);color:var(--ink-900);margin-top:var(--s7)}
.doc-section > h2:first-child{margin-top:0}
.doc-section h3{margin-top:var(--s6)}
.doc-section h3{font-size:19px;margin-top:var(--s6);color:var(--ink-900)}
.doc-section p{font-size:17px;line-height:2.05;color:var(--ink-700);margin-top:var(--s4)}
.doc-section p:first-of-type{margin-top:var(--s4)}
.doc-section ul{margin-top:var(--s4);display:grid;gap:var(--s2)}
.doc-section li{font-size:16px;line-height:1.95;color:var(--ink-700);padding-left:var(--s4);position:relative}
.doc-section li::before{content:"";position:absolute;left:0;top:.8em;width:6px;height:6px;border-radius:50%;background:var(--gold-500)}
.doc-section .photo-frame{margin-top:var(--s6)}
.doc-section .quote{margin-top:var(--s6)}
/* ===== 概述页：年份分组时间轴 ===== */
.yr-group{margin-top:var(--s5)}
.yr-group__head{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s4)}
.yr-group__year{font-family:var(--font-display);font-size:26px;letter-spacing:.1em;color:var(--red-800)}
.yr-group__count{font-size:12.5px;letter-spacing:.14em;color:var(--ink-500)}
.yr-group__line{flex:1;height:1px;background:var(--line)}
.yr-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
@media (max-width:980px){.yr-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.yr-cards{grid-template-columns:minmax(0,1fr)}}
.yr-card{
  display:grid;gap:2px;padding:var(--s4);border:1px solid var(--line);border-radius:var(--radius);
  background:var(--cream-100);
  transition:border-color var(--t-fast),background var(--t-fast),transform var(--t-fast) var(--ease);
}
.yr-card:hover{border-color:rgba(166,50,39,.42);background:var(--cream-200);transform:translateY(-2px)}
.yr-card__date{font-size:12.5px;letter-spacing:.14em;color:var(--red-800)}
.yr-card__name{font-family:var(--font-display);font-size:17px;line-height:1.5;color:var(--ink-900)}
.yr-card:hover .yr-card__name{color:var(--red-800)}
.yr-card__desc{font-size:13.5px;line-height:1.7;color:var(--ink-500)}

/* ===== 誓言页：装裱卡片 + 底座表单 ===== */
.oath-plinth{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,400px);
  gap:var(--s6);align-items:start;
}
@media (max-width:980px){
  .oath-plinth{grid-template-columns:minmax(0,1fr);gap:var(--s4)}
}
.oath-frame{
  width:100%;padding:14px;
  border:1px solid rgba(201,154,63,.55);border-radius:var(--radius-lg);
  background:linear-gradient(180deg,rgba(201,154,63,.1),rgba(201,154,63,.02));
  box-shadow:0 24px 60px -40px rgba(94,20,15,.55);
}
.oath-canvas{width:100%;height:auto;display:block;border-radius:var(--radius-sm)}

.oath-pedestal{
  width:100%;display:grid;gap:var(--s3);
  padding:var(--s5);border:1px solid var(--line);border-radius:var(--radius-lg);
  background:var(--cream-100);
  box-shadow:0 24px 50px -46px rgba(94,20,15,.5);
}
.oath-pedestal__title{
  font-family:var(--font-display);font-size:14px;letter-spacing:.2em;color:var(--red-800);margin:0;
}
.oath-pedestal__meta{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink-500)}
.oath-actions{display:grid;grid-template-columns:1.25fr 1fr;gap:var(--s2)}
@media (max-width:520px){.oath-actions{grid-template-columns:1fr}}

.field{display:grid;gap:6px}
.field label{font-size:13.5px;letter-spacing:.08em;color:var(--ink-700)}
.field input,.field textarea{
  width:100%;min-height:44px;padding:9px var(--s3);
  border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--cream-100);color:var(--ink-900);font:inherit;font-size:15.5px;
}
.field textarea{min-height:70px;resize:vertical;line-height:1.8}
.field input:focus,.field textarea:focus{outline:3px solid var(--gold-400);outline-offset:2px;border-color:var(--red-700)}
.field__err{color:var(--red-800);font-size:13px;min-height:1.1em;margin:0}
.oath-hint{margin:0;font-size:12.5px;line-height:1.8;color:var(--ink-500)}
.btn--block{width:100%;justify-content:center}

@media (max-width:900px){
  .oath-frame{border-bottom-left-radius:0;border-bottom-right-radius:0}
  .oath-pedestal{border-top:0;border-top-left-radius:0;border-top-right-radius:0}
}

/* ===== 史实配图：尺寸收敛与文字环绕 ===== */
.doc-section .photo-frame{max-width:720px}
.doc-section .photo-frame img{max-height:400px;width:100%;object-fit:cover}
.doc-section .photo-frame .photo-frame__cap{font-size:13px}

.doc-section .fig-float{
  float:right;width:44%;max-width:340px;margin:var(--s2) 0 var(--s4) var(--s5);
}
.doc-section .fig-float img{max-height:340px}
.doc-section::after{content:"";display:block;clear:both}
@media (max-width:760px){
  .doc-section .fig-float{float:none;width:100%;max-width:100%;margin:var(--s5) 0}
}

/* ===== 闯关页：左闯关 右排行榜 ===== */
.quiz-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:var(--s6);align-items:start}
@media (max-width:960px){.quiz-layout{grid-template-columns:minmax(0,1fr)}}

.board{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--cream-100);overflow:hidden}
.board__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s2);padding:var(--s3) var(--s4);border-bottom:1px solid var(--line)}
.board__title{font-family:var(--font-display);font-size:19px;letter-spacing:.12em;color:var(--ink-900);margin:0}
.board__tag{font-size:12px;letter-spacing:.14em;color:var(--ink-500)}
.board__list{display:grid;padding:var(--s2) 0}
.board__row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:var(--s2);align-items:center;padding:5px var(--s4);font-size:14.5px;color:var(--ink-700)}
.board__row + .board__row{border-top:1px dashed rgba(27,20,22,.08)}
.board__rank{font-family:var(--font-display);font-size:14.5px;color:var(--gold-500)}
.board__rank--medal{
  display:inline-grid;place-items:center;width:21px;height:21px;border-radius:50%;
  font-size:11.5px;font-weight:600;letter-spacing:0;color:#4A2C08;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 1px 2px rgba(27,20,22,.18);
}
.board__rank--gold{background:linear-gradient(160deg,#F6DCA6,#D9A24B)}
.board__rank--silver{background:linear-gradient(160deg,#EFEDE6,#B9B3A6);color:#3B352C}
.board__rank--bronze{background:linear-gradient(160deg,#E0AC7C,#B06E33);color:#3A2208}
.board__name{color:var(--ink-700)}
.board__score{font-variant-numeric:tabular-nums;color:var(--ink-500);font-size:14.5px}
.board__empty{padding:var(--s6) var(--s5);text-align:center;font-size:13.5px;line-height:1.9;color:var(--ink-500)}
.board__foot{padding:var(--s3) var(--s4);border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-500);line-height:1.7}

/* ===== 誓言页：风格标签 / 发布 / 誓言墙 ===== */
.oath-styles{display:flex;flex-wrap:wrap;gap:var(--s2);margin:0}
.oath-styles__label{font-size:13px;letter-spacing:.08em;color:var(--ink-700);margin:0}
.style-chip{
  display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;
  border:1px solid var(--line);border-radius:999px;background:var(--cream-100);
  font-size:13px;letter-spacing:.06em;color:var(--ink-700);
  transition:border-color var(--t-fast),background var(--t-fast),color var(--t-fast);
}
.style-chip:hover{border-color:rgba(166,50,39,.4);color:var(--red-800)}
.style-chip[aria-checked="true"]{border-color:var(--red-800);background:rgba(201,154,63,.16);color:var(--red-800);font-weight:600}
.style-chip i{width:12px;height:12px;border-radius:50%;border:1px solid rgba(0,0,0,.15)}

.oath-publish{display:grid;gap:var(--s2);margin-top:var(--s2);padding-top:var(--s4);border-top:1px dashed rgba(27,20,22,.12)}
.oath-publish__msg{margin:0;font-size:13px;line-height:1.8;color:var(--red-800);min-height:1.2em}

.wall{margin-top:var(--s8)}
.wall__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s5)}
.wall__title{font-family:var(--font-display);font-size:clamp(20px,2.4vw,26px);margin:0;color:var(--ink-900)}
.wall__tag{font-size:12px;letter-spacing:.14em;color:var(--ink-500)}
.wall__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
@media (max-width:900px){.wall__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.wall__grid{grid-template-columns:minmax(0,1fr)}}
.wall__empty{
  grid-column:1 / -1;display:grid;place-items:center;gap:var(--s2);
  min-height:200px;padding:var(--s6);text-align:center;
  border:1px dashed rgba(27,20,22,.18);border-radius:var(--radius-lg);
  font-size:14px;line-height:1.9;color:var(--ink-500);background:rgba(201,154,63,.05);
}
.wall-card{
  display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:var(--s4);align-items:center;
  padding:var(--s4) var(--s5);border-radius:999px;
  border:1px solid var(--line);background:var(--cream-100);
}
.wall-card--local{border-style:dashed}
.wall-card__name{font-family:var(--font-display);font-size:16px;color:var(--ink-900);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wall-card__text{font-size:15px;line-height:1.75;color:var(--ink-700);margin:0}
.wall-card__meta{display:grid;gap:2px;justify-items:end;font-size:12px;color:var(--ink-500);white-space:nowrap}
.wall-card__style{color:var(--red-800)}
@media (max-width:600px){
  .wall-card{grid-template-columns:minmax(0,1fr);border-radius:var(--radius-lg);gap:var(--s2)}
  .wall-card__meta{justify-items:start;grid-auto-flow:column;justify-content:start;gap:var(--s3)}
}

/* ===== 章节页：右侧文章框架（iframe） ===== */
.doc-frame{min-width:0}
.doc-frame{position:relative}
.doc-frame iframe{
  display:block;width:100%;border:0;background:transparent;
  height:900px;              /* 首帧兜底；加载完成后由子页回传真实内容高度 */
  min-height:520px;
  transition:height .18s var(--ease);
}

/* ===== embed 模式：框架内只留正文 ===== */
html.is-embed .site-header,
html.is-embed .site-footer,
html.is-embed .doc-toc,
html.is-embed .progress,
html.is-embed .to-top,
html.is-embed .skip-link{display:none !important}
html.is-embed body{background:transparent}
html.is-embed .section{padding:0;background:none}
html.is-embed .doc-layout{display:block}
html.is-embed .doc-section > h2:first-child{margin-top:0}

/* ===== 目录与文章框架：隐藏滚动条（仍可滚） ===== */
.doc-toc{scrollbar-width:none;-ms-overflow-style:none}
.doc-toc::-webkit-scrollbar{width:0;height:0}
html.is-embed,html.is-embed body{scrollbar-width:none;-ms-overflow-style:none}
html.is-embed::-webkit-scrollbar,html.is-embed body::-webkit-scrollbar{width:0;height:0}
.doc-frame iframe{scrollbar-width:none}

/* embed：框架内的紧凑文章标题（替代整块 hero） */
html.is-embed .page-hero{
  background:none;color:var(--ink-900);
  min-height:0;display:block;
  padding:0 0 var(--s4);margin-bottom:var(--s5);
  border-bottom:1px solid var(--line);overflow:visible;
}
html.is-embed .page-hero::after{display:none}
html.is-embed .page-hero .breadcrumb{display:none}
html.is-embed .page-hero .eyebrow{color:var(--gold-500);font-size:12.5px;letter-spacing:.2em}
html.is-embed .page-hero h1{
  color:var(--red-900);font-size:clamp(24px,3vw,32px);
  margin:var(--s2) 0 0;letter-spacing:.08em;
}
html.is-embed .page-hero .lede{
  color:var(--ink-700);font-size:15px;line-height:1.9;
  margin-top:var(--s3);max-width:none;
}

/* ===== 博物馆：纯色首屏 ===== */
.page-hero--flat{background:var(--red-950)}
.page-hero--flat::after{display:none}

/* ===== 博物馆：规则网格 + 不规则摆放 ===== */
.museum{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  grid-auto-rows:190px;
  gap:var(--s4);
}
.ex{
  position:relative;min-width:0;overflow:hidden;
  background:var(--cream-100);border:1px solid var(--line);
  padding:var(--s4);
  display:flex;flex-direction:column;
}
.ex__tag{
  display:inline-block;font-family:var(--font-display);
  font-size:11.5px;letter-spacing:.22em;color:var(--gold-500);
  margin-bottom:var(--s3);
}
.ex__title{
  font-family:var(--font-display);font-size:19px;letter-spacing:.08em;
  color:var(--ink-900);line-height:1.6;
}
.ex__text{font-size:14.5px;line-height:1.95;color:var(--ink-700);margin-top:var(--s2)}
.ex__meta{margin-top:auto;padding-top:var(--s3);font-size:12.5px;color:var(--ink-500);letter-spacing:.04em}

/* 图片类：图填满，展签压底 */
.ex--photo{padding:0;background:var(--ink-900)}
.ex--photo img{display:block;width:100%;flex:1 1 auto;min-height:0;object-fit:cover}
.ex--photo figcaption{
  flex:0 0 auto;padding:10px var(--s3);font-size:12.5px;line-height:1.7;
  color:rgba(251,246,236,.86);
  display:flex;justify-content:space-between;gap:var(--s3);
}
.ex--photo figcaption span:last-child{color:var(--gold-400);white-space:nowrap}

/* 标语类 */
.ex--slogan{
  background:var(--red-900);border-color:rgba(201,144,63,.5);
  justify-content:center;
}
.ex--slogan .ex__tag{color:var(--gold-300)}
.ex--slogan .ex__title{
  color:var(--cream-100);font-size:clamp(20px,2.3vw,28px);
  letter-spacing:.12em;line-height:1.7;
}
.ex--slogan .ex__meta{color:rgba(251,246,236,.62)}
.ex--slogan.ex--slogan-s .ex__title{font-size:clamp(16px,1.75vw,21px);letter-spacing:.08em;line-height:1.75}

/* 引文类 */
.ex--quote{
  background:var(--cream-200);border-left:3px solid var(--gold-500);
  font-family:var(--font-display);justify-content:center;
}
.ex--quote .ex__title{font-size:17px;line-height:1.95;letter-spacing:.05em}

/* 数字类 */
.ex--num{justify-content:center}
.ex--num .num{
  font-family:var(--font-display);font-size:clamp(26px,3.4vw,38px);
  color:var(--red-800);letter-spacing:.02em;line-height:1.1;margin-top:var(--s2);
}
.ex--num .num small{font-size:14px;color:var(--ink-500);margin-left:6px;letter-spacing:.1em}

.museum__foot{
  margin-top:var(--s6);padding-top:var(--s4);
  border-top:1px solid var(--line);
  font-size:12.5px;line-height:1.9;color:var(--ink-500);letter-spacing:.03em;
}

/* 窄屏：两列，卡片改为自适应高度 */
@media (max-width:900px){
  .museum{grid-template-columns:repeat(2,1fr);grid-auto-rows:auto}
  .museum > .ex{grid-column:auto / span 1 !important;grid-row:auto / span 1 !important;min-height:220px}
  .museum > .ex--photo{min-height:260px}
}
@media (max-width:560px){
  .museum{grid-template-columns:1fr}
  .museum > .ex{grid-column:auto / span 1 !important;grid-row:auto / span 1 !important}
}
@media (max-width:600px){
  .museum{grid-template-columns:1fr}
  .w3,.w4,.w5,.w6,.w7,.w8{grid-column:span 1}
}

.museum__foot{
  margin-top:var(--s6);padding-top:var(--s4);
  border-top:1px solid var(--line);
  font-size:12.5px;line-height:1.9;color:var(--ink-500);letter-spacing:.03em;
}

.wall-card{
  display:block;grid-template-columns:none;
  border:1px solid rgba(201,154,63,.45);border-radius:10px;overflow:hidden;
  background:var(--cream-100);margin:0;
  box-shadow:0 20px 44px -34px rgba(94,20,15,.6);
}
.wall-card img{display:block;width:100%;height:auto}
.wall-card figcaption{
  display:flex;justify-content:space-between;gap:var(--s2);align-items:baseline;
  padding:8px var(--s3);font-size:12.5px;letter-spacing:.04em;color:var(--ink-500);
  border-top:1px solid var(--line);
}
.wall-card figcaption span:first-child{color:var(--ink-900);font-family:var(--font-display);font-size:13.5px}
.wall-card--in{animation:wallIn .5s var(--ease) both}
@keyframes wallIn{from{opacity:.2;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ===== 排行榜：动态行 ===== */
.board__time{display:inline;font-style:normal;font-size:12px;color:var(--ink-500);margin-left:6px;opacity:.85}
.board__row.is-new{background:rgba(201,154,63,.16);animation:boardIn .6s var(--ease)}
.board__empty{list-style:none}
.board__actions{padding:0 var(--s4) var(--s3)}
.board__clear{
  width:100%;padding:8px 0;border:1px dashed var(--line);border-radius:var(--radius-sm);
  background:transparent;color:var(--ink-500);font:inherit;font-size:12.5px;letter-spacing:.06em;cursor:pointer;
  transition:color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease);
}
.board__clear:hover{color:var(--red-800);border-color:rgba(166,50,39,.5)}
@keyframes boardIn{from{background:rgba(201,154,63,.4)}to{background:rgba(201,154,63,.16)}}

/* ===== 上榜表单 ===== */
.rank-form{margin-top:var(--s5);padding-top:var(--s4);border-top:1px dashed var(--line)}
.rank-form__label{display:block;font-size:13px;letter-spacing:.06em;color:var(--ink-700);margin-bottom:var(--s2)}
.rank-form__row{display:flex;gap:var(--s2);flex-wrap:wrap}
.rank-form__input{
  flex:1 1 180px;min-height:44px;padding:9px var(--s3);
  border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--cream-100);color:var(--ink-900);font:inherit;font-size:15px;
}
.rank-form__input:focus{outline:2px solid rgba(201,144,63,.5);outline-offset:1px}
.rank-form__msg{margin-top:var(--s2);font-size:13px;line-height:1.7;color:var(--red-800)}

/* ===== 数据导出 / 导入 ===== */
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.board__btns{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2);margin-bottom:var(--s2)}
.board__btns label{cursor:pointer;display:block;text-align:center}
.board__clear--danger:hover{color:var(--red-800);border-color:rgba(166,50,39,.45)}
.wall__export{
  padding:6px 12px;border:1px dashed var(--line);border-radius:var(--radius-sm);
  background:transparent;color:var(--ink-500);font:inherit;font-size:12.5px;letter-spacing:.04em;cursor:pointer;
  transition:color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease);
}
.wall__export:hover{color:var(--red-800);border-color:rgba(166,50,39,.45)}

/* ===== 墙卡：无缩略图时用样式还原的小卡片 ===== */
.wall-card__face{
  aspect-ratio:1120 / 780;
  display:flex;flex-direction:column;justify-content:space-between;
  padding:9% 8%;
  background:linear-gradient(150deg,#7A1F19,#5E140F 60%,#43100C);
  color:#FBF6EC;
  border-bottom:1px solid rgba(232,185,120,.35);
}
.wall-card__face[data-style="玄墨"]{background:linear-gradient(150deg,#26262A,#161719 60%,#0B0C0D)}
.wall-card__face[data-style="松烟"]{background:linear-gradient(150deg,#234036,#17302A 60%,#0D1C18)}
.wall-card__face[data-style="靛青"]{background:linear-gradient(150deg,#1D2E4E,#15223C 60%,#0A1220)}
.face__kicker{
  font-family:var(--font-display);font-size:11px;letter-spacing:.28em;
  color:#E8B978;text-align:center;
}
.face__oath{
  font-family:var(--font-display);font-size:15px;line-height:1.9;letter-spacing:.04em;
  text-align:center;
}
.face__foot{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s2)}
.face__name{font-size:12px;letter-spacing:.08em;opacity:.92}
.face__seal{
  display:grid;place-items:center;width:26px;height:26px;
  font-family:var(--font-display);font-size:14px;
  border:1px solid rgba(232,185,120,.75);color:#F2D2A0;border-radius:2px;
}
