:root{--color-bg: #fffdf7;--color-bg-alt: #fbf7ec;--color-surface: #f6efd9;--color-surface-soft: #faf5e6;--color-border: #e7ddc0;--color-border-strong: #d8cba0;--color-text: #211c12;--color-text-secondary: #6d6552;--color-accent: #f0ebc0;--color-accent-strong: #e2d998;--color-pink: #f0cdd8;--color-pink-strong: #e08fab;--color-pink-text: #96395a;--color-danger: #d64545;--color-success: #1f9d55;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 40px;--shadow-subtle: 0 1px 2px rgba(30, 24, 10, .06);--shadow-medium: 0 4px 16px rgba(30, 24, 10, .1);--font-display: "Fraunces", Georgia, serif;--font-body: "Plus Jakarta Sans", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}#root{min-height:100vh}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;margin:0;color:var(--color-text);letter-spacing:-.01em}h1{font-size:40px;line-height:1.1}h2{font-size:28px;line-height:1.2}h3{font-size:20px;line-height:1.3}p{margin:0}a{color:inherit;text-decoration:none}button{font-family:var(--font-body)}img{max-width:100%;display:block}.caption{font-size:14px;color:var(--color-text-secondary)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-pink-strong);outline-offset:2px;border-radius:var(--radius-sm)}.container{width:100%;max-width:1180px;margin:0 auto;padding:0 var(--space-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);border-radius:var(--radius-md);padding:13px 24px;font-size:16px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:transform .15s ease,background .15s ease,border-color .15s ease,opacity .15s ease;min-height:44px;line-height:1}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--color-accent);color:#211c12;border-color:var(--color-border-strong)}.btn-primary:hover{background:var(--color-accent-strong)}.btn-pink{background:var(--color-pink-strong);color:#fff}.btn-pink:hover{background:#d47a99}.btn-secondary{background:var(--color-bg);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover{background:var(--color-surface-soft)}.btn-ghost{background:transparent;color:var(--color-text);border-color:transparent;padding:8px 12px}.btn-ghost:hover{background:var(--color-surface-soft)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(0,0,0,.2);border-top-color:currentColor;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg)}.card-surface{background:var(--color-surface-soft)}.badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:4px 10px;border-radius:999px;font-size:13px;font-weight:600}.badge-neutral{background:var(--color-surface);color:var(--color-text-secondary)}.badge-accent{background:var(--color-accent);color:#4a4322}.badge-pink{background:var(--color-pink);color:var(--color-pink-text)}.field{display:flex;flex-direction:column;gap:var(--space-sm);text-align:left}.field label{font-weight:600;font-size:15px;color:var(--color-text)}.field textarea,.field input{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px 14px;font-size:16px;font-family:var(--font-body);color:var(--color-text);resize:vertical;transition:border-color .15s ease}.field textarea:focus,.field input:focus{border-color:var(--color-pink-strong);outline:none}.field textarea.has-error,.field input.has-error{border-color:var(--color-danger)}.field .error-text{color:var(--color-danger);font-size:14px;font-weight:500}.field .hint{color:var(--color-text-secondary);font-size:14px}.field textarea:disabled,.field input:disabled{background:var(--color-surface);color:var(--color-text-secondary)}.skeleton{background:linear-gradient(90deg,var(--color-surface) 25%,var(--color-surface-soft) 37%,var(--color-surface) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}
