@import "https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;600&display=swap";
:root{--color-ink:#1a1a1a;--color-ink-light:#3d3d3d;--color-paper:#f8f6f1;--color-paper-warm:#f5f2eb;--color-paper-cream:#ebe7dc;--color-vermilion:#c94a3a;--color-vermilion-light:#e8675a;--color-gold:#b8860b;--color-jade:#5a8f7b;--color-bg:#f8f6f1;--color-surface:#fff;--color-text-primary:#1a1a1a;--color-text-secondary:#666;--color-text-light:#999;--color-text-muted:#b3b3b3;--color-border:#e8e4dc;--color-border-light:#f0ece4;--color-error:#c94a3a;--color-success:#5a8f7b;--color-primary:#1a1a1a;--color-primary-dark:#000;--color-secondary:#f5f2eb;--color-accent:#c94a3a;--font-serif:"Noto Serif SC","Songti SC","SimSun",serif;--font-sans:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;--font-display:"Noto Serif SC",serif;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2.5rem;--space-2xl:4rem;--space-3xl:6rem;--rounded-sm:4px;--rounded-md:8px;--rounded-lg:12px;--rounded-xl:16px;--rounded-full:9999px;--shadow-paper:0 1px 3px #0000000a,0 1px 2px #00000008;--shadow-card:0 2px 8px #0000000f,0 1px 2px #0000000a;--shadow-elevated:0 8px 24px #00000014,0 2px 8px #0000000a;--shadow-float:0 16px 48px #0000001f,0 4px 12px #0000000f;--shadow-sm:var(--shadow-paper);--shadow-md:var(--shadow-card);--shadow-lg:var(--shadow-elevated);--transition-fast:.15s cubic-bezier(.4,0,.2,1);--transition-base:.25s cubic-bezier(.4,0,.2,1);--transition-slow:.4s cubic-bezier(.4,0,.2,1);--transition-spring:.5s cubic-bezier(.34,1.56,.64,1)}@media (prefers-color-scheme:dark){:root:not(.light-mode){--color-ink:#e8e4dc;--color-ink-light:#b3b3b3;--color-paper:#1a1a1a;--color-paper-warm:#222;--color-paper-cream:#2a2a2a;--color-vermilion:#e8675a;--color-vermilion-light:#f08070;--color-bg:#121212;--color-surface:#1e1e1e;--color-text-primary:#f0ece4;--color-text-secondary:#a0a0a0;--color-text-light:#666;--color-text-muted:#4d4d4d;--color-border:#2d2d2d;--color-border-light:#252525;--color-primary:#f0ece4;--color-primary-dark:#fff;--color-secondary:#2a2a2a;--color-accent:#e8675a}}:root.dark-mode{--color-ink:#e8e4dc;--color-ink-light:#b3b3b3;--color-paper:#1a1a1a;--color-paper-warm:#222;--color-paper-cream:#2a2a2a;--color-vermilion:#e8675a;--color-vermilion-light:#f08070;--color-bg:#1a1816;--color-surface:#242220;--color-text-primary:#e8e4dc;--color-text-secondary:#a8a4a0;--color-text-light:#706c68;--color-text-muted:#504c48;--color-border:#3a3836;--color-border-light:#2e2c2a;--color-primary:#e8e4dc;--color-primary-dark:#fff;--color-secondary:#2e2c2a;--color-accent:#e8675a;--shadow-paper:0 1px 3px #0003,0 1px 2px #00000026;--shadow-card:0 2px 8px #00000040,0 1px 2px #0003;--shadow-elevated:0 8px 24px #0000004d,0 2px 8px #0003;--shadow-float:0 16px 48px #0006,0 4px 12px #00000040}:root.dark-mode body{background-image:none}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}html,body{max-width:100vw;height:100%;overflow-x:hidden}body{background-color:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:.01em;background-image:radial-gradient(circle at 20%,#fffaf066 0%,#0000 50%),radial-gradient(circle at 80%,#fff8eb4d 0%,#0000 50%);font-weight:400;line-height:1.7}a{color:inherit;transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-accent)}button{cursor:pointer;background:0 0;border:none;font-family:inherit}.container{width:100%;max-width:1120px;padding:0 var(--space-lg);margin:0 auto}@media (max-width:640px){.container{padding:0 var(--space-md)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-light)}::selection{background:var(--color-vermilion);color:#fff}:focus-visible{outline:2px solid var(--color-vermilion);outline-offset:2px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes brushStroke{0%{opacity:0;width:0}50%{opacity:1}to{opacity:1;width:100%}}.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}
