.floatingContainer{pointer-events:none;z-index:0;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}.floatingImage{opacity:0;filter:none;will-change:transform,opacity;animation-timing-function:ease-in-out;animation-iteration-count:infinite;position:absolute}.float0{opacity:.65;width:100px;animation:11s ease-in-out infinite drift0,11s ease-in-out infinite fadeFloat;top:-8%;left:5%}.float1{opacity:.55;width:80px;animation:14s ease-in-out 1s infinite drift1,14s ease-in-out 1s infinite fadeFloat;top:-10%;left:25%}.float2{opacity:.6;width:90px;animation:12s ease-in-out 2s infinite drift2,12s ease-in-out 2s infinite fadeFloat;top:-12%;left:48%}.float3{opacity:.65;width:75px;animation:15s ease-in-out .5s infinite drift3,15s ease-in-out .5s infinite fadeFloat;top:-8%;left:70%}.float4{opacity:.58;width:85px;animation:13s ease-in-out 3s infinite drift4,13s ease-in-out 3s infinite fadeFloat;top:-10%;left:88%}.float5{opacity:.55;width:70px;animation:16s ease-in-out 1.5s infinite drift5,16s ease-in-out 1.5s infinite fadeFloat;top:-12%;left:15%}.float6{opacity:.62;width:95px;animation:12s ease-in-out 2.5s infinite drift6,12s ease-in-out 2.5s infinite fadeFloat;top:-8%;left:38%}.float7{opacity:.7;width:65px;animation:13s ease-in-out 3.5s infinite drift7,13s ease-in-out 3.5s infinite fadeFloat;top:-10%;left:60%}.float8{opacity:.58;width:88px;animation:14s ease-in-out 1s infinite drift8,14s ease-in-out 1s infinite fadeFloat;top:-8%;left:80%}.float9{opacity:.62;width:78px;animation:15s ease-in-out 4s infinite drift9,15s ease-in-out 4s infinite fadeFloat;top:-12%;left:10%}.float10{opacity:.6;width:82px;animation:11s ease-in-out 2s infinite drift10,11s ease-in-out 2s infinite fadeFloat;top:-10%;left:55%}@keyframes fadeFloat{0%{opacity:0}8%{opacity:.65}92%{opacity:.65}to{opacity:0}}@keyframes drift0{0%{transform:translateY(0)translate(0)rotate(0)}25%{transform:translateY(30vh)translate(30px)rotate(8deg)}50%{transform:translateY(60vh)translate(-20px)rotate(-5deg)}75%{transform:translateY(85vh)translate(25px)rotate(6deg)}to{transform:translateY(115vh)translate(0)rotate(0)}}@keyframes drift1{0%{transform:translateY(0)translate(0)rotate(0)}25%{transform:translateY(28vh)translate(-35px)rotate(-10deg)}50%{transform:translateY(55vh)translate(25px)rotate(7deg)}75%{transform:translateY(82vh)translate(-15px)rotate(-4deg)}to{transform:translateY(115vh)translate(0)rotate(0)}}@keyframes drift2{0%{transform:translateY(0)translate(0)rotate(0)scale(1)}30%{transform:translateY(35vh)translate(40px)rotate(12deg)scale(1.05)}60%{transform:translateY(70vh)translate(-30px)rotate(-6deg)scale(.95)}to{transform:translateY(115vh)translate(10px)rotate(3deg)scale(1)}}@keyframes drift3{0%{transform:translateY(0)translate(0)rotate(0)}20%{transform:translateY(22vh)translate(-25px)rotate(-8deg)}50%{transform:translateY(58vh)translate(35px)rotate(10deg)}80%{transform:translateY(90vh)translate(-10px)rotate(-3deg)}to{transform:translateY(115vh)translate(0)rotate(0)}}@keyframes drift4{0%{transform:translateY(0)translate(0)rotate(0)}35%{transform:translateY(40vh)translate(20px)rotate(6deg)}65%{transform:translateY(75vh)translate(-40px)rotate(-12deg)}to{transform:translateY(115vh)translate(5px)rotate(2deg)}}@keyframes drift5{0%{transform:translateY(0)translate(0)rotate(0)scale(1)}25%{transform:translateY(30vh)translate(45px)rotate(15deg)scale(1.08)}50%{transform:translateY(60vh)translate(-15px)rotate(-4deg)scale(.92)}75%{transform:translateY(88vh)translate(20px)rotate(8deg)scale(1.03)}to{transform:translateY(115vh)translate(0)rotate(0)scale(1)}}@keyframes drift6{0%{transform:translateY(0)translate(0)rotate(0)}30%{transform:translateY(33vh)translate(-28px)rotate(-9deg)}60%{transform:translateY(68vh)translate(32px)rotate(7deg)}to{transform:translateY(115vh)translate(-5px)rotate(-2deg)}}@keyframes drift7{0%{transform:translateY(0)translate(0)rotate(0)}20%{transform:translateY(25vh)translate(38px)rotate(11deg)}50%{transform:translateY(55vh)translate(-22px)rotate(-8deg)}80%{transform:translateY(85vh)translate(15px)rotate(5deg)}to{transform:translateY(115vh)translate(0)rotate(0)}}@keyframes drift8{0%{transform:translateY(0)translate(0)rotate(0)scale(1)}40%{transform:translateY(45vh)translate(-32px)rotate(-7deg)scale(1.06)}70%{transform:translateY(80vh)translate(28px)rotate(9deg)scale(.94)}to{transform:translateY(115vh)translate(0)rotate(0)scale(1)}}@keyframes drift9{0%{transform:translateY(0)translate(0)rotate(0)}25%{transform:translateY(28vh)translate(22px)rotate(7deg)}55%{transform:translateY(62vh)translate(-35px)rotate(-11deg)}80%{transform:translateY(87vh)translate(18px)rotate(4deg)}to{transform:translateY(115vh)translate(0)rotate(0)}}@keyframes drift10{0%{transform:translateY(0)translate(0)rotate(0)}30%{transform:translateY(35vh)translate(-18px)rotate(-6deg)}60%{transform:translateY(65vh)translate(30px)rotate(10deg)}to{transform:translateY(115vh)translate(-8px)rotate(-3deg)}}@media (max-width:600px){.float0,.float1,.float2,.float3,.float4,.float5,.float6,.float7,.float8,.float9,.float10{width:50px!important}}
.envelopeScene{flex-direction:column;justify-content:center;align-items:center;animation:1s cubic-bezier(.23,1,.32,1) forwards envelopeEntrance;display:flex}@keyframes envelopeEntrance{0%{opacity:0;transform:scale(.85)translateY(30px)}to{opacity:1;transform:scale(1)translateY(0)}}.envelopeCard{cursor:pointer;background:linear-gradient(175deg,#e8a0a0 0%,#d48b8b 40%,#c07878 100%);border-radius:20px;width:320px;height:460px;transition:transform .4s;position:relative;overflow:hidden;box-shadow:0 20px 60px #0003,0 8px 24px #b76e7933,inset 0 1px #ffffff26}.envelopeCard:hover{transform:translateY(-6px)}.goldRibbon{z-index:2;background:linear-gradient(#f5d36e 0%,#e8b830 20%,#d4a520 40%,#e8b830 60%,#f5d36e 80%,#c99a20 100%);height:36px;position:absolute;top:70px;left:-20px;right:-20px;transform:rotate(-4deg);box-shadow:0 2px 8px #00000026,inset 0 1px #ffffff4d}.goldRibbon:after{content:"";background:linear-gradient(#0000 0%,#ffffff14 50%,#0000 100%);position:absolute;inset:-2px 0}.medallion{z-index:5;background:linear-gradient(145deg,#f5d36e 0%,#d4a520 50%,#b8910a 100%);border-radius:50%;justify-content:center;align-items:center;width:100px;height:100px;animation:3s ease-in-out infinite medallionPulse;display:flex;position:absolute;top:40px;left:50%;transform:translate(-50%);box-shadow:0 0 0 5px #c07878,0 0 0 8px #d4a520,0 4px 16px #0003}.medallion:before{content:"";background:linear-gradient(145deg,#d48b8b 0%,#c07878 100%);border-radius:50%;position:absolute;inset:6px;box-shadow:inset 0 2px 6px #0003}.medallionHeart{z-index:1;filter:drop-shadow(0 2px 4px #0003);font-size:40px;line-height:1;position:relative}@keyframes medallionPulse{0%,to{box-shadow:0 0 0 5px #c07878,0 0 0 8px #d4a520,0 4px 16px #0003,0 0 0 12px #d4a52000}50%{box-shadow:0 0 0 5px #c07878,0 0 0 8px #d4a520,0 4px 16px #0003,0 0 0 18px #d4a52026}}.envelopeText{text-align:center;z-index:3;color:#fff;letter-spacing:1px;text-shadow:0 2px 8px #0003;padding:0 20px;font-family:Great Vibes,cursive;font-size:42px;font-weight:400;line-height:1.2;position:absolute;bottom:120px;left:0;right:0}.envelopeButton{z-index:3;color:#3d3020;width:220px;font-family:var(--font-display);letter-spacing:1.5px;cursor:pointer;background:linear-gradient(#fce8b2 0%,#f5d36e 40%,#e8b830 100%);border:none;border-radius:50px;padding:14px 0;font-size:18px;font-weight:600;transition:all .3s;position:absolute;bottom:60px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000026,inset 0 1px #fff6}.envelopeButton:hover{transform:translate(-50%)translateY(-2px);box-shadow:0 6px 24px #0003,inset 0 1px #fff6}.envelopeButton:active{transform:translate(-50%)translateY(0)}.cornerSwirl{z-index:3;color:#d4a520;opacity:.7;font-size:28px;line-height:1;position:absolute;bottom:16px}.cornerSwirlLeft{left:20px}.cornerSwirlRight{right:20px;transform:scaleX(-1)}.envelopeCard:after{content:"";border-radius:inherit;pointer-events:none;z-index:1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");position:absolute;inset:0}.envelopeScene.fadeOut{animation:.5s ease-out forwards envelopeFadeOut}@keyframes envelopeFadeOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.92)translateY(15px)}}@media (max-width:480px){.envelopeCard{width:280px;height:400px}.goldRibbon{height:30px;top:55px}.medallion{width:85px;height:85px;top:28px}.medallionHeart{font-size:34px}.envelopeText{font-size:36px;bottom:100px}.envelopeButton{width:190px;padding:12px 0;font-size:16px;bottom:45px}}
.letterOverlay{z-index:100;padding:20px;padding-top:max(20px,env(safe-area-inset-top,20px));justify-content:center;align-items:flex-start;animation:.4s ease-out forwards overlayIn;display:flex;position:fixed;inset:0;overflow-y:auto}.closeButton{background:var(--letter-bg);color:#b8962e;cursor:pointer;z-index:10;border:1px solid #e8d5a3;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;line-height:1;transition:all .3s;display:flex;position:absolute;top:12px;right:12px}.closeButton:hover{color:#8a6d1b;background:#f5ecd0;transform:scale(1.1)}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.letterCard{background:var(--letter-bg);width:100%;max-width:480px;max-height:90vh;box-shadow:0 0 0 2px #c9a84c,0 0 0 6px var(--letter-bg),0 0 0 8px #dfc06a,0 12px 40px #b76e7933,0 0 60px #b76e7914;border-radius:8px;padding:48px 36px 36px;animation:.8s cubic-bezier(.23,1,.32,1) .2s both letterSlideUp;position:relative;overflow-y:auto}.letterCard:before{content:"";border-radius:inherit;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.025'/%3E%3C/svg%3E");position:absolute;inset:0}.letterInner{border:1px solid var(--rose-gold-pale);border-radius:4px;padding:32px 24px;position:relative}.letterInner:before,.letterInner:after{content:"✦";color:#c9a84c;font-size:14px;position:absolute}.letterInner:before{top:-8px;left:50%;transform:translate(-50%)}.letterInner:after{bottom:-8px;left:50%;transform:translate(-50%)}@keyframes letterSlideUp{0%{opacity:0;transform:translateY(60px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.letterCard::-webkit-scrollbar{width:4px}.letterCard::-webkit-scrollbar-track{background:0 0}.letterCard::-webkit-scrollbar-thumb{background:#e8d5a3;border-radius:2px}.letterHeader{text-align:center;margin-bottom:8px}.letterName{font-family:var(--font-display);color:#b8962e;letter-spacing:1px;text-shadow:0 1px 4px #b4913c26;font-size:28px;font-style:italic;font-weight:600;line-height:1.3}.goldOrnament{opacity:0;justify-content:center;align-items:center;gap:0;margin:16px 0 24px;animation:.8s ease-out .3s forwards poemFadeIn;display:flex}.ornamentLine{flex:1;max-width:80px;height:1px}.ornamentLineLeft{background:linear-gradient(90deg,#0000,#c9a84c)}.ornamentLineRight{background:linear-gradient(270deg,#0000,#c9a84c)}.ornamentCenter{color:#c9a84c;align-items:center;gap:6px;padding:0 10px;font-size:12px;line-height:1;display:flex}.ornamentSwirl{color:#c9a84c;opacity:.7;font-size:18px}.ornamentDiamond{color:#dfc06a;font-size:10px}.ornamentSwirlFlipped{transform:scaleX(-1)}.letterDivider{color:#e8d5a3;justify-content:center;align-items:center;gap:12px;margin:20px 0;font-size:10px;display:flex}.letterDivider:before,.letterDivider:after{content:"";background:linear-gradient(90deg,#0000,#e8d5a3,#0000);flex:1;height:1px}.poemBody{font-family:var(--font-body);color:var(--letter-text);text-align:center;margin-bottom:8px;font-size:17px;font-weight:400;line-height:1.85}.poemParagraph{opacity:0;margin-bottom:16px;animation:.6s ease-out forwards poemFadeIn}.poemParagraph:first-child{animation-delay:.6s}.poemParagraph:nth-child(2){animation-delay:.9s}.poemParagraph:nth-child(3){animation-delay:1.2s}.poemParagraph:nth-child(4){animation-delay:1.5s}.poemParagraph:nth-child(5){animation-delay:1.8s}.poemParagraph:nth-child(6){animation-delay:2.1s}.poemParagraph:nth-child(7){animation-delay:2.4s}.poemParagraph:nth-child(8){animation-delay:2.7s}@keyframes poemFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.letterClosing{text-align:center;font-family:var(--font-display);color:#b8962e;opacity:0;margin-top:8px;font-size:20px;font-style:italic;font-weight:500;animation:.6s ease-out 3s forwards poemFadeIn}.giftButtonWrapper{text-align:center;opacity:0;margin-top:28px;animation:.8s ease-out 3.3s forwards poemFadeIn}.giftButton{font-family:var(--font-display);letter-spacing:.5px;color:#fff;cursor:pointer;background:linear-gradient(135deg,#c9a84c 0%,#dfc06a 50%,#b8962e 100%);border:none;border-radius:50px;align-items:center;gap:8px;padding:14px 36px;font-size:16px;font-weight:500;text-decoration:none;transition:all .3s;display:inline-flex;box-shadow:0 4px 16px #b4913c4d,0 1px 3px #b4913c33}.giftButton:hover{transform:translateY(-2px);box-shadow:0 6px 24px #b4913c66,0 2px 6px #b4913c40}.giftButton:active{transform:translateY(0)}.giftEmoji{font-size:20px}.giftButton.disabled{opacity:.6;cursor:default}@media (max-width:480px){.letterCard{padding:32px 20px 28px}.letterInner{padding:24px 16px}.letterName{font-size:24px}.poemBody{font-size:15px}.giftButton{padding:12px 28px;font-size:14px}}.letterDate{text-align:center;font-family:var(--font-body);color:#000;letter-spacing:.3px;opacity:0;margin-top:20px;font-size:12px;font-style:italic;font-weight:400;animation:.6s ease-out 3.6s forwards poemFadeIn}.scrollHint{pointer-events:none;z-index:20;justify-content:flex-end;width:100%;padding-right:0;animation:.8s ease-out 1.5s both hintFadeIn;display:flex;position:sticky;bottom:8px}.scrollArrow{width:36px;height:36px;color:var(--rose-gold);box-shadow:0 2px 12px #b76e7940,0 0 0 1px var(--rose-gold-pale);background:#ffffffd9;border-radius:50%;justify-content:center;align-items:center;font-size:24px;font-weight:700;line-height:1;animation:2s ease-in-out infinite scrollBounce;display:flex}@keyframes scrollBounce{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@keyframes hintFadeIn{0%{opacity:0}to{opacity:1}}
.carouselContainer{text-align:center;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:120px;margin:24px 0 20px;padding:20px 16px;display:flex;position:relative}.carouselContainer:before{content:"“";font-family:var(--font-display);color:var(--rose-gold-pale);pointer-events:none;font-size:52px;line-height:1;position:absolute;top:-8px;left:12px}.verseWrapper{justify-content:center;align-items:center;width:100%;min-height:80px;display:flex;position:relative}.carouselArrow{border:1px solid var(--rose-gold-pale);width:32px;height:32px;color:var(--rose-gold);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:22px;line-height:1;transition:all .3s;display:flex}.carouselArrow:hover{background:var(--rose-gold-pale);color:var(--rose-gold-deep);transform:scale(1.1)}.carouselArrowLeft{margin-right:8px}.carouselArrowRight{margin-left:8px}.verseText{font-family:var(--font-body);color:var(--rose-gold-deep);text-align:center;opacity:0;max-width:100%;padding:0 8px;font-size:15px;font-style:italic;font-weight:400;line-height:1.7;animation:.6s ease-out forwards verseFadeIn}@keyframes verseFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.verseReference{font-family:var(--font-display);color:var(--rose-gold);letter-spacing:.5px;margin-top:8px;font-size:12px;font-style:normal;font-weight:500;display:block}.dotsContainer{flex-wrap:wrap;justify-content:center;gap:6px;max-width:200px;margin-top:16px;display:flex}.dot{background:var(--rose-gold-pale);cursor:pointer;border:none;border-radius:50%;width:6px;height:6px;padding:0;transition:all .3s}.dot:hover{background:var(--rose-gold-light);transform:scale(1.3)}.dot.active{background:var(--rose-gold);box-shadow:0 0 6px var(--rose-gold-glow);transform:scale(1.2)}
