.bgrsvp-app,
.bgrsvp-app * {
	box-sizing: border-box;
}

html.bgrsvp-rsvp-page,
body.bgrsvp-rsvp-page {
	max-width: 100%;
	overflow-x: hidden !important;
	overflow-x: clip !important;
	overscroll-behavior-x: none;
	background-color: #0b0907;
}

.bgrsvp-rsvp-surface {
	background: #0b0907 !important;
	padding-bottom: 0 !important;
	margin-bottom: 0 !important;
	min-height: 0 !important;
}
.bgrsvp-rsvp-surface > p:empty { display: none; }

.bgrsvp-app {
	--gold: #d7b35d;
	--gold-light: #f7e6ad;
	--ink: #0a0908;
	--panel: #14110d;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	width: 100vw;
	max-width: none;
	min-height: 680px;
	margin: 0 calc(50% - 50vw);
	padding: clamp(24px, 5vw, 54px);
	color: #f8f3e7;
	border: 1px solid rgba(215, 179, 93, .42);
	border-radius: 0;
	background:
		radial-gradient(circle at 85% 8%, rgba(179, 129, 36, .18), transparent 26%),
		linear-gradient(145deg, #080706, #17130e 56%, #0b0907);
	box-shadow: 0 28px 80px rgba(0, 0, 0, .34), inset 0 0 0 1px rgba(255, 255, 255, .035);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	line-height: 1.5;
}

.bgrsvp-app::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 10px;
	border: 1px solid rgba(215, 179, 93, .14);
	border-radius: 0;
	pointer-events: none;
}

.bgrsvp-header {
	position: relative;
	z-index: 1;
	max-width: 650px;
	margin: 0 auto 22px;
	text-align: center;
}

.bgrsvp-kicker {
	margin: 0 0 10px;
	color: var(--gold);
	font-size: 12px;
	font-weight: 750;
	letter-spacing: .24em;
	text-transform: uppercase;
}

.bgrsvp-kicker span {
	margin: 0 7px;
}

.bgrsvp-header h2 {
	margin: 0;
	color: #fffaf0;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(28px, 5vw, 48px);
	font-weight: 500;
	line-height: 1.08;
	letter-spacing: -.02em;
	text-wrap: balance;
}

.bgrsvp-subtitle {
	margin: 12px 0 0;
	color: rgba(255, 250, 240, .6);
	font-size: 14px;
	letter-spacing: .03em;
}

.bgrsvp-automated-label {
	display: inline-flex;
	margin: 9px 0 0;
	padding: 5px 10px;
	color: rgba(247, 230, 173, .82);
	border: 1px solid rgba(215, 179, 93, .28);
	border-radius: 999px;
	background: rgba(10, 9, 8, .42);
	font-size: 10px;
	font-weight: 750;
	letter-spacing: .035em;
}

.bgrsvp-review-card {
	padding: 18px;
	border: 1px solid rgba(215, 179, 93, .36);
	border-radius: 18px;
	background: linear-gradient(145deg, rgba(35, 29, 20, .96), rgba(14, 12, 9, .96));
	box-shadow: 0 16px 38px rgba(0, 0, 0, .26), inset 0 1px 0 rgba(255, 255, 255, .04);
	animation: bgrsvp-card-reveal .45s ease-out both;
}

.bgrsvp-review-title {
	display: block;
	margin-bottom: 12px;
	color: var(--gold-light);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 20px;
}

.bgrsvp-review-list {
	display: grid;
	gap: 7px;
}

.bgrsvp-review-row {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 12px;
	padding: 9px 0;
	border-bottom: 1px solid rgba(255, 255, 255, .075);
}

.bgrsvp-review-row span,
.bgrsvp-review-row b {
	display: block;
}

