/* Pediatric People Night Launch — all selectors are component-scoped. */
.pp-night-launch {
	--pp-navy-950: #0b1330;
	--pp-navy-900: #111c46;
	--pp-navy-800: #17235c;
	--pp-navy-700: #26325e;
	--pp-ink: #2b3350;
	--pp-muted: #5b6480;
	--pp-blue: #00aeef;
	--pp-blue-dark: #0077b0;
	--pp-pink: #ef24b7;
	--pp-pink-dark: #a70e7d;
	--pp-yellow: #ffc94d;
	--pp-paper: #fbfdff;
	--pp-white: #ffffff;
	--pp-container: 1184px;
	position: relative;
	left: 50%;
	width: 100vw;
	max-width: none;
	margin: 0 0 0 -50vw;
	overflow: hidden;
	background: var(--pp-paper);
	color: var(--pp-ink);
	font-family: "Mulish", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

.pp-night-launch,
.pp-night-launch * {
	box-sizing: border-box;
}

.pp-night-launch main,
.pp-night-launch section,
.pp-night-launch article,
.pp-night-launch header,
.pp-night-launch nav {
	display: block;
}

.pp-night-launch h1,
.pp-night-launch h2,
.pp-night-launch h3,
.pp-night-launch p {
	margin-top: 0;
}

.pp-night-launch a {
	color: var(--pp-blue-dark);
	text-decoration: none;
	text-underline-offset: 0.18em;
}

.pp-night-launch a:hover {
	color: #005c89;
}

.pp-night-launch a:focus-visible {
	outline: 3px solid var(--pp-yellow);
	outline-offset: 4px;
	border-radius: 4px;
}

.pp-container {
	position: relative;
	z-index: 2;
	width: min(100% - 48px, var(--pp-container));
	margin-inline: auto;
}

.pp-skip-link {
	position: fixed;
	top: 12px;
	left: 12px;
	z-index: 10000;
	padding: 10px 16px;
	border-radius: 8px;
	background: var(--pp-white);
	color: var(--pp-navy-950) !important;
	font-weight: 800;
	transform: translateY(-160%);
	transition: transform 160ms ease;
}

.pp-skip-link:focus {
	transform: translateY(0);
}

.pp-script {
	margin-bottom: 0;
	font-family: "Caveat", "Segoe Print", cursive;
	font-size: clamp(1.8rem, 3vw, 2.25rem);
	font-weight: 700;
	line-height: 1.1;
}

/* Hero */
.pp-hero {
	position: relative;
	isolation: isolate;
	min-height: 620px;
	padding: clamp(52px, 6vw, 78px) 0 58px;
	overflow: hidden;
	background: linear-gradient(175deg, var(--pp-navy-800) 0%, var(--pp-navy-900) 48%, var(--pp-navy-950) 100%);
}

.pp-stars {
	position: absolute;
	inset: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	opacity: 0.95;
}

.pp-hero-glow {
	position: absolute;
	z-index: -1;
	width: 560px;
	aspect-ratio: 1;
	border-radius: 50%;
	pointer-events: none;
}

.pp-hero-glow--blue {
	top: -230px;
	left: -160px;
	background: radial-gradient(circle, rgb(0 174 239 / 24%), rgb(0 174 239 / 0%) 70%);
}

.pp-hero-glow--pink {
	right: -160px;
	bottom: -300px;
	width: 660px;
	background: radial-gradient(circle, rgb(239 36 183 / 18%), rgb(239 36 183 / 0%) 70%);
}

.pp-hero-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(330px, 430px);
	align-items: center;
	gap: clamp(28px, 5vw, 64px);
}

.pp-hero-copy {
	max-width: 650px;
}

.pp-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	max-width: 100%;
	padding: 9px 18px;
	border: 2px solid var(--pp-yellow);
	border-radius: 999px;
	color: var(--pp-yellow);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	line-height: 1.35;
	text-transform: uppercase;
}

.pp-hero-script {
	margin-top: 18px;
	color: var(--pp-yellow);
}

.pp-hero h1 {
	max-width: 660px;
	margin: 7px 0 0;
	color: var(--pp-white);
	font-family: "Comfortaa", "Trebuchet MS", sans-serif;
	font-size: clamp(2.75rem, 5vw, 4rem);
	font-weight: 700;
	letter-spacing: -0.04em;
	line-height: 1.1;
}

.pp-hero h1 span {
	color: var(--pp-blue);
}

.pp-squiggle {
	display: block;
	width: min(300px, 55%);
	height: 12px;
	margin-top: 13px;
}

.pp-squiggle path {
	fill: none;
	stroke: var(--pp-pink);
	stroke-linecap: round;
	stroke-width: 4;
}

.pp-hero-lead {
	max-width: 610px;
	margin: 18px 0 0;
	color: #d5dcf1;
	font-size: clamp(1.08rem, 1.7vw, 1.24rem);
	font-weight: 500;
	line-height: 1.65;
}

.pp-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 30px;
}

.pp-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	padding: 14px 28px;
	border: 2px solid transparent;
	border-radius: 999px;
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
	transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

.pp-button:hover {
	transform: translateY(-2px);
}

.pp-button--primary,
.pp-button--primary:hover {
	background: var(--pp-blue);
	box-shadow: 0 6px 0 var(--pp-blue-dark);
	color: var(--pp-navy-950);
}

.pp-button--primary:hover {
	box-shadow: 0 8px 0 var(--pp-blue-dark);
}

.pp-button--outline-pink,
.pp-button--outline-pink:hover {
	border-color: var(--pp-pink);
	background: rgb(11 19 48 / 28%);
	color: var(--pp-white);
}

.pp-button--outline-pink:hover {
	background: rgb(239 36 183 / 14%);
}

.pp-rocket-wrap {
	display: grid;
	place-items: center;
	min-width: 0;
}

.pp-rocket {
	display: block;
	width: min(100%, 410px);
	height: auto;
	filter: drop-shadow(0 24px 30px rgb(3 8 27 / 25%));
	animation: pp-float 5s ease-in-out infinite;
}

@keyframes pp-float {
	0%, 100% { transform: translateY(0) rotate(-0.4deg); }
	50% { transform: translateY(-10px) rotate(0.7deg); }
}

.pp-cloud-divider {
	position: relative;
	z-index: 3;
	height: 70px;
	margin-top: -1px;
	background: var(--pp-navy-950);
	line-height: 0;
}

.pp-cloud-divider svg {
	display: block;
	width: 100%;
	height: 70px;
}

/* Trust */
.pp-trust {
	padding: 32px 0 38px;
	background: var(--pp-paper);
}

.pp-trust-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
}

.pp-trust-grid::before {
	position: absolute;
	top: 27px;
	left: 10%;
	right: 10%;
	z-index: -1;
	border-top: 3px dashed #c9d6ee;
	content: "";
}

.pp-trust-item {
	display: flex;
	align-items: center;
	flex-direction: column;
	text-align: center;
}

.pp-trust-icon {
	display: grid;
	width: 54px;
	height: 54px;
	place-items: center;
	border: 2px solid #dbe5f6;
	border-radius: 50%;
	background: var(--pp-paper);
	color: #b36b00;
	font-size: 1.55rem;
}

.pp-trust-item strong {
	margin-top: 10px;
	font-size: 1.04rem;
	font-weight: 800;
}

