:root{--bg:#08040d;--pink:#ff78b4;--rose:#ffb9d7;--gold:#f3d28a;--white:#fffafd;--muted:#b9a9b8;--line:#ffffff1b}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--white);font-family:"DM Sans",sans-serif;overflow-x:hidden}button{font:inherit}
#space{position:fixed;inset:0;width:100%;height:100%;z-index:-5}.ambient{position:fixed;inset:0;z-index:-4;background:radial-gradient(circle at 50% 18%,#29112f 0,#0b0610 42%,#050309 100%)}.grain{position:fixed;inset:-100%;z-index:50;pointer-events:none;opacity:.022;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.nav{position:fixed;top:0;left:0;right:0;height:74px;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:env(safe-area-inset-top) 18px 0;background:linear-gradient(#08040df2,transparent);backdrop-filter:blur(14px)}.monogram{font:600 23px "Cormorant Garamond";letter-spacing:4px}.monogram span{color:var(--gold)}.chapter-progress{position:absolute;left:50%;transform:translateX(-50%);width:88px;height:2px;background:#fff1}.chapter-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--pink),var(--gold))}.nav button{width:38px;height:38px;border-radius:50%;border:1px solid #ffffff22;background:#ffffff08;color:#fff}
.screen,.hero{min-height:100svh;padding:105px 20px 55px;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.hero-photo{position:absolute;top:7vh;width:76vw;height:43vh;max-height:390px;border-radius:30px;overflow:hidden;opacity:.33;mask-image:linear-gradient(#000 35%,transparent 100%);-webkit-mask-image:linear-gradient(#000 35%,transparent 100%)}.hero-photo img,.final-image img,.portrait-ring img,.intimate-photo img{width:100%;height:100%;object-fit:cover}.photo-shine{position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,#fff3 48%,transparent 66%);animation:shine 6s infinite}.hero-content{position:relative;z-index:2;margin-top:17vh}.eyebrow{font-size:9px;letter-spacing:3.2px;color:var(--rose);font-weight:600}.hero h1,.screen h2{font:500 clamp(62px,17vw,110px)/.8 "Cormorant Garamond";letter-spacing:-2px;margin:20px 0}.hero h1 em,.screen h2 em{font-style:normal;color:var(--rose)}.arabic{font:400 31px "Cormorant Garamond";color:#f0bfd6;margin:13px}.intro{font-size:12px;line-height:1.85;color:var(--muted)}.main-btn,.next-btn{min-height:48px;padding:14px 20px;margin-top:22px;border:1px solid #ffffff27;border-radius:999px;background:#ffffff08;color:#fff;backdrop-filter:blur(12px);box-shadow:0 15px 40px #0004;transition:.25s}.main-btn:active,.next-btn:active{transform:scale(.96)}.main-btn b,.next-btn b{margin-left:17px;color:var(--rose)}.next-btn:disabled{opacity:.3;pointer-events:none}.swipe{position:absolute;bottom:22px;font-size:7px;letter-spacing:3px;color:#716174}
.intro-card{width:min(430px,100%);padding:28px 22px;border:1px solid var(--line);border-radius:28px;background:#ffffff06;backdrop-filter:blur(18px);box-shadow:0 30px 90px #0007}.portrait-ring{width:112px;height:112px;border-radius:50%;overflow:hidden;margin:auto;border:1px solid #ffb4d766;box-shadow:0 0 45px #ff579933}.intro-card h2{font-size:62px!important;margin:18px 0}.intro-card p{font-size:13px;line-height:1.9;color:var(--muted)}.signature-line{display:flex;align-items:center;gap:10px;margin-top:22px;font-size:8px;letter-spacing:3px;color:#887688}.signature-line i{height:1px;background:#ffffff1b;flex:1}
.photo-stack{position:relative;width:100%;height:420px;margin-top:15px}.photo-card{position:absolute;width:72%;max-width:285px;background:#f8eef3;color:#2d1725;padding:8px 8px 18px;box-shadow:0 25px 60px #0008;transition:.5s;touch-action:manipulation}.photo-card img{display:block;width:100%;height:280px;object-fit:cover}.photo-caption{text-align:left;padding:10px 6px 0}.photo-caption b{display:block;font:600 23px "Cormorant Garamond"}.photo-caption span{font-size:8px;color:#7b6473}.c1{left:0;top:40px;transform:rotate(-7deg);z-index:2}.c2{right:0;top:5px;transform:rotate(4deg);z-index:3}.c3{left:12%;top:105px;transform:rotate(-2deg);z-index:4}.c4{right:7%;top:110px;transform:rotate(7deg);z-index:1}.photo-card.active{transform:rotate(0) scale(1.05) translateY(-10px)!important;z-index:10}.dots{display:flex;gap:7px}.dots i{width:5px;height:5px;background:#fff2;border-radius:50%}.dots i.active{background:var(--rose);box-shadow:0 0 10px var(--rose)}
.video-shell{width:100%;max-width:430px;aspect-ratio:9/16;max-height:600px;margin-top:18px;border-radius:26px;overflow:hidden;border:1px solid #ffffff1d;background:#05030a;box-shadow:0 30px 90px #0009;position:relative}.video-shell video{width:100%;height:100%;object-fit:cover}.video-cover{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle,#351731,#08040e);pointer-events:none}.video-cover .play{width:62px;height:62px;border:1px solid #ffffff3b;border-radius:50%;display:grid;place-items:center;color:var(--rose);margin-bottom:16px}.video-cover b{font:500 30px "Cormorant Garamond"}.video-cover span{font-size:9px;color:#9f8d9f;margin-top:7px}
.stars-section h2{font-size:56px!important}.stars-section h2 em{font-size:.65em}.stars-section #starfield{position:relative;width:100%;height:390px;margin:8px 0}.star{position:absolute;width:34px;height:34px;border:0;background:url("assets/ui/star.svg") center/contain no-repeat;filter:drop-shadow(0 0 7px #ff91bc);cursor:pointer;transition:.25s;animation:twinkle 2.2s ease-in-out infinite alternate}.star:nth-child(3n){width:25px;height:25px}.star:nth-child(4n){width:43px;height:43px}.star:active{transform:scale(1.8)}.star-message-card{min-height:72px;width:100%;max-width:370px;padding:13px 18px;border:1px solid #ffffff18;border-radius:18px;background:#ffffff06;backdrop-filter:blur(12px);display:flex;align-items:center;gap:12px}.star-message-card span{color:var(--gold);font-size:18px}.star-message-card p{margin:0;text-align:left;font:500 24px "Cormorant Garamond";color:var(--rose);flex:1}.star-counter{margin-top:10px;font-size:8px;letter-spacing:2px;color:#756575}.star-counter b{color:var(--gold)} 
.intimate-frame{width:100%;max-width:430px;border-radius:30px;overflow:hidden;background:#110814;border:1px solid #ffffff1b;box-shadow:0 30px 100px #0008}.intimate-photo{height:290px;position:relative}.intimate-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 35%,#100713)}.intimate-copy{text-align:left;padding:25px}.small-heart{color:var(--pink);font-size:18px}.intimate-copy h2{font-size:58px!important;margin:8px 0 14px}.intimate-copy p{font-size:12px;line-height:1.9;color:#b9a9b8}.private-line{font-family:"Cormorant Garamond";font-size:21px!important;color:var(--rose)!important}
.gift-scene{height:280px;display:grid;place-items:center}.giftbox{width:190px;height:180px;border:0;background:none;position:relative;cursor:pointer;filter:drop-shadow(0 25px 30px #ff57983d)}.giftbox img{position:absolute;left:15px;bottom:0;width:160px;height:125px;object-fit:cover;border-radius:6px;filter:brightness(.62)}.gift-band{position:absolute;z-index:2;left:82px;bottom:0;width:28px;height:130px;background:#e9c06d}.gift-lid{position:absolute;z-index:3;left:7px;right:7px;top:43px;height:38px;border-radius:5px;background:#b93672}.gift-bow{position:absolute;z-index:4;left:59px;top:18px;width:70px;height:34px;border-radius:50%;border:14px solid #e9c06d}.gift-section #giftHint{font-size:8px;letter-spacing:3px;color:#8b798b}.letter{display:none;width:100%;max-width:430px;padding:27px;border:1px solid #ffffff1a;border-radius:22px;background:linear-gradient(145deg,#16091a,#09050e);text-align:left;box-shadow:0 30px 100px #000}.letter-top{text-align:center;font-size:7px;letter-spacing:3px;color:var(--gold)}.letter h3{font:500 50px "Cormorant Garamond";margin:22px 0 10px}.letter p{font-size:12px;color:#bdadbc;line-height:1.9}.letter strong{font:500 30px "Cormorant Garamond";color:var(--rose)}
.cake{position:relative;width:300px;height:270px;margin-top:10px}.plate{position:absolute;bottom:18px;left:12px;width:276px;height:28px;background:#ca86a8;border-radius:50%;box-shadow:0 15px 30px #000}.cake-body{position:absolute;bottom:43px;left:45px;width:210px;height:125px;background:linear-gradient(90deg,#70244b,#dc7899,#70244b);border-radius:15px 15px 32px 32px}.cake-top{position:absolute;z-index:2;bottom:137px;left:40px;width:220px;height:65px;border-radius:50%;background:#ffe5ee;box-shadow:inset 0 -12px #ce7397}.candle{position:absolute;z-index:6;bottom:168px;width:15px;height:60px;border:0;background:repeating-linear-gradient(135deg,#f4d18b 0 8px,#fff3d1 8px 14px);cursor:pointer}.c1{left:91px}.c2{left:143px}.c3{left:195px}.flame{position:absolute;z-index:7;bottom:221px;width:17px;height:25px;border-radius:50% 50% 50% 0;background:radial-gradient(circle,#fff,#ffd66c 45%,#ff639d);transform:rotate(-45deg);animation:flicker .5s infinite alternate}.f1{left:90px}.f2{left:142px}.f3{left:194px}.flame.off{display:none}#wishdone{opacity:0;color:var(--rose);font:500 25px "Cormorant Garamond";transition:1s}#wishdone.show{opacity:1}
.final-image{width:150px;height:150px;border-radius:50%;overflow:hidden;border:1px solid #ffb4d766;box-shadow:0 0 80px #ff579933;margin-bottom:12px}.final-heart{font-size:56px;color:#ff6fae;text-shadow:0 0 50px #ff5799;animation:heart 1.3s infinite}.final h2{font-size:72px!important}.final>p{color:#b7a5b6;line-height:1.8}.signature{margin-top:32px;font:500 23px "Cormorant Garamond";color:#d6a9c0}
#loader{position:fixed;inset:0;background:#07040d;z-index:100;display:grid;place-content:center;text-align:center}.loader-ring{width:60px;height:60px;border:1px solid #ff9bc866;border-radius:50%;display:grid;place-items:center;margin:auto;animation:spin 1.3s linear infinite}.loader-ring span{font:30px "Cormorant Garamond";color:var(--rose);animation:spin 1.3s linear reverse infinite}.loader-ring+p{font-size:8px;letter-spacing:4px;color:#887587}.reveal>*{opacity:0;transform:translateY(25px)}.reveal.visible>*{opacity:1;transform:none;transition:opacity .8s,transform .8s}.reveal.visible>*:nth-child(2){transition-delay:.06s}.reveal.visible>*:nth-child(3){transition-delay:.12s}.reveal.visible>*:nth-child(4){transition-delay:.18s}
#toast{position:fixed;z-index:90;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;background:#100817ee;border:1px solid #ffffff1d;border-radius:999px;padding:11px 16px;font-size:9px;letter-spacing:1px;transition:.35s}#toast.show{opacity:1;transform:translate(-50%,0)}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes shine{0%,55%{transform:translateX(-100%)}75%,100%{transform:translateX(100%)}}@keyframes twinkle{to{opacity:.45;transform:scale(.8)}}@keyframes flicker{to{transform:rotate(-40deg) scale(1.1)}}@keyframes heart{50%{transform:scale(1.13)}}
@media(min-width:700px){.screen,.hero{padding-left:8vw;padding-right:8vw}.hero h1{font-size:150px}.photo-stack{max-width:850px}}
