:root{--bd-ink: #2a1638;--bd-body: #4b3a5a;--bd-muted: #6f5f7e;--bd-line: #f0dff0;--bd-paper: #ffffff;--bd-cream: #fff8ef;--bd-tint: #fdf2f8;--bd-pink: #db2777;--bd-pink-dark: #be185d;--bd-violet: #7c3aed;--bd-sun: #f59e0b;--bd-mint: #10b981;--bd-sky: #0ea5e9;--bd-frost: #fbcfe8;--bd-sponge: #fde68a;--bd-radius: 24px;--bd-shadow: 0 18px 40px rgba(124, 58, 237, .12);--primary: #db2777;--primary-dark: #be185d;--border: #f0dff0;--surface: #ffffff;--shadow-soft: 0 18px 40px rgba(124, 58, 237, .12);--surface-muted: #fdf2f8;--text-main: #2a1638;--text-muted: #6f5f7e;}
.bd-hero{position: relative;overflow: hidden;text-align: center;margin: 8px 0 28px;padding: 72px 24px 36px;border-radius: 32px;color: var(--bd-ink);background: radial-gradient(circle at 8% 30%, rgba(219, 39, 119, .18) 0 6px, transparent 7px), radial-gradient(circle at 92% 62%, rgba(124, 58, 237, .18) 0 7px, transparent 8px), radial-gradient(circle at 18% 82%, rgba(245, 158, 11, .25) 0 5px, transparent 6px), radial-gradient(circle at 80% 22%, rgba(16, 185, 129, .2) 0 5px, transparent 6px), radial-gradient(circle at 64% 88%, rgba(14, 165, 233, .2) 0 4px, transparent 5px), linear-gradient(160deg, #fff8ef 0%, #fdf2f8 55%, #f5f3ff 100%);border: 1px solid var(--bd-line);}
.bd-bunting{position: absolute;top: 0;left: 0;right: 0;display: flex;justify-content: center;gap: 6px;height: 44px;padding-top: 6px;border-top: 3px solid var(--bd-ink);overflow: hidden;}
.bd-bunting span{flex: 0 0 34px;height: 38px;clip-path: polygon(0 0, 100% 0, 50% 100%);background: var(--bd-pink);transform-origin: top center;animation: bd-sway 3s ease-in-out infinite;}
.bd-bunting span:nth-child(5n+2){background: var(--bd-sun);animation-delay: -.6s;}
.bd-bunting span:nth-child(5n+3){background: var(--bd-violet);animation-delay: -1.2s;}
.bd-bunting span:nth-child(5n+4){background: var(--bd-mint);animation-delay: -1.8s;}
.bd-bunting span:nth-child(5n){background: var(--bd-sky);animation-delay: -2.4s;}
.bd-balloon{position: absolute;width: 58px;height: 70px;border-radius: 50% 50% 48% 52% / 58% 58% 42% 42%;animation: bd-float 6s ease-in-out infinite;box-shadow: inset -8px -10px 0 rgba(0, 0, 0, .08);}
.bd-balloon::before{content: "";position: absolute;left: 50%;bottom: -6px;transform: translateX(-50%);border: 6px solid transparent;border-bottom-color: inherit;border-top: 0;}
.bd-balloon::after{content: "";position: absolute;left: 50%;top: 100%;width: 1px;height: 70px;background: rgba(42, 22, 56, .35);}
.bd-balloon-a{left: 5%;top: 70px;background: var(--bd-pink);border-color: var(--bd-pink);}
.bd-balloon-b{right: 6%;top: 96px;background: var(--bd-violet);border-color: var(--bd-violet);animation-delay: -2s;width: 50px;height: 62px;}
.bd-balloon-c{right: 14%;top: 54px;background: var(--bd-sun);border-color: var(--bd-sun);animation-delay: -4s;width: 40px;height: 50px;}
.bd-kicker{display: inline-block;margin: 0 0 12px;padding: 6px 14px;border-radius: 999px;background: var(--bd-ink);color: #fff;font-size: 12px;font-weight: 700;letter-spacing: .1em;text-transform: uppercase;}
.bd-hero h1{position: relative;margin: 0 auto 14px;font-size: clamp(2.1rem, 5.4vw, 3.6rem);font-weight: 900;line-height: 1.05;letter-spacing: -.02em;color: var(--bd-ink);}
.bd-h1-pop{background: linear-gradient(90deg, var(--bd-pink), var(--bd-violet) 55%, var(--bd-sun));-webkit-background-clip: text;background-clip: text;color: transparent;}
.bd-lede{position: relative;margin: 0 auto 20px;font-size: 1.08rem;line-height: 1.65;color: var(--bd-body);}
.bd-byline{position: relative;display: inline-flex;flex-wrap: wrap;justify-content: center;gap: 8px;font-size: 13px;color: var(--bd-muted);}
.bd-byline span{padding: 6px 12px;border-radius: 999px;background: rgba(255, 255, 255, .85);border: 1px solid var(--bd-line);}
.bd-byline .author-link{color: var(--bd-pink-dark);font-weight: 700;text-decoration: none;}
.bd-byline .author-link:hover{text-decoration: underline;}
.bd-app{display: grid;grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);gap: 22px;align-items: start;margin-bottom: 48px;}
.bd-panel{position: relative;background: var(--bd-paper);color: var(--bd-ink);border: 1px solid var(--bd-line);border-radius: var(--bd-radius);padding: 28px 24px 24px;box-shadow: var(--bd-shadow);overflow: hidden;}
.bd-panel::before{content: "";position: absolute;top: 0;left: 0;right: 0;height: 6px;background: linear-gradient(90deg, var(--bd-pink), var(--bd-sun), var(--bd-mint), var(--bd-sky), var(--bd-violet));}
.bd-eyebrow{display: block;margin: 0 0 4px;font-size: 12px;font-weight: 800;letter-spacing: .12em;text-transform: uppercase;color: var(--bd-pink-dark);}
.bd-panel h2{margin: 0 0 18px;font-size: 1.4rem;font-weight: 800;color: var(--bd-ink);}
.bd-field{border: 0;margin: 0 0 18px;padding: 0;min-width: 0;}
.bd-field legend{float: none;width: auto;margin: 0 0 8px;padding: 0;font-size: 14px;font-weight: 700;color: var(--bd-ink);}
.bd-chips{display: flex;flex-wrap: wrap;gap: 8px;}
.bd-chip{display: inline-flex;flex-direction: column;align-items: flex-start;gap: 1px;padding: 8px 14px;border-radius: 16px;border: 2px solid var(--bd-line);background: var(--bd-cream);color: var(--bd-ink);font-size: 14px;font-weight: 700;line-height: 1.2;cursor: pointer;transition: transform .15s ease, border-color .15s ease, background .15s ease;}
.bd-chip small{font-size: 11px;font-weight: 600;color: var(--bd-muted);}
.bd-chip:hover{transform: translateY(-2px) rotate(-1deg);border-color: var(--bd-pink);}
.bd-chip[aria-pressed="true"]{background: var(--bd-pink);border-color: var(--bd-pink);color: #fff;}
.bd-chip[aria-pressed="true"] small{color: #fff;}
.bd-years{display: grid;grid-template-columns: 1fr auto 1fr;align-items: end;gap: 10px;}
.bd-years-to{padding-bottom: 12px;font-weight: 700;color: var(--bd-muted);}
.bd-label{display: flex;flex-direction: column;gap: 6px;font-size: 13px;font-weight: 700;color: var(--bd-body);margin: 0;}
.bd-input{width: 100%;min-height: 46px;padding: 10px 12px;border: 2px solid var(--bd-line);border-radius: 14px;background: #fff;color: var(--bd-ink);font-size: 16px;font-weight: 600;}
.bd-input:focus{outline: none;border-color: var(--bd-violet);box-shadow: 0 0 0 4px rgba(124, 58, 237, .15);}
.bd-row{display: grid;grid-template-columns: 1fr 1fr;gap: 12px;margin-bottom: 20px;}
.bd-error{margin: 10px 0 0;padding: 10px 12px;border-radius: 12px;background: #fff1f2;border: 1px solid #fecdd3;color: #9f1239;font-size: 14px;font-weight: 600;}
.bd-actions{display: flex;gap: 10px;align-items: center;}
.bd-go{flex: 1;min-height: 54px;padding: 12px 20px;border: 0;border-radius: 999px;background: linear-gradient(95deg, var(--bd-pink), var(--bd-violet));color: #fff;font-size: 17px;font-weight: 800;cursor: pointer;box-shadow: 0 10px 22px rgba(219, 39, 119, .3);transition: transform .15s ease, box-shadow .15s ease;}
.bd-go:hover{transform: translateY(-2px) scale(1.01);box-shadow: 0 14px 28px rgba(219, 39, 119, .38);}
.bd-go:active{transform: scale(.98);}
.bd-go:disabled{opacity: .5;cursor: not-allowed;transform: none;}
.bd-go:focus-visible,.bd-ghost:focus-visible,.bd-chip:focus-visible,.bd-mini:focus-visible{outline: 3px solid var(--bd-sun);outline-offset: 2px;}
.bd-ghost{min-height: 54px;padding: 12px 18px;border: 2px solid var(--bd-line);border-radius: 999px;background: #fff;color: var(--bd-body);font-weight: 700;cursor: pointer;}
.bd-ghost:hover{border-color: var(--bd-violet);color: var(--bd-violet);}
.bd-stage{display: flex;flex-direction: column;gap: 18px;min-width: 0;}
.bd-card{position: relative;overflow: hidden;text-align: center;padding: 34px 26px 22px;border-radius: var(--bd-radius);background: repeating-linear-gradient(135deg, var(--bd-pink) 0 14px, var(--bd-sun) 14px 28px, var(--bd-mint) 28px 42px, var(--bd-sky) 42px 56px, var(--bd-violet) 56px 70px) top / 100% 8px no-repeat, var(--bd-paper);border: 1px solid var(--bd-line);box-shadow: var(--bd-shadow);color: var(--bd-ink);}
.bd-card::before{content: "";position: absolute;inset: 16px 10px 10px;border: 2px dashed var(--bd-frost);border-radius: 18px;pointer-events: none;}
.bd-card.is-pop{animation: bd-pop .5s cubic-bezier(.2, 1.4, .4, 1);}
.bd-confetti{position: absolute;inset: 0;width: 100%;height: 100%;pointer-events: none;z-index: 3;}
.bd-card h2.bd-eyebrow{font-size: 12px;margin-bottom: 8px;}
.bd-weekday{margin: 0;font-size: 15px;font-weight: 700;color: var(--bd-violet);}
.bd-date{margin: 4px 0 12px;font-size: clamp(1.8rem, 4.6vw, 2.8rem);font-weight: 900;line-height: 1.1;letter-spacing: -.02em;color: var(--bd-ink);}
.bd-copyline{position: relative;z-index: 2;display: inline-flex;align-items: center;gap: 8px;flex-wrap: wrap;justify-content: center;}
.bd-copyline code{padding: 6px 12px;border-radius: 10px;background: var(--bd-tint);color: var(--bd-pink-dark);font-size: 15px;font-weight: 700;}
.bd-mini{position: relative;z-index: 2;padding: 7px 14px;border: 2px solid var(--bd-line);border-radius: 999px;background: #fff;color: var(--bd-ink);font-size: 13px;font-weight: 700;cursor: pointer;}
.bd-mini:hover{border-color: var(--bd-pink);color: var(--bd-pink-dark);}
.bd-cake{position: relative;width: 190px;margin: 26px auto 18px;}
.bd-candles{display: flex;justify-content: center;align-items: flex-end;gap: 7px;height: 46px;padding: 0 16px;}
.bd-candles i{position: relative;display: block;width: 8px;height: 30px;border-radius: 3px 3px 0 0;background: repeating-linear-gradient(160deg, var(--c) 0 5px, #fff 5px 8px);}
.bd-candles i::before{content: "";position: absolute;left: 50%;top: -15px;width: 10px;height: 14px;margin-left: -5px;border-radius: 50% 50% 50% 50% / 65% 65% 35% 35%;background: radial-gradient(circle at 50% 70%, #fff7cc 0 25%, #fbbf24 45%, #f97316 80%);animation: bd-flicker 1.2s ease-in-out infinite alternate;}
.bd-candles i:nth-child(even)::before{animation-delay: -.5s;}
.bd-cake-top{height: 20px;border-radius: 12px 12px 0 0;background: radial-gradient(circle at 12% 100%, var(--bd-frost) 0 9px, transparent 10px), radial-gradient(circle at 38% 100%, var(--bd-frost) 0 7px, transparent 8px), radial-gradient(circle at 64% 100%, var(--bd-frost) 0 10px, transparent 11px), radial-gradient(circle at 88% 100%, var(--bd-frost) 0 8px, transparent 9px), linear-gradient(var(--bd-frost), var(--bd-frost)) top / 100% 12px no-repeat;}
.bd-cake-base{display: flex;align-items: center;justify-content: center;height: 64px;border-radius: 0 0 14px 14px;background: radial-gradient(circle at 20% 40%, var(--bd-pink) 0 3px, transparent 4px), radial-gradient(circle at 70% 60%, var(--bd-violet) 0 3px, transparent 4px), radial-gradient(circle at 45% 75%, var(--bd-mint) 0 3px, transparent 4px), radial-gradient(circle at 85% 30%, var(--bd-sky) 0 3px, transparent 4px), var(--bd-sponge);box-shadow: 0 10px 0 -4px #f3e8d0, 0 14px 24px rgba(42, 22, 56, .12);}
.bd-cake-base span{font-size: 34px;font-weight: 900;color: var(--bd-ink);text-shadow: 2px 2px 0 #fff;}
.bd-stats{display: grid;grid-template-columns: repeat(4, minmax(0, 1fr));gap: 10px;margin: 18px 0 14px;}
.bd-stats div{padding: 12px 8px;border-radius: 16px;background: var(--bd-cream);border: 1px solid var(--bd-line);}
.bd-stats div:nth-child(2){background: #f5f3ff;}
.bd-stats div:nth-child(3){background: #ecfdf5;}
.bd-stats div:nth-child(4){background: #fffbeb;}
.bd-stats dt{font-size: 11px;font-weight: 700;letter-spacing: .06em;text-transform: uppercase;color: var(--bd-muted);}
.bd-stats dd{margin: 4px 0 0;font-size: 15px;font-weight: 800;color: var(--bd-ink);}
.bd-card-foot{position: relative;z-index: 2;display: flex;justify-content: center;}
.bd-guests{padding: 22px;border-radius: var(--bd-radius);background: var(--bd-paper);border: 1px solid var(--bd-line);box-shadow: var(--bd-shadow);}
.bd-guests-head{display: flex;justify-content: space-between;align-items: center;flex-wrap: wrap;gap: 10px;}
.bd-guests h3{margin: 0;font-size: 1.15rem;font-weight: 800;color: var(--bd-ink);}
.bd-badge{display: inline-block;min-width: 28px;padding: 2px 8px;border-radius: 999px;background: var(--bd-violet);color: #fff;font-size: 13px;text-align: center;vertical-align: middle;}
.bd-guests-actions{display: flex;gap: 8px;}
.bd-odds-line{margin: 12px 0;padding: 10px 14px;border-radius: 12px;background: var(--bd-tint);color: var(--bd-pink-dark);font-size: 14px;font-weight: 700;}
.bd-list{display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 8px;max-height: 420px;overflow-y: auto;margin: 0;padding: 0 4px 0 0;list-style: none;}
.bd-list li{display: grid;grid-template-columns: auto 1fr;grid-template-rows: auto auto;column-gap: 10px;align-items: center;padding: 9px 12px;border-radius: 14px;border: 1px solid var(--bd-line);background: #fff;}
.bd-list li.is-twin{background: var(--bd-tint);border-color: var(--bd-pink);}
.bd-g-n{grid-row: span 2;display: flex;align-items: center;justify-content: center;width: 28px;height: 28px;border-radius: 50%;background: var(--bd-cream);color: var(--bd-muted);font-size: 12px;font-weight: 800;}
.bd-g-date{font-weight: 800;color: var(--bd-ink);font-variant-numeric: tabular-nums;}
.bd-g-meta{font-size: 12px;color: var(--bd-muted);}
.bd-g-tag{grid-column: 2;justify-self: start;margin-top: 4px;padding: 2px 8px;border-radius: 999px;background: var(--bd-pink);color: #fff;font-size: 11px;font-weight: 800;}
.bd-toast{position: fixed;left: 50%;bottom: 24px;z-index: 50;transform: translateX(-50%);margin: 0;padding: 10px 18px;border-radius: 999px;background: var(--bd-ink);color: #fff;font-size: 14px;font-weight: 700;box-shadow: 0 10px 24px rgba(42, 22, 56, .3);}
.bd-toast:empty{display: none;}
.bd-section{margin: 0 auto 28px;padding: 30px 30px 24px;border-radius: var(--bd-radius);background: var(--bd-paper);border: 1px solid var(--bd-line);color: var(--bd-body);line-height: 1.7;}
.bd-section h2{margin: 0 0 14px;font-size: 1.55rem;font-weight: 800;color: var(--bd-ink);}
.bd-section p{margin: 0 0 14px;}
.bd-section code{padding: 2px 6px;border-radius: 6px;background: var(--bd-tint);color: var(--bd-pink-dark);}
.bd-section-party{background: linear-gradient(150deg, #fff8ef, #fdf2f8);}
.bd-section-limits{border-left: 6px solid var(--bd-sun);}
.bd-table-wrap{overflow-x: auto;margin: 0 0 14px;border-radius: 16px;border: 1px solid var(--bd-line);}
.bd-table{width: 100%;border-collapse: collapse;font-size: 15px;}
.bd-table th,.bd-table td{padding: 11px 14px;text-align: left;border-bottom: 1px solid var(--bd-line);}
.bd-table thead th{background: var(--bd-ink);color: #fff;font-size: 13px;letter-spacing: .04em;}
.bd-table tbody tr:nth-child(odd){background: var(--bd-cream);}
.bd-table tbody th{color: var(--bd-pink-dark);}
.bd-table tbody tr:last-child th,.bd-table tbody tr:last-child td{border-bottom: 0;}
.bd-note{font-size: 14px;color: var(--bd-muted);}
.bd-odds{display: grid;grid-template-columns: repeat(4, minmax(0, 1fr));gap: 14px;margin: 4px 0 18px;padding: 0;list-style: none;}
.bd-odds li{display: flex;flex-direction: column;align-items: center;justify-content: center;aspect-ratio: 5 / 6;border-radius: 50% 50% 46% 54% / 56% 56% 44% 44%;color: #fff;box-shadow: inset -10px -12px 0 rgba(0, 0, 0, .1);}
.bd-odds li:nth-child(1){background: var(--bd-sky);}
.bd-odds li:nth-child(2){background: var(--bd-pink);}
.bd-odds li:nth-child(3){background: var(--bd-violet);}
.bd-odds li:nth-child(4){background: #047857;}
.bd-odds-n{font-size: 13px;font-weight: 700;}
.bd-odds-n::after{content: " guests";}
.bd-odds-p{font-size: clamp(1.2rem, 3vw, 1.7rem);font-weight: 900;}
.bd-defs{display: grid;gap: 10px;margin: 0;}
.bd-defs div{display: grid;grid-template-columns: 140px 1fr;gap: 14px;padding: 12px 0;border-bottom: 1px dashed var(--bd-frost);}
.bd-defs div:last-child{border-bottom: 0;}
.bd-defs dt{font-weight: 800;color: var(--bd-violet);}
.bd-defs dd{margin: 0;}
.bd-limits{margin: 0;padding-left: 20px;}
.bd-limits li{margin-bottom: 10px;}
.bd-limits li::marker{color: var(--bd-sun);}
@keyframes bd-sway{0%,100%{transform: rotate(-4deg);}50%{transform: rotate(4deg);}}
@keyframes bd-float{0%,100%{transform: translateY(0) rotate(-3deg);}50%{transform: translateY(-14px) rotate(3deg);}}
@keyframes bd-flicker{0%{transform: scale(1) rotate(-3deg);}100%{transform: scale(1.12, .92) rotate(3deg);}}
@keyframes bd-pop{0%{transform: scale(.96);}60%{transform: scale(1.02);}100%{transform: scale(1);}}
@media (max-width: 991px){.bd-app{grid-template-columns: 1fr;}.bd-balloon-b,.bd-balloon-c{display: none;}}
@media (max-width: 640px){.bd-hero{padding: 64px 16px 28px;border-radius: 24px;}.bd-balloon{display: none;}.bd-stats{grid-template-columns: repeat(2, minmax(0, 1fr));}.bd-list{grid-template-columns: 1fr;}.bd-row{grid-template-columns: 1fr;}.bd-odds{grid-template-columns: repeat(2, minmax(0, 1fr));}.bd-section{padding: 22px 18px 16px;}.bd-defs div{grid-template-columns: 1fr;gap: 4px;}.bd-actions{flex-wrap: wrap;}}
@media (prefers-reduced-motion: reduce){.bd-bunting span,.bd-balloon,.bd-candles i::before,.bd-card.is-pop{animation: none;}.bd-chip,.bd-go{transition: none;}}