:root{--ink:#fff8f5;--rose:#ff9db5;--plum:#35132f;--peach:#ffc9a6;--paper:#fff5ed}*{box-sizing:border-box}body{margin:0;min-height:100svh;background:#260d27;color:var(--ink);font-family:"DM Sans",sans-serif;overflow:hidden}.glow{position:fixed;width:48vw;aspect-ratio:1;border-radius:50%;filter:blur(70px);opacity:.52;pointer-events:none}.glow-one{background:#c23c7a;top:-18%;left:-15%}.glow-two{background:#df6e47;bottom:-26%;right:-18%}.journey{position:relative;min-height:100svh;max-width:760px;margin:auto;padding:34px 24px;display:grid;place-items:center}.progress{position:absolute;top:29px;left:50%;transform:translateX(-50%);display:flex;gap:7px}.progress span{height:3px;width:38px;border-radius:20px;background:#ffffff38;transition:.5s}.progress span.on{background:var(--peach)}.scene{display:none;width:min(100%,580px);text-align:center;animation:enter .7s both}.scene.active{display:block}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;font-weight:700;color:#ffc6b8;margin:0 0 18px}h1,h2,h3{font-family:"Playfair Display",serif;line-height:.98;margin:.1em 0}h1{font-size:clamp(3.35rem,11vw,6.5rem)}h2{font-size:clamp(2.8rem,9vw,5.2rem)}h3{font-size:clamp(2.2rem,8vw,4rem)}em{color:#ffb5c5;font-weight:600}.lede{margin:29px auto 34px;color:#ffe6de;max-width:325px;line-height:1.6}.primary,.text-button{border:0;cursor:pointer;font:700 .9rem "DM Sans",sans-serif;letter-spacing:.02em;transition:transform .25s,box-shadow .25s}.primary{padding:16px 22px;border-radius:999px;background:var(--paper);color:#531b41;box-shadow:0 12px 30px #12051557}.primary:hover{transform:translateY(-3px);box-shadow:0 18px 35px #1205158a}.primary i,.text-button i{font-size:1.2em;font-style:normal;margin-left:7px}.sparkles:before,.sparkles:after{content:"✦";position:absolute;color:#ffd7a0;font-size:2rem;animation:pulse 1.8s infinite alternate}.sparkles:before{margin-left:-210px;margin-top:-60px}.sparkles:after{margin-left:190px;margin-top:60px;font-size:1rem;animation-delay:.6s}.postcard{position:relative;background:var(--paper);color:#52213a;border-radius:3px;padding:57px 36px 34px;box-shadow:13px 15px 0 #ff9b9b34;transform:rotate(-2deg);text-align:left}.postcard h2{font-size:clamp(2.45rem,8vw,4.2rem)}.postcard .eyebrow{color:#b75d72}.postcard p:not(.eyebrow){line-height:1.65;color:#754d5a;margin:25px 0}.tape{position:absolute;top:-17px;left:40%;width:98px;height:35px;background:#ffc78db5;transform:rotate(3deg)}.flower-line{color:#d96683;font-size:1.3rem;letter-spacing:.25em}.text-button{margin-top:34px;background:none;color:#ffe1cf;padding:10px}.wish-stack{margin:32px 0 29px;text-align:left;display:grid;gap:11px}.wish-stack article{display:flex;gap:16px;align-items:center;padding:15px 18px;background:#fff2ea12;border:1px solid #fff2ea24;border-radius:16px;backdrop-filter:blur(7px);animation:rise .5s both}.wish-stack article:nth-child(2){animation-delay:.12s}.wish-stack article:nth-child(3){animation-delay:.24s}.wish-stack b{font:600 1.25rem "Playfair Display",serif;color:#ffadbb}.wish-stack p{margin:0;line-height:1.4}.cake-stage{height:300px;position:relative;margin:20px auto 0;width:270px}.cake{position:absolute;bottom:36px;left:38px;width:195px;height:110px;background:linear-gradient(90deg,#e36f82,#ff9e9b 48%,#d85e79);border-radius:10px 10px 22px 22px;box-shadow:inset 0 -10px #bd4c6b,0 20px 30px #1603155c}.cake-top{position:absolute;inset:-12px 0 auto;height:35px;background:#fff0df;border-radius:50%;z-index:2}.icing{position:absolute;z-index:3;top:7px;left:10px;width:175px;height:25px;border-bottom:8px solid #fff0df;border-radius:0 0 50% 50%}.cake-side{position:absolute;inset:38px 10px 5px;display:flex;justify-content:space-around}.cake-side i{width:12px;height:38px;border-radius:10px;background:#ffc0bd;opacity:.75}.candle{position:absolute;z-index:5;bottom:145px;width:11px;height:55px;background:repeating-linear-gradient(45deg,#ff889c 0 5px,#ffe7cf 5px 10px);border-radius:4px}.c1{left:73px}.c2{left:130px;height:68px}.c3{right:66px}.candle span{position:absolute;width:13px;height:21px;background:#ffd26d;left:-1px;top:-20px;border-radius:50% 50% 50% 50%;box-shadow:0 0 20px #ffd26d;animation:flicker .7s infinite alternate}.knife{position:absolute;right:0;top:79px;border:0;background:transparent;width:130px;height:95px;cursor:pointer;transform:rotate(-31deg);transition:transform .8s cubic-bezier(.2,.9,.2,1)}.knife:before{content:"";position:absolute;width:87px;height:16px;background:linear-gradient(#eee,#a7a2aa);left:5px;top:35px;clip-path:polygon(0 0,100% 30%,100% 70%,0 100%);box-shadow:0 3px 5px #0004}.knife span{position:absolute;left:90px;top:26px;width:33px;height:32px;border-radius:6px 11px 11px 6px;background:#b65b77}.cake-stage.cut .knife{transform:rotate(27deg) translate(10px,78px)}.cake-stage.cut .cake{animation:cutCake .8s .45s both}.cake-stage.cut .candle span{animation:none;opacity:0;transition:opacity .35s}.final-message{margin-top:-15px;animation:enter .8s both}.final-message p{color:#ffccaa;font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:.72rem}.celebration{position:absolute;inset:0;pointer-events:none}.celebration.show:before,.celebration.show:after{content:"✦  ✧  ✦  ✧  ✦";position:absolute;width:100%;left:0;top:24%;font-size:2rem;color:#ffd291;letter-spacing:1rem;animation:confetti 1.2s both}.celebration.show:after{top:68%;color:#ff92b1;animation-delay:.1s}.finale h2{font-size:clamp(2.6rem,8vw,4.5rem)}.cake-note{margin:16px 0 0;color:#ffe4d7;font-size:.9rem}@keyframes enter{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}@keyframes rise{from{opacity:0;transform:translateX(-13px)}to{opacity:1;transform:none}}@keyframes pulse{to{transform:scale(1.5);opacity:.35}}@keyframes flicker{to{transform:translateX(2px) scale(.85,1.13)}}@keyframes cutCake{50%{transform:scale(.98)}100%{clip-path:polygon(0 0,48% 0,50% 10%,52% 0,100% 0,100% 100%,52% 100%,50% 92%,48% 100%,0 100%)}}@keyframes confetti{from{transform:translateY(-70px);opacity:0}to{transform:translateY(55px);opacity:1}}@media(max-width:400px){.postcard{padding:48px 26px 28px}.cake-stage{transform:scale(.9);margin-block:-2px -15px}}
.memory-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:28px auto 18px;max-width:410px}.memory-grid figure{margin:0;background:#fff2ea12;padding:8px 8px 12px;border:1px solid #fff2ea2e;border-radius:16px;transform:rotate(-2deg)}.memory-grid figure:nth-child(2){transform:rotate(2deg)}.memory-grid figure:nth-child(3){transform:rotate(2deg)}.memory-grid figure:nth-child(4){transform:rotate(-1deg)}.photo-slot{display:grid;place-items:center;aspect-ratio:1.16;background:linear-gradient(135deg,#f79db5,#e67b89 48%,#f8c085);border-radius:10px;font-size:2.5rem;box-shadow:inset 0 0 30px #fff4}.memory-grid figcaption{padding-top:9px;color:#ffe4da;font:600 .76rem "DM Sans",sans-serif;letter-spacing:.04em}.memory-note{margin:0 auto 12px;color:#ffdad0;font-size:.86rem;max-width:260px;line-height:1.45}
.memories h2{font-size:clamp(2.55rem,8vw,4.6rem)}.memory-grid{align-items:stretch}.memory-grid figure{overflow:hidden;box-shadow:0 14px 28px #15061738}.memory-grid figure:has(video){grid-row:span 1}.memory-grid img,.memory-grid video{display:block;width:100%;height:142px;object-fit:cover;border-radius:10px;background:#6d375b}.memory-grid video{object-position:center}.memory-grid .portrait img{object-position:center}.memory-grid figure:nth-child(3) img{object-position:center 44%}.memory-grid figcaption{min-height:28px;display:flex;align-items:flex-end}.video-memory{position:relative}.video-memory:after{content:"a little proof";position:absolute;top:14px;left:14px;padding:5px 8px;border-radius:999px;background:#35132fbf;color:#fff7ed;font-size:.61rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;pointer-events:none}.memory-note{font-style:italic}.finale .eyebrow{margin-top:7px}@media(max-width:400px){.memory-grid img,.memory-grid video{height:120px}}
.memories .memory-grid{max-width:365px;gap:15px;margin-bottom:16px}.memories .memory-grid figure{padding:7px 7px 10px}.memories .memory-grid img{height:162px}.memories .memory-grid figcaption{justify-content:center;text-align:center}.video-feature{position:relative;margin:0 auto 16px;max-width:365px;overflow:hidden;border:1px solid #fff2ea38;border-radius:18px;background:#fff2ea10;box-shadow:0 18px 34px #15061744}.video-feature video{display:block;width:100%;height:155px;object-fit:cover;background:#4b2545}.video-feature figcaption{padding:11px 14px 13px;text-align:left;color:#fff1e9;font:600 .88rem "DM Sans",sans-serif}.video-feature figcaption span{display:block;margin-bottom:3px;color:#ffc0b9;font-size:.6rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.memory-note{margin-top:4px}.video-memory{display:none}@media(max-width:400px){.memories .memory-grid img{height:134px}.video-feature video{height:138px}}
html{scroll-behavior:smooth}body{overflow-x:hidden;overflow-y:auto}.journey{min-height:100svh;padding-block:70px 46px}.scene{padding-block:18px}.memories{padding-bottom:36px}body::-webkit-scrollbar{width:7px}body::-webkit-scrollbar-thumb{background:#ffb0bd88;border-radius:999px}
.memories .memory-grid{max-width:390px;gap:9px 16px;padding:4px 11px 6px}.memories .memory-grid figure{border-radius:13px;transition:transform .25s}.memories .memory-grid figure:first-child{transform:rotate(-5deg) translateY(9px)}.memories .memory-grid figure:nth-child(2){transform:rotate(4deg) translateY(-5px)}.memories .memory-grid figure:hover{transform:rotate(0) translateY(-4px)}.memories .memory-grid img{height:180px}.video-feature{max-width:390px;border-radius:21px}.video-feature video{height:240px;object-fit:cover}.video-feature:after{content:"";position:absolute;inset:0 0 55px;background:linear-gradient(0deg,#21101d7d,transparent 48%);pointer-events:none}.play-video{position:absolute;z-index:2;top:50%;left:50%;transform:translate(-50%,-60%);display:grid;place-items:center;gap:5px;width:92px;height:92px;border:1px solid #ffffffa8;border-radius:50%;background:#fff5eed9;color:#64254d;box-shadow:0 10px 28px #21081961;cursor:pointer;transition:.25s}.play-video:hover{transform:translate(-50%,-60%) scale(1.06)}.play-video.playing{width:62px;height:62px;opacity:.8}.play-video span{font-size:1.75rem;line-height:1}.play-video small{font:700 .55rem "DM Sans",sans-serif;letter-spacing:.08em;text-transform:uppercase}.video-feature figcaption{position:relative;z-index:3;background:#44203b}.video-feature:has(video:not([paused])) .play-video{opacity:0}.video-feature:has(video:not([paused])):hover .play-video{opacity:.85}@media(max-width:540px){.journey{padding-inline:17px;padding-block:58px 30px}.progress{top:20px}.progress span{width:28px}.primary{min-height:48px;padding-inline:21px}.text-button{min-height:44px}.memories .memory-grid{max-width:355px;gap:8px 13px}.memories .memory-grid img{height:156px}.video-feature{max-width:355px}.video-feature video{height:255px}.play-video{width:86px;height:86px}.video-feature figcaption{padding:12px 15px 15px}.memory-note{margin-bottom:4px}}@media(max-width:360px){.memories .memory-grid img{height:137px}.video-feature video{height:220px}}
.video-feature.is-playing .play-video{opacity:0}.video-feature.is-playing:hover .play-video{opacity:.85}
.video-scene{max-width:420px}.video-scene h2{font-size:clamp(2.9rem,9vw,4.8rem)}.video-frame{position:relative;isolation:isolate;width:min(100%,360px);height:330px;margin:25px auto 14px;overflow:hidden;border:8px solid #fff3eb18;border-radius:25px;background:#1b0c1c;box-shadow:0 24px 52px #13051480}.video-frame:before{content:"";position:absolute;z-index:2;inset:0;border:1px solid #fff6ed50;border-radius:17px;pointer-events:none}.video-frame:after{content:"✦";position:absolute;z-index:3;right:17px;top:13px;color:#ffd5a2;font-size:1.25rem;text-shadow:0 2px 10px #2d0f2d;pointer-events:none}.video-frame video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:rotate(90deg) scale(1.34);transform-origin:center}.video-caption{max-width:310px;margin:0 auto 18px;color:#ffe1d3;font-size:.93rem;line-height:1.5}.video-scene .primary{margin-top:1px}@media(max-width:540px){.video-frame{width:min(100%,340px);height:315px;margin-top:22px}.video-frame video{transform:rotate(90deg) scale(1.42)}.video-caption{font-size:.88rem;margin-bottom:15px}}
.video-frame video{object-fit:contain;transform:none}.video-frame{background:#160b18}@media(max-width:540px){.video-frame video{transform:none}}
.video-frame:after{display:none}
.toast-glasses{position:absolute;z-index:6;bottom:18px;left:8px;display:flex;gap:2px;filter:drop-shadow(0 5px 5px #21091a77);animation:cheers 1.6s ease-in-out infinite}.toast-glasses span{font-size:1.55rem;display:block}.toast-glasses span:first-child{transform:rotate(-13deg)}.toast-glasses span:last-child{transform:rotate(13deg) translateY(3px)}.confetti-piece{position:absolute;z-index:8;top:-15px;left:var(--x);width:8px;height:13px;border-radius:2px;background:var(--colour);animation:fallConfetti 1.75s var(--delay) cubic-bezier(.18,.6,.38,1) both;transform:rotate(var(--spin))}.confetti-piece:nth-child(3n){width:5px;height:10px;border-radius:50%}.confetti-piece:nth-child(4n){background:#ffe4a4}@keyframes cheers{0%,100%{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(3deg) translateY(-5px)}}@keyframes fallConfetti{0%{opacity:0;transform:translateY(-20px) rotate(0)}12%{opacity:1}100%{opacity:0;transform:translateY(105svh) rotate(var(--spin))}}
.confetti-piece{top:auto;bottom:-16px;animation:riseConfetti var(--duration) var(--delay) cubic-bezier(.12,.72,.25,1) both}@keyframes riseConfetti{0%{opacity:0;transform:translate3d(0,0,0) rotate(0) scale(.7)}10%{opacity:1}55%{opacity:1;transform:translate3d(calc(var(--drift) * .65),calc(var(--rise) * -.66),0) rotate(calc(var(--spin) * .65)) scale(1.1)}100%{opacity:0;transform:translate3d(var(--drift),calc(var(--rise) * -1),0) rotate(var(--spin)) scale(.75)}}
.champagne{position:absolute;z-index:4;right:8px;bottom:20px;width:42px;height:87px;filter:drop-shadow(0 6px 5px #21091a77)}.champagne-bottle{position:absolute;bottom:0;left:5px;width:31px;height:58px;border-radius:10px 10px 14px 14px;background:linear-gradient(90deg,#304b3c,#53735b 48%,#22382d);border:2px solid #d5a94a}.champagne-neck{position:absolute;bottom:54px;left:12px;width:17px;height:20px;background:#405c47;border:2px solid #d5a94a;border-bottom:0;border-radius:5px 5px 0 0}.champagne-cork{position:absolute;z-index:2;left:13px;bottom:72px;width:14px;height:10px;background:#e0ad77;border-radius:4px 4px 2px 2px;box-shadow:inset 0 -2px #b77954}.champagne b{position:absolute;width:7px;height:7px;border:1px solid #ffeecf;border-radius:50%;opacity:0}.bubble.one{left:28px;bottom:74px}.bubble.two{left:3px;bottom:66px}.bubble.three{left:22px;bottom:84px}.cake-stage.cut .champagne-cork{animation:corkPop .9s .12s cubic-bezier(.13,.73,.26,1) both}.cake-stage.cut .bubble{animation:bubbleRise 1.1s .14s ease-out both}.cake-stage.cut .bubble.two{animation-delay:.27s}.cake-stage.cut .bubble.three{animation-delay:.38s}@keyframes corkPop{0%{transform:translate(0,0) rotate(0)}55%{transform:translate(19px,-76px) rotate(165deg)}100%{transform:translate(28px,-57px) rotate(250deg);opacity:0}}@keyframes bubbleRise{0%{opacity:0;transform:translateY(0) scale(.6)}20%{opacity:1}100%{opacity:0;transform:translateY(-44px) translateX(10px) scale(1.25)}}
.champagne{right:0;bottom:12px;width:59px;height:113px;transform:rotate(10deg)}.champagne-bottle{left:10px;width:38px;height:76px;border:2px solid #d5aa3d;border-radius:13px 13px 17px 17px;background:radial-gradient(circle at 32% 22%,#91a676 0 4%,transparent 5%),linear-gradient(90deg,#102b22,#31583c 48%,#0d231a);box-shadow:inset 5px 0 #6d8a6540,inset -5px 0 #07160e8a}.champagne-bottle:after{content:"";position:absolute;left:7px;top:26px;width:20px;height:25px;border:1px solid #e9d9a6;border-radius:3px;background:linear-gradient(135deg,#ede3bd,#c8ad63);box-shadow:inset 0 0 0 3px #345139}.champagne-neck{left:20px;bottom:72px;width:18px;height:23px;border:2px solid #e1bb54;border-bottom:0;border-radius:5px 5px 0 0;background:repeating-linear-gradient(45deg,#c99931 0 3px,#f1d577 3px 6px)}.champagne-cork{left:21px;bottom:93px;width:16px;height:11px;background:linear-gradient(#e6b777,#bd7e4a);box-shadow:inset 0 -2px #8e552f}.champagne-foam{position:absolute;z-index:4;left:11px;bottom:91px;width:39px;height:48px;opacity:0;transform-origin:bottom center}.champagne-foam b{position:absolute;display:block;width:16px;height:20px;border-radius:50% 50% 45% 45%;background:#fff7df;box-shadow:0 0 9px #fff6dfaa}.champagne-foam b:nth-child(1){left:8px;bottom:0}.champagne-foam b:nth-child(2){left:0;bottom:10px;transform:rotate(-26deg) scale(.76)}.champagne-foam b:nth-child(3){right:0;bottom:15px;transform:rotate(27deg) scale(.7)}.champagne-foam b:nth-child(4){left:15px;bottom:25px;transform:scale(.58)}.cake-stage.cut .champagne-foam{animation:foamBurst .95s .13s ease-out both}.cake-stage.cut .bubble{z-index:5}@keyframes foamBurst{0%{opacity:0;transform:scale(.15,.1) translateY(0)}18%{opacity:1;transform:scale(1.28,.92) translateY(-8px)}70%{opacity:.92;transform:scale(.82,1.2) translateY(-23px)}100%{opacity:0;transform:scale(.35,1.35) translateY(-42px)}}
.champagne-foam b{opacity:1}
.knife{z-index:9;right:-5px;top:73px;width:172px;height:91px;padding:0;transform:rotate(-31deg);background:transparent}.knife:before{display:none}.knife svg{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 7px 5px #21091a77)}.knife .blade{fill:url(#blade-gradient);fill:#d9dee3;stroke:#929aa4;stroke-width:2}.knife .blade-shine{fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;opacity:.88}.knife .handle{fill:#7c314f;stroke:#4e1837;stroke-width:3}.knife circle{fill:#f0b48e;stroke:#4e1837;stroke-width:2}.cake-stage.cut .knife{animation:knifeSlice .82s cubic-bezier(.19,.84,.2,1) both;transition:none}.candle:after{content:"";position:absolute;z-index:6;left:1px;top:-14px;width:9px;height:17px;border-radius:50%;background:radial-gradient(ellipse at 50% 100%,#c7c2c8aa 0 18%,transparent 64%);opacity:0;transform:translateY(6px) scale(.45)}.cake-stage.cut .candle span{opacity:0;transform:scale(.25) translateY(12px);filter:blur(1px);transition:opacity .14s .17s,transform .2s .17s,filter .2s .17s}.cake-stage.cut .candle:after{animation:smokeTrail 1.35s .27s ease-out both}@keyframes knifeSlice{0%{transform:rotate(-31deg) translate(0,0)}38%{transform:rotate(-7deg) translate(-31px,37px)}62%{transform:rotate(10deg) translate(-42px,63px)}100%{transform:rotate(-31deg) translate(0,0)}}@keyframes smokeTrail{0%{opacity:0;transform:translateY(6px) scale(.4)}20%{opacity:.72}100%{opacity:0;transform:translateY(-42px) translateX(8px) scale(1.35)}}
.sound-toggle{position:absolute;z-index:12;top:22px;right:22px;width:37px;height:37px;border:1px solid #fff4eb42;border-radius:50%;background:#ffffff12;color:#ffe6d7;font:700 1rem "DM Sans",sans-serif;cursor:pointer;backdrop-filter:blur(8px);transition:.2s}.sound-toggle:hover{background:#ffffff25;transform:scale(1.08)}@media(max-width:540px){.sound-toggle{top:13px;right:15px;width:35px;height:35px}}
.sound-toggle{display:flex;align-items:center;justify-content:center;gap:3px}.sound-toggle span{font-size:1rem;line-height:1}.sound-toggle small{font:700 .49rem "DM Sans",sans-serif;letter-spacing:.04em;text-transform:uppercase}
.sound-toggle{width:42px;height:42px;border:0;border-radius:0;background:transparent;color:#ffe8db;box-shadow:none;backdrop-filter:none}.sound-toggle:hover{background:transparent;transform:scale(1.14);color:#ffc7be}.sound-toggle span{font:400 1.65rem/1 "Playfair Display",serif}.sound-toggle.is-muted span{font:400 1.45rem/1 "DM Sans",sans-serif;color:#ffc1bd}.sound-toggle small{display:none}
.sound-toggle:disabled{opacity:.55;pointer-events:none}
.memory-gate{display:grid;gap:12px;max-width:325px;margin:0 auto}.memory-gate input{width:100%;border:1px solid #fff1e780;border-radius:999px;background:#fff8f51c;color:var(--ink);font:500 1rem "DM Sans",sans-serif;outline:0;padding:15px 19px;transition:border-color .2s,background .2s,box-shadow .2s}.memory-gate input::placeholder{color:#ffe5db99}.memory-gate input:focus{border-color:#ffd0bd;background:#fff8f52b;box-shadow:0 0 0 4px #ffb1b22e}.memory-gate input[aria-invalid="true"]{border-color:#ffab9b;box-shadow:0 0 0 4px #ffab9b24}.memory-gate .primary{justify-self:center;margin-top:2px}.gate-feedback{min-height:1.4em;margin:0;color:#ffd8a7;font-size:.86rem;font-weight:700;transition:opacity .2s}.memory-gate.unlocked{animation:enter .45s reverse both}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.unlock-confetti{position:fixed;z-index:20;inset:0;pointer-events:none;overflow:hidden}
.finale h2{transition:opacity .46s ease,transform .46s ease}.finale h2.is-changing{opacity:0;transform:translateY(-12px);transition-duration:.42s}.finale h2.is-wish{animation:wishArrives 1.1s cubic-bezier(.22,.83,.22,1) both}.finale.celebrated .cake-note{opacity:0;transform:translateY(-5px)}.cake-note{transition:opacity .35s ease,transform .35s ease}@keyframes wishArrives{0%{opacity:0;transform:translateY(13px);filter:blur(5px)}100%{opacity:1;transform:none;filter:blur(0)}}
.toast-glasses:after{content:"✦";position:absolute;z-index:3;left:22px;top:-8px;color:#ffe7a3;font-size:.85rem;opacity:0;text-shadow:0 0 10px #ffe7a3}.cake-stage.cut .toast-glasses span:first-child{animation:glassClinkLeft .72s .22s ease-out both}.cake-stage.cut .toast-glasses span:last-child{animation:glassClinkRight .72s .22s ease-out both}.cake-stage.cut .toast-glasses:after{animation:clinkSpark .55s .39s ease-out both}@keyframes glassClinkLeft{0%,100%{transform:rotate(-13deg)}35%{transform:rotate(13deg) translate(8px,-5px)}58%{transform:rotate(8deg) translate(6px,-3px)}}@keyframes glassClinkRight{0%,100%{transform:rotate(13deg) translateY(3px)}35%{transform:rotate(-13deg) translate(-8px,-3px)}58%{transform:rotate(-8deg) translate(-6px,-1px)}}@keyframes clinkSpark{0%{opacity:0;transform:scale(.4)}40%{opacity:1;transform:scale(1.4)}100%{opacity:0;transform:scale(2.2)}}
.finale.celebrated .celebration.show:before,.finale.celebrated .celebration.show:after{display:none}
.memories .memory-grid:has(.only-memory){display:block;max-width:300px;padding:8px;margin:26px auto 18px}.memories .memory-grid .only-memory{margin:0;padding:8px;transform:rotate(-2deg);border-radius:17px}.memories .memory-grid .only-memory img{height:340px;border-radius:11px;object-position:center 42%}@media(max-width:540px){.memories .memory-grid:has(.only-memory){max-width:270px}.memories .memory-grid .only-memory img{height:300px}}@media(max-width:360px){.memories .memory-grid .only-memory img{height:260px}}
.memories .memory-grid figure.portrait{padding-bottom:7px}.funny-caption{margin-top:10px!important;font-size:.88rem;color:#ffd8d0}
.memory-grid figcaption span{display:block;margin-top:2px;font-size:.57rem;font-weight:500;letter-spacing:0;text-transform:none;color:#ffc9c7}.funny-caption{display:none}
.memory-note span{white-space:nowrap}
.finale h2.is-wish{font-size:clamp(1.6rem,5.4vw,2.5rem);line-height:1.12;text-wrap:balance}
