@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(./great-vibes-cyrillic-ext-400-normal-CKQhgFwn.woff2)format("woff2"),url(./great-vibes-cyrillic-ext-400-normal-CzcHves0.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(./great-vibes-cyrillic-400-normal-C-wcqNJs.woff2)format("woff2"),url(./great-vibes-cyrillic-400-normal-DtFXCWjq.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(./great-vibes-greek-ext-400-normal-Caxd-0sC.woff2)format("woff2"),url(./great-vibes-greek-ext-400-normal-I8uMZwKr.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(./great-vibes-vietnamese-400-normal-a2O3jU53.woff2)format("woff2"),url(./great-vibes-vietnamese-400-normal-Cxbm9Uac.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(./great-vibes-latin-ext-400-normal-CsjMq8GN.woff2)format("woff2"),url(./great-vibes-latin-ext-400-normal-wh4xxCIu.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(./great-vibes-latin-400-normal-q5-78SH_.woff2)format("woff2"),url(./great-vibes-latin-400-normal-BAZ173uY.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(./cormorant-garamond-cyrillic-ext-500-normal-Yta7XZ9C.woff2)format("woff2"),url(./cormorant-garamond-cyrillic-ext-500-normal-lsPpqi9g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(./cormorant-garamond-cyrillic-500-normal-CyAY5ZLS.woff2)format("woff2"),url(./cormorant-garamond-cyrillic-500-normal-DkJXBcIH.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(./cormorant-garamond-vietnamese-500-normal-BZGLGj12.woff2)format("woff2"),url(./cormorant-garamond-vietnamese-500-normal-DqXqCC0q.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(./cormorant-garamond-latin-ext-500-normal-CH1kM7og.woff2)format("woff2"),url(./cormorant-garamond-latin-ext-500-normal-DYeaGGzO.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(./cormorant-garamond-latin-500-normal-BsRWmXhO.woff2)format("woff2"),url(./cormorant-garamond-latin-500-normal-zIXX3Q-H.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(./cormorant-garamond-cyrillic-ext-500-italic-ClXnudBg.woff2)format("woff2"),url(./cormorant-garamond-cyrillic-ext-500-italic-DakTmaFY.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(./cormorant-garamond-cyrillic-500-italic-DVnfXoMy.woff2)format("woff2"),url(./cormorant-garamond-cyrillic-500-italic-C9gO-8KC.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(./cormorant-garamond-vietnamese-500-italic-D3igDnAQ.woff2)format("woff2"),url(./cormorant-garamond-vietnamese-500-italic-C-296ow0.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(./cormorant-garamond-latin-ext-500-italic-CE7zdTnu.woff2)format("woff2"),url(./cormorant-garamond-latin-ext-500-italic-CalKM9tT.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(./cormorant-garamond-latin-500-italic-Y14P-dkT.woff2)format("woff2"),url(./cormorant-garamond-latin-500-italic-DhNIfkTX.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:500;src:url(./caveat-cyrillic-ext-500-normal-DcrB4vVx.woff2)format("woff2"),url(./caveat-cyrillic-ext-500-normal-DqTXtm5N.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:500;src:url(./caveat-cyrillic-500-normal-DpMZbbjM.woff2)format("woff2"),url(./caveat-cyrillic-500-normal-DLSfp5IU.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:500;src:url(./caveat-latin-ext-500-normal-jKqJW7bC.woff2)format("woff2"),url(./caveat-latin-ext-500-normal-wUUXxlbS.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:500;src:url(./caveat-latin-500-normal-B9SDL8cy.woff2)format("woff2"),url(./caveat-latin-500-normal-Do9veZfZ.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--night:#0b0d24;--night-2:#1c1f4f;--violet:#c9c3f0;--wine:#4a1219;--wine-2:#5b1a22;--wine-3:#7a2430;--blush:#fde8ec;--blush-2:#f7c9d4;--rose:#c2456a;--rose-ink:#6e1f36;--gold:#d4a64a;--gold-light:#f3d58a;--ivory:#fbf5ec;--script:"Great Vibes", cursive;--serif:"Cormorant Garamond", Georgia, serif;--hand:"Caveat", cursive;--sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--pad:max(22px, env(safe-area-inset-left,0px));--ease:cubic-bezier(.22, 1, .36, 1)}*,:before,:after{box-sizing:border-box}html{background:var(--night);text-size-adjust:100%}p,h1,h2{text-wrap:balance}body{min-height:100svh;color:var(--ivory);font-family:var(--serif);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-size:18px;line-height:1.55;overflow-x:hidden}body.is-locked{height:100svh;overflow:hidden}img{max-width:100%;display:block}button{font:inherit;color:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:0 0;border:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sky{z-index:-1;pointer-events:none;min-height:100lvh;position:fixed;inset:0}.sky__layer{transition:opacity 1.4s;position:absolute;inset:0}.sky__layer--night{background:radial-gradient(120% 70% at 50% 0%, #2a1b4a 0%, transparent 60%), radial-gradient(90% 50% at 80% 100%, #1d2a5c 0%, transparent 70%), var(--night)}.sky__layer--wine{opacity:0;background:radial-gradient(110% 60% at 50% 0%, #7a2430 0%, transparent 65%), radial-gradient(100% 60% at 0% 100%, #2a0a10 0%, transparent 70%), var(--wine)}.sky__layer--blush{opacity:0;background:radial-gradient(100% 60% at 50% 0%, #fff6f0 0%, transparent 70%), radial-gradient(100% 60% at 100% 100%, #f7c9d4 0%, transparent 70%), var(--blush)}body[data-theme=wine] .sky__layer--wine,body[data-theme=blush] .sky__layer--blush{opacity:1}.sky__particles{width:100%;height:100%;position:absolute;inset:0}.progress{height:calc(var(--safe-top) + 2px);z-index:40;pointer-events:none;position:fixed;top:0;left:0;right:0}.progress span{transform-origin:0;background:linear-gradient(90deg, var(--gold), var(--gold-light));width:100%;height:2px;position:absolute;bottom:0;left:0;transform:scaleX(0)}.section{padding:calc(64px + var(--safe-top)) var(--pad) 64px;position:relative}.screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100svh;display:flex}.theme-blush{color:var(--rose-ink)}.kicker{font-family:var(--sans);letter-spacing:.32em;text-transform:uppercase;color:var(--gold-light);opacity:.85;font-size:12px}.theme-blush .kicker{color:var(--rose)}.script{font-family:var(--script);font-weight:400;line-height:1}.hand{font-family:var(--hand)}.gold-text{color:var(--gold-light);text-shadow:0 0 18px #f3d58a59}.photo{background-color:#ffffff0f;background-position:50%;background-size:cover;position:relative;overflow:hidden}.photo img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .8s}.photo img.is-loaded{opacity:1}.photo--placeholder{font-family:var(--hand);color:#ffffff8c;background:repeating-linear-gradient(135deg,#ffffff0a 0 10px,#0000 10px 20px),#ffffff0f;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:18px;display:flex}.photo--placeholder small{font-family:var(--sans);opacity:.7;font-size:11px}[data-reveal]{opacity:0}@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1!important;transform:none!important}}.scroll-cue--abs{left:0;right:0;bottom:calc(22px + var(--safe-bottom));pointer-events:none;margin:0;position:absolute}.theme-blush .scroll-cue{color:#6e1f3699}.theme-blush .scroll-cue i{background:linear-gradient(var(--rose), transparent)}.guide{left:50%;bottom:calc(22px + var(--safe-bottom));z-index:44;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);max-width:calc(100vw - 40px);color:var(--gold-light);font-family:var(--sans);letter-spacing:.04em;white-space:nowrap;opacity:0;transition:opacity .5s, transform .5s var(--ease);pointer-events:none;background:#14101eb8;border:1px solid #f3d58a73;border-radius:999px;align-items:center;gap:10px;padding:11px 18px 11px 14px;font-size:13px;display:flex;position:fixed;transform:translate(-50%,16px);box-shadow:0 10px 30px #00000059}.guide.is-visible{opacity:1;transform:translate(-50%)}.guide i{border:1.5px solid;border-radius:50%;width:18px;height:18px;animation:1.4s ease-in-out infinite guide-bob;position:relative}.guide i:after{content:"";border-top:1.5px solid;border-left:1.5px solid;width:6px;height:6px;margin-left:-3px;position:absolute;top:4px;left:50%;transform:rotate(45deg)}@keyframes guide-bob{0%,to{transform:translateY(2px)}50%{transform:translateY(-3px)}}body[data-theme=blush] .guide{color:#fff3f5;background:#6e1f36d1;border-color:#ffffff59}.trail,.calls,.finale__collage{max-width:560px;margin-left:auto;margin-right:auto}.calls{max-width:440px}.gate{z-index:50;padding:calc(24px + var(--safe-top)) var(--pad) calc(24px + var(--safe-bottom));text-align:center;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.gate__inner{flex-direction:column;align-items:center;width:100%;max-width:380px;display:flex}.gate__kicker{margin:0 0 28px}.envelope{aspect-ratio:3/2;perspective:900px;filter:drop-shadow(0 18px 30px #00000073);width:min(280px,74vw);margin-bottom:30px;position:relative}.envelope>div{border-radius:10px;position:absolute;inset:0}.envelope__back{z-index:1;background:#e7d2b1}.envelope__card{z-index:2;color:var(--wine-3);background:linear-gradient(#fffaf2,#f6ead8);justify-content:center;align-items:flex-start;padding-top:8%;font-size:34px;display:flex;border-radius:6px!important;inset:6% 7% 8%!important}.envelope__front{z-index:3;clip-path:polygon(0 0,50% 56%,100% 0,100% 100%,0 100%);background:linear-gradient(160deg,#f8ecda,#ecdabd)}.envelope__flap{z-index:4;clip-path:polygon(0 0,100% 0,50% 60%);transform-origin:50% 0;-webkit-backface-visibility:visible;backface-visibility:visible;background:linear-gradient(#f1e1c6,#e4cda8)}.envelope__seal{z-index:5;background:radial-gradient(circle at 35% 30%,#c0414d,#8a1f2b 60%,#6a1520);justify-content:center;align-items:center;width:54px;height:54px;display:flex;box-shadow:0 3px 8px #00000059,inset 0 0 0 3px #d4a64a8c;border-radius:50%!important;inset:calc(56% - 27px) auto auto calc(50% - 27px)!important}.envelope__seal span{font-family:var(--serif);color:var(--gold-light);font-size:28px;font-style:italic;font-weight:500;line-height:1}.gate__to{margin:0 0 22px;font-size:clamp(46px,14vw,62px);font-weight:400}.gate__form{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.gate__label{font-family:var(--hand);color:var(--violet);font-size:22px}.gate__field{background:#ffffff12;border:1px solid #f3d58a73;border-radius:999px;align-items:center;gap:10px;width:min(300px,100%);padding:6px 6px 6px 20px;display:flex}.gate__input{min-width:0;height:44px;color:var(--ivory);font-family:var(--sans);letter-spacing:.3em;text-transform:uppercase;background:0 0;border:0;outline:0;flex:1;font-size:18px}.gate__input::placeholder{color:#ffffff59}.gate__btn{background:linear-gradient(135deg, var(--gold-light), var(--gold));color:#3a1d08;min-height:48px;font-family:var(--sans);transition:transform .2s var(--ease);border-radius:999px;padding:0 28px;font-size:16px;font-weight:600;box-shadow:0 6px 24px #d4a64a59}.gate__btn:active{transform:scale(.96)}.gate__btn--round{flex:none;width:44px;min-height:44px;padding:0;font-size:20px}.gate__msg{min-height:22px;font-family:var(--hand);color:var(--gold-light);margin:0;font-size:20px}.gate__msg.is-error{color:#ffb3c1}.gate__note{font-family:var(--sans);letter-spacing:.08em;color:#ffffff80;margin:18px 0 0;font-size:12px}.hero{padding-top:calc(52px + var(--safe-top));justify-content:flex-start}.hero__date{margin:0 0 6px}.hero__title{flex-direction:column;align-items:center;margin:0;font-weight:400;display:flex}.hero__happy{white-space:nowrap;flex-direction:column;align-items:center;padding:.1em .1em .05em;font-size:clamp(76px,23vw,120px);display:flex}.hero__word{margin-right:.9em;display:block}.hero__word--2{margin:-.28em 0 0 .7em}.hero__happy .ch,.hero__name .nm{display:inline-block}.hero__name{font-family:var(--serif);letter-spacing:.38em;text-transform:uppercase;color:var(--ivory);text-shadow:0 0 22px #c9c3f08c;margin-top:2px;padding-left:.38em;font-size:clamp(26px,8vw,40px);font-weight:500}.hero__frame{background:linear-gradient(145deg,#fbe7a6 0%,#d4a64a 28%,#8c6421 52%,#e9c46a 74%,#a57a2b 100%);border-radius:6px;width:min(268px,70vw);margin:30px auto 0;padding:11px;position:relative;box-shadow:0 22px 60px #0000008c,0 0 70px #c9c3f024,inset 0 0 0 1px #fff4d699,inset 0 0 0 4px #5a3c0f59}.hero__frame:after{content:"";pointer-events:none;border:1px solid #fff4d6b3;border-radius:3px;position:absolute;inset:7px}.hero__photo{width:100%;aspect-ratio:var(--ratio,3 / 4);border-radius:2px;box-shadow:inset 0 0 12px #00000059}.hero__line{max-width:300px;color:var(--violet);margin:26px 0 0;font-size:24px;line-height:1.25}.scroll-cue{font-family:var(--sans);letter-spacing:.3em;text-transform:uppercase;color:#ffffff8c;flex-direction:column;align-items:center;gap:8px;margin-top:28px;font-size:11px;display:flex}.scroll-cue i{width:1px;height:36px;animation:cue 1.8s var(--ease) infinite;transform-origin:top;background:linear-gradient(#f3d58ae6,#0000)}@keyframes cue{0%{opacity:1;transform:scaleY(0)}70%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(1)}}.hero__bridge{padding:40px 0;position:relative}.hero__bridge-title{color:var(--gold-light);margin:0;font-size:clamp(46px,13vw,64px)}.hero__bridge-line{max-width:300px;color:var(--violet);margin:14px auto 0;font-size:22px;font-style:italic}.chapter{position:relative}.chapter__title{padding:calc(60px + var(--safe-top)) var(--pad) 60px;position:relative;overflow:hidden}.chapter__ornament{margin-bottom:18px}.ornament{fill:none;width:110px;height:auto;stroke:var(--gold-light);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;overflow:visible}.ornament .heart{fill:#e8758f;stroke:none}.ornament--office .steam{stroke-dasharray:4 5;opacity:.8;animation:2.6s linear infinite steam}@keyframes steam{to{stroke-dashoffset:-18px}}.ornament--outings .trail{stroke-dasharray:3 6}.ornament--garba{width:120px}.ornament--garba .stick rect{fill:#c2456a;stroke:var(--gold-light)}.ornament--garba .stick--b rect{fill:#f59f00}.ornament--garba .stick circle{fill:var(--gold-light);stroke:none}.ornament--garba .stick path{stroke:#fff8e1;stroke-width:1.6px}.chapter__name{font-family:var(--serif);color:var(--ivory);text-wrap:balance;margin:10px 0 0;font-size:clamp(42px,12.5vw,64px);font-style:italic;font-weight:500;line-height:1.02}.chapter__sub{max-width:290px;color:var(--gold-light);margin:14px auto 0;font-size:24px;line-height:1.2}.toran{top:var(--safe-top);width:100%;height:40px;position:absolute;left:0}.rangoli{opacity:.3;pointer-events:none;width:min(140vw,640px);height:min(140vw,640px);margin:auto;position:absolute;inset:0}.chapter__title>:not(.rangoli):not(.toran):not(.scroll-cue){position:relative}.diyas{justify-content:center;align-items:flex-end;gap:18px;display:flex}.diya{width:54px;position:relative}.diya:nth-child(2){width:66px}.diya svg{width:100%;display:block}.diya svg path{fill:#b5562a;stroke:var(--gold);stroke-width:1.5px}.diya svg .rim{fill:none;stroke:var(--gold-light)}.flame{transform-origin:50% 100%;background:radial-gradient(at 50% 80%,#fff7c2 0%,#ffd43b 35%,#ff922b 70%,#ff922b00 100%);border-radius:50%/64% 64% 36% 36%;width:14px;height:24px;margin-left:-7px;animation:1.6s ease-in-out infinite alternate flicker;position:absolute;bottom:62%;left:50%;box-shadow:0 0 22px 8px #ffbe5059}.diya:nth-child(2) .flame{animation-delay:-.5s}.diya:nth-child(3) .flame{animation-delay:-1s}@keyframes flicker{0%{transform:scale(1)rotate(-2deg)}40%{transform:scale(.92,1.08)rotate(2deg)}70%{transform:scale(1.05,.95)rotate(-1deg)}to{transform:scale(.97,1.04)rotate(1.5deg)}}.desk{height:100svh}.desk__stage{height:100%;padding:calc(20px + var(--safe-top)) var(--pad) calc(30px + var(--safe-bottom));place-items:center;display:grid;position:relative;overflow:hidden}.desk__card{background:#fffdf8;border-radius:4px;grid-area:1/1;width:min(290px,72vw);margin:0;padding:10px 10px 12px;position:relative;box-shadow:0 18px 40px #00000073}.desk__card--wide{width:min(340px,84vw)}.desk__photo{aspect-ratio:var(--ratio-c,4 / 5);border-radius:2px}.desk__photo.photo--placeholder{color:#8a6d5a;background:repeating-linear-gradient(135deg,#f1e7da 0 10px,#ebdfcf 10px 20px)}.clip{z-index:2;border:3px solid #c9ccd4;border-radius:10px;width:16px;height:40px;position:absolute;top:-14px;left:26px}.note{color:#4b3a12;background:#ffe98a;max-width:62%;padding:10px 12px 12px;font-size:20px;line-height:1.1;position:absolute;bottom:-22px;right:-8px;transform:rotate(4deg);box-shadow:0 6px 14px #00000040}.desk--static{height:auto}.desk--static .desk__stage{flex-direction:column;align-items:center;gap:60px;padding:40px 0 80px;display:flex}.desk--static .desk__card{grid-area:auto}.ring{flex-direction:column;justify-content:center;align-items:center;height:100svh;display:flex;position:relative;overflow:hidden}.ring__stage{perspective:1100px;justify-content:center;align-items:center;width:100%;height:62svh;max-height:520px;display:flex}.ring__wheel{aspect-ratio:3/4;width:min(210px,54vw);transform-style:preserve-3d;position:relative}.ring__card{-webkit-backface-visibility:hidden;backface-visibility:hidden;background:linear-gradient(140deg,#f3d58a,#e64980 40%,#f59f00 70%,#37b24d);border-radius:16px;margin:0;padding:5px;position:absolute;inset:0;box-shadow:0 16px 40px #0006}.ring__photo{border-radius:12px;width:100%;height:100%}.ring__caption{min-height:30px;margin:16px var(--pad) 0;color:var(--gold-light);text-align:center;font-size:24px}.ring__mirrors{pointer-events:none;position:absolute;inset:0}.ring__mirrors i{opacity:.2;background:#fff8e1;border-radius:50%;width:6px;height:6px;position:absolute;box-shadow:0 0 10px 2px #fff8e1cc}.ring__mirrors i:first-child{top:14%;left:8%}.ring__mirrors i:nth-child(2){top:18%;left:88%}.ring__mirrors i:nth-child(3){top:78%;left:14%}.ring__mirrors i:nth-child(4){top:84%;left:82%}.ring__mirrors i:nth-child(5){top:9%;left:50%}.ring__mirrors i:nth-child(6){top:46%;left:4%}.ring__mirrors i:nth-child(7){top:52%;left:94%}.ring__mirrors i:nth-child(8){top:92%;left:30%}.ring__mirrors i:nth-child(9){top:6%;left:68%}.ring__mirrors i:nth-child(10){top:24%;left:22%}.ring__mirrors i:nth-child(11){top:70%;left:76%}.ring__mirrors i:nth-child(12){top:94%;left:60%}.trail{padding:20px var(--pad) 80px}.trail__list{flex-direction:column;gap:54px;padding:20px 0;display:flex;position:relative}.trail__svg{pointer-events:none;position:absolute;inset:0;overflow:visible}.trail__line{fill:none;stroke:var(--gold-light);stroke-width:2px;stroke-linecap:round;opacity:.8}.polaroid{background:#fffdf8;width:min(250px,66vw);margin:0;padding:10px 10px 0;position:relative;box-shadow:0 16px 36px #0006}.polaroid--left{align-self:flex-start}.polaroid--right{align-self:flex-end}.polaroid--wide{width:min(320px,84vw)}.trail__list--single .polaroid{align-self:center}.polaroid__photo{aspect-ratio:var(--ratio-c,1 / 1.05)}.polaroid__photo.photo--placeholder{color:#8a6d5a;background:repeating-linear-gradient(135deg,#f1e7da 0 10px,#ebdfcf 10px 20px)}.polaroid figcaption{color:#4b2a22;text-align:center;min-height:46px;padding:8px 4px 12px;font-size:21px;line-height:1.1}.pin{background:radial-gradient(circle at 35% 35%,#ff8fa3,#c2456a 70%);border-radius:50%;width:16px;height:16px;margin-left:-8px;position:absolute;top:-8px;left:50%;box-shadow:0 3px 6px #00000059}.calls{text-align:center;margin-top:90px}.calls__title{margin:0 0 30px;font-size:clamp(40px,11vw,54px)}.calls__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 16px;padding-bottom:40px;display:grid}.phone{background:#121212;border-radius:28px;margin:0;padding:6px;position:relative;box-shadow:0 16px 36px #00000073,inset 0 0 0 1px #333}.phone:nth-child(2n){margin-top:40px}.phone:last-child:nth-child(odd):not(:first-child){grid-column:1/-1;justify-self:center;width:calc(50% - 8px);margin-top:30px}.phone__screen{aspect-ratio:var(--ratio,9 / 18);border-radius:22px}.phone__top{font-family:var(--sans);color:#fff;text-shadow:0 1px 6px #0009;flex-direction:column;align-items:flex-start;display:flex;position:absolute;top:16px;left:16px}.phone__top b{font-size:13px;font-weight:600}.phone__top span{opacity:.85;font-size:10px}.phone__bar{justify-content:center;gap:10px;display:flex;position:absolute;bottom:18px;left:0;right:0}.phone__bar i{background:#ffffff47;border-radius:50%;width:26px;height:26px}.phone__bar .end{background:#ff3b30}.phone figcaption{color:var(--gold-light);font-size:19px;position:absolute;bottom:-34px;left:0;right:0}.mosaic{columns:2;padding:10px var(--pad) 90px;column-gap:14px}.mosaic__item{break-inside:avoid;background:linear-gradient(150deg, var(--gold-light), var(--gold) 50%, #8c6421);border-radius:14px;margin:0 0 14px;padding:4px;box-shadow:0 12px 30px #00000059}.mosaic__photo{aspect-ratio:var(--ratio,3 / 4);border-radius:10px}.mosaic__item figcaption{color:#3a1d08;padding:6px 6px 4px;font-size:15px;font-style:italic;line-height:1.25}.letter{padding-top:calc(90px + var(--safe-top));text-align:center;padding-bottom:80px}.letter__kicker{margin:0 0 22px}.letter__paper{text-align:left;color:#4a1a26;background:repeating-linear-gradient(#0000 0 33px,#c2456a1f 33px 34px) 0 30px,linear-gradient(#fffaf4,#fdf1e6);border-radius:6px;max-width:460px;margin:0 auto;padding:34px 26px 28px;display:grid;position:relative;box-shadow:0 24px 60px #6e1f3638,inset 0 2px #fffc}.letter__paper:before{content:"";background:#f7c9d4bf;width:70px;height:22px;margin-left:-35px;position:absolute;top:12px;left:50%;transform:rotate(-3deg)}.letter__text{font-family:var(--serif);grid-area:1/1;font-size:20px;font-style:italic;line-height:34px}.letter__text p{margin:0 0 17px}.letter__text--ghost{visibility:hidden}.letter__text--typed p:last-child:after{content:"";vertical-align:-3px;background:var(--rose);width:2px;height:1.05em;margin-left:2px;animation:.9s step-end infinite caret;display:inline-block}.letter__text--typed.is-done p:last-child:after{display:none}@keyframes caret{50%{opacity:0}}.letter__sign{text-align:right;color:var(--rose);grid-row:2;margin:6px 0 0;font-size:30px}.letter__skip{font-family:var(--sans);letter-spacing:.08em;color:#6e1f368c;grid-row:3;justify-self:center;margin-top:14px;padding:8px 14px;font-size:12px}.cake-section{padding-bottom:calc(60px + var(--safe-bottom))}.cake__title{color:var(--rose);margin:8px 0 0;font-size:clamp(58px,17vw,84px)}.cake__prompt{max-width:290px;color:var(--rose-ink);margin:8px auto 0;font-size:22px;line-height:1.2}.cake{flex-direction:column;align-items:center;width:250px;margin:54px auto 0;padding:0;display:flex;position:relative}.cake__candles{z-index:2;align-items:flex-end;gap:16px;height:64px;margin-bottom:-4px;display:flex;position:relative}.candle{background:repeating-linear-gradient(-45deg,#fff 0 6px,#f28aa4 6px 12px);border-radius:3px;width:10px;height:46px;position:relative;box-shadow:inset -2px 0 #00000014}.candle__flame{transform-origin:50% 100%;width:14px;height:22px;transform:skewX(calc(var(--wobble,0) * 30deg)) scaleY(calc(1 - var(--wobble,0) * .4));animation:1.2s ease-in-out infinite alternate flicker;animation-delay:calc(var(--i) * -.23s);background:radial-gradient(at 50% 80%,#fff7c2 0%,#ffd43b 40%,#ff922b 75%,#ff922b00 100%);border-radius:50%/64% 64% 36% 36%;margin:0 0 4px -7px;transition:opacity .25s,transform .25s;position:absolute;bottom:100%;left:50%;box-shadow:0 0 18px 6px #ffc45a73}.candle__smoke{opacity:0;background:#786e7866;border-radius:50%;width:8px;height:8px;margin-left:-4px;position:absolute;bottom:100%;left:50%}.candle.is-out .candle__flame{opacity:0;animation:none;transform:scale(.2)translateY(-6px)}.candle.is-out .candle__smoke{animation:1.6s ease-out forwards smoke}@keyframes smoke{0%{opacity:.8;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-50px)translate(8px)scale(3.5)}}.cake__tier{background:linear-gradient(#fbd3dd,#f3a9bc);border-radius:14px 14px 8px 8px;position:relative;box-shadow:inset 0 -8px #c2456a2e}.cake__tier--top{width:150px;height:64px}.cake__tier--bottom{background:linear-gradient(#5b1a22,#7a2430);justify-content:center;align-items:center;width:230px;height:92px;margin-top:-2px;display:flex}.cake__drip{background:radial-gradient(circle at 10% 100%,#fff6f0 9px,#0000 10px),radial-gradient(circle at 30% 100%,#fff6f0 7px,#0000 8px),radial-gradient(circle at 52% 100%,#fff6f0 10px,#0000 11px),radial-gradient(circle at 74% 100%,#fff6f0 7px,#0000 8px),radial-gradient(circle at 92% 100%,#fff6f0 9px,#0000 10px),linear-gradient(#fff6f0 0 16px,#0000 16px);border-radius:14px 14px 0 0;height:26px;position:absolute;inset:0 0 auto}.cake__tier--bottom .cake__drip{background:radial-gradient(circle at 8% 100%, var(--gold-light) 8px, transparent 9px), radial-gradient(circle at 28% 100%, var(--gold-light) 10px, transparent 11px), radial-gradient(circle at 50% 100%, var(--gold-light) 7px, transparent 8px), radial-gradient(circle at 70% 100%, var(--gold-light) 10px, transparent 11px), radial-gradient(circle at 92% 100%, var(--gold-light) 8px, transparent 9px), linear-gradient(var(--gold-light) 0 16px, transparent 16px)}.cake__name{color:var(--gold-light);font-size:38px;position:relative;top:10px}.cake__plate{background:linear-gradient(#fff,#e6d6dc);border-radius:50%;width:270px;height:14px;margin-top:-2px;box-shadow:0 10px 24px #6e1f3640}.cake__actions{margin-top:30px;overflow:hidden}.cake__mic{min-height:44px;font-family:var(--sans);color:var(--rose);background:#ffffff80;border:1px solid #c2456a66;border-radius:999px;padding:0 20px;font-size:14px}.cake__mic.is-listening{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{box-shadow:0 0 0 10px #c2456a1f}}.cake__done{min-height:50px;color:var(--rose);margin:20px 0 0;font-size:40px}.finale{padding-left:0;padding-right:0;padding-bottom:calc(60px + var(--safe-bottom));text-align:center}.finale__hero{position:relative}.cake__cue{opacity:0}.finale__title{margin:10px 0 0;font-size:clamp(78px,24vw,120px)}.finale__name{letter-spacing:.38em;text-transform:uppercase;text-shadow:0 0 22px #c9c3f08c;margin:0;padding-left:.38em;font-size:clamp(26px,8vw,38px);font-weight:500}.finale__line{color:var(--violet);margin:18px 0 0;font-size:26px}.finale__collage{padding:10px var(--pad) 0;flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.finale__tile{aspect-ratio:1;border:3px solid #fffdf8;border-radius:8px;width:calc(33.3333% - 6.66667px);box-shadow:0 10px 22px #0006}.finale__end{padding:70px var(--pad) 20px}.finale__sign{color:var(--gold-light);margin:0 0 26px;font-size:34px}.finale__replay{min-height:44px;font-family:var(--sans);color:var(--gold-light);border:1px solid #f3d58a73;border-radius:999px;padding:0 22px;font-size:14px}.music{top:calc(12px + var(--safe-top));right:calc(12px + env(safe-area-inset-right,0px));z-index:45;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;pointer-events:none;background:#14101e73;border:1px solid #f3d58a66;border-radius:50%;justify-content:center;align-items:center;gap:3px;width:44px;height:44px;transition:opacity .6s;display:flex;position:fixed}body[data-theme=blush] .music{background:#6e1f3699}.music.is-visible{opacity:1;pointer-events:auto}.music i{background:var(--gold-light);transform-origin:50% 100%;border-radius:2px;width:3px;height:14px;transform:scaleY(.3)}.music.is-playing i{animation:.9s ease-in-out infinite alternate eq}.music.is-playing i:nth-child(2){animation-delay:-.3s}.music.is-playing i:nth-child(3){animation-delay:-.6s}.music.is-playing i:nth-child(4){animation-delay:-.15s}.music.is-muted:after{content:"";background:var(--gold-light);width:26px;height:2px;position:absolute;transform:rotate(-45deg)}@keyframes eq{0%{transform:scaleY(.25)}to{transform:scaleY(1)}}.latest__pin{height:100svh;position:relative;overflow:hidden}.latest__head{top:calc(56px + var(--safe-top));z-index:2;text-align:center;padding:0 var(--pad);position:absolute;left:0;right:0}.latest__title{margin:6px 0 0;font-size:clamp(46px,13vw,64px)}.latest__frame{will-change:transform;background:linear-gradient(145deg,#fbe7a6,#d4a64a 35%,#8c6421 60%,#e9c46a);border-radius:12px;padding:7px;position:absolute;top:50%;left:50%;box-shadow:0 30px 80px #0009,0 0 80px #f3d58a26}.latest__photo{border-radius:7px;width:100%;height:100%}.latest__frame:after{content:"";pointer-events:none;background:linear-gradient(#0000 55%,#0a081499);border-radius:7px;position:absolute;inset:7px}.latest__caption{z-index:1;text-align:center;color:#fff8e1;text-shadow:0 2px 14px #0009;opacity:0;margin:0;font-size:clamp(30px,5.5vh,46px);position:absolute;bottom:18px;left:0;right:0}.latest__hint{left:0;right:0;bottom:calc(18px + var(--safe-bottom));z-index:2;font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light);opacity:0;justify-content:center;align-items:center;gap:10px;margin:0;font-size:12px;display:flex;position:absolute}.latest:not(.is-upright) .latest__hint{display:none}.latest__phone{border:2px solid var(--gold-light);width:13px;height:22px;animation:turn-phone 2.4s var(--ease) infinite;border-radius:4px}@keyframes turn-phone{0%,20%{transform:rotate(0)}55%,85%{transform:rotate(-90deg)}to{transform:rotate(0)}}
