@charset "UTF-8";
:root{color-scheme:dark;--bg:#14021f;--text:#faf1ef;--muted:#a99ba4;--pink:#edb5c4;--line:rgba(231,186,203,.14);--serif:Georgia,'Times New Roman',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:15px;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:2px solid var(--pink);outline-offset:5px}button{color:inherit}a{color:inherit}button svg{width:21px;height:21px}button,[tabindex]{-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}
.ambient{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 39%,#50213338,transparent 52%),radial-gradient(ellipse at 90% 0%,#4a233225,transparent 45%)}.ambient:after{content:'';position:absolute;inset:0;opacity:.13;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.2' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
.app{position:relative;max-width:1080px;margin:0 auto;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding: max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left))}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:46px}.wordmark{text-decoration:none;font-family:var(--serif);font-size:21px;letter-spacing:-.8px}.wordmark i{color:var(--pink)}.wordmark span{display:block;font-family:var(--sans);font-size:8px;letter-spacing:4px;margin-top:5px;color:var(--muted)}.icon-button{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#ffffff04;color:#c5a9b7}.sound-button:disabled{opacity:.4}.sound-on{display:none}.sound-button[aria-pressed=true] .sound-on{display:initial}.sound-button[aria-pressed=true] .sound-off{display:none}
main{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:480px;margin:0 auto;padding:38px 0 32px;outline:none}.screen-inner{width:100%;text-align:center;animation:enter .65s cubic-bezier(.16,1,.3,1) both}.eyebrow{text-transform:uppercase;letter-spacing:3px;font-size:10px;font-weight:600;color:var(--pink);margin:0 0 21px}.eyebrow:before{content:'';display:inline-block;width:20px;height:1px;background:var(--pink);vertical-align:middle;margin-right:12px;opacity:.5}h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-2px;line-height:1.06;margin:0;font-size:clamp(42px,9vw,62px)}h1 em,h2 em{font-weight:400;color:var(--pink)}h3{font-family:var(--serif);font-size:25px;font-weight:400;line-height:1.25;margin:12px 0}p{line-height:1.75}.subtitle{color:var(--muted);font-size:14px;margin:21px auto 28px;max-width:325px}.primary{width:100%;max-width:326px;min-height:56px;border:1px solid #f6c9d2;border-radius:15px;padding:16px 22px;color:#301b25;background:linear-gradient(110deg,#f4cbd3,#e5a9be);font-size:13px;font-weight:650;display:inline-flex;justify-content:space-between;align-items:center;gap:20px;box-shadow:0 7px 30px #e68fb112;transition:transform .2s,box-shadow .2s}.primary:hover{transform:translateY(-2px);box-shadow:0 7px 30px #e68fb128}.primary:active{transform:scale(.98)}.primary:disabled{opacity:.35;transform:none}.primary .arrow{font-size:21px;font-weight:400}.micro{font-size:10px;color:#82747e;letter-spacing:.5px;margin-top:17px}.welcome h1{font-size:clamp(51px,11.5vw,76px)}.welcome .subtitle{margin-top:23px}.welcome .eyebrow{margin-bottom:18px}.welcome .primary{margin-top:6px}
.heart-scene{height:238px;width:290px;max-width:100%;margin:0 auto 20px;position:relative;display:grid;place-items:center}.orbit{position:absolute;width:245px;height:185px;border:1px solid #e8aac414;border-radius:50%;transform:rotate(-26deg)}.orbit.second{width:195px;height:235px;transform:rotate(37deg);border-color:#e8aac40c}.heart-halo{position:absolute;width:130px;height:130px;background:#d26b9733;filter:blur(40px);border-radius:50%}.sculpture{position:relative;width:195px;height:190px;filter:drop-shadow(0 18px 24px #07020666);animation:breathe 5s ease-in-out infinite}.spark{position:absolute;color:#e6b5c7;font-size:19px;font-weight:200}.spark.s1{top:39px;right:27px}.spark.s2{bottom:41px;left:20px;font-size:13px}.spark.s3{top:50px;left:37px;font-size:5px}.orbit-dot{position:absolute;width:5px;height:5px;background:#e2adc3;border-radius:50%;bottom:29px;right:68px;box-shadow:0 0 12px #e2adc3}
.footer{width:100%;max-width:480px;margin:0 auto}.progress-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.back-button{background:none;border:0;color:var(--muted);font-size:12px;min-width:60px;min-height:44px;padding:0;text-align:left}.back-button:disabled{visibility:hidden}.progress{display:flex;gap:7px;align-items:center}.progress-dot{height:4px;width:4px;background:#51404a;border-radius:8px;transition:width .4s,background .4s}.progress-dot.active{width:21px;background:var(--pink)}.progress-dot.done{background:#ad788d}.screen-count{font-size:10px;letter-spacing:1.4px;min-width:60px;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.signature{text-align:center;font-size:8px;letter-spacing:2px;color:#70626b;margin:16px 0 0}.signature span{color:#bc829b;margin-left:5px}
.intro-art{margin:35px auto;font-family:var(--serif);font-size:115px;font-style:italic;color:var(--pink);position:relative;line-height:1.5}.intro-art span{font-size:30px;position:absolute;top:25px;right:25%;animation:twinkle 3s infinite}.intro-lines{display:grid;gap:12px;color:var(--muted);margin:25px 0 35px}.intro-lines span{animation:enter .9s both}.intro-lines span:nth-child(2){animation-delay:.35s}.intro-lines span:nth-child(3){animation-delay:.7s}
.photo-art{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:235px;background:radial-gradient(ellipse at 50% 120%,#b4869344,transparent 65%),linear-gradient(145deg,#392531,#1d1925 58%,#4b303b);border:1px solid #e2becd10}.photo-art:before,.photo-art:after{content:'';position:absolute;width:180px;height:180px;border:1px solid #efc8d323;border-radius:50%;transform:rotate(-35deg) scaleX(1.4)}.photo-art:after{width:120px;height:120px;transform:rotate(35deg) scaleX(1.5)}.photo-art.tone-1{background:radial-gradient(ellipse at 30% 100%,#82737855,transparent 70%),linear-gradient(135deg,#37303f,#252736)}.photo-art.tone-2{background:radial-gradient(ellipse at 60% 100%,#b39a6c44,transparent 65%),linear-gradient(145deg,#3d3030,#24232c)}.photo-symbol{font-family:var(--serif);font-style:italic;font-size:60px;color:#e5bccb;z-index:1}.photo-note{position:absolute;bottom:19px;font-size:8px;letter-spacing:3px;color:#d5bbc8a0}.photo-art img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;z-index:2}.story-card{border-radius:20px;overflow:hidden;border:1px solid var(--line);background:#ffffff03;text-align:left;margin:27px 0 18px}.story-copy{padding:23px}.date{font-size:9px;text-transform:uppercase;letter-spacing:2px;color:var(--pink)}.story-copy p{color:var(--muted);font-size:13px;margin-bottom:0}.carousel-nav{display:flex;align-items:center;justify-content:space-between;margin:0 0 25px}.carousel-nav span{font-size:11px;color:var(--muted)}.carousel-nav button{background:#ffffff04;border:1px solid var(--line);width:44px;height:44px;border-radius:50%;font-size:19px}.carousel-nav button:disabled{opacity:.25}
.quiz-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;letter-spacing:1px;margin:28px 0 16px}.quiz-question{text-align:left;font-family:var(--sans);font-size:19px;line-height:1.5;min-height:57px}.answers{display:grid;gap:10px;margin:20px 0}.answer{display:flex;gap:15px;align-items:center;text-align:left;min-height:57px;border-radius:12px;background:#ffffff03;border:1px solid var(--line);padding:12px 17px;font-size:13px}.answer-letter{font-size:10px;color:var(--muted);width:23px;height:23px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;flex-shrink:0}.answer.correct{border-color:#accab5;background:#accab510}.answer.wrong{border-color:#cb7693;animation:shake .3s}.feedback{font-size:13px;color:var(--pink);min-height:46px;margin:12px 0;line-height:1.6}.quiz-result{padding:35px 0}.big-number{font-family:var(--serif);font-size:80px;color:var(--pink)}
.game-count{font-family:var(--serif);font-size:38px;color:var(--pink);margin:20px 0 12px}.game-count span{font-family:var(--sans);font-size:12px;color:var(--muted)}.game-board{height:270px;position:relative;border:1px solid var(--line);border-radius:20px;background:radial-gradient(ellipse,#7f3e5b13,transparent),#ffffff02;overflow:hidden;margin-bottom:15px}.game-board:before{content:'a little love, here & there';position:absolute;inset:0;display:grid;place-items:center;font-family:var(--serif);font-style:italic;color:#a38b982d;font-size:22px}.catch-heart{position:absolute;display:grid;place-items:center;border:0;background:transparent;color:var(--pink);font-size:43px;width:64px;height:64px;filter:drop-shadow(0 3px 12px #ef8baf30);animation:pop .35s both}.game-complete{position:absolute;inset:0;background:#21171fed;display:grid;place-content:center;padding:20px;color:var(--pink);font-family:var(--serif);font-size:27px}.game-complete small{font:12px var(--sans);margin-top:14px;color:var(--muted)}
.reasons{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:28px 0}.reason{min-height:157px;perspective:800px;border:0;background:none;padding:0;border-radius:16px}.reason-inner{position:relative;width:100%;height:100%;min-height:157px;transition:transform .6s;transform-style:preserve-3d}.reason[aria-pressed=true] .reason-inner{transform:rotateY(180deg)}.reason-face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:17px;border:1px solid var(--line);border-radius:16px;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:linear-gradient(135deg,#32202b,#20191f)}.reason-front b{font-family:var(--serif);font-weight:400;font-size:30px;color:var(--pink)}.reason-front small{font-size:9px;letter-spacing:2px;color:var(--muted);margin-top:15px}.reason-back{transform:rotateY(180deg);font-family:var(--serif);font-size:19px;line-height:1.5;background:#35212c;color:#f4d4df}
.polaroids{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:35px 6px}.polaroid{margin:0;padding:8px 8px 15px;background:#e9e0da;color:#46353e;box-shadow:0 7px 20px #0003;transform:rotate(-5deg);animation:enter .6s both}.polaroid:nth-child(2){transform:rotate(5deg);margin-top:28px;animation-delay:.15s}.polaroid:nth-child(3){transform:rotate(3deg);animation-delay:.3s}.polaroid:nth-child(4){transform:rotate(-4deg);margin-top:20px;animation-delay:.45s}.polaroid .photo-art{min-height:150px}.polaroid .photo-symbol{font-size:35px}.polaroid .photo-note{display:none}.polaroid figcaption{font-family:var(--serif);font-style:italic;font-size:13px;margin-top:13px}.polaroid .photo-art:before{width:80px;height:80px}.polaroid .photo-art:after{width:60px;height:60px}
.envelope{position:relative;margin:70px auto 45px;width:270px;max-width:100%;height:175px;border:1px solid #805266;border-radius:8px;background:#49303d;display:block;perspective:700px;box-shadow:0 18px 40px #0003}.envelope:before{content:'';position:absolute;inset:0;background:linear-gradient(33deg,transparent 49.6%,#a1748633 50%,transparent 50.4%),linear-gradient(-33deg,transparent 49.6%,#a1748633 50%,transparent 50.4%)}.envelope-flap{position:absolute;inset:-1px -1px auto;height:105px;clip-path:polygon(0 0,100% 0,50% 100%);background:#725064;transform-origin:top;transition:transform .7s}.envelope.open .envelope-flap{transform:rotateX(180deg)}.seal{position:absolute;top:73px;left:calc(50% - 22px);border-radius:50%;width:44px;height:44px;background:#d39bb1;display:grid;place-items:center;color:#643647;font-size:24px;box-shadow:0 2px 9px #0002;transition:opacity .2s}.envelope.open .seal{opacity:0}.letter-paper{background:#eee5df;color:#44343c;text-align:left;padding:30px 26px;border-radius:3px;margin:28px 0;animation:enter .8s both;box-shadow:0 12px 40px #0002}.letter-paper h3{font-style:italic}.letter-paper p{font-size:14px;line-height:1.9;white-space:pre-line}.letter-signature{font-family:var(--serif);font-size:24px!important;font-style:italic;color:#92586d}.final-photo{margin:28px auto 24px;border:7px solid #e5d8d4;border-bottom-width:29px;transform:rotate(-3deg);max-width:320px;box-shadow:0 10px 40px #0003}.final-photo .photo-art{min-height:220px}.surprise{border:1px solid #d99ab344;border-radius:20px;padding:25px;background:linear-gradient(125deg,#45243580,#261c2680);margin:25px 0;animation:enter .7s both}.surprise p{font-size:14px;color:var(--muted)}.text-button{border:0;background:none;color:var(--muted);font-size:12px;min-height:44px;margin-top:17px;text-decoration:underline;text-underline-offset:4px}
.heart-transition{position:fixed;inset:0;pointer-events:none;z-index:20;opacity:0;background:radial-gradient(circle at 50% 54%,#ec9fbd 0%,#bd6089 46%,#783b64 100%)}.heart-transition.active{animation:heart-wash 1.35s cubic-bezier(.28,.72,.2,1) both}.confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:5}.confetti i{position:absolute;top:-20px;width:6px;height:10px;animation:fall 3.7s linear both}.toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%,20px);width:max-content;max-width:calc(100% - 40px);padding:12px 20px;background:#382630f2;border:1px solid var(--line);border-radius:12px;font-size:12px;text-align:center;opacity:0;pointer-events:none;transition:.25s;z-index:10}.toast.visible{opacity:1;transform:translate(-50%,0)}.noscript{position:fixed;inset:20%;background:var(--bg);padding:30px;z-index:10}
.video-modal-open{overflow:hidden}.video-replay{display:inline-flex;align-items:center;gap:10px;min-height:48px;margin:28px auto 22px;padding:11px 18px;border:1px solid #edb5c45c;border-radius:999px;background:#ffffff0a;color:#f4d5df;font-size:12px}.video-replay span{display:grid;place-items:center;width:25px;height:25px;padding-left:2px;border-radius:50%;background:#d784a4;color:#3f1830;font-size:9px}.first-video-modal{position:fixed;z-index:40;inset:0;width:min(100%,480px);height:100vh;height:100dvh;margin:auto;overflow:hidden;background:#120713;opacity:0;transform:scale(.08);transform-origin:50% 52%;border-radius:44px;box-shadow:0 0 90px #0009;transition:transform .85s cubic-bezier(.16,1,.3,1),opacity .22s ease,border-radius .75s ease;pointer-events:none}.first-video-modal.visible{opacity:1;transform:scale(1);border-radius:0;pointer-events:auto}.first-video-modal.closing{opacity:0;transform:scale(.08);border-radius:44px;transition:transform .85s cubic-bezier(.7,0,.84,0),opacity .18s ease .66s,border-radius .75s ease}.first-video-stage{position:absolute;inset:0;background:#120713}.first-impression-media{display:block;width:100%;height:100%;object-fit:cover;object-position:center;background:#120713}.first-impression-placeholder{height:100%;border:0}.first-video-modal:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#18081766 0%,transparent 18%,transparent 70%,#18081799 100%)}.first-video-caption{position:absolute;z-index:2;left:22px;right:22px;bottom:max(78px,calc(env(safe-area-inset-bottom) + 62px));margin:0;color:#f7dce5;font-family:var(--serif);font-size:14px;line-height:1.45;text-align:center;text-shadow:0 2px 12px #000}.first-video-close{position:absolute;z-index:3;top:max(18px,env(safe-area-inset-top));right:max(18px,env(safe-area-inset-right));display:flex;align-items:center;gap:7px;min-height:42px;padding:5px 13px 5px 7px;border:1px solid #fff5;border-radius:999px;background:#210f1bb8;backdrop-filter:blur(8px);color:#fff}.first-video-close span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#ffffff18;font-size:20px;font-weight:200}.first-video-close small{font-size:10px;letter-spacing:.3px}.first-video-letter{margin:27px 0 22px;animation:letter-arrive .75s .25s cubic-bezier(.16,1,.3,1) both}.first-video-letter h3{margin-top:0}.first-video-letter .letter-signature{margin-bottom:0}
@keyframes enter{from{opacity:0;translate:0 15px;scale:.98}to{opacity:1;translate:0 0;scale:1}}@keyframes breathe{50%{transform:translateY(-7px) rotate(-3deg)}}@keyframes twinkle{50%{opacity:.3;transform:scale(.7)}}@keyframes pop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes shake{25%,75%{transform:translateX(-4px)}50%{transform:translateX(4px)}}@keyframes fall{to{transform:translate3d(var(--drift),105vh,0) rotate(640deg);opacity:0}}
.welcome{width:100%;display:flex;flex-direction:column;align-items:center}.welcome-message{max-width:390px;margin:5px auto 8px;font-family:var(--serif);font-size:clamp(17px,4.7vw,22px);line-height:1.4;letter-spacing:-.35px}.heart-tap{margin:0;color:var(--pink);font-size:11px;letter-spacing:.4px}.heart-tap span{display:inline-block;margin-left:5px;font-size:16px;animation:twinkle 2s ease-in-out infinite}.heart-start{display:block;width:min(100%,440px);border:0;background:none;padding:0;margin:0;color:inherit}.heart-start .heart-scene{width:min(91vw,440px);height:min(50dvh,430px);min-height:280px;margin:0 auto;transform:none}.heart-start .sculpture{width:min(77vw,350px);height:auto}.heart-start .orbit{width:min(88vw,405px);height:min(66vw,305px)}.heart-start .orbit.second{width:min(70vw,320px);height:min(82vw,375px)}.heart-start .heart-halo{width:220px;height:220px;filter:blur(55px)}.heart-start .spark.s1{top:12%;right:7%}.heart-start .spark.s2{bottom:12%;left:6%}.heart-start .spark.s3{top:18%;left:10%}.heart-start .orbit-dot{bottom:12%;right:15%}.heart-start:active .sculpture{animation:none;transform:scale(.95)}.heart-start.is-opening{pointer-events:none}.heart-start.is-opening .heart-scene{animation:heart-zoom .72s cubic-bezier(.22,.8,.22,1) forwards}.heart-start.is-opening .sculpture{animation:none}
.heart-reasons{display:grid;grid-template-columns:1fr 1fr;gap:13px;max-width:325px;margin:30px auto 24px}.love-heart{position:relative;display:grid;place-content:center;width:100%;aspect-ratio:1.06;border:0;background:none;color:#fff4f7;filter:drop-shadow(0 8px 15px #0b050955);transition:transform .2s}.love-heart:before{content:'♥';position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(112px,31vw,142px);line-height:.8;color:#c76f91}.love-heart:nth-child(2):before{color:#b66689}.love-heart:nth-child(3):before{color:#d183a2}.love-heart:nth-child(4):before{color:#a9597c}.love-heart>*{position:relative;z-index:1}.love-heart span{font-family:var(--serif);font-size:24px}.love-heart small{font-size:8px;letter-spacing:1.4px;margin-top:3px;color:#ffe6ef}.love-heart:active{transform:scale(.92)}.reason-dialog{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:25px;background:#120e11b8;backdrop-filter:blur(10px);animation:enter .3s both}.reason-dialog-backdrop{position:absolute;inset:0;z-index:1;border:0;background:none}.reason-dialog-photo{position:absolute;z-index:0;inset:0;width:min(100%,480px);margin:auto;overflow:hidden;background:#160f16}.reason-dialog-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#160d1688,#160d16cc)}.reason-dialog-photo img{width:100%;height:100%;object-fit:cover;object-position:center;opacity:.68}.reason-dialog-card{position:relative;z-index:2;grid-area:1/1;width:min(55vw,235px);height:min(55vw,235px);border:0;background:#c87092;transform:rotate(-45deg);border-radius:18px;box-shadow:0 25px 70px #0008}.reason-dialog-card:before,.reason-dialog-card:after{content:'';position:absolute;width:100%;height:100%;border-radius:50%;background:#c87092}.reason-dialog-card:before{top:-50%;left:0}.reason-dialog-card:after{top:0;left:50%}.reason-dialog-copy{position:relative;z-index:3;grid-area:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;width:min(72vw,305px);min-height:min(72vw,305px);padding:24px;text-align:center;pointer-events:none}.reason-dialog.reason-2 .reason-dialog-copy p{max-width:225px;font-size:15px;line-height:1.27;margin:7px 0 10px}.reason-dialog.reason-3 .reason-dialog-copy{translate:0 -18px}.reason-dialog-copy span{font-family:var(--serif);font-size:22px;color:#ffe8ef}.reason-dialog-copy p{font-family:var(--serif);font-size:clamp(14px,3.6vw,17px);font-weight:600;line-height:1.35;margin:9px 0 13px;color:#fff9fa}.reason-dialog-copy button{pointer-events:auto;border:1px solid #fff8;border-radius:999px;background:#ffffff18;color:#fff;padding:8px 14px;font-size:10px}
@media(min-width:760px){.app{padding-top:35px;padding-bottom:23px}.topbar{padding:0 16px}main{padding-top:30px}.heart-start .heart-scene{height:min(54dvh,470px)}.signature{margin-top:25px}}
@media(max-height:740px){main{padding-top:25px;padding-bottom:20px}.welcome-message{font-size:16px;line-height:1.32;margin:0 auto 4px}.heart-tap{font-size:10px}.heart-start .heart-scene{height:285px;min-height:0}.heart-start .sculpture{width:240px}.heart-start .orbit{width:280px;height:210px}.heart-start .orbit.second{width:220px;height:260px}.signature{margin-top:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.confetti{display:none}}
@keyframes heart-zoom{0%{transform:scale(1);opacity:1}62%{transform:scale(1.72);opacity:1}100%{transform:scale(3.7);opacity:0;filter:blur(2px)}}@keyframes heart-wash{0%{opacity:0}56%{opacity:1}64%{opacity:1}100%{opacity:0}}
@keyframes letter-arrive{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.reason-dialog.reason-3 .reason-dialog-copy{translate:0 -28px}
.reason-dialog.reason-4 .reason-dialog-copy{translate:0 -32px}
.reason-dialog.reason-4 .reason-dialog-copy p{max-width:250px;font-size:14px;line-height:1.18;margin:5px 0 8px}
main.memories-view{justify-content:flex-start;padding-top:8px}.memories-screen .eyebrow{margin-bottom:11px}.memories-screen h2{font-size:clamp(33px,7vw,44px);line-height:1}.memories-screen .polaroids{gap:17px;margin:22px 0 30px}.memories-screen .polaroid .photo-art{min-height:0;aspect-ratio:3/4}.memories-screen .polaroid figcaption{margin-top:10px}
.final-video-frame{width:100%;max-width:380px}.final-video{display:block;width:100%;height:auto;max-height:58dvh;object-fit:contain;background:#181218;pointer-events:none}
.heart-start.is-opening .heart-scene{animation:heart-zoom-fast .32s ease-out forwards}.heart-transition.active{animation:heart-cover .32s ease-out both}.heart-transition.reveal{animation:heart-reveal .28s ease-in both}@keyframes heart-zoom-fast{from{transform:scale(1);opacity:1}to{transform:scale(2.15);opacity:0}}@keyframes heart-cover{from{opacity:0}to{opacity:1}}@keyframes heart-reveal{from{opacity:1}to{opacity:0}}
video:fullscreen,video:-webkit-full-screen{width:100%;height:100%;object-fit:contain;background:#000}
.reason-modal-open{overflow:hidden}.reason-dialog:fullscreen,.reason-dialog:-webkit-full-screen{width:100%;height:100%;padding:25px;background:#120e11}.reason-dialog-photo:after{background:linear-gradient(180deg,#160d1638,#160d1670)}.reason-dialog-photo img{opacity:.86}
.reason-dialog .reason-dialog-card{translate:-44px -90px;transform:rotate(-51deg)}.reason-dialog .reason-dialog-copy{translate:-44px -90px}.reason-dialog.reason-3 .reason-dialog-copy{translate:-44px -118px}.reason-dialog.reason-4 .reason-dialog-copy{translate:-44px -122px}
