/* =========================================================
   TO WALAA — Love Story Website
   Design tokens
========================================================= */
:root{
  --wine-950:#170307;
  --wine-900:#230510;
  --wine-800:#3a0a1c;
  --burgundy:#5c0e2c;
  --rose-deep:#a63a52;
  --rose:#e39aa8;
  --rose-soft:#f4c9d1;
  --gold:#cba05b;
  --gold-soft:#e6cf9c;
  --cream:#fbf1e7;
  --white:#fffaf6;
  --shadow:rgba(0,0,0,.45);

  --font-ar-display:'Aref Ruqaa', serif;
  --font-ar-body:'Tajawal', sans-serif;
  --font-en-display:'Playfair Display', serif;
  --font-en-body:'Cormorant Garamond', serif;

  --ease-soft: cubic-bezier(.22,.61,.36,1);
  --dur-fast:.35s;
  --dur-med:.7s;
  --dur-slow:1.4s;
}

*{box-sizing:border-box;}
[hidden]{display:none !important;}
html{scroll-behavior:smooth;}
html,body{margin:0;padding:0;}
body{
  background:radial-gradient(ellipse at 50% -10%, var(--wine-800) 0%, var(--wine-950) 55%, #0c0203 100%);
  color:var(--cream);
  font-family:var(--font-ar-body);
  line-height:1.8;
  overflow-x:hidden;
  min-height:100vh;
}
html[lang="en"] body{font-family:var(--font-en-body);}

::selection{background:var(--rose-deep);color:var(--white);}

a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
img{max-width:100%;display:block;}
ul{list-style:none;margin:0;padding:0;}

:focus-visible{outline:2px solid var(--gold-soft);outline-offset:3px;}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
}

/* =========================================================
   TYPOGRAPHY HELPERS
========================================================= */
.eyebrow{
  font-family:var(--font-en-display);
  font-style:italic;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-size:.8rem;
  color:var(--gold-soft);
  margin:0 0 .8rem;
}
html[lang="ar"] .eyebrow{font-family:var(--font-ar-display);font-style:normal;letter-spacing:0;font-size:1.05rem;}
.eyebrow.center{text-align:center;}

.section-title{
  font-family:var(--font-ar-display);
  font-weight:700;
  font-size:clamp(1.6rem,4vw,2.6rem);
  color:var(--white);
  margin:0 0 1.6rem;
  line-height:1.4;
}
html[lang="en"] .section-title{font-family:var(--font-en-display);}
.section-title.center{text-align:center;}

.hint-text{font-size:.85rem;color:var(--rose-soft);opacity:.7;margin-top:.6rem;}
.hint-text.faint{opacity:.35;}

/* =========================================================
   LAYOUT
========================================================= */
.section{
  position:relative;
  padding:min(14vw,7rem) 6vw;
  min-height:60vh;
  display:flex;
  align-items:center;
  justify-content:center;
}
.section-inner{width:100%;max-width:1100px;margin:0 auto;}
.section-inner.narrow{max-width:680px;}
.center{text-align:center;}

/* =========================================================
   LOADING SCREEN
========================================================= */
#loading-screen{
  position:fixed;inset:0;z-index:9999;
  background:radial-gradient(ellipse at 50% 40%, var(--wine-800), var(--wine-950) 70%);
  display:flex;align-items:center;justify-content:center;
  transition:opacity var(--dur-slow) var(--ease-soft), visibility var(--dur-slow);
}
#loading-screen.hidden{opacity:0;visibility:hidden;pointer-events:none;}
.loading-inner{text-align:center;padding:0 1.5rem;max-width:480px;}
.heartbeat-wrap{margin-bottom:1.6rem;}
.heartbeat-heart{fill:var(--rose-deep);filter:drop-shadow(0 0 18px rgba(230,90,120,.65));animation:heartbeat 1.15s ease-in-out infinite;}
@keyframes heartbeat{
  0%,100%{transform:scale(1);}
  20%{transform:scale(1.18);}
  35%{transform:scale(.94);}
  50%{transform:scale(1.12);}
  65%{transform:scale(1);}
}
.loading-line{
  font-family:var(--font-ar-display);
  font-size:clamp(1.1rem,3.4vw,1.5rem);
  color:var(--white);
  margin:0 0 1.8rem;
}
html[lang="en"] .loading-line{font-family:var(--font-en-display);}