.bgrsvp-review-row small {
	display: block;
	margin-bottom: 2px;
	color: rgba(255, 250, 240, .48);
	font-size: 10px;
	font-weight: 750;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.bgrsvp-review-row b {
	color: #fffaf0;
	font-size: 14px;
	word-break: break-word;
}

.bgrsvp-review-edit {
	min-height: 48px;
	padding: 10px 14px;
	color: var(--gold-light);
	border: 1px solid rgba(215, 179, 93, .34);
	border-radius: 8px;
	background: rgba(255, 255, 255, .045);
	font: inherit;
	font-size: 13px;
	font-weight: 750;
	cursor: pointer;
}

.bgrsvp-review-confirm {
	min-height: 48px;
	padding: 10px 14px;
	color: #171006;
	border: 1px solid #f5dc91;
	border-radius: 12px;
	background: linear-gradient(135deg, #f5dc91, #bd8730);
	box-shadow: 0 8px 24px rgba(189, 135, 48, .25);
	font: inherit;
	font-weight: 850;
	cursor: pointer;
}

.bgrsvp-review-actions {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
	gap: 9px;
	margin-top: 15px;
}

.bgrsvp-review-actions .bgrsvp-review-edit,
.bgrsvp-review-actions .bgrsvp-review-confirm {
	width: 100%;
	margin: 0;
}

.bgrsvp-review-picker-prompt {
	margin: 0 0 13px;
	color: rgba(255, 250, 240, .72);
	font-size: 13px;
}

.bgrsvp-review-picker {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
}

.bgrsvp-review-field,
.bgrsvp-review-cancel {
	min-height: 46px;
	padding: 9px 12px;
	color: var(--gold-light);
	border: 1px solid rgba(215, 179, 93, .34);
	border-radius: 10px;
	background: rgba(255, 255, 255, .05);
	font: inherit;
	font-size: 12px;
	font-weight: 750;
	cursor: pointer;
}

.bgrsvp-review-field:hover,
.bgrsvp-review-cancel:hover {
	border-color: rgba(247, 230, 173, .7);
	background: rgba(215, 179, 93, .13);
}

.bgrsvp-review-cancel {
	width: 100%;
	margin-top: 10px;
	color: rgba(255, 250, 240, .7);
	border-color: rgba(255, 255, 255, .14);
}

.bgrsvp-review-edit:focus-visible,
.bgrsvp-review-confirm:focus-visible,
.bgrsvp-review-field:focus-visible,
.bgrsvp-review-cancel:focus-visible {
	outline: 2px solid var(--gold-light);
	outline-offset: 3px;
}

.bgrsvp-progress {
	position: relative;
	z-index: 2;
	overflow: hidden;
	width: min(100%, 590px);
	height: 4px;
	margin: 0 auto 28px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .09);
}

.bgrsvp-progress-bar {
	display: block;
	width: 0;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, #9a6a20, #f5d983, #c9993d);
	box-shadow: 0 0 16px rgba(215, 179, 93, .72);
	transition: width .45s ease;
}

.bgrsvp-chat {
	position: relative;
	z-index: 2;
	overflow-y: auto;
	width: min(100%, 650px);
	height: 292px;
	margin: 0 auto;
	padding: 4px 6px 16px;
	scrollbar-color: rgba(215, 179, 93, .3) transparent;
	scrollbar-width: thin;
}

.bgrsvp-message {
	display: flex;
	align-items: flex-end;
	gap: 9px;
	margin: 0 0 14px;
	animation: bgrsvp-rise .35s ease both;
}

.bgrsvp-message-user {
	justify-content: flex-end;
}

.bgrsvp-avatar {
	display: grid;
	flex: 0 0 38px;
	width: 38px;
	height: 38px;
	place-items: center;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 3px 14px rgba(190, 139, 47, .3);
	overflow: hidden;
}

.bgrsvp-avatar img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	border-radius: inherit;
}

.bgrsvp-bubble {
	max-width: min(82%, 500px);
	padding: 12px 15px;
	border: 1px solid rgba(255, 255, 255, .08);
	border-radius: 18px 18px 18px 5px;
	background: rgba(255, 255, 255, .075);
	box-shadow: 0 7px 20px rgba(0, 0, 0, .14);
	color: #f8f3e7;
	font-size: 15px;
	line-height: 1.55;
	backdrop-filter: blur(8px);
}

.bgrsvp-message-user .bgrsvp-bubble {
	border-color: rgba(231, 198, 113, .35);
	border-radius: 18px 18px 5px;
	background: linear-gradient(135deg, #deb960, #9d6d22);
	color: #130e06;
	font-weight: 650;
}

.bgrsvp-composer,
.bgrsvp-status {
	position: relative;
	z-index: 2;
	width: min(100%, 650px);
	margin-right: auto;
	margin-left: auto;
}

.bgrsvp-controls {
	position: relative;
}

.bgrsvp-input-row {
	display: flex;
	gap: 9px;
	padding: 7px;
	border: 1px solid rgba(215, 179, 93, .3);
	border-radius: 16px;
	background: rgba(255, 255, 255, .055);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04);
}

.bgrsvp-input-row input {
	min-width: 0;
	flex: 1;
	height: 46px;
	margin: 0;
	padding: 0 13px;
	color: #fffaf0;
	border: 0;
	outline: 0;
	background: transparent;
	box-shadow: none;
	font: inherit;
}

.bgrsvp-input-row input::placeholder {
	color: rgba(255, 250, 240, .4);
}

.bgrsvp-input-row input:focus {
	box-shadow: none;
}

