/* ══════════════════════════════════════
   STYLE.CSS  —  Birthday Website
   Fix: reveal-up visible by default on
   section-headers so they never blank
══════════════════════════════════════ */
:root {
  --blush:      #FADADD;
  --blush-dark: #F5B8BF;
  --rose:       #C9748A;
  --rose-deep:  #8B3A52;
  --rose-gold:  #C9A9A6;
  --ivory:      #FFFAF5;
  --ivory-warm: #FFF4EC;
  --mauve:      #B784A7;
  --mauve-light:#E8D5E8;
  --gold:       #D4AF7A;
  --gold-light: #F5E6CC;
  --text-dark:  #3D2B32;
  --text-mid:   #7A5569;
  --text-soft:  #A88090;
  --shadow-soft:  0 8px 32px rgba(139,58,82,.10);
  --shadow-bloom: 0 16px 48px rgba(201,116,138,.18);
  --radius-sm: 12px; --radius-md: 20px; --radius-lg: 32px;
  --font-display: 'Playfair Display', serif;
  --font-body:    'Cormorant Garamond', serif;
  --font-accent:  'Dancing Script', cursive;
  --transition:   0.4s cubic-bezier(.25,.46,.45,.94);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;font-size:16px;}
body{font-family:var(--font-body);background:var(--ivory);color:var(--text-dark);overflow-x:hidden;cursor:none;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}

/* ── CURSOR ── */
#cursor-sparkle{
  width:22px;height:22px;
  background:radial-gradient(circle,rgba(201,116,138,.9) 0%,rgba(201,116,138,.2) 55%,transparent 100%);
  border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9999;
  transform:translate(-50%,-50%);   /* NO transition – instant */
  mix-blend-mode:multiply;
}

/* ── PETAL CANVAS ── */
#petalsCanvas{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;}

/* ── MUSIC PLAYER ── */
.music-player{position:fixed;bottom:24px;right:24px;z-index:1000;}
.music-btn{background:linear-gradient(135deg,var(--rose-deep),var(--mauve));color:#fff;border:none;border-radius:50px;padding:12px 20px;cursor:pointer;display:flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:.95rem;box-shadow:0 4px 20px rgba(139,58,82,.35);transition:var(--transition);}
.music-btn:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(139,58,82,.45);}
.music-icon{font-size:1.1rem;animation:musicPulse 1.5s ease-in-out infinite;}

/* ── NAVBAR ── */
.navbar{position:fixed;top:0;left:0;right:0;z-index:900;padding:16px 48px;display:flex;align-items:center;justify-content:space-between;transition:var(--transition);}
.navbar.scrolled{background:rgba(255,250,245,.95);backdrop-filter:blur(16px);box-shadow:0 2px 24px rgba(139,58,82,.08);}
.nav-brand{display:flex;align-items:center;gap:10px;}
.heart-logo{font-size:1.4rem;color:var(--rose);animation:heartbeat 2s ease-in-out infinite;}
.brand-text{font-family:var(--font-accent);font-size:1.3rem;color:var(--rose-deep);}
.nav-links{list-style:none;display:flex;gap:32px;align-items:center;}
.nav-links a{font-family:var(--font-body);font-size:1rem;color:var(--text-mid);letter-spacing:.02em;transition:var(--transition);position:relative;}
.nav-links a::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--rose);transition:var(--transition);}
.nav-links a:hover{color:var(--rose-deep);}
.nav-links a:hover::after{width:100%;}
.nav-cta{background:linear-gradient(135deg,var(--rose),var(--rose-deep));color:#fff!important;padding:10px 24px;border-radius:50px;font-size:.9rem!important;}
.nav-cta::after{display:none!important;}
.nav-cta:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft);}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;}
.hamburger span{width:24px;height:2px;background:var(--rose-deep);border-radius:2px;transition:var(--transition);}
.back-link{font-family:var(--font-body);font-size:.9rem;color:var(--rose);text-decoration:none;transition:var(--transition);margin-right:12px;}
.back-link:hover{color:var(--rose-deep);}