/* =========================================================
   BUTTONS
========================================================= */
.btn-primary{
  display:inline-block;
  padding:.95rem 2.2rem;
  background:linear-gradient(135deg,var(--rose-deep),var(--burgundy));
  color:var(--white);
  border-radius:999px;
  font-size:1rem;
  font-weight:600;
  letter-spacing:.02em;
  box-shadow:0 10px 30px -8px rgba(166,58,82,.55);
  transition:transform var(--dur-fast) var(--ease-soft), box-shadow var(--dur-fast) var(--ease-soft);
  border:1px solid rgba(230,207,156,.35);
  position:relative;
  overflow:hidden;
}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 16px 34px -8px rgba(166,58,82,.7);}
.btn-primary:active{transform:translateY(0) scale(.98);}
.btn-large{font-size:1.15rem;padding:1.15rem 2.6rem;}

.pill-btn{
  border:1px solid rgba(230,207,156,.4);
  background:rgba(255,255,255,.04);
  color:var(--cream);
  padding:.4rem .85rem;
  border-radius:999px;
  font-size:.8rem;
  backdrop-filter:blur(6px);
  transition:background var(--dur-fast), transform var(--dur-fast);
}
.pill-btn:hover{background:rgba(230,207,156,.18);transform:translateY(-2px);}

/* magnetic-ready */
.magnetic{will-change:transform;}

/* =========================================================
   CURSOR GLOW (desktop)
========================================================= */
#cursor-glow{
  position:fixed;width:26px;height:26px;border-radius:50%;
  background:radial-gradient(circle, rgba(230,150,170,.55), transparent 70%);
  pointer-events:none;z-index:8000;
  transform:translate(-50%,-50%);
  transition:opacity .3s;
  mix-blend-mode:screen;
  opacity:0;
}
@media (hover:hover) and (pointer:fine){
  #cursor-glow{opacity:1;}
}

/* =========================================================
   PARTICLES / FLOATING HEARTS LAYER
========================================================= */
#particles-layer{
  position:fixed;inset:0;pointer-events:none;z-index:1;overflow:hidden;
}
.floating-heart{
  position:absolute;bottom:-10%;
  font-size:1.2rem;
  color:var(--rose);
  opacity:.55;
  animation:floatUp linear forwards;
  filter:drop-shadow(0 0 6px rgba(230,150,170,.4));
}
@keyframes floatUp{
  0%{transform:translateY(0) translateX(0) rotate(0deg);opacity:0;}
  10%{opacity:.6;}
  90%{opacity:.5;}
  100%{transform:translateY(-115vh) translateX(var(--drift,20px)) rotate(25deg);opacity:0;}
}
.burst-heart{
  position:fixed;pointer-events:none;z-index:9500;font-size:1.4rem;
  animation:burstUp .95s ease-out forwards;
}
@keyframes burstUp{
  0%{transform:translate(0,0) scale(.6);opacity:1;}
  100%{transform:translate(var(--bx,0),-90px) scale(1.1);opacity:0;}
}

/* =========================================================
   NAVIGATION
========================================================= */
#main-nav{
  position:fixed;top:0;inset-inline:0;z-index:500;
  background:linear-gradient(to bottom, rgba(23,3,7,.75), rgba(23,3,7,0));
  backdrop-filter:blur(10px);
  transition:transform .4s var(--ease-soft), background .4s;
}
#main-nav.nav-hide{transform:translateY(-100%);}
#main-nav.nav-solid{background:rgba(23,3,7,.92);box-shadow:0 2px 20px var(--shadow);}
.nav-inner{
  max-width:1200px;margin:0 auto;padding:.9rem 5vw;
  display:flex;align-items:center;justify-content:space-between;
}
.nav-logo{
  font-family:var(--font-en-display);font-style:italic;font-size:1.15rem;color:var(--gold-soft);letter-spacing:.05em;
}
.nav-logo-you{color:var(--rose);}
#nav-links{
  display:flex;align-items:center;gap:1.6rem;
}
#nav-links a{
  font-size:.92rem;position:relative;padding:.2rem 0;
}
#nav-links a::after{
  content:'';position:absolute;bottom:-3px;insert-inline-start:0;width:0;height:1px;background:var(--gold-soft);transition:width var(--dur-fast) var(--ease-soft);
}
#nav-links a:hover::after{width:100%;}
.nav-controls{display:flex;gap:.5rem;align-items:center;}
#hamburger{display:none;flex-direction:column;gap:5px;padding:.4rem;}
#hamburger span{width:22px;height:2px;background:var(--cream);border-radius:2px;transition:transform var(--dur-fast), opacity var(--dur-fast);}

