:root{--color-cinnabar: #b8523a;--color-cinnabar-light: #d4846a;--color-cinnabar-dark: #8b3a2a;--color-cinnabar-bg: rgba(184, 82, 58, .08);--color-ink-green: #2d6a4f;--color-ink-green-light: #52b788;--color-ink-green-dark: #1b4332;--color-ink-green-bg: rgba(45, 106, 79, .08);--color-gold: #d4a574;--color-gold-light: #e8c9a0;--color-gold-dark: #b8864e;--color-gold-bg: rgba(212, 165, 116, .08);--accent: var(--color-cinnabar);--accent-light: var(--color-cinnabar-light);--accent-dark: var(--color-cinnabar-dark);--accent-bg: var(--color-cinnabar-bg);--secondary: var(--color-ink-green);--color-bg-primary: #faf9f7;--color-bg-secondary: #f5f3f0;--color-bg-card: #ffffff;--color-bg-dark: #1a1a1f;--color-text-primary: #1a1a1f;--color-text-secondary: #6b6560;--color-text-muted: #9a9590;--color-border: #e8e4df;--color-border-light: #f0ece7;--color-success: #5d9a6b;--color-success-bg: rgba(93, 154, 107, .1);--color-error: #c75d5d;--color-error-bg: rgba(199, 93, 93, .1);--color-warning: #d4a574;--color-warning-bg: rgba(212, 165, 116, .1);--shadow-xs: 0 1px 2px rgba(26, 26, 31, .04);--shadow-sm: 0 2px 4px rgba(26, 26, 31, .06);--shadow-md: 0 4px 8px rgba(26, 26, 31, .08);--shadow-lg: 0 8px 16px rgba(26, 26, 31, .1);--shadow-xl: 0 12px 24px rgba(26, 26, 31, .12);--shadow-2xl: 0 20px 40px rgba(26, 26, 31, .15);--shadow: var(--shadow-sm);--shadow-lg: var(--shadow-lg);--font-sans: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "Playfair Display", Georgia, "Times New Roman", serif;--font-chinese: "Noto Serif SC", "Source Han Serif SC", "STSong", serif;--font-mono: "IBM Plex Mono", "Fira Code", "Consolas", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--font-light: 300;--font-regular: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--radius-none: 0;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--radius-2xl: 32px;--radius-full: 9999px;--radius-sm: var(--radius-sm);--radius-md: var(--radius-md);--radius-lg: var(--radius-lg);--radius-xl: var(--radius-xl);--z-base: 1;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-toast: 700;--z-tooltip: 800;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1);--transition-slower: .5s cubic-bezier(.4, 0, .2, 1);--header-height: 56px;--max-width-mobile: 480px;--max-width-tablet: 768px;--max-width-desktop: 1100px}[data-theme=dark]{--color-bg-primary: #1a1a1f;--color-bg-secondary: #252530;--color-bg-card: #2d2d38;--color-bg-dark: #0f0f12;--color-text-primary: #e8e6e3;--color-text-secondary: #a8a4a0;--color-text-muted: #6b6560;--color-border: #404050;--color-border-light: #353540;--color-cinnabar-bg: rgba(184, 82, 58, .15);--color-ink-green-bg: rgba(45, 106, 79, .15);--color-gold-bg: rgba(212, 165, 116, .15);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .2);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .3);--shadow-md: 0 4px 8px rgba(0, 0, 0, .35);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .4);--shadow-xl: 0 12px 24px rgba(0, 0, 0, .45);--shadow-2xl: 0 20px 40px rgba(0, 0, 0, .5)}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-regular);line-height:var(--leading-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary);min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:var(--font-semibold);line-height:var(--leading-tight);letter-spacing:-.02em;text-wrap:balance}h1{font-size:var(--text-4xl);font-family:var(--font-display)}h2{font-size:var(--text-3xl);font-family:var(--font-display)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base)}[data-lang=zh] h1,[data-lang=zh] h2,[data-lang=zh] h3{font-family:var(--font-chinese);letter-spacing:.02em}p{line-height:var(--leading-relaxed);text-wrap:pretty}:focus-visible{outline:2px solid var(--color-cinnabar);outline-offset:2px}button:focus-visible,a:focus-visible{outline:2px solid var(--color-cinnabar);outline-offset:2px;border-radius:var(--radius-sm)}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none;border-color:var(--color-cinnabar);box-shadow:0 0 0 3px var(--color-cinnabar-bg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border:none;border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-base);font-weight:var(--font-medium);line-height:1;cursor:pointer;transition:background-color var(--transition-base),color var(--transition-base),transform var(--transition-base),box-shadow var(--transition-base);text-decoration:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--color-cinnabar);color:#fff;box-shadow:var(--shadow-md)}.btn-primary:hover{background:var(--color-cinnabar-dark);box-shadow:var(--shadow-lg);transform:translateY(-1px)}.btn-secondary{background:var(--color-bg-card);color:var(--color-text-primary);border:1.5px solid var(--color-border);box-shadow:var(--shadow-xs)}.btn-secondary:hover{background:var(--color-bg-secondary);border-color:var(--color-cinnabar-light);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover{background:var(--color-cinnabar-bg);color:var(--color-cinnabar)}.card{background:var(--color-bg-card);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base),transform var(--transition-base),border-color var(--transition-base)}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.input{width:100%;padding:var(--space-3) var(--space-4);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-primary);background:var(--color-bg-card);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.input::placeholder{color:var(--color-text-muted)}.input:hover{border-color:var(--color-cinnabar-light)}.input:focus{outline:none;border-color:var(--color-cinnabar);box-shadow:0 0 0 3px var(--color-cinnabar-bg)}.input:disabled{background:var(--color-bg-secondary);cursor:not-allowed;opacity:.6}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.text-left{text-align:left}.text-right{text-align:right}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted)}.text-accent{color:var(--color-cinnabar)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.font-light{font-weight:var(--font-light)}.font-regular{font-weight:var(--font-regular)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}button,a,[role=button],input[type=button],input[type=submit]{touch-action:manipulation;-webkit-tap-highlight-color:rgba(184,82,58,.2)}.modal,.drawer,.sheet{overscroll-behavior:contain}.dragging{user-select:none;-webkit-user-select:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideInDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes ripple{0%{transform:scale(0);opacity:1}to{transform:scale(4);opacity:0}}@keyframes typewriter{0%{width:0}to{width:100%}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes typing{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-8px)}}@keyframes progress{0%{width:0}to{width:100%}}@keyframes orbit{0%{transform:rotate(0) translate(20px) rotate(0)}to{transform:rotate(360deg) translate(20px) rotate(-360deg)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}@keyframes tada{0%{transform:scale(1) rotate(0)}10%,20%{transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{transform:scale(1.1) rotate(3deg)}40%,60%,80%{transform:scale(1.1) rotate(-3deg)}to{transform:scale(1) rotate(0)}}@keyframes heartbeat{0%,to{transform:scale(1)}14%{transform:scale(1.3)}28%{transform:scale(1)}42%{transform:scale(1.3)}70%{transform:scale(1)}}.animate-fade-in{animation:fadeIn .4s ease forwards}.animate-fade-in-up{animation:fadeInUp .5s ease forwards}.animate-fade-in-down{animation:fadeInDown .4s ease forwards}.animate-fade-in-left{animation:fadeInLeft .4s ease forwards}.animate-fade-in-right{animation:fadeInRight .4s ease forwards}.animate-scale-in{animation:scaleIn .3s ease forwards}.animate-slide-in-up{animation:slideInUp .4s cubic-bezier(.4,0,.2,1) forwards}.animate-slide-in-down{animation:slideInDown .4s cubic-bezier(.4,0,.2,1) forwards}.stagger-1{animation-delay:.05s}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}.stagger-6{animation-delay:.3s}.stagger-7{animation-delay:.35s}.stagger-8{animation-delay:.4s}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-bounce{animation:bounce 1s ease infinite}.animate-spin{animation:spin 1s linear infinite}.animate-shimmer{background:linear-gradient(90deg,var(--color-bg-secondary) 25%,var(--color-bg-card) 50%,var(--color-bg-secondary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.animate-shake{animation:shake .5s ease}.animate-tada{animation:tada .8s ease}.animate-heartbeat{animation:heartbeat 1.5s ease infinite}.animate-typing span{display:inline-block;animation:typing 1.4s infinite}.animate-typing span:nth-child(2){animation-delay:.2s}.animate-typing span:nth-child(3){animation-delay:.4s}.hover-lift{transition:transform var(--transition-base)}.hover-lift:hover{transform:translateY(-4px)}.hover-scale{transition:transform var(--transition-base)}.hover-scale:hover{transform:scale(1.05)}.hover-glow{transition:box-shadow var(--transition-base)}.hover-glow:hover{box-shadow:var(--shadow-lg)}.transition-fast{transition:transform var(--transition-fast),opacity var(--transition-fast)}.transition-base{transition:background-color var(--transition-base),color var(--transition-base),transform var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base)}.transition-slow{transition:transform var(--transition-slow),opacity var(--transition-slow),box-shadow var(--transition-slow)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.animate-fade-in,.animate-fade-in-up,.animate-fade-in-down,.animate-fade-in-left,.animate-fade-in-right,.animate-scale-in,.animate-slide-in-up,.animate-slide-in-down,.animate-pulse,.animate-bounce,.animate-spin,.animate-shimmer,.animate-shake,.animate-tada,.animate-heartbeat{animation:none!important;opacity:1!important;transform:none!important}.hover-lift:hover,.hover-scale:hover{transform:none!important}.transition-fast,.transition-base,.transition-slow{transition-duration:.01ms!important}}.page-enter{animation:fadeInUp .4s ease forwards}.page-leave{animation:fadeIn .2s ease reverse forwards}.modal-enter{animation:scaleIn .3s cubic-bezier(.34,1.56,.64,1) forwards}.modal-backdrop-enter{animation:fadeIn .2s ease forwards}.toast-enter{animation:slideInUp .4s cubic-bezier(.4,0,.2,1) forwards}.toast-leave{animation:fadeIn .2s ease reverse forwards}.reveal{opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-left{opacity:0;transform:translate(-30px);transition:opacity .6s ease,transform .6s ease}.reveal-left.visible{opacity:1;transform:translate(0)}.reveal-right{opacity:0;transform:translate(30px);transition:opacity .6s ease,transform .6s ease}.reveal-right.visible{opacity:1;transform:translate(0)}@media (prefers-reduced-motion: reduce){.reveal,.reveal-left,.reveal-right{opacity:1!important;transform:none!important}}:root{--bg-primary: #faf9f7;--bg-secondary: #f5f3f0;--bg-card: #ffffff;--bg-dark: #1a1a1f;--text-primary: #1a1a1f;--text-secondary: #6b6560;--text-muted: #9a9590;--accent: #c17f59;--accent-light: #e8c4a8;--accent-dark: #8b5a3c;--accent-bg: #faf5f0;--border: #e8e4df;--border-light: #f0ece7;--shadow: rgba(26, 26, 31, .06);--shadow-lg: rgba(26, 26, 31, .1);--success: #5d9a6b;--error: #c75d5d;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-serif: "Cormorant Garamond", "Noto Serif SC", Georgia, serif;--font-chinese: "Noto Serif SC", "Cormorant Garamond", serif;--header-height: 56px}[data-theme=dark]{--bg-primary: #1a1a1f;--bg-secondary: #252530;--bg-card: #2d2d38;--bg-dark: #0f0f12;--text-primary: #e8e6e3;--text-secondary: #a8a4a0;--text-muted: #6b6560;--accent: #d4956a;--accent-light: #8b5a3c;--accent-bg: #3d3528;--border: #404050;--border-light: #353540;--shadow: rgba(0, 0, 0, .3);--shadow-lg: rgba(0, 0, 0, .4)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;height:100%}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;height:100%;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto}.serif{font-family:var(--font-serif)}.chinese{font-family:var(--font-chinese)}.page-container{max-width:480px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;background:var(--bg-primary);position:relative}.page-content{flex:1;padding:1.25rem;padding-top:0;padding-bottom:calc(1.25rem + env(safe-area-inset-bottom,0px))}@media (min-width: 768px){.page-container{max-width:900px}}@media (min-width: 1024px){.page-container{max-width:1100px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem 1.5rem;border:none;border-radius:var(--radius-md);font-size:.95rem;font-weight:500;font-family:inherit;cursor:pointer;transition:background-color .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark);box-shadow:0 4px 20px #c17f594d}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border)}.input-group{margin-bottom:1.25rem}.input-group label{display:block;font-size:.85rem;font-weight:500;color:var(--text-secondary);margin-bottom:.5rem}.input-group input{width:100%;padding:.875rem 1rem;border:1px solid var(--border);border-radius:var(--radius-md);font-size:.95rem;font-family:inherit;background:var(--bg-primary);transition:border-color .2s ease,box-shadow .2s ease;color:var(--text-primary)}.input-group input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.input-group input::placeholder{color:var(--text-muted)}.input-hint{font-size:.75rem;color:var(--text-muted);margin-top:.5rem}.toggle-switch{position:relative;width:48px;height:26px;background:var(--border);border-radius:13px;cursor:pointer;transition:background-color .3s ease}.toggle-switch.active{background:var(--accent)}.toggle-switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:50%;transition:left .3s ease}.toggle-switch.active:after{left:25px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:0 2px 12px var(--shadow)}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .4s ease forwards}.toast{position:fixed;bottom:6rem;left:50%;transform:translate(-50%) translateY(100px);background:var(--text-primary);color:#fff;padding:.875rem 1.25rem;border-radius:var(--radius-md);font-size:.85rem;opacity:0;transition:transform .3s ease,opacity .3s ease;z-index:200}@supports (padding-bottom: env(safe-area-inset-bottom)){.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom)}}#app{min-height:100vh;display:flex;flex-direction:column}.page-content{flex:1;max-width:800px;margin:0 auto;width:100%;padding:1.25rem}.toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%) translateY(100px);padding:.75rem 1.5rem;border-radius:8px;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);box-shadow:0 4px 12px #00000026;font-size:.9rem;z-index:10000;max-width:90%;text-align:center;opacity:0;transition:transform .3s ease,opacity .3s ease}.toast.show{transform:translate(-50%) translateY(0);opacity:1}.loading-spinner{display:inline-block;width:24px;height:24px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.text-center{text-align:center}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}@media (max-width: 640px){.page-content{padding:1rem}}
