@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_f367f3{font-family:Inter,Inter Fallback;font-style:normal}.__variable_f367f3{--font-inter:"Inter","Inter Fallback"}@font-face{font-family:Poppins;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/6c177e25b87fd9cd-s.woff2) format("woff2");unicode-range:u+0900-097f,u+1cd0-1cf9,u+200c-200d,u+20a8,u+20b9,u+20f0,u+25cc,u+a830-a839,u+a8e0-a8ff,u+11b00-11b09}@font-face{font-family:Poppins;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/6c9a125e97d835e1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Poppins;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/4c285fdca692ea22-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/034d78ad42e9620c-s.woff2) format("woff2");unicode-range:u+0900-097f,u+1cd0-1cf9,u+200c-200d,u+20a8,u+20b9,u+20f0,u+25cc,u+a830-a839,u+a8e0-a8ff,u+11b00-11b09}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/fe0777f1195381cb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/eafabf029ad39a43-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/db911767852bc875-s.woff2) format("woff2");unicode-range:u+0900-097f,u+1cd0-1cf9,u+200c-200d,u+20a8,u+20b9,u+20f0,u+25cc,u+a830-a839,u+a8e0-a8ff,u+11b00-11b09}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/f10b8e9d91f3edcb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8888a3826f4a3af4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/29e7bbdce9332268-s.woff2) format("woff2");unicode-range:u+0900-097f,u+1cd0-1cf9,u+200c-200d,u+20a8,u+20b9,u+20f0,u+25cc,u+a830-a839,u+a8e0-a8ff,u+11b00-11b09}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/c3bc380753a8436c-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/0484562807a97172-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/29a4aea02fdee119-s.woff2) format("woff2");unicode-range:u+0900-097f,u+1cd0-1cf9,u+200c-200d,u+20a8,u+20b9,u+20f0,u+25cc,u+a830-a839,u+a8e0-a8ff,u+11b00-11b09}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/a1386beebedccca4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/b957ea75a84b6ea7-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Poppins Fallback;src:local("Arial");ascent-override:93.62%;descent-override:31.21%;line-gap-override:8.92%;size-adjust:112.16%}.__className_51684b{font-family:Poppins,Poppins Fallback;font-style:normal}.__variable_51684b{--font-poppins:"Poppins","Poppins Fallback"}:root{--bg-main:#fff1fa;--bg-alt:#ffe5f6;--text-main:#4d2a55;--accent:#ff4fb8;--accent-soft:#ff75b0;--rose:#ff82b2;--radius-main:1.4rem;--ease-romantic:cubic-bezier(0.22,0.76,0.24,1)}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%}body{font-family:var(--font-poppins),var(--font-inter),sans-serif;color:var(--text-main);background:radial-gradient(circle at 10% 8%,rgba(255,133,203,.5) 0,transparent 36%),radial-gradient(circle at 90% 84%,rgba(255,108,191,.42) 0,transparent 40%),linear-gradient(150deg,#ffd8ee 0,var(--bg-main) 54%,#ffedf8 100%)}button{font-family:inherit}.app-shell{min-height:100svh;padding:0}.story-viewport{position:relative;width:100vw;height:100dvh;height:100svh;min-height:100svh;overflow:hidden;border-radius:0;border:none;background:radial-gradient(circle at 52% -10%,rgba(255,136,201,.52),transparent 42%),radial-gradient(circle at 8% 100%,rgba(255,118,188,.32),transparent 38%),radial-gradient(circle at 100% 4%,rgba(255,171,217,.38),transparent 35%),linear-gradient(180deg,var(--bg-alt),var(--bg-main));box-shadow:none}.stage{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .76s var(--ease-romantic)}.stage.is-active{opacity:1;pointer-events:auto}.stage-canvas{position:absolute;inset:0;width:100%;height:100%}.stage0{background:radial-gradient(circle at 50% 0,rgba(255,120,191,.3),transparent 40%),linear-gradient(180deg,var(--bg-alt),var(--bg-main))}.brand-text{margin:16px 0 0;text-align:center;font-size:.68rem;letter-spacing:.13em;color:rgba(95,43,92,.72);font-family:var(--font-inter),sans-serif;font-weight:300}.stage1{background:radial-gradient(circle at 50% 5%,rgba(255,121,194,.5),transparent 35%),linear-gradient(180deg,rgba(255,232,247,.96),rgba(255,241,251,.95))}.countdown-label{position:absolute;top:18%;left:50%;transform:translateX(-50%);margin:0;font-size:clamp(.7rem,1.8vw,.88rem);letter-spacing:.16em;text-transform:uppercase;color:rgba(124,50,112,.86);text-shadow:0 0 16px rgba(255,107,187,.35)}.countdown-number{position:absolute;top:50%;left:50%;--countdown-scale:1;transform:translate(-50%,-50%) scale(var(--countdown-scale));transform-origin:center center;font-size:clamp(8.4rem,31vw,15rem);line-height:1;font-weight:700;color:#ffffff;text-shadow:0 0 28px rgba(255,79,174,.72),0 0 52px rgba(255,94,182,.48)}.countdown-number-inner{display:inline-block;transform:scale(var(--number-zoom,1));opacity:var(--number-glow,1);animation:countdownZoom .98s var(--ease-romantic) infinite}.stage2{display:grid;place-items:center;background:radial-gradient(circle at 50% 14%,rgba(255,157,211,.3),transparent 42%),linear-gradient(180deg,var(--bg-alt),var(--bg-main))}.tap-heart-glow{position:absolute;left:50%;top:28%;transform:translateX(-50%);font-size:clamp(1.9rem,5vw,3.4rem);color:rgba(255,141,195,.96);text-shadow:0 0 14px rgba(255,95,162,.7),0 0 34px rgba(255,79,216,.45);animation:heartGlow 1.9s ease-in-out infinite;pointer-events:none}.tap-card{position:relative;width:clamp(154px,44vw,242px);aspect-ratio:1.56;border:none;border-radius:.95rem;background:#ffffff;box-shadow:0 12px 30px rgba(0,0,0,.32),inset 0 0 0 1px rgba(0,0,0,.08);display:grid;place-content:center;gap:10px;cursor:pointer;transition:transform .22s var(--ease-romantic);animation:tapPulse 2.4s ease-in-out infinite}.tap-card:active{transform:scale(.97)}.tap-card-line{width:42%;justify-self:center;border-top:1px solid rgba(20,20,30,.24)}.tap-card-label{font-family:var(--font-inter),sans-serif;font-size:clamp(.66rem,1.7vw,.76rem);letter-spacing:.08em;text-transform:uppercase;color:rgba(20,20,30,.72)}.stage3{display:grid;place-items:center;background:radial-gradient(circle at 50% 9%,rgba(255,121,190,.42),transparent 46%),linear-gradient(180deg,#ffe4f6,#ffd8ef)}.kitten-scene-card{width:min(92%,420px);padding:clamp(16px,3.8vw,24px);border-radius:1.2rem;background:linear-gradient(170deg,rgba(255,255,255,.98),rgba(255,244,250,.97));color:#1d1632;box-shadow:0 16px 44px rgba(0,0,0,.32),inset 0 0 0 1px rgba(255,255,255,.74);transform:scale(.78) translateY(20px);opacity:0;filter:blur(8px)}.stage3.is-active .kitten-scene-card{animation:kittenScene var(--kitten-scene-duration) var(--ease-romantic) forwards}.kitten-photo-wrap{position:relative;width:min(72%,260px);margin:0 auto;aspect-ratio:3/4}.stage3.is-active .kitten-photo-wrap{animation:kittenNuzzle 1.7s ease-in-out infinite}.kitten-main-photo{width:100%;height:100%;border-radius:1rem;box-shadow:0 14px 34px rgba(255,99,176,.26)}.kiss-heart,.kiss-mark{position:absolute;opacity:0;pointer-events:none}.kiss-mark{font-size:clamp(1rem,3vw,1.55rem)}.kiss-heart{font-size:clamp(.9rem,2.8vw,1.35rem);color:rgba(255,80,160,.92)}.kiss-mark-one{right:-10px;top:22%}.kiss-mark-two{right:-22px;top:38%;animation-delay:.44s}.kiss-heart-one{left:-12px;top:16%;animation-delay:.22s}.kiss-heart-two{left:-24px;top:31%;animation-delay:.62s}.stage3.is-active .kiss-heart,.stage3.is-active .kiss-mark{animation:kissPop 1.4s ease-in-out infinite}.kitten-title{margin:14px 0 0;text-align:center;font-size:clamp(1.22rem,4.2vw,1.7rem);line-height:1.25}.kitten-subtitle{margin:8px auto 0;text-align:center;max-width:34ch;color:#4b426a;font-size:clamp(.78rem,2vw,.95rem);line-height:1.46}.stage4{display:grid;place-items:center;background:radial-gradient(circle at 50% 8%,rgba(255,111,197,.46),transparent 42%),linear-gradient(180deg,#ffe8f7,#ffd9f0);padding:20px}.heartbeat-background{position:absolute;inset:0;pointer-events:none;z-index:1}.heartbeat-heart{position:absolute;left:50%;top:49%;transform:translate(-50%,-50%);line-height:1;color:rgba(255,98,174,.19);text-shadow:0 0 36px rgba(255,95,162,.35),0 0 66px rgba(255,79,216,.22)}.heartbeat-heart-main{font-size:clamp(8rem,29vw,22rem)}.heartbeat-heart-main,.heartbeat-heart-soft{animation:heartbeatPulse 1.7s ease-in-out infinite}.heartbeat-heart-soft{font-size:clamp(10rem,33vw,26rem);opacity:.38;animation-delay:.24s}.flower-overlay{position:absolute;left:50%;top:calc(50% - min(34vh, 220px));width:min(94vw,760px);height:min(30vh,230px);transform:translateX(-50%);opacity:0;pointer-events:none;z-index:28;transition:opacity .42s ease}.flower-overlay.is-active{opacity:1}.flower-item{position:absolute;font-size:clamp(1.05rem,3vw,2rem);filter:drop-shadow(0 0 12px rgba(255,124,196,.52));animation:flowerDrift 4.8s ease-in-out infinite}.flower-1{left:12%;top:48%;animation-delay:0s}.flower-2{left:22%;top:16%;animation-delay:.43s}.flower-3{left:36%;top:56%;animation-delay:.81s}.flower-4{left:47%;top:12%;animation-delay:1.18s}.flower-5{left:61%;top:52%;animation-delay:1.5s}.flower-6{left:72%;top:20%;animation-delay:1.78s}.flower-7{left:84%;top:50%;animation-delay:2.05s}.flower-8{left:93%;top:24%;animation-delay:2.35s}.love-overlay{position:absolute;left:50%;top:6%;width:min(96vw,860px);height:min(34vh,260px);transform:translateX(-50%);opacity:0;pointer-events:none;z-index:29;transition:opacity .42s ease}.love-overlay.is-active{opacity:1}.love-item{position:absolute;font-size:clamp(1.35rem,3.2vw,2.2rem);filter:drop-shadow(0 0 14px rgba(255,98,178,.55));animation:loveFloat 5.8s ease-in-out infinite}.love-1{left:5%;top:8%;animation-delay:0s}.love-2{left:14%;top:28%;animation-delay:.32s}.love-3{left:24%;top:6%;animation-delay:.7s}.love-4{left:35%;top:30%;animation-delay:.98s}.love-5{left:46%;top:8%;animation-delay:1.28s}.love-6{left:57%;top:26%;animation-delay:1.58s}.love-7{left:68%;top:6%;animation-delay:1.88s}.love-8{left:78%;top:30%;animation-delay:2.16s}.love-9{left:88%;top:10%;animation-delay:2.46s}.love-10{left:95%;top:28%;animation-delay:2.76s}.party-cannons{position:absolute;inset:0;pointer-events:none;z-index:30}.cannon{position:absolute;bottom:16%;width:24%;height:36%}.cannon-left{left:0}.cannon-right{right:0}.cannon-piece{position:absolute;opacity:0;font-size:clamp(.8rem,2vw,1.45rem);filter:drop-shadow(0 0 10px rgba(255,102,183,.5))}.party-cannons.is-active .cannon-left .cannon-piece{animation:cannonBurstLeft 1s ease-out forwards}.party-cannons.is-active .cannon-right .cannon-piece{animation:cannonBurstRight 1s ease-out forwards}.cannon-piece:first-child{bottom:6%;left:14%;animation-delay:0s}.cannon-piece:nth-child(2){bottom:10%;left:18%;animation-delay:35ms}.cannon-piece:nth-child(3){bottom:14%;left:21%;animation-delay:70ms}.cannon-piece:nth-child(4){bottom:18%;left:24%;animation-delay:.1s}.cannon-piece:nth-child(5){bottom:22%;left:28%;animation-delay:.13s}.cannon-piece:nth-child(6){bottom:8%;left:32%;animation-delay:165ms}.cannon-piece:nth-child(7){bottom:12%;left:36%;animation-delay:195ms}.cannon-piece:nth-child(8){bottom:16%;left:40%;animation-delay:225ms}.cannon-piece:nth-child(9){bottom:20%;left:43%;animation-delay:255ms}.cannon-piece:nth-child(10){bottom:24%;left:46%;animation-delay:285ms}.cannon-piece:nth-child(11){bottom:10%;left:50%;animation-delay:315ms}.cannon-piece:nth-child(12){bottom:14%;left:54%;animation-delay:345ms}.cannon-piece:nth-child(13){bottom:18%;left:57%;animation-delay:375ms}.cannon-piece:nth-child(14){bottom:22%;left:60%;animation-delay:405ms}.envelope-scene{position:absolute;left:50%;top:52%;width:min(92vw,560px);transform:translate(-50%,-50%);z-index:22;transition:opacity .52s ease,transform .62s var(--ease-romantic)}.envelope-scene.is-hidden{opacity:0;pointer-events:none;transform:translate(-50%,-40%) scale(.94)}.envelope{position:relative;width:min(92vw,460px);height:min(38vh,300px);margin:0 auto;perspective:1400px}.envelope-back{position:absolute;inset:16% 0 0;border-radius:1rem;background:linear-gradient(170deg,#ffc3e3,#ffb2dc);box-shadow:0 16px 36px rgba(209,79,148,.28)}.envelope-letter-sheet{position:absolute;left:8%;right:8%;top:22%;bottom:18%;border-radius:.9rem;background:linear-gradient(180deg,rgba(255,255,255,.97),rgba(255,242,249,.96));border:1px solid rgba(255,170,214,.72);transform:translateY(0);transition:transform .86s var(--ease-romantic)}.envelope-front{inset:16% 0 0;background:linear-gradient(170deg,#ffacd7,#ff8fc8);clip-path:polygon(0 0,50% 58%,100% 0,100% 100%,0 100%);box-shadow:inset 0 8px 20px rgba(218,97,164,.2)}.envelope-flap,.envelope-front{position:absolute;border-radius:1rem}.envelope-flap{left:0;right:0;top:16%;height:44%;background:linear-gradient(170deg,#ffcce9,#ffb5dd);clip-path:polygon(0 0,50% 64%,100% 0,100% 100%,0 100%);transform-origin:50% 0;transform:rotateX(0deg);transition:transform .86s var(--ease-romantic)}.envelope-heart-btn{position:absolute;left:50%;top:64%;transform:translate(-50%,-50%);width:clamp(54px,11vw,74px);height:clamp(54px,11vw,74px);border:none;border-radius:50%;background:radial-gradient(circle at 38% 30%,#ffd3ed,#ff5aa9);color:#ffffff;font-size:clamp(1.6rem,4.8vw,2.2rem);box-shadow:0 8px 18px rgba(224,76,153,.44),0 0 0 3px rgba(255,209,235,.58);cursor:pointer;animation:envelopeHeartPulse 1.5s ease-in-out infinite;z-index:2;transition:transform .36s ease,opacity .3s ease}.envelope-heart-btn:disabled{cursor:default}.envelope.is-open .envelope-flap{transform:rotateX(178deg)}.envelope.is-open .envelope-letter-sheet{transform:translateY(-82px) scale(1.02)}.envelope.is-open .envelope-heart-btn{animation:none;opacity:0;transform:translate(-50%,-78%) scale(.75)}.envelope-hint{margin:14px 0 0;text-align:center;color:rgba(126,41,100,.86);font-size:clamp(.78rem,2.2vw,.95rem);text-shadow:0 0 16px rgba(255,132,196,.22)}.flip-frame{width:min(84%,340px);aspect-ratio:3/4;perspective:1200px;transition:opacity .32s ease;z-index:12}.flip-frame.is-hidden{opacity:0}.flip-page{width:100%;height:100%;transform-origin:left center;transform:rotateY(0deg) scale(1)}.stage4.is-active .flip-page{animation:pageFlip .76s var(--ease-romantic) forwards}.flip-page .photo-tile{width:100%;height:100%;border-radius:1rem;border:1px solid rgba(255,255,255,.2);box-shadow:0 16px 42px rgba(0,0,0,.4)}.final-letter{position:absolute;left:50%;top:51%;width:min(90%,500px);max-height:82%;overflow:auto;transform:translate(-50%,-50%) scale(.92);opacity:0;pointer-events:none;z-index:20;background:radial-gradient(circle at 0 0,rgba(255,255,255,.65),transparent 32%),radial-gradient(circle at 100% 100%,rgba(255,230,241,.52),transparent 28%),linear-gradient(170deg,rgba(255,253,255,.98),rgba(255,244,250,.98));color:#2e1d34;border-radius:1.2rem;border:1px solid rgba(255,255,255,.7);box-shadow:0 18px 48px rgba(0,0,0,.35),inset 0 0 0 1px rgba(255,255,255,.35);padding:clamp(18px,4.4vw,28px)}.final-letter.is-visible{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1);transition:opacity .44s ease,transform .56s var(--ease-romantic)}.rose-decor{position:absolute;font-size:clamp(1.2rem,3.3vw,1.65rem);animation:floatRose 3s ease-in-out infinite}.rose-left{left:12px;top:10px}.rose-right{right:12px;top:12px;animation-delay:.4s}.rose-bottom{right:18px;bottom:12px;animation-delay:.7s}.letter-kicker{margin:0;text-align:center;letter-spacing:.2em;text-transform:uppercase;font-size:clamp(.62rem,1.8vw,.75rem);color:#8d6286}.letter-title{margin:10px auto 0;text-align:center;max-width:24ch;line-height:1.28;font-size:clamp(1.18rem,4.4vw,1.75rem);color:#3b1f43}.letter-body{margin-top:12px;display:grid;gap:8px}.letter-body p{margin:0;color:#4f4561;line-height:1.5;font-size:clamp(.8rem,2.2vw,.98rem)}.letter-signature{margin:14px 0 0;text-align:center;font-size:clamp(.68rem,2vw,.84rem);color:#7d466a}.letter-signature,.share-story-btn{letter-spacing:.08em;text-transform:uppercase}.share-story-btn{margin:14px auto 0;width:100%;max-width:340px;border:1px solid rgba(255,110,177,.45);background:linear-gradient(120deg,#ff5fa2,#ff4fd8);color:#fff;border-radius:999px;padding:11px 15px;font-size:clamp(.75rem,2.1vw,.86rem);cursor:pointer;box-shadow:0 8px 22px rgba(255,79,216,.35),inset 0 0 0 1px rgba(255,255,255,.22)}.share-story-btn:active{transform:scale(.98)}.share-status{margin:10px auto 0;max-width:min(90%,42ch);text-align:center;color:#7d2e63;font-size:clamp(.67rem,1.9vw,.84rem);background:linear-gradient(120deg,rgba(255,255,255,.92),rgba(255,231,246,.95));border:1px solid rgba(255,141,201,.5);border-radius:999px;padding:9px 14px;box-shadow:0 8px 22px rgba(255,107,187,.22),inset 0 0 0 1px rgba(255,255,255,.4);line-height:1.4;animation:shareToastIn .26s ease}.photo-tile{position:relative;overflow:hidden;background:#fff0f8}.photo-image{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .36s ease;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.photo-image.is-loaded{opacity:1}.photo-fallback{width:100%;height:100%;display:grid;place-items:center;color:rgba(255,255,255,.88);font-family:var(--font-inter),sans-serif;font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;background:radial-gradient(circle at 24% 14%,rgba(255,255,255,.32),transparent 42%),linear-gradient(145deg,var(--accent),var(--accent-soft))}.music-modal-backdrop{position:absolute;inset:0;z-index:80;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 20%,rgba(255,155,216,.28),transparent 46%),rgba(255,236,248,.72);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.music-modal{width:min(92vw,420px);border-radius:1.2rem;border:1px solid rgba(255,157,211,.58);background:radial-gradient(circle at 10% 0,rgba(255,255,255,.88),transparent 44%),linear-gradient(170deg,rgba(255,253,255,.98),rgba(255,240,248,.98));padding:clamp(18px,5vw,26px);box-shadow:0 20px 46px rgba(219,108,178,.24),inset 0 0 0 1px rgba(255,255,255,.55);animation:modalPopIn .34s var(--ease-romantic)}.music-modal-kicker{margin:0;text-align:center;letter-spacing:.2em;text-transform:uppercase;font-size:.7rem;color:rgba(139,64,120,.75)}.music-modal-title{margin:8px 0 0;text-align:center;line-height:1.3;font-size:clamp(1.18rem,4.2vw,1.58rem);color:#783a67}.music-modal-text{margin:10px auto 0;text-align:center;max-width:30ch;font-size:clamp(.78rem,2.3vw,.92rem);line-height:1.5;color:#8f507a}.music-modal-btn{margin:12px auto 0;width:100%;border:1px solid rgba(255,128,189,.48);background:linear-gradient(120deg,#ff80bb,#ff5fb1);color:#fff;border-radius:999px;padding:11px 14px;font-size:clamp(.75rem,2vw,.85rem);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;box-shadow:0 10px 24px rgba(255,102,179,.3),inset 0 0 0 1px rgba(255,255,255,.2)}.music-modal-btn:active{transform:scale(.98)}.music-modal-btn-soft{margin-top:8px;background:rgba(255,255,255,.86);color:#a45a86;border:1px solid rgba(255,154,209,.5);box-shadow:none}.music-modal-note{margin:10px auto 0;text-align:center;font-size:clamp(.66rem,1.9vw,.78rem);color:#9a446f;line-height:1.45}@keyframes tapPulse{0%,to{transform:translateY(0) scale(1);box-shadow:0 12px 30px rgba(0,0,0,.32),inset 0 0 0 1px rgba(0,0,0,.09)}50%{transform:translateY(-3px) scale(1.02);box-shadow:0 14px 36px rgba(0,0,0,.36),inset 0 0 0 1px rgba(0,0,0,.09),0 0 30px rgba(255,95,162,.18)}}@keyframes heartGlow{0%,to{transform:translateX(-50%) scale(.94);opacity:.72}50%{transform:translateX(-50%) scale(1.1);opacity:1}}@keyframes countdownZoom{0%,to{transform:scale(calc(var(--number-zoom, 1) * .92));filter:blur(0)}50%{transform:scale(calc(var(--number-zoom, 1) * 1.08));filter:blur(.2px)}}@keyframes envelopeHeartPulse{0%,to{transform:translate(-50%,-50%) scale(.94)}50%{transform:translate(-50%,-50%) scale(1.08)}}@keyframes kittenScene{0%{opacity:0;transform:scale(.78) translateY(20px);filter:blur(8px)}18%{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}72%{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}to{opacity:0;transform:scale(.92) translate(-8%,-1%);filter:blur(6px)}}@keyframes kittenNuzzle{0%,to{transform:rotate(0deg) translateY(0)}35%{transform:rotate(-1.6deg) translateY(-2px)}65%{transform:rotate(1.5deg) translateY(1px)}}@keyframes kissPop{0%{opacity:0;transform:translate(0) scale(.8)}30%{opacity:1}to{opacity:0;transform:translate(15px,-18px) scale(1.18)}}@keyframes pageFlip{0%{transform:rotateY(0deg) scale(1)}to{transform:rotateY(-165deg) scale(.95)}}@keyframes heartbeatPulse{0%,to{transform:translate(-50%,-50%) scale(.96);opacity:.22}30%{transform:translate(-50%,-50%) scale(1.06);opacity:.35}46%{transform:translate(-50%,-50%) scale(1);opacity:.25}62%{transform:translate(-50%,-50%) scale(1.08);opacity:.38}}@keyframes floatRose{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes flowerDrift{0%{opacity:0;transform:translate(-8px,18px) scale(.9) rotate(-8deg)}25%{opacity:1}70%{opacity:1}to{opacity:0;transform:translate(12px,-24px) scale(1.08) rotate(7deg)}}@keyframes loveFloat{0%{opacity:0;transform:translate(-10px,20px) scale(.86) rotate(-7deg)}22%{opacity:1}70%{opacity:1}to{opacity:0;transform:translate(10px,-28px) scale(1.14) rotate(8deg)}}@keyframes cannonBurstLeft{0%{opacity:0;transform:translate(0) rotate(0deg) scale(.55)}20%{opacity:1}to{opacity:0;transform:translate(180px,-200px) rotate(320deg) scale(1.16)}}@keyframes cannonBurstRight{0%{opacity:0;transform:translate(0) rotate(0deg) scale(.55)}20%{opacity:1}to{opacity:0;transform:translate(-180px,-200px) rotate(-320deg) scale(1.16)}}@keyframes shareToastIn{0%{opacity:0;transform:translateY(8px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes modalPopIn{0%{opacity:0;transform:translateY(12px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:420px){.final-letter{width:92%;max-height:84%}}@media (min-width:768px){.final-letter{width:min(80vw,620px)}}@media (min-width:1024px){.tap-card{width:clamp(200px,22vw,280px)}.final-letter{width:min(72vw,680px)}}@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}