@media (max-width:860px){
  #hamburger{display:flex;}
  #nav-links{
    position:fixed;top:0;inset-inline-end:0;height:100vh;width:min(78vw,320px);
    background:linear-gradient(160deg,var(--wine-900),var(--wine-950));
    flex-direction:column;align-items:flex-start;justify-content:center;
    gap:1.6rem;padding:2rem 2rem;
    transform:translateX(110%);
    transition:transform .45s var(--ease-soft);
    box-shadow:-10px 0 40px var(--shadow);
  }
  html[dir="rtl"] #nav-links{transform:translateX(-110%);}
  #nav-links.open{transform:translateX(0);}
  .nav-controls{margin-top:1rem;}
  #hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  #hamburger.open span:nth-child(2){opacity:0;}
  #hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
}

/* =========================================================
   HERO
========================================================= */
#hero{min-height:100vh;text-align:center;flex-direction:column;overflow:hidden;}
.hero-bg-glow{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(600px 400px at 20% 20%, rgba(166,58,82,.35), transparent 60%),
    radial-gradient(700px 500px at 80% 75%, rgba(203,160,91,.18), transparent 60%);
  animation:glowShift 12s ease-in-out infinite alternate;
}
@keyframes glowShift{
  0%{opacity:.7;}
  100%{opacity:1;transform:scale(1.05);}
}
.hero-content{position:relative;z-index:2;max-width:820px;}
.hero-title{margin:.6rem 0 1.4rem;}
.hero-line{
  display:block;
  font-family:var(--font-ar-display);
  font-size:clamp(1.5rem,5.5vw,2.6rem);
  color:var(--white);
  opacity:0;
  transform:translateY(24px);
  animation:lineIn var(--dur-med) var(--ease-soft) forwards;
}
html[lang="en"] .hero-line{font-family:var(--font-en-display);}
.hero-line:nth-child(1){animation-delay:.15s;}
.hero-line:nth-child(2){animation-delay:.45s;}
.hero-line-name{
  font-family:var(--font-en-display);
  font-weight:700;
  font-size:clamp(2.6rem,10vw,5rem);
  letter-spacing:.06em;
  margin-top:.5rem;
  background:linear-gradient(120deg,var(--gold-soft),var(--rose),var(--gold-soft));
  background-size:220% auto;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:lineIn var(--dur-med) var(--ease-soft) forwards, shimmer 5s linear infinite;
  animation-delay:.75s, 1.5s;
  text-shadow:0 0 40px rgba(230,150,170,.25);
}
@keyframes shimmer{to{background-position:220% center;}}
@keyframes lineIn{to{opacity:1;transform:translateY(0);}}
.hero-sub{
  font-size:1.05rem;color:var(--rose-soft);max-width:560px;margin:0 auto 2.2rem;
  opacity:0;animation:lineIn var(--dur-med) var(--ease-soft) forwards;animation-delay:1.1s;
}
.scroll-cue{
  position:absolute;bottom:-3.5rem;left:50%;transform:translateX(-50%);
  width:22px;height:36px;border:1.5px solid var(--gold-soft);border-radius:14px;opacity:.6;
}
.scroll-cue span{
  display:block;width:4px;height:8px;background:var(--gold-soft);border-radius:3px;margin:6px auto;
  animation:scrollDot 1.8s ease-in-out infinite;
}
@keyframes scrollDot{0%{transform:translateY(0);opacity:1;}80%{transform:translateY(12px);opacity:0;}100%{opacity:0;}}

/* =========================================================
   REVEAL ON SCROLL
========================================================= */
[data-reveal]{
  opacity:0;transform:translateY(36px);
  transition:opacity .9s var(--ease-soft), transform .9s var(--ease-soft);
}
[data-reveal].in-view{opacity:1;transform:translateY(0);}

