*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,sans-serif;color:#3f2530;background:radial-gradient(circle at top left,rgba(255,179,204,.5),transparent 34%),radial-gradient(circle at top right,rgba(255,222,235,.9),transparent 32%),linear-gradient(135deg,#fff7fa 0%,#ffe6ee 45%,#fff 100%);overflow-x:hidden}.nav{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:18px 7vw;backdrop-filter:blur(18px);background:rgba(255,255,255,.62);border-bottom:1px solid rgba(255,255,255,.7)}.brand{font-family:"Playfair Display",serif;font-size:24px;font-weight:700}.nav a{color:#5b3140;text-decoration:none;margin-left:22px;font-weight:800;font-size:14px}.hero{min-height:94vh;display:grid;place-items:center;padding:70px 7vw;position:relative;overflow:hidden}.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:blur(8px) saturate(1.08);transform:scale(1.04);opacity:.24}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,247,250,.92),rgba(255,230,238,.78),rgba(255,255,255,.88))}.hero-card,.letter-card,.promise-card,.story-card{position:relative;z-index:1;width:min(960px,100%);border:1px solid rgba(255,255,255,.88);background:rgba(255,255,255,.72);box-shadow:0 30px 80px rgba(148,53,88,.18);border-radius:36px;padding:clamp(28px,5vw,72px);backdrop-filter:blur(24px)}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:#c7507f;font-weight:900;font-size:12px}h1,h2{font-family:"Playfair Display",serif;line-height:1.02;margin:0}h1{font-size:clamp(42px,8vw,86px);max-width:950px}h2{font-size:clamp(34px,5vw,58px)}.hero-text,.promise-card p,.letter-card p,.story-card p,.letter-intro p{font-size:18px;line-height:1.8}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}.btn{border:0;border-radius:999px;padding:15px 24px;font-weight:900;cursor:pointer;text-decoration:none;display:inline-flex;transition:transform .2s ease,box-shadow .2s ease}.btn:hover{transform:translateY(-3px)}.primary{background:linear-gradient(135deg,#f04f8b,#bd2f63);color:white;box-shadow:0 15px 30px rgba(189,47,99,.25)}.ghost{background:white;color:#b43567}.section{padding:90px 7vw}.story-strip{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:18px}.story-card{padding:30px}.story-card h2{font-size:32px}.wide h2{font-size:42px}.movie-section{padding:90px 7vw;background:#1f1118;color:white}.movie-top{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}.movie-section .eyebrow{color:#ff9fca}.movie-section h2{font-size:clamp(38px,6vw,72px)}.song-box{text-align:right}.song-box p,.music-note{color:rgba(255,255,255,.72)}.slideshow{position:relative;height:min(78vh,760px);border-radius:42px;overflow:hidden;box-shadow:0 35px 95px rgba(0,0,0,.35);background:#000}.slide{position:absolute;inset:0;opacity:0;transition:opacity 1.1s ease}.slide.active{opacity:1}.slide img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1);animation:kenburns 3s linear forwards}.slide.active img{animation:kenburns 3s linear forwards}.slide:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.7),transparent 52%,rgba(0,0,0,.12))}.slide-caption{position:absolute;left:clamp(22px,5vw,70px);right:clamp(22px,5vw,70px);bottom:clamp(28px,6vw,80px);z-index:2;font-family:"Playfair Display",serif;font-size:clamp(34px,7vw,92px);line-height:1;color:white;text-shadow:0 6px 22px rgba(0,0,0,.42)}@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.055)}}.controls{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:22px}.round{width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.12);color:white;font-size:32px;cursor:pointer}.dots{display:flex;gap:7px;flex-wrap:wrap;justify-content:center}.dot{width:9px;height:9px;border-radius:50%;border:0;background:rgba(255,255,255,.35);cursor:pointer}.dot.active{background:white}.promise-section{display:grid;place-items:center}.hidden-note{opacity:0;transform:translateY(10px);transition:.35s ease;color:#bd2f63;font-weight:900}.hidden-note.show{opacity:1;transform:translateY(0)}footer{text-align:center;padding:36px;color:#7a4c5d}.cursor-heart{position:fixed;pointer-events:none;z-index:99;color:#f04f8b;font-size:18px;opacity:0;transform:translate(-50%,-50%)}.confetti{position:fixed;top:-20px;z-index:999;animation:fall 3s linear forwards}@keyframes fall{to{transform:translateY(110vh) rotate(720deg);opacity:0}}.letter-page{background:radial-gradient(circle at top,#ffe0ed,transparent 36%),linear-gradient(135deg,#fff7fb,#ffe8f0,#fff)}.back-link{display:inline-flex;margin:26px 7vw 0;color:#b43567;text-decoration:none;font-weight:900;background:white;border-radius:999px;padding:12px 18px;box-shadow:0 12px 28px rgba(148,53,88,.12)}.icon-only{width:46px;height:46px;align-items:center;justify-content:center;font-size:24px;padding:0}.letter-hearts{position:fixed;top:14px;right:22px;color:#d74b82;font-size:24px;opacity:.55;z-index:1}.letter-hero{display:grid;grid-template-columns:.85fr 1.15fr;gap:34px;align-items:center;padding:42px 7vw 30px}.letter-photo-wrap{border-radius:42px;overflow:hidden;box-shadow:0 30px 80px rgba(148,53,88,.22);transform:rotate(-2deg);background:white;padding:12px}.letter-photo-wrap img{width:100%;height:min(70vh,620px);object-fit:cover;border-radius:32px;display:block}.letter-intro{padding:20px}.letter-main{padding:20px 7vw 90px}.full-letter{width:min(900px,100%);margin:0 auto;font-family:"Playfair Display",serif;background:rgba(255,255,255,.82)}.full-letter p{font-size:clamp(18px,2vw,22px)}.signature{color:#b43567;font-weight:900}@media(max-width:850px){.nav nav{display:none}.story-strip,.letter-hero{grid-template-columns:1fr}.section,.movie-section{padding:64px 5vw}.movie-top{display:block}.song-box{text-align:left;margin-top:20px}.slideshow{height:72vh;border-radius:30px}.hero-card,.letter-card,.promise-card,.story-card{border-radius:28px;padding:28px}.wide h2{font-size:34px}.letter-photo-wrap img{height:auto}}

