/* Gift Finder Club — shared look. Evergreen, cream and berry. */
:root{
  --pine:#123d2c; --pine-deep:#0b2a1e; --pine-soft:#1d5440;
  --cream:#f6f0e1; --paper:#fffdf7; --ink:#22301f; --muted:#6b6a55; --line:#e2d8bf;
  --berry:#d8352a; --berry-deep:#b3271e; --gold:#f2c14e; --frost:#f0e9d6; --frost-muted:rgba(240,233,214,.74); --pine-line:rgba(240,233,214,.28);
  --need:#2f6f8f; --want:#b3271e; --ok:#2d6a3e;
  --display:"Bricolage Grotesque","Avenir Next","Segoe UI",system-ui,sans-serif;
  --body:"Figtree","Helvetica Neue","Segoe UI",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--body);font-size:16px;line-height:1.5;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
h1,h2,h3{font-family:var(--display);line-height:1.08;margin:0;text-wrap:balance;letter-spacing:-.01em}
a{color:inherit}
button,input,select,textarea{font:inherit}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:15px;border-radius:999px;padding:11px 20px;cursor:pointer;border:1.5px solid var(--berry);background:var(--berry);color:#fff;text-decoration:none;transition:background .15s ease,border-color .15s ease}
.btn:hover{background:var(--berry-deep);border-color:var(--berry-deep)}
.btn:disabled{opacity:.6;cursor:default}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn.ghost:hover{border-color:var(--muted)}
.btn.small{font-size:13px;padding:7px 14px}
.tag{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:2px 8px;border:1.5px solid currentColor;white-space:nowrap}
.tag.want{color:var(--want)} .tag.need{color:var(--need)}
.snow{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.snow i{position:absolute;top:-10px;border-radius:50%;background:var(--frost);animation:fall linear infinite}
@keyframes fall{to{transform:translate3d(30px,110vh,0)}}
@media (prefers-reduced-motion:reduce){.snow{display:none}*{transition:none!important;animation:none!important}}