/* =========================================================
   LETTER / TYPEWRITER
========================================================= */
#letter-intro{background:linear-gradient(180deg, transparent, rgba(92,14,44,.15), transparent);}
.typewriter-text{
  font-size:clamp(1rem,2.4vw,1.25rem);
  color:var(--cream);
  white-space:pre-wrap;
  min-height:14em;
}
.typewriter-text .cursor-blink{animation:blink 1s step-end infinite;}
@keyframes blink{50%{opacity:0;}}

/* =========================================================
   TIMELINE
========================================================= */
.timeline{position:relative;max-width:760px;margin:0 auto;padding-inline-start:2.4rem;}
.timeline::before{
  content:'';position:absolute;inset-inline-start:.55rem;top:0;bottom:0;width:2px;
  background:linear-gradient(var(--rose-deep),var(--gold));
  opacity:.5;
}
.timeline-item{position:relative;padding-bottom:2.6rem;}
.timeline-item:last-child{padding-bottom:0;}
.timeline-dot{
  position:absolute;inset-inline-start:-2.4rem;top:.3rem;width:14px;height:14px;border-radius:50%;
  background:var(--gold-soft);box-shadow:0 0 0 4px rgba(203,160,91,.2);
}
.timeline-date{font-family:var(--font-en-display);font-style:italic;color:var(--gold-soft);font-size:.85rem;margin-bottom:.2rem;}
.timeline-title{font-family:var(--font-ar-display);font-size:1.25rem;color:var(--white);margin:.1rem 0 .4rem;}
html[lang="en"] .timeline-title{font-family:var(--font-en-display);}
.timeline-desc{color:var(--rose-soft);font-size:.98rem;}
.timeline-img{margin-top:.8rem;border-radius:14px;overflow:hidden;max-width:320px;box-shadow:0 12px 30px var(--shadow);}

/* =========================================================
   REASONS GRID
========================================================= */
.reasons-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.1rem;
}
.reason-card{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(230,207,156,.18);
  border-radius:18px;
  padding:1.5rem 1.3rem;
  backdrop-filter:blur(8px);
  transition:transform var(--dur-fast) var(--ease-soft), background var(--dur-fast), border-color var(--dur-fast);
  cursor:pointer;
  position:relative;
  overflow:hidden;
}
.reason-card::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 30% 20%, rgba(230,150,170,.18), transparent 60%);
  opacity:0;transition:opacity var(--dur-fast);
}
.reason-card:hover{transform:translateY(-6px);border-color:rgba(230,207,156,.5);}
.reason-card:hover::before{opacity:1;}
.reason-num{font-family:var(--font-en-display);font-style:italic;color:var(--gold-soft);font-size:.8rem;}
.reason-text{margin-top:.5rem;font-size:1.02rem;color:var(--white);}

/* =========================================================
   WALAA SPECIAL
========================================================= */
.special-body{font-size:1.15rem;color:var(--rose-soft);margin-bottom:2.2rem;}
.walaa-name-display{
  font-family:var(--font-en-display);font-weight:700;
  font-size:clamp(2.8rem,12vw,6.5rem);
  letter-spacing:.08em;
  color:transparent;
  -webkit-text-stroke:1px var(--gold-soft);
  position:relative;
  transition:transform var(--dur-fast);
}
.walaa-name-display:hover{transform:scale(1.03);}
.walaa-name-display span{display:inline-block;}
.walaa-name-display .glow-letter{
  color:var(--rose-soft);-webkit-text-stroke:0;
  text-shadow:0 0 26px rgba(230,150,170,.75),0 0 60px rgba(203,160,91,.4);
  animation:letterPulse 2.6s ease-in-out infinite;
}
@keyframes letterPulse{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}

/* =========================================================
   EGG DATE BUTTON
========================================================= */
.egg-section{min-height:30vh;}
.egg-date-btn{
  font-family:var(--font-en-display);font-weight:700;font-size:clamp(2rem,7vw,3.5rem);
  color:var(--gold-soft);border:1px dashed rgba(203,160,91,.5);border-radius:20px;
  padding:1rem 2rem;transition:transform var(--dur-fast), background var(--dur-fast);
}
.egg-date-btn span{color:var(--rose);margin:0 .3rem;}
.egg-date-btn:hover{transform:scale(1.05);background:rgba(230,150,170,.08);}

