@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Playfair+Display:ital,wght@0,600;0,700;1,600;1,700&display=swap');

:root { --ink:#23404a; --coral:#e96d61; --cream:#fffaf0; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--cream); font-family:'DM Sans',Arial,sans-serif; }
.page { min-height:100svh; overflow:hidden; position:relative; display:grid; place-items:center; padding:48px 24px 185px; background:radial-gradient(circle at 49% 43%,#fffefa 0 25%,transparent 62%),linear-gradient(137deg,#fff4d8 0%,#fffaf0 43%,#f5fbf7 100%); }
.message { text-align:center; max-width:570px; position:relative; z-index:2; }
.brand { display:flex; justify-content:center; align-items:center; gap:10px; margin:0 0 27px; color:#23404a; font-size:13px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.brand img { width:63px; height:auto; filter:drop-shadow(0 3px 3px rgba(35,64,74,.10)); }
h1 { margin:0; font-family:'Playfair Display',Georgia,serif; font-size:clamp(50px,8vw,94px); line-height:.96; letter-spacing:-.055em; font-weight:700; }
h1 em { color:var(--coral); font-weight:600; }
.intro { max-width:430px; margin:31px auto 24px; font-size:17px; line-height:1.65; }
.divider { display:flex; gap:13px; align-items:center; justify-content:center; color:#e6a25e; }
.divider span { width:55px; height:1px; background:#e6cda8; }.divider i { font-style:normal; font-size:14px; }
.small { margin:19px 0 0; font-size:14px; color:#57707a; }
.balloons { position:absolute; bottom:-38px; left:50%; transform:translateX(-50%); width:min(720px,100vw); height:288px; }
.foil { position:absolute; width:150px; height:150px; object-fit:contain; filter:drop-shadow(0 12px 9px rgba(61,80,84,.14)); transform-origin:50% 100%; will-change:transform; }
.foil-one { left:5%; bottom:68px; animation:float-one 5.8s ease-in-out infinite; }.foil-two { left:22%; bottom:38px; animation:float-two 6.7s ease-in-out -.9s infinite; }.foil-three { left:42%; bottom:77px; animation:float-three 6.1s ease-in-out -2s infinite; }.foil-four { right:18%; bottom:38px; animation:float-four 7.2s ease-in-out -1.4s infinite; }.foil-five { right:2%; bottom:73px; animation:float-five 5.4s ease-in-out -2.7s infinite; }
@keyframes float-one { 0%,100% { transform:rotate(-11deg) translateY(0); } 50% { transform:rotate(-7deg) translateY(-13px); } }
@keyframes float-two { 0%,100% { transform:rotate(4deg) translateY(0); } 50% { transform:rotate(-1deg) translateY(-17px); } }
@keyframes float-three { 0%,100% { transform:rotate(-3deg) translateY(0); } 50% { transform:rotate(2deg) translateY(-11px); } }
@keyframes float-four { 0%,100% { transform:rotate(7deg) translateY(0); } 50% { transform:rotate(2deg) translateY(-16px); } }
@keyframes float-five { 0%,100% { transform:rotate(12deg) translateY(0); } 50% { transform:rotate(7deg) translateY(-10px); } }
@media (prefers-reduced-motion: reduce) { .foil { animation:none; } }
.confetti { position:absolute; width:16px; height:40px; border-radius:20px; opacity:.7; }.confetti-one{ background:#e9877d; top:13%; left:13%; transform:rotate(30deg); }.confetti-two{ background:#8cbcc7; top:19%; right:15%; height:26px; transform:rotate(-34deg); }.confetti-three{ background:#f0bf54; bottom:27%; right:9%; height:25px; transform:rotate(37deg); }
@media (max-width:500px) { .page { padding-bottom:170px; }.intro { font-size:16px; }.brand { margin-bottom:23px; }.balloons { transform:translateX(-50%) scale(.73); width:650px; bottom:-61px; }.confetti-one{left:7%;}.confetti-two{right:8%;} }