/* ── BUTTONS ── */
.btn-primary{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--rose),var(--rose-deep));color:#fff;padding:16px 36px;border-radius:50px;font-family:var(--font-body);font-size:1.05rem;letter-spacing:.03em;box-shadow:0 4px 20px rgba(139,58,82,.30);transition:var(--transition);border:none;cursor:pointer;}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 8px 32px rgba(139,58,82,.40);}
.btn-ghost{display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--rose-deep);padding:15px 36px;border-radius:50px;border:1.5px solid var(--rose);font-family:var(--font-body);font-size:1.05rem;transition:var(--transition);cursor:pointer;}
.btn-ghost:hover{background:var(--blush);transform:translateY(-3px);}
.big-btn{padding:20px 48px;font-size:1.15rem;}

/* ══════════════════════════════════════
   HERO
══════════════════════════════════════ */
.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;background:linear-gradient(160deg,var(--ivory) 0%,var(--ivory-warm) 40%,var(--blush) 100%);overflow:hidden;padding:120px 48px 80px;}
.hero-bg-circles{position:absolute;inset:0;pointer-events:none;}
.circle{position:absolute;border-radius:50%;background:radial-gradient(circle,var(--blush-dark) 0%,transparent 70%);opacity:.25;animation:floatCircle 8s ease-in-out infinite;}
.c1{width:500px;height:500px;top:-100px;right:-100px;animation-delay:0s;}
.c2{width:350px;height:350px;bottom:-80px;left:-80px;animation-delay:-3s;}
.c3{width:200px;height:200px;top:50%;left:50%;animation-delay:-6s;}
.hero-content{text-align:center;max-width:800px;position:relative;z-index:1;}
.hero-pre{font-family:var(--font-accent);font-size:1.3rem;color:var(--rose);margin-bottom:16px;opacity:0;}
.hero-title{font-family:var(--font-display);line-height:1.05;margin-bottom:24px;}
.title-line{display:block;opacity:0;}
.title-line:nth-child(1){font-size:clamp(2.5rem,6vw,4rem);color:var(--text-dark);}
.title-line:nth-child(2){font-size:clamp(3.5rem,9vw,6.5rem);color:var(--rose-deep);font-style:italic;}
.title-line:nth-child(3).cursive{font-family:var(--font-accent);font-size:clamp(2rem,5vw,3.2rem);color:var(--mauve);}
.hero-sub{font-size:clamp(1rem,2vw,1.2rem);color:var(--text-mid);max-width:560px;margin:0 auto 36px;line-height:1.8;opacity:0;}
.hero-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;opacity:0;margin-bottom:48px;}
.countdown-wrap{opacity:0;}
.countdown-label{font-family:var(--font-body);font-size:.9rem;color:var(--text-soft);letter-spacing:.1em;text-transform:uppercase;margin-bottom:16px;}
.countdown{display:flex;align-items:center;justify-content:center;}
.cd-box{background:#fff;border-radius:var(--radius-sm);padding:16px 24px;text-align:center;min-width:90px;box-shadow:var(--shadow-soft);}
.cd-box span{display:block;font-family:var(--font-display);font-size:2.4rem;color:var(--rose-deep);line-height:1;}
.cd-box label{font-family:var(--font-body);font-size:.75rem;color:var(--text-soft);letter-spacing:.12em;text-transform:uppercase;margin-top:4px;}
.cd-sep{font-family:var(--font-display);font-size:2rem;color:var(--rose);padding:0 8px;}
.scroll-hint{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);text-align:center;opacity:0;animation:heroFadeUp .8s 2.2s ease forwards;}
.scroll-hint span{font-family:var(--font-body);font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-soft);}
.scroll-arrow{font-size:1.2rem;color:var(--rose);animation:bounceDown 1.5s ease-in-out infinite;margin-top:6px;}