/* =========================================================
   LOVE COUNTER
========================================================= */
.love-counter{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:1.5rem;}
.counter-box{
  background:rgba(255,255,255,.04);border:1px solid rgba(230,207,156,.2);border-radius:16px;
  padding:1.2rem 1.6rem;min-width:100px;
}
.counter-box span{
  display:block;font-family:var(--font-en-display);font-weight:700;font-size:clamp(1.6rem,4vw,2.3rem);
  color:var(--white);
}
.counter-box label{font-size:.8rem;color:var(--rose-soft);letter-spacing:.05em;}

/* =========================================================
   GALLERY
========================================================= */
.gallery-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;
}
.gallery-item{
  position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4/5;cursor:pointer;
  background:linear-gradient(160deg,var(--wine-800),var(--burgundy));
}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-soft);}
.gallery-item:hover img{transform:scale(1.08);}
.gallery-caption{
  position:absolute;inset-inline:0;bottom:0;padding:.9rem;
  background:linear-gradient(to top, rgba(0,0,0,.75), transparent);
  font-size:.85rem;color:var(--white);
}
.gallery-placeholder{
  display:flex;align-items:center;justify-content:center;height:100%;color:var(--rose);font-size:2rem;opacity:.5;
}

/* Lightbox */
.lightbox{
  position:fixed;inset:0;z-index:6000;background:rgba(10,2,4,.92);backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;padding:2rem;
  animation:fadeIn .35s var(--ease-soft);
}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
.lightbox-content{max-width:600px;text-align:center;}
.lightbox-content img{border-radius:14px;max-height:60vh;margin:0 auto 1rem;box-shadow:0 20px 60px rgba(0,0,0,.6);}
.lightbox-content h3{font-family:var(--font-ar-display);color:var(--white);margin:.3rem 0;}
.lightbox-content p{color:var(--rose-soft);}
.lightbox-close{position:absolute;top:1.2rem;inset-inline-end:1.4rem;font-size:1.4rem;color:var(--white);}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);font-size:2.4rem;color:var(--white);padding:.5rem 1rem;opacity:.7;transition:opacity var(--dur-fast);}
.lightbox-nav:hover{opacity:1;}
.lightbox-nav.prev{inset-inline-start:1rem;}
.lightbox-nav.next{inset-inline-end:1rem;}

/* =========================================================
   SECRETS
========================================================= */
.secrets-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;}
.secret-btn{
  background:linear-gradient(135deg, rgba(92,14,44,.5), rgba(23,3,7,.5));
  border:1px solid rgba(230,207,156,.25);border-radius:16px;padding:1.3rem;
  font-size:1rem;color:var(--cream);text-align:center;
  transition:transform var(--dur-fast), border-color var(--dur-fast);
}
.secret-btn:hover{transform:translateY(-4px);border-color:var(--gold-soft);}

/* =========================================================
   FUTURE GRID
========================================================= */
.future-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem;}
.future-card{
  background:rgba(255,255,255,.03);border:1px solid rgba(230,207,156,.18);border-radius:18px;
  padding:1.6rem;text-align:center;
}
.future-card .fc-icon{font-size:1.6rem;margin-bottom:.6rem;display:block;}
.future-card p{color:var(--rose-soft);}

