:root{--color-bg: #fafaf8;--color-surface: #ffffff;--color-surface-2: #f4f3f0;--color-border: #e8e6e1;--color-border-light: #f0ede8;--color-text: #1a1916;--color-text-2: #6b6860;--color-text-3: #a09d98;--color-accent: #f472b6;--color-accent-light: #fde8f4;--color-accent-dark: #e91e8c;--color-streak: #e76f51;--color-streak-light: #fdf0ec;--color-danger: #c0392b;--color-danger-light: #fdecea;--color-success: #27ae60;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--shadow-sm: 0 1px 3px rgba(0,0,0,.06);--shadow-md: 0 4px 12px rgba(0,0,0,.08);--shadow-lg: 0 8px 32px rgba(0,0,0,.1);--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-serif: "Georgia", "Times New Roman", serif;--max-w: 680px;--nav-h: 60px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh}a{color:var(--color-accent-dark);text-decoration:none}a:hover{text-decoration:underline;color:var(--color-accent-dark)}img,svg{display:block;max-width:100%}h1{font-size:1.75rem;font-weight:700;line-height:1.25;letter-spacing:-.02em}h2{font-size:1.375rem;font-weight:600;line-height:1.3}h3{font-size:1.125rem;font-weight:600;line-height:1.4}p{line-height:1.7}.container{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 1rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:500;line-height:1;padding:.75rem 1.25rem;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:background .15s,opacity .15s,box-shadow .15s;white-space:nowrap;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--color-accent-dark);color:#fff;font-weight:600}.btn--primary:hover:not(:disabled){background:var(--color-accent);color:#fff}.btn--secondary{background:var(--color-accent-dark);color:#fff;font-weight:600;border-color:transparent}.btn--secondary:hover:not(:disabled){background:var(--color-accent);color:#fff}.btn--ghost{background:var(--color-accent-dark);color:#fff;font-weight:600;border-color:transparent}.btn--ghost:hover:not(:disabled){background:var(--color-accent);color:#fff}.btn--danger{background:var(--color-danger-light);color:var(--color-danger);border-color:transparent}.btn--danger:hover:not(:disabled){background:#f5c6c2}.btn--full{width:100%}.btn--sm{padding:.5rem .875rem;font-size:.875rem}.btn--lg{padding:.875rem 1.5rem;font-size:1rem}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-group label{font-size:.875rem;font-weight:500;color:var(--color-text-2)}.form-control{font-family:var(--font-sans);font-size:1rem;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.75rem 1rem;width:100%;transition:border-color .15s,box-shadow .15s;outline:none}.form-control:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.form-control::placeholder{color:var(--color-text-3)}.form-control.error{border-color:var(--color-danger)}textarea.form-control{resize:vertical;min-height:160px;line-height:1.7;font-family:var(--font-serif);font-size:1.0625rem}.error-msg{font-size:.8125rem;color:var(--color-danger);margin-top:.25rem}.alert{padding:.875rem 1rem;border-radius:var(--radius-md);font-size:.9375rem}.alert--error{background:var(--color-danger-light);color:var(--color-danger)}.alert--success{background:#e8f8ef;color:var(--color-success)}.divider{border:none;border-top:1px solid var(--color-border);margin:1.5rem 0}.text-muted{color:var(--color-text-2)}.text-sm{font-size:.875rem}.text-center{text-align:center}.stack{display:flex;flex-direction:column}.stack--sm{gap:.75rem}.stack--md{gap:1.25rem}.stack--lg{gap:2rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .25s ease forwards}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}
