*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#0e100f;color:#dbd4bf;font-family:"Microsoft YaHei","PingFang SC",sans-serif}button,input,select{font:inherit}button{color:inherit;background:none;border:0;cursor:pointer}button:hover{color:#fff6db}button:focus-visible,input:focus-visible,select:focus-visible{outline:1px solid #e8d2a2;outline-offset:4px}button[aria-pressed=false]{opacity:.4}[hidden]{display:none!important}#gallery{height:100dvh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 40%,#24251f 0%,#101210 55%,#0a0c0b 100%)}#artwork{position:relative;height:100%;aspect-ratio:9/16;max-width:100%;box-shadow:0 0 110px #0009;overflow:hidden}canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab}canvas:active{cursor:grabbing}.signature{position:absolute;left:6%;top:17%;pointer-events:none}.eyebrow{font-size:10px;letter-spacing:6px;color:#918b77}.signature h1{font-family:"Songti SC","SimSun",serif;font-weight:400;font-size:70px;line-height:1.45;letter-spacing:7px;margin:30px 0 24px}.signature h1 span{display:block;margin-left:37px}.rule{width:24px;height:1px;background:#78705a}.signature p{font-family:serif;font-size:12px;letter-spacing:3px;margin-top:27px;color:#a6a08d}.signature small{display:block;font-size:9px;letter-spacing:2px;color:#5e6259;margin-top:18px}.season-note{position:absolute;left:calc(50% + 34vh);top:42%;max-width:180px}.season-note>span{font:10px Georgia,serif;letter-spacing:3px;color:#837e6e}.season-note h2{font:400 27px "Songti SC","SimSun",serif;letter-spacing:9px;margin:18px 0}.season-note p{font-family:serif;font-size:11px;color:#8d8b7f;letter-spacing:2px;line-height:2}#controls{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);width:min(450px,calc(100vw - 30px));padding:13px 19px 10px;border:1px solid #d9c99121;border-radius:3px;background:#111711ce;backdrop-filter:blur(18px);transition:opacity .4s} .control-top{display:flex;gap:15px;align-items:center;font-size:11px}.control-top button{padding:3px 0}.spacer{flex:1}#play{font-size:17px;min-width:18px}#timeLabel{font-family:serif;font-size:11px;letter-spacing:2px;color:#b5ad92}#season{display:block;width:100%;height:2px;margin:16px 0 12px;appearance:none;background:#bba7744d;accent-color:#e1c686;cursor:ew-resize}#season::-webkit-slider-thumb{appearance:none;width:7px;height:7px;border-radius:50%;background:#dfc997;box-shadow:0 0 8px #e7c88044}.season-buttons{display:flex;justify-content:space-between}.season-buttons button{font:11px serif;letter-spacing:2px;color:#aca68f;padding:3px 0}.season-buttons button.active{color:#fae0a2}#options{margin-top:16px;border-top:1px solid #d9c99121;padding-top:13px;display:grid;grid-template-columns:1fr 1fr;gap:13px;font-size:11px;color:#c4bca5}#options label{display:flex;align-items:center;gap:8px}#options select{background:#1e241e;color:#cfc6af;border:1px solid #d9c99133;padding:3px;font-size:11px}#options input{width:80px;accent-color:#c7b380}#hint{position:absolute;bottom:12px;font-size:9px;letter-spacing:1px;color:#9a9b8c88;text-align:center}#loading,#error{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:serif;letter-spacing:4px;background:#25251e}#error{letter-spacing:1px;padding:30px;line-height:2}#restore{position:absolute;right:20px;bottom:16px;color:#b5ae94;display:none;width:40px;height:40px;background:#1118;border-radius:50%}.ui-hidden .signature,.ui-hidden .season-note,.ui-hidden #controls,.ui-hidden #hint{display:none}.ui-hidden #restore{display:block;opacity:0.25}.ui-hidden #restore:hover{opacity:1}@media(max-width:1000px){.signature{left:4%;}.signature h1{font-size:48px}.signature p,.signature small{display:none}.season-note{left:auto;right:4%;max-width:120px}.season-note p{max-width:95px}}@media(max-width:700px){.signature,.season-note{display:none}#artwork{width:100%;height:100%;aspect-ratio:auto}#controls{bottom:28px}.control-top{gap:14px}#hint{font-size:8px;bottom:9px}.season-buttons button{padding:6px 0}}@media(max-height:600px) and (min-width:700px){.signature h1{font-size:40px;margin:10px 0}.signature{top:12%}#controls{bottom:22px;width:420px}#hint{bottom:5px}}
