:root{--r:22px;--font:"Inter","Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--serif:"Fraunces",Georgia,"Times New Roman",serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);line-height:1.65;transition:background .3s,color .3s}
a{color:inherit}img{max-width:100%}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:8px}
.container{width:min(1200px,92%);margin:auto}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.4rem;border-radius:999px;border:0;font:600 1rem var(--font);cursor:pointer;text-decoration:none;background:var(--primary);color:var(--on-primary);transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.btn.ghost{background:transparent;color:inherit;border:1.5px solid currentColor}.btn.coral{background:var(--accent);color:var(--on-accent)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.chip{display:inline-block;padding:.3rem .8rem;border-radius:999px;background:color-mix(in srgb,var(--primary) 14%,transparent);color:var(--primary-ink);font-size:.82rem;font-weight:600;border:0;cursor:pointer;font-family:var(--font)}
.chip[aria-pressed=true]{background:var(--primary);color:var(--on-primary)}
.icon-btn{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--text);cursor:pointer;display:grid;place-items:center}
.err{color:#dc2626;font-weight:600}[data-theme=dark] .err{color:#f87171}
.field-validation-error{color:#dc2626;font-size:.85rem;font-weight:500}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
