.tear-seam{-webkit-tap-highlight-color:transparent;touch-action:none!important}.letter-key-hint{-webkit-animation:letter-key-hint 2.8s cubic-bezier(.45,0,.3,1) infinite;animation:letter-key-hint 2.8s cubic-bezier(.45,0,.3,1) infinite}.envelope-fleck{border-radius:1px;box-shadow:0 .5px .5px rgba(150,70,95,.18);pointer-events:none;position:absolute;will-change:transform,opacity}@-webkit-keyframes letter-key-hint{0%,58%,to{-webkit-transform:translateZ(0) rotate(0deg);transform:translateZ(0) rotate(0deg)}16%{-webkit-transform:translate3d(8px,-3px,0) rotate(-6deg);transform:translate3d(8px,-3px,0) rotate(-6deg)}30%{-webkit-transform:translate3d(1px,0,0) rotate(1.5deg);transform:translate3d(1px,0,0) rotate(1.5deg)}42%{-webkit-transform:translate3d(4px,-1px,0) rotate(-2deg);transform:translate3d(4px,-1px,0) rotate(-2deg)}}@keyframes letter-key-hint{0%,58%,to{-webkit-transform:translateZ(0) rotate(0deg);transform:translateZ(0) rotate(0deg)}16%{-webkit-transform:translate3d(8px,-3px,0) rotate(-6deg);transform:translate3d(8px,-3px,0) rotate(-6deg)}30%{-webkit-transform:translate3d(1px,0,0) rotate(1.5deg);transform:translate3d(1px,0,0) rotate(1.5deg)}42%{-webkit-transform:translate3d(4px,-1px,0) rotate(-2deg);transform:translate3d(4px,-1px,0) rotate(-2deg)}}@media (prefers-reduced-motion:reduce){.letter-key-hint{-webkit-animation:none;animation:none}}.letter-cue{-webkit-animation:letter-cue-bounce 1.6s ease-in-out infinite;animation:letter-cue-bounce 1.6s ease-in-out infinite;bottom:8px;color:#d98aa3;left:50%;pointer-events:none;position:absolute;translate:-50% 0}@-webkit-keyframes letter-cue-bounce{0%,to{opacity:.55;-webkit-transform:translateY(0);transform:translateY(0)}50%{opacity:1;-webkit-transform:translateY(5px);transform:translateY(5px)}}@keyframes letter-cue-bounce{0%,to{opacity:.55;-webkit-transform:translateY(0);transform:translateY(0)}50%{opacity:1;-webkit-transform:translateY(5px);transform:translateY(5px)}}.kiss-storm{inset:0;overscroll-behavior:none;pointer-events:auto;position:fixed;touch-action:none;will-change:transform,opacity;z-index:1000}.kiss-storm-layer{left:0;position:absolute;top:0}.kiss-storm-counter{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";background:hsla(27,69%,97%,.9);border-radius:999px;color:#a3304f;font-family:Cormorant Garamond,serif;font-size:1.05rem;font-style:italic;font-variant-numeric:tabular-nums;left:calc(env(safe-area-inset-left, 0px) + 14px);padding:6px 14px;position:absolute;top:calc(env(safe-area-inset-top, 0px) + 14px)}@media (prefers-reduced-motion:reduce){.letter-cue{-webkit-animation:none;animation:none}}.love-page{--rose-blush:#fbe4ea;--rose-petal:#f9d5dd;--rose-soft:#f4b6c2;--rose-mid:#e8a0b4;--rose-deep:#d98aa3;--rose-ink:#5a3a44;--paper:#fdf8f4;--serif:"Cormorant Garamond","Cormorant",Georgia,serif;--script:"Ballet",cursive;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);-webkit-font-smoothing:antialiased;align-items:center;background:radial-gradient(70% 55% at 50% 52%,#fff4f6 0,rgba(255,244,246,0) 70%),radial-gradient(120% 90% at 50% 0,#fbe4ea 0,#f8d6de 60%,#f4c7d2 100%);box-sizing:border-box;color:var(--rose-ink);display:flex;flex-direction:column;font-family:var(--serif);inset:0;overflow:hidden;padding:calc(var(--safe-top) + 64px) 0 calc(var(--safe-bottom) + 28px);position:fixed}.love-page,.love-page button{-webkit-tap-highlight-color:transparent}.love-page button{font:inherit}.ambient{inset:0;overflow:hidden;pointer-events:none;position:absolute;z-index:0}.ambient-bokeh{-webkit-animation-direction:alternate;animation-direction:alternate;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-name:bokehDrift;animation-name:bokehDrift;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;background:radial-gradient(circle,var(--tone) 0,hsla(0,0%,100%,0) 66%);border-radius:50%;position:absolute;will-change:transform}@-webkit-keyframes bokehDrift{0%{opacity:.7;-webkit-transform:translateZ(0) scale(1);transform:translateZ(0) scale(1)}to{opacity:1;-webkit-transform:translate3d(var(--drift-x),var(--drift-y),0) scale(1.12);transform:translate3d(var(--drift-x),var(--drift-y),0) scale(1.12)}}@keyframes bokehDrift{0%{opacity:.7;-webkit-transform:translateZ(0) scale(1);transform:translateZ(0) scale(1)}to{opacity:1;-webkit-transform:translate3d(var(--drift-x),var(--drift-y),0) scale(1.12);transform:translate3d(var(--drift-x),var(--drift-y),0) scale(1.12)}}.ambient-heart{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-name:heartRise;animation-name:heartRise;-webkit-animation-timing-function:linear;animation-timing-function:linear;bottom:-32px;display:block;opacity:0;position:absolute;will-change:transform,opacity}.ambient-heart svg{display:block;height:100%;width:100%}@-webkit-keyframes heartRise{0%{opacity:0;-webkit-transform:translateZ(0) rotate(-10deg);transform:translateZ(0) rotate(-10deg)}10%{opacity:var(--heart-opacity)}25%{-webkit-transform:translate3d(var(--sway),-28vh,0) rotate(6deg);transform:translate3d(var(--sway),-28vh,0) rotate(6deg)}50%{-webkit-transform:translate3d(0,-56vh,0) rotate(-6deg);transform:translate3d(0,-56vh,0) rotate(-6deg)}75%{opacity:var(--heart-opacity);-webkit-transform:translate3d(calc(var(--sway)*-1),-84vh,0) rotate(8deg);transform:translate3d(calc(var(--sway)*-1),-84vh,0) rotate(8deg)}to{opacity:0;-webkit-transform:translate3d(0,-112vh,0) rotate(-4deg);transform:translate3d(0,-112vh,0) rotate(-4deg)}}@keyframes heartRise{0%{opacity:0;-webkit-transform:translateZ(0) rotate(-10deg);transform:translateZ(0) rotate(-10deg)}10%{opacity:var(--heart-opacity)}25%{-webkit-transform:translate3d(var(--sway),-28vh,0) rotate(6deg);transform:translate3d(var(--sway),-28vh,0) rotate(6deg)}50%{-webkit-transform:translate3d(0,-56vh,0) rotate(-6deg);transform:translate3d(0,-56vh,0) rotate(-6deg)}75%{opacity:var(--heart-opacity);-webkit-transform:translate3d(calc(var(--sway)*-1),-84vh,0) rotate(8deg);transform:translate3d(calc(var(--sway)*-1),-84vh,0) rotate(8deg)}to{opacity:0;-webkit-transform:translate3d(0,-112vh,0) rotate(-4deg);transform:translate3d(0,-112vh,0) rotate(-4deg)}}.ambient-petal{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-name:petalFall;animation-name:petalFall;-webkit-animation-timing-function:linear;animation-timing-function:linear;background:linear-gradient(135deg,#fff1f4,#f4b6c2 60%,#e8a0b4);border-radius:85% 0 85% 0;display:block;opacity:0;position:absolute;top:-24px;will-change:transform,opacity}@-webkit-keyframes petalFall{0%{opacity:0;-webkit-transform:translateZ(0) rotate(0deg) scaleX(1);transform:translateZ(0) rotate(0deg) scaleX(1)}8%{opacity:var(--petal-opacity)}30%{-webkit-transform:translate3d(var(--sway),32vh,0) rotate(calc(var(--spin)*.3)) scaleX(.55);transform:translate3d(var(--sway),32vh,0) rotate(calc(var(--spin)*.3)) scaleX(.55)}60%{-webkit-transform:translate3d(calc(var(--sway)*-.4),66vh,0) rotate(calc(var(--spin)*.6)) scaleX(1);transform:translate3d(calc(var(--sway)*-.4),66vh,0) rotate(calc(var(--spin)*.6)) scaleX(1)}90%{opacity:var(--petal-opacity)}to{opacity:0;-webkit-transform:translate3d(calc(var(--sway)*.6),108vh,0) rotate(var(--spin)) scaleX(.7);transform:translate3d(calc(var(--sway)*.6),108vh,0) rotate(var(--spin)) scaleX(.7)}}@keyframes petalFall{0%{opacity:0;-webkit-transform:translateZ(0) rotate(0deg) scaleX(1);transform:translateZ(0) rotate(0deg) scaleX(1)}8%{opacity:var(--petal-opacity)}30%{-webkit-transform:translate3d(var(--sway),32vh,0) rotate(calc(var(--spin)*.3)) scaleX(.55);transform:translate3d(var(--sway),32vh,0) rotate(calc(var(--spin)*.3)) scaleX(.55)}60%{-webkit-transform:translate3d(calc(var(--sway)*-.4),66vh,0) rotate(calc(var(--spin)*.6)) scaleX(1);transform:translate3d(calc(var(--sway)*-.4),66vh,0) rotate(calc(var(--spin)*.6)) scaleX(1)}90%{opacity:var(--petal-opacity)}to{opacity:0;-webkit-transform:translate3d(calc(var(--sway)*.6),108vh,0) rotate(var(--spin)) scaleX(.7);transform:translate3d(calc(var(--sway)*.6),108vh,0) rotate(var(--spin)) scaleX(.7)}}.love-topbar{align-items:center;display:flex;gap:10px;justify-content:flex-end;left:calc(var(--safe-left) + 14px);pointer-events:none;position:absolute;right:calc(var(--safe-right) + 14px);top:calc(var(--safe-top) + 14px);z-index:20}.love-topbar>*{pointer-events:auto}.love-topbar>button{margin-right:auto}.love-pill{align-items:center;background:hsla(27,69%,97%,.78);border:1px solid rgba(232,160,180,.55);border-radius:999px;box-shadow:0 6px 18px -10px rgba(185,95,125,.45);color:#b86a84;cursor:pointer;display:inline-flex;font-family:var(--serif);font-size:1.02rem;font-style:italic;font-weight:500;gap:6px;justify-content:center;letter-spacing:.01em;line-height:1;min-height:42px;padding:0 18px;text-decoration:none;transition:background-color .25s ease,color .25s ease;white-space:nowrap}.love-pill:hover{background:#fffaf7;color:#a85a75}.gift:focus-visible,.lightbox button:focus-visible,.love-pill:focus-visible,.polaroid:focus-visible{outline:2px solid var(--rose-deep);outline-offset:3px}.love-pill-icon{height:16px;width:16px}.love-header{align-items:center;display:flex;flex-direction:column;margin-top:auto;padding:0 16px;position:relative;text-align:center;transition:opacity .5s ease,-webkit-transform .5s ease;transition:opacity .5s ease,transform .5s ease;transition:opacity .5s ease,transform .5s ease,-webkit-transform .5s ease;z-index:1}.love-topbar{transition:opacity .4s ease}.love-page.is-collage .love-header,.love-page.is-collage .love-topbar{opacity:0;pointer-events:none}.love-eyebrow{color:var(--rose-deep);font-family:var(--script);font-size:clamp(1.35rem,3.4vw,1.7rem);line-height:1.5;margin-bottom:.2em;word-spacing:.32em}.love-title{color:var(--rose-ink);font-family:var(--serif);font-size:clamp(2.3rem,7.2vw,3.6rem);font-style:italic;font-weight:300;letter-spacing:-.005em;line-height:1.05}.progress-hearts{display:flex;gap:10px;margin-top:14px}.progress-heart{height:17px;overflow:visible;width:17px}.progress-heart path{fill:hsla(27,69%,97%,.5);stroke:var(--rose-mid);stroke-width:1.5;transition:fill .45s ease,stroke .45s ease}.progress-heart.is-filled path{fill:var(--rose-deep);stroke:var(--rose-deep)}.love-stage{box-sizing:border-box;display:grid;flex:0 1 auto;margin-bottom:auto;margin-top:clamp(22px,5.5dvh,64px);min-height:0;padding-bottom:clamp(0px,4dvh,48px);place-items:center;position:relative;width:100%}.love-stage>*{grid-area:1/1}.gift-column{align-items:center;display:flex;flex-direction:column;gap:18px;z-index:1}.envelope-rise{z-index:2}.love-page.is-lightbox .collage-close,.love-page.is-lightbox .collage-label{visibility:hidden}.gift-hint{color:#c07890;font-family:var(--serif);font-size:1.2rem;font-style:italic;letter-spacing:.02em;min-height:1.5em;transition:opacity .35s ease}.gift-hint.is-hidden{opacity:0}.gift{--gift-size:clamp(150px,min(56vw,31dvh),256px);background:none;border:0;cursor:pointer;display:block;height:calc(var(--gift-size)*1.22);padding:0;position:relative;touch-action:manipulation;width:var(--gift-size)}.gift[aria-disabled=true]{cursor:default}.gift-float{inset:0;position:absolute;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.gift--idle .gift-float{-webkit-animation:giftIdle 5.2s ease-in-out infinite;animation:giftIdle 5.2s ease-in-out infinite}@-webkit-keyframes giftIdle{0%,to{-webkit-transform:translateZ(0) rotate(0deg) scale(1);transform:translateZ(0) rotate(0deg) scale(1)}30%{-webkit-transform:translate3d(0,-5px,0) rotate(0deg) scale(1.02);transform:translate3d(0,-5px,0) rotate(0deg) scale(1.02)}62%{-webkit-transform:translateZ(0) rotate(0deg) scale(1);transform:translateZ(0) rotate(0deg) scale(1)}67%{-webkit-transform:translate3d(0,-2px,0) rotate(-3deg) scale(1);transform:translate3d(0,-2px,0) rotate(-3deg) scale(1)}72%{-webkit-transform:translate3d(0,-2px,0) rotate(3deg) scale(1);transform:translate3d(0,-2px,0) rotate(3deg) scale(1)}77%{-webkit-transform:translate3d(0,-1px,0) rotate(-2deg) scale(1);transform:translate3d(0,-1px,0) rotate(-2deg) scale(1)}82%{-webkit-transform:translateZ(0) rotate(.8deg) scale(1);transform:translateZ(0) rotate(.8deg) scale(1)}87%{-webkit-transform:translateZ(0) rotate(0deg) scale(1);transform:translateZ(0) rotate(0deg) scale(1)}}@keyframes giftIdle{0%,to{-webkit-transform:translateZ(0) rotate(0deg) scale(1);transform:translateZ(0) rotate(0deg) scale(1)}30%{-webkit-transform:translate3d(0,-5px,0) rotate(0deg) scale(1.02);transform:translate3d(0,-5px,0) rotate(0deg) scale(1.02)}62%{-webkit-transform:translateZ(0) rotate(0deg) scale(1);transform:translateZ(0) rotate(0deg) scale(1)}67%{-webkit-transform:translate3d(0,-2px,0) rotate(-3deg) scale(1);transform:translate3d(0,-2px,0) rotate(-3deg) scale(1)}72%{-webkit-transform:translate3d(0,-2px,0) rotate(3deg) scale(1);transform:translate3d(0,-2px,0) rotate(3deg) scale(1)}77%{-webkit-transform:translate3d(0,-1px,0) rotate(-2deg) scale(1);transform:translate3d(0,-1px,0) rotate(-2deg) scale(1)}82%{-webkit-transform:translateZ(0) rotate(.8deg) scale(1);transform:translateZ(0) rotate(.8deg) scale(1)}87%{-webkit-transform:translateZ(0) rotate(0deg) scale(1);transform:translateZ(0) rotate(0deg) scale(1)}}.gift-shadow{background:radial-gradient(closest-side,rgba(185,95,125,.3),rgba(185,95,125,0));border-radius:50%;bottom:1%;height:9%;left:10%;position:absolute;right:10%;transition:opacity .6s ease}.gift--idle .gift-shadow{-webkit-animation:giftShadow 5.2s ease-in-out infinite;animation:giftShadow 5.2s ease-in-out infinite}.gift--finale .gift-shadow{opacity:0;transition-delay:.9s}@-webkit-keyframes giftShadow{0%,62%,to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}30%{opacity:.8;-webkit-transform:scaleX(.92);transform:scaleX(.92)}}@keyframes giftShadow{0%,62%,to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}30%{opacity:.8;-webkit-transform:scaleX(.92);transform:scaleX(.92)}}.gift-base{background:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%2728%27 height=%2728%27 viewBox=%270 0 28 28%27><path d=%27M14 19.5c-1.9-1.1-4.6-3.1-5.6-5.3-.9-2 .3-4.2 2.4-4.2 1.3 0 2.3.7 3.2 1.8.9-1.1 1.9-1.8 3.2-1.8 2.1 0 3.3 2.2 2.4 4.2-1 2.2-3.7 4.2-5.6 5.3z%27 fill=%27%23fff7f4%27 fill-opacity=%270.42%27/></svg>") 0 0 /26px 26px,url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%2728%27 height=%2728%27 viewBox=%270 0 28 28%27><path d=%27M14 19.5c-1.9-1.1-4.6-3.1-5.6-5.3-.9-2 .3-4.2 2.4-4.2 1.3 0 2.3.7 3.2 1.8.9-1.1 1.9-1.8 3.2-1.8 2.1 0 3.3 2.2 2.4 4.2-1 2.2-3.7 4.2-5.6 5.3z%27 fill=%27%23fff7f4%27 fill-opacity=%270.22%27/></svg>") 13px 13px /26px 26px,linear-gradient(180deg,#f7c4cf,#efacbd 70%,#e79db1);border-radius:5px 5px 12px 12px;bottom:6%;box-shadow:inset 0 -14px 22px -10px rgba(190,95,128,.32),inset 10px 0 18px -14px hsla(0,0%,100%,.7),inset -10px 0 18px -12px rgba(190,95,128,.25);display:block;height:58%;left:7%;overflow:hidden;position:absolute;right:7%}.gift-ribbon{background:linear-gradient(90deg,#f1d9de,#fffaf6 28%,#fffaf6 70%,#f1d9de);bottom:0;box-shadow:-1px 0 0 rgba(217,138,163,.35),1px 0 0 rgba(217,138,163,.35);left:50%;position:absolute;top:0;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:17%}.gift-mouth{background:linear-gradient(180deg,rgba(160,70,100,.38),rgba(160,70,100,0));height:16%;left:0;position:absolute;right:0;top:0}.gift-lid{background:linear-gradient(180deg,#fad3db,#f3b6c5);border-radius:7px;bottom:60%;box-shadow:inset 0 2px 0 hsla(0,0%,100%,.55),inset 0 -3px 6px -2px rgba(190,95,128,.25),0 7px 10px -7px rgba(170,80,110,.45);display:block;height:17%;left:2%;position:absolute;right:2%;z-index:2}.gift-lid .gift-ribbon{border-radius:1px;width:17.6%}.gift-bow{bottom:52%;-webkit-filter:drop-shadow(0 3px 3px rgba(185,95,125,.18));filter:drop-shadow(0 3px 3px rgba(185,95,125,.18));left:50%;overflow:visible;position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:70%}.gift-light{background:radial-gradient(50% 70% at 50% 100%,rgba(255,253,249,.95) 0,rgba(255,238,242,.55) 45%,rgba(255,238,242,0) 100%);bottom:58%;display:block;height:120%;left:-45%;pointer-events:none;right:-45%}.gift-light,.gift-rays{position:absolute;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.gift-rays{-webkit-animation:raysTurn 14s linear infinite;animation:raysTurn 14s linear infinite;background:repeating-conic-gradient(from -64deg at 50% 100%,hsla(0,0%,100%,.55) 0deg 5deg,hsla(0,0%,100%,0) 5deg 16deg);-webkit-clip-path:polygon(0 0,100% 0,100% 100%,0 100%);clip-path:polygon(0 0,100% 0,100% 100%,0 100%);inset:0;-webkit-mask-image:radial-gradient(60% 95% at 50% 100%,#000 0,rgba(0,0,0,.5) 45%,transparent 75%);mask-image:radial-gradient(60% 95% at 50% 100%,#000 0,rgba(0,0,0,.5) 45%,transparent 75%)}@-webkit-keyframes raysTurn{0%{-webkit-transform:rotate(-8deg);transform:rotate(-8deg)}50%{-webkit-transform:rotate(8deg);transform:rotate(8deg)}to{-webkit-transform:rotate(-8deg);transform:rotate(-8deg)}}@keyframes raysTurn{0%{-webkit-transform:rotate(-8deg);transform:rotate(-8deg)}50%{-webkit-transform:rotate(8deg);transform:rotate(8deg)}to{-webkit-transform:rotate(-8deg);transform:rotate(-8deg)}}.gift-sparkle{-webkit-animation:sparkleTwinkle 2.8s ease-in-out infinite;animation:sparkleTwinkle 2.8s ease-in-out infinite;color:#fffaf6;-webkit-filter:drop-shadow(0 0 4px rgba(232,160,180,.7));filter:drop-shadow(0 0 4px rgba(232,160,180,.7));opacity:0;pointer-events:none;position:absolute;transition:opacity .4s ease}.gift-sparkle:nth-of-type(2n){color:var(--rose-mid);-webkit-filter:none;filter:none}.gift--finale .gift-sparkle{-webkit-animation:none;animation:none;opacity:0}@-webkit-keyframes sparkleTwinkle{0%,to{opacity:0;-webkit-transform:scale(.3) rotate(0deg);transform:scale(.3) rotate(0deg)}45%{opacity:1;-webkit-transform:scale(1) rotate(45deg);transform:scale(1) rotate(45deg)}70%{opacity:.5;-webkit-transform:scale(.6) rotate(70deg);transform:scale(.6) rotate(70deg)}}@keyframes sparkleTwinkle{0%,to{opacity:0;-webkit-transform:scale(.3) rotate(0deg);transform:scale(.3) rotate(0deg)}45%{opacity:1;-webkit-transform:scale(1) rotate(45deg);transform:scale(1) rotate(45deg)}70%{opacity:.5;-webkit-transform:scale(.6) rotate(70deg);transform:scale(.6) rotate(70deg)}}.collage{inset:0;overflow:hidden;position:fixed;z-index:30}.collage-veil{background:radial-gradient(80% 60% at 50% 50%,rgba(255,246,248,.72) 0,rgba(251,228,234,.82) 100%);inset:0;position:absolute}.collage-label{color:var(--rose-deep);font-family:var(--script);font-size:clamp(2rem,5.4vw,2.9rem);left:0;line-height:1.4;pointer-events:none;position:absolute;right:0;text-align:center;top:calc(var(--safe-top) + 18px);z-index:200}.collage-close{background:hsla(27,69%,97%,.92);bottom:calc(var(--safe-bottom) + 24px);left:50%;min-height:46px;padding:0 24px;position:absolute;translate:-50% 0;z-index:200}.polaroid{background:#fffdfb;border:0;border-radius:3px;box-shadow:0 1px 2px rgba(90,58,68,.08),0 12px 26px -12px rgba(160,75,105,.4);box-sizing:border-box;cursor:zoom-in;display:block;left:0;position:absolute;top:0;touch-action:manipulation;will-change:transform}@media (hover:hover){.polaroid:hover{z-index:150!important}}.polaroid-photo{background:linear-gradient(160deg,#fbe4ea,#f4c3cf);border-radius:1px;display:block;overflow:hidden;position:relative}.lightbox-photo img,.polaroid-photo img{display:block;height:100%;object-fit:cover;width:100%}.lightbox-photo img{object-fit:contain}.lightbox-photo img,.polaroid-photo img{-webkit-user-drag:none;opacity:0;transition:opacity .6s ease;-webkit-user-select:none;user-select:none}.lightbox-photo img.is-loaded,.polaroid-photo img.is-loaded{opacity:1}.polaroid-tape{background:rgba(244,182,194,.58);border-left:1px dashed hsla(0,0%,100%,.5);border-right:1px dashed hsla(0,0%,100%,.5);height:9%;left:50%;pointer-events:none;position:absolute;top:-5%;width:38%;z-index:1}.heart-burst{inset:0;overflow:hidden;pointer-events:none;position:fixed;z-index:35}.heart-orbit,.heart-particle{-webkit-animation-fill-mode:both;animation-fill-mode:both;display:block;opacity:0;position:absolute;will-change:transform,opacity}.heart-orbit-arm svg,.heart-particle svg{display:block;height:100%;width:100%}.heart-particle--burst{-webkit-animation-name:heartBurst;animation-name:heartBurst;-webkit-animation-timing-function:cubic-bezier(.15,.7,.3,1);animation-timing-function:cubic-bezier(.15,.7,.3,1)}@-webkit-keyframes heartBurst{0%{opacity:0;-webkit-transform:translate(-50%,-50%) translate(0) scale(.2) rotate(0deg);transform:translate(-50%,-50%) translate(0) scale(.2) rotate(0deg)}12%{opacity:1}70%{opacity:.95}to{opacity:0;-webkit-transform:translate(-50%,-50%) translate(var(--dx),var(--dy)) scale(1) rotate(var(--spin));transform:translate(-50%,-50%) translate(var(--dx),var(--dy)) scale(1) rotate(var(--spin))}}@keyframes heartBurst{0%{opacity:0;-webkit-transform:translate(-50%,-50%) translate(0) scale(.2) rotate(0deg);transform:translate(-50%,-50%) translate(0) scale(.2) rotate(0deg)}12%{opacity:1}70%{opacity:.95}to{opacity:0;-webkit-transform:translate(-50%,-50%) translate(var(--dx),var(--dy)) scale(1) rotate(var(--spin));transform:translate(-50%,-50%) translate(var(--dx),var(--dy)) scale(1) rotate(var(--spin))}}.heart-particle--rain{-webkit-animation-name:heartRain;animation-name:heartRain;-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes heartRain{0%{opacity:0;-webkit-transform:translateZ(0) rotate(0deg);transform:translateZ(0) rotate(0deg)}10%{opacity:.95}50%{-webkit-transform:translate3d(var(--dx),calc(var(--dy)*.5),0) rotate(calc(var(--spin)*.5));transform:translate3d(var(--dx),calc(var(--dy)*.5),0) rotate(calc(var(--spin)*.5))}85%{opacity:.85}to{opacity:0;-webkit-transform:translate3d(calc(var(--dx)*-.4),var(--dy),0) rotate(var(--spin));transform:translate3d(calc(var(--dx)*-.4),var(--dy),0) rotate(var(--spin))}}@keyframes heartRain{0%{opacity:0;-webkit-transform:translateZ(0) rotate(0deg);transform:translateZ(0) rotate(0deg)}10%{opacity:.95}50%{-webkit-transform:translate3d(var(--dx),calc(var(--dy)*.5),0) rotate(calc(var(--spin)*.5));transform:translate3d(var(--dx),calc(var(--dy)*.5),0) rotate(calc(var(--spin)*.5))}85%{opacity:.85}to{opacity:0;-webkit-transform:translate3d(calc(var(--dx)*-.4),var(--dy),0) rotate(var(--spin));transform:translate3d(calc(var(--dx)*-.4),var(--dy),0) rotate(var(--spin))}}.heart-orbit{-webkit-animation-name:heartOrbit;animation-name:heartOrbit;-webkit-animation-timing-function:cubic-bezier(.2,.6,.3,1);animation-timing-function:cubic-bezier(.2,.6,.3,1);height:0;opacity:1;width:0}@-webkit-keyframes heartOrbit{0%{-webkit-transform:rotate(var(--start-angle));transform:rotate(var(--start-angle))}to{-webkit-transform:rotate(var(--end-angle));transform:rotate(var(--end-angle))}}@keyframes heartOrbit{0%{-webkit-transform:rotate(var(--start-angle));transform:rotate(var(--start-angle))}to{-webkit-transform:rotate(var(--end-angle));transform:rotate(var(--end-angle))}}.heart-orbit-arm{-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:heartOrbitArm;animation-name:heartOrbitArm;-webkit-animation-timing-function:cubic-bezier(.2,.6,.3,1);animation-timing-function:cubic-bezier(.2,.6,.3,1);display:block;left:0;opacity:0;position:absolute;top:0}@-webkit-keyframes heartOrbitArm{0%{opacity:0;-webkit-transform:translate(-50%,-50%) translateX(0) scale(.2);transform:translate(-50%,-50%) translateX(0) scale(.2)}15%{opacity:1}75%{opacity:.9}to{opacity:0;-webkit-transform:translate(-50%,-50%) translateX(var(--distance)) scale(1);transform:translate(-50%,-50%) translateX(var(--distance)) scale(1)}}@keyframes heartOrbitArm{0%{opacity:0;-webkit-transform:translate(-50%,-50%) translateX(0) scale(.2);transform:translate(-50%,-50%) translateX(0) scale(.2)}15%{opacity:1}75%{opacity:.9}to{opacity:0;-webkit-transform:translate(-50%,-50%) translateX(var(--distance)) scale(1);transform:translate(-50%,-50%) translateX(var(--distance)) scale(1)}}.lightbox{align-items:center;background:rgba(70,40,51,.88);box-sizing:border-box;display:flex;flex-direction:column;gap:18px;inset:0;justify-content:center;padding:calc(var(--safe-top) + 64px) calc(var(--safe-right) + 16px) calc(var(--safe-bottom) + 20px) calc(var(--safe-left) + 16px);position:fixed;z-index:40}.lightbox-stage{display:grid;place-items:center}.lightbox-frame{background:#fffdfb;border-radius:4px;box-shadow:0 24px 60px -24px rgba(0,0,0,.45);cursor:grab;grid-area:1/1;padding:10px 10px 34px;touch-action:pan-y}.lightbox-frame:active{cursor:grabbing}.lightbox-photo{--lightbox-reserve:calc(210px + var(--safe-top) + var(--safe-bottom));--lightbox-side-reserve:calc(52px + var(--safe-left) + var(--safe-right));aspect-ratio:var(--aspect);background:linear-gradient(160deg,#fbe4ea,#f4c3cf);display:block;overflow:hidden;width:min(calc(100vw - var(--lightbox-side-reserve)),calc((100dvh - var(--lightbox-reserve))*var(--aspect)),1100px)}.lightbox-close{background:hsla(27,69%,97%,.12);border:0;border-radius:50%;color:#fdf8f4;cursor:pointer;display:grid;height:46px;place-items:center;position:absolute;right:calc(var(--safe-right) + 12px);top:calc(var(--safe-top) + 12px);transition:background-color .2s ease;width:46px}.lightbox-arrow svg,.lightbox-close svg{height:22px;width:22px}.lightbox-arrow:hover,.lightbox-close:hover{background:hsla(27,69%,97%,.22)}.lightbox-nav{align-items:center;display:flex;gap:22px}.lightbox-arrow{background:hsla(27,69%,97%,.12);border:0;border-radius:50%;color:#fdf8f4;cursor:pointer;display:grid;height:48px;place-items:center;transition:background-color .2s ease;width:48px}.lightbox-count{color:hsla(27,69%,97%,.85);font-family:var(--serif);font-size:1.1rem;font-style:italic;letter-spacing:.04em;min-width:64px;text-align:center}@media (orientation:landscape){.lightbox{padding-bottom:calc(var(--safe-bottom) + 20px);padding-top:calc(var(--safe-top) + 20px)}.lightbox-photo{--lightbox-reserve:calc(118px + var(--safe-top) + var(--safe-bottom));--lightbox-side-reserve:calc(180px + var(--safe-left) + var(--safe-right))}.lightbox-nav{inset:0;pointer-events:none;position:absolute}.lightbox-arrow{height:54px;pointer-events:auto;position:absolute;top:50%;translate:0 -50%;width:54px}.lightbox-arrow--previous{left:calc(var(--safe-left) + 20px)}.lightbox-arrow--next{right:calc(var(--safe-right) + 20px)}.lightbox-count{bottom:calc(var(--safe-bottom) + 14px);left:50%;pointer-events:auto;position:absolute;translate:-50% 0}}@media (min-width:720px){.love-page{padding-top:calc(var(--safe-top) + 24px)}}@media (min-width:1024px) and (min-height:700px){.love-title{font-size:clamp(3.4rem,4.4vw,4.4rem)}.love-eyebrow{font-size:1.9rem}.gift{--gift-size:clamp(200px,34dvh,300px)}.gift-hint{font-size:1.35rem}}@media (max-height:560px){.love-page{padding-bottom:calc(var(--safe-bottom) + 10px);padding-top:calc(var(--safe-top) + 10px)}.love-stage{margin-top:10px;padding-bottom:0}.love-eyebrow{font-size:1.1rem;line-height:1.4}.love-title{font-size:1.9rem}.progress-hearts{margin-top:8px}.gift{--gift-size:clamp(120px,34dvh,160px)}.gift-column{gap:6px}.collage-label{font-size:1.8rem;top:calc(var(--safe-top) + 6px)}.collage-close{bottom:calc(var(--safe-bottom) + 10px);min-height:42px}}.love-page.is-finale .love-eyebrow{display:none}@media (max-height:760px){.love-page.is-finale .love-title{font-size:clamp(1.7rem,5vw,2.2rem)}}@media (max-height:560px){.love-page.is-finale .love-header{opacity:0;pointer-events:none;position:absolute;-webkit-transform:translateY(-12px);transform:translateY(-12px)}}@media (prefers-reduced-motion:reduce){.ambient-heart,.ambient-petal,.heart-burst{display:none}.ambient-bokeh,.gift-float,.gift-rays,.gift-shadow,.gift-sparkle{-webkit-animation:none!important;animation:none!important}.gift-sparkle{opacity:.7}}.Scene_canvas__b1oBX{background-color:#000}.Loading_container__UT5cj{align-items:center;background:#262626;display:flex;height:inherit;justify-content:center;margin:0;padding:0;width:inherit}.Loading_ring__xZosv{background:transparent;border:3px solid #3c3c3c;border-radius:50%;box-shadow:0 0 20px rgba(0,0,0,.5);color:#fff000;font-family:sans-serif;font-size:20px;height:150px;left:50%;letter-spacing:4px;line-height:150px;position:absolute;text-align:center;text-shadow:0 0 10px #fff000;text-transform:uppercase;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:150px}.Loading_ring__xZosv:before{-webkit-animation:Loading_animateC__LOn1I 2s linear infinite;animation:Loading_animateC__LOn1I 2s linear infinite;border-right:3px solid transparent;border-top:3px solid transparent;border-color:#fff000 #fff000 transparent transparent;border-radius:50%;border-style:solid;border-width:3px;content:"";height:100%;left:-3px;position:absolute;top:-3px;width:100%}.Loading_ring__xZosv span{-webkit-animation:Loading_animate__HqCzq 2s linear infinite;animation:Loading_animate__HqCzq 2s linear infinite;background:transparent;display:block;height:4px;left:50%;position:absolute;top:calc(50% - 2px);-webkit-transform-origin:left;transform-origin:left;width:50%}.Loading_ring__xZosv span:before{background:#fff000;border-radius:50%;box-shadow:0 0 20px #fff000;content:"";height:16px;position:absolute;right:-8px;top:-6px;width:16px}@-webkit-keyframes Loading_animateC__LOn1I{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes Loading_animateC__LOn1I{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes Loading_animate__HqCzq{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg)}to{-webkit-transform:rotate(405deg);transform:rotate(405deg)}}@keyframes Loading_animate__HqCzq{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg)}to{-webkit-transform:rotate(405deg);transform:rotate(405deg)}}*{margin:0;padding:0}body,html{overflow:hidden}body{background:#fbe4ea;height:100vh;height:100dvh}.letter-scroll{scrollbar-color:#f4b6c2 transparent;scrollbar-width:thin}.letter-scroll::-webkit-scrollbar{width:6px}.letter-scroll::-webkit-scrollbar-track{background:transparent}.letter-scroll::-webkit-scrollbar-thumb{background:#f4b6c2;border-radius:999px}@-webkit-keyframes confettiFall{0%{opacity:1;-webkit-transform:translateY(-60px) rotate(0deg) scaleX(1);transform:translateY(-60px) rotate(0deg) scaleX(1)}50%{-webkit-transform:translateY(50vh) rotate(1turn) scaleX(-1);transform:translateY(50vh) rotate(1turn) scaleX(-1)}to{opacity:.6;-webkit-transform:translateY(110vh) rotate(2turn) scaleX(1);transform:translateY(110vh) rotate(2turn) scaleX(1)}}@keyframes confettiFall{0%{opacity:1;-webkit-transform:translateY(-60px) rotate(0deg) scaleX(1);transform:translateY(-60px) rotate(0deg) scaleX(1)}50%{-webkit-transform:translateY(50vh) rotate(1turn) scaleX(-1);transform:translateY(50vh) rotate(1turn) scaleX(-1)}to{opacity:.6;-webkit-transform:translateY(110vh) rotate(2turn) scaleX(1);transform:translateY(110vh) rotate(2turn) scaleX(1)}}@-webkit-keyframes growCat{0%{opacity:0;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0)}8%{opacity:1}to{opacity:1;-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}}@keyframes growCat{0%{opacity:0;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0)}8%{opacity:1}to{opacity:1;-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}}@-webkit-keyframes smokePuff{0%{opacity:.7;-webkit-transform:translate(-50%,-50%) scale(.3);transform:translate(-50%,-50%) scale(.3)}to{opacity:0;-webkit-transform:translate(-50%,-50%) scale(3);transform:translate(-50%,-50%) scale(3)}}@keyframes smokePuff{0%{opacity:.7;-webkit-transform:translate(-50%,-50%) scale(.3);transform:translate(-50%,-50%) scale(.3)}to{opacity:0;-webkit-transform:translate(-50%,-50%) scale(3);transform:translate(-50%,-50%) scale(3)}}@-webkit-keyframes wrongFadeOut{0%{opacity:1}60%{opacity:1}to{opacity:0}}@keyframes wrongFadeOut{0%{opacity:1}60%{opacity:1}to{opacity:0}}@-webkit-keyframes walkOffLeft{0%{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(-140vw);transform:translateX(-140vw)}}@keyframes walkOffLeft{0%{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(-140vw);transform:translateX(-140vw)}}@-webkit-keyframes catBob{0%,to{margin-top:0}50%{margin-top:-8px}}@keyframes catBob{0%,to{margin-top:0}50%{margin-top:-8px}}.song-toggle{-webkit-tap-highlight-color:transparent;background:hsla(27,69%,97%,.85);border:1px solid rgba(244,182,194,.8);border-radius:50%;bottom:calc(env(safe-area-inset-bottom, 0px) + 14px);color:#d98aa3;cursor:pointer;display:grid;height:40px;left:calc(env(safe-area-inset-left, 0px) + 14px);place-items:center;position:fixed;width:40px;z-index:900}
/*# sourceMappingURL=main.c1a46d59.css.map*/