.iiec-events-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
	width: 100%;
}

.iiec-public-event-card {
	overflow: hidden;
	background: #fff;
	border-radius: 18px;
	box-shadow: 0 8px 24px rgba(26, 46, 74, 0.12);
	transition:
		transform 180ms ease,
		box-shadow 180ms ease;
}

.iiec-public-event-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 34px rgba(26, 46, 74, 0.17);
}

.iiec-public-event-card-link {
	display: block;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.iiec-public-event-image {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: #e9f5f8;
}

.iiec-public-event-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 220ms ease;
}

.iiec-public-event-card:hover
.iiec-public-event-image img {
	transform: scale(1.025);
}

.iiec-public-event-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	background:
		linear-gradient(
			135deg,
			#eaf9fc,
			#d4f0f6
		);
}

.iiec-public-event-placeholder .dashicons {
	width: 50px;
	height: 50px;
	color: #4dcfe8;
	font-size: 50px;
}

.iiec-public-featured-badge,
.iiec-single-featured-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 12px;
	color: #6d5318;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	background: #fff5d6;
	border-radius: 999px;
}

.iiec-public-featured-badge {
	position: absolute;
	top: 14px;
	left: 14px;
	box-shadow: 0 3px 10px rgba(26, 46, 74, 0.15);
}

.iiec-public-featured-badge .dashicons,
.iiec-single-featured-badge .dashicons {
	width: 15px;
	height: 15px;
	color: #d49b11;
	font-size: 15px;
}

.iiec-public-event-content {
	padding: 22px;
}

.iiec-public-event-meta,
.iiec-single-event-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 7px;
	color: #5272be;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.045em;
}

.iiec-public-event-content h3 {
	margin: 8px 0 10px;
	color: #1a2e4a;
	font-size: 24px;
	line-height: 1.2;
}

.iiec-public-event-content > p {
	margin: 0 0 20px;
	color: #526174;
	font-size: 15px;
	line-height: 1.55;
}

.iiec-public-next-session {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding-top: 16px;
	border-top: 1px solid #e2e8ef;
}

.iiec-public-next-session > .dashicons {
	flex: 0 0 auto;
	margin-top: 2px;
	color: #4dcfe8;
}

.iiec-public-next-session > div {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.iiec-public-next-session strong {
	color: #1a2e4a;
	font-size: 14px;
}

.iiec-public-next-session span {
	color: #66758a;
	font-size: 13px;
}

.iiec-events-empty {
	padding: 24px;
	color: #526174;
	text-align: center;
	background: #f4f8fb;
	border-radius: 14px;
}

.iiec-single-event {
	padding-bottom: 80px;
	background: #f7fafc;
}

.iiec-single-event-hero {
	width: 100%;
	max-height: 560px;
	overflow: hidden;
	background: #dceff4;
}

.iiec-single-event-hero img {
	display: block;
	width: 100%;
	max-height: 560px;
	object-fit: cover;
}

.iiec-single-event-container {
	width: min(1120px, calc(100% - 40px));
	margin: 0 auto;
	padding-top: 48px;
}

.iiec-single-event-heading {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
	margin-top: 10px;
}

.iiec-single-event-heading h1 {
	margin: 0;
	color: #1a2e4a;
	font-size: clamp(40px, 6vw, 74px);
	line-height: 1;
}

.iiec-single-event-description {
	max-width: 760px;
	margin: 22px 0 0;
	color: #526174;
	font-size: 19px;
	line-height: 1.65;
}

.iiec-single-event-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 280px;
	gap: 42px;
	margin-top: 42px;
}

.iiec-single-event-main h2 {
	margin: 0 0 18px;
	color: #1a2e4a;
	font-size: 30px;
}

.iiec-single-session-list {
	display: grid;
	gap: 14px;
}

.iiec-single-session {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 20px;
	background: #fff;
	border: 1px solid #e0e8ef;
	border-radius: 14px;
	box-shadow: 0 5px 16px rgba(26, 46, 74, 0.07);
}

.iiec-single-session > .dashicons {
	flex: 0 0 auto;
	margin-top: 3px;
	color: #4dcfe8;
}

.iiec-single-session > div {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.iiec-single-session strong {
	color: #1a2e4a;
	font-size: 17px;
}

.iiec-single-session span {
	color: #66758a;
	font-size: 14px;
}

.iiec-single-event-sidebar {
	height: fit-content;
	padding: 24px;
	background: #fff;
	border: 1px solid #e0e8ef;
	border-radius: 14px;
	box-shadow: 0 5px 16px rgba(26, 46, 74, 0.07);
}

.iiec-sidebar-label {
	display: block;
	margin-bottom: 5px;
	color: #66758a;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.iiec-single-event-sidebar strong {
	color: #1a2e4a;
	font-size: 20px;
}

.iiec-single-event-body {
	margin-top: 38px;
	color: #3f4f63;
	font-size: 17px;
	line-height: 1.7;
}

@media screen and (max-width: 980px) {
	.iiec-events-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.iiec-single-event-layout {
		grid-template-columns: 1fr;
	}

	.iiec-single-event-sidebar {
		max-width: 360px;
	}
}

@media screen and (max-width: 640px) {
	.iiec-events-grid {
		grid-template-columns: 1fr;
	}

	.iiec-single-event-container {
		width: min(100% - 28px, 1120px);
		padding-top: 32px;
	}

	.iiec-single-event-heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.iiec-single-event-description {
		font-size: 17px;
	}

	.iiec-public-event-content h3 {
		font-size: 22px;
	}
}
/* Event RSVP */
.iiec-rsvp {
	margin-top: 48px;
	padding: 32px;
	background: #fff;
	border: 1px solid #dce7ee;
	border-radius: 20px;
	box-shadow: 0 8px 24px rgba(26, 46, 74, 0.08);
}

.iiec-rsvp-heading,
.iiec-rsvp-list-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
}

.iiec-rsvp-heading h2,
.iiec-rsvp-list-heading h2 {
	margin: 2px 0 0;
	color: #1a2e4a;
	font-size: 30px;
}

.iiec-rsvp-heading p,
.iiec-rsvp-list-heading span {
	margin: 0;
	color: #66758a;
}

.iiec-rsvp-kicker {
	color: #5272be;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.iiec-rsvp-form {
	display: grid;
	gap: 20px;
	margin-top: 24px;
}

.iiec-rsvp-fields-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.iiec-rsvp-field {
	display: grid;
	gap: 8px;
	color: #1a2e4a;
	font-weight: 700;
}

.iiec-rsvp-field input,
.iiec-rsvp-field select,
.iiec-rsvp-field textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 13px 14px;
	color: #1a2e4a;
	font: inherit;
	font-weight: 400;
	background: #fbfdfe;
	border: 1px solid #cfdce5;
	border-radius: 12px;
}

.iiec-rsvp-field textarea {
	resize: vertical;
}

.iiec-rsvp-field small {
	color: #66758a;
	font-size: 12px;
	font-weight: 400;
}

.iiec-rsvp-submit {
	justify-self: start;
	padding: 13px 24px;
	color: #1a2e4a;
	font-weight: 800;
	background: #ffcf3f;
	border: 0;
	border-radius: 999px;
	cursor: pointer;
}

.iiec-rsvp-submit:hover {
	transform: translateY(-1px);
}

.iiec-rsvp-honeypot {
	position: absolute !important;
	left: -9999px !important;
}

.iiec-rsvp-notice {
	margin-top: 20px;
	padding: 14px 16px;
	border-radius: 12px;
}

.iiec-rsvp-notice-success {
	color: #176b36;
	background: #eaf8ef;
	border: 1px solid #b8e4c6;
}

.iiec-rsvp-notice-error {
	color: #8b2635;
	background: #fff0f2;
	border: 1px solid #f0c1c8;
}

.iiec-rsvp-list-wrap {
	margin-top: 38px;
	padding-top: 30px;
	border-top: 1px solid #e1e8ee;
}

.iiec-rsvp-list {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 20px;
}

.iiec-rsvp-person {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 9px 12px 9px 9px;
	color: #1a2e4a;
	font: inherit;
	font-weight: 700;
	background: #f5fafc;
	border: 1px solid #d8e5ec;
	border-radius: 999px;
}

.iiec-rsvp-person.has-comment {
	cursor: pointer;
}

.iiec-rsvp-person.has-comment:hover {
	background: #eaf8fb;
	border-color: #9eddea;
}

.iiec-rsvp-person:disabled {
	opacity: 1;
	cursor: default;
}

.iiec-rsvp-avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	color: #fff;
	background: #5272be;
	border-radius: 50%;
}

.iiec-rsvp-comment-icon {
	font-size: 15px;
}

.iiec-rsvp-empty {
	margin: 20px 0 0;
	padding: 18px;
	color: #66758a;
	text-align: center;
	background: #f5f9fb;
	border-radius: 12px;
}

.iiec-rsvp-modal[hidden] {
	display: none;
}

.iiec-rsvp-modal {
	position: fixed;
	z-index: 99999;
	inset: 0;
	display: grid;
	place-items: center;
	padding: 20px;
}

.iiec-rsvp-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(16, 34, 52, 0.65);
}

.iiec-rsvp-modal-dialog {
	position: relative;
	z-index: 1;
	width: min(480px, 100%);
	padding: 30px;
	background: #fff;
	border-radius: 20px;
	box-shadow: 0 24px 70px rgba(11, 30, 47, 0.3);
}

.iiec-rsvp-modal-close {
	position: absolute;
	top: 12px;
	right: 14px;
	width: 36px;
	height: 36px;
	color: #1a2e4a;
	font-size: 26px;
	line-height: 1;
	background: #edf4f7;
	border: 0;
	border-radius: 50%;
	cursor: pointer;
}

.iiec-rsvp-modal-label {
	display: block;
	padding-right: 38px;
	color: #5272be;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.iiec-rsvp-modal-dialog h3 {
	margin: 8px 0 16px;
	color: #1a2e4a;
	font-size: 26px;
}

.iiec-rsvp-modal-comment {
	margin: 0;
	color: #415269;
	font-size: 18px;
	line-height: 1.6;
	white-space: pre-wrap;
}

body.iiec-rsvp-modal-open {
	overflow: hidden;
}