/* ══════════════════════════════════════
   SECTION COMMONS
══════════════════════════════════════ */
.container{max-width:1100px;margin:0 auto;padding:0 32px;}
.section-header{text-align:center;margin-bottom:64px;}
.section-tag{font-family:var(--font-body);font-size:.85rem;letter-spacing:.25em;text-transform:uppercase;color:var(--rose);display:block;margin-bottom:12px;}
.section-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.2rem);color:var(--text-dark);font-style:italic;margin-bottom:12px;}
.section-sub{font-family:var(--font-body);font-size:1.05rem;color:var(--text-soft);max-width:480px;margin:0 auto;line-height:1.7;}
.cursive{font-family:var(--font-accent);}

/* ══════════════════════════════════════
   REASONS
══════════════════════════════════════ */
.reasons-section{padding:100px 0;background:#fff;}
.reasons-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:28px;}
.reason-card{background:linear-gradient(145deg,var(--ivory),var(--blush));border-radius:var(--radius-md);padding:40px 32px;text-align:center;position:relative;overflow:hidden;box-shadow:var(--shadow-soft);transition:var(--transition);
  /* start transparent for reveal animation */
  opacity:0;transform:translateY(30px);
}
.reason-card.visible{opacity:1;transform:none;}
.reason-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-bloom);}
.reason-icon{font-size:2.4rem;margin-bottom:18px;display:block;animation:floatIcon 3s ease-in-out infinite;}
.reason-card h3{font-family:var(--font-display);font-size:1.35rem;color:var(--rose-deep);margin-bottom:12px;font-style:italic;}
.reason-card p{font-family:var(--font-body);font-size:1rem;color:var(--text-mid);line-height:1.75;}

