:root{--strong:#D84F78;--pink:#E889A8;--rose:#C95F83;--soft:#FBE8EF;--blush:#FFF4F7;--warm:#FFFBFC;--text:#33272D;--sub:#796A71;--border:#F0DCE3;--ok:#397A5B;--warn:#94601A;--danger:#B4233D}
*{box-sizing:border-box}
body{margin:0;font-family:'Inter','Plus Jakarta Sans',sans-serif;color:var(--text);background:radial-gradient(circle at 15% 0%,#FBE8EF 0,transparent 45%),radial-gradient(circle at 100% 100%,#FFF4F7 0,transparent 50%),#fff;min-height:100vh;line-height:1.6}
.serif{font-family:'Fraunces',serif}
.shell{max-width:440px;margin:0 auto;min-height:100vh;background:#fff;position:relative;box-shadow:0 0 60px rgba(201,95,131,.08);display:flex;flex-direction:column}
.btn{min-height:50px;border-radius:16px;font-weight:600;font-size:16px;transition:all .2s;width:100%;padding:0 20px}
.btn-p{background:var(--rose);color:#fff}.btn-p:hover{background:#b8506f}.btn-p:disabled{opacity:.45}
.btn-o{background:#fff;color:var(--rose);border:1.5px solid var(--pink)}.btn-o:hover{background:var(--blush)}
.card{border:1px solid var(--border);border-radius:20px;background:#fff}
.opt{border:1.5px solid var(--border);border-radius:18px;background:#fff;transition:all .2s;text-align:left}
.opt.on{background:var(--soft);border-color:var(--pink);color:var(--rose)}
.chip{border:1.5px solid var(--border);border-radius:999px;padding:8px 16px;font-size:14px;background:#fff;transition:all .2s}
.chip:hover{border-color:var(--pink)}.chip.on{background:var(--soft);border-color:var(--pink);color:var(--rose)}
.inp{width:100%;border:1.5px solid var(--border);border-radius:14px;padding:12px 14px;font-size:16px;background:#fff;outline:none;font-family:inherit;color:var(--text)}
.inp:focus{border-color:var(--pink);box-shadow:0 0 0 4px rgba(232,137,168,.18)}
.sub{color:var(--sub)}
.fade{animation:fade .45s ease both}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.dot{width:7px;height:7px;border-radius:50%;background:var(--pink);display:inline-block;animation:pulse 1.2s infinite}
.dot:nth-child(2){animation-delay:.2s}.dot:nth-child(3){animation-delay:.4s}
@keyframes pulse{0%,100%{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}
.breathe{animation:br 5s ease-in-out infinite}
@keyframes br{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
.btn-sos{background:linear-gradient(135deg,#E889A8,#D84F78);color:#fff;box-shadow:0 8px 20px rgba(216,79,120,.28);min-height:56px}
.sos-card{background:linear-gradient(135deg,#E889A8 0%,#D84F78 100%);box-shadow:0 14px 30px rgba(216,79,120,.32);transition:transform .15s}
.sos-card:active{transform:scale(.98)}
.pulse-ring{animation:ring 2.4s infinite}
@keyframes ring{0%{box-shadow:0 0 0 0 rgba(255,255,255,.5)}70%{box-shadow:0 0 0 12px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}
.shimmer{background:linear-gradient(100deg,#FFF4F7 20%,#FBE8EF 45%,#FFF4F7 70%);background-size:200% 100%;animation:shim 1.6s linear infinite}
@keyframes shim{from{background-position:200% 0}to{background-position:-200% 0}}
.safe-b{padding-bottom:env(safe-area-inset-bottom)}
a.btn{display:grid;place-items:center}
button:focus-visible{outline:3px solid rgba(201,95,131,.4);outline-offset:2px}