:root{--gold:#d9b26a;--gold-bright:#f3d693;--gold-dim:#d9b26a59;--vermilion:#b8322a;--bronze:#6f8a74;--panel:#0e0b09b3;--text:#eadfc8;--text-dim:#a8987c;--font-brush:"STXingkai", "华文行楷", "Xingkai SC", "Ma Shan Zheng", "STKaiti", "KaiTi", "楷体", serif;--font-kai:"KaiTi", "楷体", "STKaiti", "Kaiti SC", serif;--font-serif:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "SimSun", serif}*{box-sizing:border-box}html,body{height:100%;color:var(--text);font-family:var(--font-serif);-webkit-font-smoothing:antialiased;background:#060504;margin:0;overflow:hidden}#stage{cursor:grab;touch-action:none;outline:none;width:100%;height:100%;display:block;position:fixed;inset:0}#stage.dragging{cursor:grabbing}#stage.hover{cursor:pointer}.hidden{display:none!important}.seal{border:3px solid var(--vermilion);width:68px;height:68px;color:var(--vermilion);font-family:var(--font-kai);text-align:center;background:#b8322a14;border-radius:6px;padding-top:5px;font-size:22px;font-weight:700;line-height:27px;box-shadow:inset 0 0 0 2px #b8322a40}.seal.small{letter-spacing:1px;border-width:2px;flex:none;width:46px;height:46px;padding-top:5px;font-size:13px;line-height:16px}#loader{z-index:50;background:radial-gradient(at 50% 40%,#23201a 0%,#0b0907 55%,#030302 100%);place-items:center;transition:opacity 1.4s,visibility 1.4s;display:grid;position:fixed;inset:0}#loader.hide{opacity:0;visibility:hidden}.loader-inner{text-align:center;flex-direction:column;align-items:center;padding:0 16px;display:flex}.loader-title{font-family:var(--font-brush);color:var(--gold-bright);letter-spacing:16px;text-shadow:0 0 30px #f3be6459,0 2px #000;margin:20px 0 4px;font-size:92px;font-weight:400}.loader-sub{color:var(--text-dim);letter-spacing:6px;margin:0 0 34px;font-size:15px}.loader-bar{background:#d9b26a26;width:min(320px,80vw);height:2px;overflow:hidden}.loader-bar i{background:linear-gradient(90deg, transparent, var(--gold-bright));width:0;height:100%;transition:width .2s;display:block}.loader-text{color:var(--text-dim);letter-spacing:3px;min-height:1em;margin-top:14px;font-size:13px}.loader-hint{color:#6f6250;letter-spacing:2px;margin-top:30px;font-size:12px}.enter-btn{font-family:var(--font-kai);letter-spacing:10px;color:var(--gold-bright);border:1px solid var(--gold-dim);cursor:pointer;background:linear-gradient(#50605280,#1e2822bf);border-radius:2px;margin-top:8px;padding:12px 46px;font-size:22px;transition:all .3s;animation:2.6s ease-in-out infinite breathe;box-shadow:0 0 24px #6f8a7440}.enter-btn:hover{border-color:var(--gold);box-shadow:0 0 36px #f3be6459}@keyframes breathe{50%{box-shadow:0 0 40px #f3be644d}}#brand{pointer-events:none;z-index:5;align-items:center;gap:14px;display:flex;position:fixed;top:20px;left:24px}#brand h1{font-family:var(--font-brush);letter-spacing:6px;color:var(--gold-bright);text-shadow:0 0 18px #f3be6440,0 2px 2px #000;margin:0;font-size:34px;font-weight:400}#brand p{color:var(--text-dim);letter-spacing:3px;text-shadow:0 1px 2px #000;margin:2px 0 0;font-size:12px}#caption{text-align:center;pointer-events:none;z-index:4;opacity:0;flex-direction:column;align-items:center;transition:opacity 1.4s;display:flex;position:fixed;top:22%;left:50%;transform:translate(-50%)}#caption.show{opacity:1}#caption .cap-no{letter-spacing:10px;color:var(--text-dim);font-size:14px}#caption .cap-title{font-family:var(--font-brush);letter-spacing:14px;color:var(--gold-bright);text-shadow:0 0 26px #f3b45a73,0 2px 3px #000;margin:4px 0;font-size:64px}#caption .cap-sub{letter-spacing:6px;color:#cbbd9f;text-shadow:0 1px 2px #000;font-size:14px}#guide,#info{z-index:6;background:var(--panel);-webkit-backdrop-filter:blur(10px);border:1px solid #d9b26a2e;position:fixed}#guide:before,#info:before,#guide:after,#info:after{content:"";border:1px solid var(--gold);pointer-events:none;width:14px;height:14px;position:absolute}#guide:before,#info:before{border-bottom:none;border-right:none;top:5px;left:5px}#guide:after,#info:after{border-top:none;border-left:none;bottom:5px;right:5px}#guide{width:262px;max-height:calc(100vh - 170px);padding:14px 14px 10px;top:92px;left:22px;overflow-y:auto}#guide h2{font-family:var(--font-kai);letter-spacing:8px;color:var(--gold);text-align:center;cursor:pointer;margin:0 0 10px;font-size:17px;font-weight:400}#guide.collapsed{width:auto}#guide.collapsed #guide-list{display:none}.g-unit{margin-bottom:8px}.g-unit-head{cursor:pointer;border-left:3px solid var(--vermilion);background:#3c221659;align-items:baseline;gap:8px;padding:6px 8px;display:flex}.g-unit-head .n{color:var(--text-dim);letter-spacing:2px;font-size:11px}.g-unit-head .t{font-family:var(--font-brush);color:var(--gold-bright);letter-spacing:3px;font-size:21px}.g-unit-head .c{color:var(--text-dim);margin-left:auto;font-size:11px}.g-items{padding:4px 0 2px 6px}.g-unit.closed .g-items{display:none}.g-item{text-align:left;color:#cdbf9f;width:100%;font-family:var(--font-serif);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:2px;padding:4px 8px;font-size:13px;display:block;overflow:hidden}.g-item:hover{color:var(--gold-bright);background:#d9b26a1f}.g-item.active{color:var(--gold-bright);background:#b8322a4d}#info{width:380px;max-height:calc(100vh - 44px);padding:20px 22px 16px;transition:opacity .4s;top:22px;right:22px;overflow-y:auto}#info .x{width:32px;height:32px;color:var(--text-dim);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:2px;font-size:24px;line-height:28px;position:absolute;top:8px;right:12px}#info .x:hover{border-color:var(--gold-dim);color:var(--gold-bright)}.info-unit{letter-spacing:4px;color:var(--text-dim);font-size:12px}#info h2{font-family:var(--font-brush);color:var(--gold-bright);letter-spacing:2px;margin:6px 30px 10px 0;font-size:30px;font-weight:400;line-height:1.25}.info-tags{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.info-tags span{color:#cbbd9f;background:#281e1466;border:1px solid #d9b26a40;padding:2px 8px;font-size:11.5px}.info-size{border-left:3px solid var(--vermilion);background:#b8322a24;flex-direction:column;gap:2px;margin-bottom:12px;padding:9px 12px;display:flex}.info-size span{letter-spacing:4px;color:var(--text-dim);font-size:11px}.info-size b{color:var(--gold-bright);font-size:14px;font-weight:600;line-height:1.5}.info-brief{color:#e2d6bc;margin:0 0 6px;font-size:14px;line-height:1.75}#info h3{font-family:var(--font-kai);letter-spacing:8px;color:var(--gold);border-bottom:1px solid #d9b26a26;margin:14px 0 6px;padding-bottom:4px;font-size:15px;font-weight:400}#info ul{margin:0;padding-left:18px}#info li{color:#cbbd9f;font-size:13px;line-height:1.75}#info-meaning{color:#d8ccb2;text-align:justify;margin:0;font-size:13.5px;line-height:1.9}.info-nav{justify-content:space-between;gap:10px;margin-top:16px;display:flex}.info-nav button,#bar button{font-family:var(--font-serif);color:var(--text);cursor:pointer;background:#1e181299;border:1px solid #d9b26a40;border-radius:2px;padding:7px 14px;font-size:13px;transition:all .2s}.info-nav button:hover,#bar button:hover{border-color:var(--gold);color:var(--gold-bright)}.listen{cursor:pointer;font-family:var(--font-serif);color:var(--gold-bright);letter-spacing:2px;background:#6f8a742e;border:1px solid #d9b26a59;border-radius:16px;align-items:center;gap:8px;margin:-2px 0 12px;padding:6px 14px 6px 10px;font-size:13px;transition:all .2s;display:inline-flex}.listen:hover{border-color:var(--gold);background:#6f8a744d}.listen:disabled{opacity:.4;cursor:default}.listen i{border-left:9px solid var(--gold-bright);border-top:6px solid #0000;border-bottom:6px solid #0000;width:0;height:0}.listen.playing i{border:none;border-left:3px solid var(--gold-bright);border-right:3px solid var(--gold-bright);width:9px;height:11px;animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.45}}#subtitle{z-index:7;text-align:center;color:#f1e6cc;letter-spacing:1px;border-left:2px solid var(--vermilion);pointer-events:none;opacity:0;background:#080605b8;max-width:min(760px,100vw - 32px);padding:8px 18px;font-size:16px;line-height:1.6;transition:opacity .3s;position:fixed;bottom:76px;left:50%;transform:translate(-50%)}#subtitle.show{opacity:1}body.inspecting #subtitle{left:calc(50% - 200px)}#minimap{z-index:5;cursor:crosshair;-webkit-backdrop-filter:blur(6px);background:#0a08069e;border:1px solid #d9b26a40;width:230px;height:140px;position:fixed;bottom:70px;right:22px}#minimap canvas{width:100%;height:100%;display:block}body.inspecting #minimap{opacity:0;pointer-events:none}#bar{z-index:6;background:var(--panel);-webkit-backdrop-filter:blur(10px);border:1px solid #d9b26a2e;gap:8px;padding:8px;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}#bar button.on{border-color:var(--gold);color:var(--gold-bright);background:#5f221673}#help{z-index:6;background:var(--panel);color:#cbbd9f;backdrop-filter:blur(10px);border:1px solid #d9b26a40;max-width:calc(100vw - 32px);padding:12px 18px;font-size:13px;line-height:1.6;position:fixed;bottom:72px;left:50%;transform:translate(-50%)}#help p{margin:4px 0}#help b{color:var(--gold-bright);margin-right:6px;font-weight:600}kbd{text-align:center;min-width:20px;color:var(--gold-bright);background:#3c281880;border:1px solid #d9b26a66;border-radius:3px;margin:0 2px;padding:0 5px;font-family:inherit;font-size:12px;display:inline-block}#tooltip{z-index:20;pointer-events:none;letter-spacing:1px;border:1px solid var(--gold-dim);color:var(--gold-bright);opacity:0;white-space:nowrap;background:#0c0907d9;padding:5px 10px;font-size:13px;transition:opacity .15s;position:fixed}#tooltip.show{opacity:1}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-thumb{background:#d9b26a40;border-radius:3px}@media (width<=900px){#brand{top:14px;left:16px}#brand h1{font-size:26px}#guide{width:auto;max-height:38vh;inset:auto 16px 66px}#guide.collapsed{right:auto}#info{width:auto;max-height:52vh;inset:auto 16px 66px}#minimap{width:150px;height:92px;top:14px;bottom:auto;right:16px}#bar{bottom:12px;left:16px;right:16px;overflow-x:auto;transform:none}#bar button{flex:none;padding:7px 10px}#caption .cap-title{font-size:44px}body.inspecting #guide{display:none}#subtitle,body.inspecting #subtitle{max-width:none;font-size:14px;bottom:62px;left:16px;right:16px;transform:none}body.inspecting #subtitle{top:70px;bottom:auto}}
