body.hotdog-patriot-active {
	animation: patriot-body-pulse 0.42s infinite alternate;
	filter: saturate(1.45) contrast(1.12);
}

body.hotdog-patriot-active::before,
body.hotdog-patriot-active::after {
	content: "";
	position: fixed;
	inset: 0;
	z-index: 2147483000;
	pointer-events: none;
}

body.hotdog-patriot-active::before {
	background:
		repeating-linear-gradient(
			90deg,
			rgba(178, 34, 52, 0.13) 0 28px,
			rgba(255, 255, 255, 0.10) 28px 56px,
			rgba(60, 59, 110, 0.14) 56px 84px
		);
	mix-blend-mode: multiply;
	animation: patriot-flag-wave 2.4s infinite linear;
}

body.hotdog-patriot-active::after {
	background:
		repeating-linear-gradient(
			0deg,
			rgba(255, 255, 255, 0.09) 0 2px,
			rgba(255, 0, 0, 0.10) 2px 5px,
			rgba(0, 55, 255, 0.10) 5px 8px
		);
	opacity: 0.8;
	animation: patriot-screen-flash 1.8s infinite steps(2, end);
}

.hotdog-patriot-root {
	position: fixed;
	inset: 0;
	z-index: 2147483300;
	overflow: hidden;
	pointer-events: none;
	font-family: Impact, Haettenschweiler, "Arial Black", sans-serif;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #fff;
	text-shadow:
		3px 3px 0 #b22234,
		-3px -3px 0 #3c3b6e,
		0 0 14px rgba(255, 255, 255, 0.95);
}

