/* Shared greeting and a tactile closing note, across every page. */
.brand{position:relative;isolation:isolate}.brand>img{transition:transform .5s cubic-bezier(.2,.8,.25,1);transform-origin:50% 80%}.brand:hover>img,.brand:focus-within>img{transform:rotate(-12deg) scale(1.17)}.brand-greeting{position:absolute;top:calc(100% + 18px);left:0;z-index:30;min-width:153px;padding:15px 21px;border-radius:4px 19px 19px 19px;background:var(--glass);backdrop-filter:blur(20px);box-shadow:inset 0 1px 1px #fff8,0 12px 32px #19102025;color:var(--ink);font-size:16px;line-height:1.4;font-weight:500;opacity:0;visibility:hidden;transform:translateY(-7px) rotate(-3deg);transition:opacity .25s,transform .35s,visibility .25s;pointer-events:none}.brand:hover .brand-greeting,.brand:focus-within .brand-greeting{opacity:1;visibility:visible;transform:translateY(0) rotate(-3deg)}
.footer{position:relative;isolation:isolate;background:var(--lilac);padding-top:88px;overflow:visible;margin-top:24px}.footer::before{content:"";position:absolute;top:-18px;left:0;right:0;height:20px;background:var(--lilac);clip-path:polygon(0 70%,3% 40%,6% 68%,9% 20%,12% 52%,15% 10%,18% 48%,21% 18%,24% 65%,27% 25%,30% 55%,33% 10%,36% 40%,39% 0,42% 50%,45% 15%,48% 45%,51% 10%,54% 58%,57% 20%,60% 70%,63% 25%,66% 55%,69% 10%,72% 40%,75% 5%,78% 48%,81% 15%,84% 60%,87% 10%,90% 48%,93% 20%,96% 50%,100% 12%,100% 100%,0 100%)}.footer::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:44px 44px;opacity:.15;mask-image:linear-gradient(90deg,#000,transparent 85%)}.footer .footer-main{max-width:1120px;grid-template-columns:.85fr 1.15fr;gap:105px;align-items:center;padding-bottom:72px}.footer .contact-note{position:relative;max-width:330px;width:100%;justify-self:center;padding:29px 32px 36px;transform:rotate(-5deg);color:var(--ink);background-color:color-mix(in srgb,var(--surface) 66%,transparent);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:22px 22px;border-radius:6px 6px 36px 6px;backdrop-filter:blur(18px);box-shadow:inset 0 1px 0 #fffa,0 25px 45px #26152b1c;transition:transform .6s}.footer .contact-note:hover{transform:rotate(-2deg) translateY(-5px)}.footer .contact-note::before{width:108px;height:36px;left:calc(50% - 54px);top:-16px;background:linear-gradient(110deg,#d8bea680,#e7d2af85);backdrop-filter:blur(8px);border:1px solid #fff4;transform:rotate(7deg);box-shadow:0 2px 5px #0001}.footer .contact-note::after{content:"";position:absolute;right:0;bottom:0;width:35px;height:35px;background:linear-gradient(135deg,transparent 49%,var(--surface2) 50%);border-radius:0 0 35px 0;box-shadow:-3px -3px 5px #00000006}.footer .contact-note img{width:110px;height:125px;object-fit:contain;filter:drop-shadow(0 12px 9px #3b233528);margin:0 auto 14px}.footer .contact-note p{font-size:30px;line-height:1.25;letter-spacing:-1px;margin:0 0 22px}.footer .contact-note>span{font-size:17px;font-family:Georgia,serif;font-style:italic;color:var(--muted)}.footer .footer-invite h2{font-size:40px;line-height:1.18;letter-spacing:-1.5px;margin-bottom:22px}.footer .footer-invite>p{max-width:420px}.footer-bottom{max-width:1120px;gap:22px;font-size:14px;border-top:1px solid var(--line)}.made-by{display:inline-flex;align-items:center;white-space:nowrap;gap:7px;font-size:14px}.glass-heart{width:23px;height:23px;overflow:visible;filter:drop-shadow(0 3px 6px #cf90ae55);animation:heart-breathe 3.8s ease-in-out infinite;transform-origin:50% 65%}@keyframes heart-breathe{0%,100%{transform:scale(1)}45%{transform:scale(1.14);filter:drop-shadow(0 3px 10px #cf90ae80)}}
@media(max-width:900px){.footer .footer-main{gap:55px}.footer .footer-invite h2{font-size:32px}.footer .contact-note{max-width:285px;padding:26px}.footer .contact-note p{font-size:27px}.footer-bottom{flex-wrap:wrap;justify-content:center}.footer-bottom>a{display:none}}
@media(max-width:700px){.footer{padding-top:65px}.footer .footer-main{grid-template-columns:1fr;gap:58px;padding-bottom:44px}.footer .contact-note{max-width:260px}.footer .contact-note img{width:85px;height:97px}.footer .contact-note p{font-size:26px}.footer .footer-invite{max-width:420px}.footer .footer-invite h2{font-size:30px}.footer-bottom{flex-direction:column;gap:22px;padding-top:28px;padding-bottom:28px}.brand-greeting{min-width:136px}}
@media(prefers-reduced-motion:reduce){.glass-heart{animation:none}.brand>img,.footer .contact-note{transform:none!important}}
.footer .contact-note p{color:var(--ink)}
.footer .contact-note{background-image:linear-gradient(color-mix(in srgb,var(--ink) 10%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--ink) 10%,transparent) 1px,transparent 1px)}
