:root{--paper:#f4ecdf;--ink:#2b2219;--muted:#b9a68f;--accent:#e0a15a;--panel:#1c1611bd;--line:#ffecd224;--ui:"Microsoft YaHei", "PingFang SC", "Noto Sans SC", sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--paper);font-family:var(--ui);background:radial-gradient(at 55% 40%,#4b3a2c 0%,#251c16 58%,#140f0c 100%);margin:0;overflow:hidden}#app,#app canvas{display:block;position:fixed;inset:0}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.panel{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:12px;position:fixed}.hud{width:372px;padding:14px 18px 12px;top:16px;left:16px}.brand{letter-spacing:.2em;color:var(--muted);justify-content:space-between;font-size:13px;display:flex}.brand span{letter-spacing:.05em;font-family:Georgia,serif}.era{align-items:center;gap:14px;margin-top:6px;display:flex}.year{font-variant-numeric:tabular-nums;color:#ffe2b8;font:600 52px/1 Georgia,Times New Roman,serif}.meta{color:var(--muted);font-size:13px}.era-title{color:var(--paper);margin-top:4px;font-size:17px;font-weight:600}.hud p{color:#e8dccb;min-height:3.4em;margin:8px 0 0;font-size:13px;line-height:1.7}.views{gap:2px;padding:4px;display:flex;top:16px;right:16px}.views button{background:0 0;border:0;border-radius:8px;padding:7px 14px;font-size:14px}.views button:hover{background:#ffecd21a}.views button.on{color:#ffe2b8;background:#e0a15a40}.threads{width:228px;padding:12px 14px;top:68px;right:16px}.threads h2{color:var(--muted);letter-spacing:.08em;margin:0 0 8px;font-size:13px;font-weight:600}.chips{flex-wrap:wrap;gap:6px;display:flex}.chips.small{border-top:1px solid var(--line);margin-top:8px;padding-top:8px}.chips button{border:1px solid var(--line);background:#ffecd20f;border-radius:999px;padding:5px 11px;font-size:13px}.chips.small button{color:#dccbb4;padding:3px 9px;font-size:12px}.chips button:hover{background:#e0a15a38}.timeline{align-items:center;gap:14px;width:min(880px,100% - 32px);padding:12px 18px 26px;display:flex;bottom:18px;left:50%;transform:translate(-50%)}.play{border:1px solid var(--line);background:#e0a15a33;border-radius:50%;flex:none;width:40px;height:40px;font-size:15px}.play:hover{background:#e0a15a59}.track{flex:1;position:relative}.track input{width:100%;accent-color:var(--accent);cursor:pointer;height:22px;margin:0}.ticks{height:16px;position:absolute;top:24px;left:0;right:0}.ticks button{color:var(--muted);background:0 0;border:0;padding:0 4px;font:12px Georgia,serif;position:absolute;transform:translate(-50%)}.ticks button:before{content:"";background:var(--muted);width:1px;height:5px;position:absolute;top:-6px;left:50%}.ticks button.on{color:#ffe2b8}.month{text-align:right;width:92px;color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:13px}.card{background:var(--paper);width:320px;color:var(--ink);border-radius:10px;padding:16px 18px 14px;position:fixed;bottom:112px;right:16px;box-shadow:0 12px 40px #00000073}.card[hidden]{display:none}.card h3{margin:2px 0 8px;font-size:18px}.card p{margin:0;font-size:14px;line-height:1.75}.card .when{color:#8a6a48;letter-spacing:.05em;font:12px Georgia,serif}.card .close{color:#8a7a68;background:0 0;border:0;font-size:20px;position:absolute;top:6px;right:8px}.years{flex-wrap:wrap;gap:4px;margin-top:10px;display:flex}.years button{color:#6a5440;background:#fffaf2;border:1px solid #d8c8b0;border-radius:6px;padding:2px 8px;font:12px Georgia,serif}.years button.on{color:#fff;background:#c8743b;border-color:#c8743b}.card .focus{color:var(--paper);background:#2b2219;border:0;border-radius:6px;margin-top:12px;padding:6px 12px;font-size:13px}.tip{pointer-events:none;white-space:nowrap;background:#140f0bd9;border-radius:6px;padding:4px 9px;font-size:12px;position:fixed;transform:translate(14px,10px)}.tip[hidden]{display:none}.hint{color:#f4ecdf8c;max-width:200px;font-size:12px;line-height:1.6;position:fixed;bottom:22px;left:16px}#loading{color:var(--muted);background:#1b1511;place-items:center;font-size:15px;transition:opacity .6s;display:grid;position:fixed;inset:0}#loading.done{opacity:0;pointer-events:none}@media (width<=1100px){.hint{display:none}}@media (width<=760px){.hud{width:calc(100% - 32px);padding:10px 14px}.year{font-size:36px}.hud p{display:none}.views{top:auto;bottom:96px;right:16px}.threads{display:none}.timeline{gap:10px;padding:10px 12px 24px}.month{display:none}.card{width:auto;bottom:150px;left:16px;right:16px}}
