:root{
  --cream:#FCEDEE; --plum:#3A1F33; --plum2:#5b3450; --blush:#F4B8C5; --blushD:#E0869A;
  --mint:#BFE8D2; --butter:#FFE39A; --coral:#FF7E6B; --line:#E9D9CC;
}
*{box-sizing:border-box}
body{margin:0;background:var(--cream);color:var(--plum);font-family:'Bricolage Grotesque',sans-serif;
  background-image:radial-gradient(circle at 10% 0%,#f7d3dc 0,transparent 45%),radial-gradient(circle at 100% 30%,#f1dcef 0,transparent 40%),radial-gradient(circle at 50% 100%,#f9dde3 0,transparent 50%),
  repeating-linear-gradient(90deg,transparent 0 38px,rgba(58,31,51,.025) 38px 39px);min-height:100vh}
.serif{font-family:'Fraunces',serif}
.card{background:rgba(255,255,255,.75);border:1px solid var(--line);border-radius:22px;box-shadow:0 6px 24px -14px rgba(58,31,51,.35);backdrop-filter:blur(6px)}
.pill{border-radius:999px;border:1.5px solid var(--plum);padding:.35rem .85rem;font-weight:500;font-size:.85rem;transition:.15s;background:transparent}
.pill:hover{background:rgba(58,31,51,.06)}
.pill.on{background:var(--plum);color:var(--cream)}
.btn{background:var(--plum);color:var(--cream);border-radius:999px;padding:.6rem 1.2rem;font-weight:800;transition:.15s}
.btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px -6px var(--plum)}
.inp{width:100%;border:1.5px solid var(--line);background:#fff;border-radius:14px;padding:.6rem .8rem;outline:none}
.inp:focus{border-color:var(--blushD)}
.rise{animation:rise .5s both}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.pulse{animation:pulse 1.6s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 6px rgba(255,126,107,.18)}}
.wobble{animation:wob 2.2s ease-in-out infinite;transform-origin:bottom center}
@keyframes wob{25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}
.sparkle{position:fixed;pointer-events:none;font-size:22px;animation:spk 1s forwards;z-index:99}
@keyframes spk{to{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.4) rotate(180deg)}}
.shelf{height:14px;background:linear-gradient(#b98a64,#8a5f40);border-radius:4px;box-shadow:0 6px 10px -4px rgba(0,0,0,.35)}
.scrollx{overflow-x:auto;scrollbar-width:thin}
.overlay{background:rgba(58,31,51,.35);backdrop-filter:blur(3px)}