@media screen and (max-width: 640px) {
	.iiec-rsvp {
		padding: 22px 18px;
	}

	.iiec-rsvp-heading,
	.iiec-rsvp-list-heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 8px;
	}

	.iiec-rsvp-fields-row {
		grid-template-columns: 1fr;
	}

	.iiec-rsvp-submit {
		width: 100%;
	}
}
/* Phase 2 friendly event page shell */
.iiec-single-event{background:linear-gradient(180deg,#e9f9ff 0,#f8fcff 45%,#fff 100%);padding:44px 18px 70px}.iiec-event-shell{max-width:1120px;margin:0 auto}.iiec-event-hero{display:block;border-radius:28px;overflow:hidden;box-shadow:0 12px 35px rgba(30,85,110,.16);background:#dceff6}.iiec-event-hero img{display:block;width:100%;max-height:520px;object-fit:cover}.iiec-event-intro{background:#fff;border:1px solid #d7e9f1;border-radius:24px;padding:28px;margin:-40px 28px 24px;position:relative;box-shadow:0 8px 24px rgba(30,85,110,.12)}.iiec-event-intro h1{font-size:clamp(34px,5vw,62px);line-height:1;margin:.2em 0;color:#17354a}.iiec-event-eyebrow{font-weight:800;color:#317899;text-transform:uppercase;letter-spacing:.08em}.iiec-event-lede{font-size:20px;line-height:1.55;max-width:800px}.iiec-event-badges{display:flex;gap:8px;flex-wrap:wrap}.iiec-status-badge,.iiec-feature-badge{display:inline-flex;padding:7px 12px;border-radius:999px;background:#dff6ff;font-weight:800;color:#236a88}.iiec-feature-badge{background:#fff3bf;color:#725b00}.iiec-status-live .iiec-status-badge{background:#d9f7df;color:#236a38}.iiec-status-cancelled .iiec-status-badge{background:#ffe0e0;color:#8c2525}.iiec-event-content-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px;align-items:start}.iiec-event-main-card,.iiec-host-card,.iiec-recap-card,.iiec-rsvp-form-card,.iiec-rsvp-session-group,.iiec-rsvp-closed{background:#fff;border:1px solid #d9e8ef;border-radius:22px;padding:24px;box-shadow:0 6px 20px rgba(31,87,112,.08)}.iiec-host-card span{display:block;color:#66808f;font-weight:700;margin-bottom:10px}.iiec-host-card strong{display:block;font-size:20px;margin:7px 0}.iiec-session-public-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.iiec-session-public-card{display:flex;gap:12px;background:#f1faff;border-radius:16px;padding:16px}.iiec-session-public-card strong,.iiec-session-public-card span,.iiec-session-public-card small{display:block}.iiec-session-public-card small{color:#8a5a18;font-weight:700;margin-top:5px}.iiec-cancelled-notice{background:#fff0f0;border:1px solid #f0b7b7;border-radius:16px;padding:15px;margin-top:18px}.iiec-recap-card{margin-top:24px}.iiec-recap-kicker{font-weight:800;color:#3d86a5;text-transform:uppercase}.iiec-recap-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}.iiec-recap-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px}.iiec-recap-card blockquote{background:#fff7cf;border-radius:15px;padding:16px;margin:18px 0 0}.iiec-rsvp{margin-top:24px}.iiec-rsvp-heading{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:15px}.iiec-rsvp-total{font-weight:800;color:#3c758e}.iiec-rsvp-form-card{margin-bottom:20px}.iiec-rsvp-session-groups{display:grid;gap:16px}.iiec-rsvp-session-head{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:14px}.iiec-rsvp-session-head h3{margin:0}.iiec-rsvp-session-head span{color:#647d8b}.iiec-rsvp-person{border-radius:999px}.iiec-rsvp-closed{background:#fff9dc}.iiec-rsvp-fields-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:800px){.iiec-event-intro{margin:-20px 10px 18px;padding:20px}.iiec-event-content-grid{grid-template-columns:1fr}.iiec-session-public-grid,.iiec-rsvp-fields-row{grid-template-columns:1fr}.iiec-recap-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.iiec-single-event{padding:20px 10px 45px}.iiec-event-hero{border-radius:18px}.iiec-event-intro{margin:10px 0 16px;border-radius:18px}.iiec-event-main-card,.iiec-host-card,.iiec-recap-card,.iiec-rsvp-form-card,.iiec-rsvp-session-group{border-radius:17px;padding:17px}.iiec-rsvp-heading,.iiec-rsvp-session-head{align-items:flex-start;flex-direction:column}.iiec-recap-gallery{grid-template-columns:1fr}}

/* 0.3.1 event hero overlay and guest-list heading */
.iiec-event-hero{position:relative;display:block;min-height:360px;border-radius:28px;overflow:hidden;box-shadow:0 12px 35px rgba(30,85,110,.16);background:linear-gradient(135deg,#dff5ff,#b8e8f5)}
.iiec-event-hero-picture{position:absolute;inset:0;display:block}.iiec-event-hero-picture img{width:100%;height:100%;max-height:none;object-fit:cover}.iiec-event-hero.has-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,31,47,.78) 0%,rgba(8,31,47,.48) 52%,rgba(8,31,47,.1) 100%)}
.iiec-event-hero-overlay{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;min-height:360px;padding:clamp(28px,5vw,58px);color:#fff}.iiec-event-hero-overlay h1{font-size:clamp(36px,6vw,68px);line-height:1;margin:.18em 0;color:inherit;max-width:880px;text-shadow:0 3px 16px rgba(0,0,0,.28)}.iiec-event-hero-overlay .iiec-event-eyebrow{color:#d7f5ff}.iiec-event-hero-overlay .iiec-event-lede{font-size:20px;line-height:1.55;max-width:760px;margin-bottom:0;text-shadow:0 2px 10px rgba(0,0,0,.3)}.iiec-event-hero.no-image .iiec-event-hero-overlay{color:#17354a}.iiec-event-hero.no-image .iiec-event-eyebrow{color:#317899}.iiec-event-hero.no-image .iiec-event-lede{text-shadow:none}.iiec-rsvp-list-heading{margin:28px 0 16px;padding-top:24px;border-top:1px solid #dce7ee}
@media(max-width:700px){.iiec-event-hero,.iiec-event-hero-overlay{min-height:300px}.iiec-event-hero.has-image:after{background:linear-gradient(0deg,rgba(8,31,47,.82),rgba(8,31,47,.18))}.iiec-event-hero-overlay{padding:24px}.iiec-rsvp-list-heading{align-items:flex-start;flex-direction:column;gap:8px}}

/* Host character card */
.iiec-host-card {
	display: flex;
	align-items: center;
	gap: 16px;
}

.iiec-host-avatar {
	flex: 0 0 auto;
	width: 76px;
	height: 76px;
	object-fit: cover;
	background: #eef8fb;
	border: 3px solid #fff;
	border-radius: 50%;
	box-shadow: 0 4px 14px rgba(31, 87, 112, 0.18);
}

.iiec-host-details {
	min-width: 0;
}

.iiec-host-details span,
.iiec-host-details strong {
	display: block;
}

.iiec-host-details span {
	margin-bottom: 4px;
}

@media (max-width: 800px) {
	.iiec-host-card {
		max-width: none;
	}
}

/* RSVP identity stack: name first, then the full-width avatar picker. */
.iiec-rsvp-player-row {
	display: block;
}

.iiec-rsvp-player-row > .iiec-rsvp-field:first-child {
	max-width: none;
}

.iiec-rsvp-avatar-field {
	min-width: 0;
	margin: 18px 0 0;
	padding: 0;
	border: 0;
}

.iiec-rsvp-avatar-field legend {
	display: block;
	margin-bottom: 8px;
	font-weight: 700;
}

.iiec-rsvp-avatar-field legend small {
	font-weight: 400;
}

.iiec-rsvp-avatar-picker {
	display: grid;
	grid-template-columns: repeat(auto-fit, 62px);
	max-width: 100%;
	gap: 9px;
	align-items: center;
}

.iiec-rsvp-avatar-option {
	position: relative;
	display: block;
	cursor: pointer;
}

.iiec-rsvp-avatar-option input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.iiec-rsvp-avatar-choice {
	display: grid;
	place-items: center;
	width: 58px;
	height: 58px;
	overflow: hidden;
	background: #eef8fb;
	border: 3px solid #d8e5ec;
	border-radius: 50%;
	box-sizing: border-box;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.iiec-rsvp-avatar-choice img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.iiec-rsvp-avatar-option:hover .iiec-rsvp-avatar-choice {
	transform: translateY(-1px);
}

.iiec-rsvp-avatar-option input:focus-visible + .iiec-rsvp-avatar-choice {
	outline: 3px solid currentColor;
	outline-offset: 3px;
}

.iiec-rsvp-avatar-option input:checked + .iiec-rsvp-avatar-choice {
	border-color: #1597c5;
	box-shadow: 0 0 0 4px rgba(21, 151, 197, 0.18);
}

.iiec-rsvp-avatar-none .iiec-rsvp-avatar-choice {
	background: #f5f7f9;
}

.iiec-rsvp-no-avatar-mark {
	font-size: 28px;
	font-weight: 700;
	line-height: 1;
	color: #82909e;
}

.iiec-rsvp-game-code-field {
	max-width: calc((100% - 18px) / 2);
}

.iiec-rsvp-avatar img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: inherit;
}

.iiec-rsvp-avatar-field > small {
	display: block;
	margin-top: 8px;
	color: #66758a;
	font-size: 12px;
	font-weight: 400;
}

@media screen and (max-width: 800px) {
	.iiec-rsvp-game-code-field {
		max-width: none;
	}
}

@media screen and (max-width: 420px) {
	.iiec-rsvp-avatar-picker {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.iiec-rsvp-avatar-choice {
		width: min(58px, 100%);
		aspect-ratio: 1;
		height: auto;
	}
}



/* RSVP comment bubble trigger */
.iiec-rsvp-person {
	position: relative;
	overflow: visible;
}

.iiec-rsvp-person.has-comment {
	cursor: default;
}

.iiec-rsvp-person.has-comment:hover {
	transform: none;
}

.iiec-rsvp-comment-icon {
	display: none;
}

.iiec-rsvp-comment-trigger {
	position: absolute;
	top: -14px;
	right: -1px;
	z-index: 2;
	display: block;
	width: 29px;
	height: 29px;
	min-width: 0;
	min-height: 0;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	outline: none !important;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	transition: transform 160ms ease;
}

.iiec-rsvp-comment-trigger img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.iiec-rsvp-comment-trigger:hover {
	transform: translateY(-2px) scale(1.04);
}

.iiec-rsvp-comment-trigger:focus-visible {
	outline: none !important;
	box-shadow: none !important;
}

@media screen and (max-width: 640px) {
	.iiec-rsvp-comment-trigger {
		top: -20px;
		right: -12px;
		width: 50px;
		height: 50px;
	}
}

/* ========================================================================== 
   Imagine Island event page premium visual pass
   Global artwork: assets/ui/event-page-background.png
   ========================================================================== */

.iiec-single-event {
	position: relative;
	isolation: isolate;
	min-height: var(--ii-studio-viewport-height, 100vh);
	padding: clamp(24px, 4vw, 52px) 18px clamp(56px, 7vw, 96px);
	background-color: #dff6ff;
	background-image:
		linear-gradient(180deg, rgba(226, 249, 255, 0.2) 0%, rgba(239, 251, 255, 0.52) 52%, rgba(247, 252, 255, 0.82) 100%),
		url("../ui/event-page-background.png");
	background-position: center top;
	background-size: cover;
	background-repeat: no-repeat;
}

.iiec-single-event::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	pointer-events: none;
	background:
		radial-gradient(circle at 50% 10%, rgba(255, 255, 255, 0.12), transparent 42%),
		linear-gradient(180deg, transparent 0%, rgba(232, 248, 253, 0.16) 42%, rgba(238, 249, 253, 0.52) 100%);
}

.iiec-event-shell {
	width: min(1310px, 100%);
	max-width: 1310px;
	margin-inline: auto;
}

.iiec-event-hero {
	min-height: clamp(330px, 34vw, 525px);
	border: 1px solid rgba(255, 255, 255, 0.58);
	border-radius: clamp(22px, 2.3vw, 34px);
	box-shadow:
		0 24px 60px rgba(21, 70, 94, 0.22),
		0 7px 18px rgba(31, 79, 101, 0.12),
		inset 0 0 0 1px rgba(255, 255, 255, 0.12);
}

.iiec-event-hero-picture img {
	transition: transform 700ms cubic-bezier(.2, .75, .2, 1);
}

.iiec-event-hero:hover .iiec-event-hero-picture img {
	transform: scale(1.018);
}

.iiec-event-hero.has-image::after {
	background:
		linear-gradient(90deg, rgba(7, 25, 39, 0.84) 0%, rgba(7, 25, 39, 0.57) 48%, rgba(7, 25, 39, 0.12) 100%),
		linear-gradient(0deg, rgba(5, 20, 31, 0.34), transparent 56%);
}

.iiec-event-hero-overlay {
	min-height: clamp(330px, 34vw, 525px);
	padding: clamp(30px, 5vw, 66px);
}

.iiec-event-hero-overlay h1 {
	max-width: 980px;
	font-family: "Lilita One", "Fredoka", "Arial Rounded MT Bold", sans-serif;
	font-size: clamp(42px, 6.2vw, 82px);
	font-weight: 400;
	line-height: 0.96;
	letter-spacing: 0.008em;
	text-shadow:
		0 4px 0 rgba(8, 32, 47, 0.36),
		0 10px 25px rgba(0, 0, 0, 0.3);
}

.iiec-event-eyebrow {
	font-family: "Fredoka", "Arial Rounded MT Bold", sans-serif;
	font-size: clamp(12px, 1.2vw, 16px);
	letter-spacing: 0.095em;
}

.iiec-event-hero-overlay .iiec-event-lede {
	max-width: 820px;
	font-size: clamp(17px, 1.7vw, 22px);
	line-height: 1.5;
}

.iiec-status-badge,
.iiec-feature-badge {
	padding: 8px 14px;
	border: 1px solid rgba(255, 255, 255, 0.54);
	box-shadow: 0 5px 14px rgba(5, 28, 43, 0.18);
	backdrop-filter: blur(8px);
}

.iiec-event-content-grid {
	grid-template-columns: minmax(0, 1fr) 326px;
	gap: clamp(20px, 2.4vw, 32px);
	margin-top: clamp(18px, 2vw, 28px);
}

.iiec-event-main-card,
.iiec-host-card,
.iiec-recap-card,
.iiec-rsvp,
.iiec-rsvp-form-card,
.iiec-rsvp-session-group,
.iiec-rsvp-closed {
	border: 1px solid rgba(255, 255, 255, 0.74);
	background: rgba(255, 255, 255, 0.91);
	box-shadow:
		0 18px 42px rgba(24, 75, 99, 0.12),
		0 4px 12px rgba(24, 75, 99, 0.07),
		inset 0 1px 0 rgba(255, 255, 255, 0.86);
	backdrop-filter: blur(13px) saturate(1.08);
}

.iiec-event-main-card,
.iiec-recap-card,
.iiec-rsvp {
	border-radius: 28px;
}

.iiec-event-main-card {
	padding: clamp(24px, 3vw, 38px);
}

.iiec-event-main-card > h2,
.iiec-rsvp-heading h2,
.iiec-rsvp-list-heading h2,
.iiec-recap-card h2 {
	font-family: "Lilita One", "Fredoka", "Arial Rounded MT Bold", sans-serif;
	font-weight: 400;
	letter-spacing: 0.01em;
}

.iiec-event-main-card > h2 {
	font-size: clamp(30px, 3vw, 42px);
	color: #213c4e;
}

.iiec-session-public-grid {
	gap: 16px;
}

.iiec-session-public-card {
	position: relative;
	gap: 14px;
	padding: 20px;
	background: linear-gradient(145deg, rgba(242, 251, 255, 0.98), rgba(232, 247, 253, 0.94));
	border: 1px solid rgba(178, 220, 236, 0.62);
	border-radius: 20px;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.84);
	transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.iiec-session-public-card:hover {
	transform: translateY(-3px);
	border-color: rgba(77, 207, 232, 0.72);
	box-shadow: 0 12px 24px rgba(31, 111, 143, 0.12);
}

.iiec-session-public-card > .dashicons {
	width: 24px;
	height: 24px;
	color: #298bb6;
	font-size: 24px;
}

.iiec-session-public-card strong {
	font-size: 17px;
	color: #263d4b;
}

.iiec-session-public-card span {
	color: #4f6572;
	line-height: 1.45;
}

.iiec-host-card {
	position: static;
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 26px;
	border-radius: 26px;
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.iiec-host-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 22px 48px rgba(24, 75, 99, 0.17);
}

.iiec-host-avatar {
	width: 82px;
	height: 82px;
	flex: 0 0 82px;
	object-fit: cover;
	background: #fff;
	border: 5px solid rgba(255, 255, 255, 0.9);
	border-radius: 50%;
	box-shadow:
		0 8px 18px rgba(31, 91, 122, 0.19),
		0 0 0 2px rgba(111, 191, 224, 0.22);
}

.iiec-host-details span {
	margin: 0 0 5px;
	color: #66808f;
	font-size: 14px;
	font-weight: 800;
}

.iiec-host-details strong {
	margin: 0;
	font-family: "Lilita One", "Fredoka", "Arial Rounded MT Bold", sans-serif;
	font-size: 25px;
	font-weight: 400;
	color: #243e4f;
}

.iiec-event-body {
	margin-top: 30px;
	padding-top: 28px;
	border-top: 1px solid rgba(174, 205, 217, 0.58);
	color: #405866;
	font-size: 17px;
	line-height: 1.75;
}

.iiec-rsvp {
	margin-top: 30px;
	padding: clamp(24px, 3.2vw, 40px);
}

.iiec-rsvp-heading,
.iiec-rsvp-list-heading {
	align-items: center;
}

.iiec-rsvp-kicker,
.iiec-recap-kicker {
	color: #3c74c1;
	font-size: 12px;
	letter-spacing: 0.08em;
}

.iiec-rsvp-heading h2,
.iiec-rsvp-list-heading h2 {
	font-size: clamp(30px, 3.2vw, 43px);
}

.iiec-rsvp-total {
	padding: 8px 13px;
	color: #2c718f;
	background: rgba(224, 247, 255, 0.82);
	border: 1px solid rgba(152, 216, 235, 0.64);
	border-radius: 999px;
}

.iiec-rsvp-field input,
.iiec-rsvp-field select,
.iiec-rsvp-field textarea {
	background: rgba(249, 253, 255, 0.94);
	border-color: rgba(175, 205, 218, 0.75);
	border-radius: 14px;
	transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.iiec-rsvp-field input:focus,
.iiec-rsvp-field select:focus,
.iiec-rsvp-field textarea:focus {
	outline: none;
	background: #fff;
	border-color: #4dcfe8;
	box-shadow: 0 0 0 4px rgba(77, 207, 232, 0.16);
}

.iiec-rsvp-submit {
	padding: 14px 26px;
	color: #38270b;
	background: linear-gradient(180deg, #ffe77c 0%, #ffc82f 100%);
	border: 1px solid rgba(186, 126, 15, 0.36);
	box-shadow:
		0 5px 0 #c78a15,
		0 11px 20px rgba(110, 77, 20, 0.17),
		inset 0 1px 0 rgba(255, 255, 255, 0.72);
	transition: transform 150ms ease, filter 150ms ease, box-shadow 150ms ease;
}

.iiec-rsvp-submit:hover,
.iiec-rsvp-submit:focus-visible {
	filter: brightness(1.035);
	transform: translateY(-2px);
	box-shadow:
		0 7px 0 #c78a15,
		0 14px 24px rgba(110, 77, 20, 0.2),
		inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

.iiec-rsvp-person {
	background: rgba(246, 252, 254, 0.94);
	border-color: rgba(187, 215, 226, 0.7);
	box-shadow: 0 4px 10px rgba(40, 84, 103, 0.06);
	transition: transform 150ms ease, background 150ms ease, border-color 150ms ease;
}

.iiec-rsvp-person.has-comment:hover {
	transform: translateY(-2px);
}

.iiec-recap-card {
	padding: clamp(24px, 3vw, 38px);
}

@keyframes iiec-premium-rise {
	from {
		opacity: 0;
		transform: translateY(14px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.iiec-event-hero,
.iiec-event-content-grid,
.iiec-recap-card,
.iiec-rsvp {
	animation: iiec-premium-rise 480ms ease both;
}

.iiec-event-content-grid { animation-delay: 70ms; }
.iiec-recap-card { animation-delay: 110ms; }
.iiec-rsvp { animation-delay: 140ms; }

@media (max-width: 900px) {
	.iiec-event-content-grid {
		grid-template-columns: 1fr;
	}

	.iiec-host-card {
		position: relative;
		top: auto;
		max-width: none;
	}
}

@media (max-width: 700px) {
	.iiec-single-event {
		padding: 18px 10px 52px;
		background-position: center top;
		background-size: auto 100%;
	}

	.iiec-event-hero,
	.iiec-event-hero-overlay {
		min-height: 310px;
	}

	.iiec-event-hero.has-image::after {
		background:
			linear-gradient(0deg, rgba(6, 24, 37, 0.9) 0%, rgba(6, 24, 37, 0.52) 52%, rgba(6, 24, 37, 0.1) 100%);
	}

	.iiec-event-hero-overlay h1 {
		font-size: clamp(38px, 12vw, 58px);
	}

	.iiec-session-public-grid {
		grid-template-columns: 1fr;
	}

	.iiec-host-card {
		padding: 20px;
	}

	.iiec-host-avatar {
		width: 68px;
		height: 68px;
		flex-basis: 68px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.iiec-event-hero,
	.iiec-event-content-grid,
	.iiec-recap-card,
	.iiec-rsvp,
	.iiec-event-hero-picture img,
	.iiec-session-public-card,
	.iiec-host-card,
	.iiec-rsvp-person,
	.iiec-rsvp-submit {
		animation: none !important;
		transition: none !important;
	}
}

/* ========================================================================== 
   Premium handcrafted event-page polish
   ========================================================================== */

.iiec-single-event {
	--iiec-accent: #3a91c7;
	--iiec-accent-deep: #1f668f;
	--iiec-accent-soft: rgba(58, 145, 199, 0.14);
	--iiec-gold: #e4ad2f;
}

.iiec-event-type-comedy_show,
.iiec-event-type-comedy-show,
.iiec-event-type-comedy {
	--iiec-accent: #8b56d9;
	--iiec-accent-deep: #593094;
	--iiec-accent-soft: rgba(139, 86, 217, 0.15);
}

.iiec-event-type-fishing_tournament,
.iiec-event-type-fishing-tournament,
.iiec-event-type-fishing {
	--iiec-accent: #248ed6;
	--iiec-accent-deep: #165d9b;
	--iiec-accent-soft: rgba(36, 142, 214, 0.15);
}

.iiec-event-type-campfire_stories,
.iiec-event-type-campfire-stories,
.iiec-event-type-reading {
	--iiec-accent: #56a93f;
	--iiec-accent-deep: #347724;
	--iiec-accent-soft: rgba(86, 169, 63, 0.15);
}

.iiec-event-main-card,
.iiec-host-card,
.iiec-rsvp,
.iiec-recap-card {
	background:
		linear-gradient(145deg, rgba(255, 252, 239, 0.97), rgba(250, 240, 211, 0.95));
	border: 2px solid rgba(255, 255, 255, 0.7);
	box-shadow:
		0 16px 38px rgba(58, 40, 17, 0.14),
		inset 0 0 0 1px rgba(173, 121, 50, 0.18),
		inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.iiec-event-main-card,
.iiec-rsvp,
.iiec-recap-card {
	position: relative;
	overflow: hidden;
}

.iiec-event-main-card::before,
.iiec-rsvp::before,
.iiec-recap-card::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		radial-gradient(circle at 12% 16%, rgba(255,255,255,.45), transparent 24%),
		repeating-linear-gradient(0deg, rgba(142,91,35,.018) 0, rgba(142,91,35,.018) 1px, transparent 1px, transparent 6px);
}

.iiec-event-main-card > *,
.iiec-rsvp > *,
.iiec-recap-card > * {
	position: relative;
	z-index: 1;
}

.iiec-section-title,
.iiec-rsvp-title {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: "Lilita One", "Fredoka", "Arial Rounded MT Bold", sans-serif;
	font-weight: 400;
	letter-spacing: 0.01em;
}

.iiec-section-title .dashicons {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	color: #fff;
	font-size: 23px;
	line-height: 42px;
	background: linear-gradient(180deg, color-mix(in srgb, var(--iiec-accent) 82%, white), var(--iiec-accent-deep));
	border: 3px solid #fff0bd;
	border-radius: 50%;
	box-shadow:
		0 4px 0 color-mix(in srgb, var(--iiec-accent-deep) 76%, #4a2c12),
		0 8px 14px rgba(63, 40, 17, 0.18),
		inset 0 2px 1px rgba(255,255,255,.4);
}

.iiec-session-public-grid {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
}

.iiec-session-public-card {
	min-height: 128px;
	background: linear-gradient(145deg, rgba(255,255,255,.78), rgba(255,248,224,.9));
	border: 2px solid color-mix(in srgb, var(--iiec-accent) 38%, #ead7a6);
	box-shadow:
		0 8px 18px rgba(83, 55, 20, 0.09),
		inset 0 1px 0 rgba(255,255,255,.92);
}

.iiec-session-public-card:hover {
	border-color: var(--iiec-accent);
	box-shadow:
		0 14px 26px color-mix(in srgb, var(--iiec-accent) 18%, transparent),
		inset 0 1px 0 rgba(255,255,255,.92);
}

.iiec-session-public-card > .dashicons {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	flex: 0 0 38px;
	margin: 0;
	color: #fff;
	font-size: 20px;
	line-height: 38px;
	background: var(--iiec-accent);
	border: 3px solid rgba(255,255,255,.82);
	border-radius: 50%;
	box-shadow: 0 4px 9px color-mix(in srgb, var(--iiec-accent-deep) 28%, transparent);
}

.iiec-host-card {
	border-color: color-mix(in srgb, var(--iiec-accent) 28%, rgba(255,255,255,.7));
}

.iiec-host-label {
	display: flex;
	align-items: center;
	gap: 6px;
	color: var(--iiec-accent-deep) !important;
	font-size: 12px !important;
	font-weight: 900 !important;
	text-transform: uppercase;
	letter-spacing: .08em;
}

.iiec-host-label .dashicons {
	width: 16px;
	height: 16px;
	font-size: 16px;
}

.iiec-rsvp-heading {
	padding-bottom: 20px;
	border-bottom: 2px solid rgba(170, 118, 49, 0.16);
}

.iiec-rsvp-title {
	gap: 10px;
	color: #263f50 !important;
}

.iiec-rsvp-title .dashicons {
	width: 25px;
	height: 25px;
	color: var(--iiec-gold);
	font-size: 25px;
	filter: drop-shadow(0 2px 0 rgba(121, 79, 15, 0.2));
}

.iiec-rsvp-total {
	color: #563b0f;
	font-weight: 900;
	background: linear-gradient(180deg, #fff4b9, #f4d56b);
	border-color: rgba(185, 133, 31, .4);
	box-shadow: 0 4px 0 rgba(165, 112, 19, .22);
}

.iiec-rsvp-kicker {
	color: var(--iiec-accent-deep);
}

.iiec-rsvp-submit {
	background: linear-gradient(180deg, color-mix(in srgb, var(--iiec-accent) 56%, #fff39a), var(--iiec-accent));
	border-color: color-mix(in srgb, var(--iiec-accent-deep) 62%, #8b5a16);
	box-shadow:
		0 5px 0 var(--iiec-accent-deep),
		0 11px 20px color-mix(in srgb, var(--iiec-accent) 20%, transparent),
		inset 0 1px 0 rgba(255,255,255,.72);
}

.iiec-rsvp-submit:hover,
.iiec-rsvp-submit:focus-visible {
	box-shadow:
		0 7px 0 var(--iiec-accent-deep),
		0 14px 24px color-mix(in srgb, var(--iiec-accent) 24%, transparent),
		inset 0 1px 0 rgba(255,255,255,.72);
}

.iiec-status-badge {
	border: 1px solid rgba(255,255,255,.5);
	box-shadow: 0 4px 12px rgba(0,0,0,.12);
}

.iiec-feature-badge {
	box-shadow: 0 4px 12px rgba(80, 52, 8, .18);
}

@media (max-width: 700px) {
	.iiec-rsvp-heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.iiec-rsvp-title {
		font-size: clamp(28px, 9vw, 38px) !important;
	}

	.iiec-rsvp-title .dashicons {
		width: 20px;
		height: 20px;
		font-size: 20px;
	}
}


/* ========================================================================== 
   Nintendo-style RSVP panels and controls
   ========================================================================== */

.iiec-single-event {
	--iiec-panel: #f8e8bb;
	--iiec-panel-light: #fff4d6;
	--iiec-panel-deep: #e7c982;
	--iiec-ink: #382311;
}

/* Inner content should feel like layered parchment, not white website cards. */
.iiec-rsvp-form-card,
.iiec-rsvp-session-group,
.iiec-rsvp-closed {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(circle at 18% 10%, rgba(255,255,255,.52), transparent 28%),
		repeating-linear-gradient(0deg, rgba(114,70,24,.025) 0, rgba(114,70,24,.025) 1px, transparent 1px, transparent 6px),
		linear-gradient(145deg, var(--iiec-panel-light), var(--iiec-panel));
	border: 2px solid rgba(144, 91, 33, .28);
	box-shadow:
		0 10px 22px rgba(73, 42, 16, .13),
		inset 0 1px 0 rgba(255,255,255,.8),
		inset 0 0 0 1px rgba(255,255,255,.22);
}

.iiec-rsvp-form-card::before,
.iiec-rsvp-session-group::before,
.iiec-rsvp-closed::before {
	content: "";
	position: absolute;
	inset: 8px;
	pointer-events: none;
	border: 1px solid rgba(132, 79, 27, .12);
	border-radius: 15px;
}

.iiec-rsvp-form-card > *,
.iiec-rsvp-session-group > *,
.iiec-rsvp-closed > * {
	position: relative;
	z-index: 1;
}

.iiec-rsvp-form-card h3,
.iiec-rsvp-session-head h3,
.iiec-rsvp-list-heading h2 {
	color: var(--iiec-ink);
	font-family: "Lilita One", "Fredoka", "Arial Rounded MT Bold", sans-serif;
	font-weight: 400;
	letter-spacing: .01em;
}

.iiec-rsvp-form-card > p,
.iiec-rsvp-session-head span,
.iiec-rsvp-empty {
	color: #6f573b;
}

/* Inputs become softly inset parchment controls. */
.iiec-rsvp-field input,
.iiec-rsvp-field select,
.iiec-rsvp-field textarea {
	background: rgba(255, 250, 233, .92);
	border: 2px solid rgba(128, 91, 50, .28);
	border-radius: 14px;
	box-shadow:
		inset 0 2px 5px rgba(90, 54, 19, .07),
		0 1px 0 rgba(255,255,255,.7);
	transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease;
}

.iiec-rsvp-field input:focus,
.iiec-rsvp-field select:focus,
.iiec-rsvp-field textarea:focus {
	outline: none;
	background: #fffdf4;
	border-color: var(--iiec-accent);
	box-shadow:
		0 0 0 4px var(--iiec-accent-soft),
		inset 0 2px 5px rgba(90, 54, 19, .06);
}

/* Rebuild the submit control as a chunky game button. */
.iiec-rsvp-submit {
	-webkit-appearance: none;
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-width: 220px;
	padding: 15px 26px 13px;
	color: #fff;
	font-family: "Lilita One", "Fredoka", "Arial Rounded MT Bold", sans-serif;
	font-size: 21px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: .025em;
	text-shadow: 0 2px 0 rgba(47, 24, 10, .42);
	background: linear-gradient(180deg, color-mix(in srgb, var(--iiec-accent) 76%, white), var(--iiec-accent));
	border: 3px solid #ffe7a3;
	border-radius: 16px;
	box-shadow:
		0 6px 0 var(--iiec-accent-deep),
		0 12px 22px color-mix(in srgb, var(--iiec-accent) 24%, transparent),
		inset 0 2px 0 rgba(255,255,255,.42),
		inset 0 -2px 0 rgba(70,35,10,.12);
	cursor: pointer;
	transform: translateY(0);
	transition: transform 140ms ease, filter 140ms ease, box-shadow 140ms ease;
}

.iiec-rsvp-submit .dashicons {
	width: 22px;
	height: 22px;
	font-size: 22px;
	line-height: 22px;
}

.iiec-rsvp-submit:hover,
.iiec-rsvp-submit:focus-visible {
	color: #fff;
	filter: brightness(1.07) saturate(1.04);
	transform: translateY(-2px);
	box-shadow:
		0 8px 0 var(--iiec-accent-deep),
		0 16px 28px color-mix(in srgb, var(--iiec-accent) 28%, transparent),
		inset 0 2px 0 rgba(255,255,255,.48),
		inset 0 -2px 0 rgba(70,35,10,.12);
}

.iiec-rsvp-submit:active {
	transform: translateY(4px);
	box-shadow:
		0 2px 0 var(--iiec-accent-deep),
		0 6px 12px color-mix(in srgb, var(--iiec-accent) 18%, transparent),
		inset 0 2px 0 rgba(255,255,255,.36);
}

/* Guest chips keep their clarity but inherit the active event color. */
.iiec-rsvp-person {
	background: rgba(255, 250, 233, .82);
	border: 2px solid color-mix(in srgb, var(--iiec-accent) 26%, #d4b87c);
	box-shadow: 0 4px 10px rgba(78, 48, 18, .08);
}

.iiec-rsvp-person.has-comment:hover {
	background: #fff7dc;
	border-color: var(--iiec-accent);
	transform: translateY(-2px);
}

.iiec-rsvp-avatar {
	background: var(--iiec-accent);
	box-shadow: 0 2px 0 var(--iiec-accent-deep);
}

.iiec-rsvp-session-head > strong {
	padding: 7px 12px;
	color: #51340f;
	background: linear-gradient(180deg, #fff1a8, #efd06b);
	border: 1px solid rgba(165, 111, 22, .35);
	border-radius: 999px;
	box-shadow: 0 3px 0 rgba(150, 99, 18, .18);
}

.iiec-rsvp-list-heading {
	border-top-color: rgba(132, 82, 28, .18);
}

@media (max-width: 560px) {
	.iiec-rsvp-submit {
		width: 100%;
		min-width: 0;
	}

	.iiec-rsvp-form-card::before,
	.iiec-rsvp-session-group::before,
	.iiec-rsvp-closed::before {
		inset: 6px;
	}
}

/* ========================================================================== 
   Calm Nintendo UI palette — final visual overrides
   ========================================================================== */

.iiec-single-event {
	--iiec-cream: #f4ead4;
	--iiec-cream-light: #fbf5e8;
	--iiec-cream-deep: #dfceb0;
	--iiec-walnut: #6f4828;
	--iiec-walnut-deep: #4b2f1a;
	--iiec-brass: #b7893d;
	--iiec-brass-light: #d7b875;
	--iiec-navy: #24384a;
	--iiec-muted: #6c6256;
	--iiec-line: rgba(111, 72, 40, 0.22);
}

/* Let the event art provide the colour. The page chrome stays quiet and warm. */
.iiec-event-main-card,
.iiec-host-card,
.iiec-rsvp,
.iiec-recap-card {
	background:
		radial-gradient(circle at 12% 8%, rgba(255, 255, 255, 0.52), transparent 26%),
		repeating-linear-gradient(0deg, rgba(91, 59, 31, 0.016) 0, rgba(91, 59, 31, 0.016) 1px, transparent 1px, transparent 7px),
		linear-gradient(145deg, var(--iiec-cream-light), var(--iiec-cream));
	border: 1px solid rgba(126, 88, 49, 0.25);
	box-shadow:
		0 14px 32px rgba(57, 38, 21, 0.12),
		inset 0 1px 0 rgba(255, 255, 255, 0.78),
		inset 0 0 0 1px rgba(255, 255, 255, 0.22);
}

.iiec-rsvp-form-card,
.iiec-rsvp-session-group,
.iiec-rsvp-closed,
.iiec-session-public-card {
	background:
		radial-gradient(circle at 15% 8%, rgba(255,255,255,.42), transparent 28%),
		repeating-linear-gradient(0deg, rgba(85,53,27,.016) 0, rgba(85,53,27,.016) 1px, transparent 1px, transparent 7px),
		linear-gradient(145deg, #f8f0df, #eee0c5) !important;
	border: 1px solid rgba(111, 72, 40, 0.24) !important;
	box-shadow:
		0 8px 18px rgba(62, 42, 23, 0.09),
		inset 0 1px 0 rgba(255,255,255,.72) !important;
}

.iiec-rsvp-form-card::before,
.iiec-rsvp-session-group::before,
.iiec-rsvp-closed::before {
	border-color: rgba(111, 72, 40, 0.10);
}

.iiec-section-title,
.iiec-rsvp-title,
.iiec-rsvp-form-card h3,
.iiec-rsvp-session-head h3,
.iiec-event-main-card h2 {
	color: var(--iiec-navy) !important;
}

.iiec-rsvp-kicker,
.iiec-host-label,
.iiec-event-eyebrow {
	color: #6f5a43 !important;
}

.iiec-rsvp-form-card > p,
.iiec-rsvp-session-head span,
.iiec-rsvp-empty,
.iiec-rsvp-field small,
.iiec-session-public-card span {
	color: var(--iiec-muted) !important;
}

/* Subdued icon medallions: aged brass rather than candy colours. */
.iiec-section-title .dashicons,
.iiec-session-public-card > .dashicons {
	color: #fffaf0 !important;
	background: linear-gradient(180deg, #c7a05e, #9a7135) !important;
	border-color: #ead8b2 !important;
	box-shadow:
		0 3px 0 #765126,
		0 7px 13px rgba(63, 41, 20, 0.16),
		inset 0 1px 0 rgba(255,255,255,.35) !important;
}

/* Forms should read as softly inset paper, not bright white boxes. */
.iiec-rsvp-field input,
.iiec-rsvp-field select,
.iiec-rsvp-field textarea {
	color: var(--iiec-navy) !important;
	background: rgba(250, 246, 236, 0.88) !important;
	border: 1px solid rgba(102, 75, 48, 0.30) !important;
	box-shadow:
		inset 0 2px 5px rgba(67, 44, 23, 0.06),
		0 1px 0 rgba(255,255,255,.55) !important;
}

.iiec-rsvp-field input:focus,
.iiec-rsvp-field select:focus,
.iiec-rsvp-field textarea:focus {
	background: #fcf8ee !important;
	border-color: #9d7b4c !important;
	box-shadow:
		0 0 0 3px rgba(157, 123, 76, 0.14),
		inset 0 2px 5px rgba(67, 44, 23, 0.05) !important;
}

/* One calm, handcrafted wooden action button across every event type. */
.iiec-rsvp .iiec-rsvp-submit,
.iiec-rsvp .iiec-rsvp-submit:hover,
.iiec-rsvp .iiec-rsvp-submit:focus,
.iiec-rsvp .iiec-rsvp-submit:focus-visible,
.iiec-rsvp .iiec-rsvp-submit:active {
	-webkit-appearance: none !important;
	appearance: none !important;
	min-width: 210px;
	padding: 15px 28px 13px !important;
	color: #fff8e8 !important;
	font-family: "Lilita One", "Fredoka", "Arial Rounded MT Bold", sans-serif !important;
	font-size: 21px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	letter-spacing: .025em !important;
	text-decoration: none !important;
	text-shadow: 0 2px 0 rgba(54, 31, 14, .55) !important;
	background: linear-gradient(180deg, #9b6937 0%, #754621 100%) !important;
	background-image: linear-gradient(180deg, #9b6937 0%, #754621 100%) !important;
	border: 3px solid #d7b875 !important;
	border-radius: 14px !important;
	outline: 0 !important;
	box-shadow:
		0 6px 0 #4d2d16,
		0 11px 20px rgba(58, 35, 18, .20),
		inset 0 2px 0 rgba(255,255,255,.22),
		inset 0 -2px 0 rgba(45,25,11,.18) !important;
	filter: none !important;
}

.iiec-rsvp .iiec-rsvp-submit:hover,
.iiec-rsvp .iiec-rsvp-submit:focus-visible {
	color: #fffdf5 !important;
	background: linear-gradient(180deg, #a8733e 0%, #805027 100%) !important;
	background-image: linear-gradient(180deg, #a8733e 0%, #805027 100%) !important;
	transform: translateY(-2px) !important;
	box-shadow:
		0 8px 0 #4d2d16,
		0 15px 24px rgba(58, 35, 18, .22),
		inset 0 2px 0 rgba(255,255,255,.25),
		inset 0 -2px 0 rgba(45,25,11,.18) !important;
}

.iiec-rsvp .iiec-rsvp-submit:active {
	transform: translateY(4px) !important;
	box-shadow:
		0 2px 0 #4d2d16,
		0 5px 9px rgba(58, 35, 18, .18),
		inset 0 2px 0 rgba(255,255,255,.18) !important;
}

.iiec-rsvp .iiec-rsvp-submit span {
	color: inherit !important;
	font: inherit !important;
	text-shadow: inherit !important;
}

/* Aged-brass information pills. */
.iiec-rsvp-total,
.iiec-rsvp-session-head > strong {
	color: #4c3924 !important;
	background: linear-gradient(180deg, #e6d3a5, #cdb078) !important;
	border: 1px solid rgba(118, 81, 37, .34) !important;
	box-shadow:
		0 3px 0 rgba(103, 69, 31, .16),
		inset 0 1px 0 rgba(255,255,255,.50) !important;
}

.iiec-rsvp-list-wrap {
	border-top-color: rgba(111, 72, 40, 0.18) !important;
}

/* Player chips become quiet parchment name plaques. */
.iiec-rsvp-person {
	color: var(--iiec-navy) !important;
	background: linear-gradient(180deg, #fbf6ea, #eee3cf) !important;
	border: 1px solid rgba(111, 72, 40, .30) !important;
	box-shadow:
		0 3px 8px rgba(62, 42, 23, .08),
		inset 0 1px 0 rgba(255,255,255,.70) !important;
}

.iiec-rsvp-person.has-comment:hover {
	background: linear-gradient(180deg, #fffaf0, #f1e5cf) !important;
	border-color: rgba(111, 72, 40, .48) !important;
	filter: none !important;
}

.iiec-rsvp-avatar {
	background: #806044 !important;
	box-shadow: 0 2px 0 #553923 !important;
}

.iiec-rsvp-title .dashicons {
	color: var(--iiec-brass) !important;
	filter: drop-shadow(0 2px 0 rgba(91, 58, 24, .15));
}

@media (max-width: 560px) {
	.iiec-rsvp .iiec-rsvp-submit {
		width: 100%;
		min-width: 0;
	}
}

/* ========================================================================== 
   RSVP comment modal - illustrated chat bubble
   Uses assets/ui/chat-bubble.png
   ========================================================================== */

.iiec-rsvp-modal {
	visibility: hidden;
	opacity: 0;
	transition: opacity 180ms ease, visibility 0s linear 240ms;
}

.iiec-rsvp-modal.is-open {
	visibility: visible;
	opacity: 1;
	transition-delay: 0s;
}

.iiec-rsvp-modal-backdrop {
	background: rgba(18, 42, 61, 0.58);
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
	opacity: 0;
	transition: opacity 180ms ease;
}

.iiec-rsvp-modal.is-open .iiec-rsvp-modal-backdrop {
	opacity: 1;
}

.iiec-rsvp-modal-dialog {
	box-sizing: border-box;
	width: min(620px, calc(100vw - 28px));
	min-height: 430px;
	padding: 82px 78px 112px 92px;
	background-color: transparent;
	background-image: url("../ui/chat-bubble.png");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 100% 100%;
	border-radius: 0;
	box-shadow: none;
	transform: translateY(18px) scale(0.55) rotate(-2deg);
	transform-origin: 19% 88%;
	opacity: 0;
	transition:
		transform 240ms cubic-bezier(0.22, 1.4, 0.36, 1),
		opacity 150ms ease;
}

.iiec-rsvp-modal.is-open .iiec-rsvp-modal-dialog {
	transform: translateY(0) scale(1) rotate(0deg);
	opacity: 1;
}


.iiec-rsvp-modal-label {
	display: inline-block;
	max-width: calc(100% - 50px);
	margin: 0 0 7px;
	padding: 5px 11px;
	color: #357187;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.04em;
	line-height: 1.2;
	text-transform: uppercase;
	background: #e9f8fc;
	border-radius: 999px;
}

.iiec-rsvp-modal-dialog h3 {
	margin: 0 0 14px;
	padding-right: 34px;
	color: #1a2e4a;
	font-size: clamp(25px, 4vw, 34px);
	font-weight: 900;
	line-height: 1.05;
}

.iiec-rsvp-modal-comment {
	max-height: 175px;
	margin: 0;
	padding: 0 8px 0 0;
	overflow-y: auto;
	color: #263b50;
	font-size: clamp(17px, 2.4vw, 21px);
	font-weight: 600;
	line-height: 1.5;
	white-space: pre-wrap;
	scrollbar-width: thin;
	scrollbar-color: rgba(53, 113, 135, 0.45) transparent;
}

.iiec-rsvp-modal-comment::-webkit-scrollbar {
	width: 7px;
}

.iiec-rsvp-modal-comment::-webkit-scrollbar-thumb {
	background: rgba(53, 113, 135, 0.42);
	border-radius: 999px;
}

@media screen and (max-width: 640px) {
	.iiec-rsvp-modal {
		padding: 12px;
	}

	.iiec-rsvp-modal-dialog {
		width: min(560px, calc(100vw - 16px));
		min-height: 0;
		aspect-ratio: 600 / 522;
		padding: 15% 12% 21% 16%;
	}


	.iiec-rsvp-modal-label {
		margin-bottom: 5px;
		font-size: 10px;
	}

	.iiec-rsvp-modal-dialog h3 {
		margin-bottom: 9px;
		font-size: clamp(21px, 7vw, 29px);
	}

	.iiec-rsvp-modal-comment {
		max-height: 30vw;
		font-size: clamp(15px, 4.6vw, 19px);
		line-height: 1.38;
	}
}

@media (prefers-reduced-motion: reduce) {
	.iiec-rsvp-modal,
	.iiec-rsvp-modal-backdrop,
	.iiec-rsvp-modal-dialog {
		transition-duration: 1ms !important;
	}
}

/* ========================================================================== 
   RSVP bubble content alignment + long comment handling
   ========================================================================== */

.iiec-rsvp-modal-dialog {
	display: grid;
	place-items: center;
	padding: 78px 88px 108px 96px;
}

.iiec-rsvp-modal-content {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 430px;
	min-height: 210px;
	max-height: 250px;
	text-align: center;
}

.iiec-rsvp-modal-label {
	max-width: 100%;
	margin: 0 auto 9px;
}

.iiec-rsvp-modal-dialog h3 {
	max-width: 100%;
	margin: 0 auto 16px;
	padding: 0;
	text-align: center;
}

.iiec-rsvp-modal-comment {
	width: 100%;
	max-height: 145px;
	margin: 0 auto;
	padding: 0 10px;
	overflow-x: hidden;
	overflow-y: auto;
	text-align: center;
	overscroll-behavior: contain;
	word-break: normal;
	overflow-wrap: anywhere;
}

.iiec-rsvp-modal-dialog.is-medium-comment .iiec-rsvp-modal-comment {
	font-size: clamp(16px, 2.1vw, 19px);
	line-height: 1.42;
}

.iiec-rsvp-modal-dialog.is-long-comment .iiec-rsvp-modal-content {
	max-height: 265px;
}

.iiec-rsvp-modal-dialog.is-long-comment h3 {
	margin-bottom: 10px;
	font-size: clamp(23px, 3.4vw, 30px);
}

.iiec-rsvp-modal-dialog.is-long-comment .iiec-rsvp-modal-comment {
	max-height: 160px;
	font-size: clamp(15px, 1.9vw, 17px);
	line-height: 1.38;
}


@media screen and (max-width: 640px) {
	.iiec-rsvp-modal-dialog {
		padding: 15% 14% 21% 17%;
	}

	.iiec-rsvp-modal-content {
		max-width: none;
		min-height: 0;
		max-height: 48vw;
	}

	.iiec-rsvp-modal-comment,
	.iiec-rsvp-modal-dialog.is-long-comment .iiec-rsvp-modal-comment {
		max-height: 25vw;
		padding: 0 6px;
	}

}

/* ========================================================================== 
   RSVP chat bubble optical centering
   Centers content inside the rounded body while ignoring the lower-left tail.
   ========================================================================== */

.iiec-rsvp-modal-content {
	max-width: 410px;
	transform: translate(24px, -52px);
}

@media screen and (max-width: 640px) {
	.iiec-rsvp-modal-content {
		max-width: 72%;
		transform: translate(4%, -10%);
	}
}


/* ==========================================================================
   Game Code help link and compact looping video popup
   ========================================================================== */

.iiec-rsvp-game-code-label {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	flex-wrap: wrap;
}

.iiec-game-code-help-trigger {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #176f96;
	font: inherit;
	font-size: 13px;
	font-weight: 800;
	line-height: 1.2;
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
	cursor: pointer;
}

.iiec-game-code-help-trigger:hover { color: #0e506f; }

.iiec-game-code-help-trigger:focus-visible {
	outline: 3px solid rgba(43, 146, 190, 0.35);
	outline-offset: 4px;
	border-radius: 8px;
}

.iiec-game-code-help-icon {
	display: inline-grid;
	place-items: center;
	width: 21px;
	height: 21px;
	border: 2px solid currentColor;
	border-radius: 50%;
	font-size: 13px;
	font-weight: 900;
	line-height: 1;
	text-decoration: none;
}

.iiec-game-code-help-modal[hidden] { display: none !important; }

.iiec-game-code-help-modal {
	position: fixed !important;
	z-index: 1000000 !important;
	inset: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box;
	padding: 18px;
	opacity: 0;
	pointer-events: none;
	transition: opacity 180ms ease;
}

.iiec-game-code-help-modal.is-open {
	opacity: 1;
	pointer-events: auto;
}

.iiec-game-code-help-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(13, 38, 52, 0.48);
	backdrop-filter: blur(3px);
}

.iiec-game-code-help-dialog {
	position: relative;
	z-index: 1;
	box-sizing: border-box;
	width: min(430px, calc(100vw - 36px));
	max-height: calc(100vh - 36px);
	overflow: auto;
	padding: 22px;
	border: 4px solid #bd7733;
	border-radius: 22px;
	background: #fff8df;
	box-shadow:
		0 18px 50px rgba(10, 38, 54, 0.35),
		inset 0 0 0 3px rgba(255, 255, 255, 0.72);
	color: #17354a;
	transform: translateY(10px) scale(0.96);
	transition: transform 200ms cubic-bezier(.2, .9, .3, 1.1);
}

.iiec-game-code-help-modal.is-open .iiec-game-code-help-dialog {
	transform: translateY(0) scale(1);
}

.iiec-game-code-help-close {
	position: absolute;
	top: 10px;
	right: 10px;
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 2px solid rgba(255,255,255,.72);
	border-radius: 50%;
	background: #17354a;
	color: #fff;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}

.iiec-game-code-help-kicker {
	display: inline-block;
	margin-bottom: 3px;
	color: #247ca0;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.iiec-game-code-help-dialog h3 {
	margin: 0 38px 6px 0;
	color: #17354a;
	font-size: 24px;
	line-height: 1.12;
}

.iiec-game-code-help-dialog p {
	margin: 0 0 13px;
	font-size: 14px;
	line-height: 1.45;
}

.iiec-game-code-help-video-wrap {
	overflow: hidden;
	border: 3px solid #fff;
	border-radius: 15px;
	background: #102c3c;
	box-shadow: 0 8px 22px rgba(21, 57, 76, 0.2);
}

.iiec-game-code-help-video {
	display: block;
	width: 100%;
	height: auto;
	max-height: 48vh;
	object-fit: contain;
	background: #102c3c;
}

body.iiec-game-code-help-open { overflow: hidden; }

@media screen and (max-width: 560px) {
	.iiec-rsvp-game-code-label {
		align-items: flex-start;
		flex-direction: column;
		gap: 7px;
	}

	.iiec-game-code-help-modal { padding: 12px; }

	.iiec-game-code-help-dialog {
		width: min(380px, calc(100vw - 24px));
		max-height: calc(100vh - 24px);
		padding: 19px 14px 14px;
		border-width: 3px;
		border-radius: 18px;
	}

	.iiec-game-code-help-dialog h3 {
		font-size: 21px;
		margin-right: 34px;
	}

	.iiec-game-code-help-dialog p { font-size: 13px; }
	.iiec-game-code-help-video { max-height: 45vh; }
}

@media (prefers-reduced-motion: reduce) {
	.iiec-game-code-help-modal,
	.iiec-game-code-help-dialog { transition: none; }
}

/* ========================================================================== 
   Final Game Code help button layout
   Compact filled button beside the Game code label.
   ========================================================================== */
.iiec-rsvp-game-code-label {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 14px !important;
	width: 100% !important;
	margin-bottom: 10px !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
}

.iiec-rsvp-game-code-label > span:first-child {
	flex: 0 0 auto;
}

.iiec-game-code-help-trigger {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 7px !important;
	flex: 0 1 auto !important;
	width: auto !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 8px 13px !important;
	border: 0 !important;
	border-radius: 12px !important;
	background: #cf2f6a !important;
	color: #ffffff !important;
	font: inherit !important;
	font-size: 13px !important;
	font-weight: 800 !important;
	line-height: 1.15 !important;
	text-decoration: none !important;
	white-space: nowrap !important;
	cursor: pointer !important;
	box-shadow: 0 3px 0 #9f1f4d, 0 5px 10px rgba(83, 24, 51, 0.2) !important;
	transition: transform 160ms ease, background-color 160ms ease, box-shadow 160ms ease !important;
}

.iiec-game-code-help-trigger:hover {
	background: #dc3b76 !important;
	color: #ffffff !important;
	transform: translateY(-1px);
	box-shadow: 0 4px 0 #9f1f4d, 0 7px 13px rgba(83, 24, 51, 0.24) !important;
}

.iiec-game-code-help-trigger:active {
	transform: translateY(2px);
	box-shadow: 0 1px 0 #9f1f4d, 0 2px 5px rgba(83, 24, 51, 0.18) !important;
}

.iiec-game-code-help-trigger:focus-visible {
	outline: 3px solid rgba(207, 47, 106, 0.28) !important;
	outline-offset: 3px !important;
}

.iiec-game-code-help-icon {
	display: inline-grid !important;
	place-items: center !important;
	flex: 0 0 auto !important;
	width: 20px !important;
	height: 20px !important;
	border: 2px solid #ffffff !important;
	border-radius: 50% !important;
	color: #ffffff !important;
	font-size: 13px !important;
	font-weight: 900 !important;
	line-height: 1 !important;
	text-decoration: none !important;
}

@media screen and (max-width: 560px) {
	.iiec-rsvp-game-code-label {
		gap: 8px !important;
		flex-direction: row !important;
		align-items: center !important;
		flex-wrap: nowrap !important;
	}

	.iiec-game-code-help-trigger {
		padding: 7px 10px !important;
		font-size: 11px !important;
		white-space: normal !important;
		text-align: center !important;
	}

	.iiec-game-code-help-icon {
		width: 18px !important;
		height: 18px !important;
		font-size: 12px !important;
	}
}

@media screen and (max-width: 390px) {
	.iiec-game-code-help-trigger span:last-child {
		font-size: 0;
	}

	.iiec-game-code-help-trigger span:last-child::after {
		content: "Need help?";
		font-size: 11px;
	}
}

/* ==========================================================================
   RSVP comment bubbles - final responsive polish
   ========================================================================== */

/* Keep the small comment indicator attached to the player's top-right corner. */
.iiec-rsvp-person.has-comment {
	position: relative;
	padding-right: 42px !important;
}

.iiec-rsvp-comment-trigger {
	top: -13px !important;
	right: 7px !important;
	width: 27px !important;
	height: 27px !important;
	transform-origin: 75% 75%;
}

.iiec-rsvp-comment-trigger:hover {
	transform: translateY(-2px) scale(1.08) rotate(2deg) !important;
}

/* Center the large comment composition inside the rounded body of the artwork. */
.iiec-rsvp-modal-dialog {
	display: grid !important;
	place-items: center !important;
	width: min(760px, calc(100vw - 32px)) !important;
	aspect-ratio: 3 / 2 !important;
	min-height: 0 !important;
	padding: 10.5% 11.5% 15.5% 15.5% !important;
	box-sizing: border-box !important;
	background-position: center !important;
	background-size: 100% 100% !important;
	transform-origin: 18% 86% !important;
}

.iiec-rsvp-modal-content {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	width: 78% !important;
	max-width: 520px !important;
	min-height: 0 !important;
	max-height: 58% !important;
	margin: 0 !important;
	text-align: center !important;
	transform: translate(4%, -3%) !important;
}

.iiec-rsvp-modal-label {
	flex: 0 0 auto;
	max-width: 92% !important;
	margin: 0 auto 10px !important;
	text-align: center !important;
}

.iiec-rsvp-modal-dialog h3 {
	flex: 0 0 auto;
	max-width: 100% !important;
	margin: 0 auto 18px !important;
	padding: 0 !important;
	font-size: clamp(26px, 4.4vw, 42px) !important;
	line-height: 1.04 !important;
	letter-spacing: -0.025em !important;
	text-align: center !important;
	text-wrap: balance;
	overflow-wrap: anywhere;
}

.iiec-rsvp-modal-comment {
	flex: 0 1 auto;
	width: 100% !important;
	max-height: 190px !important;
	margin: 0 auto !important;
	padding: 0 12px !important;
	overflow-x: hidden !important;
	overflow-y: auto !important;
	box-sizing: border-box !important;
	font-size: clamp(17px, 2.25vw, 22px) !important;
	font-weight: 600 !important;
	line-height: 1.48 !important;
	text-align: center !important;
	white-space: pre-wrap !important;
	word-break: normal !important;
	overflow-wrap: anywhere !important;
	overscroll-behavior: contain;
}

.iiec-rsvp-modal-dialog.is-medium-comment .iiec-rsvp-modal-comment {
	max-height: 205px !important;
	font-size: clamp(16px, 2vw, 20px) !important;
	line-height: 1.43 !important;
}

.iiec-rsvp-modal-dialog.is-long-comment .iiec-rsvp-modal-content {
	max-height: 64% !important;
}

.iiec-rsvp-modal-dialog.is-long-comment h3 {
	margin-bottom: 12px !important;
	font-size: clamp(23px, 3.6vw, 34px) !important;
}

.iiec-rsvp-modal-dialog.is-long-comment .iiec-rsvp-modal-comment {
	max-height: 230px !important;
	font-size: clamp(15px, 1.8vw, 18px) !important;
	line-height: 1.38 !important;
}

/* A playful three-step bubble reveal. */
.iiec-rsvp-modal.is-open .iiec-rsvp-modal-dialog {
	animation: iiec-rsvp-bubble-pop 300ms cubic-bezier(.2, .9, .25, 1.25) both;
}

@keyframes iiec-rsvp-bubble-pop {
	0% {
		opacity: 0;
		transform: translateY(18px) scale(.72) rotate(-2deg);
	}
	68% {
		opacity: 1;
		transform: translateY(-3px) scale(1.035) rotate(.5deg);
	}
	100% {
		opacity: 1;
		transform: translateY(0) scale(1) rotate(0deg);
	}
}

@media screen and (max-width: 640px) {
	.iiec-rsvp-person.has-comment {
		padding-right: 46px !important;
	}

	/* 30% smaller than the previous 50px mobile bubble. */
	.iiec-rsvp-comment-trigger {
		top: -15px !important;
		right: 8px !important;
		width: 35px !important;
		height: 35px !important;
	}

	.iiec-rsvp-modal {
		padding: 10px !important;
	}

	.iiec-rsvp-modal-dialog {
		width: min(620px, calc(100vw - 12px)) !important;
		aspect-ratio: 3 / 2 !important;
		padding: 11.5% 10.5% 16.5% 15.5% !important;
	}

	.iiec-rsvp-modal-content {
		width: 82% !important;
		max-width: none !important;
		max-height: 60% !important;
		transform: translate(4%, -2%) !important;
	}

	.iiec-rsvp-modal-label {
		margin-bottom: 6px !important;
		padding: 4px 9px !important;
		font-size: clamp(9px, 2.6vw, 11px) !important;
	}

	.iiec-rsvp-modal-dialog h3 {
		margin-bottom: 9px !important;
		font-size: clamp(20px, 6.4vw, 29px) !important;
	}

	.iiec-rsvp-modal-comment,
	.iiec-rsvp-modal-dialog.is-medium-comment .iiec-rsvp-modal-comment,
	.iiec-rsvp-modal-dialog.is-long-comment .iiec-rsvp-modal-comment {
		max-height: 24vw !important;
		padding: 0 6px !important;
		font-size: clamp(13px, 4vw, 18px) !important;
		line-height: 1.34 !important;
	}

	.iiec-rsvp-modal-dialog.is-long-comment .iiec-rsvp-modal-content {
		max-height: 66% !important;
	}
}

@media screen and (max-width: 420px) {
	.iiec-rsvp-person.has-comment {
		padding-right: 42px !important;
	}

	.iiec-rsvp-comment-trigger {
		top: -13px !important;
		right: 6px !important;
		width: 33px !important;
		height: 33px !important;
	}

	.iiec-rsvp-modal-dialog h3 {
		font-size: clamp(19px, 6vw, 25px) !important;
	}

	.iiec-rsvp-modal-comment,
	.iiec-rsvp-modal-dialog.is-medium-comment .iiec-rsvp-modal-comment,
	.iiec-rsvp-modal-dialog.is-long-comment .iiec-rsvp-modal-comment {
		max-height: 25vw !important;
		font-size: clamp(12px, 3.8vw, 16px) !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.iiec-rsvp-modal.is-open .iiec-rsvp-modal-dialog {
		animation: none !important;
	}
}

/* ==========================================================================
   RSVP chat bubble - final interior-box layout
   ========================================================================== */

/* Keep the full illustrated bubble visible and make the modal reliable on
 * desktop as well as mobile. */
.iiec-rsvp-modal {
	z-index: 1000000 !important;
	display: grid !important;
	place-items: center !important;
	padding: clamp(10px, 3vw, 28px) !important;
}

.iiec-rsvp-modal[hidden] {
	display: none !important;
}

.iiec-rsvp-modal-dialog {
	position: relative !important;
	display: block !important;
	width: min(780px, calc(100vw - 32px)) !important;
	aspect-ratio: 3 / 2 !important;
	min-height: 0 !important;
	max-height: calc(100vh - 40px) !important;
	padding: 0 !important;
	overflow: visible !important;
	background: url("../ui/chat-bubble.png") center / 100% 100% no-repeat !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

/* This inset box follows the large white body of the artwork and ignores the
 * tail. It gives the text almost the full usable surface of the bubble. */
.iiec-rsvp-modal-content {
	position: absolute !important;
	top: 15.5% !important;
	right: 10.5% !important;
	bottom: 17.5% !important;
	left: 16.5% !important;
	display: grid !important;
	grid-template-rows: auto auto minmax(0, 1fr) !important;
	align-items: center !important;
	justify-items: center !important;
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	min-height: 0 !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	box-sizing: border-box !important;
	text-align: center !important;
	transform: none !important;
	opacity: 1 !important;
	visibility: visible !important;
}

.iiec-rsvp-modal-label {
	align-self: end !important;
	max-width: 90% !important;
	margin: 0 auto clamp(6px, 1vw, 10px) !important;
	padding: 5px 13px !important;
	font-size: clamp(10px, 1.45vw, 14px) !important;
	line-height: 1.15 !important;
	text-align: center !important;
}

.iiec-rsvp-modal-dialog h3 {
	align-self: center !important;
	max-width: 100% !important;
	margin: 0 auto clamp(10px, 1.7vw, 18px) !important;
	padding: 0 !important;
	color: #1a2e4a !important;
	font-size: clamp(27px, 4.5vw, 44px) !important;
	font-weight: 900 !important;
	line-height: 1.02 !important;
	letter-spacing: -0.03em !important;
	text-align: center !important;
	text-wrap: balance !important;
	overflow-wrap: anywhere !important;
}

/* The comment owns all remaining room. It does not scroll until its actual
 * text is taller than this available area. */
.iiec-rsvp-modal-comment,
.iiec-rsvp-modal-dialog.is-medium-comment .iiec-rsvp-modal-comment,
.iiec-rsvp-modal-dialog.is-long-comment .iiec-rsvp-modal-comment {
	align-self: stretch !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 0 !important;
	max-height: none !important;
	margin: 0 auto !important;
	padding: 0 clamp(4px, 1.2vw, 12px) 4px !important;
	overflow-x: hidden !important;
	overflow-y: auto !important;
	box-sizing: border-box !important;
	color: #263b50 !important;
	font-size: clamp(17px, 2.35vw, 23px) !important;
	font-weight: 600 !important;
	line-height: 1.46 !important;
	text-align: center !important;
	white-space: pre-wrap !important;
	word-break: normal !important;
	overflow-wrap: anywhere !important;
	scrollbar-gutter: stable !important;
	overscroll-behavior: contain !important;
}

.iiec-rsvp-modal-dialog.is-medium-comment h3,
.iiec-rsvp-modal-dialog.is-long-comment h3 {
	font-size: clamp(24px, 3.9vw, 38px) !important;
	margin-bottom: clamp(8px, 1.2vw, 13px) !important;
}

.iiec-rsvp-modal-dialog.is-medium-comment .iiec-rsvp-modal-comment {
	font-size: clamp(16px, 2.05vw, 20px) !important;
	line-height: 1.42 !important;
}

.iiec-rsvp-modal-dialog.is-long-comment .iiec-rsvp-modal-comment {
	font-size: clamp(14px, 1.8vw, 18px) !important;
	line-height: 1.38 !important;
}

.iiec-rsvp-modal.is-open .iiec-rsvp-modal-content,
.iiec-rsvp-modal.is-open .iiec-rsvp-modal-comment {
	opacity: 1 !important;
	visibility: visible !important;
}

@media screen and (max-width: 640px) {
	.iiec-rsvp-modal {
		padding: 8px !important;
	}

	.iiec-rsvp-modal-dialog {
		width: min(620px, calc(100vw - 12px)) !important;
		aspect-ratio: 1.36 / 1 !important;
		max-height: calc(100vh - 16px) !important;
	}

	.iiec-rsvp-modal-content {
		top: 14.5% !important;
		right: 9.5% !important;
		bottom: 17% !important;
		left: 15.5% !important;
	}

	.iiec-rsvp-modal-label {
		margin-bottom: 5px !important;
		padding: 4px 9px !important;
		font-size: clamp(9px, 2.7vw, 11px) !important;
	}

	.iiec-rsvp-modal-dialog h3 {
		margin-bottom: 8px !important;
		font-size: clamp(21px, 7vw, 30px) !important;
	}

	.iiec-rsvp-modal-comment,
	.iiec-rsvp-modal-dialog.is-medium-comment .iiec-rsvp-modal-comment,
	.iiec-rsvp-modal-dialog.is-long-comment .iiec-rsvp-modal-comment {
		font-size: clamp(14px, 4.15vw, 18px) !important;
		line-height: 1.35 !important;
		padding-inline: 4px !important;
	}

	.iiec-rsvp-modal-dialog.is-long-comment h3 {
		font-size: clamp(19px, 6.2vw, 26px) !important;
	}

	.iiec-rsvp-modal-dialog.is-long-comment .iiec-rsvp-modal-comment {
		font-size: clamp(12px, 3.55vw, 16px) !important;
		line-height: 1.32 !important;
	}
}

@media screen and (max-width: 390px) {
	.iiec-rsvp-modal-dialog {
		aspect-ratio: 1.28 / 1 !important;
	}

	.iiec-rsvp-modal-content {
		top: 14% !important;
		right: 9% !important;
		bottom: 16.5% !important;
		left: 15% !important;
	}
}


/* ==========================================================================
   Event page navigation
   ========================================================================== */
.iiec-event-back-nav {
	display: flex;
	justify-content: flex-start;
	margin: 0 0 18px;
}

.iiec-back-to-calendar {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 48px;
	padding: 11px 18px;
	color: #173b56;
	font-size: 16px;
	font-weight: 800;
	line-height: 1;
	text-decoration: none;
	background: rgba(255, 250, 229, 0.96);
	border: 2px solid rgba(174, 126, 61, 0.55);
	border-radius: 999px;
	box-shadow: 0 7px 18px rgba(55, 35, 14, 0.16);
	transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.iiec-back-to-calendar:hover,
.iiec-back-to-calendar:focus-visible {
	color: #173b56;
	text-decoration: none;
	background: #fffdf3;
	box-shadow: 0 10px 24px rgba(55, 35, 14, 0.22);
	transform: translateY(-2px);
}

.iiec-back-to-calendar:focus-visible {
	outline: 3px solid #2e8fbd;
	outline-offset: 3px;
}

.iiec-back-to-calendar-arrow {
	display: inline-grid;
	place-items: center;
	width: 28px;
	height: 28px;
	color: #fff;
	font-size: 20px;
	font-weight: 900;
	background: #2e8fbd;
	border-radius: 50%;
}

@media (max-width: 700px) {
	.iiec-event-back-nav {
		margin-bottom: 12px;
	}

	.iiec-back-to-calendar {
		min-height: 44px;
		padding: 9px 14px;
		font-size: 15px;
	}

	.iiec-back-to-calendar-arrow {
		width: 25px;
		height: 25px;
		font-size: 18px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.iiec-back-to-calendar {
		transition: none;
	}
}


/* ==========================================================================
   Event sidebar navigation card
   ========================================================================== */
.iiec-event-sidebar {
	display: grid;
	gap: 18px;
	align-self: start;
}

.iiec-back-to-calendar-card {
	display: flex;
	align-items: center;
	gap: 18px;
	min-height: 134px;
	padding: 26px;
	color: #243e4f;
	text-decoration: none;
	background: rgba(255, 250, 229, 0.97);
	border: 1px solid color-mix(in srgb, var(--iiec-accent) 28%, rgba(255,255,255,.7));
	border-radius: 26px;
	box-shadow: 0 6px 20px rgba(31,87,112,.08);
	transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.iiec-back-to-calendar-card:hover,
.iiec-back-to-calendar-card:focus-visible {
	color: #243e4f;
	text-decoration: none;
	transform: translateY(-3px);
	box-shadow: 0 22px 48px rgba(24,75,99,.17);
	border-color: rgba(77,207,232,.72);
}

.iiec-back-to-calendar-card:focus-visible {
	outline: 3px solid #2e8fbd;
	outline-offset: 3px;
}

.iiec-back-to-calendar-card-icon {
	display: grid;
	place-items: center;
	width: 82px;
	height: 82px;
	flex: 0 0 82px;
	color: #fff;
	font-size: 38px;
	font-weight: 900;
	line-height: 1;
	background: #2e8fbd;
	border: 5px solid rgba(255,255,255,.9);
	border-radius: 50%;
	box-shadow: 0 8px 18px rgba(31,91,122,.19), 0 0 0 2px rgba(111,191,224,.22);
}

.iiec-back-to-calendar-card-copy {
	display: grid;
	gap: 6px;
}

.iiec-back-to-calendar-card-copy small {
	color: var(--iiec-accent-deep);
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .08em;
}

.iiec-back-to-calendar-card-copy strong {
	font-family: "Lilita One", "Fredoka", "Arial Rounded MT Bold", sans-serif;
	font-size: 25px;
	font-weight: 400;
	line-height: 1.08;
}

@media (max-width: 800px) {
	.iiec-event-sidebar {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 520px) {
	.iiec-back-to-calendar-card {
		min-height: 0;
		padding: 17px;
		border-radius: 17px;
	}

	.iiec-back-to-calendar-card-icon {
		width: 64px;
		height: 64px;
		flex-basis: 64px;
		font-size: 30px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.iiec-back-to-calendar-card { transition: none; }
}


/* Studio preview mode: prevent iframe auto-fit from feeding back into 100vh. */
.iiec-single-event.iiec-studio-preview {
    min-height: 0 !important;
    padding-bottom: 48px !important;
    background-size: cover !important;
}
.iiec-single-event.iiec-studio-preview .iiec-event-shell {
    min-height: 0 !important;
}


/* Event Detail Studio 2.1.5: one geometry owner per complete visual object. */

.single-iiec_event .iiec-studio-component-art{position:absolute!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;margin:0!important;object-fit:fill!important;z-index:0;pointer-events:none;opacity:1;box-sizing:border-box}
/* The original CSS remains the visual source of truth until an asset is replaced. */


/* Studio 2.1.12: native Event Detail components keep template-owned dimensions. */



/* 0.5.46: Event Detail is a Studio-owned presentation document. */
html:has(body.iiec-event-detail-document),
body.iiec-event-detail-document { margin:0 !important; padding:0 !important; min-height:100%; background:#fff; }
/* 3.0.0-dev.63: Event Detail participates in the shared Site Pages shell.
   Legacy direct-child header/footer suppression was removed so shared chrome
   keeps the display/layout rules owned by Imagine Island Site Pages. */
body.iiec-event-detail-document .iiec-single-event { margin:0 !important; }


/* 0.5.48: Event Detail background is an independent Studio object. */
.iiec-single-event {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background-image: linear-gradient(180deg, rgba(226, 249, 255, 0.2) 0%, rgba(239, 251, 255, 0.52) 52%, rgba(247, 252, 255, 0.82) 100%) !important;
}
.iiec-event-page-background {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	pointer-events: none;
	overflow: hidden;
}
.iiec-event-page-background > img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}
.iiec-single-event::before { z-index: 1; }
.iiec-event-shell { position: relative; z-index: 2; }
.iiec-single-event.iiec-studio-preview .iiec-event-page-background { pointer-events: auto; }


/* Event Detail registration 0.5.50: the cream RSVP sheet/border is an independent Studio layer. */
.iiec-rsvp {
	background: transparent !important;
	border-color: transparent !important;
	box-shadow: none !important;
	backdrop-filter: none !important;
}
.iiec-rsvp::before { content: none !important; }
.iiec-rsvp-sheet-surface {
	position: absolute !important;
	inset: 0;
	z-index: 0 !important;
	pointer-events: none;
	border-radius: inherit;
	overflow: hidden;
	background: linear-gradient(145deg, rgba(255, 252, 239, 0.97), rgba(250, 240, 211, 0.95));
	border: 2px solid rgba(255, 255, 255, 0.7);
	box-shadow: 0 16px 38px rgba(58, 40, 17, 0.14), inset 0 0 0 1px rgba(173, 121, 50, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
.iiec-rsvp-sheet-surface::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 12% 16%, rgba(255,255,255,.45), transparent 24%), repeating-linear-gradient(0deg, rgba(142,91,35,.018) 0, rgba(142,91,35,.018) 1px, transparent 1px, transparent 6px);
}
.iiec-rsvp > :not(.iiec-rsvp-sheet-surface) { position: relative; z-index: 1; }


/* Event Detail Studio registration parity: the RSVP paper is a true sibling layer.
 * The parent owns layout only; all visible paper styling belongs to the surface. */
.iiec-rsvp {
	background: transparent !important;
	border-color: transparent !important;
	box-shadow: none !important;
	overflow: visible !important;
	isolation: isolate;
}
.iiec-rsvp::before {
	display: none !important;
	content: none !important;
}
.iiec-rsvp-sheet-surface {
	position: absolute !important;
	inset: 0 !important;
	z-index: 0 !important;
	pointer-events: none;
	border-radius: inherit;
	background:
		radial-gradient(circle at 12% 16%, rgba(255,255,255,.45), transparent 24%),
		repeating-linear-gradient(0deg, rgba(142,91,35,.018) 0, rgba(142,91,35,.018) 1px, transparent 1px, transparent 6px),
		linear-gradient(145deg, rgba(255, 252, 239, 0.97), rgba(250, 240, 211, 0.95));
	border: 2px solid rgba(255, 255, 255, 0.7);
	box-shadow:
		0 16px 38px rgba(58, 40, 17, 0.14),
		inset 0 0 0 1px rgba(173, 121, 50, 0.18),
		inset 0 1px 0 rgba(255, 255, 255, 0.9);
	box-sizing: border-box;
}
.iiec-rsvp > :not(.iiec-rsvp-sheet-surface) {
	position: relative;
	z-index: 1;
}


/* Event Detail 0.5.52: Community Guest List paper is a real independent layer. */
.iiec-rsvp { position: relative; }
.iiec-attendee-area {
    position: relative;
    isolation: isolate;
    padding: clamp(24px, 3vw, 38px);
    margin-top: 20px;
}
.iiec-rsvp-list-heading { position: relative; z-index: 3 !important; }
.iiec-attendee-sheet-surface {
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    pointer-events: none;
    overflow: hidden;
    border-radius: 28px;
    box-sizing: border-box;
}
.iiec-attendee-sheet-surface > .iiec-studio-component-art {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: fill !important;
    pointer-events: none !important;
}
.iiec-rsvp-session-groups {
    position: relative;
    z-index: 2 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
}
.iiec-rsvp-session-groups::before,
.iiec-rsvp-session-groups::after { content: none !important; display: none !important; }
.iiec-single-event.iiec-studio-preview .iiec-rsvp-sheet-surface,
.iiec-single-event.iiec-studio-preview .iiec-attendee-sheet-surface {
    pointer-events: auto !important;
}


/* ==========================================================================
   Studio 0.5.53 stabilization: one real RSVP sheet owner
   ========================================================================== */
.iiec-rsvp {
	position: relative !important;
	isolation: isolate;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	overflow: visible !important;
}
.iiec-rsvp::before,
.iiec-rsvp::after {
	content: none !important;
	display: none !important;
}
.iiec-rsvp-sheet-surface {
	position: absolute;
	inset: 0;
	z-index: 0;
	display: block;
	box-sizing: border-box;
	border-radius: 28px;
	background:
		radial-gradient(circle at 12% 8%, rgba(255,255,255,.52), transparent 26%),
		repeating-linear-gradient(0deg, rgba(91,59,31,.016) 0, rgba(91,59,31,.016) 1px, transparent 1px, transparent 7px),
		linear-gradient(145deg, var(--iiec-cream-light, #fffaf0), var(--iiec-cream, #efe2c8));
	border: 1px solid rgba(126,88,49,.25);
	box-shadow: 0 14px 32px rgba(57,38,21,.12), inset 0 1px 0 rgba(255,255,255,.78), inset 0 0 0 1px rgba(255,255,255,.22);
	pointer-events: none;
}
.iiec-rsvp > :not(.iiec-rsvp-sheet-surface) {
	position: relative;
	z-index: 1;
}
.iiec-attendee-area,
.iiec-rsvp-session-groups,
.iiec-rsvp-list-heading {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}


/* Event Detail template-unit architecture (0.5.54)
 * The RSVP wrapper owns flow/content only. The dedicated surface element owns
 * the complete paper appearance so Studio can later move/replace one sheet
 * without leaving a duplicate CSS-painted sheet behind. */
.iiec-rsvp {
    position: relative;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    overflow: visible !important;
}
.iiec-rsvp::before {
    display: none !important;
    content: none !important;
}
.iiec-rsvp-sheet-surface {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    border-radius: 28px;
    overflow: hidden;
    background:
        linear-gradient(145deg, rgba(255, 252, 239, 0.97), rgba(250, 240, 211, 0.95));
    border: 2px solid rgba(255, 255, 255, 0.7);
    box-shadow:
        0 16px 38px rgba(58, 40, 17, 0.14),
        inset 0 0 0 1px rgba(173, 121, 50, 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
.iiec-rsvp-sheet-surface::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 12% 16%, rgba(255,255,255,.45), transparent 24%),
        repeating-linear-gradient(0deg, rgba(142,91,35,.018) 0, rgba(142,91,35,.018) 1px, transparent 1px, transparent 6px);
}
.iiec-rsvp > *:not(.iiec-rsvp-sheet-surface) {
    position: relative;
    z-index: 1;
}


/* 0.5.69: user-added Event Detail image components. */
.single-iiec_event .iiec-v2-canvas{position:relative}
.single-iiec_event .iiec-v2-custom-components{position:absolute;inset:0;z-index:25;pointer-events:none;overflow:visible;contain:none}
.single-iiec_event .iiec-v2-custom-component{position:absolute;left:0;top:0;width:300px;height:auto;max-width:none;overflow:visible;pointer-events:auto;transform-origin:center center}
.single-iiec_event .iiec-v2-custom-component img{display:block;width:100%;height:auto;max-width:none;pointer-events:none}

/* dev.70 RSVP comment interaction: one illustrated modal owner; the whole attendee chip opens it. */
.iiec-rsvp-person.has-comment{cursor:pointer!important}.iiec-rsvp-person.has-comment:focus-visible{outline:3px solid rgba(31,143,188,.45)!important;outline-offset:3px!important}.iiec-rsvp-modal-content{background-image:none!important}


/* ========================================================================== */
/* Event Calendar 3.0.0-dev.99 — unified Imagine Island display typography    */
/* Lucky Sky is the site display role; Luckiest Guy is the guaranteed fallback. */
:root {
    --iiec-display-font: "Lucky Sky", "Luckiest Guy", "Lilita One", "Arial Rounded MT Bold", "Trebuchet MS", cursive;
}

/* Event detail / session / RSVP title hierarchy. */
.iiec-event-hero-overlay h1,
.iiec-event-intro h1,
.iiec-event-main-card > h2,
.iiec-section-title,
.iiec-rsvp-title,
.iiec-rsvp-heading h2,
.iiec-rsvp-list-heading h2,
.iiec-rsvp-form-card h3,
.iiec-rsvp-session-head h3,
.iiec-recap-card h2,
.iiec-session-public-card strong,
.iiec-host-details strong,
.iiec-host-card strong,
.iiec-back-to-calendar-card-copy strong,
.iiec-rsvp-submit {
    font-family: var(--iiec-display-font) !important;
    font-weight: 400 !important;
}

/* Small display labels/badges use the same visual voice, while paragraph copy
 * and actual time/date values stay on the readable body stack. */
.iiec-event-eyebrow,
.iiec-rsvp-kicker,
.iiec-recap-kicker,
.iiec-status-badge,
.iiec-feature-badge,
.iiec-v2-featured-media-label {
    font-family: var(--iiec-display-font) !important;
    font-weight: 400 !important;
    letter-spacing: .035em;
}


/* 3.0.0-dev.108: RSVP comments, recording notice, and official Bluejay RSVP identity. */
.iiec-rsvp-recording-notice{display:flex;align-items:flex-start;gap:14px;margin-top:18px;padding:16px 18px;border:1px solid #e7d9b9;border-radius:18px;background:#fff9e9;color:#173f58;box-shadow:0 4px 12px rgba(78,57,26,.06)}
.iiec-rsvp-recording-icon{flex:0 0 auto;font-size:28px;line-height:1.1}
.iiec-rsvp-recording-notice strong{display:block;margin:0 0 4px;font-family:var(--iiec-display-font, "Lucky Sky", "Luckiest Guy", "Arial Rounded MT Bold", sans-serif)!important;font-weight:400!important;font-size:20px;line-height:1.05;color:#173f58}
.iiec-rsvp-recording-notice p{margin:0;font-family:inherit;font-size:14px;line-height:1.45;color:#4b6474}
.iiec-rsvp-avatar-bluejay[hidden]{display:none!important}
.iiec-rsvp-avatar-bluejay .iiec-rsvp-avatar-choice{box-shadow:0 0 0 3px rgba(255,207,63,.4)}
@media(max-width:700px){.iiec-rsvp-recording-notice{padding:14px;gap:10px}.iiec-rsvp-recording-icon{font-size:24px}}

.iiec-v2-event-body .iiec-v2-event-signoff{display:flex;justify-content:flex-start;align-items:center;margin:24px 0 2px;padding:6px 0 0}.iiec-v2-event-body .iiec-v2-event-signoff img{display:block;width:min(360px,58%);height:auto;max-height:220px;object-fit:contain}


/* ========================================================================== */
/* 3.0.0-dev.121 — replaceable image-backed RSVP comment popup                */
/* ========================================================================== */
.iiec-rsvp-modal-dialog {
    position: relative !important;
    display: block !important;
    width: min(760px, calc(100vw - 32px)) !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100vh - 28px) !important;
    aspect-ratio: auto !important;
    padding: 0 !important;
    overflow: visible !important;
    background: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
.iiec-rsvp-modal-art {
    position: relative !important;
    z-index: 0 !important;
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: none !important;
    max-height: calc(100vh - 28px) !important;
    object-fit: contain !important;
    pointer-events: none !important;
    user-select: none !important;
}
.iiec-rsvp-modal-content {
    position: absolute !important;
    z-index: 1 !important;
    top: 18.5% !important;
    right: 12.5% !important;
    bottom: 14.5% !important;
    left: 12.5% !important;
    display: grid !important;
    grid-template-rows: auto auto minmax(0, 1fr) !important;
    align-items: center !important;
    justify-items: center !important;
    width: auto !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    box-sizing: border-box !important;
    text-align: center !important;
}
.iiec-rsvp-modal-label {
    margin: 0 auto clamp(5px, .9vw, 10px) !important;
    padding: 5px 13px !important;
    max-width: 88% !important;
}
.iiec-rsvp-modal-dialog h3 {
    margin: 0 auto clamp(10px, 1.45vw, 17px) !important;
    max-width: 100% !important;
    font-size: clamp(28px, 4vw, 46px) !important;
    line-height: 1.02 !important;
}
.iiec-rsvp-modal-comment,
.iiec-rsvp-modal-dialog.is-medium-comment .iiec-rsvp-modal-comment,
.iiec-rsvp-modal-dialog.is-long-comment .iiec-rsvp-modal-comment {
    align-self: stretch !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 clamp(4px, 1vw, 10px) 3px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    box-sizing: border-box !important;
    font-size: clamp(17px, 2vw, 22px) !important;
    line-height: 1.42 !important;
}
.iiec-rsvp-modal-dialog.is-medium-comment h3,
.iiec-rsvp-modal-dialog.is-long-comment h3 {
    font-size: clamp(25px, 3.55vw, 40px) !important;
}
.iiec-rsvp-modal-dialog.is-medium-comment .iiec-rsvp-modal-comment {
    font-size: clamp(15px, 1.8vw, 19px) !important;
}
.iiec-rsvp-modal-dialog.is-long-comment .iiec-rsvp-modal-comment {
    font-size: clamp(13px, 1.55vw, 17px) !important;
    line-height: 1.34 !important;
}
@media screen and (max-width: 640px) {
    .iiec-rsvp-modal-dialog { width: min(620px, calc(100vw - 12px)) !important; }
    .iiec-rsvp-modal-art { max-height: calc(100vh - 12px) !important; }
    .iiec-rsvp-modal-content { top: 18% !important; right: 11.5% !important; bottom: 14% !important; left: 11.5% !important; }
    .iiec-rsvp-modal-label { margin-bottom: 4px !important; padding: 4px 9px !important; font-size: clamp(9px, 2.7vw, 11px) !important; }
    .iiec-rsvp-modal-dialog h3 { margin-bottom: 7px !important; font-size: clamp(21px, 6.5vw, 30px) !important; }
    .iiec-rsvp-modal-comment,
    .iiec-rsvp-modal-dialog.is-medium-comment .iiec-rsvp-modal-comment,
    .iiec-rsvp-modal-dialog.is-long-comment .iiec-rsvp-modal-comment { font-size: clamp(13px, 3.8vw, 17px) !important; line-height: 1.32 !important; }
    .iiec-rsvp-modal-dialog.is-long-comment h3 { font-size: clamp(19px, 5.8vw, 26px) !important; }
    .iiec-rsvp-modal-dialog.is-long-comment .iiec-rsvp-modal-comment { font-size: clamp(11px, 3.25vw, 15px) !important; }
}


/* 3.0.0-dev.124 - Game Code help uses the canonical Imagine Island orange. */
.iiec-game-code-help-trigger{
    background:#f28c28!important;
    color:#fff!important;
    box-shadow:0 3px 0 #b65a0d,0 5px 10px rgba(140,76,15,.20)!important;
}
.iiec-game-code-help-trigger:hover,
.iiec-game-code-help-trigger:focus,
.iiec-game-code-help-trigger:focus-visible{
    background:#df7617!important;
    color:#fff!important;
    box-shadow:0 4px 0 #b65a0d,0 7px 13px rgba(140,76,15,.22)!important;
}
.iiec-game-code-help-trigger:active{
    background:#df7718!important;
    box-shadow:0 1px 0 #9f4908,0 2px 5px rgba(140,76,15,.18)!important;
}
.iiec-game-code-help-trigger:focus-visible{
    outline:3px solid rgba(242,140,40,.30)!important;
    outline-offset:3px!important;
}