.hotdog-patriot-flag-curtain,
.hotdog-patriot-scanlines,
.hotdog-patriot-fireworks-layer,
.hotdog-patriot-eagles-layer,
.hotdog-patriot-flags-layer,
.hotdog-patriot-star-layer,
.hotdog-patriot-blast-layer {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.hotdog-patriot-ticker-layer {
	position: fixed;
	inset: 0;
	z-index: 2147483500;
	pointer-events: none;
}

.hotdog-patriot-flag-curtain {
	background:
		radial-gradient(circle at 15% 20%, rgba(255, 255, 255, 0.72) 0 2px, transparent 3px 100%),
		repeating-linear-gradient(
			180deg,
			rgba(178, 34, 52, 0.48) 0 34px,
			rgba(255, 255, 255, 0.28) 34px 68px
		),
		linear-gradient(90deg, rgba(60, 59, 110, 0.65), rgba(255, 255, 255, 0.05), rgba(178, 34, 52, 0.55));
	background-size: 72px 72px, 100% 136px, 100% 100%;
	opacity: 0.86;
	mix-blend-mode: screen;
	animation: patriot-flag-wave 1.4s infinite linear;
}

.hotdog-patriot-scanlines {
	background:
		repeating-linear-gradient(
			0deg,
			rgba(255, 255, 255, 0.00) 0 6px,
			rgba(255, 255, 255, 0.18) 6px 8px,
			rgba(178, 34, 52, 0.20) 8px 11px,
			rgba(60, 59, 110, 0.20) 11px 14px
		);
	opacity: 0.75;
	animation: patriot-screen-flash 0.72s infinite steps(2, end);
}

.hotdog-patriot-liberty {
	position: absolute;
	right: -6px;
	bottom: -12px;
	width: min(260px, 34vw);
	height: min(320px, 42vw);
	z-index: 12;
	font-size: min(190px, 24vw);
	line-height: 1;
	text-align: center;
	filter:
		drop-shadow(0 0 20px #00ffff)
		drop-shadow(0 0 34px #ff003c)
		saturate(1.7);
	animation: patriot-liberty-cry 0.62s infinite alternate;
}

.hotdog-patriot-liberty::before {
	content: "🗽";
}

.hotdog-patriot-liberty::after {
	content: "LIBERTY IS CRYING";
	position: absolute;
	left: -40px;
	right: 0;
	bottom: 8px;
	padding: 6px 8px;
	border: 4px solid #fff;
	background: #b22234;
	color: #fff;
	font-size: 18px;
	line-height: 1;
	transform: rotate(-6deg);
	box-shadow: 0 0 18px #00f;
}

.hotdog-patriot-tear {
	position: absolute;
	left: 47%;
	top: 36%;
	width: 13px;
	height: 34px;
	border-radius: 50% 50% 60% 60%;
	background: #00d9ff;
	box-shadow: 0 0 16px #fff;
	animation: patriot-liberty-cry 0.58s infinite linear;
}

.hotdog-patriot-tear:nth-child(2) {
	left: 57%;
	animation-delay: 0.22s;
}

.hotdog-patriot-ticker {
	position: fixed;
	left: 0;
	width: 100vw;
	height: 44px;
	z-index: 2147483501;
	overflow: hidden;
	border-top: 4px solid #fff;
	border-bottom: 4px solid #fff;
	background:
		linear-gradient(90deg, #b22234, #fff, #3c3b6e, #fffb00, #b22234);
	box-shadow: 0 0 20px #fffb00;
	color: #000;
	font-size: 24px;
	line-height: 36px;
	pointer-events: none;
	white-space: nowrap;
	transform: none;
}

.hotdog-patriot-ticker-track {
	display: inline-block;
	min-width: 200%;
	animation: patriot-ticker-scroll 15s linear infinite;
}

.hotdog-patriot-ticker-top {
	top: 0;
}

.hotdog-patriot-ticker-bottom {
	bottom: 0;
}

.hotdog-patriot-ticker-bottom .hotdog-patriot-ticker-track {
	animation-direction: reverse;
}

.hotdog-patriot-firework,
.hotdog-patriot-explosion,
.hotdog-patriot-eagle,
.hotdog-patriot-flag-bit,
.hotdog-patriot-star,
.hotdog-patriot-blast {
	position: absolute;
	will-change: transform, opacity;
	pointer-events: none;
}

.hotdog-patriot-firework {
	width: 2px;
	height: 2px;
	border-radius: 50%;
	transform: translate(-50%, -50%);
	animation: patriot-firework-pop 1.35s cubic-bezier(0.12, 0.88, 0.24, 1) forwards;
	filter:
		drop-shadow(0 0 8px var(--firework-color, #fff))
		drop-shadow(0 0 20px var(--firework-glow, #00d9ff));
}

.hotdog-patriot-firework-core,
.hotdog-patriot-firework-spark,
.hotdog-patriot-firework-trail {
	position: absolute;
	left: 0;
	top: 0;
	pointer-events: none;
}

.hotdog-patriot-firework-core {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: radial-gradient(circle, #fff 0 18%, var(--firework-color, #fffb00) 19% 42%, transparent 62%);
	box-shadow:
		0 0 16px #fff,
		0 0 34px var(--firework-color, #fffb00),
		0 0 58px var(--firework-glow, #00d9ff);
	transform: translate(-50%, -50%);
}

.hotdog-patriot-firework-spark {
	width: 4px;
	height: 28px;
	border-radius: 999px;
	background: linear-gradient(180deg, #fff, var(--spark-color, #fffb00) 42%, transparent);
	box-shadow: 0 0 10px var(--spark-color, #fffb00);
	transform-origin: 50% 0;
	animation: patriot-firework-spark 1.15s ease-out forwards;
}

.hotdog-patriot-firework-spark::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 100%;
	width: 2px;
	height: 18px;
	border-radius: 999px;
	background: linear-gradient(180deg, var(--spark-color, #fffb00), transparent);
	transform: translateX(-50%);
}

.hotdog-patriot-firework-trail {
	width: 3px;
	height: 34px;
	border-radius: 999px;
	background: linear-gradient(180deg, var(--trail-color, #fff), rgba(255, 255, 255, 0));
	box-shadow: 0 0 12px var(--trail-color, #fff);
	animation: patriot-firework-trail 1.1s ease-in forwards;
}

.hotdog-patriot-explosion {
	font-size: clamp(34px, 6vw, 92px);
	animation: patriot-explosion 0.88s ease-out forwards;
	filter: drop-shadow(0 0 22px #fffb00);
}

.hotdog-patriot-eagle {
	font-size: clamp(48px, 9vw, 138px);
	filter:
		drop-shadow(0 0 12px #fff)
		drop-shadow(0 0 18px #00f);
	animation-timing-function: linear;
	animation-fill-mode: forwards;
}

.hotdog-patriot-eagle-left {
	animation-name: patriot-eagle-left;
}

.hotdog-patriot-eagle-right {
	animation-name: patriot-eagle-right;
}

.hotdog-patriot-flag-bit {
	font-size: clamp(18px, 4vw, 54px);
	animation: patriot-starfall 4s linear forwards;
	text-shadow: 0 0 12px #fff;
}

.hotdog-patriot-star {
	color: #fff;
	font-size: clamp(16px, 4vw, 44px);
	animation: patriot-starfall 3.2s linear forwards;
	text-shadow:
		0 0 8px #fff,
		0 0 18px #00f,
		0 0 26px #f00;
}

.hotdog-patriot-blast {
	left: 50%;
	top: 50%;
	z-index: 20;
	padding: 18px 30px;
	border: 8px solid #fff;
	background: #fffb00;
	color: #b22234;
	font-size: clamp(36px, 9vw, 118px);
	line-height: 0.9;
	transform: translate(-50%, -50%) rotate(-7deg);
	box-shadow:
		0 0 40px #fff,
		0 0 80px #f00,
		0 0 110px #00f;
	animation: patriot-screen-flash 0.78s steps(2, end) forwards;
}

.hotdog-patriot-audio-status {
	position: fixed;
	left: 10px;
	bottom: 54px;
	z-index: 2147483600;
	max-width: min(190px, calc(100vw - 20px));
	padding: 5px 8px;
	border: 2px solid rgba(255, 255, 255, 0.82);
	border-radius: 999px;
	background: rgba(178, 34, 52, 0.72);
	color: #fff;
	font: 900 11px/1 Impact, Haettenschweiler, "Arial Black", sans-serif;
	text-transform: uppercase;
	text-shadow: 1px 1px 0 #3c3b6e;
	box-shadow:
		0 0 10px rgba(255, 255, 255, 0.75),
		0 0 18px rgba(0, 217, 255, 0.65);
	cursor: pointer;
	pointer-events: auto;
	opacity: 0.78;
	animation: patriot-audio-wobble 0.8s infinite alternate;
}

.hotdog-patriot-audio-status.is-active {
	background: rgba(60, 59, 110, 0.78);
	color: #fffb00;
	opacity: 0.9;
}

.hotdog-patriot-audio-status[hidden] {
	display: none;
}

@keyframes patriot-firework-pop {
	0% {
		transform: translate(-50%, 34vh) scale(0.16);
		opacity: 0;
	}
	28% {
		transform: translate(-50%, -50%) scale(0.22);
		opacity: 1;
	}
	55% {
		transform: translate(-50%, -50%) scale(0.92);
		opacity: 1;
	}
	100% {
		transform: translate(-50%, -50%) scale(1.45);
		opacity: 0;
	}
}

@keyframes patriot-firework-spark {
	0% {
		transform: rotate(var(--angle)) translateY(-4px) scaleY(0.2);
		opacity: 0;
	}
	24% {
		opacity: 1;
	}
	100% {
		transform: rotate(var(--angle)) translateY(calc(var(--distance) * -1)) scaleY(1);
		opacity: 0;
	}
}

@keyframes patriot-firework-trail {
	0% {
		transform: translateY(4px) scaleY(0.3);
		opacity: 0;
	}
	28% {
		opacity: 0.95;
	}
	100% {
		transform: translateY(96px) scaleY(1.4);
		opacity: 0;
	}
}

@keyframes patriot-explosion {
	0% {
		transform: scale(0.2) rotate(-20deg);
		opacity: 0;
	}
	20% {
		opacity: 1;
	}
	100% {
		transform: scale(2.3) rotate(22deg);
		opacity: 0;
	}
}

@keyframes patriot-eagle-left {
	0% {
		transform: translate(115vw, 0) rotate(-6deg) scaleX(-1);
		opacity: 0;
	}
	8%,
	88% {
		opacity: 1;
	}
	100% {
		transform: translate(-25vw, -18vh) rotate(8deg) scaleX(-1);
		opacity: 0;
	}
}

@keyframes patriot-eagle-right {
	0% {
		transform: translate(-25vw, 0) rotate(6deg);
		opacity: 0;
	}
	8%,
	88% {
		opacity: 1;
	}
	100% {
		transform: translate(115vw, 18vh) rotate(-8deg);
		opacity: 0;
	}
}

@keyframes patriot-ticker-scroll {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-50%);
	}
}

@keyframes patriot-liberty-cry {
	0% {
		transform: translateY(0) skewX(-1deg);
		opacity: 0.78;
	}
	100% {
		transform: translateY(14px) skewX(3deg);
		opacity: 1;
	}
}

@keyframes patriot-flag-wave {
	0% {
		background-position: 0 0, 0 0, 0 0;
	}
	100% {
		background-position: 72px 18px, 0 136px, 240px 0;
	}
}

@keyframes patriot-screen-flash {
	0%,
	100% {
		opacity: 0.25;
	}
	50% {
		opacity: 0.95;
	}
}

@keyframes patriot-starfall {
	0% {
		transform: translateY(-14vh) rotate(0deg) scale(0.7);
		opacity: 0;
	}
	12%,
	78% {
		opacity: 1;
	}
	100% {
		transform: translateY(118vh) rotate(760deg) scale(1.4);
		opacity: 0;
	}
}

@keyframes patriot-audio-wobble {
	0% {
		filter: hue-rotate(0deg) saturate(1);
	}
	100% {
		filter: hue-rotate(38deg) saturate(2.8);
	}
}

@keyframes patriot-body-pulse {
	0% {
		background-color: rgba(255, 0, 0, 0.02);
	}
	100% {
		background-color: rgba(0, 0, 255, 0.08);
	}
}

@media (max-width: 700px) {
	.hotdog-patriot-ticker {
		height: 34px;
		font-size: 17px;
		line-height: 26px;
	}

	.hotdog-patriot-audio-status {
		font-size: 10px;
	}
}
