:root{--color-moss:#2d5a27;--color-accent:#7ab648;--color-charcoal:#1a1a1a;--color-cream:#f5f0e8;--color-surface:#f4f1ea;--color-surface-2:#fff;--color-border:rgba(45,90,39,.12);--color-muted:hsla(37,39%,94%,.68);--color-muted-dark:#61705f;--color-danger:#c44b4b;--font-display:"Fraunces",serif;--font-body:"DM Sans",sans-serif}html{scroll-behavior:smooth}*{box-sizing:border-box}body{background:linear-gradient(180deg,#f6f1e9,#eef3e8);color:var(--color-charcoal);font-family:var(--font-body);margin:0;min-width:320px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#app{min-height:100vh}img{display:block;max-width:100%}a{color:inherit}button,input,select,textarea{font:inherit}button{border:none;cursor:pointer;transition:transform .2s ease,background .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}button:hover:not(:disabled){transform:translateY(-1px)}button:disabled{cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,#9ad76a,var(--color-accent));box-shadow:0 16px 30px #7ab64840;color:#101210;font-weight:800}.btn-primary:hover:not(:disabled){box-shadow:0 18px 34px #7ab64852}.btn-ghost{background:#ffffffd1;border:1px solid var(--color-border);color:var(--color-charcoal);font-weight:700}.btn-ghost:hover:not(:disabled){background:#7ab64814}.badge{align-items:center;background:#101210e0;border-radius:999px;color:var(--color-cream);display:inline-flex;font-size:.72rem;font-weight:800;height:22px;justify-content:center;min-width:22px;padding-inline:6px}
