:root{--bg:#fbf7f5;--surface:#fffdfb;--surface-2:#f5ecea;--text:#34292c;--muted:#8b7479;--border:#ead9d8;--accent:#b65c74;--accent-hover:#924458;--accent-soft:#f7e3e7;--gold:#ad8b57;--danger:#b91c1c;--danger-soft:#fee2e2;--success:#15803d;--success-soft:#dcfce7;--radius:8px;--radius-sm:4px;--shadow:0 1px 2px #4c2b3308, 0 18px 50px #4c2b330f;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;--font-serif:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "SimSun", "Iowan Old Style", Georgia, serif;--font-kai:"STKaiti", "KaiTi", "Kaiti SC", var(--font-serif);--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--measure:44rem;--page:72rem}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background-color:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-image:radial-gradient(#8e5e6909 .65px,#0000 .65px);background-size:5px 5px;margin:0;font-size:16px;line-height:1.7}a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{color:var(--accent-hover)}img{max-width:100%;height:auto}button,input,textarea,select{font:inherit;color:inherit}::selection{background:var(--accent-soft);color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3,h4,h5,h6{line-height:1.25;font-family:var(--font-serif);letter-spacing:-.01em;margin:0;font-weight:650}p{margin:0}.container{width:min(100% - 2.5rem, var(--page));margin-inline:auto}.muted{color:var(--muted)}.small{font-size:.875rem}.serif{font-family:var(--font-serif)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.stack{flex-direction:column;gap:1rem;display:flex}.row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.spacer{flex:1}.btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-height:2.4rem;color:var(--text);cursor:pointer;justify-content:center;align-items:center;gap:.4rem;padding:.45rem .95rem;font-size:.9rem;font-weight:550;line-height:1;text-decoration:none;transition:background .15s,border-color .15s,color .15s,transform 50ms;display:inline-flex}.btn:hover{background:var(--surface-2);color:var(--text)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{border-color:var(--accent);background:var(--accent);color:#fffaf5}.btn-primary:hover{border-color:var(--accent-hover);background:var(--accent-hover);color:#fffaf5}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-2)}.btn-danger{background:var(--danger-soft);color:var(--danger);border-color:#0000}.btn-danger:hover{color:var(--danger);background:#fecaca}.btn-sm{min-height:2rem;padding:.3rem .65rem;font-size:.82rem}.field{flex-direction:column;gap:.4rem;display:flex}.label{color:var(--text);font-size:.86rem;font-weight:600}.hint{color:var(--muted);font-size:.8rem;line-height:1.5}.input,.textarea,.select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;padding:.62rem .75rem;font-size:.95rem;line-height:1.5;transition:border-color .15s,box-shadow .15s}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #b65c741f}.textarea{resize:vertical;min-height:8rem}.error{border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);padding:.65rem .8rem;font-size:.88rem}.success{border-radius:var(--radius-sm);background:var(--success-soft);color:var(--success);padding:.65rem .8rem;font-size:.88rem}.badge{border:1px solid var(--border);background:var(--surface);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:.3rem;padding:.12rem .5rem;font-size:.75rem;line-height:1.6;display:inline-flex}.badge-accent{background:var(--accent-soft);color:var(--accent-hover);border-color:#0000}.badge-success{background:var(--success-soft);color:var(--success);border-color:#0000}.badge-muted{background:var(--surface-2);color:var(--muted);border-color:#0000}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.9rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:.75rem .9rem}.table th{background:var(--surface-2);color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;font-weight:650}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#f1eee68c}.prose{max-width:var(--measure);color:#413538;font-size:1.02rem;line-height:2}.prose>*+*{margin-top:1.15em}.prose h1,.prose h2,.prose h3,.prose h4{margin-top:2.1em;margin-bottom:.65em;scroll-margin-top:2rem}.prose h1{font-size:1.85rem}.prose h2{border-bottom:1px solid var(--border);padding-bottom:.35rem;font-size:1.45rem}.prose h3{font-size:1.2rem}.prose p{margin-top:1.15em}.prose a{text-decoration:underline}.prose strong{font-weight:700}.prose ul,.prose ol{margin-top:1.1em;padding-left:1.4em}.prose li+li,.prose li>ul,.prose li>ol{margin-top:.35em}.prose blockquote{border-left:2px solid var(--accent);color:#68545a;background:#f7e3e761;margin:1.6em 0;padding:.45em 1.2em}.prose blockquote p{margin:.6em 0}.prose code{background:var(--surface-2);font-family:var(--font-mono);border-radius:4px;padding:.12em .35em;font-size:.88em}.prose pre{border-radius:var(--radius);color:#f1ede6;background:#201f1d;padding:1rem 1.1rem;font-size:.86rem;line-height:1.65;overflow-x:auto}.prose pre code{color:inherit;font-size:inherit;background:0 0;padding:0}.prose img{border-radius:var(--radius);box-shadow:var(--shadow);margin:1.8em auto;display:block}.prose hr{border:0;border-top:1px solid var(--border);margin:2.4em 0}.prose table{border-collapse:collapse;width:100%;margin:1.6em 0;font-size:.9rem}.prose th,.prose td{border:1px solid var(--border);text-align:left;padding:.55em .75em}.prose th{background:var(--surface-2)}@media (max-width:640px){body{font-size:15.5px}.container{width:min(100% - 1.5rem, var(--page))}.prose{font-size:1rem}}