/* ══════════════════════════════════════
   LOVE LETTER
══════════════════════════════════════ */
.letter-section{padding:100px 0;background:linear-gradient(160deg,var(--ivory-warm),var(--mauve-light));}
.letter-envelope{max-width:480px;margin:0 auto 48px;cursor:pointer;text-align:center;position:relative;transition:var(--transition);}
.letter-envelope:hover{transform:scale(1.03);}
.envelope-body{background:linear-gradient(145deg,#FFF4F6,var(--blush));border:2px solid var(--rose-gold);border-radius:var(--radius-md);padding:60px 40px;box-shadow:var(--shadow-bloom);}
.envelope-flap{width:0;height:0;border-left:240px solid transparent;border-right:240px solid transparent;border-top:120px solid var(--blush-dark);margin:0 auto;position:relative;z-index:1;filter:drop-shadow(0 2px 4px rgba(139,58,82,.15));}
.envelope-seal{font-size:3.5rem;display:block;margin-bottom:16px;animation:sealPulse 2s ease-in-out infinite;}
.envelope-hint{font-family:var(--font-accent);font-size:1.3rem;color:var(--rose);}
.letter-paper{display:none;max-width:640px;margin:0 auto;background:linear-gradient(160deg,#FFFEF8,#FFF8F0);border-radius:var(--radius-md);padding:60px 52px;box-shadow:0 20px 60px rgba(139,58,82,.15);border:1px solid var(--gold-light);position:relative;animation:letterReveal .8s cubic-bezier(.34,1.56,.64,1) forwards;}
.letter-paper::before{content:'';position:absolute;left:60px;top:0;bottom:0;width:1px;background:rgba(201,116,138,.2);}
.letter-decoration{text-align:center;color:var(--rose-gold);letter-spacing:12px;font-size:.9rem;}
.top-decoration{margin-bottom:28px;}
.bottom-decoration{margin-top:28px;}
.letter-date{font-family:var(--font-body);font-size:.9rem;color:var(--text-soft);text-align:right;font-style:italic;margin-bottom:24px;}
.letter-salutation{font-family:var(--font-display);font-size:1.6rem;color:var(--rose-deep);font-style:italic;margin-bottom:24px;}
.letter-body p{font-family:var(--font-body);font-size:1.08rem;color:var(--text-mid);line-height:2;margin-bottom:20px;}
.letter-body em{color:var(--rose-deep);font-style:italic;}
.letter-closing{margin-top:32px;text-align:right;}
.letter-closing p{font-family:var(--font-body);font-size:1rem;color:var(--text-mid);}
.letter-signature{font-size:2rem;color:var(--rose-deep);margin-top:8px;}

/* ══════════════════════════════════════
   TIMELINE
══════════════════════════════════════ */
.timeline-section{padding:100px 0;background:#fff;}
.timeline{position:relative;max-width:800px;margin:0 auto;}
.timeline::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,transparent,var(--rose-gold),transparent);transform:translateX(-50%);}
.timeline-item{display:flex;gap:40px;margin-bottom:64px;opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s ease;}
.timeline-item.visible{opacity:1;transform:none;}
.timeline-item:nth-child(odd) {flex-direction:row;}
.timeline-item:nth-child(even){flex-direction:row-reverse;}
.timeline-dot{position:relative;z-index:1;flex-shrink:0;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--rose),var(--rose-deep));display:flex;align-items:center;justify-content:center;font-size:1.3rem;box-shadow:0 0 0 6px var(--blush),var(--shadow-soft);align-self:flex-start;margin-top:12px;}
.timeline-content{background:linear-gradient(145deg,var(--ivory),var(--blush));border-radius:var(--radius-md);padding:28px 32px;box-shadow:var(--shadow-soft);flex:1;border:1px solid rgba(201,169,166,.3);}
.timeline-date{font-family:var(--font-accent);font-size:1.1rem;color:var(--rose);margin-bottom:8px;}
.timeline-title{font-family:var(--font-display);font-size:1.3rem;color:var(--text-dark);font-style:italic;margin-bottom:10px;}
.timeline-text{font-family:var(--font-body);font-size:1rem;color:var(--text-mid);line-height:1.75;}
.timeline-cta{text-align:center;margin-top:48px;}

/* ══════════════════════════════════════
   GALLERY
══════════════════════════════════════ */
.gallery-section{padding:100px 0;background:linear-gradient(160deg,var(--ivory-warm),var(--blush));}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;margin-bottom:48px;}
.gallery-item{border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-soft);cursor:pointer;transition:var(--transition);position:relative;aspect-ratio:1;background:var(--blush);opacity:0;transform:scale(.92);}
.gallery-item.visible{opacity:1;transform:scale(1);}
.gallery-item:hover{transform:scale(1.04);box-shadow:var(--shadow-bloom);}
.gallery-item img,.gallery-item video{width:100%;height:100%;object-fit:cover;}
.gallery-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(139,58,82,.75) 0%,transparent 60%);opacity:0;transition:var(--transition);display:flex;align-items:flex-end;padding:20px;}
.gallery-item:hover .gallery-overlay{opacity:1;}
.gallery-overlay-text{color:#fff;font-family:var(--font-body);font-size:.95rem;}
.gallery-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--text-soft);font-family:var(--font-body);cursor:pointer;transition:var(--transition);}
.gallery-placeholder:hover{background:var(--blush-dark);}
.gallery-placeholder span{font-size:2.5rem;}
.gallery-placeholder p{font-size:.9rem;text-align:center;padding:0 12px;}
.gallery-cta{text-align:center;display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}

