:root{--brand-primary:#c2185b;--brand-light:#f8bbd0;--brand-soft:#fce4ec;--brand-pale:#fff0f5;--brand-deep:#880e4f;--neutral-50:#fdfaf8;--neutral-100:#f7f0ec;--neutral-200:#ede3dc;--neutral-300:#d9cbbf;--neutral-400:#b8a89a;--neutral-500:#8c7b6e;--neutral-600:#6b5c52;--neutral-700:#4a3d36;--neutral-800:#2e2420;--neutral-900:#1a120e;--bg-page:#fdf8f5;--bg-surface:#fff;--bg-subtle:#fff5f0;--bg-muted:#f7f0ec;--text-primary:#2e2420;--text-secondary:#6b5c52;--text-muted:#8c7b6e;--text-hint:#b8a89a;--border-soft:#ede3dc;--border-medium:#d9cbbf;--border-brand:#f8bbd0;--tag-support-bg:#ede7f6;--tag-support-text:#4527a0;--tag-support-border:#b39ddb;--tag-celebrate-bg:#fff8e1;--tag-celebrate-text:#e65100;--tag-celebrate-border:#ffcc80;--tag-feedback-bg:#e8f5e9;--tag-feedback-text:#1b5e20;--tag-feedback-border:#a5d6a7;--tag-share-bg:#e3f2fd;--tag-share-text:#0d47a1;--tag-share-border:#90caf9;--font-display:"Playfair Display",Georgia,serif;--font-body:"DM Sans",system-ui,sans-serif;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--shadow-sm:0 1px 3px #2e24200f,0 1px 2px #2e24200a;--shadow-md:0 4px 12px #2e242014,0 2px 4px #2e24200a;--shadow-lg:0 8px 24px #2e24201a,0 4px 8px #2e24200f;--shadow-brand:0 4px 16px #c2185b33}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-body);background-color:var(--bg-page);color:var(--text-primary);min-height:100vh;line-height:1.6}h1,h2,h3{font-family:var(--font-display);color:var(--text-primary);font-weight:400;line-height:1.2}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-muted)}::-webkit-scrollbar-thumb{background:var(--neutral-300);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--neutral-400)}:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px;border-radius:var(--radius-sm)}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-up{animation:.4s forwards fadeUp}.animate-fade-in{animation:.3s forwards fadeIn}.card{background:var(--bg-surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card:hover{box-shadow:var(--shadow-md);transition:box-shadow .2s}.btn-primary{background:var(--brand-primary);color:#fff;border-radius:var(--radius-md);font-family:var(--font-body);cursor:pointer;box-shadow:var(--shadow-brand);border:none;padding:10px 20px;font-size:14px;font-weight:500;transition:background .2s,box-shadow .2s,transform .1s}.btn-primary:hover{background:var(--brand-deep);transform:translateY(-1px);box-shadow:0 6px 20px #c2185b4d}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{background:var(--neutral-300);box-shadow:none;cursor:not-allowed;transform:none}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border-soft);border-radius:var(--radius-md);font-family:var(--font-body);cursor:pointer;background:0 0;padding:8px 14px;font-size:13px;font-weight:400;transition:all .2s}.btn-ghost:hover{background:var(--bg-muted);border-color:var(--border-medium);color:var(--text-primary)}.input{border:1px solid var(--border-soft);border-radius:var(--radius-md);width:100%;font-family:var(--font-body);color:var(--text-primary);background:var(--bg-surface);outline:none;padding:11px 14px;font-size:14px;transition:border-color .2s,box-shadow .2s}.input::placeholder{color:var(--text-hint)}.input:focus{border-color:var(--brand-primary);box-shadow:0 0 0 3px #c2185b14}.page-bg{background:var(--bg-page);background-image:radial-gradient(at 20% 0,#f8bbd040 0%,#0000 60%),radial-gradient(at 80% 100%,#fce4ec33 0%,#0000 60%);min-height:100vh}@media (max-width:640px){.card{border-radius:var(--radius-md)}input,textarea,select{font-size:16px!important}.btn-primary-full{width:100%}}button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.scroll-x{-webkit-overflow-scrolling:touch;scrollbar-width:none;overflow-x:auto}.scroll-x::-webkit-scrollbar{display:none}