.splash-screen{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 30% 20%, rgba(255,255,255,.92), transparent 28%),
    radial-gradient(circle at 70% 80%, rgba(255,182,207,.85), transparent 34%),
    linear-gradient(135deg,#fff7fb,#ffd9e8,#fff);
  transition:opacity 1s ease, visibility 1s ease;
}
.splash-screen.hide{
  opacity:0;
  visibility:hidden;
}
.splash-card{
  text-align:center;
  padding:42px;
  animation:splashPop 1.1s ease both;
}
.splash-rose{
  font-size:86px;
  filter:drop-shadow(0 18px 22px rgba(189,47,99,.22));
  animation:roseFloat 1.8s ease-in-out infinite alternate;
}
.splash-card h1{
  font-size:clamp(42px,8vw,92px);
  color:#9d2d58;
  margin-top:18px;
}
.splash-card p{
  font-family:"Playfair Display",serif;
  font-size:clamp(28px,5vw,58px);
  color:#bd2f63;
  margin:18px 0 0;
}
@keyframes splashPop{
  from{opacity:0;transform:translateY(18px) scale(.96)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes roseFloat{
  from{transform:translateY(0) rotate(-4deg)}
  to{transform:translateY(-12px) rotate(4deg)}
}
.soft-song-note{
  text-align:right;
}
@media(max-width:850px){
  .soft-song-note{text-align:left}
}


/* Version 6 intro screen */
.splash-screen{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  overflow:hidden;
  cursor:pointer;
  background:
    radial-gradient(circle at 25% 20%, rgba(255,255,255,.95), transparent 26%),
    radial-gradient(circle at 75% 35%, rgba(255,169,203,.9), transparent 30%),
    radial-gradient(circle at 50% 85%, rgba(255,218,232,.95), transparent 34%),
    linear-gradient(135deg,#fff7fb 0%,#ffd7e7 45%,#fff 100%);
  transition:opacity 1s ease, visibility 1s ease, transform 1s ease;
}
.splash-screen.hide{
  opacity:0;
  visibility:hidden;
  transform:scale(1.03);
}
.splash-glow{
  position:absolute;
  width:min(72vw,720px);
  height:min(72vw,720px);
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.92),rgba(255,139,185,.28),transparent 68%);
  filter:blur(4px);
  animation:glowPulse 2.2s ease-in-out infinite alternate;
}
.splash-card{
  position:relative;
  z-index:2;
  text-align:center;
  padding:38px 26px;
  animation:splashPop 1.1s ease both;
}
.splash-small{
  margin:0 0 16px;
  text-transform:uppercase;
  letter-spacing:.22em;
  font-weight:900;
  color:#b43567;
  font-size:13px;
}
.splash-card h1{
  font-size:clamp(44px,8vw,96px);
  color:#8f244d;
  max-width:980px;
  margin:0 auto;
  text-shadow:0 16px 36px rgba(189,47,99,.15);
}
.splash-line{
  font-family:"Playfair Display",serif;
  font-size:clamp(30px,5vw,62px);
  color:#bd2f63;
  margin:20px 0 0;
}
.splash-tap{
  margin-top:34px;
  font-size:13px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(92,38,58,.62);
  animation:tapPulse 1.2s ease-in-out infinite alternate;
}
.floating-love{
  position:absolute;
  z-index:1;
  color:rgba(189,47,99,.22);
  font-family:"Playfair Display",serif;
  animation:floatLove 4s ease-in-out infinite alternate;
}
.love-1{font-size:120px;top:10%;left:10%}
.love-2{font-size:72px;top:18%;right:16%;animation-delay:.4s}
.love-3{font-size:150px;bottom:8%;right:10%;animation-delay:.8s}
.love-4{font-size:82px;bottom:16%;left:14%;animation-delay:1.1s}
@keyframes glowPulse{
  from{transform:scale(.96);opacity:.72}
  to{transform:scale(1.06);opacity:1}
}
@keyframes tapPulse{
  from{opacity:.45;transform:translateY(0)}
  to{opacity:1;transform:translateY(-4px)}
}
@keyframes floatLove{
  from{transform:translateY(0) rotate(-8deg)}
  to{transform:translateY(-18px) rotate(8deg)}
}

/* v7: simple opening, no intro splash */
.splash-screen{display:none!important;}


.music-trigger{
  border:0;
  background:transparent;
  color:#c7507f;
  font-weight:900;
  font-size:14px;
  cursor:pointer;
  padding:15px 8px;
  letter-spacing:.02em;
}
.music-trigger:hover{
  opacity:.72;
}


/* final fix: top nav music button */
.nav-music{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  top:14px;
  color:#c7507f;
  background:rgba(255,255,255,.55);
  border:1px solid rgba(199,80,127,.18);
  border-radius:999px;
  padding:10px 16px;
  font-size:14px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 10px 26px rgba(148,53,88,.08);
}
.nav-music:hover{
  opacity:.78;
}
@media(max-width:850px){
  .nav-music{
    position:static;
    transform:none;
    margin-left:auto;
  }
}


/* clean final nav music placement */
.nav-music{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  top:14px;
  color:#c7507f;
  background:rgba(255,255,255,.62);
  border:1px solid rgba(199,80,127,.18);
  border-radius:999px;
  padding:10px 16px;
  font-size:14px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 10px 26px rgba(148,53,88,.08);
}
.nav-music:hover{opacity:.78}
@media(max-width:850px){
  .nav-music{position:static;transform:none;margin-left:auto}
}
