:root{--color-bg:#fffaf0;--color-surface:#ffffff;--color-text:#1f2a44;--color-muted:#4a5568;--color-primary:#2b5fa8;--color-primary-contrast:#ffffff;--color-accent:#b8860b;--color-focus:#ffbf47;--color-border:#d6cfc0;--color-danger:#a12622;--radius:14px;--space-1:0.25rem;--space-2:0.5rem;--space-3:1rem;--space-4:1.5rem;--space-5:2.5rem;--font-body:"Nunito",system-ui,-apple-system,"Segoe UI",sans-serif;--font-size:1.125rem;--target:44px}@media (prefers-color-scheme:dark){:root{--color-bg:#121826;--color-surface:#1b2438;--color-text:#f4efe3;--color-muted:#c2c9d6;--color-primary:#8db8f5;--color-primary-contrast:#0f1a30;--color-accent:#e6c35c;--color-border:#34405a;--color-danger:#ff9a94}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;color-scheme:light dark}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--font-size);line-height:1.6}main{max-width:42rem;margin:0 auto;padding:var(--space-3)}h1,h2,h3{line-height:1.25}a{color:var(--color-primary)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.btn{min-height:var(--target);min-width:var(--target);padding:var(--space-2) var(--space-4);border-radius:var(--radius);border:2px solid var(--color-primary);background:var(--color-primary);color:var(--color-primary-contrast);font:inherit;font-weight:700;cursor:pointer}.btn--secondary{background:transparent;color:var(--color-primary)}.btn--danger{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-primary-contrast)}.btn[disabled]{opacity:.55;cursor:not-allowed}.card{color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-3)}.field{display:grid;gap:var(--space-1);margin-block:var(--space-3)}.field input,.field select{min-height:var(--target);padding:var(--space-2) var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius);font:inherit;background:var(--color-surface);color:var(--color-text)}.field__error{color:var(--color-danger);font-weight:700}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.celebrate{animation:pop .6s ease-out}@keyframes pop{0%{transform:scale(.96);opacity:.6}to{transform:scale(1);opacity:1}}