/* ===========================================================
   Geburtstags-Einladung — 1:1 Übernahme aus dem Claude-Design
   =========================================================== */

@keyframes bi-glow-pulse{0%,100%{opacity:.32;transform:translate(-50%,-50%) scale(1)}50%{opacity:.52;transform:translate(-50%,-50%) scale(1.12)}}
@keyframes bi-scroll-bounce{0%,100%{transform:translateY(0);opacity:.3}50%{transform:translateY(7px);opacity:.65}}
@keyframes bi-hero-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes bi-card-in{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes bi-attend-in{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes bi-pulse-ring{0%{transform:scale(1);opacity:.5}100%{transform:scale(1.65);opacity:0}}
@keyframes bi-overlay-fade{from{opacity:0}to{opacity:1}}
@keyframes bi-decline-in{from{opacity:0;transform:translateY(32px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes bi-party-emoji{from{transform:translateY(0) rotate(-12deg) scale(.5);opacity:0}10%{opacity:1;transform:translateY(-6vh) rotate(0deg) scale(1)}to{transform:translateY(-135vh) rotate(28deg) scale(1.1);opacity:0}}
@keyframes bi-party-text{from{opacity:0;transform:scale(.35) rotate(-4deg)}to{opacity:1;transform:scale(1) rotate(0deg)}}
@keyframes bi-party-sub{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes bi-party-prep{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes bi-ticket-rise{from{opacity:0;transform:translateY(72px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes bi-badge-shimmer{0%{background-position:-250% 50%;opacity:0}25%{opacity:1}75%{opacity:.7}100%{background-position:350% 50%;opacity:0}}
@keyframes bi-ticket-breathe{0%,100%{box-shadow:0 24px 64px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.1),0 0 40px color-mix(in srgb, var(--bi-accent,#0A84FF) 8%, transparent)}50%{box-shadow:0 32px 80px rgba(0,0,0,.65),0 0 0 1px rgba(255,255,255,.14),0 0 60px color-mix(in srgb, var(--bi-accent,#0A84FF) 14%, transparent)}}
@keyframes bi-name-appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes bi-scroll-left{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes bi-thirty-float{0%,100%{opacity:.028;transform:translate(-50%,-52%) scale(1)}50%{opacity:.038;transform:translate(-50%,-48%) scale(1.02)}}
@keyframes bi-aurora-drift-1{0%{transform:translate(-8%,-6%) scale(1);border-radius:48% 52% 60% 40%/50% 45% 55% 50%}33%{transform:translate(9%,7%) scale(1.18);border-radius:60% 40% 45% 55%/40% 60% 40% 60%}66%{transform:translate(-4%,9%) scale(.95);border-radius:40% 60% 55% 45%/60% 35% 65% 40%}100%{transform:translate(-8%,-6%) scale(1);border-radius:48% 52% 60% 40%/50% 45% 55% 50%}}
@keyframes bi-aurora-drift-2{0%{transform:translate(10%,4%) scale(1.1);border-radius:55% 45% 40% 60%/45% 55% 45% 55%}33%{transform:translate(-11%,-9%) scale(.9);border-radius:40% 60% 55% 45%/60% 40% 60% 40%}66%{transform:translate(6%,-8%) scale(1.05);border-radius:60% 40% 45% 55%/35% 65% 40% 60%}100%{transform:translate(10%,4%) scale(1.1);border-radius:55% 45% 40% 60%/45% 55% 45% 55%}}
@keyframes bi-heart-rise{0%{transform:translate(-50%,-50%) scale(.5);opacity:0}12%{opacity:1;transform:translate(calc(-50% + var(--bi-heart-drift,0px)*.2),-12vh) scale(1)}50%{transform:translate(calc(-50% + var(--bi-heart-drift,0px)*.6),-48vh) scale(1)}100%{transform:translate(calc(-50% + var(--bi-heart-drift,0px)),-92vh) scale(.85);opacity:0}}
@keyframes bi-aurora-drift-3{0%{transform:translate(-6%,8%) scale(.95);border-radius:50% 50% 45% 55%/55% 45% 55% 45%}33%{transform:translate(7%,-9%) scale(1.18);border-radius:45% 55% 60% 40%/40% 60% 35% 65%}66%{transform:translate(-9%,-3%) scale(1);border-radius:60% 40% 40% 60%/60% 40% 60% 40%}100%{transform:translate(-6%,8%) scale(.95);border-radius:50% 50% 45% 55%/55% 45% 55% 45%}}

.bday-invite-root,.bday-invite-root *,.bday-invite-root *::before,.bday-invite-root *::after{box-sizing:border-box}
.bday-invite-root{background:#000;color:#fff;-webkit-font-smoothing:antialiased;font-family:-apple-system,'SF Pro Display',BlinkMacSystemFont,'Helvetica Neue',sans-serif;overflow-x:hidden;scroll-behavior:smooth}
.bday-invite-root input,.bday-invite-root textarea{-webkit-appearance:none;font-family:inherit}
.bday-invite-root input:focus,.bday-invite-root textarea:focus{outline:none;border-color:color-mix(in srgb, var(--bi-accent,#0A84FF) 45%, transparent)!important;background:color-mix(in srgb, var(--bi-accent,#0A84FF) 4%, transparent)!important}
.bday-invite-root input::placeholder{color:rgba(255,255,255,.22)}
.bday-invite-root a{text-decoration:none;color:inherit}
.bday-invite-root button{cursor:pointer;font-family:inherit}
.bday-invite-root p,.bday-invite-root h1,.bday-invite-root h2,.bday-invite-root h3{margin:0}

/* ── HERO ── */
.bi-hero{position:relative;height:calc(100dvh - var(--wp-admin--admin-bar--height,0px));min-height:600px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#000}
.bi-hero-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.bi-hero-giant-number{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:clamp(280px,48vw,560px);font-weight:900;letter-spacing:-.08em;color:rgba(255,255,255,.028);user-select:none;pointer-events:none;line-height:1;animation:bi-thirty-float 8s ease-in-out infinite}
.bi-hero-glow-blue{position:absolute;top:50%;left:50%;width:min(740px,160vw);height:min(740px,160vw);border-radius:50%;background:radial-gradient(circle,color-mix(in srgb, var(--bi-accent,#0A84FF) 18%, transparent) 0%,color-mix(in srgb, var(--bi-accent,#0A84FF) 5%, transparent) 48%,transparent 70%);animation:bi-glow-pulse 6.5s ease-in-out infinite;pointer-events:none}
.bi-hero-glow-gold{position:absolute;top:62%;left:36%;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb, var(--bi-accent-gold,#FFD60A) 6.5%, transparent) 0%,transparent 65%);pointer-events:none;transform:translate(-50%,-50%)}
.bi-hero-aurora{position:absolute;inset:-25%;pointer-events:none;mix-blend-mode:screen;opacity:.95}
.bi-hero-aurora-blob{position:absolute;border-radius:50%;filter:blur(60px)}
.bi-hero-aurora-blob--1{top:8%;left:12%;width:52vw;height:52vw;max-width:600px;max-height:600px;background:radial-gradient(circle,color-mix(in srgb, var(--bi-accent,#0A84FF) 46%, transparent) 0%,transparent 70%);animation:bi-aurora-drift-1 19s ease-in-out infinite}
.bi-hero-aurora-blob--2{bottom:6%;right:8%;width:48vw;height:48vw;max-width:540px;max-height:540px;background:radial-gradient(circle,color-mix(in srgb, var(--bi-accent-gold,#FFD60A) 38%, transparent) 0%,transparent 70%);animation:bi-aurora-drift-2 23s ease-in-out infinite}
.bi-hero-aurora-blob--3{top:38%;left:52%;width:38vw;height:38vw;max-width:420px;max-height:420px;background:radial-gradient(circle,color-mix(in srgb, var(--bi-accent,#0A84FF) 30%, transparent) 0%,transparent 70%);animation:bi-aurora-drift-3 27s ease-in-out infinite}

/* Fallback for browsers without color-mix() support (e.g. older Safari) —
   without this, the whole background declaration above is invalid and the
   blob silently renders with NO fill at all (invisible animation). */
@supports not (color: color-mix(in srgb, red, red)) {
  .bi-hero-aurora-blob--1{background:radial-gradient(circle,rgba(10,132,255,.46) 0%,transparent 70%)}
  .bi-hero-aurora-blob--2{background:radial-gradient(circle,rgba(255,214,10,.38) 0%,transparent 70%)}
  .bi-hero-aurora-blob--3{background:radial-gradient(circle,rgba(10,132,255,.3) 0%,transparent 70%)}
  .bi-hero-glow-blue{background:radial-gradient(circle,rgba(10,132,255,.18) 0%,rgba(10,132,255,.05) 48%,transparent 70%)}
  .bi-hero-glow-gold{background:radial-gradient(circle,rgba(255,214,10,.065) 0%,transparent 65%)}
  .bi-btn-yes,.bi-btn-rescue{background:linear-gradient(135deg,#0A84FF,#0062C8)}
  .bday-invite-root input:focus,.bday-invite-root textarea:focus{border-color:rgba(10,132,255,.45)!important;background:rgba(10,132,255,.04)!important}
}
.bi-hero-content{position:relative;z-index:1;text-align:center;padding:0 28px;max-width:820px;width:100%}
.bi-hero-eyebrow{font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.45);font-weight:500;margin-bottom:30px;animation:bi-hero-in .9s cubic-bezier(.2,0,0,1) both .1s}
.bi-hero-title{font-size:clamp(52px,9.5vw,104px);font-weight:700;letter-spacing:-.04em;line-height:.95;color:#fff;font-feature-settings:'ss01','kern','liga';animation:bi-hero-in .9s cubic-bezier(.2,0,0,1) both .3s}
.bi-hero-sub{font-size:clamp(18px,2.8vw,27px);font-weight:300;color:rgba(255,255,255,.6);margin-top:34px;line-height:1.5;letter-spacing:.006em;animation:bi-hero-in .9s cubic-bezier(.2,0,0,1) both .5s}
.bi-gold{color:var(--bi-accent-gold,#FFD60A);font-weight:600}
.bi-hero-rule{width:44px;height:1.5px;background:linear-gradient(90deg,transparent,var(--bi-accent-gold,#FFD60A),transparent);margin:38px auto;animation:bi-hero-in .9s cubic-bezier(.2,0,0,1) both .65s}
.bi-hero-date-pill{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:100px;padding:10px 22px;animation:bi-hero-in .9s cubic-bezier(.2,0,0,1) both .8s}
.bi-hero-date-pill span:first-child{font-size:14px}
.bi-hero-date-pill span:last-child{font-size:14px;font-weight:500;color:rgba(255,255,255,.8)}
.bi-hero-countdown{margin-top:24px;font-size:13px;color:rgba(255,255,255,.42);animation:bi-hero-in .9s cubic-bezier(.2,0,0,1) both .95s}
.bi-hero-scroll-wrap{position:absolute;bottom:34px;left:0;right:0;z-index:1;display:flex;justify-content:center;animation:bi-hero-in .9s cubic-bezier(.2,0,0,1) both 1.5s}
.bi-hero-scroll{background:transparent;border:none;padding:8px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer}
.bi-hero-scroll span{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.bi-hero-scroll svg{animation:bi-scroll-bounce 2.5s ease-in-out infinite 1.8s}

/* ── MARQUEE ── */
.bi-marquee-section{padding:clamp(64px,8vw,104px) 0;background:#000;position:relative;overflow:hidden;border-top:1px solid rgba(255,255,255,.04)}
.bi-marquee-tint{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 100%,color-mix(in srgb, var(--bi-accent-gold,#FFD60A) 2.5%, transparent) 0%,transparent 65%);pointer-events:none}
.bi-marquee-header{text-align:center;padding:0 24px;margin-bottom:clamp(40px,6vw,68px);position:relative}
.bi-eyebrow{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.42);font-weight:500;margin-bottom:18px}
.bi-marquee-headline{font-size:clamp(28px,5vw,46px);font-weight:700;letter-spacing:-.03em;line-height:1.3;color:#fff}
.bi-marquee-hint{margin-top:20px;font-size:13px;color:rgba(255,255,255,.42)}
.bi-marquee-mask{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 72px,#000 calc(100% - 72px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 72px,#000 calc(100% - 72px),transparent 100%)}
.bi-marquee-track{display:flex;gap:20px;width:max-content;padding:20px 20px 28px;will-change:transform}
.bi-polaroid{background:#fdfcf9;padding:9px 9px 36px;border-radius:3px;box-shadow:0 12px 40px rgba(0,0,0,.55),0 2px 8px rgba(0,0,0,.35);flex-shrink:0;cursor:pointer}
.bi-polaroid--tall{align-self:flex-start;margin-top:12px}
.bi-polaroid-photo{width:155px;height:192px;border-radius:1px;background:#efece4;display:flex;align-items:center;justify-content:center;overflow:hidden}
.bi-polaroid--tall .bi-polaroid-photo{height:210px}
.bi-polaroid-photo img{width:100%;height:100%;object-fit:cover;display:block}
.bi-polaroid-placeholder{font-size:30px;opacity:.45}
.bi-polaroid-caption{margin-top:14px;text-align:center;color:#3a3329;font-size:12.5px;line-height:1.5;font-style:italic;font-family:Georgia,'Times New Roman',serif;letter-spacing:.01em}

.bi-marquee-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:20px}
.bi-marquee-arrow{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.7);display:flex;align-items:center;justify-content:center;font-size:20px;line-height:1;transition:all .2s}
.bi-marquee-arrow:hover{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.22)}

/* ── LIGHTBOX ── */
.bi-lightbox{position:fixed;inset:0;z-index:9500;background:rgba(0,0,0,.94);display:none;align-items:center;justify-content:center;padding:30px 16px}
.bi-lightbox.is-open{display:flex;animation:bi-overlay-fade .25s ease both}
.bi-lightbox-stage{max-width:96vw;text-align:center}
.bi-lightbox-img{max-width:96vw;max-height:88vh;border-radius:4px;box-shadow:0 20px 60px rgba(0,0,0,.6);display:block;margin:0 auto}
.bi-lightbox-caption{margin-top:18px;color:rgba(255,255,255,.65);font-size:14px;font-style:italic;font-family:Georgia,'Times New Roman',serif}
.bi-lightbox-close{position:absolute;top:20px;right:20px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.7);font-size:16px;transition:all .2s}
.bi-lightbox-close:hover{background:rgba(255,255,255,.16);color:#fff}
.bi-lightbox-arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.7);font-size:24px;transition:all .2s}
.bi-lightbox-arrow:hover{background:rgba(255,255,255,.14);color:#fff}
.bi-lightbox-prev{left:16px}
.bi-lightbox-next{right:16px}
@media (max-width:600px){
  .bi-lightbox-arrow{width:40px;height:40px;font-size:20px}
}

/* ── DETAILS ── */
.bi-details-section{padding:clamp(72px,9vw,130px) 20px clamp(60px,7vw,96px);background:#000;position:relative;overflow:hidden}
.bi-details-glow{position:absolute;top:0;left:50%;transform:translateX(-50%);width:min(900px,100vw);height:360px;background:radial-gradient(ellipse at 50% 0%,color-mix(in srgb, var(--bi-accent,#0A84FF) 5%, transparent) 0%,transparent 65%);pointer-events:none}
.bi-details-inner{max-width:880px;margin:0 auto;position:relative}
.bi-details-header{text-align:center;margin-bottom:68px}
.bi-details-header .bi-eyebrow{animation:bi-card-in .8s ease both .4s}
.bi-details-headline{font-size:clamp(26px,4.5vw,40px);font-weight:600;letter-spacing:-.025em;line-height:1.3;color:#fff;margin-top:14px;animation:bi-card-in .8s ease both .55s}
.bi-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(265px,1fr));gap:16px}
.bi-detail-card{background:rgba(255,255,255,.04);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border:1px solid rgba(255,255,255,.09);border-radius:20px;padding:30px 24px;display:flex;align-items:flex-start;gap:16px;animation:bi-card-in .7s cubic-bezier(.2,0,0,1) both;transition:border-color .25s,background .25s}
.bi-details-grid .bi-detail-card:nth-child(1){animation-delay:.7s}
.bi-details-grid .bi-detail-card:nth-child(2){animation-delay:.85s}
.bi-details-grid .bi-detail-card:nth-child(3){animation-delay:1.0s}
.bi-details-grid .bi-detail-card:nth-child(4){animation-delay:1.15s}
.bi-detail-card--link:hover{border-color:color-mix(in srgb, var(--bi-accent-gold,#FFD60A) 28%, transparent);background:color-mix(in srgb, var(--bi-accent-gold,#FFD60A) 3%, transparent)}
.bi-detail-icon{width:46px;height:46px;background:rgba(255,255,255,.06);border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:21px;flex-shrink:0}
.bi-detail-icon--blue{background:color-mix(in srgb, var(--bi-accent,#0A84FF) 12%, transparent)}
.bi-detail-icon--gold{background:color-mix(in srgb, var(--bi-accent-gold,#FFD60A) 10%, transparent)}
.bi-detail-label{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.42);margin-bottom:8px;font-weight:500}
.bi-detail-value{font-size:18px;font-weight:600;letter-spacing:-.015em;color:#fff;line-height:1.35}
.bi-detail-note{font-size:12.5px;color:rgba(255,255,255,.5);margin-top:6px}
.bi-detail-note--gold{color:color-mix(in srgb, var(--bi-accent-gold,#FFD60A) 75%, transparent)}
.bi-details-footer-pill{margin-top:40px;text-align:center;animation:bi-card-in .7s ease both 1.3s}
.bi-pill{display:inline-flex;align-items:center;gap:10px;background:color-mix(in srgb, var(--bi-accent-gold,#FFD60A) 7%, transparent);border:1px solid color-mix(in srgb, var(--bi-accent-gold,#FFD60A) 17%, transparent);border-radius:100px;padding:11px 22px}
.bi-pill span{font-size:15px}
.bi-pill p{font-size:14px;color:rgba(255,255,255,.7)}

/* ── RSVP ── */
.bi-rsvp-section{padding:clamp(72px,8vw,116px) 20px clamp(90px,11vw,160px);background:#000;position:relative}
.bi-rsvp-glow{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:min(700px,100vw);height:320px;background:radial-gradient(ellipse at 50% 100%,color-mix(in srgb, var(--bi-accent,#0A84FF) 4%, transparent) 0%,transparent 65%);pointer-events:none}
.bi-rsvp-inner{max-width:520px;margin:0 auto;position:relative}
.bi-rsvp-note{text-align:center;margin-bottom:62px}
.bi-rsvp-note-icon{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,color-mix(in srgb, var(--bi-accent-gold,#FFD60A) 22%, transparent),color-mix(in srgb, var(--bi-accent,#0A84FF) 10%, transparent));border:1px solid rgba(255,255,255,.12);margin:0 auto 26px;display:flex;align-items:center;justify-content:center;font-size:24px}
.bi-rsvp-quote{font-size:clamp(15px,2.2vw,17px);font-weight:300;color:rgba(255,255,255,.65);line-height:1.9;font-style:italic;margin-bottom:22px}
.bi-rsvp-signature{font-size:13px;color:rgba(255,255,255,.34);letter-spacing:.08em}

.bi-rsvp-card{background:rgba(255,255,255,.04);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(255,255,255,.09);border-radius:24px;padding:36px 28px}
.bi-field{margin-bottom:22px}
.bi-field label{display:block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.45);font-weight:500;margin-bottom:9px}
.bi-field input{width:100%;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);border-radius:12px;padding:12px 15px;color:#fff;font-size:16px;transition:border-color .2s,background .2s}
.bi-field-hint{margin-top:7px;font-size:11.5px;color:rgba(255,255,255,.42)}
.bi-field-hint--warn{color:var(--bi-accent-gold,#FFD60A)}

.bi-reveal{animation:bi-attend-in .42s cubic-bezier(.2,0,0,1) both}
.bi-hidden{display:none}
.bi-reveal-play{animation:bi-attend-in .42s cubic-bezier(.2,0,0,1) both}

.bi-plusone-row{display:flex;gap:8px}
.bi-pill-btn{flex:1;padding:10px 6px;border-radius:12px;border:none;font-size:12.5px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .18s;white-space:nowrap;background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);color:rgba(255,255,255,.5)}
.bi-pill-btn.is-active{background:color-mix(in srgb, var(--bi-accent,#0A84FF) 18%, transparent);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--bi-accent,#0A84FF) 55%, transparent);color:#fff}

.bi-rsvp-divider{height:1px;background:rgba(255,255,255,.07);margin-bottom:30px}
.bi-rsvp-ask{text-align:center;font-size:15px;color:rgba(255,255,255,.6);margin-bottom:28px}
.bi-rsvp-ask strong{color:#fff;font-weight:600}

.bi-yes-wrap{position:relative;margin-bottom:18px}
.bi-yes-ring{position:absolute;inset:-3px;border-radius:100px;background:color-mix(in srgb, var(--bi-accent,#0A84FF) 22%, transparent);animation:bi-pulse-ring 2.2s ease-out infinite .8s;pointer-events:none}
.bi-btn-yes{position:relative;width:100%;padding:16px 24px;border:none;border-radius:100px;background:linear-gradient(135deg,var(--bi-accent,#0A84FF),#0062C8);color:#fff;font-size:17px;font-weight:700;letter-spacing:.005em;z-index:1;transition:transform .12s,opacity .2s}
.bi-btn-yes:active{transform:scale(.97)}
.bi-btn-yes[disabled]{opacity:.4;cursor:not-allowed}

.bi-no-wrap{text-align:center;margin-top:4px}
.bi-btn-no{background:transparent;border:none;padding:9px 16px;color:rgba(255,255,255,.85);font-size:13px;font-weight:500;transition:color .25s}
.bi-btn-no:hover{color:#fff}

.bi-confirm-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:24px;padding:32px 28px;text-align:center}
.bi-confirm-icon{width:52px;height:52px;border-radius:50%;background:color-mix(in srgb, var(--bi-accent,#0A84FF) 15%, transparent);border:1px solid color-mix(in srgb, var(--bi-accent,#0A84FF) 30%, transparent);margin:0 auto 16px;display:flex;align-items:center;justify-content:center;font-size:22px}
.bi-confirm-title{font-size:20px;font-weight:600;color:#fff;margin-bottom:10px}
.bi-confirm-text{font-size:14px;color:rgba(255,255,255,.55);margin-bottom:28px}
.bi-btn-ticket{background:linear-gradient(135deg,color-mix(in srgb, var(--bi-accent-gold,#FFD60A) 13%, transparent),color-mix(in srgb, var(--bi-accent-gold,#FFD60A) 5%, transparent));border:1px solid color-mix(in srgb, var(--bi-accent-gold,#FFD60A) 28%, transparent);border-radius:100px;padding:12px 28px;color:var(--bi-accent-gold,#FFD60A);font-size:14px;font-weight:600;letter-spacing:.02em;transition:all .2s}
.bi-btn-ticket:hover{background:color-mix(in srgb, var(--bi-accent-gold,#FFD60A) 20%, transparent)}

.bi-decline-confirm-icon{font-size:40px;margin-bottom:16px}
.bi-decline-confirm-title{font-size:18px;font-weight:500;color:rgba(255,255,255,.8);margin-bottom:10px}
.bi-decline-confirm-text{font-size:13px;color:rgba(255,255,255,.45);margin-bottom:24px}
.bi-btn-ghost{background:transparent;border:1px solid rgba(255,255,255,.18);border-radius:100px;padding:10px 24px;color:rgba(255,255,255,.65);font-size:13px;transition:all .2s}
.bi-btn-ghost:hover{border-color:rgba(255,255,255,.4);color:#fff}

.bi-guest-count{margin-top:28px;background:color-mix(in srgb, var(--bi-accent,#0A84FF) 7%, transparent);border:1px solid color-mix(in srgb, var(--bi-accent,#0A84FF) 15%, transparent);border-radius:14px;padding:14px 18px;display:flex;align-items:center;gap:11px}
.bi-guest-count span:first-child{font-size:17px}
.bi-guest-count p{font-size:13.5px;color:rgba(255,255,255,.6)}
.bi-guest-count strong{color:#3DA2FF;font-weight:700;font-size:15px}

/* ── FOOTER ── */
.bi-footer{border-top:1px solid rgba(255,255,255,.05);padding:64px 24px 56px;text-align:center;background:#000}
.bi-footer-line{font-size:clamp(16px,2.8vw,22px);font-weight:300;color:rgba(255,255,255,.5);letter-spacing:.025em;margin-bottom:32px}
.bi-footer-divider{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:28px}
.bi-footer-divider span{font-size:14px;opacity:.45}
.bi-footer-divider-line{height:1px;width:44px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.14))}
.bi-footer-divider-line--right{background:linear-gradient(90deg,rgba(255,255,255,.14),transparent)}
.bi-footer-meta{font-size:12px;color:rgba(255,255,255,.3);letter-spacing:.06em}

/* ── OVERLAYS ── */
.bi-overlay{position:fixed;inset:0;z-index:9000;animation:bi-overlay-fade .3s ease both}

.bi-overlay--party{background:#040010;overflow:hidden}
.bi-overlay-party-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.bi-overlay-party-tint{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,color-mix(in srgb, var(--bi-accent,#0A84FF) 10%, transparent) 0%,rgba(191,90,242,.06) 40%,transparent 68%);pointer-events:none}
.bi-overlay-party-content{position:relative;z-index:2;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:40px 24px}
.bi-party-emoji-big{font-size:clamp(70px,14vw,130px);line-height:1;margin-bottom:14px;animation:bi-party-text .55s cubic-bezier(.15,1.4,.5,1) both}
.bi-party-title{font-size:clamp(44px,9vw,88px);font-weight:800;letter-spacing:-.04em;color:#fff;line-height:.95;animation:bi-party-text .55s cubic-bezier(.15,1.4,.5,1) both .08s}
.bi-party-sub{font-size:clamp(20px,3.5vw,32px);font-weight:300;color:rgba(255,255,255,.68);margin-top:18px;animation:bi-party-sub .65s ease both .4s}
.bi-party-prep{font-size:17px;color:rgba(255,255,255,.65);letter-spacing:.05em;animation:bi-party-prep .7s ease both}

.bi-overlay--ticket{background:rgba(2,1,12,.97);display:flex;align-items:center;justify-content:center;flex-direction:column;padding:24px;animation-duration:.55s;overflow:auto}
.bi-ticket-glow-1{position:absolute;top:25%;left:50%;transform:translateX(-50%);width:600px;height:400px;background:radial-gradient(ellipse,color-mix(in srgb, var(--bi-accent,#0A84FF) 7%, transparent) 0%,transparent 65%);pointer-events:none}
.bi-ticket-glow-2{position:absolute;bottom:15%;left:35%;transform:translateX(-50%);width:480px;height:280px;background:radial-gradient(ellipse,color-mix(in srgb, var(--bi-accent-gold,#FFD60A) 4%, transparent) 0%,transparent 65%);pointer-events:none}
.bi-ticket-wrap{animation:bi-ticket-rise 1s cubic-bezier(.2,0,0,1) both .18s}
.bi-ticket-card{position:relative;width:min(350px,88vw);background:linear-gradient(150deg,rgba(14,10,30,.99),rgba(4,6,18,.99));border:1px solid rgba(255,255,255,.12);border-radius:22px;overflow:hidden;will-change:transform;animation:bi-ticket-breathe 3.5s ease-in-out infinite 2s}
.bi-ticket-glint{position:absolute;inset:0;pointer-events:none;z-index:10;border-radius:inherit;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.06) 0%,transparent 55%)}
.bi-ticket-shimmer{position:absolute;inset:0;pointer-events:none;z-index:9;border-radius:inherit;background:linear-gradient(108deg,transparent 22%,rgba(255,255,255,.1) 50%,color-mix(in srgb, var(--bi-accent-gold,#FFD60A) 7%, transparent) 56%,transparent 76%);background-size:300% 100%;animation:bi-badge-shimmer 5.5s ease-in-out infinite 2.8s}
.bi-ticket-header{background:linear-gradient(135deg,color-mix(in srgb, var(--bi-accent-gold,#FFD60A) 13%, transparent),rgba(255,149,0,.06),color-mix(in srgb, var(--bi-accent-gold,#FFD60A) 9%, transparent));padding:15px 22px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid color-mix(in srgb, var(--bi-accent-gold,#FFD60A) 14%, transparent)}
.bi-ticket-header-label{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:color-mix(in srgb, var(--bi-accent-gold,#FFD60A) 80%, transparent);font-weight:700}
.bi-ticket-header-date{font-size:10px;color:rgba(255,255,255,.4);letter-spacing:.07em}
.bi-ticket-guest{padding:22px 22px 18px}
.bi-ticket-guest-label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.42);margin-bottom:8px}
.bi-ticket-guest-name{font-size:clamp(22px,5.5vw,30px);font-weight:700;letter-spacing:-.02em;background:linear-gradient(135deg,var(--bi-accent-gold,#FFD60A) 0%,#FF9500 60%,var(--bi-accent-gold,#FFD60A) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;line-height:1.2;animation:bi-name-appear .6s ease both .6s}
.bi-ticket-guest-count{font-size:11.5px;color:rgba(255,255,255,.42);margin-top:8px;letter-spacing:.02em}
.bi-ticket-perf{display:flex;align-items:center;padding:0 14px;margin:2px 0}
.bi-ticket-perf-dot{width:9px;height:9px;border-radius:50%;background:rgba(2,1,12,.97);border:1px solid rgba(255,255,255,.1);flex-shrink:0}
.bi-ticket-perf-dot--left{margin-left:-14px}
.bi-ticket-perf-dot--right{margin-right:-14px}
.bi-ticket-perf-line{flex:1;border-top:1.5px dashed rgba(255,255,255,.1)}
.bi-ticket-details{padding:16px 22px;display:flex;flex-direction:column;gap:12px}
.bi-ticket-detail-row{display:flex;align-items:center;gap:12px}
.bi-ticket-detail-row span:first-child{font-size:14px;width:20px;text-align:center}
.bi-ticket-detail-row span:last-child{font-size:13px;color:rgba(255,255,255,.78)}
.bi-ticket-actions{padding:14px 18px 20px;display:flex;gap:10px}
.bi-btn-cal{flex:1;padding:11px 8px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:11px;color:rgba(255,255,255,.78);font-size:12.5px;font-weight:500;transition:all .2s}
.bi-btn-cal:hover{background:rgba(255,255,255,.1);color:#fff}
.bi-ticket-close{margin-top:22px;background:transparent;border:1px solid rgba(255,255,255,.18);border-radius:100px;padding:9px 22px;color:rgba(255,255,255,.5);font-size:12.5px;transition:all .2s;animation:bi-ticket-rise 1s cubic-bezier(.2,0,0,1) both .5s}
.bi-ticket-close:hover{border-color:rgba(255,255,255,.4);color:#fff}

.bi-overlay--decline{background:#000;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;overflow:auto;animation-duration:.25s}
.bi-decline-inner{max-width:400px;width:100%;text-align:center;animation:bi-decline-in .42s cubic-bezier(.2,0,0,1) both .08s}
.bi-decline-photo-frame{width:170px;height:210px;background:rgba(255,255,255,.04);border:1.5px dashed rgba(255,255,255,.14);border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;margin:0 auto 34px;overflow:hidden}
.bi-decline-photo-frame--filled{border:none;background:transparent}
.bi-decline-photo-frame img{width:100%;height:100%;object-fit:cover;border-radius:16px}
.bi-decline-title{color:#fff;margin-bottom:18px}
.bi-decline-title--1{font-size:clamp(30px,6vw,52px);font-weight:700;letter-spacing:-.035em}
.bi-decline-title--2{font-size:clamp(26px,5.5vw,46px);font-weight:700;letter-spacing:-.03em}
.bi-decline-title--3{font-size:clamp(24px,5vw,42px);font-weight:700;letter-spacing:-.03em}
.bi-decline-title--final{font-size:clamp(40px,8vw,72px);font-weight:700;letter-spacing:-.04em;margin-bottom:10px}
.bi-decline-text{font-size:15px;color:rgba(255,255,255,.62);line-height:1.8;margin-bottom:40px}
.bi-decline-text em{color:rgba(255,255,255,.45)}
.bi-decline-text--small{font-size:13px;color:rgba(255,255,255,.45);margin-bottom:8px}
.bi-decline-text--italic{font-size:13px;color:rgba(255,255,255,.32);margin-bottom:32px;font-style:italic}
.bi-decline-text--thanks{font-size:14px;color:rgba(255,255,255,.45);margin-bottom:36px}
.bi-btn-rescue{width:100%;padding:16px 24px;border:none;border-radius:100px;background:linear-gradient(135deg,var(--bi-accent,#0A84FF),#0062C8);color:#fff;font-size:16px;font-weight:700;margin-bottom:16px;transition:opacity .2s}
.bi-btn-rescue:hover{opacity:.9}
.bi-btn-decline-next{width:100%;background:transparent;border:none;padding:9px;color:rgba(255,255,255,.8);font-size:13px;font-weight:500;transition:color .2s}
.bi-btn-decline-next:hover{color:#fff}
.bi-btn-final-ghost{width:100%;background:transparent;border:1px solid rgba(255,255,255,.25);border-radius:100px;padding:12px 24px;color:#fff;font-size:13.5px;font-weight:500;transition:all .25s}
.bi-btn-final-ghost:hover{border-color:color-mix(in srgb, var(--bi-accent,#0A84FF) 60%, transparent);color:#5AB0FF}

.bi-party-emoji-float{position:fixed;z-index:10002;pointer-events:none;user-select:none;animation:bi-party-emoji ease-out forwards}

.bi-heart-float{position:fixed;z-index:40;pointer-events:none;user-select:none;display:flex;flex-direction:column;align-items:center;gap:2px;animation:bi-heart-rise 6s cubic-bezier(.25,.46,.45,.94) forwards;filter:drop-shadow(0 2px 8px rgba(0,0,0,.45))}
.bi-heart-float-icon{font-size:22px;line-height:1}
.bi-heart-float-label{font-size:9px;font-weight:700;color:#fff;background:rgba(0,0,0,.4);padding:2px 6px;border-radius:8px;letter-spacing:.02em;white-space:nowrap}

@media (prefers-reduced-motion: reduce){
  /* Freeze anything jarring/fast (parallax, confetti, bounce, elastic tilt…), but
     keep the slow ambient hero background drift — that's non-disorienting and is
     why the page looks "static" for visitors with Reduce Motion enabled. */
  .bday-invite-root *:not(.bi-hero-aurora-blob):not(.bi-hero-glow-blue):not(.bi-hero-glow-gold):not(.bi-hero-giant-number){
    animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;
  }
  .bi-hero-aurora-blob,.bi-hero-glow-blue,.bi-hero-glow-gold,.bi-hero-giant-number{
    animation-duration:38s!important;
  }
}

/* ── Mobile spacing polish ── */
@media (max-width: 600px){
  .bi-hero-scroll-wrap{bottom:22px}
  .bi-marquee-hint{padding:0 12px}
}
