/* Editorial typography and a restrained historical palette. */
:root{
  --ink:#182123;
  --paper:#f5f0e6;
  --red:#963c48;
  --wine:#782c3b;
  --warm:#d7b982;
  --muted:#796e62;
  --light-text:#dcd6cb;
  --font-display:RoadSerif,'Noto Serif SC','Songti SC',serif;
  --font-body:RoadSans,'PingFang SC','Microsoft YaHei',sans-serif;
}
body{font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.reveal{color:var(--paper);font-weight:400}
.reveal h1,.reveal h2,.reveal h3{font-family:var(--font-display);font-weight:650;letter-spacing:-.025em;font-kerning:normal}
.reveal h2{line-height:1.3}
.reveal p{letter-spacing:.015em}
[data-theme=light] .stage{background:radial-gradient(ellipse at 84% 9%,#fffaf0 0,transparent 66%),var(--paper);color:var(--ink)}
[data-theme=dark] .scene-title span{color:var(--warm)}
[data-theme=light] .scene-title span{color:var(--wine)}
.scene-label{font-size:13px;font-weight:450;letter-spacing:.19em;color:#ddcbb0;opacity:.9}
.scene-label:before{width:5px;height:12px;border-radius:1px;vertical-align:-1px;background:#b9585a;margin-right:14px}
[data-theme=light] .scene-label{color:#736557}
[data-theme=light] .scene-label:before{background:var(--red)}
.folio{font-size:11px;letter-spacing:.08em;color:#d7cbbc;font-variant-numeric:tabular-nums}
.folio span:first-child{opacity:.65}
[data-theme=light] .folio{color:#796d5f}
.folio i{opacity:.5}
.art-note{font-size:10px;opacity:.65;color:#ded3c1}
[data-theme=light] .art-note{color:#796f62;opacity:.75}
.diagram-note,.quiet-note{opacity:.7;font-weight:350;letter-spacing:.04em}
.insight{color:#e0d0b7;font-weight:380;letter-spacing:.02em}
.insight:before{color:#d1a66f}
[data-theme=light] .insight{color:#6f5149}
[data-theme=light] .insight:before{color:var(--red)}
.scene-step-status{opacity:.85}
.scene-step-status i{opacity:1;background:#c6ad8630}
.scene-step-status i.active{background:var(--warm)}
[data-theme=light] .scene-step-status i{background:#a9957e40}
[data-theme=light] .scene-step-status i.active{background:var(--wine)}
.scene-step-status b{opacity:.8}

/* Cover: a light introductory line and a sculptural display title. */
.cover-vignette{background:linear-gradient(90deg,#152023d9 0%,#15202370 43%,transparent 88%),linear-gradient(0deg,#15202388,transparent 50%)}
.cover-heading{margin-top:94px!important;font-size:64px;line-height:1.3;letter-spacing:.035em!important}
.cover-heading>span{font-family:var(--font-body);font-weight:350;letter-spacing:.075em}
.cover-heading strong{font-family:var(--font-display);font-size:132px;font-weight:800;letter-spacing:.012em;line-height:1.32;margin-top:7px;color:#fff3da}
.red-dot{color:#d18575;font-weight:500;margin-left:2px}
.cover-deck{font-size:20px!important;letter-spacing:.1em!important;font-weight:350;color:#e4ded0;margin-top:24px!important}
.cover-era{bottom:118px;gap:25px}
.cover-era .keyboard-item{font-family:var(--font-display);font-size:32px;font-weight:500;color:#dcbf8c;line-height:1.25}
.cover-era .keyboard-item span{font-family:var(--font-body);font-size:12px;font-weight:350;opacity:.85;letter-spacing:.21em;margin-top:12px;color:var(--light-text)}
.cover-era i{background:#dcbf8c50;width:48px}
.begin-caption{font-size:12px;letter-spacing:.08em;color:#e9ddc9;bottom:120px}
.begin-caption b{border-color:#d1b38288;color:var(--warm);font-family:var(--font-body)}

/* Chapter openings and dates. */
.portal-year,.opening-year,.converge-years b{font-family:var(--font-display);font-weight:500;letter-spacing:-.055em;color:#f4dfba}
.portal-year{font-size:72px;top:17px}
.portal-word{font-family:var(--font-display);font-size:33px;font-weight:650;letter-spacing:.025em;bottom:42px}
.portal-word small{font-family:var(--font-body);font-size:13px;font-weight:350;letter-spacing:.1em;opacity:.8;margin-top:16px}
.portal{border-color:#d7b98233}
.portal:after{background:linear-gradient(0deg,#152023f5 0,#15202350 45%,transparent 100%)}
.era-portals{gap:22px;top:220px;height:382px}
.s-portals .scene-title{font-size:46px}
.colossal-year,.crisis-date,.zunyi-numeral,.plenum-number{font-family:var(--font-display);font-weight:500;letter-spacing:-.07em}
.colossal-year{color:#e5cfab22}
.crisis-date{-webkit-text-stroke:1px #cfab704d}
.zunyi-numeral,.plenum-number{color:#8a374310}
.opening-year{font-size:119px;color:#e0c090;font-weight:500}
.opening-caption{color:#e6d6bd;font-weight:350;letter-spacing:.13em!important}
.opening-question{border-color:#bf8d64;color:#eee0c9;font-size:18px;font-weight:350;letter-spacing:.05em}
.s-opening .scene-title{font-weight:600;font-size:62px!important}
.chapter-caption{font-size:22px!important;font-weight:350;color:#e0ded1;line-height:1.9!important}
.s-crisis1927 .hero-title{font-weight:600;font-size:80px!important;line-height:1.28!important}
.s-crisis1934 .scene-title{font-size:64px!important;font-weight:600;line-height:1.3!important}
.s-crisis1934 .stage{background:linear-gradient(115deg,#182527,#231d24)}
.crisis-glow{background:radial-gradient(ellipse at 76% 51%,#913b4359,transparent 56%)}

/* Diagrams: warm lines, clear active states, less button-like framing. */
.diagram-node{font-family:var(--font-body);border-radius:8px;background:#1d292bed;border-color:#bfa37a66;box-shadow:0 7px 18px #0002}
.diagram-node span{font-size:22px;font-weight:450;letter-spacing:.04em}
.diagram-node i{font-family:var(--font-display);font-weight:500;font-size:17px;color:#d4b580}
.diagram-node.is-step-active{background:var(--wine);border-color:#bf8680;box-shadow:0 8px 24px #0002,0 0 0 4px #d9b57810}
[data-theme=light] .diagram-node{background:#faf5eb;color:#4c4540;border-color:#b5a48c6b;box-shadow:0 5px 18px #37251809}
[data-theme=light] .diagram-node.is-step-active{background:var(--wine);color:#fff3db;border-color:var(--wine);box-shadow:0 9px 22px #782c3b26}
[data-theme=light] .diagram-node i{color:#a58964}
[data-theme=light] .diagram-node.is-step-active i{color:#e6c399}
.s-method .scene-title{font-size:72px;line-height:1.3}
.left-caption{font-size:22px!important;line-height:1.85!important;color:#7a695b;font-weight:350}
.method-orbit{box-shadow:0 18px 60px #38261f22}
.orbit-center strong{font-family:var(--font-display);font-size:48px;font-weight:650;letter-spacing:.06em;color:#fff1d5}
.orbit-center small{font-size:12px;letter-spacing:.2em;color:#edd9b7;opacity:.9}
.s-method .draw-path,.s-pivot .draw-path{stroke:#a47f6999}
.s-method .art-note{opacity:.7}
.s-context .outlined-word{font-family:var(--font-display);font-weight:500;letter-spacing:-.03em;-webkit-text-stroke:1px #ab957b;opacity:.55}
.context-left{border-left-color:#af7c664d}
.context-left b,.rural-label span{color:#8a7660}
.city-core{fill:var(--wine);stroke:#e1c9a1}
.village-dot{fill:#c8b08a;stroke:#fff8ed}
.s-context[data-step="1"] .village-dot{fill:#a14e50}
.s-context[data-step="1"] .city-core{fill:#8e6c7077}
.city-label,.rural-label{font-weight:500;letter-spacing:.025em}
.rural-label.is-step-active{color:var(--wine)}
.s-triangle .stage{background:radial-gradient(ellipse at 66% 46%,#663842 0,#202d2e 58%,#182123 100%)}
.s-triangle .draw-path{stroke:#d1ac78;opacity:.8}
.triangle-center strong,.test-core strong,.pivot-core strong{font-family:var(--font-display);font-weight:600;letter-spacing:.045em}
.triangle-center span,.test-core small{color:#d9b982;letter-spacing:.13em}
.pivot-core{background:linear-gradient(135deg,#983f49,#682536);box-shadow:0 18px 45px #782c3b29;color:#fff2dd}
.pivot-core span{color:#e4c29d;letter-spacing:.1em}
.s-pivot .scene-title{font-size:64px}
.test-loop .draw-path{stroke:#b79771}
.loop-label{color:#d4c4ab;letter-spacing:.05em;font-weight:350}
.test-selector .keyboard-item{border:0;border-bottom:1px solid #bfa37a40;border-radius:0;background:none;color:#b8b1a5;padding:13px 14px}
.test-selector .keyboard-item.selected{background:none;color:#f1d4a6;border:0;border-bottom:2px solid #d7b982}
.test-selector>p{font-size:13px;opacity:.75;letter-spacing:.07em}
.example-answer{color:#e4d2b5;font-weight:350;letter-spacing:.025em}
.s-correct .stage{background:radial-gradient(ellipse at 58% 76%,#69404a 0,#253334 55%,#182123 100%)}
.s-correct .draw-path{stroke:#e8c593}
.correction-label{font-family:var(--font-display);font-weight:550;letter-spacing:.06em;color:#ebdeca}
.correction-label.c{color:#f1cf9b}
.case-caption{font-family:var(--font-display);font-size:20px!important;color:#e2c39b}
.case-caption span{font-family:var(--font-body);font-size:12px;opacity:.8;letter-spacing:.035em}
.route-copy strong{font-family:var(--font-display);font-size:31px;font-weight:650;letter-spacing:.04em;color:#fff1d7}
.route-copy small{font-family:var(--font-display);font-size:18px;color:#e6bba1}
.s-route .draw-path{stroke:#d6b482}
.path-label{font-family:var(--font-display);font-size:20px;letter-spacing:.04em}

/* Source material is set against clean, warm paper. */
.book-slip{background:#f5ecd9;border-left:4px solid var(--wine);box-shadow:0 18px 48px #060b0f66}
.book-slip h3{font-family:var(--font-display);font-size:24px;line-height:1.55;font-weight:650;letter-spacing:.015em}
.book-slip>span{font-family:var(--font-display);font-size:24px;font-weight:500;color:var(--red)}
.book-slip i{opacity:.65;font-size:10px;letter-spacing:.04em}
.s-books .bottom-line{font-family:var(--font-display);font-size:23px;color:#e7c89b;letter-spacing:.08em}
.archive-photo img{border:5px solid #fcf6e9;box-shadow:0 15px 38px #4f352512}
.archive-photo figcaption{font-size:11px;color:#756557;opacity:.9;letter-spacing:.045em}
.zunyi-heading .scene-title{font-size:65px;font-weight:650;letter-spacing:.015em}
.zunyi-heading p{font-size:21px;line-height:1.9;letter-spacing:.07em;color:#786458;font-weight:350}
.two-topics{font-family:var(--font-display);font-size:19px;letter-spacing:.06em;color:var(--wine)}
.s-paper .stage{background:radial-gradient(ellipse at 83% 12%,#fffaf0 0,#ede4d5 85%)}
.paper-composition{background:#fff9e9;box-shadow:14px 24px 56px #69502f26}
.paper-headline>span{font-family:var(--font-body);font-size:22px;font-weight:350;line-height:1.7;letter-spacing:.06em;color:#776456}
.paper-headline h2{font-family:var(--font-display);font-size:139px;font-weight:800;letter-spacing:.04em;color:var(--wine);margin:19px 0 12px}
.paper-headline>p{font-family:var(--font-display);font-size:30px;line-height:1.6;letter-spacing:.025em;color:#3c3431;font-weight:450}
.paper-headline strong{font-weight:700;color:var(--wine)}
.paper-consequence{font-size:16px;color:#796152;letter-spacing:.035em;line-height:1.8}
.paper-meta{color:#8b735b;font-size:10px}
.s-plenum .scene-title{font-size:63px;line-height:1.35;font-weight:650}
.plenum-outcomes .keyboard-item{font-family:var(--font-display);font-size:24px;font-weight:550;letter-spacing:.04em;color:#786459;border-bottom-color:#bca58888}
.plenum-outcomes .keyboard-item.is-step-active{color:var(--wine);border-bottom-color:var(--wine)}
.inline-history{background:#f6efde;padding:18px;box-shadow:0 20px 55px #0006}
.inline-history figcaption{font-family:var(--font-display);font-size:15px;color:#6a4c40;letter-spacing:.02em}
.inline-history figcaption span{font-family:var(--font-body);opacity:.8}
.reform-pin{font-family:var(--font-display);font-size:22px;letter-spacing:.055em;background:#17272be0;border-color:#ccb38988;color:#f2e1c8}
.reform-pin.is-step-active{background:var(--wine);border-color:#cf9b86}
.reform-pin i{background:#e4c99c}
.s-reform .scene-title{font-size:67px}

/* Recap and ending. */
.s-converge .stage{background:radial-gradient(ellipse at 50% 92%,#703d4666,transparent 65%),#182628}
.converge-years b{font-size:86px;color:#e4c28a}
.converge-years span{font-family:var(--font-body);font-size:17px;letter-spacing:.1em;color:#d6c5ac}
.s-converge .draw-path{stroke:#c3a071}
.converge-result i{background:#d3ad7c;box-shadow:0 0 0 8px #d3ad7c17,0 0 36px #d3ad7c44}
.converge-result h3{font-size:38px;font-weight:650;color:#f9e7c9;letter-spacing:.06em}
.converge-result p{font-size:17px;color:#d2bfa5;letter-spacing:.08em}
.today-scenes strong{font-family:var(--font-display);font-size:29px;font-weight:650;color:#463b37;letter-spacing:.05em}
.today-scenes .keyboard-item.selected strong{color:var(--wine)}
.today-scenes svg{color:#996663}
.today-scenes .keyboard-item.selected svg{color:var(--wine)}
.today-scenes .keyboard-item:before{border-color:#b8a18466}
.today-scenes .keyboard-item.selected:before{background:#d6b4801f;border-color:#bb8f7255}
.today-scenes span{color:#8a715e;font-size:16px;letter-spacing:.025em}
.s-today .example-answer{font-size:19px;color:#755549;font-weight:400}
.today-foot{font-family:var(--font-display);font-size:24px;font-weight:600;letter-spacing:.04em;color:var(--wine)}
.finish-title{font-family:var(--font-display);font-size:75px!important;font-weight:500!important;letter-spacing:.035em!important;line-height:1.4!important;color:#f3e6d0}
.finish-title span{font-weight:750;color:#e5bc83}
.finish-thanks{color:#decfb8;font-weight:350;letter-spacing:.15em!important}
.inline-references{border-left-color:#b3916977;color:#e2cdb1}
.inline-references h3{font-weight:600;color:#f3dfbd;letter-spacing:.045em}
.inline-references small{color:#cfad81}
.inline-references p{color:#d6c8b6}
.source-summary{color:#d5c3a4c0;font-size:13px;line-height:1.9;letter-spacing:.035em}

/* Quiet controls and readable notes. */
.reveal .progress{color:#a45557;height:2px}
.deck-tools{background:#18282bea;border-color:#bd9b6d55;box-shadow:0 8px 28px #0003;border-radius:10px;padding:5px 10px}
.deck-tools button{border-radius:5px;letter-spacing:.05em}
.deck-tools #page-status{font-variant-numeric:tabular-nums;color:#dcc29c}
.intro-hint{background:#18282beb;border:1px solid #bea2774d;border-radius:5px;color:#dbc19a;letter-spacing:.08em}
.notes-panel{background:#f8f2e6fa;border-color:#b8987344;color:#342f2c;border-radius:8px}
.notes-panel header{font-family:var(--font-display);font-size:22px;font-weight:650;line-height:1.55;color:var(--wine);border-color:#c2ab8d55}
.notes-panel p{font-family:var(--font-body);font-weight:350;line-height:2;color:#4d443c}
.notes-panel .note-timing{color:#8b7463;opacity:1}
.note-sources a{color:var(--wine)}
