@font-face{font-family:Cormorant Infant;font-style:italic;font-display:swap;font-weight:300;src:url(/assets/cormorant-infant-cyrillic-ext-300-italic-CAe3uXf7.woff2)format("woff2"),url(/assets/cormorant-infant-cyrillic-ext-300-italic-CernPdXr.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 Infant;font-style:italic;font-display:swap;font-weight:300;src:url(/assets/cormorant-infant-cyrillic-300-italic-D3_tJvWV.woff2)format("woff2"),url(/assets/cormorant-infant-cyrillic-300-italic-BnTgx7--.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Infant;font-style:italic;font-display:swap;font-weight:300;src:url(/assets/cormorant-infant-vietnamese-300-italic-XYVZNNnM.woff2)format("woff2"),url(/assets/cormorant-infant-vietnamese-300-italic-B7luYw8W.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 Infant;font-style:italic;font-display:swap;font-weight:300;src:url(/assets/cormorant-infant-latin-ext-300-italic-BQqYuoLq.woff2)format("woff2"),url(/assets/cormorant-infant-latin-ext-300-italic-BDehyz6G.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 Infant;font-style:italic;font-display:swap;font-weight:300;src:url(/assets/cormorant-infant-latin-300-italic-DvDg0gCK.woff2)format("woff2"),url(/assets/cormorant-infant-latin-300-italic-CdLNWdSL.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 Infant;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/cormorant-infant-cyrillic-ext-400-italic-USCBeZYk.woff2)format("woff2"),url(/assets/cormorant-infant-cyrillic-ext-400-italic-siNNg96f.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 Infant;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/cormorant-infant-cyrillic-400-italic-CFBF7Rph.woff2)format("woff2"),url(/assets/cormorant-infant-cyrillic-400-italic-DSUxquhR.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Infant;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/cormorant-infant-vietnamese-400-italic-CoGKYuM_.woff2)format("woff2"),url(/assets/cormorant-infant-vietnamese-400-italic-DXmQndeq.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 Infant;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/cormorant-infant-latin-ext-400-italic-CIqR1xMT.woff2)format("woff2"),url(/assets/cormorant-infant-latin-ext-400-italic-CeOGKUu4.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 Infant;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/cormorant-infant-latin-400-italic-D9dfiOvl.woff2)format("woff2"),url(/assets/cormorant-infant-latin-400-italic-HbkhIomz.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 Infant;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-infant-cyrillic-ext-500-normal-BcZBsyGV.woff2)format("woff2"),url(/assets/cormorant-infant-cyrillic-ext-500-normal-BGjeyZbj.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 Infant;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-infant-cyrillic-500-normal-DwKSRDC5.woff2)format("woff2"),url(/assets/cormorant-infant-cyrillic-500-normal-DUnxBO77.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Infant;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-infant-vietnamese-500-normal-aBW9Klc-.woff2)format("woff2"),url(/assets/cormorant-infant-vietnamese-500-normal-Da5wMl4F.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 Infant;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-infant-latin-ext-500-normal-CYfbvHix.woff2)format("woff2"),url(/assets/cormorant-infant-latin-ext-500-normal-BvB3aRD_.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 Infant;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-infant-latin-500-normal-D0G1PuFw.woff2)format("woff2"),url(/assets/cormorant-infant-latin-500-normal-BGH88t82.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:Marck Script;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/marck-script-cyrillic-400-normal-BIatlnl2.woff2)format("woff2"),url(/assets/marck-script-cyrillic-400-normal-C4wWsGQ-.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Marck Script;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/marck-script-latin-ext-400-normal-CEQHAJDc.woff2)format("woff2"),url(/assets/marck-script-latin-ext-400-normal-BipQGsdP.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:Marck Script;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/marck-script-latin-400-normal-hvIDGCO4.woff2)format("woff2"),url(/assets/marck-script-latin-400-normal-DonRfbfk.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{--ink:#050307;--cream:#f5ebdf;--pearl:#fff4ec;--rose:#f4a9c6;--rose-soft:#f7bfd4;--wine:#60103266;--plum:#34165c52;--serif:"Cormorant Infant", "Cormorant Garamond", Georgia, "Times New Roman", serif;--script:"Marck Script", "Segoe Script", cursive}*,:before,:after{box-sizing:border-box}html,body{background:var(--ink);height:100%;margin:0}body{color:var(--cream);font-family:var(--serif);background:radial-gradient(110% 65% at 50% 36%, var(--wine), transparent 62%), radial-gradient(90% 60% at 12% 92%, var(--plum), transparent 66%), radial-gradient(70% 45% at 92% 6%, #4612463d, transparent 62%), var(--ink);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overflow:hidden}.vignette{pointer-events:none;z-index:1;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .045 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"),radial-gradient(85% 75% at 50% 45%,#0000 50%,#000000b8 100%);position:fixed;top:0;bottom:0;left:0;right:0}.dust{pointer-events:none;z-index:2;width:100%;height:100%;position:fixed;top:0;bottom:0;left:0;right:0}.curtain{z-index:50;pointer-events:none;background:#000;position:fixed;top:0;bottom:0;left:0;right:0}.app{z-index:3;height:100vh;max-width:760px;height:100svh;padding:max(12px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(14px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));grid-template-rows:minmax(0,1fr) auto auto;margin:0 auto;display:grid;position:relative}.stage{min-height:0;position:relative}.stage-inner{will-change:transform;position:absolute;top:0;bottom:0;left:0;right:0}.bouquet{width:100%;height:100%;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0;border-radius:32px;margin:0;padding:0;position:absolute;top:0;bottom:0;left:0;right:0}.bouquet svg{width:100%;height:100%;display:block;overflow:visible}.bouquet:focus-visible{outline-offset:-8px;outline:1px solid #f4a9c68c}.bouquet[aria-disabled=true]{cursor:default}.glow{aspect-ratio:1;opacity:0;pointer-events:none;background:radial-gradient(circle,#ffa8d24d 0%,#b478eb26 38%,#78285a0f 56%,#0000 70%);border-radius:50%;width:min(108%,78svh);position:absolute;top:46%;left:50%;translate:-50% -50%}.ripple{aspect-ratio:1;opacity:0;pointer-events:none;border:1px solid #f4a9c666;border-radius:50%;width:min(62%,44svh);position:absolute;top:50%;left:50%;translate:-50% -50%}.ripple.on{animation:3s cubic-bezier(.2,.6,.3,1) infinite ripple}@keyframes ripple{0%{opacity:0;transform:scale(.55)}25%{opacity:.55}to{opacity:0;transform:scale(1.12)}}.hint{left:0;right:0;bottom:calc(max(18px, env(safe-area-inset-bottom)) + 6svh);z-index:4;text-align:center;pointer-events:none;opacity:0;margin:0;position:fixed}.hint-pulse{letter-spacing:.02em;color:var(--cream);font-size:max(1.2rem,min(5vw,1.5rem));font-style:italic;font-weight:400;display:inline-block}.hint-pulse.on{animation:2.6s ease-in-out infinite hint}@keyframes hint{0%,to{opacity:.68;text-shadow:0 0 #f4a9c600;transform:scale(1)}50%{opacity:1;text-shadow:0 0 14px #f4a9c6bf,0 0 34px #d9668f66;transform:scale(1.06)}}.words{text-align:center;justify-items:center;gap:max(2px,min(1svh,10px));padding-top:max(4px,min(1.4svh,14px));display:grid}.msg1{letter-spacing:.01em;color:var(--cream);opacity:0;margin:0;font-size:max(1.4rem,min(6vw,2.15rem));font-style:italic;font-weight:300;line-height:1.2}.msg1 .name{color:var(--rose);text-shadow:0 0 12px #f4a9c699,0 0 30px #d9668f61;font-weight:500}.msg2{letter-spacing:-.012em;color:var(--pearl);text-shadow:0 0 26px #ffbed738;margin:0;font-size:max(2.6rem,min(12.5vw,4.6rem));font-weight:500;line-height:1.04}.msg2 .w{white-space:nowrap;display:inline-block}.msg2 .ch{opacity:0;display:inline-block}.kissline{opacity:0;margin-top:max(10px,min(2.2svh,20px));position:relative}.ears{width:3.4em;height:auto;font-size:max(1.3rem,min(5.2vw,1.65rem));position:absolute;bottom:calc(100% - .12em);left:50%;overflow:visible;translate:-50%}.ear{opacity:0}.kiss-text{font-family:var(--script);color:var(--rose-soft);text-shadow:0 0 16px #f4a9c659;margin:0;font-size:max(1.3rem,min(5.2vw,1.65rem));line-height:1.3}.heart{opacity:0;filter:drop-shadow(0 0 6px #f4a9c699);width:15px;height:14px}.heart.on{animation:1.7s ease-in-out infinite beat}@keyframes beat{0%,to{transform:scale(1)}14%{transform:scale(1.25)}28%{transform:scale(1)}42%{transform:scale(1.18)}70%{transform:scale(1)}}.foot{justify-content:center;padding-top:max(6px,min(1.6svh,16px));display:flex}.replay{min-height:44px;font-family:var(--serif);letter-spacing:.02em;color:var(--cream);cursor:pointer;opacity:0;visibility:hidden;touch-action:manipulation;background:#ffffff09;border:1px solid #f4a9c657;border-radius:999px;padding:0 24px;font-size:1.08rem;font-style:italic;transition:border-color .3s,background-color .3s}.replay:hover{background:#f4a9c614;border-color:#f4a9c6b3}.replay:focus-visible{outline:2px solid var(--rose);outline-offset:3px}.kiss-layer{z-index:30;pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.flash{opacity:0;background:radial-gradient(circle at 50% 42%,#ffeef6d9,#ffa0cd52 28%,#0000 62%);position:absolute;top:-10%;bottom:-10%;left:-10%;right:-10%}.kiss-spot{aspect-ratio:120/72;width:min(38vw,170px);position:absolute;top:42%;left:50%;translate:-50% -50%}.kiss-spot>svg{opacity:0;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0;overflow:visible}.lips{filter:drop-shadow(0 6px 18px #ff5a9659)}.hearts{width:0;height:0;position:absolute;top:50%;left:50%}.hearts span{opacity:0;width:20px;height:18px;position:absolute;top:-9px;left:-10px}.hearts svg{width:100%;height:100%;display:block}@media (orientation:landscape) and (max-height:560px){.app{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);column-gap:12px;max-width:980px}.stage{grid-row:1/span 2}.words{align-self:center}.foot{grid-column:2;padding-bottom:4px}.msg2{font-size:max(2.2rem,min(7vw,3.4rem))}.hint{bottom:max(14px, env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){.ripple.on,.hint-pulse.on,.heart.on{animation:none}.hint-pulse.on{opacity:1}.ripple{display:none}}
