.csn-guest-wrap {
	max-width: 44rem;
	margin: 0 auto;
	padding: var(--csn-ui-space-5, 1.5rem) var(--csn-ui-space-5, 1.5rem) var(--csn-ui-space-6, 2rem);
	color: var(--csn-ui-fg, #1a1a1a);
	background: var(--csn-ui-bg, #fff);
}
.csn-guest-header {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--csn-ui-space-3, 0.75rem) var(--csn-ui-space-5, 1.5rem);
	margin-bottom: 1.75rem;
	border-bottom: 1px solid var(--csn-ui-border, rgba(0,0,0,.12));
	padding-bottom: 1rem;
}
.csn-guest-brand {
	margin: 0;
	font-size: var(--csn-ui-fs-h2, 1.35rem);
	font-weight: 700;
	letter-spacing: -0.02em;
}
.csn-guest-nav {
	display: flex;
	flex-wrap: wrap;
	gap: var(--csn-ui-space-3, 0.75rem) var(--csn-ui-space-4, 1rem);
}
.csn-guest-nav a {
	color: var(--csn-ui-amber-ink, #9C6A16);
	text-decoration: none;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}
.csn-guest-main h1 {
	font-size: var(--csn-ui-fs-h1, 1.75rem);
	margin: 0 0 var(--csn-ui-space-2, 0.5rem);
	letter-spacing: -0.02em;
}
.csn-guest-lede,
.csn-guest-meta {
	color: var(--csn-ui-muted, #555);
	margin: var(--csn-ui-space-1, 0.25rem) 0;
}
.csn-guest-events {
	list-style: none;
	padding: 0;
	margin: var(--csn-ui-space-5, 1.5rem) 0;
	display: grid;
	gap: var(--csn-ui-space-4, 1rem);
}
.csn-guest-event {
	padding: var(--csn-ui-space-4, 1rem) 0;
	border-bottom: 1px solid var(--csn-ui-border, rgba(0,0,0,.1));
}
.csn-guest-event a {
	color: inherit;
	text-decoration: none;
}
.csn-guest-event a:hover strong {
	color: var(--csn-ui-amber-ink, #9C6A16);
}
.csn-guest-cta,
.csn-guest-form button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: var(--csn-ui-space-2, 0.5rem) var(--csn-ui-space-4, 1rem);
	border-radius: 8px;
	border: 0;
	background: var(--csn-ui-accent, #FFAA2B);
	color: var(--csn-ui-on-accent, #000);
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
}
.csn-guest-cta-row {
	display: flex;
	flex-wrap: wrap;
	gap: var(--csn-ui-space-3, 0.75rem);
	margin: var(--csn-ui-space-5, 1.5rem) 0;
}
.csn-guest-cta--secondary {
	background: transparent;
	color: var(--csn-ui-amber-ink, #9C6A16);
	box-shadow: inset 0 0 0 1.5px var(--csn-ui-amber-ink, #9C6A16);
}
.csn-guest-landing {
	margin-bottom: 1rem;
}
.csn-guest-invite-banner {
	margin: 0 0 var(--csn-ui-space-5, 1.5rem);
	padding: var(--csn-ui-space-4, 1rem) var(--csn-ui-space-5, 1.5rem);
	border-radius: var(--csn-ui-radius-sm, 8px);
	border: 1px solid var(--csn-ui-line, rgba(0,0,0,.1));
	border-left: 3px solid var(--csn-ui-amber-ink, #9C6A16);
	background: var(--csn-ui-card, #fff);
}
.csn-guest-invite-banner p {
	margin: 0;
	font-size: var(--csn-ui-fs-h2, 1.2rem);
	font-weight: 650;
	color: var(--csn-ui-ink, #1C1917);
}
.csn-guest-invite-banner__sub {
	margin-top: var(--csn-ui-space-1, 0.25rem) !important;
	font-size: var(--csn-ui-fs-sm, 0.9rem) !important;
	font-weight: 400 !important;
	color: var(--csn-ui-muted, #57534e) !important;
}
.csn-guest-funnel {
	margin: var(--csn-ui-space-5, 1.5rem) 0 var(--csn-ui-space-5, 1.5rem);
	padding: var(--csn-ui-space-5, 1.5rem) var(--csn-ui-space-5, 1.5rem) var(--csn-ui-space-5, 1.5rem);
	border-radius: var(--csn-ui-radius-sm, 8px);
	border: 1px solid var(--csn-ui-line, rgba(0,0,0,.1));
	border-top: 3px solid var(--csn-ui-amber-ink, #9C6A16);
	background: var(--csn-ui-card, #fff);
}
.csn-guest-funnel__eyebrow {
	margin: 0 0 var(--csn-ui-space-1, 0.25rem);
	font-size: var(--csn-ui-fs-eyebrow, 0.75rem);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--csn-ui-amber-ink, #9C6A16);
}
.csn-guest-funnel__title {
	margin: 0 0 var(--csn-ui-space-2, 0.5rem);
	font-size: var(--csn-ui-fs-h2, 1.2rem);
	font-weight: 650;
	color: var(--csn-ui-ink, #1C1917);
}
.csn-guest-funnel__stages {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--csn-ui-space-3, 0.75rem) var(--csn-ui-space-4, 1rem);
	list-style: none;
	padding: 0;
	margin: var(--csn-ui-space-3, 0.75rem) 0;
}
.csn-guest-funnel__stages strong,
.csn-guest-funnel__stages .csn-ui-tile__value {
	display: block;
	font-size: var(--csn-ui-fs-title, 1.55rem);
	font-weight: 650;
	line-height: 1.2;
	font-variant-numeric: tabular-nums;
	color: var(--csn-ui-ink, #1C1917);
}
.csn-guest-funnel__conv,
.csn-guest-funnel__sources {
	font-size: var(--csn-ui-fs-sm, 0.9rem);
	line-height: 1.5;
	color: var(--csn-ui-muted, #57534e);
	margin: var(--csn-ui-space-2, 0.5rem) 0;
}

@media (max-width: 640px) {
	.csn-guest-funnel__stages {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Core Forms on the porch — labels above, sized inputs, calm states */
.csn-guest-shell .csn-core-form,
.csn-guest-main .csn-core-form {
	display: grid;
	gap: var(--csn-ui-space-3, 0.75rem);
	margin-top: 1.25rem;
	max-width: 28rem;
}
.csn-guest-shell .csn-core-form__title {
	font-size: var(--csn-ui-fs-subtitle, 1.125rem);
	font-weight: 650;
	margin: 0;
}
.csn-guest-shell .csn-core-form__desc {
	margin: 0;
	color: var(--csn-ui-muted, #555);
}
.csn-guest-shell .csn-core-form__field {
	margin: 0;
}
.csn-guest-shell .csn-core-form__field label {
	display: flex;
	flex-direction: column;
	gap: var(--csn-ui-space-2, 0.5rem);
	font-weight: 550;
	font-size: var(--csn-ui-fs-body, 1rem);
}
.csn-guest-shell .csn-core-form__field input[type="text"],
.csn-guest-shell .csn-core-form__field input[type="email"],
.csn-guest-shell .csn-core-form__field textarea {
	min-height: 44px;
	padding: var(--csn-ui-space-2, 0.5rem) var(--csn-ui-space-3, 0.75rem);
	border: 1px solid var(--csn-ui-border, #ccc);
	border-radius: 8px;
	background: var(--csn-ui-surface, #fff);
	color: var(--csn-ui-fg, inherit);
	font: inherit;
}
.csn-guest-shell .csn-core-form__field textarea {
	min-height: 6rem;
	resize: vertical;
}
.csn-guest-shell .csn-core-form__field input:focus,
.csn-guest-shell .csn-core-form__field textarea:focus {
	outline: 2px solid var(--csn-ui-accent, #b45309);
	outline-offset: 1px;
}
.csn-guest-shell .csn-core-form__field input:invalid:not(:placeholder-shown),
.csn-guest-shell .csn-core-form__field textarea:invalid:not(:placeholder-shown) {
	border-color: var(--csn-ui-danger, #b91c1c);
}
.csn-guest-shell .csn-core-form__field label:has(input[type="checkbox"]) {
	flex-direction: row;
	align-items: flex-start;
	gap: var(--csn-ui-space-2, 0.5rem);
	font-weight: 500;
}
.csn-guest-shell .csn-core-form__field input[type="checkbox"] {
	width: 1.15rem;
	height: 1.15rem;
	margin-top: 0.15rem;
	flex-shrink: 0;
}
.csn-guest-shell .csn-core-form button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: var(--csn-ui-space-2, 0.5rem) var(--csn-ui-space-4, 1rem);
	border-radius: 8px;
	border: 0;
	background: var(--csn-ui-accent, #FFAA2B);
	color: var(--csn-ui-on-accent, #000);
	font-weight: 600;
	cursor: pointer;
}
.csn-guest-shell .csn-core-form__status {
	margin: 0;
	padding: var(--csn-ui-space-2, 0.5rem) var(--csn-ui-space-3, 0.75rem);
	border-radius: 8px;
	background: var(--csn-ui-surface, #f3f3f3);
}
.csn-guest-form label {
	display: flex;
	flex-direction: column;
	gap: var(--csn-ui-space-2, 0.5rem);
	margin-bottom: 0.75rem;
	font-weight: 500;
}
.csn-guest-form input[type="text"],
.csn-guest-form input[type="email"],
.csn-guest-form textarea {
	min-height: 44px;
	padding: var(--csn-ui-space-2, 0.5rem) var(--csn-ui-space-2, 0.5rem);
	border: 1px solid var(--csn-ui-border, #ccc);
	border-radius: 8px;
	background: var(--csn-ui-surface, #fff);
	color: inherit;
}
.csn-guest-form label:has(input[type="checkbox"]) {
	flex-direction: row;
	align-items: flex-start;
}
.csn-guest-hp {
	position: absolute !important;
	left: -9999px !important;
	height: 0 !important;
	width: 0 !important;
	overflow: hidden !important;
}
.csn-guest-status {
	margin-top: 0.75rem;
}
.csn-guest-alt {
	margin-top: 1.5rem;
	font-size: var(--csn-ui-fs-body, 1rem);
}
.csn-guest-notice {
	padding: var(--csn-ui-space-4, 1rem);
	border-radius: 8px;
	background: var(--csn-ui-surface, #f6f6f6);
}
.csn-core-form {
	margin-top: 1.25rem;
}
@media (prefers-color-scheme: dark) {
	body.csn-guest-shell {
		background: var(--csn-ui-bg, #111);
		color: var(--csn-ui-fg, #f2f2f2);
	}
}

/* PROD-6 Foyer */
.csn-guest-foyer-brand {
	margin: 0 0 var(--csn-ui-space-2, 0.5rem);
	font-size: var(--csn-ui-fs-h1, 1.75rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.15;
}
.csn-guest-shell--foyer .csn-guest-foyer h1 {
	font-size: var(--csn-ui-fs-h2, 1.35rem);
	font-weight: 600;
}
.csn-guest-foyer-impressions {
	list-style: none;
	padding: 0;
	margin: var(--csn-ui-space-5, 1.5rem) 0;
	display: grid;
	gap: var(--csn-ui-space-3, 0.75rem);
}
.csn-guest-foyer-impressions li {
	padding: var(--csn-ui-space-3, 0.75rem) 0;
	border-bottom: 1px solid var(--csn-ui-border, rgba(0,0,0,.1));
	font-size: var(--csn-ui-fs-body, 1.05rem);
	line-height: 1.45;
}
.csn-guest-cta-row--single {
	margin-top: var(--csn-ui-space-5, 1.5rem);
}
.csn-guest-foyer-quiet {
	margin-top: var(--csn-ui-space-4, 1rem);
	font-size: var(--csn-ui-fs-sm, 0.95rem);
}
.csn-guest-foyer-quiet a {
	color: var(--csn-ui-amber-ink, #9C6A16);
}

/* PROD-6 Lounge introductions */
.csn-guest-lounge-intros__hint,
.csn-guest-lounge-intro__reason {
	color: var(--csn-ui-muted, #555);
}
.csn-guest-lounge-empty {
	margin: var(--csn-ui-space-4, 1rem) 0;
	padding: var(--csn-ui-space-4, 1rem) 0;
}
.csn-guest-lounge-empty__title {
	font-weight: 600;
	margin: 0 0 var(--csn-ui-space-2, 0.5rem);
}
.csn-guest-lounge-intro-list {
	list-style: none;
	padding: 0;
	margin: var(--csn-ui-space-4, 1rem) 0 var(--csn-ui-space-5, 1.5rem);
	display: grid;
	gap: var(--csn-ui-space-4, 1rem);
}
.csn-guest-lounge-intro {
	display: flex;
	gap: var(--csn-ui-space-3, 0.75rem);
	align-items: flex-start;
	padding-bottom: var(--csn-ui-space-3, 0.75rem);
	border-bottom: 1px solid var(--csn-ui-border, rgba(0,0,0,.1));
}
.csn-guest-lounge-intro__avatar {
	border-radius: 50%;
	flex-shrink: 0;
}
.csn-guest-lounge-intro__name {
	color: inherit;
	text-decoration: none;
}
.csn-guest-lounge-intro__reason {
	margin: var(--csn-ui-space-1, 0.25rem) 0 0;
	font-size: var(--csn-ui-fs-sm, 0.95rem);
}
.csn-guest-lounge-promotion {
	margin: var(--csn-ui-space-4, 1rem) 0;
	color: var(--csn-ui-muted, #555);
}
