:root{--color-primary:#1a1a2e;--color-secondary:#2d4a6b;--color-accent:#4a7fa5;--color-accent-warm:#c4773a;--color-bg:#f7f6f3;--color-surface:#fff;--color-border:#e2ded8;--color-muted:#8a8680;--score-low:#6baf8e;--score-mid:#4a7fa5;--score-high:#c4773a;--score-very-high:#a63d2f;--score-extreme:#6b1a1a;--space-1:8px;--space-2:16px;--space-3:24px;--space-4:32px;--space-6:48px;--space-8:64px;--radius-sm:2px;--radius-md:4px;--radius-lg:8px;--shadow:0 1px 4px rgba(0,0,0,.08);--font-serif:"Noto Serif SC",serif;--font-sans:"Noto Sans SC",sans-serif;--font-display:"Playfair Display",serif;--font-body:"Inter",sans-serif;--font-mono:"JetBrains Mono",monospace;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.75rem;--text-3xl:2.5rem;--text-score:4rem}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-primary);line-height:1.8;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:600;line-height:1.3}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer;border:none;background:none}input,select,textarea{font-family:inherit;font-size:inherit}.container{max-width:760px;margin:0 auto;padding:0 var(--space-2)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:500;transition:all .12s ease}.btn-primary{background-color:var(--color-accent);color:#fff}.btn-primary:hover{background-color:var(--color-secondary)}.btn-secondary{background-color:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-border)}.btn-secondary:hover{border-color:var(--color-accent)}.card{background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:var(--space-4)}.page-enter{opacity:0;transform:translateY(8px)}.page-enter-active{transition:all .2s ease-out;opacity:1;transform:translateY(0)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .3s ease-out forwards}.stagger-1{animation-delay:50ms}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}@media (max-width:640px){:root{--text-3xl:2rem;--text-score:3rem}.container{padding:0 var(--space-2)}}