:root{--cream:#FFF9F5;--blush:#F9C9D4;--lav:#D9CCF5;--mint:#C8EBDD;--ink:#2B2627;--amber:#F4C77A;--rose:#C2587A}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'Bricolage Grotesque',sans-serif;
background-image:radial-gradient(circle at 10% 0%,rgba(249,201,212,.55),transparent 40%),radial-gradient(circle at 95% 20%,rgba(200,235,221,.6),transparent 35%),radial-gradient(circle at 50% 100%,rgba(217,204,245,.5),transparent 45%);background-attachment:fixed;min-height:100vh}
.serif{font-family:'DM Serif Display',serif}
.mono{font-family:'IBM Plex Mono',monospace}
.card{background:rgba(255,255,255,.72);backdrop-filter:blur(8px);border:1px solid rgba(43,38,39,.08);border-radius:1.25rem;box-shadow:0 6px 24px -12px rgba(194,88,122,.25)}
.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .65rem;border-radius:999px;font-size:.75rem;font-weight:500;transition:transform .2s}
.chip:hover{animation:wob .4s}
@keyframes wob{0%,100%{transform:rotate(0)}30%{transform:rotate(-4deg)}60%{transform:rotate(3deg)}}
.rise{animation:rise .5s both}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.bubble{position:absolute;bottom:10px;width:8px;height:8px;border-radius:50%;background:#fff;opacity:.8;animation:bub 1.4s infinite ease-in}
@keyframes bub{from{transform:translateY(0);opacity:.9}to{transform:translateY(-40px);opacity:0}}
.btn-main{background:linear-gradient(120deg,var(--rose),#9a6fd6);color:#fff;border-radius:999px;padding:.8rem 1.6rem;font-weight:800;letter-spacing:.02em;box-shadow:0 8px 20px -8px rgba(194,88,122,.7);transition:transform .15s}
.btn-main:hover{transform:translateY(-2px)}
.btn-main:disabled{opacity:.5}
.spark{position:fixed;width:8px;height:8px;border-radius:2px;pointer-events:none;animation:fall 1.3s forwards;z-index:99}
@keyframes fall{to{transform:translateY(90vh) rotate(540deg);opacity:0}}
textarea,input,select{background:rgba(255,255,255,.85)}