/**
 * Prynt Forge Intro Animation
 *
 * Cinematic intro styles: fade, logo scale, furnace glow, fire, sparks,
 * smoke, heat shimmer, FORGE letter heat, and metallic reflection.
 *
 * @package PFIA
 * @since   1.0.3
 */

.pfia-overlay {
	position: fixed;
	inset: 0;
	z-index: 2147483647;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: #0a0a0a;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.6s ease, visibility 0.6s ease;
}

html.pfia-boot .pfia-overlay,
.pfia-overlay.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.pfia-overlay.is-exiting {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

/*
 * Homepage placement exit â€” black backdrop fades out while the logo travels.
 * Logo stays fully opaque (background fade does not affect children).
 */
.pfia-overlay.is-placing {
	pointer-events: none;
	/* Keep overlay itself visible so the flying logo remains on screen. */
	visibility: visible !important;
	background-color: #0a0a0a;
	transition: background-color linear;
}

.pfia-overlay.is-placing:not(.is-exiting) {
	opacity: 1 !important;
}

.pfia-overlay.is-placing.is-placing-fade {
	background-color: rgba(10, 10, 10, 0);
}

.pfia-overlay.is-placing-reveal .pfia-glow,
.pfia-overlay.is-placing-reveal .pfia-heat,
.pfia-overlay.is-placing-reveal .pfia-fire,
.pfia-overlay.is-placing-reveal .pfia-sparks,
.pfia-overlay.is-placing-reveal .pfia-smoke,
.pfia-overlay.is-placing-reveal .pfia-loading,
.pfia-overlay.is-placing-reveal .pfia-skip {
	opacity: 0 !important;
	visibility: hidden !important;
	transition: opacity 0.35s ease, visibility 0.35s ease;
}

.pfia-logo.pfia-logo--flying {
	position: fixed;
	z-index: 2147483647;
	margin: 0;
	opacity: 1 !important;
	transform-origin: center center;
	will-change: transform;
	/* Transition is set inline for the flight; do not force none. */
}

.pfia-logo.pfia-logo--flying .pfia-logo__image {
	max-width: none;
	max-height: none;
	width: 100%;
	height: auto;
}

.pfia-overlay.is-placing .pfia-forge-chamber {
	opacity: 0 !important;
	visibility: hidden !important;
}

.pfia-overlay.is-hammer-strike .pfia-logo:not(.pfia-logo--flying) {
	animation: pfia-hammer-shake 0.28s ease-out;
}

.pfia-logo.pfia-logo--flying.is-hammer-strike .pfia-logo__frame {
	animation: pfia-hammer-shake-fly 0.28s ease-out;
}

.pfia-overlay.is-hammer-placement .pfia-logo__image {
	filter: brightness(1.18) saturate(1.08);
}

@keyframes pfia-hammer-shake-fly {
	0%,
	100% {
		transform: translate(0, 0);
	}

	20% {
		transform: translate(-1.5px, 1px);
	}

	40% {
		transform: translate(1.5px, -1px);
	}

	60% {
		transform: translate(-1px, 0.5px);
	}

	80% {
		transform: translate(0.75px, -0.5px);
	}
}

html.pfia-header-placement .pfia-header-logo-hidden {
	visibility: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

/*
 * Impact spark burst from the forge mouth when the intro logo lands.
 * Gold/ember particles rise and scatter like fire leaving the furnace.
 */
.pfia-impact-sparks {
	position: fixed;
	z-index: 2147483647;
	width: 0;
	height: 0;
	pointer-events: none;
}

.pfia-impact-spark {
	position: absolute;
	left: 0;
	top: 0;
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: #ffb347;
	box-shadow:
		0 0 4px rgba(255, 170, 60, 0.95),
		0 0 10px rgba(255, 100, 20, 0.65);
	opacity: 0;
	animation: pfia-impact-spark-burst 0.8s ease-out forwards;
}

.pfia-impact-spark--2,
.pfia-impact-spark--5,
.pfia-impact-spark--8,
.pfia-impact-spark--11,
.pfia-impact-spark--14 {
	width: 2px;
	height: 2px;
	background: #ffe08a;
}

/* Mostly upward / outward from the forge opening â€” fire leaving the mouth. */
.pfia-impact-spark--1 { --pfia-burst-x: 10px; --pfia-burst-y: -34px; animation-delay: 0s; }
.pfia-impact-spark--2 { --pfia-burst-x: -8px; --pfia-burst-y: -30px; animation-delay: 0.02s; }
.pfia-impact-spark--3 { --pfia-burst-x: 20px; --pfia-burst-y: -26px; animation-delay: 0.04s; }
.pfia-impact-spark--4 { --pfia-burst-x: -18px; --pfia-burst-y: -24px; animation-delay: 0.03s; }
.pfia-impact-spark--5 { --pfia-burst-x: 4px; --pfia-burst-y: -42px; animation-delay: 0.05s; }
.pfia-impact-spark--6 { --pfia-burst-x: -4px; --pfia-burst-y: -38px; animation-delay: 0.01s; }
.pfia-impact-spark--7 { --pfia-burst-x: 28px; --pfia-burst-y: -16px; animation-delay: 0.06s; }
.pfia-impact-spark--8 { --pfia-burst-x: -26px; --pfia-burst-y: -14px; animation-delay: 0.04s; }
.pfia-impact-spark--9 { --pfia-burst-x: 14px; --pfia-burst-y: -48px; animation-delay: 0.02s; }
.pfia-impact-spark--10 { --pfia-burst-x: -12px; --pfia-burst-y: -46px; animation-delay: 0.07s; }
.pfia-impact-spark--11 { --pfia-burst-x: 22px; --pfia-burst-y: -8px; animation-delay: 0.05s; }
.pfia-impact-spark--12 { --pfia-burst-x: -20px; --pfia-burst-y: -6px; animation-delay: 0.03s; }
.pfia-impact-spark--13 { --pfia-burst-x: 6px; --pfia-burst-y: -22px; animation-delay: 0.08s; }
.pfia-impact-spark--14 { --pfia-burst-x: -6px; --pfia-burst-y: -18px; animation-delay: 0.06s; }

@keyframes pfia-impact-spark-burst {
	0% {
		opacity: 0;
		transform: translate(0, 0) scale(0.35);
	}

	14% {
		opacity: 1;
		transform: translate(
			calc(var(--pfia-burst-x) * 0.2),
			calc(var(--pfia-burst-y) * 0.2)
		) scale(1.2);
	}

	100% {
		opacity: 0;
		transform: translate(var(--pfia-burst-x), var(--pfia-burst-y)) scale(0.12);
	}
}

.pfia-overlay__stage {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.pfia-logo {
	position: relative;
	z-index: 5;
	opacity: 0;
	transform: scale(0.95);
	transform-origin: center center;
	transition:
		opacity 0.8s ease,
		transform 0.9s cubic-bezier(0.22, 0.61, 0.36, 1);
	will-change: opacity, transform;
}

.pfia-overlay.is-logo-visible .pfia-logo {
	opacity: 1;
	transform: scale(1);
}

.pfia-overlay.is-logo-emphasis .pfia-logo {
	opacity: 1;
	transform: scale(1.12);
	transition-duration: 0.7s;
	transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1);
}

.pfia-overlay.is-logo-settle .pfia-logo {
	opacity: 1;
	transform: scale(1);
	transition-duration: 0.4s;
}

/* Placement path uses a stronger expand so the contract+travel reads clearly. */
.pfia-overlay.is-placing-ready.is-logo-emphasis .pfia-logo {
	transform: scale(1.14);
}

/* Hammer impact â€” center-screen strike (non-placement intros). */

.pfia-overlay.is-hammer-strike .pfia-glow {
	animation: pfia-hammer-glow 0.32s ease-out;
	opacity: 1;
}

.pfia-overlay.is-hammer-strike .pfia-sparks {
	opacity: 1;
}

@keyframes pfia-hammer-shake {
	0%,
	100% {
		transform: translate(0, 0) scale(1);
	}

	20% {
		transform: translate(-1.5px, 1px) scale(1.01);
	}

	40% {
		transform: translate(1.5px, -1px) scale(1.015);
	}

	60% {
		transform: translate(-1px, 0.5px) scale(1.005);
	}

	80% {
		transform: translate(0.75px, -0.5px) scale(1);
	}
}

@keyframes pfia-hammer-glow {
	0% {
		filter: brightness(1);
		transform: translate(-50%, -50%) scale(1);
	}

	40% {
		filter: brightness(1.45);
		transform: translate(-50%, -50%) scale(1.12);
	}

	100% {
		filter: brightness(1);
		transform: translate(-50%, -50%) scale(1);
	}
}

.pfia-logo__media {
	position: relative;
	display: inline-block;
	line-height: 0;
	isolation: isolate;
	z-index: 2;
}

.pfia-logo__frame {
	position: relative;
	display: inline-block;
	line-height: 0;
}

.pfia-logo__text {
	position: relative;
	z-index: 2;
	display: inline-flex;
	align-items: baseline;
	color: #f2f2f2;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.5rem, 4vw, 2.75rem);
	font-weight: 700;
	letter-spacing: 0.18em;
	line-height: 1;
	text-transform: uppercase;
	white-space: nowrap;
}

.pfia-logo__brand,
.pfia-logo__forge,
.pfia-logo__letter {
	display: inline-block;
}

.pfia-logo__space {
	display: inline-block;
	width: 0.35em;
}

.pfia-logo__letter {
	color: #f2f2f2;
	transition:
		color 0.28s ease,
		text-shadow 0.28s ease,
		filter 0.28s ease;
}

.pfia-overlay.is-forge-heat-1 .pfia-logo__letter[data-letter="F"],
.pfia-overlay.is-forge-heat-2 .pfia-logo__letter[data-letter="F"],
.pfia-overlay.is-forge-heat-2 .pfia-logo__letter[data-letter="O"],
.pfia-overlay.is-forge-heat-3 .pfia-logo__letter[data-letter="F"],
.pfia-overlay.is-forge-heat-3 .pfia-logo__letter[data-letter="O"],
.pfia-overlay.is-forge-heat-3 .pfia-logo__letter[data-letter="R"],
.pfia-overlay.is-forge-heat-4 .pfia-logo__letter[data-letter="F"],
.pfia-overlay.is-forge-heat-4 .pfia-logo__letter[data-letter="O"],
.pfia-overlay.is-forge-heat-4 .pfia-logo__letter[data-letter="R"],
.pfia-overlay.is-forge-heat-4 .pfia-logo__letter[data-letter="G"],
.pfia-overlay.is-forge-heat-5 .pfia-logo__letter {
	color: #ffd7a0;
	text-shadow:
		0 0 8px rgba(255, 150, 40, 0.55),
		0 0 18px rgba(255, 90, 20, 0.35);
	filter: brightness(1.12);
}

/* Metallic reflection â€” disabled until a real logo asset can carry the effect. */
.pfia-logo__reflection {
	display: none !important;
}

/* Heat distortion â€” almost invisible shimmer above the furnace. */
.pfia-heat {
	position: absolute;
	left: 50%;
	top: 42%;
	z-index: 2;
	width: min(11rem, 34vw);
	height: min(3.5rem, 10vw);
	display: block;
	pointer-events: none;
	opacity: 0;
	transform: translate(-50%, -50%);
	transition: opacity 0.5s ease;
	overflow: hidden;
}

.pfia-heat__band {
	position: absolute;
	left: 0;
	width: 100%;
	height: 45%;
	display: block;
	background: linear-gradient(
		90deg,
		rgba(255, 255, 255, 0) 0%,
		rgba(255, 220, 180, 0.07) 50%,
		rgba(255, 255, 255, 0) 100%
	);
	filter: blur(3px);
	opacity: 0;
}

.pfia-heat__band--a {
	top: 10%;
}

.pfia-heat__band--b {
	top: 48%;
}

.pfia-overlay.is-heat-active .pfia-heat {
	opacity: 1;
}

.pfia-overlay.is-heat-active .pfia-heat__band--a {
	animation: pfia-heat-shimmer 1.4s ease-in-out infinite;
}

.pfia-overlay.is-heat-active .pfia-heat__band--b {
	animation: pfia-heat-shimmer 1.7s ease-in-out infinite reverse;
	animation-delay: 0.2s;
}

.pfia-overlay.is-exiting .pfia-heat {
	opacity: 0;
}

.pfia-overlay.is-exiting .pfia-heat__band {
	animation: none;
}

@keyframes pfia-heat-shimmer {
	0%,
	100% {
		opacity: 0.15;
		transform: translateX(-8%) scaleY(0.9);
	}

	50% {
		opacity: 0.35;
		transform: translateX(8%) scaleY(1.1);
	}
}

/* Furnace glow â€” localized ember chamber under the wordmark. */
.pfia-glow {
	position: absolute;
	left: 50%;
	top: 58%;
	z-index: 1;
	width: min(14rem, 42vw);
	height: min(5.5rem, 16vw);
	display: block;
	pointer-events: none;
	opacity: 0;
	transform: translate(-50%, -50%) scale(0.72);
	transform-origin: center center;
	transition:
		opacity 0.7s ease,
		transform 0.9s cubic-bezier(0.22, 0.61, 0.36, 1);
	will-change: opacity, transform, filter;
}

.pfia-glow::before,
.pfia-glow::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	border-radius: 50%;
	transform: translate(-50%, -50%);
	pointer-events: none;
}

.pfia-glow::before {
	width: 100%;
	height: 100%;
	background:
		radial-gradient(
			ellipse at center,
			rgba(255, 170, 64, 0.55) 0%,
			rgba(255, 110, 24, 0.28) 38%,
			rgba(180, 45, 8, 0.12) 62%,
			rgba(0, 0, 0, 0) 78%
		);
	filter: blur(10px);
}

.pfia-glow::after {
	width: 42%;
	height: 34%;
	background:
		radial-gradient(
			ellipse at center,
			rgba(255, 230, 160, 0.9) 0%,
			rgba(255, 140, 40, 0.45) 45%,
			rgba(255, 80, 10, 0) 78%
		);
	filter: blur(4px);
	opacity: 0.55;
}

.pfia-overlay.is-glow-ignite .pfia-glow {
	opacity: 0.72;
	transform: translate(-50%, -50%) scale(0.92);
}

.pfia-overlay.is-glow-pulse .pfia-glow {
	opacity: 1;
	transform: translate(-50%, -50%) scale(1);
	animation: pfia-furnace-pulse 1.15s ease-in-out infinite;
}

.pfia-overlay.is-exiting .pfia-glow {
	opacity: 0;
	animation: none;
	transition-duration: 0.45s;
}

@keyframes pfia-furnace-pulse {
	0%,
	100% {
		opacity: 0.78;
		filter: brightness(0.95);
		transform: translate(-50%, -50%) scale(0.96);
	}

	50% {
		opacity: 1;
		filter: brightness(1.18);
		transform: translate(-50%, -50%) scale(1.04);
	}
}

/* Fire â€” natural orange/yellow flicker, small movement, loops while intro runs. */
.pfia-fire {
	position: absolute;
	left: 50%;
	top: 62%;
	z-index: 3;
	width: min(7.5rem, 22vw);
	height: min(4.25rem, 12vw);
	display: block;
	pointer-events: none;
	opacity: 0;
	transform: translate(-50%, -50%);
	transition: opacity 0.45s ease;
}

.pfia-fire__tongue {
	position: absolute;
	bottom: 0;
	left: 50%;
	display: block;
	border-radius: 50% 50% 40% 40%;
	transform-origin: center bottom;
	filter: blur(1.5px);
	opacity: 0;
}

.pfia-fire__tongue--a {
	width: 38%;
	height: 78%;
	margin-left: -19%;
	background:
		radial-gradient(
			ellipse at 50% 80%,
			rgba(255, 236, 170, 0.95) 0%,
			rgba(255, 150, 40, 0.7) 42%,
			rgba(220, 60, 10, 0.2) 72%,
			rgba(0, 0, 0, 0) 100%
		);
}

.pfia-fire__tongue--b {
	width: 28%;
	height: 64%;
	margin-left: -34%;
	background:
		radial-gradient(
			ellipse at 50% 85%,
			rgba(255, 210, 120, 0.85) 0%,
			rgba(255, 120, 28, 0.55) 48%,
			rgba(160, 30, 0, 0.15) 78%,
			rgba(0, 0, 0, 0) 100%
		);
}

.pfia-fire__tongue--c {
	width: 26%;
	height: 58%;
	margin-left: 8%;
	background:
		radial-gradient(
			ellipse at 50% 85%,
			rgba(255, 220, 140, 0.8) 0%,
			rgba(255, 130, 30, 0.5) 50%,
			rgba(150, 25, 0, 0.12) 78%,
			rgba(0, 0, 0, 0) 100%
		);
}

.pfia-overlay.is-fire-active .pfia-fire {
	opacity: 1;
}

.pfia-overlay.is-fire-active .pfia-fire__tongue--a {
	animation: pfia-fire-flicker-a 0.55s ease-in-out infinite;
}

.pfia-overlay.is-fire-active .pfia-fire__tongue--b {
	animation: pfia-fire-flicker-b 0.7s ease-in-out infinite;
}

.pfia-overlay.is-fire-active .pfia-fire__tongue--c {
	animation: pfia-fire-flicker-c 0.62s ease-in-out infinite;
}

.pfia-overlay.is-exiting .pfia-fire {
	opacity: 0;
	transition-duration: 0.35s;
}

.pfia-overlay.is-exiting .pfia-fire__tongue {
	animation: none;
}

@keyframes pfia-fire-flicker-a {
	0%,
	100% {
		opacity: 0.72;
		transform: translateY(0) scaleX(1) scaleY(1);
	}

	35% {
		opacity: 1;
		transform: translateY(-6%) scaleX(0.92) scaleY(1.08);
	}

	70% {
		opacity: 0.8;
		transform: translateY(-2%) scaleX(1.06) scaleY(0.94);
	}
}

@keyframes pfia-fire-flicker-b {
	0%,
	100% {
		opacity: 0.55;
		transform: translateY(0) scaleX(1) scaleY(0.95) rotate(-4deg);
	}

	40% {
		opacity: 0.9;
		transform: translateY(-8%) scaleX(1.08) scaleY(1.1) rotate(-2deg);
	}

	75% {
		opacity: 0.62;
		transform: translateY(-3%) scaleX(0.9) scaleY(1) rotate(-6deg);
	}
}

@keyframes pfia-fire-flicker-c {
	0%,
	100% {
		opacity: 0.5;
		transform: translateY(0) scaleX(1) scaleY(0.92) rotate(5deg);
	}

	45% {
		opacity: 0.85;
		transform: translateY(-7%) scaleX(0.88) scaleY(1.12) rotate(3deg);
	}

	80% {
		opacity: 0.58;
		transform: translateY(-2%) scaleX(1.05) scaleY(0.98) rotate(7deg);
	}
}

/* Sparks â€” small orange particles that rise and fade like forged steel. */
.pfia-sparks {
	position: absolute;
	left: 50%;
	top: 58%;
	z-index: 4;
	width: min(12rem, 36vw);
	height: min(8rem, 24vw);
	display: block;
	pointer-events: none;
	opacity: 0;
	transform: translate(-50%, -50%);
	transition: opacity 0.3s ease;
}

.pfia-spark {
	position: absolute;
	left: 50%;
	bottom: 28%;
	display: block;
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: #ffb24a;
	box-shadow: 0 0 4px rgba(255, 160, 50, 0.85);
	opacity: 0;
}

.pfia-overlay.is-sparks-active .pfia-sparks {
	opacity: 1;
}

.pfia-overlay.is-sparks-active .pfia-spark--1 {
	animation: pfia-spark-rise 1.1s linear infinite;
	animation-delay: 0s;
}

.pfia-overlay.is-sparks-active .pfia-spark--2 {
	animation: pfia-spark-rise 1.25s linear infinite;
	animation-delay: 0.15s;
}

.pfia-overlay.is-sparks-active .pfia-spark--3 {
	animation: pfia-spark-rise 0.95s linear infinite;
	animation-delay: 0.28s;
}

.pfia-overlay.is-sparks-active .pfia-spark--4 {
	animation: pfia-spark-rise 1.35s linear infinite;
	animation-delay: 0.4s;
}

.pfia-overlay.is-sparks-active .pfia-spark--5 {
	animation: pfia-spark-rise 1.05s linear infinite;
	animation-delay: 0.55s;
}

.pfia-overlay.is-sparks-active .pfia-spark--6 {
	animation: pfia-spark-rise 1.2s linear infinite;
	animation-delay: 0.7s;
}

.pfia-overlay.is-sparks-active .pfia-spark--7 {
	animation: pfia-spark-rise 0.88s linear infinite;
	animation-delay: 0.18s;
}

.pfia-overlay.is-sparks-active .pfia-spark--8 {
	animation: pfia-spark-rise 1.15s linear infinite;
	animation-delay: 0.62s;
}

.pfia-spark--1 { margin-left: -2px; }
.pfia-spark--2 { margin-left: 10px; width: 2px; height: 2px; }
.pfia-spark--3 { margin-left: -14px; width: 2px; height: 2px; }
.pfia-spark--4 { margin-left: 18px; }
.pfia-spark--5 { margin-left: -22px; width: 2px; height: 2px; }
.pfia-spark--6 { margin-left: 4px; width: 2px; height: 2px; }
.pfia-spark--7 { margin-left: -8px; }
.pfia-spark--8 { margin-left: 24px; width: 2px; height: 2px; }

.pfia-overlay.is-exiting .pfia-sparks {
	opacity: 0;
}

.pfia-overlay.is-exiting .pfia-spark {
	animation: none;
}

@keyframes pfia-spark-rise {
	0% {
		opacity: 0;
		transform: translate(0, 0) scale(0.6);
	}

	12% {
		opacity: 1;
	}

	100% {
		opacity: 0;
		transform: translate(var(--pfia-spark-x, 8px), -72px) scale(0.2);
	}
}

.pfia-spark--1 { --pfia-spark-x: 10px; }
.pfia-spark--2 { --pfia-spark-x: -14px; }
.pfia-spark--3 { --pfia-spark-x: 18px; }
.pfia-spark--4 { --pfia-spark-x: -8px; }
.pfia-spark--5 { --pfia-spark-x: 22px; }
.pfia-spark--6 { --pfia-spark-x: -20px; }
.pfia-spark--7 { --pfia-spark-x: 6px; }
.pfia-spark--8 { --pfia-spark-x: -12px; }

/* Smoke â€” slow, transparent, minimal drift upward. */
.pfia-smoke {
	position: absolute;
	left: 50%;
	top: 48%;
	z-index: 2;
	width: min(16rem, 48vw);
	height: min(10rem, 28vw);
	display: block;
	pointer-events: none;
	opacity: 0;
	transform: translate(-50%, -50%);
	transition: opacity 0.8s ease;
}

.pfia-smoke__wisp {
	position: absolute;
	left: 50%;
	bottom: 10%;
	display: block;
	border-radius: 50%;
	background:
		radial-gradient(
			ellipse at center,
			rgba(210, 210, 210, 0.18) 0%,
			rgba(160, 160, 160, 0.08) 45%,
			rgba(0, 0, 0, 0) 72%
		);
	filter: blur(8px);
	opacity: 0;
}

.pfia-smoke__wisp--a {
	width: 46%;
	height: 38%;
	margin-left: -23%;
}

.pfia-smoke__wisp--b {
	width: 34%;
	height: 30%;
	margin-left: -40%;
}

.pfia-smoke__wisp--c {
	width: 32%;
	height: 28%;
	margin-left: 6%;
}

.pfia-overlay.is-smoke-active .pfia-smoke {
	opacity: 1;
}

.pfia-overlay.is-smoke-active .pfia-smoke__wisp--a {
	animation: pfia-smoke-drift-a 2.4s ease-in-out infinite;
}

.pfia-overlay.is-smoke-active .pfia-smoke__wisp--b {
	animation: pfia-smoke-drift-b 2.8s ease-in-out infinite;
}

.pfia-overlay.is-smoke-active .pfia-smoke__wisp--c {
	animation: pfia-smoke-drift-c 2.6s ease-in-out infinite;
}

.pfia-overlay.is-exiting .pfia-smoke {
	opacity: 0;
	transition-duration: 0.4s;
}

.pfia-overlay.is-exiting .pfia-smoke__wisp {
	animation: none;
}

@keyframes pfia-smoke-drift-a {
	0% {
		opacity: 0;
		transform: translateY(8px) scale(0.85);
	}

	30% {
		opacity: 0.55;
	}

	100% {
		opacity: 0;
		transform: translateY(-46px) scale(1.2);
	}
}

@keyframes pfia-smoke-drift-b {
	0% {
		opacity: 0;
		transform: translate(-6px, 10px) scale(0.8);
	}

	35% {
		opacity: 0.4;
	}

	100% {
		opacity: 0;
		transform: translate(-14px, -52px) scale(1.25);
	}
}

@keyframes pfia-smoke-drift-c {
	0% {
		opacity: 0;
		transform: translate(6px, 8px) scale(0.82);
	}

	40% {
		opacity: 0.35;
	}

	100% {
		opacity: 0;
		transform: translate(12px, -48px) scale(1.18);
	}
}

.pfia-loading {
	display: none;
}

/* Skip button â€” hidden for the first second, then revealed. */
.pfia-skip {
	position: absolute;
	right: 1.25rem;
	bottom: 1.25rem;
	z-index: 20;
	display: none;
	margin: 0;
	padding: 0.55rem 0.95rem;
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 2px;
	background: rgba(10, 10, 10, 0.55);
	color: #f2f2f2;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	line-height: 1;
	text-transform: uppercase;
	cursor: pointer;
	opacity: 0;
	transition: opacity 0.35s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.pfia-overlay.is-skip-visible .pfia-skip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	opacity: 0.85;
}

.pfia-skip:hover,
.pfia-skip:focus {
	opacity: 1;
	background: rgba(20, 20, 20, 0.75);
	border-color: rgba(255, 200, 120, 0.45);
	outline: none;
}

.pfia-skip:focus-visible {
	box-shadow: 0 0 0 2px rgba(255, 180, 80, 0.45);
}

html.pfia-boot,
html.pfia-intro-active,
html.pfia-boot body,
html.pfia-intro-active body {
	overflow: hidden;
}

.pfia-logo {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.pfia-logo__image {
	position: relative;
	z-index: 2;
	display: block;
	max-width: min(34rem, 86vw);
	max-height: min(18rem, 48vh);
	width: auto;
	height: auto;
}

/*
 * Brief warm ignite on the real logo artwork instead of a fake orbiting rim.
 */
.pfia-overlay.is-rim-glow .pfia-logo__image {
	animation: pfia-logo-ignite 1.35s ease-out forwards;
}

@keyframes pfia-logo-ignite {
	0% {
		filter: brightness(1) saturate(1);
	}

	28% {
		filter:
			brightness(1.1)
			saturate(1.12)
			drop-shadow(0 0 6px rgba(255, 120, 40, 0.28))
			drop-shadow(0 0 14px rgba(255, 70, 15, 0.16));
	}

	100% {
		filter: brightness(1) saturate(1);
	}
}

.pfia-overlay.has-custom-logo .pfia-logo__text,
.pfia-overlay.has-forge-video .pfia-logo__text {
	display: none;
}

/*
 * Fire video clipped to the forge opening (the O in FORGE).
 * Position is set from logo pixel coordinates in pfia.js after image load.
 */
.pfia-forge-chamber {
	--pfia-forge-x: 36.5%;
	--pfia-forge-y: 55.4%;
	--pfia-forge-size: 8.5%;

	position: absolute;
	left: var(--pfia-forge-x);
	top: var(--pfia-forge-y);
	z-index: 1;
	width: var(--pfia-forge-size);
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 50%;
	transform: translate(-50%, -50%);
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.45s ease;
	background:
		radial-gradient(
			circle at 50% 55%,
			rgba(255, 200, 60, 1) 0%,
			rgba(255, 120, 20, 0.98) 32%,
			rgba(170, 35, 0, 0.98) 58%,
			rgba(55, 6, 0, 1) 82%,
			rgba(20, 0, 0, 1) 100%
		);
	-webkit-mask-image: radial-gradient(circle at center, #000 82%, transparent 100%);
	mask-image: radial-gradient(circle at center, #000 82%, transparent 100%);
	box-shadow: inset 0 0 6px rgba(255, 90, 0, 0.4);
}

.pfia-overlay.is-forge-fire-active .pfia-forge-chamber {
	opacity: 1;
}

.pfia-forge-fire {
	position: absolute;
	left: 50%;
	top: 56%;
	width: 380%;
	height: 380%;
	transform: translate(-50%, -50%);
	object-fit: cover;
	object-position: center center;
	mix-blend-mode: screen;
	filter: saturate(1.35) contrast(1.4) brightness(1.2);
}

/* With forge video, hide floating CSS effect layers. */
.pfia-overlay.has-forge-video .pfia-glow,
.pfia-overlay.has-forge-video .pfia-heat,
.pfia-overlay.has-forge-video .pfia-fire,
.pfia-overlay.has-forge-video .pfia-sparks,
.pfia-overlay.has-forge-video .pfia-smoke {
	display: none !important;
}

@media (max-width: 782px) {
	.pfia-forge-chamber {
		--pfia-forge-size: 9%;
	}
}

/* Mobile optimization â€” smaller particles, less smoke, tighter logo. */
@media (max-width: 782px) {
	.pfia-logo__text {
		font-size: clamp(1.15rem, 6.5vw, 1.85rem);
		letter-spacing: 0.12em;
	}

	.pfia-glow {
		width: min(10rem, 58vw);
		height: min(4rem, 18vw);
	}

	.pfia-fire {
		width: min(5.5rem, 34vw);
		height: min(3rem, 14vw);
	}

	.pfia-sparks {
		width: min(9rem, 58vw);
		height: min(6rem, 28vw);
	}

	.pfia-spark--5,
	.pfia-spark--6,
	.pfia-spark--7,
	.pfia-spark--8 {
		display: none;
	}

	.pfia-smoke__wisp--c {
		display: none;
	}

	.pfia-heat {
		width: min(8rem, 50vw);
		height: min(2.5rem, 12vw);
		opacity: 0.65;
	}

	.pfia-skip {
		right: 0.85rem;
		bottom: 0.85rem;
		padding: 0.5rem 0.8rem;
		font-size: 0.7rem;
	}

	.pfia-logo__image {
		max-width: min(18rem, 78vw);
		max-height: min(5.5rem, 24vw);
	}
}

/* Accessibility â€” respect reduced motion preferences. */
@media (prefers-reduced-motion: reduce) {
	.pfia-overlay,
	.pfia-logo,
	.pfia-glow,
	.pfia-fire,
	.pfia-sparks,
	.pfia-smoke,
	.pfia-heat,
	.pfia-skip,
	.pfia-logo__image {
		animation: none !important;
		transition: opacity 0.25s ease !important;
	}

	.pfia-overlay.is-reduced-motion .pfia-fire,
	.pfia-overlay.is-reduced-motion .pfia-sparks,
	.pfia-overlay.is-reduced-motion .pfia-smoke,
	.pfia-overlay.is-reduced-motion .pfia-heat,
	.pfia-overlay.is-reduced-motion .pfia-glow {
		display: none !important;
	}

	.pfia-overlay.is-reduced-motion .pfia-logo {
		opacity: 1;
		transform: none;
	}
}

