:root{--ink:#262A43;--muted:#7A84A6;--border:#ECEAF4;--pink:#F0609E;}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;font-family:'Plus Jakarta Sans',sans-serif;color:var(--ink);min-height:100%;
background:linear-gradient(160deg,#FFEAF4 0%,#FBF9FD 45%,#EEF3FF 100%) fixed,#FBF9FD}
.bg-blob{position:fixed;width:340px;height:340px;border-radius:50%;filter:blur(70px);opacity:.45;z-index:0;pointer-events:none}
.b1{background:#FFC2DD;top:-90px;left:-80px}.b2{background:#D9D2FF;bottom:-100px;right:-90px}
#root{position:relative;z-index:1}
.card{background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:0 6px 22px -12px rgba(120,90,160,.25)}
.btn{transition:transform .12s,background .2s,opacity .2s;min-height:44px}
.btn:active:not(:disabled){transform:scale(.96)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.inp{width:100%;border:1px solid var(--border);border-radius:12px;padding:11px 13px;background:#fff;font-size:14px;outline:none;min-height:44px;color:var(--ink)}
.inp:focus{border-color:#F6CFE1;box-shadow:0 0 0 3px #FFE0EE}
.fade{animation:fadeUp .35s ease both}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.sheet{animation:sheetUp .3s cubic-bezier(.2,.9,.3,1) both}
@keyframes sheetUp{from{transform:translateY(100%)}to{transform:none}}
.bob{animation:bob 2.6s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.bar{animation:bar 1.8s ease forwards}@keyframes bar{from{width:0}to{width:100%}}
.conf{position:fixed;top:-20px;width:9px;height:14px;border-radius:2px;animation:fall 2.8s linear forwards;z-index:90}
@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}
.pulse{animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{transform:scale(1.06)}}
.noscroll::-webkit-scrollbar{display:none}