/* ============ RESET ============ */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --pink:#FFD1DC;--sakura:#FFB7C5;--lavender:#E6E6FA;--blue:#B5D8F7;
  --white:#FFF;--peach:#FFDAB9;--cream:#FFF8F0;--yellow:#FFFACD;
  --glass:rgba(255,255,255,0.25);--glass-border:rgba(255,255,255,0.45);
  --glow:rgba(255,182,193,0.6);--shadow:rgba(255,182,193,0.35);
  --grad1:#ff6b9d;--grad2:#c44dff;
}
html{scroll-behavior:smooth}
body{
  font-family:'Poppins',sans-serif;
  background:linear-gradient(135deg,var(--pink),var(--lavender),var(--blue));
  color:#4a3040;overflow:hidden;width:100vw;height:100vh;
}

/* ============ PARTICLES ============ */
#particles{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999}

/* ============ SCREENS ============ */
.screen{
  position:fixed;top:0;left:0;width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transition:opacity .8s,visibility .8s,transform .8s;
  transform:scale(.95);z-index:1;overflow-y:auto;overflow-x:hidden;
}
.screen.active{opacity:1;visibility:visible;transform:scale(1);z-index:10}
.screen::after{
  content:'';position:absolute;top:0;left:0;width:100%;height:100%;
  background:rgba(255,220,230,0.25);z-index:-1;
}
.page-inner{
  position:relative;z-index:2;width:100%;max-width:750px;
  padding:20px;text-align:center;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:100vh;gap:15px;
}

/* ============ GLASS CARD ============ */
.glass-card{
  background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border:2px solid var(--glass-border);border-radius:28px;padding:28px;
  box-shadow:0 8px 32px var(--shadow),inset 0 0 20px rgba(255,255,255,0.12);
  position:relative;overflow:visible;
}

/* ============ TYPOGRAPHY ============ */
.page-title{
  font-family:'Fredoka One',cursive;font-size:2.6rem;margin-bottom:10px;
  background:linear-gradient(135deg,#ff6b9d,#c44dff,#ff6b9d);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  text-shadow:none;filter:drop-shadow(2px 2px 4px rgba(255,182,193,0.4));
}
.love-letter-title{
  font-family:'Sacramento',cursive;font-size:3rem;color:#ff6b9d;margin-bottom:12px;
}
.big-question{
  font-family:'Fredoka One',cursive;font-size:1.8rem;color:#ff6b9d;margin:12px 0;
}
.letter-ask{
  font-family:'Patrick Hand',cursive;font-size:1.4rem;color:#c44dff;margin:10px 0;
}
p{font-size:1rem;line-height:1.8;margin-bottom:8px}

/* ============ BUTTONS ============ */
.btn{
  font-family:'Fredoka One',cursive;font-size:1.1rem;padding:14px 34px;
  border:none;border-radius:50px;cursor:pointer;
  transition:all .3s cubic-bezier(.68,-.55,.265,1.55);
  position:relative;overflow:hidden;letter-spacing:.5px;flex-shrink:0;
}
.btn:hover{transform:scale(1.08)}
.btn:active{transform:scale(.95)}
.btn-glow{
  background:linear-gradient(135deg,var(--grad1),var(--grad2));color:#fff;
  box-shadow:0 6px 20px rgba(255,107,157,.45);
}
.btn-glow:hover{box-shadow:0 8px 30px rgba(255,107,157,.65)}
.btn-outline{
  background:transparent;color:#ff6b9d;border:2px solid #ff6b9d;
}
.btn-outline:hover{background:rgba(255,107,157,.12)}
.btn-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;min-height:55px;position:relative;z-index:10}
.btn-bottom-center{position:absolute;bottom:25px;left:50%;transform:translateX(-50%);z-index:10}

/* ============ CORNER & INLINE STICKERS ============ */
.corner-sticker{position:absolute;width:55px;height:55px;object-fit:cover;border-radius:12px;z-index:5;animation:floatY 4s ease-in-out infinite;pointer-events:none}
.corner-sticker.tl{top:10px;left:10px}
.corner-sticker.tr{top:10px;right:10px;animation-delay:.5s}
.corner-sticker.bl{bottom:60px;left:10px;animation-delay:1s}
.corner-sticker.br{bottom:60px;right:10px;animation-delay:1.5s}
.inline-sticker{
  display:block;width:75px;height:75px;object-fit:cover;border-radius:12px;
  margin:8px auto;animation:floatY 4s ease-in-out infinite;pointer-events:none;
}
.inline-sticker.right{margin-left:auto;margin-right:0;transform:rotate(3deg)}