.pp-trust-item > span:last-child {
	margin-top: 3px;
	color: var(--pp-muted);
	font-size: 0.88rem;
	font-weight: 600;
}

/* Shared section headings */
.pp-section-heading {
	max-width: 760px;
	margin-inline: auto;
	text-align: center;
}

.pp-section-heading .pp-script {
	color: var(--pp-pink-dark);
}

.pp-section-heading h2 {
	margin: 5px 0 0;
	color: var(--pp-ink);
	font-family: "Comfortaa", "Trebuchet MS", sans-serif;
	font-size: clamp(2rem, 4vw, 2.65rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.2;
}

.pp-section-heading > p:last-child:not(.pp-script) {
	margin: 9px 0 0;
	color: var(--pp-muted);
	font-family: "Caveat", "Segoe Print", cursive;
	font-size: 1.65rem;
	font-weight: 600;
}

/* Missions */
.pp-missions {
	padding: 34px 0 70px;
	background: var(--pp-paper);
}

.pp-mission-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
	margin-top: 38px;
}

.pp-mission-card {
	--pp-card-bg: #dff4fd;
	--pp-card-shadow: #b9e6fa;
	--pp-card-accent: var(--pp-blue-dark);
	display: flex;
	min-height: 250px;
	flex-direction: column;
	padding: 25px;
	border: 2px solid var(--pp-ink);
	border-radius: 22px;
	background: var(--pp-card-bg);
	box-shadow: 7px 7px 0 var(--pp-card-shadow);
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.pp-mission-card:nth-child(odd) { transform: rotate(-0.65deg); }
.pp-mission-card:nth-child(even) { transform: rotate(0.65deg); }
.pp-mission-card:hover { transform: translateY(-5px) rotate(0); box-shadow: 9px 12px 0 var(--pp-card-shadow); }

.pp-card-yellow { --pp-card-bg: #fff3d1; --pp-card-shadow: #f0d89a; --pp-card-accent: #765500; }
.pp-card-pink { --pp-card-bg: #fde3f6; --pp-card-shadow: #f6c3e7; --pp-card-accent: #a70e7d; }
.pp-card-purple { --pp-card-bg: #ecebfa; --pp-card-shadow: #cfcbef; --pp-card-accent: #5149ae; }

.pp-card-top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
}

.pp-card-icon {
	display: grid;
	width: 44px;
	height: 44px;
	place-items: center;
	border: 2px solid var(--pp-ink);
	border-radius: 13px;
	font-size: 1.6rem;
	font-weight: 800;
	line-height: 1;
}

.pp-card-number {
	color: var(--pp-card-accent);
	font-family: "Caveat", "Segoe Print", cursive;
	font-size: 1.55rem;
	font-weight: 700;
}

.pp-mission-card h3 {
	margin: 15px 0 7px;
	color: var(--pp-ink);
	font-family: "Comfortaa", "Trebuchet MS", sans-serif;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.3;
}

.pp-mission-card p {
	margin-bottom: 14px;
	color: #373f5b;
	font-size: 0.96rem;
	line-height: 1.58;
}

.pp-mission-card a {
	margin-top: auto;
	align-self: flex-start;
	color: var(--pp-card-accent);
	font-weight: 800;
}

.pp-mission-card a:hover {
	color: var(--pp-navy-950);
	text-decoration: underline;
}

/* Crew */
.pp-wave {
	height: 40px;
	line-height: 0;
}

.pp-wave svg {
	display: block;
	width: 100%;
	height: 40px;
}

.pp-wave--top { background: var(--pp-paper); }
.pp-wave--top path { fill: var(--pp-navy-900); }
.pp-wave--bottom { background: var(--pp-navy-900); }
.pp-wave--bottom path { fill: var(--pp-paper); }

.pp-crew {
	position: relative;
	padding: 38px 0 56px;
	background-color: var(--pp-navy-900);
	background-image:
		radial-gradient(circle at 12% 18%, #ffe7b3 0 1.5px, transparent 2px),
		radial-gradient(circle at 41% 9%, #ffe7b3 0 1px, transparent 1.5px),
		radial-gradient(circle at 76% 15%, #ffe7b3 0 1.4px, transparent 2px),
		radial-gradient(circle at 91% 70%, #ffe7b3 0 1.2px, transparent 1.8px);
}

.pp-section-heading--dark .pp-script { color: var(--pp-yellow); }
.pp-section-heading--dark h2 { color: var(--pp-white); }

.pp-provider-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 20px;
	margin-top: 34px;
}

.pp-provider-card {
	padding: 22px 15px 20px;
	border: 2px solid var(--pp-navy-700);
	border-radius: 22px;
	background: rgb(11 19 48 / 82%);
	text-align: center;
	transition: transform 180ms ease, border-color 180ms ease;
}

.pp-provider-card:hover {
	border-color: #465584;
	transform: translateY(-4px);
}

.pp-provider-photo {
	width: min(132px, 90%);
	aspect-ratio: 1;
	margin: 0 auto;
	padding: 6px;
	border: 3px dashed var(--pp-yellow);
	border-radius: 50%;
}

.pp-provider-photo img {
	display: block;
	width: 100%;
	height: 100%;
	border: 3px solid var(--pp-blue);
	border-radius: 50%;
	object-fit: cover;
}

.pp-provider-card:nth-child(2) .pp-provider-photo img,
.pp-provider-card:nth-child(4) .pp-provider-photo img { border-color: var(--pp-pink); }
.pp-provider-card:nth-child(3) .pp-provider-photo img { border-color: var(--pp-yellow); }
.pp-provider-card:nth-child(5) .pp-provider-photo img { border-color: #8c85e8; }

.pp-provider-card h3 {
	margin: 15px 0 5px;
	color: var(--pp-white);
	font-family: "Comfortaa", "Trebuchet MS", sans-serif;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.4;
}

.pp-provider-card p {
	margin-bottom: 0;
	color: #c7d0ea;
	font-size: 0.84rem;
	font-weight: 600;
	line-height: 1.45;
}

.pp-provider-link {
	margin: 28px 0 0;
	text-align: center;
}

.pp-provider-link a {
	color: #5dcdf6;
	font-size: 1rem;
	font-weight: 800;
}

.pp-provider-link a:hover {
	color: var(--pp-white);
	text-decoration: underline;
}

/* Final CTA */
.pp-final-cta {
	padding: 48px 0 74px;
	background: var(--pp-paper);
}

.pp-final-card {
	position: relative;
	isolation: isolate;
	padding: clamp(42px, 6vw, 62px) 24px;
	overflow: hidden;
	border-radius: 28px;
	background: linear-gradient(160deg, var(--pp-navy-800), var(--pp-navy-950));
	box-shadow: 0 22px 55px rgb(17 28 70 / 16%);
	text-align: center;
}

.pp-final-card::before,
.pp-final-card::after {
	position: absolute;
	z-index: -1;
	width: 320px;
	aspect-ratio: 1;
	border-radius: 50%;
	content: "";
}

.pp-final-card::before {
	top: -220px;
	left: -100px;
	background: radial-gradient(circle, rgb(0 174 239 / 27%), transparent 70%);
}

.pp-final-card::after {
	right: -120px;
	bottom: -240px;
	background: radial-gradient(circle, rgb(239 36 183 / 20%), transparent 70%);
}

.pp-final-stars {
	position: absolute;
	top: 26px;
	right: 34px;
	color: var(--pp-yellow);
	font-size: 0.85rem;
	letter-spacing: 0.1em;
}

.pp-final-card .pp-script {
	margin-bottom: 0;
	color: var(--pp-yellow);
	font-size: clamp(2rem, 4vw, 2.7rem);
}

.pp-final-card h2 {
	margin: 8px 0 0;
	color: var(--pp-white);
	font-family: "Comfortaa", "Trebuchet MS", sans-serif;
	font-size: clamp(1.75rem, 3.4vw, 2.35rem);
	font-weight: 700;
	line-height: 1.25;
}

.pp-actions--center {
	justify-content: center;
}

.pp-button--outline-light,
.pp-button--outline-light:hover {
	border-color: var(--pp-white);
	background: transparent;
	color: var(--pp-white);
}

.pp-button--outline-light:hover {
	background: rgb(255 255 255 / 10%);
}

.pp-address {
	margin: 24px 0 0;
	color: #aeb8d8;
	font-size: 0.9rem;
	font-weight: 700;
}

.pp-mobile-actions {
	display: none;
}

/* Tablet */
@media (max-width: 1050px) {
	.pp-hero-layout { grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); }
	.pp-provider-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.pp-provider-card:nth-child(4) { grid-column: 1 / 2; }
	.pp-provider-card:nth-child(5) { grid-column: 2 / 3; }
}

@media (max-width: 860px) {
	.pp-hero { min-height: 0; padding-top: 52px; }
	.pp-hero-layout { grid-template-columns: 1fr; }
	.pp-hero-copy { max-width: 700px; margin-inline: auto; text-align: center; }
	.pp-eyebrow { justify-content: center; }
	.pp-squiggle { margin-inline: auto; }
	.pp-hero-lead { margin-inline: auto; }
	.pp-actions { justify-content: center; }
	.pp-rocket-wrap { margin-top: -10px; }
	.pp-rocket { width: min(76vw, 360px); }
	.pp-trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 34px; }
	.pp-trust-grid::before { display: none; }
	.pp-mission-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Mobile */
@media (max-width: 640px) {
	.pp-night-launch { padding-bottom: 72px; }
	.pp-container { width: min(100% - 32px, var(--pp-container)); }
	.pp-hero { padding-top: 42px; padding-bottom: 34px; }
	.pp-eyebrow { padding: 8px 13px; font-size: 0.68rem; letter-spacing: 0.11em; }
	.pp-hero-script { margin-top: 15px; }
	.pp-hero h1 { font-size: clamp(2.35rem, 12vw, 3.15rem); }
	.pp-hero-lead { font-size: 1.04rem; line-height: 1.58; }
	.pp-actions { flex-direction: column; align-items: stretch; gap: 13px; }
	.pp-button { width: 100%; }
	.pp-rocket { width: min(84vw, 330px); }
	.pp-cloud-divider,
	.pp-cloud-divider svg { height: 48px; }
	.pp-trust { padding-top: 25px; }
	.pp-trust-grid { gap: 28px 16px; }
	.pp-trust-item strong { font-size: 0.96rem; }
	.pp-trust-item > span:last-child { font-size: 0.8rem; }
	.pp-missions { padding: 28px 0 58px; }
	.pp-mission-grid { grid-template-columns: 1fr; gap: 22px; margin-top: 30px; }
	.pp-mission-card,
	.pp-mission-card:nth-child(odd),
	.pp-mission-card:nth-child(even) { min-height: 0; transform: none; }
	.pp-provider-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
	.pp-provider-card:nth-child(4),
	.pp-provider-card:nth-child(5) { grid-column: auto; }
	.pp-provider-grid--odd .pp-provider-card:last-child { grid-column: 1 / -1; width: calc(50% - 8px); justify-self: center; }
	.pp-provider-card { padding: 17px 10px 16px; border-radius: 18px; }
	.pp-provider-photo { width: min(116px, 92%); }
	.pp-provider-card h3 { font-size: 0.92rem; }
	.pp-provider-card p { font-size: 0.78rem; }
	.pp-final-cta { padding: 36px 0 48px; }
	.pp-final-card { border-radius: 22px; }
	.pp-final-stars { right: 18px; font-size: 0.72rem; }
	.pp-address { font-size: 0.82rem; }
	.pp-mobile-actions {
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 9998;
		display: grid;
		grid-template-columns: 0.8fr 1.2fr;
		padding: 9px max(12px, env(safe-area-inset-right)) calc(9px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
		border-top: 1px solid #d9e2f2;
		background: rgb(255 255 255 / 95%);
		box-shadow: 0 -8px 24px rgb(11 19 48 / 14%);
		backdrop-filter: blur(12px);
	}
	.pp-mobile-actions a {
		display: flex;
		min-height: 48px;
		align-items: center;
		justify-content: center;
		gap: 7px;
		border-radius: 999px;
		font-size: 0.94rem;
		font-weight: 800;
	}
	.pp-mobile-actions a:first-child { color: var(--pp-blue-dark); }
	.pp-mobile-actions a:last-child { background: var(--pp-blue); color: var(--pp-navy-950); }
}

@media (max-width: 374px) {
	.pp-trust-grid { grid-template-columns: 1fr; }
	.pp-provider-grid { grid-template-columns: 1fr; }
	.pp-provider-grid--odd .pp-provider-card:last-child { grid-column: auto; width: 100%; }
	.pp-provider-card { display: grid; grid-template-columns: 96px 1fr; align-items: center; column-gap: 14px; text-align: left; }
	.pp-provider-photo { grid-row: 1 / 3; width: 96px; }
	.pp-provider-card h3 { align-self: end; margin: 0 0 4px; }
	.pp-provider-card p { align-self: start; }
}

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

@media print {
	.pp-night-launch { left: auto; width: 100%; margin: 0; padding: 0; }
	.pp-mobile-actions { display: none !important; }
	.pp-hero,
	.pp-crew,
	.pp-final-card { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}

/* ==========================================================================
   1.2.0 fixes
   ========================================================================== */

/* Fix 1: button text colors. `.pp-night-launch a` out-ranked the button
   modifiers, painting all button text dark cyan (about 1.9:1 on the cyan button). */
.pp-night-launch a.pp-button--primary,
.pp-night-launch a.pp-button--primary:hover,
.pp-night-launch a.pp-button--primary:focus-visible { color: var(--pp-navy-950) !important; }
.pp-night-launch a.pp-button--outline-pink,
.pp-night-launch a.pp-button--outline-pink:hover,
.pp-night-launch a.pp-button--outline-pink:focus-visible,
.pp-night-launch a.pp-button--outline-light,
.pp-night-launch a.pp-button--outline-light:hover,
.pp-night-launch a.pp-button--outline-light:focus-visible { color: var(--pp-white) !important; }

/* Fix 2: sticky Call/Book bar. The `.pp-night-launch nav { display:block }`
   reset beat both the desktop `display:none` and the mobile grid. */
.pp-night-launch nav.pp-mobile-actions { display: none !important; }
@media (max-width: 640px) {
	.pp-night-launch nav.pp-mobile-actions { display: grid !important; gap: 10px; align-items: center; }
	.pp-night-launch .pp-mobile-actions a:first-child { color: var(--pp-blue-dark) !important; border: 2px solid var(--pp-blue); }
	.pp-night-launch .pp-mobile-actions a:last-child { color: var(--pp-navy-950) !important; }
}
@media print {
	.pp-night-launch nav.pp-mobile-actions { display: none !important; }
}

/* ==========================================================================
   1.3.0 mobile layout
   ========================================================================== */
@media (max-width: 640px) {

	/* Badge: keep on one line */
	.pp-night-launch .pp-eyebrow { white-space: nowrap !important; letter-spacing: 0.06em !important; font-size: 0.62rem !important; padding: 7px 12px !important; }

	/* Hero: smaller rocket, tighter spacing */
	.pp-night-launch .pp-hero { padding-bottom: 8px !important; }
	.pp-night-launch .pp-rocket-wrap { margin-top: 6px !important; }
	.pp-night-launch .pp-rocket { width: 190px !important; }


	/* Final CTA duplicates the sticky Call/Book bar on phones */
	.pp-night-launch .pp-final-cta { display: none !important; }
	.pp-night-launch .pp-crew { padding-bottom: 34px !important; }
}

/* Wave and cloud dividers: crop instead of squish.
   The SVGs are drawn at 1280px. Scaling them to a phone width compressed every
   scallop horizontally into tall, pointy teeth. Keeping them at least 1280px wide
   and centering them preserves the desktop shape at every screen size. */
.pp-night-launch .pp-wave,
.pp-night-launch .pp-cloud-divider { overflow: hidden !important; }
.pp-night-launch .pp-wave svg,
.pp-night-launch .pp-cloud-divider svg {
	position: relative !important;
	left: 50% !important;
	width: max(100%, 1280px) !important;
	max-width: none !important;
	transform: translateX(-50%) !important;
}
@media (max-width: 640px) {
	.pp-night-launch .pp-cloud-divider,
	.pp-night-launch .pp-cloud-divider svg { height: 70px !important; }
}

/* Crew dividers: same long, shallow swell as the hero's bottom edge */
.pp-night-launch .pp-wave,
.pp-night-launch .pp-wave svg { height: 70px !important; }
.pp-night-launch .pp-wave--top,
.pp-night-launch .pp-wave--bottom { background: var(--pp-navy-900) !important; }
.pp-night-launch .pp-wave .pp-wave-back { fill: #26325e !important; opacity: .55 !important; }
.pp-night-launch .pp-wave .pp-wave-front { fill: var(--pp-paper) !important; opacity: 1 !important; }
.pp-night-launch .pp-wave--top { margin-bottom: -1px !important; }
.pp-night-launch .pp-wave--bottom { margin-top: -1px !important; }

/* ==========================================================================
   1.3.2 service cards as storybook boarding passes
   ========================================================================== */
.pp-night-launch .pp-mission-card {
	position: relative !important;
	display: grid !important;
	grid-template-columns: 74px minmax(0, 1fr) !important;
	min-height: 0 !important;
	padding: 0 !important;
	border-radius: 18px !important;
}
.pp-night-launch .pp-ticket-stub {
	display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: space-between !important;
	gap: 10px !important; padding: 16px 0 !important; border-right: 2px dashed var(--pp-ink) !important;
}
.pp-night-launch .pp-ticket-stub .pp-card-number { font-size: 1.6rem !important; line-height: 1 !important; }
.pp-night-launch .pp-ticket-flight {
	writing-mode: vertical-rl !important; transform: rotate(180deg) !important;
	color: var(--pp-ink) !important; font-size: 0.64rem !important; font-weight: 800 !important; letter-spacing: 0.24em !important; opacity: 0.75 !important;
}
.pp-night-launch .pp-ticket-stub .pp-card-icon { width: 40px !important; height: 40px !important; border-radius: 12px !important; background: #fff !important; font-size: 1.25rem !important; }
.pp-night-launch .pp-ticket-main { position: relative !important; display: flex !important; flex-direction: column !important; min-width: 0 !important; padding: 20px 22px !important; }
.pp-night-launch .pp-ticket-stamp {
	position: absolute !important; top: 13px !important; right: 14px !important; transform: rotate(6deg) !important;
	padding: 3px 8px !important; border: 2.5px double var(--pp-card-accent) !important; border-radius: 7px !important;
	background: rgba(255, 255, 255, 0.6) !important; color: var(--pp-card-accent) !important;
	font-size: 0.56rem !important; font-weight: 800 !important; letter-spacing: 0.16em !important; line-height: 1.2 !important; text-transform: uppercase !important; white-space: nowrap !important;
}
.pp-night-launch .pp-ticket-route {
	display: flex !important; align-items: center !important; gap: 6px !important; padding-right: 112px !important;
	color: var(--pp-card-accent) !important; font-family: "Comfortaa", "Trebuchet MS", sans-serif !important; font-size: 0.8rem !important; font-weight: 700 !important; letter-spacing: 0.14em !important;
}
.pp-night-launch .pp-ticket-route svg { width: 13px !important; height: 13px !important; transform: rotate(90deg) !important; }
.pp-night-launch .pp-ticket-main h3 { margin: 10px 0 0 !important; font-size: 1.3rem !important; }
.pp-night-launch .pp-ticket-main p { margin: 8px 0 14px !important; }
.pp-night-launch .pp-ticket-main a { margin-top: auto !important; }
/* Punched notches where the stub tears off */
.pp-night-launch .pp-mission-card::before,
.pp-night-launch .pp-mission-card::after {
	content: "" !important; position: absolute !important; left: 61px !important; z-index: 1 !important;
	width: 24px !important; height: 24px !important; border: 2px solid var(--pp-ink) !important; border-radius: 50% !important;
	background: var(--pp-paper) !important; box-sizing: border-box !important;
}
.pp-night-launch .pp-mission-card::before { top: -13px !important; clip-path: inset(50% 0 0 0) !important; }
.pp-night-launch .pp-mission-card::after { bottom: -13px !important; clip-path: inset(0 0 50% 0) !important; }

@media (max-width: 640px) {
	.pp-night-launch .pp-mission-grid { gap: 18px !important; }
	.pp-night-launch .pp-mission-card,
	.pp-night-launch .pp-mission-card:nth-child(odd),
	.pp-night-launch .pp-mission-card:nth-child(even) { transform: none !important; }
	.pp-night-launch .pp-mission-card { grid-template-columns: 64px minmax(0, 1fr) !important; border-radius: 16px !important; box-shadow: 5px 5px 0 var(--pp-card-shadow) !important; }
	.pp-night-launch .pp-ticket-stub { justify-content: center !important; gap: 6px !important; padding: 10px 0 !important; }
	.pp-night-launch .pp-ticket-stub .pp-card-number { font-size: 1.25rem !important; }
	.pp-night-launch .pp-ticket-flight,
	.pp-night-launch .pp-ticket-stamp,
	.pp-night-launch .pp-ticket-main p { display: none !important; }
	.pp-night-launch .pp-ticket-stub .pp-card-icon { width: 34px !important; height: 34px !important; font-size: 1.05rem !important; }
	.pp-night-launch .pp-ticket-main { padding: 12px 14px !important; }
	.pp-night-launch .pp-ticket-route { padding-right: 0 !important; font-size: 0.72rem !important; }
	.pp-night-launch .pp-ticket-main h3 { margin-top: 4px !important; font-size: 1.05rem !important; }
	.pp-night-launch .pp-ticket-main a { margin-top: 4px !important; font-size: 0.85rem !important; }
	/* whole ticket is the tap target */
	.pp-night-launch .pp-ticket-main a::after { content: "" !important; position: absolute !important; inset: 0 !important; border-radius: 16px !important; }
	.pp-night-launch .pp-ticket-main { position: static !important; }
	.pp-night-launch .pp-mission-card:active { transform: translate(2px, 2px) !important; box-shadow: 3px 3px 0 var(--pp-card-shadow) !important; }
	.pp-night-launch .pp-mission-card::before,
	.pp-night-launch .pp-mission-card::after { left: 53px !important; width: 18px !important; height: 18px !important; }
	.pp-night-launch .pp-mission-card::before { top: -10px !important; }
	.pp-night-launch .pp-mission-card::after { bottom: -10px !important; }
}

/* ==========================================================================
   1.3.3 launchable rocket
   ========================================================================== */
.pp-night-launch .pp-rocket-wrap { position: relative !important; }
.pp-night-launch .pp-rocket { overflow: visible !important; }
.pp-night-launch .pp-ship,
.pp-night-launch .pp-flame,
.pp-night-launch .pp-smoke circle { transform-box: fill-box !important; }
.pp-night-launch .pp-flame { transform-origin: 50% 0% !important; }
.pp-night-launch .pp-smoke circle { transform-origin: 50% 50% !important; }

.pp-night-launch .pp-rocket-launch {
	position: absolute !important; inset: 0 !important; margin: 0 !important; padding: 0 !important;
	border: 0 !important; border-radius: 28px !important; background: transparent !important; box-shadow: none !important;
	cursor: pointer !important; -webkit-tap-highlight-color: transparent !important;
}
.pp-night-launch .pp-rocket-launch:focus-visible { outline: 3px solid var(--pp-yellow, #ffc94d) !important; outline-offset: 4px !important; }
.pp-night-launch .pp-rocket-hint {
	position: absolute !important; left: 50% !important; bottom: 2% !important; transform: translateX(-50%) rotate(-3deg) !important;
	padding: 3px 12px !important; border-radius: 999px !important; background: rgba(11, 19, 48, 0.72) !important;
	color: #ffc94d !important; font-family: "Caveat", "Segoe Print", cursive !important; font-size: 1.35rem !important; font-weight: 700 !important;
	line-height: 1.25 !important; white-space: nowrap !important; pointer-events: none !important; transition: opacity 250ms ease !important;
}
.pp-night-launch .pp-hint-mouse { display: none !important; }
@media (hover: hover) and (pointer: fine) {
	.pp-night-launch .pp-hint-touch { display: none !important; }
	.pp-night-launch .pp-hint-mouse { display: inline !important; }
}
.pp-night-launch [data-pp-rocket].is-busy .pp-rocket-hint { opacity: 0 !important; }
.pp-night-launch [data-pp-rocket].is-busy .pp-rocket-launch { cursor: default !important; }

.pp-night-launch .pp-countdown {
	position: absolute !important; top: 26% !important; left: 50% !important; margin: 0 0 0 -178px !important; min-width: 96px !important;
	color: #ffc94d !important; font-family: "Comfortaa", "Trebuchet MS", sans-serif !important; font-size: 4.2rem !important; font-weight: 700 !important;
	line-height: 1 !important; text-align: center !important; text-shadow: 0 4px 18px rgba(255, 201, 77, 0.45) !important; pointer-events: none !important;
}
.pp-night-launch .pp-countdown.is-word { font-family: "Caveat", "Segoe Print", cursive !important; font-size: 3rem !important; margin-left: -200px !important; }
.pp-night-launch .pp-countdown.pop { animation: pp-pop 520ms cubic-bezier(.34,1.56,.64,1) both !important; }
@keyframes pp-pop { 0% { opacity: 0; transform: scale(0.4); } 60% { opacity: 1; } 100% { opacity: 1; transform: scale(1); } }

@media (prefers-reduced-motion: no-preference) {
	/* Counting down: engine rumble and a growing flame */
	.pp-night-launch [data-pp-rocket].is-counting .pp-ship { animation: pp-rumble 110ms linear infinite !important; }
	.pp-night-launch [data-pp-rocket].is-counting .pp-flame { animation: pp-flame-up 2.4s ease-in forwards !important; }
	/* Liftoff: accelerate up and out of the hero, smoke billows and fades */
	.pp-night-launch [data-pp-rocket].is-launching .pp-ship { animation: pp-liftoff 1.4s cubic-bezier(.55,0,.9,.45) forwards !important; }
	.pp-night-launch [data-pp-rocket].is-launching .pp-flame { transform: scaleY(1.9) !important; }
	.pp-night-launch [data-pp-rocket].is-launching .pp-smoke circle { animation: pp-puff 1.6s ease-out forwards !important; }
	.pp-night-launch [data-pp-rocket].is-away .pp-ship { transform: translateY(-1700px) !important; animation: none !important; }
	.pp-night-launch [data-pp-rocket].is-away .pp-smoke circle { opacity: 0 !important; animation: none !important; }
	/* Return: glide back down and settle; smoke gathers again */
	.pp-night-launch [data-pp-rocket].is-landing .pp-ship { animation: pp-land 1.9s cubic-bezier(.12,.62,.28,1) forwards !important; }
	.pp-night-launch [data-pp-rocket].is-landing .pp-flame { transform: scaleY(0.8) !important; }
	.pp-night-launch [data-pp-rocket].is-landing .pp-smoke circle { animation: pp-regather 1.9s ease-in forwards !important; }
	.pp-night-launch [data-pp-rocket].is-busy .pp-rocket { animation-play-state: paused !important; }
}
@keyframes pp-rumble { 0%, 100% { transform: translate(0, 0); } 25% { transform: translate(-2px, 1px); } 50% { transform: translate(2px, -1px); } 75% { transform: translate(-1px, 1px); } }
@keyframes pp-flame-up { from { transform: scaleY(1); } to { transform: scaleY(1.35); } }
@keyframes pp-liftoff { 0% { transform: translateY(0); } 100% { transform: translateY(-1700px); } }
@keyframes pp-puff { 0% { transform: scale(1); opacity: 0.9; } 100% { transform: scale(2.1) translateY(-6px); opacity: 0; } }
@keyframes pp-land { 0% { transform: translateY(-1700px); } 100% { transform: translateY(0); } }
@keyframes pp-regather { 0%, 60% { transform: scale(0.4); opacity: 0; } 100% { transform: scale(1); opacity: 0.9; } }

@media (max-width: 640px) {
	.pp-night-launch .pp-countdown { margin-left: -150px !important; font-size: 3.2rem !important; top: 20% !important; }
	.pp-night-launch .pp-countdown.is-word { font-size: 2.3rem !important; margin-left: -168px !important; }
	.pp-night-launch .pp-rocket-hint { font-size: 1.15rem !important; bottom: -2% !important; }
}
/* The rocket flies behind the headline and buttons, never over them */
.pp-night-launch .pp-hero-copy { position: relative !important; z-index: 2 !important; }
.pp-night-launch .pp-rocket-wrap { z-index: 1 !important; }

/* ==========================================================================
   1.3.4 boarding pass moments
   ========================================================================== */
/* Stub and main side carry their own outline and shadow so the stub can tear away. */
.pp-night-launch .pp-mission-card,
.pp-night-launch .pp-mission-card:hover,
.pp-night-launch .pp-mission-card:active { border: 0 !important; background: transparent !important; box-shadow: none !important; }
.pp-night-launch .pp-ticket-stub,
.pp-night-launch .pp-ticket-main {
	background: var(--pp-card-bg) !important; border: 2px solid var(--pp-ink) !important;
	box-shadow: 7px 7px 0 var(--pp-card-shadow) !important;
	transition: transform 260ms cubic-bezier(.3,.7,.4,1), box-shadow 180ms ease !important;
}
.pp-night-launch .pp-ticket-stub { border-right: 2px dashed var(--pp-ink) !important; border-radius: 18px 0 0 18px !important; }
.pp-night-launch .pp-ticket-main { position: relative !important; z-index: 1 !important; border-left: 0 !important; border-radius: 0 18px 18px 0 !important; }
.pp-night-launch .pp-mission-card:hover .pp-ticket-stub,
.pp-night-launch .pp-mission-card:hover .pp-ticket-main { box-shadow: 9px 12px 0 var(--pp-card-shadow) !important; }
/* The card's own 2px border is gone, so the stub column grows by 2px to keep every
   element exactly where it sat before. */
.pp-night-launch .pp-mission-card { grid-template-columns: 76px minmax(0, 1fr) !important; }
/* Notch centers sit on the perforation now that the outline belongs to the parts */
.pp-night-launch .pp-mission-card::before,
.pp-night-launch .pp-mission-card::after { z-index: 2 !important; transition: opacity 160ms ease !important; }
.pp-night-launch .pp-mission-card::before { top: -11px !important; left: 63px !important; }
.pp-night-launch .pp-mission-card::after { bottom: -11px !important; left: 63px !important; }

/* Tear: the stub peels away at the perforation, then the page changes */
.pp-night-launch .pp-mission-card.pp-is-torn .pp-ticket-stub { transform-origin: 100% 100% !important; transform: translate(-3px, 4px) rotate(-6deg) !important; }
.pp-night-launch .pp-mission-card.pp-is-torn .pp-ticket-main { transform: translateX(3px) rotate(0.6deg) !important; }
.pp-night-launch .pp-mission-card.pp-is-torn::before,
.pp-night-launch .pp-mission-card.pp-is-torn::after { opacity: 0 !important; }

/* Stamp: thumps onto each ticket as it scrolls into view */
@media (prefers-reduced-motion: no-preference) {
	.pp-night-launch .pp-missions.pp-stamps-armed .pp-mission-card:not(.pp-is-stamped) .pp-ticket-stamp { opacity: 0 !important; }
	.pp-night-launch .pp-missions.pp-stamps-armed .pp-mission-card.pp-is-stamped .pp-ticket-stamp {
		animation: pp-stamp 460ms cubic-bezier(.2,.9,.3,1.25) var(--pp-stamp-delay, 0ms) both !important;
	}
	.pp-night-launch .pp-missions.pp-stamps-armed .pp-mission-card.pp-is-stamped .pp-ticket-main {
		animation: pp-thump 220ms ease-out calc(var(--pp-stamp-delay, 0ms) + 250ms) both !important;
	}
}
/* Once landed, drop the animation so the stamp renders exactly like a static one. */
.pp-night-launch .pp-missions.pp-stamps-armed .pp-mission-card.pp-is-stamped.pp-is-settled .pp-ticket-stamp,
.pp-night-launch .pp-missions.pp-stamps-armed .pp-mission-card.pp-is-stamped.pp-is-settled .pp-ticket-main { animation: none !important; }
@keyframes pp-stamp {
	0%   { opacity: 0; transform: rotate(16deg) scale(1.9); }
	55%  { opacity: 1; transform: rotate(4deg) scale(0.92); }
	100% { opacity: 1; transform: rotate(6deg) scale(1); }
}
@keyframes pp-thump { 0%, 100% { translate: 0 0; } 40% { translate: 0 1.5px; } }

@media (max-width: 640px) {
	.pp-night-launch .pp-ticket-stub,
	.pp-night-launch .pp-ticket-main { box-shadow: 5px 5px 0 var(--pp-card-shadow) !important; }
	.pp-night-launch .pp-ticket-stub { border-radius: 16px 0 0 16px !important; }
	.pp-night-launch .pp-ticket-main { border-radius: 0 16px 16px 0 !important; position: static !important; }
	.pp-night-launch .pp-mission-card:active .pp-ticket-stub,
	.pp-night-launch .pp-mission-card:active .pp-ticket-main { box-shadow: 3px 3px 0 var(--pp-card-shadow) !important; }
	.pp-night-launch .pp-mission-card { grid-template-columns: 66px minmax(0, 1fr) !important; }
	.pp-night-launch .pp-mission-card::before { top: -8px !important; left: 56px !important; }
	.pp-night-launch .pp-mission-card::after { bottom: -8px !important; left: 56px !important; }
}
/* The pressed ticket and the tear are the tap feedback; hide the browser's blue tap flash. */
.pp-night-launch .pp-mission-card a { -webkit-tap-highlight-color: transparent !important; }

/* ==========================================================================
   1.3.5 crew badges that flip
   ========================================================================== */
.pp-night-launch .pp-sr {
	position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important;
	overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; border: 0 !important;
}
/* The faces carry the outline and background, so the whole badge turns over. */
.pp-night-launch .pp-provider-card,
.pp-night-launch .pp-provider-card:hover {
	position: relative !important; padding: 0 !important; border: 0 !important; background: transparent !important;
	perspective: 1000px !important; transform: none !important;
}
.pp-night-launch .pp-flip-inner { display: grid !important; height: 100% !important; transform-style: preserve-3d !important; }
.pp-night-launch .pp-face {
	grid-area: 1 / 1 !important; display: flex !important; flex-direction: column !important;
	padding: 22px 15px 20px !important; border: 2px solid var(--pp-navy-700) !important; border-radius: 22px !important;
	background: rgb(11 19 48 / 82%) !important; text-align: center !important;
	-webkit-backface-visibility: hidden !important; backface-visibility: hidden !important;
	transition: border-color 180ms ease, transform 180ms ease !important;
}
.pp-night-launch .pp-provider-card:hover .pp-face--front { border-color: #465584 !important; }
.pp-night-launch .pp-face--back {
	transform: rotateY(180deg) !important; justify-content: center !important; gap: 10px !important;
	border-color: var(--pp-yellow, #ffc94d) !important; border-style: dashed !important;
	background: linear-gradient(160deg, #1b2863 0%, #121c4a 100%) !important;
}
.pp-night-launch .pp-back-label { margin: 0 !important; color: var(--pp-yellow, #ffc94d) !important; font-family: "Caveat", "Segoe Print", cursive !important; font-size: 1.35rem !important; font-weight: 700 !important; line-height: 1.15 !important; }
.pp-night-launch .pp-back-text { margin: 0 !important; color: #eef2ff !important; font-size: 0.9rem !important; font-weight: 600 !important; line-height: 1.5 !important; }
.pp-night-launch .pp-back-sign { margin: 0 !important; color: var(--pp-yellow, #ffc94d) !important; font-family: "Caveat", "Segoe Print", cursive !important; font-size: 1.2rem !important; font-weight: 700 !important; }

/* Flip control: small corner button; the whole card is also tappable */
.pp-night-launch .pp-has-flip { cursor: pointer !important; -webkit-tap-highlight-color: transparent !important; }
.pp-night-launch .pp-flip-btn {
	position: absolute !important; top: 10px !important; right: 10px !important; z-index: 3 !important;
	display: grid !important; place-items: center !important; width: 34px !important; height: 34px !important; margin: 0 !important; padding: 0 !important;
	border: 2px solid rgba(255, 201, 77, 0.55) !important; border-radius: 50% !important; background: rgba(11, 19, 48, 0.85) !important;
	color: var(--pp-yellow, #ffc94d) !important; cursor: pointer !important; box-shadow: none !important;
}
.pp-night-launch .pp-flip-btn svg { width: 17px !important; height: 17px !important; transition: transform 500ms ease !important; }
.pp-night-launch .pp-flip-btn:focus-visible { outline: 3px solid var(--pp-yellow, #ffc94d) !important; outline-offset: 3px !important; }
.pp-night-launch .pp-provider-card.is-flipped .pp-flip-btn svg { transform: rotate(-180deg) !important; }

@media (prefers-reduced-motion: no-preference) {
	.pp-night-launch .pp-flip-inner { transition: transform 620ms cubic-bezier(.4, .15, .2, 1) !important; }
	.pp-night-launch .pp-provider-card.is-flipped .pp-flip-inner { transform: rotateY(180deg) !important; }
	/* A small peek on hover hints that the badge turns over */
	@media (hover: hover) and (pointer: fine) {
		.pp-night-launch .pp-has-flip:not(.is-flipped):hover .pp-flip-inner { transform: rotateY(-10deg) !important; }
	}
}
@media (prefers-reduced-motion: reduce) {
	/* No spinning: swap faces in place */
	.pp-night-launch .pp-face { -webkit-backface-visibility: visible !important; backface-visibility: visible !important; transition: opacity 200ms ease !important; }
	.pp-night-launch .pp-face--back { transform: none !important; opacity: 0 !important; visibility: hidden !important; }
	.pp-night-launch .pp-provider-card.is-flipped .pp-face--back { opacity: 1 !important; visibility: visible !important; }
	.pp-night-launch .pp-provider-card.is-flipped .pp-face--front { opacity: 0 !important; visibility: hidden !important; }
}
@media (max-width: 640px) {
	.pp-night-launch .pp-face { padding: 17px 10px 16px !important; border-radius: 18px !important; }
	.pp-night-launch .pp-back-label { font-size: 1.15rem !important; }
	.pp-night-launch .pp-back-text { font-size: 0.8rem !important; line-height: 1.45 !important; }
	.pp-night-launch .pp-back-sign { font-size: 1.05rem !important; }
	.pp-night-launch .pp-flip-btn { top: 7px !important; right: 7px !important; width: 30px !important; height: 30px !important; }
}
/* Keep the back's question clear of the corner flip button */
.pp-night-launch .pp-face--back { padding-top: 46px !important; }
/* Restore the intended space above "Meet all of our providers" (a paragraph reset was zeroing it) */
.pp-night-launch .pp-provider-link { margin-top: 28px !important; }
@media (max-width: 640px) {
	.pp-night-launch .pp-face--back { padding-top: 40px !important; }
	.pp-night-launch .pp-provider-link { margin-top: 20px !important; }
}

/* ==========================================================================
   1.3.7 provider names on one line
   ========================================================================== */
/* Faces are locked to the badge's width so long text can never stretch the badge. */
.pp-night-launch .pp-flip-inner { grid-template-columns: minmax(0, 1fr) !important; }
.pp-night-launch .pp-face { min-width: 0 !important; }
.pp-night-launch .pp-face--front { padding-left: 10px !important; padding-right: 10px !important; }
/* Applied by the script once it has sized the names to fit; without it names wrap as before. */
.pp-night-launch .pp-names-fit .pp-face--front h3 { white-space: nowrap !important; }
@media (max-width: 640px) {
	.pp-night-launch .pp-face--front { padding-left: 7px !important; padding-right: 7px !important; }
}

/* ==========================================================================
   1.3.8 ID-card details on the crew badges
   ========================================================================== */
.pp-night-launch .pp-provider-card { --pp-ring: var(--pp-blue); --pp-ring-rgb: 0, 174, 239; }
.pp-night-launch .pp-provider-card:nth-child(2), .pp-night-launch .pp-provider-card:nth-child(4) { --pp-ring: var(--pp-pink); --pp-ring-rgb: 239, 36, 183; }
.pp-night-launch .pp-provider-card:nth-child(3) { --pp-ring: var(--pp-yellow); --pp-ring-rgb: 255, 201, 77; }
.pp-night-launch .pp-provider-card:nth-child(5) { --pp-ring: #8c85e8; --pp-ring-rgb: 140, 133, 232; }
.pp-night-launch .pp-face--front { position: relative !important; }
/* Lanyard slot punched at the top */
.pp-night-launch .pp-id-slot {
	position: absolute !important; top: 9px !important; left: 50% !important; width: 38px !important; height: 8px !important; margin-left: -19px !important;
	border: 2px solid var(--pp-navy-700) !important; border-radius: 999px !important; background: #0b1330 !important; box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.5) !important;
}
.pp-night-launch .pp-face--front .pp-provider-photo { margin-top: 8px !important; }
/* Credential fields */
.pp-night-launch .pp-id-fields { display: grid !important; gap: 5px !important; margin: 12px 4px 0 !important; padding: 9px 0 0 !important; border-top: 1px dashed rgba(199, 208, 234, 0.3) !important; text-align: left !important; }
.pp-night-launch .pp-id-fields > div { display: flex !important; justify-content: space-between !important; align-items: baseline !important; gap: 8px !important; }
.pp-night-launch .pp-id-fields dt { margin: 0 !important; color: #8f9bc4 !important; font-size: 0.62rem !important; font-weight: 800 !important; letter-spacing: 0.14em !important; text-transform: uppercase !important; }
.pp-night-launch .pp-id-fields dd { margin: 0 !important; color: #eef2ff !important; font-size: 0.78rem !important; font-weight: 800 !important; white-space: nowrap !important; }
.pp-night-launch .pp-id-fields dd.is-open::before,
.pp-night-launch .pp-id-fields dd.is-closed::before { content: "" !important; display: inline-block !important; width: 7px !important; height: 7px !important; margin-right: 5px !important; border-radius: 50% !important; vertical-align: 1px !important; }
.pp-night-launch .pp-id-fields dd.is-open::before { background: #3ddc84 !important; box-shadow: 0 0 6px rgba(61, 220, 132, 0.7) !important; }
.pp-night-launch .pp-id-fields dd.is-closed::before { background: #ffc94d !important; }
/* Colored ID band across the bottom */
.pp-night-launch .pp-id-band {
	display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 8px !important;
	margin: auto -10px -20px !important; padding: 9px 12px 10px !important; border-top: 3px solid var(--pp-ring) !important; border-radius: 0 0 20px 20px !important;
	background: linear-gradient(0deg, rgba(var(--pp-ring-rgb), 0.28), rgba(var(--pp-ring-rgb), 0.14)) !important; text-align: left !important;
}
.pp-night-launch .pp-id-fields { margin-bottom: 14px !important; }
.pp-night-launch .pp-id-brand { display: flex !important; flex-direction: column !important; color: #fff !important; font-family: "Comfortaa", "Trebuchet MS", sans-serif !important; font-size: 0.66rem !important; font-weight: 700 !important; letter-spacing: 0.1em !important; text-transform: uppercase !important; line-height: 1.3 !important; }
.pp-night-launch .pp-id-brand small { color: #c7d0ea !important; font-family: "Mulish", sans-serif !important; font-size: 0.58rem !important; font-weight: 800 !important; letter-spacing: 0.14em !important; }
.pp-night-launch .pp-id-code { flex: 0 0 auto !important; width: 46px !important; height: 22px !important; opacity: 0.85 !important;
	background: repeating-linear-gradient(90deg, #fff 0 2px, transparent 2px 3px, #fff 3px 4px, transparent 4px 6px, #fff 6px 9px, transparent 9px 10px, #fff 10px 11px, transparent 11px 13px) !important; }
@media (max-width: 640px) {
	.pp-night-launch .pp-id-band { margin: auto -7px -16px !important; padding: 8px 9px 9px !important; border-radius: 0 0 16px 16px !important; }
	.pp-night-launch .pp-id-code { width: 34px !important; height: 18px !important; }
	.pp-night-launch .pp-id-fields { margin: 10px 2px 0 !important; }
	.pp-night-launch .pp-id-fields dt { font-size: 0.56rem !important; letter-spacing: 0.1em !important; }
	.pp-night-launch .pp-id-fields dd { font-size: 0.7rem !important; }
}
/* One-line band text; shorter crew label on phones */
.pp-night-launch .pp-id-brand, .pp-night-launch .pp-id-brand small { white-space: nowrap !important; }
.pp-night-launch .pp-id-short { display: none !important; }
/* Credential fields: tighter labels so label and value share a line */
.pp-night-launch .pp-id-fields dt { white-space: nowrap !important; font-size: 0.6rem !important; letter-spacing: 0.08em !important; }
.pp-night-launch .pp-id-fields dd { font-size: 0.75rem !important; }
@media (max-width: 640px) {
	.pp-night-launch .pp-id-long { display: none !important; }
	.pp-night-launch .pp-id-short { display: inline !important; }
	.pp-night-launch .pp-id-brand { font-size: 0.58rem !important; letter-spacing: 0.06em !important; }
	/* Label above value, like a printed ID */
	.pp-night-launch .pp-id-fields { gap: 7px !important; }
	.pp-night-launch .pp-id-fields > div { flex-direction: column !important; align-items: flex-start !important; gap: 1px !important; }
	.pp-night-launch .pp-id-fields dt { font-size: 0.54rem !important; }
	.pp-night-launch .pp-id-fields dd { font-size: 0.74rem !important; }
}

/* ==========================================================================
   1.3.9 constellation trust strip
   ========================================================================== */
.pp-night-launch .pp-trust { padding-top: 62px !important; }
.pp-night-launch .pp-trust-grid { position: relative !important; }
.pp-night-launch .pp-trust-grid::before { display: none !important; }
.pp-night-launch .pp-trust-item { position: relative !important; z-index: 1 !important; }
.pp-night-launch .pp-trust-item:nth-child(1) { --pp-lift: -6px; }
.pp-night-launch .pp-trust-item:nth-child(2) { --pp-lift: -40px; }
.pp-night-launch .pp-trust-item:nth-child(3) { --pp-lift: -14px; }
.pp-night-launch .pp-trust-item:nth-child(4) { --pp-lift: -30px; }
.pp-night-launch .pp-trust-icon {
	position: relative !important; width: 54px !important; height: 54px !important;
	border: 0 !important; background: transparent !important;
	transform: translateY(var(--pp-lift, 0)) !important;
}
.pp-night-launch .pp-trust-icon::before {
	content: "" !important; position: absolute !important; inset: -8px !important; border-radius: 50% !important;
	background: radial-gradient(circle, rgba(255, 201, 77, 0.55) 0%, rgba(255, 201, 77, 0.18) 38%, rgba(255, 201, 77, 0) 70%) !important;
}
.pp-night-launch .pp-trust-icon svg {
	position: relative !important; width: 34px !important; height: 34px !important;
	fill: #ffc94d !important; stroke: #b36b00 !important; stroke-width: 1.2 !important; stroke-linejoin: round !important;
}
.pp-night-launch .pp-constellation {
	position: absolute !important; left: 0 !important; top: 0 !important; z-index: 0 !important;
	width: 100% !important; height: 100% !important; overflow: visible !important; pointer-events: none !important;
}
.pp-night-launch .pp-constellation line { stroke: #9aaad3 !important; stroke-width: 2 !important; stroke-linecap: round !important; }
.pp-night-launch .pp-constellation circle { fill: #9aaad3 !important; }

/* Animation: stars light in order, lines draw between them.
   Armed = dimmed instantly (no transition). Lit = staggered transitions back to full. */
@media (prefers-reduced-motion: no-preference) {
	.pp-night-launch [data-pp-constellation].pp-is-armed .pp-trust-icon::before,
	.pp-night-launch [data-pp-constellation].pp-is-armed .pp-trust-icon svg { opacity: 0.2 !important; transform: scale(0.45) !important; }
	.pp-night-launch [data-pp-constellation].pp-is-armed .pp-constellation circle { opacity: 0 !important; }

	.pp-night-launch [data-pp-constellation].pp-is-lit .pp-trust-icon::before,
	.pp-night-launch [data-pp-constellation].pp-is-lit .pp-trust-icon svg {
		opacity: 1 !important; transform: scale(1) !important;
		transition-property: opacity, transform !important; transition-duration: 320ms, 420ms !important;
		transition-timing-function: ease, cubic-bezier(.34,1.56,.64,1) !important;
	}
	.pp-night-launch [data-pp-constellation].pp-is-lit .pp-trust-item:nth-child(2) .pp-trust-icon::before,
	.pp-night-launch [data-pp-constellation].pp-is-lit .pp-trust-item:nth-child(2) .pp-trust-icon svg { transition-delay: 500ms !important; }
	.pp-night-launch [data-pp-constellation].pp-is-lit .pp-trust-item:nth-child(3) .pp-trust-icon::before,
	.pp-night-launch [data-pp-constellation].pp-is-lit .pp-trust-item:nth-child(3) .pp-trust-icon svg { transition-delay: 1000ms !important; }
	.pp-night-launch [data-pp-constellation].pp-is-lit .pp-trust-item:nth-child(4) .pp-trust-icon::before,
	.pp-night-launch [data-pp-constellation].pp-is-lit .pp-trust-item:nth-child(4) .pp-trust-icon svg { transition-delay: 1500ms !important; }
	.pp-night-launch [data-pp-constellation].pp-is-lit .pp-constellation line { transition-property: stroke-dashoffset !important; transition-duration: 420ms !important; transition-timing-function: ease-out !important; }
	.pp-night-launch [data-pp-constellation].pp-is-lit .pp-constellation circle { opacity: 1 !important; transition: opacity 600ms ease 1700ms !important; }
}
}
@media (max-width: 640px) {
	.pp-night-launch .pp-trust { padding-top: 44px !important; }
	.pp-night-launch .pp-trust-item:nth-child(1) { --pp-lift: -4px; }
	.pp-night-launch .pp-trust-item:nth-child(2) { --pp-lift: -18px; }
	.pp-night-launch .pp-trust-item:nth-child(3) { --pp-lift: -16px; }
	.pp-night-launch .pp-trust-item:nth-child(4) { --pp-lift: -4px; }
}
