*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#090612;color:#f9edf3;font-family:"DM Sans",sans-serif;overflow-x:hidden}#stars{position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(#ffffff55 1px,transparent 1px);background-size:80px 80px;opacity:.18;z-index:-2}.hearts{position:fixed;inset:0;pointer-events:none;z-index:20}.heart{position:absolute;font-size:14px;opacity:0;animation:float 7s linear forwards}.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 24px;position:relative}.hero-glow{position:absolute;width:55vw;height:55vw;max-width:600px;max-height:600px;border-radius:50%;background:radial-gradient(circle,#d86a9d25,transparent 65%);filter:blur(20px)}.eyebrow{letter-spacing:.18em;text-transform:uppercase;font-size:11px;opacity:.65}.hero h1{font-family:"Cormorant Garamond",serif;font-size:clamp(58px,15vw,130px);line-height:.9;margin:20px 0 12px;font-weight:600}.hero h1 span{font-style:italic}.hero-sub{font-family:"Cormorant Garamond",serif;font-size:clamp(20px,4vw,30px);opacity:.82}.primary{margin-top:42px;border:1px solid #ffffff30;border-radius:999px;background:#ffffff0c;color:#fff;padding:15px 24px;font:500 14px "DM Sans";cursor:pointer;backdrop-filter:blur(8px);transition:.3s}.primary:hover{transform:translateY(-3px);background:#ffffff16}.primary span{margin-left:10px}main{width:min(760px,100%);margin:auto;padding:0 24px}section{padding:100px 0;font-family:"Cormorant Garamond",serif;font-size:clamp(24px,5vw,34px);line-height:1.28}section p{margin:0 0 18px}strong{font-weight:700}.center{text-align:center}.story-card,.dark-section,.future,.birthday,.final,.ending{padding:90px 28px;margin:60px -4px;border-radius:30px;background:#ffffff08;border:1px solid #ffffff10;box-shadow:0 30px 100px #0006}.dark-section{background:linear-gradient(180deg,#130d1d,#090612)}.memory{margin:70px 0 10px}.memory img{display:block;width:100%;border-radius:24px;box-shadow:0 25px 70px #0008}.memory figcaption{text-align:center;font:italic 16px "Cormorant Garamond";opacity:.6;margin-top:15px}.chat{margin:45px auto;display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:460px;font:15px "DM Sans"}.bubble{padding:12px 15px;border-radius:18px;background:#ffffff10}.me{justify-self:start}.her{justify-self:end;background:#8e416b33}.time{grid-column:1/-1;text-align:center;opacity:.4;font-size:11px;letter-spacing:.12em}.final-time{opacity:1;color:#f4a9c9}.split{display:grid;grid-template-columns:1fr;gap:35px}.progression{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;font:500 13px "DM Sans";letter-spacing:.08em;text-transform:uppercase;opacity:.75}.progression i{font-style:normal;opacity:.5}.quote{min-height:55vh;display:flex;flex-direction:column;justify-content:center;text-align:center;font-size:clamp(32px,7vw,54px)}.hug{text-align:center}.hug-art{font-size:100px;filter:drop-shadow(0 15px 30px #e56a9d33);margin-bottom:30px}.diwali{text-align:center;background:radial-gradient(circle at 50% 20%,#e7a74d20,transparent 45%)}.lights{letter-spacing:25px;color:#f6cf8a;font-size:28px;margin-bottom:45px}.big-word{font-size:clamp(34px,7vw,58px);font-weight:600}.traits .trait-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:35px 0 45px}.trait-grid span,.trait-grid strong{font:500 14px "DM Sans";padding:16px;border:1px solid #ffffff12;border-radius:16px;background:#ffffff06}.trait-grid strong{grid-column:1/-1;text-align:center;color:#f4a9c9}.birthday{text-align:center;min-height:80vh;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 50% 30%,#c0528522,transparent 55%)}.birthday h2,.ending h2{font-family:"Cormorant Garamond";font-size:clamp(42px,9vw,78px);margin:20px 0 55px}.date{font:600 12px "DM Sans";letter-spacing:.25em;text-transform:uppercase;opacity:.65}.final-art{margin:0 auto 50px;max-width:600px}.final-art img{width:100%;border-radius:25px}.final{text-align:center}.ending{text-align:center;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(180deg,#120b1c,#05030a)}.ending p{opacity:.82}.ending h2{color:#f6b5d0}.music-note{margin-top:50px;font:500 13px "DM Sans";letter-spacing:.08em;opacity:.5}.reveal{opacity:0;transform:translateY(45px);transition:opacity 1s ease,transform 1s ease}.reveal.visible{opacity:1;transform:none}@keyframes float{0%{transform:translateY(20px) scale(.8);opacity:0}15%{opacity:.65}100%{transform:translateY(-100vh) rotate(20deg);opacity:0}}@media(max-width:600px){section{padding:80px 0}.story-card,.dark-section,.future,.birthday,.final,.ending{padding:70px 20px}.traits .trait-grid{grid-template-columns:1fr}.hero{min-height:92vh}.lights{letter-spacing:10px}}

.scroll-progress{position:fixed;top:0;left:0;width:0;height:3px;background:linear-gradient(90deg,#ff8fbc,#ffd2e3);z-index:100;box-shadow:0 0 15px #ff8fbc99}
.memory img{transition:transform .8s ease,filter .8s ease}.memory:hover img{transform:scale(1.015);filter:brightness(1.06)}
.music-reveal{text-align:center;min-height:80vh;display:flex;flex-direction:column;align-items:center;justify-content:center}
.music-reveal h2{font-family:"Cormorant Garamond";font-size:clamp(38px,8vw,68px);font-weight:600;margin:18px 0 25px}
.song-frame{width:100%;margin-top:35px;aspect-ratio:16/9;border-radius:22px;overflow:hidden;border:1px solid #ffffff15;box-shadow:0 25px 80px #0009}
.song-frame iframe{width:100%;height:100%;border:0}
.song-credit{font:12px "DM Sans";opacity:.5;margin-top:16px}