/* ============ NOTIFICATIONS ============ */
.notif-bar{position:fixed;top:20px;left:50%;transform:translateX(-50%);z-index:1000;animation:slideIn .4s ease-out}
.notif-bar.notif-center{top:50%;transform:translate(-50%,-50%)}
.notif-bar.notif-big{top:50%;transform:translate(-50%,-50%)}
.notif-card{
  display:flex;align-items:center;gap:12px;padding:14px 24px;border-radius:50px;
  background:rgba(255,255,255,.88);backdrop-filter:blur(15px);
  box-shadow:0 8px 30px rgba(255,107,157,.3);
}
.notif-card-big{
  flex-direction:column;gap:10px;padding:24px 32px;border-radius:24px;
  background:rgba(255,255,255,.92);
}
.notif-img{width:45px;height:45px;border-radius:50%;object-fit:cover}
.notif-img-big{width:160px;height:160px;border-radius:20px;object-fit:cover;animation:bounceIn .6s ease-out}
.notif-msg{font-family:'Patrick Hand',cursive;font-size:1.15rem;color:#c44dff}
.notif-msg.big{font-family:'Fredoka One',cursive;font-size:1.5rem;color:#ff6b9d;text-align:center}
.hidden{display:none!important}

/* ============ SUCCESS SCREEN ============ */
.success-screen{
  position:fixed;top:0;left:0;width:100%;height:100%;
  background:rgba(255,220,230,.92);backdrop-filter:blur(10px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  z-index:100;animation:fadeIn .4s;
}
.success-img{width:200px;height:200px;border-radius:20px;object-fit:cover;animation:bounceIn .7s;margin-bottom:18px}
.success-text{font-family:'Fredoka One',cursive;font-size:2rem;color:#ff6b9d;margin-bottom:8px}
.success-sub{font-family:'Patrick Hand',cursive;font-size:1.3rem;color:#c44dff}

/* ============ BIG POPUP ============ */
.big-popup{
  position:fixed;top:0;left:0;width:100%;height:100%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:rgba(255,220,230,.85);backdrop-filter:blur(8px);
  z-index:99;animation:fadeIn .3s;
}
.popup-img{max-width:80%;max-height:50vh;border-radius:20px;object-fit:contain;animation:bounceIn .6s;margin-bottom:15px}
.popup-text{font-family:'Fredoka One',cursive;font-size:1.6rem;color:#ff6b9d;text-align:center;padding:0 20px}

/* ============ LOADING ============ */
#loadingScreen{
  background-image:url('https://cdn.shopify.com/s/files/1/0657/3100/2634/files/Papierpeintpanda-3D.png?v=1718293141') !important;
  background-size:cover !important;background-position:center !important;
}
#loadingScreen::after{background:rgba(20,5,40,.45) !important}
.loading-content{text-align:center;z-index:2;position:relative}
.moon-panda{position:relative;width:180px;height:180px;margin:0 auto 30px}
.moon-glow{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:160px;height:160px;background:radial-gradient(circle,rgba(255,215,0,.35),transparent);
  border-radius:50%;animation:moonPulse 3s ease-in-out infinite;
}
.moon-shape{
  width:140px;height:140px;margin:0 auto;
  background:radial-gradient(circle at 30% 30%,#fff8dc,#ffd700);
  border-radius:50%;box-shadow:0 0 50px rgba(255,215,0,.45),0 0 100px rgba(255,215,0,.2);
}
.sleeping-panda{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  font-size:4rem;animation:breathe 3s ease-in-out infinite;
}
.zzz-text{
  position:absolute;top:-5px;right:-15px;
  font-family:'Fredoka One',cursive;font-size:1.4rem;color:#fff8dc;
  animation:zzzFloat 2s ease-in-out infinite;
}
.loading-title{
  font-family:'Fredoka One',cursive;font-size:2rem;color:#ffb7c5;
  margin-bottom:30px;line-height:1.5;
  text-shadow:0 2px 10px rgba(255,183,197,.5);
}
.heart-progress-track{
  width:300px;height:12px;margin:0 auto 12px;
  background:rgba(255,255,255,.15);border-radius:10px;overflow:hidden;
}
.heart-progress-fill{
  height:100%;width:0%;
  background:linear-gradient(90deg,#ff6b9d,#c44dff,#ff6b9d);
  border-radius:10px;transition:width .15s;
}
.heart-progress-icons{display:flex;justify-content:space-between;width:300px;margin:0 auto;font-size:1.3rem}
.heart-progress-icons span{animation:heartBeat 1s ease-in-out infinite}
.heart-progress-icons span:nth-child(2){animation-delay:.15s}
.heart-progress-icons span:nth-child(3){animation-delay:.3s}
.heart-progress-icons span:nth-child(4){animation-delay:.45s}
.heart-progress-icons span:nth-child(5){animation-delay:.6s}

/* ============ PHONE ============ */
.phone-wrapper{position:relative}
.phone{
  width:270px;background:linear-gradient(145deg,#ffb7c5,#ff6b9d);
  border-radius:32px;padding:14px;
  box-shadow:0 18px 45px rgba(255,107,157,.45),inset 0 2px 0 rgba(255,255,255,.35);
}
.phone-antenna{text-align:center;font-size:1.6rem;margin-bottom:4px;animation:wiggle 2s ease-in-out infinite}
.phone-body{background:#1a0a2e;border-radius:20px;padding:18px;overflow:hidden}
.phone-screen{text-align:center;color:#fff;min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}
.phone-lock-text{font-family:'Patrick Hand',cursive;font-size:1.15rem;color:#ffb7c5;line-height:1.5}
.phone-label{font-family:'Patrick Hand',cursive;color:#ffb7c5;font-size:.95rem;margin-top:5px}
.phone-screen input{
  width:150px;padding:10px;border:2px solid rgba(255,183,197,.4);border-radius:12px;
  background:rgba(255,255,255,.1);color:#fff;font-size:1.2rem;text-align:center;
  font-family:'Fredoka One',cursive;outline:none;transition:border .3s;
}
.phone-screen input:focus{border-color:#ff6b9d}
.phone-screen .btn{font-size:.95rem;padding:10px 22px;margin-top:5px}
.phone-msg{font-family:'Patrick Hand',cursive;color:#ffb7c5;font-size:1rem;min-height:22px;margin-top:6px}
.phone-keypad{
  display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:12px;padding:0 8px;
}
.phone-keypad span{
  width:32px;height:32px;background:rgba(255,255,255,.28);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:'Fredoka One',cursive;font-size:.85rem;color:rgba(255,255,255,.7);
  margin:0 auto;user-select:none;
}
.phone-float-hearts{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}
.phone-float-hearts span{position:absolute;font-size:1.2rem;animation:heartRise 3s ease-in-out infinite}
.page1-stickers{position:absolute;width:100%;height:100%;pointer-events:none;top:0;left:0}
.deco-sticker{position:absolute;border-radius:12px;animation:floatY 4s ease-in-out infinite}

/* ============ BALLOON SCENE ============ */
.sky-scene{overflow:hidden}
.clouds-layer{position:absolute;width:100%;height:100%;pointer-events:none}
.cloud{
  position:absolute;width:130px;height:50px;background:rgba(255,255,255,.55);border-radius:50px;
  animation:cloudMove 22s linear infinite;
}
.cloud::before,.cloud::after{content:'';position:absolute;background:rgba(255,255,255,.55);border-radius:50%}
.cloud::before{width:65px;height:65px;top:-32px;left:22px}
.cloud::after{width:45px;height:45px;top:-22px;right:22px}

.balloon-scene{text-align:center;transition:all 2s ease}
.big-balloon{display:inline-block;animation:balloonSway 5s ease-in-out infinite}
.balloon-canopy{
  width:130px;height:160px;margin:0 auto;
  background:linear-gradient(180deg,#ff6b9d,#ffb7c5);
  border-radius:50% 50% 15% 15%;position:relative;
  box-shadow:inset -12px 0 25px rgba(255,255,255,.3);
}
.balloon-canopy::before{
  content:'';position:absolute;bottom:-10px;left:50%;transform:translateX(-50%);
  border-left:25px solid transparent;border-right:25px solid transparent;border-top:18px solid #ff6b9d;
}
.balloon-ropes{
  width:60px;height:30px;margin:0 auto;
  border-left:2px solid rgba(255,107,157,.5);border-right:2px solid rgba(255,107,157,.5);
}
.balloon-basket-area{font-size:2.5rem;animation:pandaWave 2s ease-in-out infinite}
.basket-panda{display:inline-block}

.big-envelope{margin-top:10px;cursor:pointer;transition:transform .3s}
.big-envelope:hover{transform:scale(1.1)}
.envelope-body{text-align:center}
.envelope-icon{font-size:4rem;display:block;animation:pulse 2s ease-in-out infinite}
.envelope-text{font-family:'Fredoka One',cursive;color:#ff6b9d;font-size:1.1rem}

.floating-forever{animation:balloonFloat 8s ease-in-out infinite}

/* ============ LOVE LETTER ============ */
.love-letter-section{max-width:620px;margin:0 auto;animation:slideUp .8s ease-out}
.love-letter-card{padding:30px;max-height:72vh;overflow-y:auto}
.love-letter-card::-webkit-scrollbar{width:6px}
.love-letter-card::-webkit-scrollbar-track{background:rgba(255,255,255,.15);border-radius:10px}
.love-letter-card::-webkit-scrollbar-thumb{background:#ff6b9d;border-radius:10px}
.letter-deco-top{display:flex;justify-content:center;gap:12px;font-size:1.5rem;margin-bottom:10px}
.letter-deco-top span{animation:floatY 3s ease-in-out infinite}
.letter-deco-top span:nth-child(2){animation-delay:.4s}
.letter-deco-top span:nth-child(3){animation-delay:.8s}
.love-letter-body{text-align:left;font-family:'Dancing Script',cursive;font-size:1.15rem;line-height:2}
.love-letter-body p{margin-bottom:12px}
.letter-emoji-row{display:flex;justify-content:center;gap:14px;margin:16px 0;font-size:1.3rem}
.letter-emoji-row span{animation:floatY 3s ease-in-out infinite}
.letter-emoji-row span:nth-child(2){animation-delay:.25s}
.letter-emoji-row span:nth-child(3){animation-delay:.5s}
.letter-emoji-row span:nth-child(4){animation-delay:.75s}
.letter-emoji-row span:nth-child(5){animation-delay:1s}
.letter-emoji-row span:nth-child(6){animation-delay:1.25s}

/* ============ LOVE DETECTOR ============ */
.detector-card{max-width:480px;text-align:center}
.detector-visual{
  position:relative;width:200px;height:200px;margin:15px auto;
  border-radius:20px;overflow:hidden;border:3px solid rgba(255,107,157,.4);
}
.detector-cat{width:100%;height:100%;object-fit:cover}
.scanner-beam{
  position:absolute;top:0;left:0;width:100%;height:3px;
  background:linear-gradient(90deg,transparent,#ff6b9d,transparent);
  animation:scan 2s linear infinite;
}
.detector-question{font-family:'Fredoka One',cursive;font-size:1.8rem;color:#ff6b9d;margin:10px 0}
.heart-meter{margin-top:15px}
.meter-track{height:10px;background:rgba(255,255,255,.2);border-radius:10px;overflow:hidden}
.meter-fill{height:100%;background:linear-gradient(90deg,#ff6b9d,#c44dff);border-radius:10px;width:100%;transition:width .5s}
.meter-label{font-family:'Patrick Hand',cursive;font-size:1rem;color:#c44dff;margin-top:6px}

/* ============ CRYSTAL HEART ============ */
.crystal-heart-area{text-align:center}
.crystal-heart{position:relative;width:200px;height:200px;margin:0 auto 15px;cursor:pointer}
.heart-pulse{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:170px;height:170px;
  background:radial-gradient(circle,rgba(255,107,157,.3),transparent);
  border-radius:50%;animation:heartbeat 1.5s ease-in-out infinite;
}
.heart-emoji{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  font-size:5.5rem;animation:heartbeat 1.5s ease-in-out infinite;
}
.bear-img{
  width:110px;position:absolute;bottom:-15px;right:-25px;
  border-radius:14px;animation:bearBob 3s ease-in-out infinite;
}
.heart-prompt{font-family:'Patrick Hand',cursive;font-size:1.4rem;color:#c44dff;margin:10px 0}

/* ============ SCRATCH CARDS ============ */
.scratch-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;max-width:480px;margin:10px auto}
.scratch-card{
  min-height:150px;cursor:pointer;overflow:hidden;transition:transform .3s;
}
.scratch-card:hover{transform:scale(1.03)}
.scratch-front{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  height:100%;min-height:150px;
  background:linear-gradient(135deg,rgba(255,107,157,.18),rgba(196,77,255,.18));
  border-radius:22px;transition:opacity .5s;
}
.scratch-front span{font-size:2.8rem;margin-bottom:6px}
.scratch-front p{font-family:'Patrick Hand',cursive;color:#c44dff;font-size:1rem}
.scratch-back{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:14px;min-height:150px;animation:reveal .5s ease-out;
}
.scratch-sticker{width:70px;height:70px;object-fit:cover;border-radius:12px;margin-bottom:8px}
.scratch-back p{font-family:'Dancing Script',cursive;font-size:1rem;color:#c44dff;text-align:center}
.scratch-card.scratched .scratch-front{opacity:0;pointer-events:none;position:absolute}
.memories-letter{max-width:480px;margin:10px auto;text-align:left;position:relative}
.memories-letter p{font-family:'Dancing Script',cursive;font-size:1.15rem;line-height:2}

/* ============ POLAROID CAROUSEL ============ */
.memories-stickers{position:relative;height:0;pointer-events:none}
.polaroid-track{
  display:flex;gap:20px;overflow-x:auto;padding:20px 10px;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;max-width:100%;
}
.polaroid-track::-webkit-scrollbar{height:6px}
.polaroid-track::-webkit-scrollbar-track{background:rgba(255,255,255,.2);border-radius:10px}
.polaroid-track::-webkit-scrollbar-thumb{background:#ff6b9d;border-radius:10px}
.polaroid{
  flex:0 0 200px;background:#fff;padding:12px 12px 42px 12px;border-radius:4px;
  box-shadow:0 8px 25px rgba(0,0,0,.15);scroll-snap-align:center;
  transition:transform .4s cubic-bezier(.68,-.55,.265,1.55);
  transform:rotate(var(--r,0deg));
}
.polaroid:nth-child(1){--r:-3deg}
.polaroid:nth-child(2){--r:2deg}
.polaroid:nth-child(3){--r:-1deg}
.polaroid:nth-child(4){--r:3deg}
.polaroid:nth-child(5){--r:-2deg}
.polaroid:hover{transform:rotate(0deg) scale(1.08);z-index:10}
.polaroid-img{width:100%;height:180px;border-radius:2px;overflow:hidden}
.polaroid-img img{width:100%;height:100%;object-fit:cover;display:block}
.polaroid-img.placeholder{
  background:linear-gradient(135deg,var(--pink),var(--lavender));
  display:flex;align-items:center;justify-content:center;font-size:3rem;
}
.polaroid-cap{font-family:'Patrick Hand',cursive;font-size:.95rem;color:#666;margin-top:12px;text-align:center}

/* ============ FUTURE ============ */
.future-card{text-align:left;max-width:550px;padding-bottom:80px}
.future-text p{font-family:'Dancing Script',cursive;font-size:1.2rem;line-height:2}
.future-icons{display:flex;justify-content:center;gap:18px;margin:16px 0;font-size:2rem}
.future-icons span{animation:floatY 3s ease-in-out infinite}
.future-icons span:nth-child(2){animation-delay:.35s}
.future-icons span:nth-child(3){animation-delay:.7s}
.future-icons span:nth-child(4){animation-delay:1.05s}
.future-icons span:nth-child(5){animation-delay:1.4s}

/* ============ DATE INVITE ============ */
.date-card{max-width:480px}
.date-deco{display:flex;justify-content:center;gap:14px;font-size:2rem;margin:12px 0}
.date-deco span{animation:floatY 3s ease-in-out infinite}

/* ============ CITY CHOOSER ============ */
.city-card{max-width:480px}
.city-options{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin:16px 0}
.city-btn{
  background:rgba(255,255,255,.4);border:2px solid rgba(255,107,157,.3);
  border-radius:20px;padding:20px 28px;cursor:pointer;transition:all .3s;
  display:flex;flex-direction:column;align-items:center;gap:6px;font-size:1.1rem;
}
.city-btn:hover{background:rgba(255,107,157,.2);border-color:#ff6b9d;transform:scale(1.05)}
.city-btn span{font-size:1.5rem}
.city-btn strong{font-family:'Fredoka One',cursive;color:#ff6b9d}
.city-result{margin-top:12px}
.city-result p{font-family:'Patrick Hand',cursive;font-size:1.2rem;color:#c44dff;margin-bottom:12px}

/* ============ WHEN ============ */
.when-card{max-width:480px}

/* ============ FOOD CARDS ============ */
.food-grid{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;max-width:680px;margin:10px 0}
.food-card{
  width:190px;text-align:center;cursor:pointer;
  transition:all .4s cubic-bezier(.68,-.55,.265,1.55);
}
.food-card:hover{transform:translateY(-10px) scale(1.05);box-shadow:0 15px 40px rgba(255,107,157,.3)}
.food-emoji{font-size:3rem;margin-bottom:8px}
.food-card h3{font-family:'Fredoka One',cursive;font-size:1.1rem;color:#c44dff}
.food-card p{font-family:'Patrick Hand',cursive;color:#666;font-size:.9rem}
.food-card.selected{
  background:rgba(255,107,157,.25);border-color:#ff6b9d;
  transform:scale(1.08);box-shadow:0 8px 25px rgba(255,107,157,.4);
}

/* ============ MOVIE ============ */
.movie-card{max-width:480px}
.movie-btns{flex-direction:column;align-items:center;gap:10px}

/* ============ SNACKS ============ */
.snack-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;max-width:380px;margin:10px auto}
.snack-card{text-align:center;cursor:pointer;transition:all .3s;padding:22px}
.snack-card:hover{transform:scale(1.08)}
.snack-card.selected{background:rgba(255,107,157,.28);border-color:#ff6b9d;transform:scale(1.06)}
.snack-emoji{font-size:2.5rem;display:block;margin-bottom:6px}
.snack-confirm{margin-top:12px}

/* ============ ENDING ============ */
.ending-scene{text-align:center}
.ending-balloon-wrap{margin-bottom:15px}
.ending-wave{font-size:2.2rem;animation:waveHand 1s ease-in-out infinite}
.ending-letter{max-width:530px;text-align:left}
.ending-body p{font-family:'Dancing Script',cursive;font-size:1.15rem;line-height:2}
.ending-final{font-family:'Fredoka One',cursive!important;font-size:1.3rem!important;color:#ff6b9d;text-align:center}
.glow-msg{
  margin-top:25px;padding:18px;
  background:linear-gradient(135deg,rgba(255,107,157,.2),rgba(196,77,255,.2));
  border-radius:20px;border:2px solid rgba(255,107,157,.3);
  animation:glowPulse 2s ease-in-out infinite;
}
.glow-msg p{font-family:'Sacramento',cursive;font-size:2rem;color:#ff6b9d}

/* ============ ANIMATIONS ============ */
@keyframes floatY{0%,100%{transform:translateY(0) rotate(0deg)}33%{transform:translateY(-14px) rotate(4deg)}66%{transform:translateY(-7px) rotate(-3deg)}}
@keyframes breathe{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.06)}}
@keyframes zzzFloat{0%,100%{transform:translateY(0);opacity:1}50%{transform:translateY(-14px);opacity:.5}}
@keyframes moonPulse{0%,100%{transform:translate(-50%,-50%) scale(1);opacity:.6}50%{transform:translate(-50%,-50%) scale(1.15);opacity:1}}
@keyframes heartBeat{0%,100%{transform:scale(1)}50%{transform:scale(1.25)}}
@keyframes wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(12deg)}75%{transform:rotate(-12deg)}}
@keyframes cloudMove{0%{transform:translateX(-160px)}100%{transform:translateX(calc(100vw + 160px))}}
@keyframes balloonSway{0%,100%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(3deg) translateY(-14px)}}
@keyframes pandaWave{0%,100%{transform:rotate(0)}50%{transform:rotate(12deg)}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
@keyframes balloonFloat{0%,100%{transform:translateY(0) translateX(0)}25%{transform:translateY(-18px) translateX(8px)}50%{transform:translateY(-8px) translateX(-5px)}75%{transform:translateY(-22px) translateX(4px)}}
@keyframes slideUp{0%{transform:translateY(50px) scale(.92);opacity:0}100%{transform:translateY(0) scale(1);opacity:1}}
@keyframes scan{0%{top:0}100%{top:calc(100% - 3px)}}
@keyframes heartbeat{0%,100%{transform:translate(-50%,-50%) scale(1)}15%{transform:translate(-50%,-50%) scale(1.16)}30%{transform:translate(-50%,-50%) scale(1)}45%{transform:translate(-50%,-50%) scale(1.1)}}
@keyframes bearBob{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-10px) rotate(5deg)}}
@keyframes reveal{0%{transform:scale(.5) rotate(-8deg);opacity:0}100%{transform:scale(1) rotate(0);opacity:1}}
@keyframes waveHand{0%,100%{transform:rotate(0)}25%{transform:rotate(22deg)}75%{transform:rotate(-22deg)}}
@keyframes glowPulse{0%,100%{box-shadow:0 0 20px rgba(255,107,157,.3)}50%{box-shadow:0 0 45px rgba(255,107,157,.6),0 0 90px rgba(196,77,255,.3)}}
@keyframes slideIn{0%{transform:translateX(-50%) translateY(-40px);opacity:0}100%{transform:translateX(-50%) translateY(0);opacity:1}}
@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}
@keyframes bounceIn{0%{transform:scale(.25);opacity:0}50%{transform:scale(1.08)}70%{transform:scale(.92)}100%{transform:scale(1);opacity:1}}
@keyframes confettiFall{0%{transform:translateY(-10vh) rotate(0deg);opacity:1}100%{transform:translateY(110vh) rotate(720deg);opacity:0}}
@keyframes fireworkBurst{0%{transform:scale(0);opacity:1}50%{transform:scale(1);opacity:1}100%{transform:scale(1.5);opacity:0}}
@keyframes explode{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(var(--ex,80px),var(--ey,-80px)) scale(0);opacity:0}}
@keyframes balloonRise{0%{transform:translateY(100vh) scale(.5);opacity:0}50%{opacity:1}100%{transform:translateY(-20vh) scale(1);opacity:0}}
@keyframes heartRise{0%{transform:translateY(0) scale(.8);opacity:.5}50%{transform:translateY(-22px) scale(1.2);opacity:1}100%{transform:translateY(-44px) scale(.8);opacity:0}}
@keyframes phoneShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-14px) rotate(-4deg)}40%{transform:translateX(14px) rotate(4deg)}60%{transform:translateX(-9px) rotate(-2deg)}80%{transform:translateX(9px) rotate(2deg)}}
@keyframes phoneGlow{0%{box-shadow:0 18px 45px rgba(255,107,157,.45)}50%{box-shadow:0 18px 70px rgba(255,107,157,.85),0 0 110px rgba(255,107,157,.45)}100%{box-shadow:0 18px 45px rgba(255,107,157,.45)}}

/* ============ RESPONSIVE ============ */
@media(max-width:768px){
  .page-title{font-size:2rem}
  .love-letter-title{font-size:2.3rem}
  .phone{width:230px}
  .phone-screen{min-height:155px;padding:14px}
  .detector-visual{width:170px;height:170px}
  .food-card{width:155px}
  .polaroid{flex:0 0 165px}
  .polaroid-img{height:145px}
  .glass-card{padding:22px;border-radius:22px}
  .btn{padding:12px 26px;font-size:1rem}
  .crystal-heart{width:160px;height:160px}
  .heart-emoji{font-size:4rem}
  .bear-img{width:90px}
  .glow-msg p{font-size:1.4rem}
  .loading-title{font-size:1.6rem}
}
@media(max-width:480px){
  .page-title{font-size:1.6rem}
  .love-letter-title{font-size:1.9rem}
  .love-letter-body{font-size:1rem}
  .phone{width:210px}
  .scratch-grid{grid-template-columns:1fr;max-width:260px}
  .food-grid{flex-direction:column;align-items:center}
  .food-card{width:100%;max-width:240px}
  .snack-grid{max-width:280px}
  .balloon-canopy{width:105px;height:130px}
  .polaroid{flex:0 0 145px}
  .polaroid-img{height:125px}
  .big-question{font-size:1.4rem}
  .loading-title{font-size:1.3rem}
  .notif-img-big{width:120px;height:120px}
}
