:root {
  --pink-light:#FFB3D9; --pink-mid:#F472B6; --pink-hot:#EC4899; --pink-deep:#9D174D;
  --blush:#FDE8F0; --blush-light:#FFF0F8; --peach:#FDDBB4; --peach-dark:#E8A882;
  --cream:#FFF8F0; --text-dark:#3D1A2E; --text-mid:#7C3D5E; --text-light:#B07090;
  --shadow-soft:0 8px 32px rgba(157,23,77,0.12);
  --shadow-pink:0 4px 24px rgba(236,72,153,0.28);
  --shadow-lg:0 20px 60px rgba(157,23,77,0.18);
  --radius-lg:24px; --radius-md:16px; --radius-sm:10px;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Montserrat',sans-serif;background:var(--blush);color:var(--text-dark);min-height:100vh;overflow-x:hidden}

/* PAGE TRANSITION */
#pt-overlay{position:fixed;inset:0;z-index:9999;pointer-events:none;
  background:linear-gradient(135deg,var(--pink-mid),var(--pink-hot),var(--pink-deep));
  clip-path:polygon(0 0,100% 0,100% 0,0 0);
  transition:clip-path 0.55s cubic-bezier(0.76,0,0.24,1)}
#pt-overlay.cover{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}
#pt-overlay.uncover{clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%)}

/* HEARTS BG */
.hearts-bg{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.hearts-bg span{position:absolute;animation:floatHeart linear infinite;opacity:0;user-select:none}
@keyframes floatHeart{
  0%{transform:translateY(110vh) rotate(0deg);opacity:0}
  10%{opacity:.6}90%{opacity:.15}
  100%{transform:translateY(-10vh) rotate(360deg);opacity:0}
}

/* BUTTONS */
.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(135deg,var(--pink-mid),var(--pink-hot));color:#fff;border:none;
  border-radius:50px;padding:14px 32px;font-family:'Montserrat',sans-serif;font-weight:600;
  font-size:15px;cursor:pointer;transition:var(--transition);box-shadow:var(--shadow-pink);
  text-decoration:none;letter-spacing:.5px}
.btn-primary:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 8px 32px rgba(236,72,153,.45)}
.btn-primary:active{transform:scale(.97)}
.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:transparent;color:var(--pink-hot);border:2px solid var(--pink-hot);
  border-radius:50px;padding:12px 28px;font-family:'Montserrat',sans-serif;font-weight:600;
  font-size:14px;cursor:pointer;transition:var(--transition);text-decoration:none}
.btn-secondary:hover{background:var(--pink-hot);color:#fff;transform:translateY(-2px)}
.btn-ghost{background:rgba(255,255,255,.5);color:var(--text-mid);border:1px solid rgba(244,114,182,.3);
  border-radius:50px;padding:10px 22px;font-family:'Montserrat',sans-serif;font-weight:500;
  font-size:14px;cursor:pointer;transition:var(--transition);text-decoration:none;
  display:inline-flex;align-items:center;gap:8px}
.btn-ghost:hover{background:rgba(255,255,255,.9);border-color:var(--pink-mid);transform:translateY(-1px)}

/* INPUTS */
.lv-input{width:100%;padding:13px 16px;background:rgba(255,255,255,.88);
  border:1.5px solid rgba(244,114,182,.25);border-radius:var(--radius-sm);
  font-family:'Montserrat',sans-serif;font-size:14px;color:var(--text-dark);
  transition:var(--transition);outline:none}
.lv-input:focus{border-color:var(--pink-hot);background:#fff;box-shadow:0 0 0 4px rgba(236,72,153,.08)}
.lv-input::placeholder{color:var(--text-light)}
.lv-label{display:block;font-size:11px;font-weight:600;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--text-mid);margin-bottom:7px}
.field-group{margin-bottom:18px}

/* CARD */
.lv-card{background:rgba(255,255,255,.85);backdrop-filter:blur(18px);
  border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.9);box-shadow:var(--shadow-lg)}

/* TOAST */
#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(16px);
  background:var(--text-dark);color:#fff;padding:11px 22px;border-radius:50px;font-size:14px;
  font-weight:500;z-index:10000;opacity:0;transition:all .35s cubic-bezier(.4,0,.2,1);
  white-space:nowrap;pointer-events:none}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
#toast.success{background:linear-gradient(135deg,#10b981,#059669)}
#toast.error{background:linear-gradient(135deg,#ef4444,#dc2626)}

/* SPINNER */
.spinner{width:18px;height:18px;border:2.5px solid rgba(255,255,255,.3);border-top-color:#fff;
  border-radius:50%;animation:spin .7s linear infinite;display:inline-block;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}

/* MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(61,26,46,.5);backdrop-filter:blur(8px);
  z-index:2000;display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .3s}
.modal-overlay.active{opacity:1;pointer-events:all}
.modal-box{background:#fff;border-radius:var(--radius-lg);padding:40px;max-width:440px;width:92%;
  transform:translateY(18px) scale(.97);transition:transform .35s cubic-bezier(.34,1.56,.64,1);
  box-shadow:var(--shadow-lg)}
.modal-overlay.active .modal-box{transform:translateY(0) scale(1)}

/* SCROLLBAR */
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--pink-mid);border-radius:10px}

/* ANIMATIONS */
@keyframes fadeInUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
.fade-in-up{animation:fadeInUp .6s cubic-bezier(.4,0,.2,1) both}
.d1{animation-delay:.1s}.d2{animation-delay:.2s}.d3{animation-delay:.3s}.d4{animation-delay:.4s}.d5{animation-delay:.5s}

/* DIVIDER */
.lv-divider{display:flex;align-items:center;gap:12px;color:var(--text-light);font-size:13px;margin:18px 0}
.lv-divider::before,.lv-divider::after{content:'';flex:1;height:1px;background:rgba(244,114,182,.22)}

/* NAV */
.lv-nav{position:fixed;top:0;left:0;right:0;z-index:500;padding:14px 28px;
  display:flex;align-items:center;justify-content:space-between;
  background:rgba(253,232,240,.88);backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(244,114,182,.15)}
.lv-nav-logo{font-family:'Playfair Display',serif;font-size:26px;font-weight:700;
  color:var(--pink-deep);text-decoration:none}
.lv-nav-logo span{color:var(--pink-hot)}
.lv-nav-links{display:flex;align-items:center;gap:12px}

/* STEP BAR */
.step-bar{display:flex;gap:6px;margin-bottom:26px}
.step-seg{flex:1;height:3px;border-radius:3px;background:rgba(244,114,182,.2);transition:background .4s}
.step-seg.active{background:var(--pink-hot)}
.step-seg.done{background:var(--pink-mid)}
.step{display:none}.step.active{display:block;animation:fadeInUp .4s both}

/* AUTH SHARED */
.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;position:relative;z-index:1}
.auth-card{width:100%;padding:46px 38px}
.auth-logo{font-family:'Playfair Display',serif;font-size:34px;font-weight:700;color:var(--pink-hot);
  text-align:center;display:block;margin-bottom:24px;text-decoration:none}
.auth-title{font-family:'Playfair Display',serif;font-size:24px;color:var(--text-dark);text-align:center;margin-bottom:6px}
.auth-sub{text-align:center;color:var(--text-light);font-size:13px;margin-bottom:28px}
.auth-footer{text-align:center;margin-top:22px;font-size:13px;color:var(--text-mid)}
.auth-footer a{color:var(--pink-hot);font-weight:600;text-decoration:none}
.auth-footer a:hover{text-decoration:underline}
