:root{--cream:#FBF8F3;--sage:#6B9E78;--sage-d:#3F6B4C;--lav:#B7A6D9;--coral:#E8735A;--ink:#2B2A26;--amber:#E0A23B}
body{background:var(--cream);color:var(--ink);font-family:'Atkinson Hyperlegible',sans-serif;font-size:16px;
background-image:radial-gradient(circle at 10% 0%,#e7f0e3 0,transparent 40%),radial-gradient(circle at 100% 100%,#ece6f7 0,transparent 40%),repeating-linear-gradient(45deg,rgba(107,158,120,.03) 0 2px,transparent 2px 14px);background-attachment:fixed}
body.big{font-size:19px}
.serif{font-family:'Fraunces',serif}
.mono{font-family:'IBM Plex Mono',monospace}
.card{background:#fff;border-radius:1.25rem;box-shadow:0 2px 0 rgba(43,42,38,.06),0 10px 30px -18px rgba(43,42,38,.35);border:1px solid #efe9df;transition:transform .2s,box-shadow .2s}
.lift:hover{transform:translateY(-3px);box-shadow:0 14px 30px -14px rgba(63,107,76,.45)}
.btn{background:var(--sage);color:#fff;border-radius:999px;padding:.5rem 1rem;font-weight:700;transition:.15s}
.btn:hover{background:var(--sage-d)}
.btn-ghost{border:1.5px solid var(--sage);color:var(--sage-d);border-radius:999px;padding:.45rem 1rem;font-weight:700}
.btn-danger{background:var(--coral);color:#fff;border-radius:999px;padding:.5rem 1rem;font-weight:700}
.inp{border:1.5px solid #e2dbcf;border-radius:.8rem;padding:.55rem .8rem;background:#fffdf9;width:100%}
.inp:focus{outline:none;border-color:var(--sage)}
.pulse{animation:pulse 1.8s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(107,158,120,.7)}70%{box-shadow:0 0 0 10px rgba(107,158,120,0)}100%{box-shadow:0 0 0 0 rgba(107,158,120,0)}}
.fade{animation:fade .45s both}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.flush{animation:flush .8s}
@keyframes flush{0%{transform:scale(1)}50%{transform:scale(1.08);background:#dff0e2}100%{transform:scale(1)}}
.navbtn.active{background:var(--sage);color:#fff}
.chip{border-radius:999px;padding:.15rem .6rem;font-size:.8em;font-weight:700}