.public-invitation--balloon-festival{--bf-pink:#FF6FA8;--bf-pink-light:#FFD8EA;--bf-yellow:#FFC93C;--bf-yellow-light:#FFF0BE;--bf-sky:#4FC1F0;--bf-sky-light:#D3F0FC;--bf-mint:#3FCB9B;--bf-mint-light:#CFF6E6;--bf-lilac:#B287F0;--bf-lilac-light:#ECE0FE;--bf-cream:#FFF6EA;--bf-ink:#3A2E4D;--bf-ink-soft:#8B7A9E;--bf-ink-faint:#C6BAD8;--bf-glass:rgba(255, 255, 255, 0.18);--bf-glass-strong:rgba(255, 255, 255, 0.32);--bf-glass-border:rgba(255, 255, 255, 0.6);--font-display:"Fredoka","Poppins",-apple-system,"Segoe UI",sans-serif;--font-body:"Poppins",-apple-system,"Segoe UI",Roboto,sans-serif;--color-primary:var(--bf-pink);--color-primary-dark:#E14F8C;--color-primary-light:var(--bf-pink-light);--color-primary-soft:#FFEAF3;--color-accent:var(--bf-sky);--color-accent-dark:#1E9FCE;--color-accent-soft:#E3F6FD;--color-ink:var(--bf-ink);--color-ink-soft:var(--bf-ink-soft);--color-ink-faint:var(--bf-ink-faint);--color-border:#F3E4FB;--color-surface:#FFFDF9;position:relative;overflow-x:clip;background:linear-gradient(165deg,#ffe9d6 0,#ffd9e8 36%,#f1e1ff 70%,#dcefff 100%);background-size:220% 220%;animation:bf-gradient-drift 20s ease-in-out infinite}.public-invitation--balloon-festival .bf-balloon{position:absolute;display:block;width:58px;pointer-events:none;animation:bf-balloon-bob 5.2s ease-in-out infinite}.public-invitation--balloon-festival .bf-balloon svg{width:100%;height:auto;display:block;filter:drop-shadow(0 10px 16px rgba(58, 46, 77, .22))}.public-invitation--balloon-festival .bf-ribbon{transform-origin:20px 50px;animation:bf-ribbon-sway 3.4s ease-in-out infinite}.public-invitation--balloon-festival .bf-gate__balloons{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}.public-invitation--balloon-festival .bf-balloon--1{bottom:8%;left:3%;width:64px}.public-invitation--balloon-festival .bf-balloon--2{bottom:4%;right:5%;width:50px;animation-delay:-1.2s}.public-invitation--balloon-festival .bf-balloon--3{top:10%;right:10%;width:42px;animation-delay:-2.6s}.public-invitation--balloon-festival .bf-balloon--4{top:6%;left:12%;width:38px;animation-delay:-3.8s}.public-invitation--balloon-festival .bf-footer__balloons{position:relative;display:flex;justify-content:center;gap:70px;margin:0 auto 16px;height:74px;z-index:1}.public-invitation--balloon-festival .bf-footer__balloons .bf-balloon{position:relative}.public-invitation--balloon-festival .bf-footer__balloons .bf-balloon:last-child{animation-delay:-2.4s}.public-invitation--balloon-festival .bf-balloon--ambient{position:absolute;bottom:-90px;animation-name:bf-balloon-rise;animation-timing-function:ease-in-out;animation-iteration-count:infinite}.public-invitation--balloon-festival .bf-parallax-bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.public-invitation--balloon-festival .bf-balloon-field,.public-invitation--balloon-festival .bf-confetti-field{position:fixed;inset:0;z-index:6;pointer-events:none;overflow:hidden}.public-invitation--balloon-festival .bf-parallax-shape{position:absolute;display:block;opacity:.14;filter:blur(1px);will-change:transform}.public-invitation--balloon-festival .bf-parallax-shape svg{width:100%;height:auto;display:block}.public-invitation--balloon-festival .bf-parallax-shape--1{top:4%;left:-6%;width:220px}.public-invitation--balloon-festival .bf-parallax-shape--2{top:40%;right:-8%;width:260px}.public-invitation--balloon-festival .bf-parallax-shape--3{top:74%;left:0;width:180px}.public-invitation--balloon-festival .bf-confetti-piece{position:absolute;top:-20px;border-radius:2px;animation:bf-confetti-fall linear forwards}.public-invitation--balloon-festival .bf-confetti-piece--round{border-radius:50%}.public-invitation--balloon-festival .bf-gate__bunting{position:absolute;top:0;left:0;width:100%;height:30px;z-index:1;transform-origin:top center;animation:bf-bunting-flutter 4.5s ease-in-out infinite}.public-invitation--balloon-festival .bf-footer__bunting{position:relative;height:26px;margin-bottom:6px}.public-invitation--balloon-festival .pi-gate{overflow:hidden;background:linear-gradient(165deg,#ffe9d6 0,#ffd9e8 36%,#f1e1ff 70%,#dcefff 100%);background-size:220% 220%;animation:bf-gradient-drift 20s ease-in-out infinite}.public-invitation--balloon-festival .pi-gate__eyebrow,.public-invitation--balloon-festival .pi-gate__guest-note,.public-invitation--balloon-festival .pi-gate__names,.public-invitation--balloon-festival .pi-gate__theme{color:var(--bf-ink)}.public-invitation--balloon-festival .pi-gate__theme{color:var(--bf-pink)!important}.public-invitation--balloon-festival .pi-gate__names{font-weight:600}.public-invitation--balloon-festival .pi-gate__open:hover{animation:none;transform:scale(1.08) translateY(-2px)}.public-invitation--balloon-festival .bf-split-unit{display:inline-block;opacity:0;transform:translateY(16px) rotate(-5deg)}.public-invitation--balloon-festival [data-bf-split].is-split-visible .bf-split-unit{animation:bf-letter-in .5s cubic-bezier(.16,1,.3,1) forwards}.public-invitation--balloon-festival .reveal{transition:opacity 1.5s cubic-bezier(.16, 1, .3, 1),transform 1.5s cubic-bezier(.16, 1, .3, 1),filter 1.5s ease;filter:blur(5px);transform:translateY(26px) scale(.97)}.public-invitation--balloon-festival .reveal.is-visible{filter:blur(0);transform:translateY(0) scale(1)}.public-invitation--balloon-festival .pi-hero,.public-invitation--balloon-festival .pi-section{position:relative;overflow:hidden;padding-top:52px;padding-bottom:46px;max-width:none;margin-left:0;margin-right:0;width:100%}.public-invitation--balloon-festival .pi-hero>*,.public-invitation--balloon-festival .pi-section>*{max-width:680px;margin-left:auto;margin-right:auto}.public-invitation--balloon-festival .pi-hero{background:linear-gradient(160deg,#ffe9d6,#ffd9e8)}.public-invitation--balloon-festival .pi-section:nth-of-type(6n+2){background:linear-gradient(160deg,#ffd9e8,#f1e1ff)}.public-invitation--balloon-festival .pi-section:nth-of-type(6n+3){background:linear-gradient(160deg,#f1e1ff,#dcefff)}.public-invitation--balloon-festival .pi-section:nth-of-type(6n+4){background:linear-gradient(160deg,#dcefff,#d9f5ea)}.public-invitation--balloon-festival .pi-section:nth-of-type(6n+5){background:linear-gradient(160deg,#d9f5ea,#fff3c9)}.public-invitation--balloon-festival .pi-section:nth-of-type(6n){background:linear-gradient(160deg,#fff3c9,#ffe9d6)}.public-invitation--balloon-festival .pi-section:nth-of-type(6n+1){background:linear-gradient(160deg,#ffe9d6,#ffd9e8)}.public-invitation--balloon-festival .pi-hero::before,.public-invitation--balloon-festival .pi-section::before{content:"";position:absolute;top:-1px;left:0;right:0;height:14px;z-index:1;pointer-events:none;background-image:radial-gradient(circle at 10px 0,transparent 9px,var(--color-surface) 10px);background-size:20px 14px;background-repeat:repeat-x}.public-invitation--balloon-festival .pi-age-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 22px;background:linear-gradient(135deg,var(--bf-yellow-light),var(--bf-yellow));color:var(--bf-ink);box-shadow:0 8px 18px rgba(255,201,60,.4)}.public-invitation--balloon-festival .bf-sparkle{display:inline-flex;width:16px;height:16px;color:var(--bf-pink);animation:bf-sparkle-spin 3s linear infinite}.public-invitation--balloon-festival .bf-sparkle svg{width:100%;height:100%;display:block}.public-invitation--balloon-festival .bf-frame{position:relative;display:inline-block}.public-invitation--balloon-festival .bf-frame__corner{position:absolute;width:40px;z-index:2;pointer-events:none;filter:drop-shadow(0 6px 10px rgba(58, 46, 77, .2))}.public-invitation--balloon-festival .bf-frame__corner--tl{top:-16px;left:-18px;animation:bf-corner-bob 4.2s ease-in-out infinite}.public-invitation--balloon-festival .bf-frame__corner--br{bottom:-10px;right:-16px;animation:bf-corner-bob 4.6s ease-in-out infinite reverse;animation-delay:-1.5s}.public-invitation--balloon-festival .bf-frame__corner svg{width:100%;height:auto;display:block}.public-invitation--balloon-festival .bf-gift-teaser{display:flex;flex-direction:column;align-items:center;gap:16px;padding:12px 0 4px}.public-invitation--balloon-festival .bf-gift-teaser[hidden]{display:none}.public-invitation--balloon-festival .bf-gift-balloon{position:relative;display:inline-block;width:130px;padding:0;margin:0;border:none;background:0 0;cursor:pointer;animation:bf-balloon-bob 4.2s ease-in-out infinite;filter:drop-shadow(0 14px 20px rgba(58, 46, 77, .28));transition:transform .25s cubic-bezier(.22, 1.4, .36, 1)}.public-invitation--balloon-festival .bf-gift-balloon svg{width:100%;height:auto;display:block}.public-invitation--balloon-festival .bf-gift-balloon:hover{transform:scale(1.06)}.public-invitation--balloon-festival .bf-gift-balloon.is-popping{animation:bf-balloon-pop 380ms cubic-bezier(.34,1.56,.64,1) forwards;pointer-events:none}.public-invitation--balloon-festival .bf-gift-teaser__hint{font-size:.92rem;color:var(--bf-ink-soft);font-weight:600}.public-invitation--balloon-festival .pi-couple__photo,.public-invitation--balloon-festival .pi-gate__photo{border:5px solid var(--bf-cream);box-shadow:0 0 0 4px var(--bf-pink-light),0 12px 26px rgba(58,46,77,.22);transition:transform .35s cubic-bezier(.22, 1.2, .36, 1)}.public-invitation--balloon-festival .bf-frame:hover .pi-couple__photo,.public-invitation--balloon-festival .bf-frame:hover .pi-gate__photo{transform:rotate(-3deg) scale(1.04)}.public-invitation--balloon-festival .pi-speaker-card__photo{border:4px solid var(--bf-sky-light)}.public-invitation--balloon-festival .pi-couple__card,.public-invitation--balloon-festival .pi-event-card{background:0 0;border:none;box-shadow:none}.public-invitation--balloon-festival .form-card,.public-invitation--balloon-festival .gift-account-card,.public-invitation--balloon-festival .guestbook__item,.public-invitation--balloon-festival .pi-note,.public-invitation--balloon-festival .pi-wishlist-item,.public-invitation--balloon-festival .wishlist-item-card{background:var(--bf-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1.5px solid var(--bf-glass-border);box-shadow:0 10px 24px rgba(58,46,77,.1);border-radius:var(--radius-lg)}.public-invitation--balloon-festival .form-card input,.public-invitation--balloon-festival .form-card select,.public-invitation--balloon-festival .form-card textarea{background:var(--bf-glass-strong)!important;border:1px solid var(--bf-glass-border);color:var(--bf-ink)}.public-invitation--balloon-festival .gift-account-card{color:var(--bf-ink)}.public-invitation--balloon-festival .gift-account-card__holder-label,.public-invitation--balloon-festival .gift-account-card__type{color:var(--bf-ink-soft);opacity:1}.public-invitation--balloon-festival .gift-account-card__holder,.public-invitation--balloon-festival .gift-account-card__number,.public-invitation--balloon-festival .gift-account-card__provider{color:var(--bf-ink)}.public-invitation--balloon-festival .gift-account-card__copy{border-color:var(--bf-pink);background:var(--bf-glass-strong);color:var(--bf-ink)}.public-invitation--balloon-festival .gift-account-card__copy:hover{background:var(--bf-pink-light)}.public-invitation--balloon-festival .gift-account-card::after,.public-invitation--balloon-festival .gift-account-card::before{background:rgba(255,111,168,.1)}.public-invitation--balloon-festival .pi-slider-gallery__frame{background:linear-gradient(180deg,var(--bf-glass-strong),var(--bf-glass) 100%) padding-box,linear-gradient(135deg,var(--bf-pink),var(--bf-lilac)) border-box;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.public-invitation--balloon-festival .pi-checkin-qr{background:var(--bf-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-color:var(--bf-pink-light)}.public-invitation--balloon-festival .pi-float-nav{background:var(--bf-glass-strong)}.public-invitation--balloon-festival .pi-float-nav__item.is-active,.public-invitation--balloon-festival .pi-float-nav__item:hover{background:linear-gradient(135deg,var(--bf-pink),var(--bf-lilac));color:#fff}.public-invitation--balloon-festival .bf-event{text-align:center}.public-invitation--balloon-festival .bf-event__label{display:inline-flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:600;color:var(--bf-lilac);margin:0 0 18px}.public-invitation--balloon-festival .bf-event__day{font-family:var(--font-display);font-weight:600;font-size:4.4rem;line-height:1;background:linear-gradient(135deg,var(--bf-pink),var(--bf-lilac));-webkit-background-clip:text;background-clip:text;color:transparent;margin:0 0 6px}.public-invitation--balloon-festival .bf-event__dateline{font-size:1.05rem;color:var(--bf-ink);margin:0 0 20px}.public-invitation--balloon-festival .bf-event__time{display:inline-block;padding:8px 22px;margin:0 0 14px;border-radius:999px;background:linear-gradient(135deg,var(--bf-yellow-light),var(--bf-yellow));font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--bf-ink);box-shadow:0 8px 18px rgba(255,201,60,.35)}.public-invitation--balloon-festival .bf-event__location{display:flex;align-items:center;justify-content:center;gap:6px;color:var(--bf-ink-soft);margin:0 0 16px}.public-invitation--balloon-festival .bf-event__meta{color:var(--bf-ink-soft);font-size:.9rem;margin:0 0 8px}.public-invitation--balloon-festival .bf-event__actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}.public-invitation--balloon-festival .pi-timeline{max-width:620px;padding-left:0;text-align:left}.public-invitation--balloon-festival .pi-timeline::before{left:50%;margin-left:-1.5px;width:3px;background:0 0;background-image:repeating-linear-gradient(180deg,var(--bf-lilac) 0 8px,transparent 8px 18px)}.public-invitation--balloon-festival .pi-timeline__item{width:50%;padding-left:0;padding-bottom:36px}.public-invitation--balloon-festival .pi-timeline__item:nth-child(odd){padding-right:34px;text-align:right}.public-invitation--balloon-festival .pi-timeline__item:nth-child(2n){margin-left:50%;padding-left:34px;text-align:left}.public-invitation--balloon-festival .pi-timeline__dot{left:auto;top:2px;width:30px;height:30px;background:linear-gradient(135deg,var(--bf-pink),var(--bf-lilac))!important;box-shadow:0 0 0 4px var(--bf-cream),0 6px 14px rgba(58,46,77,.25);animation:bf-dot-bounce 2.4s ease-in-out infinite}.public-invitation--balloon-festival .pi-timeline__item:nth-child(odd) .pi-timeline__dot{right:-15px;left:auto}.public-invitation--balloon-festival .pi-timeline__item:nth-child(2n) .pi-timeline__dot{left:-15px;right:auto}.public-invitation--balloon-festival .pi-timeline__date{color:var(--bf-lilac);font-weight:700}.public-invitation--balloon-festival .pi-timeline__body{display:inline-block;max-width:100%;padding:12px 16px;border-radius:var(--radius-lg);background:var(--bf-glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1.5px solid var(--bf-glass-border);box-shadow:0 8px 18px rgba(58,46,77,.12)}@media (max-width:560px){.public-invitation--balloon-festival .pi-timeline{max-width:340px}.public-invitation--balloon-festival .pi-timeline::before{left:15px;margin-left:0}.public-invitation--balloon-festival .pi-timeline__item,.public-invitation--balloon-festival .pi-timeline__item:nth-child(2n){width:auto;margin-left:0;padding-left:38px;padding-right:0;text-align:left}.public-invitation--balloon-festival .pi-timeline__item:nth-child(2n) .pi-timeline__dot,.public-invitation--balloon-festival .pi-timeline__item:nth-child(odd) .pi-timeline__dot{left:0;right:auto}}.public-invitation--balloon-festival .button--primary{background:linear-gradient(135deg,var(--bf-pink),var(--bf-lilac));border:none}.public-invitation--balloon-festival .button--ghost:hover{border-color:var(--bf-pink);color:var(--bf-pink)}@media (max-width:640px){.public-invitation--balloon-festival .bf-balloon{width:44px}.public-invitation--balloon-festival .bf-parallax-shape{display:none}}@media (prefers-reduced-motion:reduce){.public-invitation--balloon-festival{animation:none}.public-invitation--balloon-festival .pi-gate{animation:none}.public-invitation--balloon-festival .bf-balloon-field,.public-invitation--balloon-festival .bf-confetti-field,.public-invitation--balloon-festival .bf-footer__bunting,.public-invitation--balloon-festival .bf-gate__balloons,.public-invitation--balloon-festival .bf-gate__bunting,.public-invitation--balloon-festival .bf-parallax-bg{display:none}.public-invitation--balloon-festival .bf-balloon,.public-invitation--balloon-festival .bf-frame__corner,.public-invitation--balloon-festival .bf-gift-balloon,.public-invitation--balloon-festival .bf-ribbon,.public-invitation--balloon-festival .bf-sparkle,.public-invitation--balloon-festival .pi-timeline__dot{animation:none}.public-invitation--balloon-festival .bf-gift-balloon.is-popping{opacity:0}.public-invitation--balloon-festival .bf-split-unit{opacity:1!important;transform:none!important;animation:none!important}.public-invitation--balloon-festival .reveal{filter:none;transition:opacity .3s ease,transform .3s ease}}