:root{--paper: #f7f1e3;--paper-2: #f1e7d4;--paper-3: #e8dcc4;--ink: #2c2a24;--ink-2: #4c473b;--muted: #746c5c;--faint: rgba(80, 70, 52, .46);--cinnabar: #a63f35;--cinnabar-dark: #7f2e27;--pine: #31584c;--gold: #b08a4b;--gold-light: #d3b77c;--line: rgba(70, 60, 40, .18);--line-strong: rgba(166, 63, 53, .42);--panel: rgba(252, 247, 237, .84);--panel-solid: #fbf5e8;--text: #2c2a24;--danger: #a63f35;--bg: #f5eddd;--green: #31584c;--cyan: #9a7a4a;--violet: #a63f35;--font-title: "STKaiti", "KaiTi", "Kaiti SC", "Songti SC", "STSong", "SimSun", serif;--font-serif: "Songti SC", "STSong", "Noto Serif SC", "SimSun", serif;--font-body: "Songti SC", "STSong", "Noto Serif SC", "SimSun", serif;--font-label: "Microsoft YaHei", "PingFang SC", "Noto Sans SC", "Source Han Sans SC", sans-serif;--font-mono: "Songti SC", "STSong", "Noto Serif SC", "SimSun", serif;color-scheme:light}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;background:var(--paper);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}button,input{font-family:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}code,.mono{font-family:var(--font-serif)}.app-bg{position:fixed;inset:0;z-index:-2;background:linear-gradient(180deg,#f8f2e4,#f1e7d4 52%,#e7dac0)}.btn,.btn-primary,.btn-ghost{appearance:none;border-radius:3px;font-family:var(--font-serif);font-size:.9rem;font-weight:600;letter-spacing:.1em;transition:color .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease,transform .15s ease}.btn{border:1px solid rgba(70,60,40,.3);background:#fffcf48c;color:var(--ink-2);padding:.58rem 1rem}.btn:hover{border-color:var(--cinnabar);background:#a63f350f;color:var(--cinnabar)}.btn:active{transform:translateY(1px)}.btn-primary{border:1px solid var(--cinnabar-dark);background:var(--cinnabar);color:#fdf8ec;padding:.62rem 1.2rem;box-shadow:0 3px 10px #7e2e272e}.btn-primary:hover{background:var(--cinnabar-dark);box-shadow:0 5px 16px #7e2e273d}.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{opacity:.55;box-shadow:none}.btn-gold{appearance:none;border:1px solid var(--cinnabar-dark);border-radius:3px;padding:.62rem 1.2rem;font-family:var(--font-serif);font-size:.9rem;font-weight:700;letter-spacing:.1em;color:#fdf8ec;background:var(--cinnabar);box-shadow:0 3px 10px #7e2e272e;transition:all .2s ease}.btn-gold:hover{background:var(--cinnabar-dark)}.btn-ghost{border:1px solid rgba(70,60,40,.26);background:transparent;color:var(--ink-2);padding:.5rem .85rem}.btn-ghost:hover{color:var(--cinnabar);border-color:var(--cinnabar);background:#a63f350f}.toast{position:fixed;left:50%;bottom:8vh;transform:translate(-50%);z-index:90;padding:.8rem 1.3rem;border-radius:3px;border:1px solid rgba(70,60,40,.24);border-left:4px solid var(--cinnabar);background:#fcf7edfa;color:var(--ink);font-family:var(--font-serif);font-size:.88rem;letter-spacing:.03em;box-shadow:0 12px 34px #46361e2e;max-width:86vw;text-align:center}.toast.bad{border-left-color:var(--cinnabar-dark);color:var(--cinnabar-dark)}.toast-enter-active,.toast-leave-active{transition:opacity .25s ease,transform .25s ease}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(-50%,12px)}input[type=text],input[type=number],input[type=password],input:not([type]){width:100%;border:1px solid rgba(70,60,40,.26);background:#fffcf49e;color:var(--ink);border-radius:3px;padding:.55rem .7rem;font-size:.9rem;outline:none;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}input:focus{border-color:var(--cinnabar);background:#fffdf8e6;box-shadow:0 0 0 2px #a63f3514}input::placeholder{color:var(--faint)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#78603c52;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#78603c73}::-webkit-scrollbar-track{background:transparent}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
