.bgrsvp-app,
.bgrsvp-app * {
	box-sizing: border-box;
}

.bgrsvp-accommodation-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%}
.bgrsvp-accommodation-card{display:grid;gap:7px;overflow:hidden;padding:0 0 12px;color:#fff;text-align:left;border:1px solid rgba(239,196,86,.45);border-radius:15px;background:rgba(39,13,9,.88);cursor:pointer}
.bgrsvp-accommodation-card img{display:block;width:100%;height:145px;object-fit:cover;background:#24110d}
.bgrsvp-accommodation-card strong,.bgrsvp-accommodation-card span{padding:0 13px}
.bgrsvp-accommodation-card strong{font-size:15px;color:#f8d77d}
.bgrsvp-accommodation-card span{font-size:11px;line-height:1.45;color:#f2e8dd}
.bgrsvp-accommodation-card:hover,.bgrsvp-accommodation-card:focus-visible{border-color:#f4ce65;box-shadow:0 0 0 3px rgba(244,206,101,.2);outline:0;transform:translateY(-1px)}
.bgrsvp-accommodation-stay{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%}
.bgrsvp-accommodation-stay label{display:grid;gap:5px;color:#f8d77d;font-size:11px;font-weight:700}
.bgrsvp-accommodation-stay input{width:100%;min-height:45px;padding:9px 10px;border:1px solid rgba(239,196,86,.45);border-radius:10px;background:#fff;color:#21100c}
.bgrsvp-accommodation-stay button{grid-column:1/-1}
@media(max-width:600px){.bgrsvp-accommodation-cards,.bgrsvp-accommodation-stay{grid-template-columns:1fr}.bgrsvp-accommodation-card img{height:130px}}

html.bgrsvp-invitation-page,body.bgrsvp-invitation-page{margin:0!important;padding:0!important;overflow:hidden!important;background:#100e10}
.bgrsvp-invitation-cover{position:fixed;inset:0;z-index:99999;box-sizing:border-box;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:10px;width:100%;height:100vh;height:100svh;height:100dvh;min-width:0;padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));overflow:auto;background:#100e10;color:#fff;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;text-align:center}
.bgrsvp-invitation-cover .bgrsvp-invitation-title{margin:0;max-width:720px;justify-self:center;font-size:18px;font-weight:600;line-height:1.3;letter-spacing:0;overflow-wrap:anywhere;color:#f3e5c3}
.bgrsvp-invitation-art{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;width:100%;height:100%;outline-offset:3px}
.bgrsvp-invitation-art img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;border:0;border-radius:0}
.bgrsvp-invitation-cover .bgrsvp-invitation-open{box-sizing:border-box;display:flex;align-items:center;justify-content:center;justify-self:center;min-height:48px;width:min(100%,420px);padding:10px 16px;border:1px solid #e9cf86;border-radius:6px;background:#d7b35d;color:#181416;font-size:16px;font-weight:700;line-height:1.4;letter-spacing:0;text-decoration:none;overflow-wrap:anywhere}
.bgrsvp-invitation-open:hover{background:#f3dfaa}.bgrsvp-invitation-open:focus-visible,.bgrsvp-invitation-art:focus-visible{outline:3px solid #fff;outline-offset:3px}.bgrsvp-invitation-unavailable{margin:0;max-width:720px;justify-self:center;font-size:15px;line-height:1.5;overflow-wrap:anywhere}.bgrsvp-invitation-cover.is-image-unavailable{grid-template-rows:auto auto;align-content:center;gap:24px}.bgrsvp-invitation-cover.is-image-unavailable .bgrsvp-invitation-art{display:none}
html.bgrsvp-rsvp-page,
body.bgrsvp-rsvp-page {
	margin: 0 !important;
	padding: 0 !important;
	max-width: 100%;
	overflow-x: hidden !important;
	overflow-x: clip !important;
	overscroll-behavior-x: none;
	background-color: #0b0907;
}
html.bgrsvp-rsvp-page { margin-top: 0 !important; }
body.bgrsvp-rsvp-page #wpadminbar { display: none !important; }

.bgrsvp-rsvp-surface {
	background: #0b0907 !important;
	padding: 0 !important;
	margin: 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;
	box-sizing: border-box;
	border: 1px solid #d3a943;
	border-radius: 50%;
	background: #111827;
	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-icon.is-wedding-image {
	width: 72px;
	height: 72px;
	border-radius: 0;
	background: transparent;
}

.bgrsvp-success-icon.is-wedding-image img,
.bgrsvp-production-art.is-wedding-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.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-checkin-passes {
	margin-top: 10px;
	padding: 16px;
	border: 1px solid rgba(215, 179, 93, .36);
	border-radius: 16px;
	background: rgba(255, 255, 255, .96);
	color: #241b0c;
	text-align: center;
}

.bgrsvp-checkin-passes > strong { display: block; color: #6d4a12; font: 700 19px Georgia, serif; }
.bgrsvp-checkin-passes > p { margin: 5px 0 13px; color: #665d50; font-size: 13px; }
.bgrsvp-checkin-pass-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.bgrsvp-checkin-pass { display: grid; gap: 5px; justify-items: center; padding: 12px 8px; border: 1px solid #dfd5c1; border-radius: 12px; background: #fff; }
.bgrsvp-checkin-pass-qr { width: min(100%, 190px); padding: 6px; background: #fff; }
.bgrsvp-checkin-pass-qr svg { display: block; width: 100%; height: auto; }
.bgrsvp-checkin-pass b { overflow-wrap: anywhere; color: #20180c; }
.bgrsvp-checkin-pass small { color: #6d6252; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .08em; }
.bgrsvp-checkin-pass-download { border: 0; border-radius: 8px; padding: .55rem .8rem; background: var(--bgrsvp-accent, #7d2138); color: #fff; font: inherit; font-weight: 700; cursor: pointer; }

@media (max-width: 520px) {
	.bgrsvp-checkin-pass-grid { grid-template-columns: 1fr; }
}

.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-art.is-wedding-image {
	width: 112px;
	height: 112px;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.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-venue-image-message {
	align-items: flex-start;
}

.bgrsvp-venue-image-link {
	display: block;
	max-width: min(100%, 520px);
	overflow: hidden;
	border: 1px solid rgba(215, 179, 93, .45);
	border-radius: 14px;
	background: rgba(0, 0, 0, .18);
}

.bgrsvp-venue-image-link img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 520px;
	object-fit: contain;
}

.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;
	}
}

/* Wedding designs share the existing RSVP controls and validation. */

/* Association AGM: formal navy and gold theme, using the existing RSVP layout. */
.bgrsvp-app.bgrsvp-association{--bgrsvp-burgundy:#102a4c;--bgrsvp-burgundy-dark:#07182e;--bgrsvp-gold:#c9a64f;--bgrsvp-gold-light:#f2dda0;background:linear-gradient(160deg,#06152a 0%,#102f55 55%,#07182e 100%);border-color:rgba(201,166,79,.48);box-shadow:0 24px 70px rgba(3,14,30,.38)}
.bgrsvp-association .bgrsvp-header{background:linear-gradient(135deg,rgba(7,24,46,.98),rgba(18,54,91,.95));border-bottom-color:rgba(201,166,79,.42)}
.bgrsvp-association .bgrsvp-kicker,.bgrsvp-association .bgrsvp-header h2{color:#f5e4ad}
.bgrsvp-association .bgrsvp-progress-bar,.bgrsvp-association .bgrsvp-next,.bgrsvp-association .bgrsvp-review-confirm{background:linear-gradient(135deg,#d7b45b,#a87b24);color:#07182e}
.bgrsvp-association .bgrsvp-bubble{border-color:rgba(201,166,79,.26)}
.bgrsvp-association .bgrsvp-message-user .bgrsvp-bubble{background:#163b66;color:#fff}
.bgrsvp-association-roster{display:grid;gap:14px;width:100%}
.bgrsvp-association-roster-list{display:grid;gap:10px}
.bgrsvp-association-roster-list label{display:grid;grid-template-columns:2rem minmax(0,1fr);align-items:center;gap:6px;color:#4b3a18;font-weight:700}
.bgrsvp-association-roster-list input{width:100%;min-width:0}
@media(max-width:600px){.bgrsvp-association-roster-list label{grid-template-columns:1.6rem minmax(0,1fr)}}
.bgrsvp-app.bgrsvp-wedding{--w-page:#fffaf6;--w-text:#292525;--w-muted:#6c5959;--w-primary:#9f2428;--w-line:#ddc8c3;--w-tint:#fff3ef;--w-header:#fff3df;--w-header-bg:#941f24;--gold:var(--w-primary);--gold-light:var(--w-primary);--ink:var(--w-page);--panel:#fff;display:flex;flex-direction:column;height:var(--bgrsvp-mobile-height,100svh);min-height:680px;padding:0 24px 18px;border:0;background:var(--w-page);color:var(--w-text);box-shadow:none;letter-spacing:0}
.bgrsvp-design-wedding-chinese{--w-art:url('../images/wedding-chinese-header.png')}
.bgrsvp-app.bgrsvp-design-wedding-garden{--w-page:#fff;--w-text:#24362d;--w-muted:#596d61;--w-primary:#28563f;--w-line:#cbd9cf;--w-tint:#f0f6f2;--w-header:#193d2b;--w-header-bg:#fff;--w-art:url('../images/wedding-garden-header.png')}
.bgrsvp-app.bgrsvp-design-wedding-modern{--w-page:#fff;--w-text:#232326;--w-muted:#69636b;--w-primary:#222225;--w-line:#dedade;--w-tint:#f8eeee;--w-header:#fff;--w-header-bg:#17171a;--w-art:url('../images/wedding-modern-header.png')}
.bgrsvp-wedding::before,.bgrsvp-wedding::after,.bgrsvp-wedding>.bgrsvp-glow,.bgrsvp-wedding>.bgrsvp-particles{display:none}
.bgrsvp-wedding .bgrsvp-header{flex:0 0 auto;box-sizing:border-box;width:calc(100% + 48px);max-width:none;min-height:190px;margin:0 -24px 14px;padding:26px 20%;background-color:var(--w-header-bg);background-image:var(--w-art);background-position:center;background-size:cover;color:var(--w-header);overflow-wrap:anywhere}
.bgrsvp-wedding .bgrsvp-header h2{max-width:760px;margin:0 auto;color:var(--w-header);font-size:28px;line-height:1.2;letter-spacing:0}
.bgrsvp-wedding .bgrsvp-kicker,.bgrsvp-wedding .bgrsvp-subtitle{color:var(--w-header);letter-spacing:0}
.bgrsvp-wedding .bgrsvp-couple-names{margin:10px 0 0;color:var(--w-header);font-family:Georgia,"Microsoft YaHei",serif;font-size:24px;line-height:1.25;overflow-wrap:anywhere}
.bgrsvp-wedding .bgrsvp-automated-label{padding:0;border:0;border-radius:0;background:transparent;color:var(--w-header);letter-spacing:0}
.bgrsvp-wedding.has-custom-header-photo .bgrsvp-header,.bgrsvp-wedding.has-custom-header-photo .bgrsvp-header h2,.bgrsvp-wedding.has-custom-header-photo .bgrsvp-kicker,.bgrsvp-wedding.has-custom-header-photo .bgrsvp-subtitle,.bgrsvp-wedding.has-custom-header-photo .bgrsvp-couple-names,.bgrsvp-wedding.has-custom-header-photo .bgrsvp-automated-label{color:#fff;text-shadow:0 2px 8px #000,0 1px 2px #000}
.bgrsvp-design-wedding-modern .bgrsvp-header{padding-left:8%;padding-right:42%;background-position:center;text-align:left}
.bgrsvp-design-wedding-modern.has-couple-photo .bgrsvp-header{display:grid;grid-template-columns:minmax(0,1fr) clamp(118px,18vw,180px);align-items:center;gap:clamp(14px,3vw,34px);padding:20px 8%;background-position:center;text-align:left}
.bgrsvp-header-couple-photo{display:block;width:100%;aspect-ratio:1;border:7px solid rgba(255,255,255,.94);border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px rgba(205,205,205,.92),0 8px 24px rgba(0,0,0,.35)}
.bgrsvp-wedding .bgrsvp-chat{flex:1 1 0;min-height:0;width:min(100%,760px);height:auto;padding-top:10px;scrollbar-color:var(--w-line) transparent}
.bgrsvp-wedding .bgrsvp-progress{width:min(100%,760px);flex:0 0 3px;margin-bottom:4px;background:var(--w-line);box-shadow:none}
.bgrsvp-wedding .bgrsvp-progress-bar{background:var(--w-primary);box-shadow:none}
.bgrsvp-wedding .bgrsvp-composer,.bgrsvp-wedding .bgrsvp-status{width:min(100%,760px);flex:0 0 auto;min-width:0}
.bgrsvp-wedding .bgrsvp-composer{max-height:55%;overflow:auto;padding:4px 3px}
.bgrsvp-wedding .bgrsvp-bubble{border:1px solid var(--w-line);border-radius:8px;background:#fff;color:var(--w-text);box-shadow:none;backdrop-filter:none;font-size:16px;overflow-wrap:anywhere}
.bgrsvp-wedding .bgrsvp-message-user .bgrsvp-bubble{border-color:var(--w-primary);border-radius:8px;background:var(--w-primary);color:#fff}
.bgrsvp-wedding .bgrsvp-avatar{border-color:var(--w-line);background:var(--w-tint);box-shadow:none;animation:none}
.bgrsvp-wedding :is(.bgrsvp-choice,.bgrsvp-next,.bgrsvp-retry,.bgrsvp-download-invitation){min-height:44px;border:1px solid var(--w-primary);border-radius:6px;background:var(--w-primary);color:#fff;box-shadow:none;font-size:16px;letter-spacing:0;white-space:normal;overflow-wrap:anywhere}
.bgrsvp-wedding :is(.bgrsvp-choice,.bgrsvp-next,.bgrsvp-faq-chip,.bgrsvp-download-invitation)::before{display:none}
.bgrsvp-wedding :is(.bgrsvp-choice,.bgrsvp-next,.bgrsvp-retry):hover{transform:none;box-shadow:none;filter:brightness(.93)}
.bgrsvp-wedding .bgrsvp-choice-secondary{background:var(--w-tint);color:var(--w-primary)}
.bgrsvp-wedding :is(.bgrsvp-back,.bgrsvp-card-nav button){min-height:44px;color:var(--w-primary);letter-spacing:0}
.bgrsvp-wedding .bgrsvp-input-row{border-color:var(--w-line);border-radius:6px;background:#fff;box-shadow:none}
.bgrsvp-wedding :is(.bgrsvp-input-row input,.bgrsvp-roster-form input){color:var(--w-text);background:#fff;font-size:16px}
.bgrsvp-wedding .bgrsvp-input-row input::placeholder{color:var(--w-muted)}
.bgrsvp-wedding :is(.bgrsvp-review-card,.bgrsvp-success-card,.bgrsvp-callback-controls,.bgrsvp-roster-form,.bgrsvp-invitation-panel,.bgrsvp-invitation-production){border-color:var(--w-line);border-radius:8px;background:#fff;color:var(--w-text);box-shadow:none}
.bgrsvp-wedding .bgrsvp-success-card.is-wedding{grid-template-columns:72px 1fr}
.bgrsvp-wedding :is(.bgrsvp-review-title,.bgrsvp-review-row b,.bgrsvp-review-row strong,.bgrsvp-success-card strong,.bgrsvp-card-nav strong,.bgrsvp-roster-form label){color:var(--w-text);letter-spacing:0}
.bgrsvp-wedding .bgrsvp-review-row{border-color:var(--w-line)}
.bgrsvp-wedding :is(.bgrsvp-review-row small,.bgrsvp-success-card>span,.bgrsvp-production-note){color:var(--w-muted);letter-spacing:0}
.bgrsvp-wedding :is(.bgrsvp-faq-chip,.bgrsvp-call-now,.bgrsvp-map-link,.bgrsvp-card-nav button){border-color:var(--w-line);background:var(--w-tint);color:var(--w-primary);box-shadow:none}
.bgrsvp-wedding .bgrsvp-status{color:#a1213b}
.bgrsvp-wedding :is(.bgrsvp-review-edit,.bgrsvp-review-field,.bgrsvp-review-cancel){min-height:44px;border-color:var(--w-line);border-radius:6px;background:var(--w-tint);color:var(--w-primary);box-shadow:none}
.bgrsvp-wedding .bgrsvp-review-confirm{min-height:48px;border-color:var(--w-primary);border-radius:6px;background:var(--w-primary);color:#fff;box-shadow:none}
.bgrsvp-app.bgrsvp-wedding.is-review .bgrsvp-review-actions{background:#fff}
.bgrsvp-wedding .bgrsvp-review-picker-prompt{color:var(--w-muted)}
.bgrsvp-wedding.is-review .bgrsvp-composer{max-height:none}
.bgrsvp-wedding .bgrsvp-bubble.is-writing::after{background:var(--w-primary)}
.bgrsvp-app.bgrsvp-wedding.is-complete{height:auto;max-height:none;min-height:100svh}
.bgrsvp-wedding.is-complete .bgrsvp-chat{flex:none;height:auto;max-height:none;overflow:visible}
.bgrsvp-wedding.is-complete .bgrsvp-composer{max-height:none;overflow:visible}
@media(max-width:600px){.bgrsvp-app.bgrsvp-wedding{height:var(--bgrsvp-mobile-height,100svh);min-height:0;padding:0 14px max(10px,env(safe-area-inset-bottom))}.bgrsvp-wedding .bgrsvp-header{width:calc(100% + 28px);min-height:166px;margin:0 -14px 10px;padding:20px 15%}.bgrsvp-wedding .bgrsvp-header h2{font-size:24px}.bgrsvp-wedding .bgrsvp-couple-names{font-size:22px}.bgrsvp-wedding .bgrsvp-kicker{font-size:12px}.bgrsvp-wedding .bgrsvp-subtitle{font-size:12px}.bgrsvp-wedding .bgrsvp-automated-label{font-size:10px;white-space:normal}.bgrsvp-design-wedding-modern .bgrsvp-header{padding-left:5%;padding-right:40%}.bgrsvp-design-wedding-modern.has-couple-photo .bgrsvp-header{grid-template-columns:minmax(0,1fr) 108px;gap:10px;padding:14px 18px}.bgrsvp-header-couple-photo{border-width:4px;box-shadow:0 0 0 2px rgba(205,205,205,.92),0 5px 14px rgba(0,0,0,.32)}.bgrsvp-wedding .bgrsvp-language-choices .bgrsvp-choice{font-size:14px}.bgrsvp-wedding .bgrsvp-composer{max-height:58%}}
.bgrsvp-wedding.is-mobile-layout .bgrsvp-header{width:calc(100% + 28px);margin-left:-14px;margin-right:-14px}
.bgrsvp-wedding.is-keyboard-input .bgrsvp-header,.bgrsvp-wedding.is-roster-mobile .bgrsvp-header{min-height:0;padding-top:8px;padding-bottom:8px}
.bgrsvp-wedding.is-keyboard-input .bgrsvp-couple-names,.bgrsvp-wedding.is-roster-mobile .bgrsvp-couple-names{display:none}
@media(max-height:500px){.bgrsvp-wedding .bgrsvp-header{min-height:0;padding-top:10px;padding-bottom:10px}.bgrsvp-wedding .bgrsvp-header h2{font-size:20px}.bgrsvp-wedding :is(.bgrsvp-subtitle,.bgrsvp-couple-names,.bgrsvp-automated-label){display:none}.bgrsvp-app.bgrsvp-wedding{min-height:0}}
.bgrsvp-app .bgrsvp-message-user.bgrsvp-photo-selected .bgrsvp-bubble{padding:7px 10px;border:1px solid #ddd;border-radius:4px;background:#f4f4f5;color:#555;font-size:13px;font-weight:400;box-shadow:none;cursor:default}
.bgrsvp-wedding-photo-controls>p:empty{display:none}
.bgrsvp-wedding-photo-controls{display:flex;flex-wrap:wrap;gap:10px;min-width:0;width:100%;padding:12px;box-sizing:border-box}
.bgrsvp-wedding-photo-controls>.bgrsvp-choice{min-height:44px;flex:1;min-width:100px}
.bgrsvp-wedding-photo-controls>p{flex-basis:100%;margin:0;font-size:14px;overflow-wrap:anywhere}
.bgrsvp-wedding-photo-confirm{display:flex;flex-basis:100%;flex-wrap:wrap;align-items:center;gap:8px;padding:10px;border:1px solid rgba(151,31,40,.28);border-radius:8px;background:rgba(151,31,40,.08)}
.bgrsvp-wedding-photo-confirm[hidden]{display:none}.bgrsvp-wedding-photo-confirm span{flex:1 0 100%;font-size:13px}.bgrsvp-wedding-photo-confirm .bgrsvp-choice{min-height:38px;flex:1;padding:8px 12px}.bgrsvp-wedding-photo-confirm .is-delete{border-color:#971f28;background:#971f28;color:#fff}
.bgrsvp-wedding-photo-thumbs{display:flex;gap:8px;flex-basis:100%;min-width:0}
.bgrsvp-wedding-photo-thumb{position:relative;display:block;width:72px;height:72px;flex:0 0 72px}
.bgrsvp-wedding-photo-thumb img{display:block;width:100%;height:100%;object-fit:cover;border-radius:6px}
.bgrsvp-wedding-photo-delete{position:absolute;top:-7px;right:-7px;display:grid;width:26px;height:26px;min-width:0;padding:0;place-items:center;color:#fff;border:2px solid #fff;border-radius:50%;background:#971f28;font:700 18px/1 Arial,sans-serif;cursor:pointer;box-shadow:0 2px 7px rgba(0,0,0,.35)}
.bgrsvp-wedding-photo-delete:hover{background:#72151c}.bgrsvp-wedding-photo-delete:focus-visible{outline:3px solid var(--w-primary);outline-offset:2px}.bgrsvp-wedding-photo-delete:disabled{opacity:.55;cursor:wait}
.bgrsvp-wedding-photo-controls>.bgrsvp-wedding-photo-limit{order:10;color:var(--w-muted);font-size:12px}
.bgrsvp-app .bgrsvp-assist-callback{color:#fff!important;background:#242020;border-color:#65554d}
.bgrsvp-app .bgrsvp-assist-callback:hover,.bgrsvp-app .bgrsvp-assist-callback:focus-visible{color:#fff!important;background:#373030}
.bgrsvp-app.is-wedding-event.is-review{display:flex;flex-direction:column;height:var(--bgrsvp-mobile-height,100svh);min-height:0;max-height:var(--bgrsvp-mobile-height,100svh);overflow:hidden}
.bgrsvp-app.is-wedding-event.is-review .bgrsvp-header{min-height:0;max-height:30svh;overflow:hidden}
.bgrsvp-app.is-wedding-event.is-review .bgrsvp-chat{flex:0 0 46px;height:46px;min-height:0;overflow-y:auto}
.bgrsvp-app.is-wedding-event.is-review .bgrsvp-composer{display:flex;flex:1 1 auto;min-height:0;max-height:none;overflow:hidden}
.bgrsvp-app.is-wedding-event.is-review .bgrsvp-review-card{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;width:100%}
.bgrsvp-app.is-wedding-event.is-review .bgrsvp-review-title{flex:0 0 auto}
.bgrsvp-app.is-wedding-event.is-review :is(.bgrsvp-review-list,.bgrsvp-review-picker){flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.bgrsvp-app.is-wedding-event.is-review .bgrsvp-review-actions{position:static;flex:0 0 auto;background:var(--panel,#fff);padding-top:8px}
.bgrsvp-revision-cancel{flex:0 0 auto;align-self:center;max-width:100%;margin:6px;min-height:44px}
.bgrsvp-app.is-review>.bgrsvp-revision-cancel{display:none}
.bgrsvp-relationship-choices{display:flex;flex-wrap:wrap;gap:8px}.bgrsvp-relationship-choices .bgrsvp-choice{flex:1 1 calc(50% - 8px)}
.bgrsvp-checkin-pass>p{margin:3px 0;color:#554c46;text-align:center;font-size:13px;overflow-wrap:anywhere}.bgrsvp-checkin-pass>p:empty{display:none}
.bgrsvp-app :is(.bgrsvp-download-invitation,.bgrsvp-checkin-pass-download){display:inline-flex;align-items:center;justify-content:center;align-self:center;justify-self:center;width:fit-content;max-width:100%;min-height:44px;margin:4px auto;padding:10px 16px;border:0;border-radius:8px;background:var(--bgrsvp-accent,#7d2138);color:#fff;font:inherit;font-size:15px;font-weight:700;line-height:1.2;letter-spacing:0;text-align:center;box-shadow:none;cursor:pointer}
.bgrsvp-app :is(.bgrsvp-download-invitation,.bgrsvp-checkin-pass-download):hover{filter:brightness(1.08)}
.bgrsvp-app :is(.bgrsvp-download-invitation,.bgrsvp-checkin-pass-download):focus-visible{outline:3px solid #555;outline-offset:3px}
.bgrsvp-app :is(.bgrsvp-download-invitation,.bgrsvp-checkin-pass-download):disabled{opacity:.65;cursor:wait}
.bgrsvp-app :is(.bgrsvp-download-invitation,.bgrsvp-checkin-pass-download)::before{display:none}
.bgrsvp-app.is-wedding-event .bgrsvp-input-row{align-items:center;gap:8px;padding:6px;border:1px solid var(--w-line,#a28a5d);border-radius:14px;background:var(--panel,#fff);outline:none!important;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.bgrsvp-app.is-wedding-event .bgrsvp-input-row:focus-within{border-color:var(--w-primary,#d7b35d);outline:none!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--w-primary,#d7b35d) 16%,transparent)}
.bgrsvp-app.is-wedding-event .bgrsvp-input-row input,.bgrsvp-app.is-wedding-event .bgrsvp-input-row input:is(:focus,:focus-visible){min-width:0;min-height:48px;height:48px;margin:0;padding:8px 12px;border:0!important;border-radius:8px;outline:none!important;box-shadow:none!important;background:transparent!important;color:var(--w-text,#f8f3e7);font:inherit;font-size:16px;line-height:1.4;appearance:none}
.bgrsvp-app.is-wedding-event .bgrsvp-input-row .bgrsvp-send{flex:0 0 48px;width:48px;min-width:48px;height:48px;min-height:48px;margin:0;padding:0;border-radius:10px;transform:none}
.bgrsvp-app.is-wedding-event .bgrsvp-bubble{white-space:pre-line}
.bgrsvp-checkin-passes>strong{margin-bottom:12px}
/* Check-in QR cards follow the selected RSVP theme. */
.bgrsvp-app{--pass-primary:#1b1610;--pass-on:#f5dc98;--pass-tint:#fbf5e6;--pass-line:#d7b35d;--pass-text:#20180c;--pass-muted:#6d6252}
.bgrsvp-app.bgrsvp-association{--pass-primary:#102a4c;--pass-on:#f5e4ad;--pass-tint:#f1f4f9;--pass-line:#c9a64f;--pass-text:#0d1f38;--pass-muted:#55627a}
.bgrsvp-app.bgrsvp-wedding{--pass-primary:var(--w-primary);--pass-on:#fff;--pass-tint:var(--w-tint);--pass-line:var(--w-line);--pass-text:var(--w-text);--pass-muted:var(--w-muted)}
.bgrsvp-app.bgrsvp-design-wedding-chinese{--pass-on:#f8dfa0;--pass-line:#d9b36a}
.bgrsvp-app .bgrsvp-checkin-passes{border-color:color-mix(in srgb,var(--pass-line) 60%,transparent);background:#fff;color:var(--pass-text)}
.bgrsvp-app .bgrsvp-checkin-passes>strong{color:var(--pass-primary)}
.bgrsvp-app .bgrsvp-checkin-pass-grid{gap:16px}
.bgrsvp-app .bgrsvp-checkin-pass{gap:0;padding:0 0 18px;overflow:hidden;border:1px solid var(--pass-line);border-radius:18px;background:radial-gradient(120% 60% at 50% 100%,var(--pass-tint),transparent 70%),#fff;box-shadow:0 14px 34px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.05)}
.bgrsvp-app .bgrsvp-checkin-pass>b:first-child{justify-self:stretch;margin:0;padding:22px 18px 0;background:radial-gradient(90% 140% at 50% 0,rgba(255,255,255,.2),transparent 65%),var(--pass-primary);color:var(--pass-on);font:700 21px/1.3 Georgia,"Microsoft YaHei",serif;letter-spacing:.02em;text-align:center}
.bgrsvp-app .bgrsvp-checkin-pass>b:first-child::after{content:"";display:block;width:48px;height:1px;margin:10px auto 0;background:linear-gradient(90deg,transparent,var(--pass-on),transparent)}
.bgrsvp-app .bgrsvp-checkin-pass>b:first-child+p{position:relative;justify-self:stretch;margin:0 0 20px;padding:8px 16px 20px;border-bottom:2px dashed color-mix(in srgb,var(--pass-on) 45%,transparent);background:var(--pass-primary);color:color-mix(in srgb,var(--pass-on) 85%,transparent);font-size:13px;letter-spacing:.14em}
.bgrsvp-app .bgrsvp-checkin-pass>b:first-child+p::before,.bgrsvp-app .bgrsvp-checkin-pass>b:first-child+p::after{content:"";position:absolute;bottom:-12px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px var(--pass-line)}
.bgrsvp-app .bgrsvp-checkin-pass>b:first-child+p::before{left:-12px}.bgrsvp-app .bgrsvp-checkin-pass>b:first-child+p::after{right:-12px}
.bgrsvp-app .bgrsvp-checkin-pass-qr{--c:var(--pass-primary);width:min(76%,210px);padding:12px;border-radius:12px;background:linear-gradient(var(--c),var(--c)) 0 0/22px 3px,linear-gradient(var(--c),var(--c)) 0 0/3px 22px,linear-gradient(var(--c),var(--c)) 100% 0/22px 3px,linear-gradient(var(--c),var(--c)) 100% 0/3px 22px,linear-gradient(var(--c),var(--c)) 0 100%/22px 3px,linear-gradient(var(--c),var(--c)) 0 100%/3px 22px,linear-gradient(var(--c),var(--c)) 100% 100%/22px 3px,linear-gradient(var(--c),var(--c)) 100% 100%/3px 22px,#fff;background-repeat:no-repeat}
.bgrsvp-app .bgrsvp-checkin-pass>b:not(:first-child){margin-top:14px;padding:0 14px;color:var(--pass-text);font:700 21px/1.3 Georgia,"Microsoft YaHei",serif}
.bgrsvp-app .bgrsvp-checkin-pass small{margin-top:8px;padding:4px 16px;border:1px solid var(--pass-line);border-radius:999px;background:#fff;color:var(--pass-primary);font-weight:700;letter-spacing:.3em}
.bgrsvp-app .bgrsvp-checkin-pass>small+p{margin:12px 0 4px;padding:0 16px;color:var(--pass-muted);font-size:12.5px}
.bgrsvp-app .bgrsvp-checkin-pass .bgrsvp-checkin-pass-download{margin-top:10px;border-radius:999px;padding:11px 24px;background:linear-gradient(180deg,color-mix(in srgb,var(--pass-primary) 82%,#fff),var(--pass-primary));color:var(--pass-on);box-shadow:0 8px 18px color-mix(in srgb,var(--pass-primary) 32%,transparent)}
.bgrsvp-app.has-pass-background .bgrsvp-checkin-pass{background:linear-gradient(180deg,transparent 0,transparent 38%,rgba(255,255,255,.9) 62%,rgba(255,255,255,.96) 100%),var(--pass-bg) center/cover no-repeat,#fff}
.bgrsvp-app.has-pass-background .bgrsvp-checkin-pass>b:first-child{background:linear-gradient(180deg,rgba(0,0,0,.5),rgba(0,0,0,.3));color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.45)}
.bgrsvp-app.has-pass-background .bgrsvp-checkin-pass>b:first-child::after{background:linear-gradient(90deg,transparent,#fff,transparent)}
.bgrsvp-app.has-pass-background .bgrsvp-checkin-pass>b:first-child+p{border-bottom-color:rgba(255,255,255,.6);background:rgba(0,0,0,.3);color:rgba(255,255,255,.92);text-shadow:0 1px 3px rgba(0,0,0,.45)}
.bgrsvp-app.has-pass-background .bgrsvp-checkin-pass-qr{box-shadow:0 8px 22px rgba(0,0,0,.22)}
.bgrsvp-app .bgrsvp-invitation-panel>.bgrsvp-download-invitation{grid-column:1/-1;justify-self:center;align-self:center;margin:12px auto 0}
.bgrsvp-app .bgrsvp-photo-question{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.bgrsvp-app .bgrsvp-photo-question>.bgrsvp-choice{width:100%;min-width:0;min-height:44px}

/* One accommodation question at a time, with readable text on each wedding theme. */
.bgrsvp-accommodation-stay{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;width:100%}
.bgrsvp-accommodation-stay label{color:var(--w-text,#f8d77d);font-size:13px}
.bgrsvp-accommodation-stay input{color:#232326;background:#fff;border-color:var(--w-line,#bfa35e);font-size:16px;min-height:48px}
.bgrsvp-accommodation-date-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.bgrsvp-accommodation-date-actions button{grid-column:auto;min-height:48px;white-space:normal}
.bgrsvp-accommodation-options{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;width:100%}
.bgrsvp-accommodation-options .bgrsvp-accommodation-option{display:flex;align-items:center;justify-content:flex-start;gap:12px;width:100%;padding:12px;text-align:left;white-space:normal}
.bgrsvp-accommodation-option>img{flex:0 0 56px;width:56px;height:56px;object-fit:cover;border-radius:7px}
.bgrsvp-accommodation-option>span{min-width:0;display:grid;gap:4px}
.bgrsvp-accommodation-option strong{color:inherit;font-size:14px;line-height:1.4;overflow-wrap:anywhere}
.bgrsvp-accommodation-option small{color:inherit;font-size:12px;font-weight:400;line-height:1.4;overflow-wrap:anywhere}
.bgrsvp-accommodation-quantity{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%}
.bgrsvp-accommodation-quantity button{min-height:48px}
.bgrsvp-accommodation-cancel{min-height:48px;width:100%;margin-top:10px;white-space:normal}
.bgrsvp-accommodation-date-actions .bgrsvp-accommodation-cancel{margin-top:0}
.bgrsvp-accommodation-error{margin:0;color:#b42336;font-size:13px;line-height:1.5}
