@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;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/28485c0de2075f40-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:800;font-display:swap;src:url(/_next/static/media/5fb25f343c7550ca-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:800;font-display:swap;src:url(/_next/static/media/7db6c35d839a711c-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_c70c06{font-family:Poppins,Poppins Fallback;font-style:normal}.__variable_c70c06{--font-poppins:"Poppins","Poppins Fallback"}:root{--ink:#34303a;--ink-soft:#6f6a75;--cream:#fffaf6;--card:#ffffff;--c1:#d94f88;--c2:#3d92cf;--soft:#ffe3ee;--soft2:#dceffb;--ring:rgba(217,79,136,0.16);--tintA:#ffe3ee;--tintB:#dceffb;--accent:#c94b81;--pink:#ef7ba8;--pink-deep:#d94f88;--pink-soft:#ffe3ee;--blue:#6bb6e6;--blue-deep:#3d92cf;--blue-soft:#dceffb;--gold:#e8b84b;--shadow-sm:0 4px 14px rgba(80,50,70,0.08);--shadow-md:0 12px 34px rgba(80,50,70,0.14);--shadow-lg:0 24px 60px rgba(80,50,70,0.2);--radius:26px;--ease:cubic-bezier(0.22,1,0.36,1)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{font-family:var(--font-poppins),system-ui,sans-serif;color:var(--ink);background:#f2e6ee;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.stage{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:0;background:radial-gradient(1200px 620px at 12% -5%,var(--tintA) 0,transparent 55%),radial-gradient(1200px 720px at 88% 105%,var(--tintB) 0,transparent 55%),linear-gradient(160deg,#fdf3f8 0,#eef6fd 100%)}.stage.theme-boy{--c1:#4aa3dd;--c2:#2f7fb8;--soft:#dceffb;--soft2:#cbe7fb;--ring:rgba(61,146,207,0.22);--tintA:#dbeffb;--tintB:#c9e6fb;--accent:#2f7fb8}.stage.theme-girl{--c1:#ec6f9e;--c2:#c23a72;--soft:#ffe1ee;--soft2:#ffd0e6;--ring:rgba(217,79,136,0.22);--tintA:#ffe1ee;--tintB:#ffd0e6;--accent:#c23a72}.phone{position:relative;width:100%;max-width:460px;height:100dvh;background:var(--cream);overflow:hidden;overflow-y:auto;scroll-behavior:smooth;box-shadow:var(--shadow-lg)}@media (min-width:500px){.stage{padding:28px}.phone{min-height:auto;height:min(900px,calc(100dvh - 56px));border-radius:46px;border:10px solid #1c1a22;outline:2px solid #34303a}}.decor{inset:0;overflow:hidden;pointer-events:none;z-index:0}.decor,.float{position:absolute}.float{will-change:transform;opacity:0;animation:rise linear infinite}.float.b1{left:8%;font-size:26px;animation-duration:15s;animation-delay:0s}.float.b2{left:24%;font-size:18px;animation-duration:19s;animation-delay:4s}.float.b3{left:46%;font-size:30px;animation-duration:17s;animation-delay:2s}.float.b4{left:68%;font-size:20px;animation-duration:21s;animation-delay:6s}.float.b5{left:82%;font-size:26px;animation-duration:16s;animation-delay:1s}.float.b6{left:60%;font-size:16px;animation-duration:23s;animation-delay:9s}@keyframes rise{0%{transform:translateY(110%) translateX(0) rotate(-6deg);opacity:0}10%{opacity:.7}50%{transform:translateY(40%) translateX(16px) rotate(6deg)}90%{opacity:.7}to{transform:translateY(-30%) translateX(-10px) rotate(-4deg);opacity:0}}section{position:relative;z-index:1;padding:34px 26px}.hero{text-align:center;padding-top:54px;padding-bottom:40px;background:radial-gradient(600px 340px at 50% -12%,var(--soft) 0,transparent 62%),linear-gradient(175deg,#fff6fa 0,#eef6fd 100%);border-bottom-left-radius:40px;border-bottom-right-radius:40px;overflow:hidden;animation:fadeDown .9s var(--ease) both}.kicker{font-size:.78rem;letter-spacing:.34em;text-transform:uppercase;font-weight:600;margin-bottom:20px;animation:fadeUp .8s .1s var(--ease) both}.kicker,.parents{color:var(--ink-soft)}.parents{font-size:1.15rem;font-weight:500;margin-bottom:10px;animation:fadeUp .8s .35s var(--ease) both}.suspense{font-size:clamp(2.9rem,13vw,3.9rem);font-weight:800;line-height:1.02;letter-spacing:-.02em;background:linear-gradient(100deg,var(--c1) 0,var(--c2) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:16px;animation:fadeUp .8s .45s var(--ease) both,breathe 5s 1.2s ease-in-out infinite}.tagline{font-size:1rem;color:var(--ink-soft);font-weight:400;max-width:22ch;margin:0 auto;animation:fadeUp .8s .55s var(--ease) both}.mark{position:relative;width:132px;height:132px;margin:0 auto 26px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--c1) 0,var(--c2) 100%);box-shadow:var(--shadow-md),inset 0 0 0 6px rgba(255,255,255,.55);animation:bob 4s var(--ease) infinite,popIn .7s var(--ease) both}.mark:after{content:"";position:absolute;inset:-10px;border-radius:50%;border:2px solid var(--c1);opacity:0;animation:halo 2.6s ease-out infinite}.mark span{font-size:4rem;font-weight:800;color:#fff;text-shadow:0 4px 10px rgba(0,0,0,.12);animation:wobble 3.5s var(--ease) infinite}.mark .spark{position:absolute;font-size:1rem;animation:twinkle 2.2s ease-in-out infinite}.mark .spark.s1{top:-6px;right:4px}.mark .spark.s2{bottom:0;right:-8px;animation-delay:.7s}.mark .spark.s3{bottom:-4px;left:-2px;animation-delay:1.3s}@keyframes bob{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-10px) rotate(2deg)}}@keyframes wobble{0%,to{transform:rotate(0deg)}25%{transform:rotate(8deg)}75%{transform:rotate(-8deg)}}@keyframes halo{0%{transform:scale(.9);opacity:.6}to{transform:scale(1.35);opacity:0}}@keyframes twinkle{0%,to{transform:scale(.6);opacity:.2}50%{transform:scale(1.15);opacity:1}}@keyframes breathe{0%,to{filter:none}50%{filter:brightness(1.08) saturate(1.1)}}.wishlist{position:relative;border-radius:30px;padding:2px;background:linear-gradient(120deg,var(--c1),var(--c2),var(--c1));background-size:220% 220%;animation:sheen 6s linear infinite,floaty 6s ease-in-out infinite;box-shadow:0 20px 44px -14px color-mix(in srgb,var(--c1) 55%,transparent)}.wishlist-inner{border-radius:28px;background:var(--card);padding:26px 24px 24px;text-align:center;overflow:hidden;position:relative}.wishlist-badge{display:inline-block;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--accent);background:var(--soft);padding:6px 14px;border-radius:999px;margin-bottom:14px}.wishlist-gift{font-size:3rem;display:block;margin-bottom:10px;animation:giftbob 2.8s var(--ease) infinite}.wishlist h2{font-size:1.5rem;font-weight:800;margin-bottom:8px;letter-spacing:-.01em}.wishlist p{color:var(--ink-soft);font-size:.95rem;margin-bottom:20px}@keyframes giftbob{0%,to{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-7px) rotate(4deg)}}@keyframes sheen{0%{background-position:0 50%}to{background-position:220% 50%}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.details{display:grid;grid-gap:14px;gap:14px}.detail-card{display:flex;align-items:center;gap:16px;background:var(--card);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow-sm);border:1px solid rgba(120,90,110,.06);transition:transform .4s var(--ease),box-shadow .4s var(--ease)}.detail-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.detail-card:active{transform:scale(.98)}.detail-ic{flex:0 0 auto;width:50px;height:50px;border-radius:16px;display:grid;place-items:center;font-size:1.5rem;background:linear-gradient(135deg,var(--tintA),var(--tintB));transition:background .8s var(--ease)}.detail-label{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}.detail-value{font-size:1.02rem;font-weight:600;color:var(--ink);margin-top:2px}a.detail-card{text-decoration:none;color:inherit}.section-title{font-size:1.5rem;font-weight:700;letter-spacing:-.01em;margin-bottom:6px}.section-sub{color:var(--ink-soft);font-size:.95rem;margin-bottom:22px}.teams{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.team{position:relative;border:2px solid transparent;border-radius:24px;padding:24px 12px 20px;text-align:center;cursor:pointer;background:var(--card);box-shadow:var(--shadow-sm);transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease);overflow:hidden}.team:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}.team:active{transform:scale(.97)}.team.boy{background:linear-gradient(180deg,#f4fbff,#ffffff 70%)}.team.girl{background:linear-gradient(180deg,#fff4f9,#ffffff 70%)}.team.sel.boy{border-color:var(--blue-deep);box-shadow:0 14px 30px rgba(61,146,207,.28);transform:translateY(-3px)}.team.sel.girl{border-color:var(--pink-deep);box-shadow:0 14px 30px rgba(217,79,136,.28);transform:translateY(-3px)}.team-emoji{font-size:2.6rem;display:block;margin-bottom:8px;transition:transform .35s var(--ease)}.team:hover .team-emoji{transform:scale(1.12) rotate(-6deg)}.team.sel .team-emoji{animation:pickPop .5s var(--ease)}.team-name{display:block;font-weight:700;font-size:1.05rem}.team.boy .team-name{color:var(--blue-deep)}.team.girl .team-name{color:var(--pink-deep)}.team-tag{display:block;font-size:.74rem;color:var(--ink-soft);margin-top:3px;font-weight:500}.team .check{position:absolute;top:12px;right:12px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:.8rem;opacity:0;transform:scale(.4);transition:all .3s var(--ease)}.team.sel.boy .check{background:var(--blue-deep);opacity:1;transform:scale(1)}.team.sel.girl .check{background:var(--pink-deep);opacity:1;transform:scale(1)}@keyframes pickPop{0%{transform:scale(1)}45%{transform:scale(1.35) rotate(8deg)}to{transform:scale(1)}}.party{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.party button{font-family:inherit;font-size:.95rem;font-weight:600;color:var(--ink);background:var(--card);border:1.5px solid rgba(120,90,110,.16);border-radius:16px;padding:14px 10px;cursor:pointer;transition:transform .25s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease),background .3s var(--ease)}.party button:active{transform:scale(.96)}.party button .p-emoji{display:block;font-size:1.4rem;margin-bottom:4px}.party button.on{border-color:var(--c1);background:var(--soft);color:var(--accent);box-shadow:0 0 0 4px var(--ring)}.field{margin-bottom:16px}.field label{display:block;font-size:.82rem;font-weight:600;color:var(--ink);margin-bottom:7px;margin-left:4px}.field input,.field textarea{width:100%;font-family:inherit;font-size:1rem;color:var(--ink);background:var(--card);border:1.5px solid rgba(120,90,110,.16);border-radius:16px;padding:15px 16px;transition:border-color .3s var(--ease),box-shadow .3s var(--ease),transform .25s var(--ease)}.field input:focus,.field textarea:focus{outline:none;border-color:var(--c1);box-shadow:0 0 0 4px var(--ring);transform:translateY(-1px)}.field textarea{resize:vertical;min-height:78px}.btn{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border:none;border-radius:18px;padding:17px 20px;font-family:inherit;font-size:1.05rem;font-weight:700;cursor:pointer;overflow:hidden;text-decoration:none;transition:transform .25s var(--ease),box-shadow .25s var(--ease),opacity .25s}.btn:active{transform:scale(.97)}.btn-primary{color:#fff;background:linear-gradient(100deg,var(--c1) 0,var(--c2) 100%);box-shadow:0 14px 28px -6px color-mix(in srgb,var(--c1) 60%,transparent)}.btn-primary:hover{transform:translateY(-2px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-primary:before{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-18deg);animation:sweep 3.4s ease-in-out infinite}@keyframes sweep{0%,60%{left:-60%}to{left:130%}}.btn-wish{color:#fff;background:linear-gradient(100deg,var(--c1) 0,var(--c2) 100%);box-shadow:0 16px 32px -8px color-mix(in srgb,var(--c1) 62%,transparent);font-size:1.1rem;padding:18px 20px}.btn-wish:hover{transform:translateY(-2px)}.btn-ghost{color:var(--ink);background:var(--card);border:1.5px solid rgba(120,90,110,.16);box-shadow:var(--shadow-sm);text-decoration:none}.btn-ghost:hover{transform:translateY(-2px)}.err{color:var(--pink-deep);font-size:.85rem;font-weight:500;margin-top:10px;text-align:center;animation:shake .4s var(--ease)}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.music-dock{position:-webkit-sticky;position:sticky;bottom:0;height:0;z-index:40;pointer-events:none}.music{position:absolute;right:22px;bottom:22px;pointer-events:auto;width:54px;height:54px;border-radius:50%;border:none;cursor:pointer;background:linear-gradient(135deg,var(--c1) 0,var(--c2) 100%);box-shadow:var(--shadow-md);display:grid;place-items:center;color:#fff;transition:transform .3s var(--ease)}.music:hover{transform:scale(1.08)}.music:active{transform:scale(.92)}.music:after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--c1);opacity:0}.music.playing:after{animation:halo 2s ease-out infinite}.music .bars{display:flex;align-items:flex-end;gap:3px;height:20px}.music .bars i{width:3px;background:#fff;border-radius:2px;height:6px}.music.playing .bars i{animation:eq .9s var(--ease) infinite}.music .bars i:nth-child(2){animation-delay:.15s}.music .bars i:nth-child(3){animation-delay:.3s}.music .bars i:nth-child(4){animation-delay:.45s}@keyframes eq{0%,to{height:5px}50%{height:19px}}.music .muted-slash{position:absolute;width:30px;height:2.4px;background:#fff;border-radius:2px;transform:rotate(-45deg);box-shadow:0 -2px 0 rgba(0,0,0,.15)}.success{text-align:center;padding:60px 26px;animation:fadeUp .6s var(--ease) both}.success .big-emoji{font-size:4.4rem;display:block;margin-bottom:18px;animation:pop .6s var(--ease) both}.success h2{font-size:1.7rem;font-weight:800;margin-bottom:12px}.success p{color:var(--ink-soft);margin-bottom:8px}.team-badge{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:999px;font-weight:700;margin:18px 0;animation:popIn .5s .15s var(--ease) both}.team-badge.boy{background:var(--blue-soft);color:var(--blue-deep)}.team-badge.girl{background:var(--pink-soft);color:var(--pink-deep)}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeDown{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}@keyframes pop{0%{transform:scale(.2);opacity:0}60%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}@keyframes popIn{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal.in{opacity:1;transform:translateY(0)}.footer{text-align:center;padding:30px 26px 60px;color:var(--ink-soft);font-size:.85rem}.footer .heart{color:var(--accent);animation:beat 1.6s ease-in-out infinite;display:inline-block}@keyframes beat{0%,to{transform:scale(1)}15%{transform:scale(1.25)}30%{transform:scale(1)}}.confetti{position:fixed;inset:0;z-index:60;pointer-events:none}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}