/* ══════════════════════════════════════
   WISHES
══════════════════════════════════════ */
.wishes-section{padding:120px 0;text-align:center;position:relative;background:linear-gradient(135deg,var(--rose-deep) 0%,var(--mauve) 100%);overflow:hidden;}
.wishes-bg{position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/svg%3E");}
.wishes-content{position:relative;z-index:1;color:#fff;}
.wish-candle{font-size:4rem;margin-bottom:20px;display:block;animation:candleFlicker 1.5s ease-in-out infinite alternate;}
.wishes-title{font-family:var(--font-accent);font-size:clamp(2.5rem,6vw,4rem);margin-bottom:24px;color:#fff;}
.wishes-text{font-family:var(--font-body);font-size:1.15rem;color:rgba(255,255,255,.85);max-width:540px;margin:0 auto 48px;line-height:1.8;}
.confetti-trigger .btn-primary{background:#fff;color:var(--rose-deep);box-shadow:0 8px 32px rgba(255,255,255,.3);}
.confetti-trigger .btn-primary:hover{box-shadow:0 12px 40px rgba(255,255,255,.5);}

/* ══════════════════════════════════════
   FOOTER
══════════════════════════════════════ */
.footer{padding:60px 32px;text-align:center;background:linear-gradient(160deg,var(--ivory-warm),var(--blush));border-top:1px solid rgba(201,169,166,.3);}
.footer-hearts{margin-bottom:16px;}
.fh{font-size:1.5rem;color:var(--rose);margin:0 8px;display:inline-block;animation:heartbeat 2s ease-in-out infinite;}
.fh:nth-child(2){animation-delay:.3s;}
.fh:nth-child(3){animation-delay:.6s;}
.footer-text{font-family:var(--font-accent);font-size:1.6rem;color:var(--rose-deep);margin-bottom:8px;}
.footer-sub{font-family:var(--font-body);color:var(--text-soft);font-size:.95rem;margin-bottom:32px;}
.footer-links{display:flex;gap:24px;justify-content:center;flex-wrap:wrap;}
.footer-links a{font-family:var(--font-body);color:var(--rose);font-size:.95rem;transition:var(--transition);}
.footer-links a:hover{color:var(--rose-deep);}

/* ══════════════════════════════════════
   LIGHTBOX
══════════════════════════════════════ */
.lightbox{display:none;position:fixed;inset:0;z-index:2000;background:rgba(20,8,14,.94);backdrop-filter:blur(8px);align-items:center;justify-content:center;}
.lightbox.active{display:flex;}
.lightbox-img,.lightbox-video{max-width:90vw;max-height:85vh;border-radius:var(--radius-md);box-shadow:0 32px 80px rgba(0,0,0,.6);}
.lightbox-video{display:none;}
.lightbox-close{position:absolute;top:24px;right:32px;background:rgba(255,255,255,.15);border:none;color:#fff;font-size:1.5rem;cursor:pointer;opacity:.8;transition:var(--transition);z-index:1;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.lightbox-close:hover{opacity:1;background:rgba(255,255,255,.25);transform:scale(1.1);}

/* ══════════════════════════════════════
   CONFETTI
══════════════════════════════════════ */
#confettiContainer{position:fixed;inset:0;pointer-events:none;z-index:1500;}
.confetti-piece{position:absolute;border-radius:2px;animation:confettiFall linear forwards;}

/* ══════════════════════════════════════
   REVEAL — base states
══════════════════════════════════════ */
.reveal-up{opacity:0;transform:translateY(32px);transition:opacity .8s ease,transform .8s ease;}
.reveal-up.visible{opacity:1;transform:none;}

/* ══════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════ */
@media(max-width:768px){
  .navbar{padding:16px 24px;}
  .nav-links{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(255,250,245,.97);backdrop-filter:blur(16px);flex-direction:column;align-items:center;justify-content:center;gap:32px;font-size:1.3rem;z-index:1000;}
  .nav-links.open{display:flex;}
  .hamburger{display:flex;z-index:1001;}
  .hero{padding:100px 24px 60px;}
  .timeline::before{left:28px;}
  .timeline-item{flex-direction:column!important;padding-left:72px;position:relative;}
  .timeline-dot{position:absolute;left:0;top:0;}
  .letter-paper{padding:40px 28px;}
  .letter-paper::before{left:32px;}
  .container{padding:0 20px;}
  .reasons-section,.letter-section,.timeline-section,.gallery-section{padding:70px 0;}
  .gallery-cta{flex-direction:column;align-items:center;}
}
