*{box-sizing:border-box}body{margin:0;background:#eee5d3;color:#514936;font-family:Microsoft YaHei,sans-serif}main{height:100svh;min-height:620px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 57% 42%,#f8f2e6,#eee5d3 78%)}#scene{position:absolute;top:0;right:0;bottom:0;left:0}canvas{display:block;touch-action:none}header{position:absolute;top:36px;left:44px;right:44px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:inherit;letter-spacing:4px;font-size:16px;pointer-events:auto}.brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:7px}.seal{border:1px solid #956042;color:#956042;font-family:serif;font-size:24px;padding:5px 7px;letter-spacing:0}.edition{font-size:10px;letter-spacing:3px;color:#8c806a}.intro{position:absolute;left:5.4%;top:23%;pointer-events:none}.eyebrow{font-size:9px;letter-spacing:2.5px;color:#938570}h1{font-family:STSong,SimSun,serif;font-weight:400;font-size:clamp(45px,5vw,76px);letter-spacing:15px;margin:22px 0}.rule{width:33px;height:1px;background:#9b7957;margin:27px 0}.intro p{font-family:STSong,SimSun,serif;line-height:2.3;letter-spacing:3px;font-size:13px}.poet{font-size:10px;color:#a08c72;letter-spacing:3px}.side{position:absolute;right:38px;top:35%;writing-mode:vertical-rl;letter-spacing:5px;font-family:serif;font-size:12px;color:#9d8d75}footer{position:absolute;bottom:49px;left:44px;right:44px;display:flex;align-items:center;justify-content:space-between;gap:20px}.caption{font-size:11px;letter-spacing:2px}.caption small{display:block;font-size:9px;color:#948671;letter-spacing:1px;margin:10px 0 0 15px}.dot{display:inline-block;background:#9b704e;width:5px;height:5px;border-radius:50%;margin-right:8px}.toolbar{display:flex;align-items:center;gap:7px;padding:8px;border:1px solid #b8a78b66;border-radius:4px;background:#f9f3e7bb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}button{font:inherit;font-size:11px;background:transparent;border:0;color:#65553e;cursor:pointer;padding:11px 14px;border-radius:3px}button:hover,button[aria-pressed=true]{background:#dfd0b5}button:focus-visible{outline:2px solid #946943}button:disabled{opacity:.4;cursor:wait}.toolbar i{height:18px;width:1px;background:#c9baa3}.folio{position:absolute;bottom:16px;left:44px;font-size:9px;color:#8c7b62;letter-spacing:2px}.folio span{opacity:.6}#loading{position:absolute;left:57%;top:48%;transform:translate(-50%,-50%);display:flex;align-items:center;flex-direction:column;gap:15px;font-size:12px;letter-spacing:2px}#loading[hidden]{display:none}#loading small{color:#9b876b;font-size:10px}.spinner{width:25px;height:25px;border:1px solid #cbbb9e;border-top-color:#785b3b;border-radius:50%;animation:spin 1.3s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:700px){header{top:22px;left:23px;right:23px}.edition{font-size:8px;letter-spacing:1px}.intro{left:25px;top:110px}.eyebrow{font-size:8px}h1{font-size:42px;margin:12px 0;letter-spacing:10px}.rule,.intro p,.poet,.side{display:none}footer{bottom:46px;left:20px;right:20px;flex-direction:column;gap:13px}.caption{font-size:10px}.caption small{display:none}.toolbar{width:100%;justify-content:center}button{padding:10px 13px}.folio{left:23px}.brand{font-size:13px}#loading{left:50%;top:51%}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}.time-panel{position:absolute;left:5.4%;bottom:150px;width:228px;padding:17px 19px;border:1px solid #b8a78b66;background:#f6efdfdc;border-radius:5px;color:#65553e;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.time-heading{display:flex;justify-content:space-between;font-size:11px;letter-spacing:2px}.time-heading output{font-variant-numeric:tabular-nums;letter-spacing:1px}#time{width:100%;margin:20px 0 8px;accent-color:#936e45;cursor:pointer}.time-presets{display:flex;justify-content:space-between}.time-presets button{font-size:10px;padding:7px 6px}.time-panel small{display:block;font-size:9px;color:#94836b;margin-top:10px;letter-spacing:2px}body.night{color:#e4dac4}body.night .edition,body.night .eyebrow,body.night .poet,body.night .side,body.night .caption small,body.night .folio{color:#b8b7bc}body.night .seal{color:#dbba88;border-color:#dbba88}@media(min-width:701px)and (max-height:760px){.time-panel{bottom:126px;left:auto;right:44px}.intro{top:20%}}@media(max-width:700px){.time-panel{left:20px;right:20px;bottom:156px;width:auto;padding:12px 17px}.time-panel small{display:none}#time{margin:10px 0 2px}.time-presets button{padding:5px 8px}}#sky{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}#scene{z-index:1}header,.intro,.side,#loading,footer,.folio,.time-panel{z-index:2}.time-panel{background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;border-color:#8b724e3b}.time-presets button{background:transparent}.time-presets button:hover,.time-presets button[aria-pressed=true]{background:#aa895b21}body.night .time-panel,body.night .time-panel button{color:#e4dac4}body.night .time-panel{background:transparent;border-color:#e4dac43d}body.night .time-panel small{color:#c0bba9}body.night .time-presets button:hover,body.night .time-presets button[aria-pressed=true]{background:#e4dac41f}