.bgrsvp-next,
.bgrsvp-choice,
.bgrsvp-retry {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	margin: 0;
	padding: 10px 18px;
	color: #160f05;
	border: 1px solid rgba(255, 236, 174, .5);
	border-radius: 11px;
	background: linear-gradient(135deg, #f6dc8b, #bd8730);
	box-shadow: 0 5px 18px rgba(188, 131, 40, .2);
	font: inherit;
	font-weight: 750;
	cursor: pointer;
	transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}

.bgrsvp-next:hover,
.bgrsvp-choice:hover,
.bgrsvp-retry:hover {
	filter: brightness(1.07);
	transform: translateY(-2px);
	box-shadow: 0 8px 22px rgba(188, 131, 40, .32);
}

.bgrsvp-choice-secondary {
	color: var(--gold-light);
	border-color: rgba(215, 179, 93, .42);
	background: rgba(255, 255, 255, .06);
	box-shadow: none;
}

.bgrsvp-choice-secondary:hover {
	background: rgba(215, 179, 93, .14);
}

.bgrsvp-next:focus-visible,
.bgrsvp-choice:focus-visible,
.bgrsvp-retry:focus-visible,
.bgrsvp-back:focus-visible,
.bgrsvp-input-row:focus-within {
	outline: 2px solid var(--gold-light);
	outline-offset: 3px;
}

.bgrsvp-next span {
	margin-left: 8px;
}

.bgrsvp-choices {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

.bgrsvp-choice {
	min-height: 54px;
}

.bgrsvp-back {
	margin: 10px 0 0;
	padding: 5px 3px;
	color: rgba(255, 250, 240, .57);
	border: 0;
	background: none;
	font: inherit;
	font-size: 13px;
	cursor: pointer;
}

.bgrsvp-back:hover {
	color: var(--gold-light);
}

.bgrsvp-status {
	min-height: 27px;
	padding-top: 8px;
	color: #f1c9ba;
	font-size: 13px;
}

.bgrsvp-status .bgrsvp-retry {
	min-height: 30px;
	padding: 4px 10px;
	font-size: 12px;
}

.bgrsvp-honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.bgrsvp-typing {
	display: flex;
	gap: 4px;
	align-items: center;
	min-height: 42px;
}

.bgrsvp-typing i {
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--gold);
	animation: bgrsvp-dot 1s infinite ease-in-out;
}

.bgrsvp-typing i:nth-child(2) { animation-delay: .13s; }
.bgrsvp-typing i:nth-child(3) { animation-delay: .26s; }

.bgrsvp-spinner {
	display: inline-block;
	width: 13px;
	height: 13px;
	margin-right: 6px;
	vertical-align: -2px;
	border: 2px solid rgba(215, 179, 93, .25);
	border-top-color: var(--gold);
	border-radius: 50%;
	animation: bgrsvp-spin .7s linear infinite;
}

.bgrsvp-success-card {
	display: grid;
	grid-template-columns: 48px 1fr;
	grid-template-rows: repeat(2, auto);
	gap: 0 13px;
	align-items: center;
	margin-top: 8px;
	padding: 16px;
	border: 1px solid rgba(215, 179, 93, .36);
	border-radius: 16px;
	background: linear-gradient(135deg, rgba(215, 179, 93, .14), rgba(255, 255, 255, .04));
	animation: bgrsvp-rise .5s ease both;
}

.bgrsvp-success-icon {
	display: grid;
	grid-row: 1 / 3;
	width: 48px;
	height: 48px;
	place-items: center;
	color: #151006;
	border-radius: 50%;
	background: linear-gradient(145deg, #fae7a4, #a97525);
	font-size: 22px;
	font-weight: 800;
}

.bgrsvp-success-card strong {
	color: var(--gold-light);
	font-family: Georgia, serif;
	font-size: 19px;
}

.bgrsvp-success-card span:last-child {
	color: rgba(255, 250, 240, .62);
	font-size: 13px;
}

.bgrsvp-success-card a {
	color: var(--gold-light);
	font-weight: 750;
	text-decoration: underline;
}

.bgrsvp-success-icon-no {
	background: linear-gradient(145deg, #eee1c0, #9f8a63);
}

.bgrsvp-invitation-panel {
	display: flex;
	flex-direction: column;
	gap: 9px;
	margin-top: 9px;
	padding: 0;
	border: 0;
	border-radius: 14px;
	background: transparent;
	animation: bgrsvp-rise .5s ease both;
}

.bgrsvp-invitation-preview {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1131 / 1600;
	border: 1px solid rgba(247, 230, 173, .45);
	border-radius: 6px;
	background: rgba(255, 255, 255, .06);
}

.bgrsvp-download-invitation {
	width: 100%;
	margin-top: 6px;
	padding: 7px 11px;
	color: #171005;
	border: 1px solid rgba(255, 236, 174, .5);
	border-radius: 8px;
	background: linear-gradient(135deg, #f6dc8b, #bd8730);
	font: inherit;
	font-size: 12px;
	font-weight: 800;
	cursor: pointer;
}

.bgrsvp-invitation-error {
	margin: 0;
	padding: 8px 10px;
	color: #ffd8cd;
	border: 1px solid rgba(255, 116, 88, .32);
	border-radius: 8px;
	background: rgba(108, 24, 15, .28);
	font-size: 12px;
	text-align: center;
}

.bgrsvp-invitation-production {
	position: relative;
	display: grid;
	gap: 14px;
	overflow: hidden;
	margin-top: 10px;
	padding: 20px 18px 17px;
	border: 1px solid rgba(236, 196, 91, .42);
	border-radius: 16px;
	background:
		radial-gradient(circle at 50% 0, rgba(247, 200, 85, .2), transparent 52%),
		linear-gradient(145deg, rgba(35, 27, 14, .98), rgba(11, 9, 6, .98));
	box-shadow: inset 0 0 40px rgba(220, 165, 44, .06), 0 12px 32px rgba(0, 0, 0, .2);
	text-align: center;
}

.bgrsvp-invitation-production::after {
	position: absolute;
	top: -35%;
	left: -35%;
	width: 35%;
	height: 170%;
	background: linear-gradient(90deg, transparent, rgba(255, 225, 139, .16), transparent);
	content: '';
	transform: rotate(18deg);
	animation: bgrsvp-production-sweep 3.2s ease-in-out infinite;
}

.bgrsvp-production-art {
	position: relative;
	display: grid;
	width: 74px;
	height: 74px;
	margin: 0 auto;
	place-items: center;
	color: #1b1307;
	border: 1px solid rgba(255, 231, 158, .72);
	border-radius: 50%;
	background: radial-gradient(circle at 35% 30%, #fff0b2, #d69c31 58%, #704310);
	box-shadow: 0 0 0 7px rgba(223, 172, 54, .08), 0 0 32px rgba(223, 172, 54, .3);
	font-family: Georgia, serif;
	font-size: 25px;
	font-weight: 800;
	animation: bgrsvp-production-pulse 1.8s ease-in-out infinite;
}

.bgrsvp-production-art i {
	position: absolute;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #ffe99b;
	box-shadow: 0 0 12px #ffc94c;
	animation: bgrsvp-production-orbit 2.4s linear infinite;
}

.bgrsvp-production-art i:nth-child(2) { animation-delay: -.8s; }
.bgrsvp-production-art i:nth-child(3) { animation-delay: -1.6s; }

.bgrsvp-production-stage {
	position: relative;
	z-index: 1;
	min-height: 22px;
	color: #f7dda0;
	font-family: Georgia, serif;
	font-size: 15px;
	letter-spacing: .02em;
}

.bgrsvp-production-track {
	position: relative;
	z-index: 1;
	overflow: hidden;
	height: 7px;
	border: 1px solid rgba(255, 224, 137, .2);
	border-radius: 999px;
	background: rgba(255, 255, 255, .07);
}

.bgrsvp-production-fill {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, #9d651d, #f7d878, #fff0b4);
	box-shadow: 0 0 14px rgba(246, 200, 82, .55);
	transition: width .3s linear;
}

@keyframes bgrsvp-production-sweep {
	0% { left: -42%; opacity: 0; }
	35% { opacity: 1; }
	70%, 100% { left: 112%; opacity: 0; }
}

@keyframes bgrsvp-production-pulse {
	50% { transform: scale(1.06); box-shadow: 0 0 0 12px rgba(223, 172, 54, 0), 0 0 38px rgba(223, 172, 54, .42); }
}

@keyframes bgrsvp-production-orbit {
	from { transform: rotate(0deg) translateX(48px) rotate(0deg); }
	to { transform: rotate(360deg) translateX(48px) rotate(-360deg); }
}

.bgrsvp-map-link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 39px;
	padding: 7px 11px;
	color: var(--gold-light);
	border: 1px solid rgba(215, 179, 93, .5);
	border-radius: 8px;
	background: rgba(215, 179, 93, .1);
	font: inherit;
	font-size: 12px;
	font-weight: 800;
	text-align: center;
	text-decoration: none;
	transition: background .2s ease, transform .2s ease;
}

.bgrsvp-map-link::before {
	content: "⌖";
	margin-right: 7px;
	font-size: 16px;
}

.bgrsvp-map-link:hover,
.bgrsvp-map-link:focus {
	color: #fff5d4;
	background: rgba(215, 179, 93, .2);
	transform: translateY(-1px);
}

.bgrsvp-faq-composer {
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.bgrsvp-faq-quick {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}

.bgrsvp-faq-chip {
	min-height: 36px;
	padding: 7px 11px;
	color: var(--gold-light);
	border: 1px solid rgba(215, 179, 93, .38);
	border-radius: 999px;
	background: rgba(255, 255, 255, .055);
	font: inherit;
	font-size: 12px;
	font-weight: 750;
	cursor: pointer;
	transition: background .2s ease, transform .2s ease;
}

.bgrsvp-faq-chip:hover,
.bgrsvp-faq-chip:focus {
	background: rgba(215, 179, 93, .16);
	transform: translateY(-1px);
}

.bgrsvp-faq-chip.is-finish {
	color: rgba(255, 250, 240, .72);
	border-color: rgba(255, 255, 255, .17);
}

.bgrsvp-map-message {
	align-items: stretch;
}

.bgrsvp-avatar-spacer {
	flex: 0 0 38px;
	width: 38px;
}

.bgrsvp-inline-map {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 13px;
	color: var(--gold-light);
	border: 1px solid rgba(215, 179, 93, .45);
	border-radius: 10px;
	background: rgba(215, 179, 93, .1);
	font-size: 12px;
	font-weight: 800;
	text-decoration: none;
}

.bgrsvp-inline-map::before {
	content: "⌖";
	margin-right: 7px;
	font-size: 16px;
}

.bgrsvp-still-here {
	width: 100%;
}

.bgrsvp-download-invitation:disabled {
	cursor: wait;
	filter: grayscale(.5);
	opacity: .65;
}

.bgrsvp-glow {
	position: absolute;
	z-index: -1;
	width: 300px;
	height: 300px;
	border-radius: 50%;
	background: rgba(202, 148, 52, .11);
	filter: blur(80px);
	pointer-events: none;
}

.bgrsvp-glow-one { top: -180px; right: -110px; }
.bgrsvp-glow-two { bottom: -210px; left: -140px; }

.bgrsvp-particles i {
	position: absolute;
	z-index: -1;
	bottom: -10px;
	left: var(--x);
	width: var(--size);
	height: var(--size);
	border-radius: 50%;
	background: var(--gold-light);
	box-shadow: 0 0 8px rgba(247, 230, 173, .8);
	opacity: 0;
	animation: bgrsvp-float var(--duration) var(--delay) infinite linear;
}

.bgrsvp-confetti {
	position: absolute;
	z-index: 5;
	top: 15%;
	width: 5px;
	height: 11px;
	border-radius: 2px;
	background: linear-gradient(#f9e69e, #a76f1d);
	pointer-events: none;
	animation: bgrsvp-confetti-fall 2s ease-in forwards;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

@keyframes bgrsvp-rise {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: translateY(0); }
}

@keyframes bgrsvp-dot {
	0%, 60%, 100% { opacity: .3; transform: translateY(0); }
	30% { opacity: 1; transform: translateY(-4px); }
}

@keyframes bgrsvp-spin {
	to { transform: rotate(360deg); }
}

@keyframes bgrsvp-float {
	0% { opacity: 0; transform: translateY(0) scale(.7); }
	15% { opacity: .55; }
	80% { opacity: .25; }
	100% { opacity: 0; transform: translateY(-650px) scale(1.2); }
}

@keyframes bgrsvp-confetti-fall {
	0% { opacity: 1; transform: translateY(0) rotate(0); }
	100% { opacity: 0; transform: translateY(var(--fall)) rotate(560deg); }
}

@media (max-width: 600px) {
	.bgrsvp-mobile-canvas-host {
		overflow: visible !important;
		clip-path: none !important;
		contain: none !important;
	}

	.bgrsvp-app {
		display: flex;
		flex-direction: column;
		width: 100vw;
		width: 100dvw;
		max-width: 100vw;
		max-width: 100dvw;
		height: var(--bgrsvp-mobile-height, 100svh);
		min-height: 0;
		max-height: var(--bgrsvp-mobile-height, 100dvh);
		margin-top: 0;
		margin-right: calc(50% - 50vw);
		margin-right: calc(50% - 50dvw);
		margin-bottom: 0;
		margin-left: calc(50% - 50vw);
		margin-left: calc(50% - 50dvw);
		padding: 12px 14px;
		padding: max(12px, env(safe-area-inset-top)) 14px max(12px, env(safe-area-inset-bottom));
		border-radius: 0;
	}

	.bgrsvp-header {
		flex: 0 0 auto;
		margin-bottom: 10px;
	}

	.bgrsvp-kicker {
		margin-bottom: 5px;
		font-size: 9px;
	}

	.bgrsvp-header h2 {
		font-size: clamp(22px, 7vw, 30px);
	}

	.bgrsvp-subtitle {
		margin-top: 5px;
		font-size: 11px;
	}

	.bgrsvp-progress {
		flex: 0 0 4px;
		margin-bottom: 10px;
	}

	.bgrsvp-chat {
		flex: 1 1 auto;
		height: auto;
		min-height: 100px;
		padding-bottom: 8px;
		overscroll-behavior: contain;
	}

	.bgrsvp-bubble {
		max-width: 87%;
		padding: 9px 12px;
		font-size: 14px;
	}

	.bgrsvp-message {
		margin-bottom: 9px;
	}

	.bgrsvp-avatar {
		flex-basis: 34px;
		width: 34px;
		height: 34px;
	}

	.bgrsvp-composer,
	.bgrsvp-status {
		flex: 0 0 auto;
	}

	.bgrsvp-status {
		min-height: 18px;
		padding-top: 4px;
	}

	.bgrsvp-choices {
		grid-template-columns: 1fr;
		gap: 7px;
	}

	.bgrsvp-choice {
		min-height: 44px;
	}

	.bgrsvp-input-row {
		align-items: stretch;
		flex-direction: row;
		padding: 5px;
	}

	.bgrsvp-next {
		width: auto;
		padding-right: 13px;
		padding-left: 13px;
	}

	.bgrsvp-back {
		margin-top: 5px;
	}

	.bgrsvp-invitation-panel {
		min-width: 0;
		max-width: 100%;
		gap: 7px;
		padding: 0;
	}

	.bgrsvp-invitation-preview {
		width: 100%;
		max-width: 100%;
	}

	.bgrsvp-download-invitation {
		margin-top: 3px;
		padding: 6px 9px;
	}

	.bgrsvp-faq-input {
		flex-direction: row;
	}

	.bgrsvp-faq-quick {
		gap: 6px;
	}

	.bgrsvp-faq-chip {
		flex: 1 1 calc(50% - 6px);
		padding: 6px 8px;
	}

	.bgrsvp-avatar-spacer {
		flex-basis: 34px;
		width: 34px;
	}

	.bgrsvp-app.is-review {
		padding-bottom: max(12px, env(safe-area-inset-bottom));
	}

	.bgrsvp-app.is-review .bgrsvp-header {
		margin-bottom: 6px;
	}

	.bgrsvp-app.is-review .bgrsvp-kicker,
	.bgrsvp-app.is-review .bgrsvp-subtitle,
	.bgrsvp-app.is-review .bgrsvp-automated-label {
		display: none;
	}

	.bgrsvp-app.is-review .bgrsvp-header h2 {
		font-size: clamp(19px, 5.6vw, 24px);
		line-height: 1.08;
	}

	.bgrsvp-app.is-review .bgrsvp-progress {
		margin-bottom: 6px;
	}

	.bgrsvp-app.is-review .bgrsvp-chat {
		flex: 0 0 76px;
		height: 76px;
		min-height: 0;
		padding-bottom: 4px;
	}

	.bgrsvp-app.is-review .bgrsvp-composer {
		display: flex;
		flex: 1 1 auto;
		min-height: 0;
		overflow: hidden;
	}

	.bgrsvp-app.is-review .bgrsvp-review-card {
		display: flex;
		width: 100%;
		min-height: 0;
		padding: 14px 14px max(12px, env(safe-area-inset-bottom));
		flex-direction: column;
	}

	.bgrsvp-app.is-review .bgrsvp-review-title {
		flex: 0 0 auto;
		margin-bottom: 8px;
		font-size: 18px;
	}

	.bgrsvp-app.is-review .bgrsvp-review-list,
	.bgrsvp-app.is-review .bgrsvp-review-picker {
		min-height: 0;
		overflow-y: auto;
		overscroll-behavior: contain;
		scrollbar-color: rgba(215, 179, 93, .35) transparent;
	}

	.bgrsvp-app.is-review .bgrsvp-review-list {
		flex: 1 1 auto;
	}

	.bgrsvp-app.is-review .bgrsvp-review-row {
		padding: 7px 0;
	}

	.bgrsvp-app.is-review .bgrsvp-review-actions {
		position: sticky;
		z-index: 3;
		bottom: 0;
		flex: 0 0 auto;
		margin-top: 8px;
		padding-top: 8px;
		background: linear-gradient(180deg, rgba(18, 15, 11, 0), #12100c 22%);
	}

	.bgrsvp-app.is-review .bgrsvp-review-picker-card .bgrsvp-review-picker {
		flex: 1 1 auto;
		grid-template-columns: 1fr;
	}

	.bgrsvp-app.is-review .bgrsvp-review-picker-prompt,
	.bgrsvp-app.is-review .bgrsvp-review-cancel {
		flex: 0 0 auto;
	}

	.bgrsvp-app.is-review .bgrsvp-status {
		min-height: 0;
		padding-top: 4px;
	}

	.bgrsvp-app.is-complete .bgrsvp-header {
		display: none;
	}

	.bgrsvp-app.is-complete {
		height: auto;
		min-height: 0;
		max-height: none;
		overflow: hidden;
		scroll-margin-top: 105px;
	}

	.bgrsvp-app.is-complete .bgrsvp-progress {
		margin-bottom: 6px;
	}

	.bgrsvp-app.is-complete .bgrsvp-chat {
		flex: none;
		height: auto;
		min-height: 0;
		overflow: visible;
	}

	.bgrsvp-app.is-complete .bgrsvp-composer {
		flex: none;
		height: auto;
		padding-right: 0;
		overflow: visible;
	}

	.bgrsvp-app.is-complete .bgrsvp-status {
		display: none;
	}
}

/* v1.7.2 direct office call action */
.bgrsvp-call-now {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	min-height: 44px;
	padding: 10px 18px;
	color: #fff !important;
	border: 1px solid rgba(255, 255, 255, .24);
	border-radius: 999px;
	background: linear-gradient(135deg, #28d66f, #15944a);
	box-shadow: 0 8px 24px rgba(37, 211, 102, .25);
	font-weight: 800;
	text-decoration: none !important;
	transition: transform .2s ease, filter .2s ease, box-shadow .2s ease;
}

.bgrsvp-call-now:hover {
	color: #fff;
	filter: brightness(1.06);
	transform: translateY(-2px);
	box-shadow: 0 11px 28px rgba(37, 211, 102, .35);
}

.bgrsvp-call-now:focus-visible {
	outline: 2px solid var(--gold-light);
	outline-offset: 3px;
}

.bgrsvp-call-now svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
}

.bgrsvp-call-message {
	animation: bgrsvp-card-reveal .38s ease-out both;
}

.bgrsvp-assistance-message {
	align-items: stretch;
	animation: bgrsvp-card-reveal .4s ease-out both;
}

.bgrsvp-assistance-panel {
	display: grid;
	width: min(100%, 500px);
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
}

.bgrsvp-assist {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	margin: 0;
	padding: 9px 11px;
	border-radius: 12px;
	font: inherit;
	font-size: 13px;
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
	text-decoration: none !important;
	cursor: pointer;
	transition: transform .2s ease, filter .2s ease, box-shadow .2s ease;
}

.bgrsvp-assist:hover {
	transform: translateY(-2px);
	filter: brightness(1.07);
}

.bgrsvp-assist:focus-visible {
	outline: 2px solid var(--gold-light);
	outline-offset: 3px;
}

.bgrsvp-assist-call {
	color: #181006 !important;
	border: 1px solid #f2d486;
	background: linear-gradient(135deg, #f5dc91, #bd8730);
	box-shadow: 0 6px 18px rgba(190, 137, 48, .23);
}

.bgrsvp-assist-whatsapp {
	color: #fff !important;
	border: 1px solid rgba(255, 255, 255, .2);
	background: linear-gradient(135deg, #2bd972, #148f46);
	box-shadow: 0 6px 18px rgba(37, 211, 102, .24);
}

.bgrsvp-assist-callback {
	color: var(--gold-light);
	border: 1px solid rgba(215, 179, 93, .54);
	background: rgba(17, 14, 10, .9);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .035);
}

@media (max-width: 600px) {
	.bgrsvp-assistance-panel {
		grid-template-columns: 1fr;
	}

	.bgrsvp-assist {
		min-height: 43px;
	}
}

@media (max-width: 600px) and (max-height: 520px) {
	.bgrsvp-kicker,
	.bgrsvp-subtitle {
		display: none;
	}

	.bgrsvp-header {
		margin-bottom: 5px;
	}

	.bgrsvp-header h2 {
		font-size: 19px;
	}

	.bgrsvp-progress {
		margin-bottom: 5px;
	}

	.bgrsvp-chat {
		min-height: 62px;
	}

	.bgrsvp-invitation-panel {
		padding: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.bgrsvp-app *,
	.bgrsvp-app *::before,
	.bgrsvp-app *::after {
		scroll-behavior: auto !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}

/* Company invitation roster and multi-card carousel. */
.bgrsvp-app.bgrsvp-allocated{overflow:clip}
.bgrsvp-allocated .bgrsvp-review-row>span{min-width:0}
.bgrsvp-allocated .bgrsvp-card-nav{width:100%}
.bgrsvp-allocated .bgrsvp-invitation-preview[hidden]{display:none}
.bgrsvp-person-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:10px;max-height:210px;overflow:auto;padding:2px}
.bgrsvp-roster-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px;border:1px solid rgba(213,170,76,.35);border-radius:18px;background:rgba(12,9,5,.78);max-height:260px;overflow:auto}
.bgrsvp-roster-form label{display:grid;gap:5px;color:#dfc783;font-size:12px;font-weight:700;letter-spacing:.06em}
.bgrsvp-roster-form input{width:100%;min-width:0;border:1px solid rgba(213,170,76,.38);border-radius:11px;background:#18130d;color:#fff;padding:11px 12px;font:inherit}
.bgrsvp-roster-form .bgrsvp-send{grid-column:1/-1;justify-self:end}
.bgrsvp-card-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin:10px 0}
.bgrsvp-card-nav button{border:1px solid rgba(213,170,76,.55);border-radius:999px;background:#1d160d;color:#f7df9a;padding:9px 12px;font-weight:700}
.bgrsvp-card-nav button:last-child{justify-self:end}.bgrsvp-card-nav button:disabled{opacity:.35}
.bgrsvp-card-nav strong{color:#f7df9a;white-space:nowrap}
@media(max-width:600px){.bgrsvp-roster-form{grid-template-columns:1fr;max-height:32dvh}.bgrsvp-roster-form .bgrsvp-send{grid-column:1}.bgrsvp-card-nav{font-size:12px}.bgrsvp-card-nav button{padding:8px}}

/* v1.7.1 language selector and WhatsApp-style send control */
/* v1.9.3: roster layout has its own space budget, not a vh-limited form. */
.bgrsvp-roster-form { display:flex; flex-direction:column; overflow:hidden; }
.bgrsvp-roster-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; overflow-y:auto; min-height:0; overscroll-behavior:contain; }
.bgrsvp-roster-fields input { font-size:16px; min-height:46px; }
.bgrsvp-roster-actions { display:flex; flex:0 0 auto; justify-content:flex-end; align-items:center; gap:12px; }
.bgrsvp-roster-actions .bgrsvp-back { margin:0 auto 0 0; max-width:calc(100% - 60px); white-space:normal; }
.bgrsvp-roster-confirm { display:grid; flex:0 0 auto; grid-template-columns:1fr 1fr; gap:8px; }
.bgrsvp-roster-confirm[hidden] { display:none; }
.bgrsvp-roster-confirm button { min-width:0; padding:8px; font-size:13px; }
.bgrsvp-allocated.is-mobile-layout:not(.is-complete) {
	display:flex; flex-direction:column; height:var(--bgrsvp-mobile-height,100dvh);
	min-height:0; max-height:var(--bgrsvp-mobile-height,100dvh);
	padding:10px 14px max(8px,env(safe-area-inset-bottom));
}
.bgrsvp-allocated.is-mobile-layout .bgrsvp-chat { flex:1 1 auto; height:auto; min-height:0; }
.bgrsvp-allocated.is-mobile-layout input { font-size:16px; }
.bgrsvp-allocated.is-roster-mobile .bgrsvp-kicker,
.bgrsvp-allocated.is-roster-mobile .bgrsvp-subtitle,
.bgrsvp-allocated.is-roster-mobile .bgrsvp-automated-label,
.bgrsvp-allocated.is-keyboard-input .bgrsvp-kicker,
.bgrsvp-allocated.is-keyboard-input .bgrsvp-subtitle,
.bgrsvp-allocated.is-keyboard-input .bgrsvp-automated-label { display:none; }
.bgrsvp-allocated.is-roster-mobile .bgrsvp-header,
.bgrsvp-allocated.is-keyboard-input .bgrsvp-header { margin-bottom:6px; }
.bgrsvp-allocated.is-roster-mobile .bgrsvp-header h2,
.bgrsvp-allocated.is-keyboard-input .bgrsvp-header h2 { font-size:20px; line-height:1.12; }
.bgrsvp-allocated.is-roster-mobile .bgrsvp-chat { flex:1 1 90px; min-height:32px; max-height:150px; }
.bgrsvp-allocated.is-roster-mobile .bgrsvp-composer { flex:0 1 auto; min-height:0; display:flex; }
.bgrsvp-allocated.is-roster-mobile .bgrsvp-roster-form { width:100%; max-height:none; min-height:0; padding:10px; gap:8px; }
.bgrsvp-allocated.is-roster-mobile .bgrsvp-roster-fields { grid-template-columns:1fr; }
.bgrsvp-allocated.is-roster-mobile .bgrsvp-roster-fields label { font-size:13px; gap:5px; }
.bgrsvp-allocated.is-roster-mobile .bgrsvp-status:empty,
.bgrsvp-allocated.is-mobile-layout .bgrsvp-status:empty { display:none; }
.bgrsvp-allocated.is-tight-viewport:not(.is-complete) .bgrsvp-header { display:none; }
.bgrsvp-allocated.is-tight-viewport .bgrsvp-progress { flex:0 0 3px; margin-bottom:4px; }
.bgrsvp-allocated.is-tight-viewport.is-roster-mobile .bgrsvp-chat { flex:0 1 50px; min-height:0; }
.bgrsvp-allocated.is-tiny-viewport.is-roster-mobile .bgrsvp-chat { display:none; }
.bgrsvp-allocated.is-tight-viewport.is-roster-mobile .bgrsvp-composer { flex:1 1 auto; }
.bgrsvp-app.is-complete { height:auto; min-height:0; max-height:none; margin-bottom:0; padding-bottom:max(12px,env(safe-area-inset-bottom)); }
.bgrsvp-app.is-complete .bgrsvp-chat { flex:none; height:auto; min-height:0; max-height:none; }
.bgrsvp-app.is-complete .bgrsvp-composer:empty,
.bgrsvp-app.is-complete .bgrsvp-status:empty { display:none; }
.bgrsvp-allocated.is-mobile-layout.is-review .bgrsvp-chat { flex:0 0 60px; min-height:0; }
.bgrsvp-allocated.is-mobile-layout.is-review .bgrsvp-composer { flex:1 1 auto; min-height:0; }

.bgrsvp-language-choices {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.bgrsvp-language-choices .bgrsvp-choice {
	min-width: 0;
	padding-right: 8px;
	padding-left: 8px;
	white-space: nowrap;
}

.bgrsvp-next.bgrsvp-send {
	flex: 0 0 46px;
	width: 46px;
	height: 46px;
	min-height: 46px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #25d366;
	box-shadow: 0 5px 18px rgba(37, 211, 102, .3);
}

.bgrsvp-next.bgrsvp-send:hover {
	background: #20bd5a;
	box-shadow: 0 8px 23px rgba(37, 211, 102, .4);
}

.bgrsvp-next.bgrsvp-send svg {
	display: block;
	width: 23px;
	height: 23px;
	margin: 0;
	fill: #fff;
	transform: translateX(1px);
}

.bgrsvp-next.bgrsvp-send::before {
	display: none;
}

@media (max-width: 600px) {
	.bgrsvp-language-choices {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 5px;
	}

	.bgrsvp-language-choices .bgrsvp-choice {
		min-height: 42px;
		padding: 7px 4px;
		font-size: 12px;
	}

	.bgrsvp-next.bgrsvp-send {
		flex-basis: 44px;
		width: 44px;
		height: 44px;
		min-height: 44px;
		padding: 0;
	}
}

/* v1.7 conversation motion */
.bgrsvp-app::after {
	content: "";
	position: absolute;
	z-index: 0;
	inset: -25% -15%;
	pointer-events: none;
	background: linear-gradient(112deg, transparent 25%, rgba(244, 194, 83, .06) 44%, rgba(255, 232, 171, .15) 50%, rgba(244, 194, 83, .05) 56%, transparent 74%);
	transform: translate3d(-22%, 0, 0) rotate(-4deg);
	animation: bgrsvp-spotlight 12s ease-in-out infinite alternate;
}

.bgrsvp-avatar {
	animation: bgrsvp-avatar-breathe 3.4s ease-in-out infinite;
}

.bgrsvp-message-user {
	animation: bgrsvp-user-arrive .32s cubic-bezier(.2, .8, .2, 1) both;
}

.bgrsvp-next,
.bgrsvp-choice,
.bgrsvp-faq-chip,
.bgrsvp-download-invitation {
	position: relative;
	overflow: hidden;
}

.bgrsvp-next::before,
.bgrsvp-choice::before,
.bgrsvp-faq-chip::before,
.bgrsvp-download-invitation::before {
	content: "";
	position: absolute;
	top: -80%;
	left: -45%;
	width: 30%;
	height: 260%;
	pointer-events: none;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .46), transparent);
	transform: rotate(18deg);
	animation: bgrsvp-shimmer 4.8s ease-in-out infinite;
}

.bgrsvp-bubble.is-writing::after {
	content: "";
	display: inline-block;
	width: 1px;
	height: 1em;
	margin-left: 3px;
	vertical-align: -.12em;
	background: #e9c268;
	animation: bgrsvp-caret .65s steps(1) infinite;
}

.bgrsvp-callback-controls,
.bgrsvp-invitation-panel.is-revealing {
	animation: bgrsvp-card-reveal .65s cubic-bezier(.2, .8, .2, 1) both;
}

@keyframes bgrsvp-spotlight { to { transform: translate3d(22%, 1%, 0) rotate(5deg); } }
@keyframes bgrsvp-avatar-breathe { 50% { transform: scale(1.045); box-shadow: 0 0 0 7px rgba(240, 190, 76, 0), 0 0 28px rgba(240, 190, 76, .34); } }
@keyframes bgrsvp-user-arrive { from { opacity: 0; transform: translate3d(16px, 8px, 0); } }
@keyframes bgrsvp-shimmer { 0%, 58% { left: -45%; opacity: 0; } 66% { opacity: .8; } 82%, 100% { left: 120%; opacity: 0; } }
@keyframes bgrsvp-caret { 50% { opacity: 0; } }
@keyframes bgrsvp-card-reveal { from { opacity: 0; transform: translate3d(0, 24px, 0) scale(.97); filter: brightness(.72); } }

@media (prefers-reduced-motion: reduce) {
	.bgrsvp-app::after,
	.bgrsvp-avatar,
	.bgrsvp-message-user,
	.bgrsvp-bubble.is-writing::after,
	.bgrsvp-next::before,
	.bgrsvp-choice::before,
	.bgrsvp-faq-chip::before,
	.bgrsvp-download-invitation::before,
	.bgrsvp-callback-controls,
	.bgrsvp-invitation-panel.is-revealing {
		animation: none !important;
	}

	.bgrsvp-invitation-production::after,
	.bgrsvp-production-art,
	.bgrsvp-production-art i {
		animation: none !important;
	}

	.bgrsvp-production-fill {
		transition: none !important;
	}
}
