/* v0.9 · Digital heritage exhibition. No external font or animation dependency. */
:root{--bg:#0d100f;--bg-2:#141917;--bg-3:#1a211d;--panel:#131915;--ink:#eee7d7;--ink-dim:#b8b4a3;--ink-faint:#8f9688;--line:#34392e;--gold:#cfb47a;--accent:#a7503a;--accent-soft:#d88f69}
html{scroll-padding-top:90px}body{background:var(--bg)}::selection{background:#aa6942;color:#fff}button,a,input{ -webkit-tap-highlight-color:transparent}button{font-family:inherit}a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid #e5c48d;outline-offset:6px}
#topnav{padding:15px 4.5vw;background:rgba(13,16,15,.86);backdrop-filter:blur(18px);border-color:#cfb47a22}.nav-brand{color:#eee7d7}.nav-brand::after{display:none}.nav-links{gap:30px}.nav-link{font-size:14px}.nav-link.active{color:#e5c48d}.nav-progress-bar{background:linear-gradient(90deg,#a7503a,#cfb47a,#9aa998)}
#hero{min-height:850px;height:100svh;max-height:1200px;background:#0d100f;isolation:isolate}#hero::before{background:linear-gradient(90deg,#0d100f 0%,#0d100ff2 28%,#0d100f55 68%,#0d100f22);pointer-events:none}#hero::after{height:35%;background:linear-gradient(transparent,#0d100f);z-index:2}.hero-bg{display:none}.hero-visual{inset:0 -8% 0 8%;opacity:.42;filter:saturate(.4) sepia(.15);background-position:62% 55%;animation:visual-breathe 18s ease-in-out infinite alternate}.hero-inner{margin-left:9vw;padding:80px 0 100px;max-width:600px;z-index:4;pointer-events:none}.hero-inner a{pointer-events:auto}.hero-string{display:none}.hero-eyebrow{font-size:12px;letter-spacing:5px;color:#c7bb9b;margin-bottom:25px;display:flex;align-items:center;gap:14px}.hero-eyebrow::before{display:none}.hero-eyebrow>span{width:28px;height:1px;background:#bc8662}.hero-title{font-size:clamp(88px,8.7vw,140px);line-height:1.12;letter-spacing:14px;font-weight:400;color:#eee7d7;background:none;-webkit-text-fill-color:initial;text-shadow:none}.hero-title>span{display:block;animation:ink-enter 1.3s both}.hero-title>span:nth-child(2){color:#d1b782;padding-left:1.02em;animation-delay:.16s}.hero-title::after{display:none}.hero-title i{display:inline-flex;vertical-align:middle;writing-mode:vertical-rl;font:16px/1.3 SimSun,serif;letter-spacing:5px;padding:8px 5px 4px;margin-left:14px;border:1px solid #b56448;color:#ce8764;transform:rotate(5deg)}.hero-sub{font-size:22px;letter-spacing:5px;color:#e2ddca;margin-top:27px}.hero-question{margin:22px 0 0;font-size:14px;line-height:2.1;color:#b5b7a8;letter-spacing:1px;max-width:470px}.hero-actions{display:flex;gap:28px;align-items:center;margin-top:30px}.hero-cta{margin:0;padding:13px 22px;border:1px solid #bfa37177;background:#cbb17a;color:#151913;font-size:13px;letter-spacing:2px;box-shadow:none}.hero-cta span{margin-left:24px}.hero-cta:hover{background:#e3cd9c;color:#141811;transform:translateY(-3px);box-shadow:0 10px 35px #cfb47a18}.hero-listen{font-size:13px;color:#d4cfbd;text-decoration:none;letter-spacing:2px;border-bottom:1px solid #8a806a;padding:9px 0}.hero-listen span{margin-left:12px}.hero-coordinate{position:absolute;right:5%;top:16%;z-index:3;text-align:right;font:11px/2.6 Georgia,serif;letter-spacing:5px;color:#9f9e85}.hero-coordinate span{font-size:11px;letter-spacing:3px;color:#868d7d}
#string-field{position:absolute;inset:0;z-index:3;width:100%;height:100%;touch-action:pan-y}.string-console{position:absolute;bottom:137px;right:6%;z-index:5;display:flex;align-items:center;gap:12px;font-size:11px;letter-spacing:1px;color:#d1c9ad;flex-wrap:wrap;max-width:350px}.string-console small{flex-basis:100%;text-align:right;color:#8f9586;font-size:10px}.string-console button{color:#d9c492;background:#131b16b3;border:1px solid #c5ac7255;padding:8px 11px;cursor:pointer}.live-dot{width:5px;height:5px;background:#c7ba83;border-radius:50%;box-shadow:0 0 12px #c7ba83;animation:signal 2.8s ease-in-out infinite}.hero-footnote{position:absolute;z-index:4;bottom:32px;left:4.5%;right:4.5%;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #d2bc822b;padding-top:24px;color:#8f9688;font-size:10px;letter-spacing:2px}.hero-footnote a{color:#c9c1a8;text-decoration:none;font-size:11px}.hero-footnote a span{display:inline-block;margin-left:14px;animation:scroll-cue 2s infinite}
.chapter-index{display:grid;grid-template-columns:repeat(5,1fr);padding:0 6vw;background:#101611;border-block:1px solid #cfb47a25}.chapter-index a{position:relative;display:grid;grid-template-columns:55px 1fr;align-items:center;column-gap:10px;padding:30px 22px 33px;text-decoration:none;border-right:1px solid #cfb47a25;color:#babca9;transition:background .3s}.chapter-index a:first-child{border-left:1px solid #cfb47a25}.chapter-index small{grid-column:1/-1;letter-spacing:2px;font:9px/1.8 Georgia,serif;color:#858e7c;margin-bottom:14px}.chapter-index strong{font:38px/1.5 SimSun,serif;color:#d5c197;transition:transform .3s}.chapter-index span{font-size:11px;letter-spacing:1px}.chapter-index b{position:absolute;right:18px;top:26px;color:#827f69;font-weight:400}.chapter-index a:hover{background:#cfb47a0b}.chapter-index a:hover strong{transform:translateY(-4px);color:#f0d9a8}
.chapter,.chapter:nth-child(odd),#chapter-source{background:radial-gradient(ellipse at 85% 15%,#52684c12,transparent 45%),#0d100f;border-color:#cfb47a25;padding:100px 7vw 90px;min-height:0;overflow:clip}.chapter::before{content:attr(data-watermark);position:absolute;right:5%;top:35px;font:190px/1 SimSun,serif;color:#d0b78008;pointer-events:none}.chapter-head,.source-head{position:relative;max-width:1200px;margin:0 auto 40px;text-align:left}.chapter h2{font-size:clamp(28px,3vw,43px);letter-spacing:2px;line-height:1.5}.chapter-no{font-size:12px;letter-spacing:5px;color:#c7a571;margin-bottom:18px}.chapter-lead,.source-head .chapter-lead{font-size:14px;color:#afb4a3;letter-spacing:1px;line-height:2;margin:15px 0 0;text-align:left;max-width:780px}.source-time-note{text-align:left;margin:12px 0;color:#949985;font-size:11px;letter-spacing:2px}.source-head h2{text-align:left}.chapter-body{position:relative;max-width:1200px}.chart-box,.source-stage,.spread-panel,.sound-viz-panel,.player{background:linear-gradient(135deg,#19221a99,#101612);border:1px solid #cfb47a30;border-radius:3px;box-shadow:0 20px 60px #00000014}.source-stage{padding:15px}.chart-note{font-size:11px;color:#939b8b;line-height:1.9;margin-top:17px}.chart-title{font-size:15px;color:#d3c8a8;letter-spacing:1px;margin-bottom:18px}.source-layer-label text{fill:#a5ad94}.source-edge-label{fill:#c8b887}.source-node text{fill:#e0d7be}.ln-leg,.ln-tier{fill:#adb39a}.ln-node rect{transition:filter .3s,stroke .3s}.ln-node:hover rect{filter:drop-shadow(0 0 9px #cdb07666)}.source-stage,.lineage-stage{overflow-x:auto!important}.source-svg{min-width:700px}.lineage-svg{min-width:730px}.flow-trace{fill:none;stroke:#ead3a0;stroke-width:2;stroke-dasharray:5 160;opacity:.7;pointer-events:none;animation:flow-thread 9s linear infinite}.source-stage .flow-trace{stroke-width:2.5}.chapter:not(.chapter--active) .flow-trace{animation-play-state:paused}.chapter-index,.chart-box,.sound-viz-panel,.torch-imgs figure{transition:border-color .35s,box-shadow .35s}.chart-box:hover,.sound-viz-panel:hover{border-color:#cfb47a55}.exhibition-reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}.exhibition-reveal.in{opacity:1;transform:none}.torch-imgs figure{overflow:hidden;border:1px solid #cfb47a33}.torch-imgs img{transition:transform .8s,filter .8s;filter:saturate(.6)}.torch-imgs figure:hover img{transform:scale(1.045);filter:saturate(1)}.torch-phrase{color:#d5bf8c}.chain-box{background:#182019;border:1px solid #cfb47a33}.school-radar-card{background:#121b14;border-color:#cfb47a30}.pp-btn{box-shadow:0 0 0 7px #cfb47a09}.pp-btn.playing{animation:record-pulse 2s infinite}.spread-toolbar{flex-wrap:wrap}.spread-range{accent-color:#d5b77a;min-width:100px}.timeline-play{padding:9px 15px;background:#c7b17f;color:#12180f;border:0;cursor:pointer;min-width:95px}.timeline-status{color:#aab49a;font-size:12px;flex-basis:100%;font-variant-numeric:tabular-nums}.timeline-year{font:italic 48px Georgia,serif;color:#cfb47a;margin-right:12px}.exhibition-tools{position:fixed;bottom:18px;right:20px;z-index:110;display:flex;align-items:center;gap:0;background:#111b15ed;border:1px solid #cfb47a40;backdrop-filter:blur(12px)}.exhibition-tools button,.exhibition-tools a{border:0;border-right:1px solid #cfb47a25;background:none;color:#c8c8b4;font:11px/1.5 inherit;font-size:11px;padding:10px 13px;text-decoration:none;cursor:pointer}.exhibition-tools a{font-size:17px;padding:7px 14px}.exhibition-tools button:hover{color:#ead1a1}#about-data{background:#0b100c;border-color:#cfb47a30}#epilogue{background:radial-gradient(ellipse at center,#293b222e,transparent 70%),#0d100f;padding-block:140px}.bgm-btn{display:none}
@keyframes visual-breathe{from{transform:scale(1.02)}to{transform:scale(1.08) translateY(-1%)}}@keyframes ink-enter{from{opacity:0;transform:translateY(24px);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}@keyframes signal{50%{opacity:.35;box-shadow:0 0 2px #c7ba83}}@keyframes scroll-cue{50%{transform:translateY(5px)}}@keyframes flow-thread{to{stroke-dashoffset:-660}}@keyframes record-pulse{50%{box-shadow:0 0 0 12px #cfb47a12}}
body.motion-paused *,body.motion-paused *::before,body.motion-paused *::after{animation-play-state:paused!important;scroll-behavior:auto!important}body.motion-paused .exhibition-reveal,body.motion-paused .reveal{opacity:1;transform:none;transition:none}
@media(min-width:1600px){.hero-inner{margin-left:12vw}.chapter-index{padding-inline:10vw}}
@media(max-width:1000px){.hero-inner{margin-left:7vw}.hero-title{font-size:100px}.chapter-index{padding:0 3vw}.chapter-index a{padding:24px 12px;grid-template-columns:35px 1fr}.chapter-index strong{font-size:30px}.chapter-index span{font-size:10px}.string-console{right:4%;max-width:275px}.hero-footnote>span:last-child{display:none}}
@media(max-width:700px){#topnav{padding:12px 18px;gap:10px}.nav-brand{font-size:14px;letter-spacing:3px}.nav-logo{width:23px;height:23px}.nav-links{gap:7px}.nav-link{font-size:12px;letter-spacing:0;padding:4px}#hero{height:880px;min-height:880px;max-height:none}.hero-inner{margin-left:8vw;align-self:flex-start;padding-top:135px;max-width:86vw}.hero-title{font-size:88px;letter-spacing:8px}.hero-sub{font-size:17px;letter-spacing:3px}.hero-eyebrow{font-size:10px;letter-spacing:3px;margin-bottom:23px}.hero-question{font-size:12px}.hero-actions{gap:20px;margin-top:25px}.hero-cta{font-size:12px;padding:12px 16px}.hero-cta span{margin-left:8px}.hero-listen{font-size:12px}.hero-coordinate{top:85px;right:7%;font-size:9px}.hero-coordinate span{display:none}.hero-visual{inset:22% -40% 0 -30%;opacity:.24}.string-console{bottom:99px;left:8vw;right:auto;max-width:85vw;font-size:10px}.string-console small{text-align:left}.hero-footnote{bottom:26px;left:8vw;right:8vw;font-size:8px;letter-spacing:1px}.hero-footnote a{font-size:10px}.chapter-index{padding:0;grid-template-columns:repeat(5,1fr)}.chapter-index a{padding:19px 0;text-align:center;display:flex;flex-direction:column;gap:7px}.chapter-index small{font-size:0;margin:0}.chapter-index small::first-letter{font-size:10px}.chapter-index strong{font-size:29px}.chapter-index span,.chapter-index b{display:none}.chapter{padding:65px 6vw!important}.chapter h2{font-size:27px;letter-spacing:1px}.chapter-lead,.source-head .chapter-lead{font-size:12px}.chapter::before{font-size:120px;top:30px}.chapter-head,.source-head{margin-bottom:25px}.source-stage{padding:0}.exhibition-tools{right:12px;bottom:12px}.exhibition-tools button{padding:9px;font-size:10px}.change-grid-main,.sound-viz-grid{grid-template-columns:1fr!important}.torch-imgs{grid-template-columns:repeat(2,1fr)!important}.player-row{flex-wrap:wrap;gap:15px}.player-switch{margin-left:0}.timeline-year{font-size:36px}.school-radars{grid-template-columns:1fr!important}.source-stage::after{content:'左右滑动，探索完整源流 →';display:block;position:sticky;left:0;padding:8px;font-size:10px;color:#aaa78e}.lineage-stage::after{content:'左右滑动 · 点击人物查看关系';display:block;position:sticky;left:0;padding:8px;font-size:10px;color:#aaa78e}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.exhibition-reveal,.reveal{opacity:1;transform:none}}
