@font-face{font-family:'Alex Brush';src:url(../assets/AlexBrush-Regular.ttf);font-display:swap}
@font-face{font-family:'Montserrat';font-weight:500;src:url(../assets/Montserrat-Medium.ttf);font-display:swap}
@font-face{font-family:'Montserrat';font-weight:700;src:url(../assets/Montserrat-Bold.ttf);font-display:swap}
@font-face{font-family:'Montserrat';font-weight:800;src:url(../assets/Montserrat-ExtraBold.ttf);font-display:swap}
:root{
  --berry:#8E1F4C;--rose:#B8406C;--pink:#F6C6D6;--blush:#FFF1F5;--navy:#0F2247;
  --ok:#1F9D63;--bad:#D23B4A;--ink:#3A1426;--muted:#8A5A6E;--card:rgba(255,255,255,.86);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:'Montserrat',system-ui,sans-serif;font-weight:500;color:var(--ink);background:#F7D3DF;
  -webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}
input{font:inherit;color:inherit}
.script{font-family:'Alex Brush',cursive;font-weight:400}
.hidden{display:none!important}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.18em;color:var(--navy)}
.brand img{width:34px;height:34px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 24px;border-radius:14px;
  background:var(--berry);color:#fff;font-weight:800;letter-spacing:.04em;box-shadow:0 6px 18px rgba(142,31,76,.28)}
.btn:active{transform:translateY(1px)}
.btn:disabled{opacity:.5}
.btn.ghost{background:#fff;color:var(--berry);box-shadow:0 2px 10px rgba(142,31,76,.12)}
.heart{width:26px;height:26px;display:inline-block}
.heart path{fill:var(--bad)}
.heart.off path{fill:#E7BFCB}
.heart.breaking{animation:heartBreak .7s ease}
@keyframes heartBreak{0%{transform:scale(1)}30%{transform:scale(1.5) rotate(-12deg)}60%{transform:scale(.7) rotate(10deg)}100%{transform:scale(1)}}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-6px)}80%{transform:translateX(6px)}}
@keyframes pop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.08);opacity:1}100%{transform:scale(1)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