/* =========================================================
   QUIZ
========================================================= */
.quiz-box{background:rgba(255,255,255,.03);border:1px solid rgba(230,207,156,.2);border-radius:20px;padding:2rem;}
.quiz-question{font-family:var(--font-ar-display);font-size:1.2rem;color:var(--white);margin-bottom:1rem;}
html[lang="en"] .quiz-question{font-family:var(--font-en-display);}
.quiz-options{display:flex;flex-direction:column;gap:.7rem;}
.quiz-option{
  text-align:start;padding:.8rem 1.1rem;border:1px solid rgba(230,207,156,.25);border-radius:12px;
  background:rgba(255,255,255,.02);transition:background var(--dur-fast), border-color var(--dur-fast);
}
.quiz-option:hover{background:rgba(230,150,170,.1);border-color:var(--gold-soft);}
.quiz-option.correct{border-color:#8fd19e;background:rgba(143,209,158,.15);}
.quiz-option.wrong{border-color:var(--rose-deep);background:rgba(166,58,82,.2);}
.quiz-result{text-align:center;font-size:1.1rem;color:var(--gold-soft);padding-top:1rem;}
.quiz-progress{font-size:.8rem;color:var(--rose-soft);margin-bottom:.6rem;}

/* =========================================================
   FINAL SECTION
========================================================= */
.final-section{min-height:90vh;text-align:center;background:radial-gradient(ellipse at 50% 30%, rgba(92,14,44,.35), transparent 70%);}
.final-name{font-family:var(--font-en-display);font-size:clamp(2rem,7vw,3.4rem);color:var(--gold-soft);margin-bottom:1.2rem;}
.final-line{font-size:1.15rem;color:var(--cream);margin:.6rem 0;}
.final-line.en-touch{font-family:var(--font-en-display);font-style:italic;color:var(--rose-soft);}
.final-sign{margin-top:1.6rem;font-family:var(--font-ar-display);color:var(--rose);font-size:1.1rem;}
.final-heart-btn{
  font-size:2.6rem;margin-top:1.8rem;transition:transform var(--dur-fast);
  animation:pulseHeart 2.4s ease-in-out infinite;
}
@keyframes pulseHeart{0%,100%{transform:scale(1);}50%{transform:scale(1.15);}}
.final-heart-btn:active{transform:scale(.85);}

/* =========================================================
   MUSIC PLAYER
========================================================= */
#music-player{
  position:fixed;bottom:1.2rem;inset-inline-start:1.2rem;z-index:400;
  display:flex;align-items:center;gap:.6rem;
  background:rgba(23,3,7,.75);border:1px solid rgba(230,207,156,.25);
  border-radius:999px;padding:.5rem .9rem;backdrop-filter:blur(10px);
  box-shadow:0 8px 24px var(--shadow);
}
#music-play-btn{font-size:.9rem;width:30px;height:30px;border-radius:50%;background:var(--rose-deep);color:var(--white);display:flex;align-items:center;justify-content:center;}
#music-progress{width:80px;accent-color:var(--gold-soft);}
#music-volume{width:60px;accent-color:var(--rose);}
@media (max-width:600px){#music-volume{display:none;}}

/* =========================================================
   OVERLAY MESSAGE (easter eggs / secrets / surprise)
========================================================= */
.overlay-message{
  position:fixed;inset:0;z-index:7000;
  background:rgba(8,1,3,.88);backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;padding:2rem;
  animation:fadeIn .4s var(--ease-soft);
}
.overlay-box{
  max-width:560px;width:100%;text-align:center;position:relative;
  background:linear-gradient(160deg, rgba(58,10,28,.9), rgba(23,3,7,.95));
  border:1px solid rgba(230,207,156,.3);border-radius:22px;padding:2.6rem 2rem;
  box-shadow:0 30px 70px rgba(0,0,0,.6);
  animation:popIn .5s var(--ease-soft);
}
@keyframes popIn{from{transform:scale(.9);opacity:0;}to{transform:scale(1);opacity:1;}}
.overlay-close{position:absolute;top:1rem;inset-inline-end:1.1rem;font-size:1.2rem;color:var(--rose-soft);}
#overlay-text-wrap p{font-size:1.1rem;color:var(--cream);margin:.6rem 0;}
#overlay-text-wrap p.overlay-en{font-family:var(--font-en-display);font-style:italic;color:var(--gold-soft);}
.overlay-hearts{position:absolute;inset:0;overflow:hidden;border-radius:22px;pointer-events:none;}

/* =========================================================
   RESPONSIVE FINE-TUNES
========================================================= */
@media (max-width:600px){
  .section{padding:4rem 6vw;}
  .timeline{padding-inline-start:1.8rem;}
  .timeline-dot{inset-inline-start:-1.8rem;}
  #music-player{inset-inline-start:.6rem;bottom:.6rem;padding:.4rem .7rem;}
  .egg-date-btn{padding:.8rem 1.4rem;}
}
