:root{color-scheme:dark;--bg:#0b1117;--panel:#121b23;--text:#f1efe8;--muted:#94a4af;--line:#29343d;--accent:#d9ae68}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;transition:background .5s,color .5s}body[data-theme=paper]{color-scheme:light;--bg:#f2ede3;--panel:#e8e3d9;--text:#252c2c;--muted:#69716d;--line:#d3cec2;--accent:#a75d3f}body[data-theme=night]{--bg:#071426;--panel:#101f34;--text:#e5ebf1;--muted:#8da4bd;--line:#263c54;--accent:#f4bb70}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}button:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:5px}a{color:inherit;text-decoration:none}header{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:32px;padding:0 max(28px,calc((100vw - 1360px)/2));}.wordmark{font-size:15px;letter-spacing:.02em}.wordmark span,.edition{color:var(--muted);font-size:12px}header nav{margin-left:auto;border:1px solid var(--line);padding:3px;border-radius:4px;display:flex}nav button{padding:9px 22px;font-size:12px;color:var(--muted)}nav button[aria-pressed=true]{background:var(--panel);color:var(--text);box-shadow:0 0 0 1px var(--line)}main{max-width:1408px;padding:24px 32px 0;margin:auto}.intro{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;letter-spacing:.08em;margin:0 0 14px}.cinema{position:relative;isolation:isolate;height:min(68vh,740px);min-height:430px;border:1px solid var(--line);overflow:hidden;border-radius:5px;background:var(--panel)}#scene{width:100%;height:100%;display:block}.titles{position:absolute;left:36px;top:24px;pointer-events:none;z-index:2}.titles img{display:block;width:208px;height:auto;margin-left:-25px}.titles h1{font:400 23px "Songti SC","Noto Serif SC",serif;letter-spacing:.24em;margin:2px 0 14px}.titles p{font-size:10px;letter-spacing:.19em;color:var(--muted);margin:0}.sample-tag{position:absolute;top:28px;right:28px;font-size:10px;letter-spacing:.14em;color:var(--muted);border:1px solid var(--line);padding:8px 12px;background:var(--bg)}.start{position:absolute;top:53%;left:50%;transform:translate(-50%,-50%);background:var(--bg);border:1px solid var(--line);border-radius:40px;padding:18px 30px;box-shadow:0 6px 40px #0003;font-size:13px;z-index:3}.start.hidden{display:none}.caption{position:absolute;bottom:55px;left:50%;transform:translateX(-50%);max-width:85%;white-space:nowrap;padding:10px 18px;background:#08111bd9;color:#f1efe8;letter-spacing:.1em;font-size:15px;text-align:center;border-radius:3px;pointer-events:none}.caption:empty{display:none}.credit{position:absolute;left:20px;right:20px;bottom:14px;display:flex;justify-content:space-between;font:9px monospace;color:var(--muted);pointer-events:none}#mapLabels{position:absolute;inset:0;pointer-events:none}.map-label{position:absolute;color:var(--accent);font:15px "Songti SC",serif;letter-spacing:.16em;text-shadow:0 0 10px var(--bg);transform:translate(-50%,-50%);opacity:.9}.map-label.river{color:var(--muted);font-size:11px}.controls{height:60px;display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding:0 16px}.controls button{min-height:44px;white-space:nowrap;font-size:12px;color:var(--muted)}#play{font-size:23px;color:var(--text);width:28px}#clock{font:11px monospace;white-space:nowrap;color:var(--muted)}#seek{flex:1;min-width:20px;accent-color:var(--accent);height:3px;cursor:pointer}.chapters{display:grid;grid-template-columns:repeat(3,1fr);margin-top:22px;border-bottom:1px solid var(--line)}.chapters button{text-align:left;padding:16px 0 23px;border-bottom:2px solid transparent}.chapters button small{font:10px monospace;color:var(--muted);margin-right:22px}.chapters button span{font-size:13px}.chapters .active{color:var(--accent);border-color:var(--accent)}.about{display:flex;justify-content:space-between;gap:60px;padding:44px 0;align-items:center}.about>div:first-child{max-width:690px}.eyebrow{font-size:15px;letter-spacing:.07em}.about p:not(.eyebrow){line-height:1.9;color:var(--muted);font-size:12px}.source-summary{text-align:right;min-width:230px}.source-summary>span{font:26px Georgia,serif}.source-summary p{margin:4px 0}.source-summary button{color:var(--accent);font-size:11px;margin-top:8px}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:24px;padding:22px 0;color:var(--muted);font-size:10px}dialog{max-width:660px;width:calc(100% - 32px);background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:36px}dialog::backdrop{background:#0009;backdrop-filter:blur(6px)}dialog h2{font-size:25px;font-weight:400}dialog p{line-height:1.9;color:var(--muted);font-size:13px}dialog a{color:var(--accent);text-decoration:underline}.close{float:right;font-size:28px}#error{position:absolute;inset:0;padding:80px 30px;background:var(--bg);line-height:2;z-index:9}.cinema:fullscreen{height:100vh;max-height:none;border:0;border-radius:0}body.recording #export{color:var(--accent)}
@media(max-width:700px){header{height:68px;padding:0 16px;gap:12px}.edition{display:none}nav button{padding:10px 14px}main{padding:20px 16px 0}.intro{font-size:9px;gap:12px}.cinema{height:57vh;min-height:370px}.titles{left:23px;top:20px}.titles img{width:160px;margin-left:-18px}.titles h1{font-size:19px;margin:0 0 10px}.titles p{font-size:8px}.sample-tag{top:20px;right:14px;font-size:8px;padding:6px 7px}.controls{gap:10px;padding:0 4px;height:58px}.controls button{font-size:10px}#play{width:20px;font-size:20px}#clock{font-size:9px}#fullscreen{display:none}#export{font-size:10px}.chapters button small{display:block;margin:0 0 10px}.chapters button span{font-size:12px}.caption{font-size:12px;max-width:94%;letter-spacing:.04em;padding:9px 10px;white-space:normal;width:max-content}.credit{left:12px;right:12px;font-size:7px}.credit span:last-child{display:none}.map-label{font-size:12px}.about{padding:28px 0;gap:20px;align-items:flex-start;flex-direction:column}.source-summary{text-align:left;min-width:0}.source-summary>span{font-size:23px}footer{flex-wrap:wrap;gap:14px;font-size:9px}.start{padding:15px 24px;font-size:12px}dialog{padding:24px}}
@media(prefers-reduced-motion:reduce){body{transition:none}}
