/* Cursor customizado */
body {
	cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="rgba(255,255,255,0.8)" stroke-width="2"><circle cx="12" cy="12" r="4"/></svg>') 12 12, auto;
}

a,
button,
.block-container,
.project,
.slide,
header nav ul li {
	cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="rgba(102,126,234,0.6)" stroke="rgba(255,255,255,0.9)" stroke-width="2"><circle cx="12" cy="12" r="6"/></svg>') 12 12, pointer;
}

.cursor-trail {
	position: fixed;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	pointer-events: none;
	z-index: 9999;
	animation: fade-out 0.5s ease-out forwards;
}

@keyframes fade-out {
	to {
		opacity: 0;
		transform: scale(2);
	}
}

/* Easter Egg: Tema Matrix */
body.matrix-mode {
	background: #000 !important;
}

body.matrix-mode #app {
	background: rgba(0, 0, 0, 0.95) !important;
}

body.matrix-mode * {
	color: #00ff00 !important;
	text-shadow: 0 0 5px #00ff00 !important;
}

.matrix-rain {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 10000;
}

/* Notificação com glassmorphism */
.notificacao {
	position: fixed;
	top: 20px;
	right: 20px;
	background: rgba(255, 255, 255, 0.15);
	backdrop-filter: blur(20px) saturate(180%);
	border: 2px solid rgba(255, 255, 255, 0.25);
	border-radius: 15px;
	padding: 20px 25px;
	color: #fff;
	z-index: 10001;
	box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37);
	animation: slideInRight 0.4s ease-out;
	min-width: 280px;
	max-width: 400px;
}

.notificacao strong {
	font-size: 14pt;
	display: block;
	margin-bottom: 5px;
	text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

.notificacao small {
	font-size: 11pt;
	opacity: 0.9;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

@keyframes slideInRight {
	from {
		transform: translateX(400px);
		opacity: 0;
	}

	to {
		transform: translateX(0);
		opacity: 1;
	}
}

/* Easter Egg: Shake animation */
@keyframes shake {

	0%,
	100% {
		transform: translateX(0);
	}

	10%,
	30%,
	50%,
	70%,
	90% {
		transform: translateX(-10px);
	}

	20%,
	40%,
	60%,
	80% {
		transform: translateX(10px);
	}
}

.shake {
	animation: shake 0.5s;
}

/* Easter Egg: Dev Panel */
.dev-panel {
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: rgba(255, 255, 255, 0.05);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	border: 2px solid rgba(255, 255, 255, 0.1);
	border-radius: 15px;
	padding: 30px;
	max-width: 600px;
	max-height: 80vh;
	overflow-y: auto;
	z-index: 10002;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
	animation: slideInScale 0.4s ease-out;
}

.dev-panel-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.5);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	z-index: 10001;
	animation: fadeIn 0.3s ease-out;
}

@keyframes slideInScale {
	from {
		transform: translate(-50%, -50%) scale(0.8);
		opacity: 0;
	}

	to {
		transform: translate(-50%, -50%) scale(1);
		opacity: 1;
	}
}

@keyframes fadeIn {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

.dev-panel h2 {
	color: #fff;
	font-size: 22pt;
	margin: 0 0 20px 0;
	text-align: center;
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

.dev-panel-close {
	position: absolute;
	top: 15px;
	right: 15px;
	background: rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, 0.2);
	color: #fff;
	font-size: 20pt;
	width: 35px;
	height: 35px;
	border-radius: 50%;
	cursor: pointer;
	transition: all 0.3s;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

.dev-panel-close:hover {
	background: rgba(255, 0, 0, 0.2);
	border-color: rgba(255, 100, 100, 0.5);
	transform: rotate(90deg);
}

.dev-section {
	margin-bottom: 25px;
}

.dev-section h3 {
	color: #fff;
	font-size: 14pt;
	margin: 0 0 10px 0;
	border-bottom: 2px solid rgba(255, 255, 255, 0.2);
	padding-bottom: 5px;
	text-shadow: 0 2px 10px rgba(102, 126, 234, 0.5);
}

.dev-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.dev-tag {
	background: rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	color: #fff;
	padding: 5px 12px;
	border-radius: 15px;
	font-size: 10pt;
	border: 1px solid rgba(255, 255, 255, 0.2);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.dev-info {
	color: #e0e0e0;
	font-size: 11pt;
	line-height: 1.6;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

.dev-info strong {
	color: #fff;
}

.dev-stats {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 15px;
	margin-top: 10px;
}

.dev-stat {
	background: rgba(255, 255, 255, 0.05);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	padding: 15px;
	border-radius: 10px;
	text-align: center;
	border: 1px solid rgba(255, 255, 255, 0.1);
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.dev-stat-number {
	font-size: 24pt;
	font-weight: bold;
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	display: block;
	filter: drop-shadow(0 2px 5px rgba(102, 126, 234, 0.3));
}

.dev-stat-label {
	font-size: 9pt;
	color: #ccc;
	text-transform: uppercase;
	margin-top: 5px;
}

@media (max-width: 768px) {
	.dev-panel {
		max-width: 90%;
		padding: 20px;
	}

	.dev-stats {
		grid-template-columns: 1fr;
	}
}

/* Easter Egg: Confetes */
.confetti {
	position: fixed;
	width: 10px;
	height: 10px;
	background: #f0f;
	pointer-events: none;
	z-index: 9998;
	animation: confetti-fall 3s linear forwards;
}

@keyframes confetti-fall {
	0% {
		transform: translateY(-100vh) rotate(0deg);
		opacity: 1;
	}

	100% {
		transform: translateY(100vh) rotate(720deg);
		opacity: 0;
	}
}

/* Easter Egg: Rainbow cards */
.rainbow-mode .block-container .btn-front {
	animation: rainbow-rotate 3s ease-in-out;
}

@keyframes rainbow-rotate {

	0%,
	100% {
		filter: hue-rotate(0deg) brightness(1);
	}

	25% {
		filter: hue-rotate(90deg) brightness(1.2);
	}

	50% {
		filter: hue-rotate(180deg) brightness(1.3);
	}

	75% {
		filter: hue-rotate(270deg) brightness(1.2);
	}
}

/* Easter Egg: FPS Mode - Crosshair */
.fps-crosshair {
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 40px;
	height: 40px;
	z-index: 9999;
	pointer-events: none;
	transition: all 0.1s ease;
}

.fps-crosshair::before,
.fps-crosshair::after {
	content: '';
	position: absolute;
	background: rgba(255, 0, 0, 0.8);
	box-shadow: 0 0 10px rgba(255, 0, 0, 0.5);
}

.fps-crosshair::before {
	width: 20px;
	height: 2px;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.fps-crosshair::after {
	width: 2px;
	height: 20px;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

/* FPS HUD com glassmorphism */
.fps-hud {
	position: fixed;
	bottom: 20px;
	right: 20px;
	background: rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(20px) saturate(180%);
	border: 2px solid rgba(255, 255, 255, 0.2);
	border-radius: 15px;
	padding: 20px 25px;
	color: #fff;
	font-family: 'Courier New', monospace;
	font-size: 14pt;
	z-index: 9998;
	pointer-events: none;
	box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37);
}

.fps-hud-ammo {
	font-size: 24pt;
	font-weight: bold;
	color: #ff6b6b;
	text-shadow: 0 0 10px rgba(255, 107, 107, 0.8);
}

.fps-hud-score {
	margin-top: 10px;
	font-size: 18pt;
	color: #ffd93d;
	text-shadow: 0 0 5px rgba(255, 217, 61, 0.8);
}

.fps-hud-timer {
	margin-top: 5px;
	font-size: 12pt;
	color: #6bcf7f;
	text-shadow: 0 0 5px rgba(107, 207, 127, 0.8);
}

.fps-hud-combo {
	margin-top: 5px;
	font-size: 14pt;
	color: #c77dff;
	text-shadow: 0 0 5px rgba(199, 125, 255, 0.8);
	font-weight: bold;
}

/* FPS Target com glassmorphism */
.fps-target {
	position: fixed;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	cursor: crosshair;
	z-index: 9997;
	transition: all 0.3s ease;
	animation: targetPulse 1s ease-in-out infinite;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 24pt;
	pointer-events: all;
	backdrop-filter: blur(10px) saturate(180%);
}

.fps-target.normal {
	background: rgba(255, 255, 255, 0.15);
	border: 3px solid rgba(255, 255, 255, 0.3);
	box-shadow: 0 8px 32px 0 rgba(255, 0, 0, 0.3), inset 0 0 20px rgba(255, 255, 255, 0.1);
}

.fps-target.fast {
	background: rgba(255, 165, 0, 0.2);
	border: 3px solid rgba(255, 165, 0, 0.4);
	box-shadow: 0 8px 32px 0 rgba(255, 165, 0, 0.4), inset 0 0 20px rgba(255, 255, 255, 0.1);
	width: 50px;
	height: 50px;
	animation: targetPulse 0.5s ease-in-out infinite;
}

.fps-target.bonus {
	background: rgba(255, 215, 0, 0.25);
	border: 3px solid rgba(255, 215, 0, 0.5);
	box-shadow: 0 8px 32px 0 rgba(255, 215, 0, 0.6), inset 0 0 20px rgba(255, 255, 255, 0.2);
	width: 80px;
	height: 80px;
	animation: targetBonus 0.8s ease-in-out infinite;
}

@keyframes targetPulse {

	0%,
	100% {
		transform: scale(1);
	}

	50% {
		transform: scale(1.1);
	}
}

@keyframes targetBonus {

	0%,
	100% {
		transform: scale(1) rotate(0deg);
	}

	50% {
		transform: scale(1.15) rotate(180deg);
	}
}

/* FPS Hit Marker */
.fps-hitmarker {
	position: fixed;
	width: 40px;
	height: 40px;
	z-index: 10000;
	pointer-events: none;
}

.fps-hitmarker::before,
.fps-hitmarker::after {
	content: '';
	position: absolute;
	background: #fff;
	box-shadow: 0 0 10px #fff;
}

.fps-hitmarker::before {
	width: 20px;
	height: 2px;
	top: 50%;
	left: 0;
	transform: translateY(-50%) rotate(45deg);
}

.fps-hitmarker::after {
	width: 20px;
	height: 2px;
	top: 50%;
	right: 0;
	transform: translateY(-50%) rotate(-45deg);
}

/* FPS Game Over com glassmorphism */
.fps-gameover {
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(30px) saturate(180%);
	border: 2px solid rgba(255, 255, 255, 0.2);
	border-radius: 20px;
	padding: 40px 60px;
	color: #fff;
	font-family: 'Courier New', monospace;
	text-align: center;
	z-index: 10001;
	box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37);
	animation: slideDown 0.5s ease-out;
}

.fps-gameover h2 {
	font-size: 36pt;
	margin: 0 0 20px 0;
	color: #fff;
	text-shadow: 0 0 20px rgba(255, 255, 255, 0.8);
}

.fps-gameover .score {
	font-size: 24pt;
	color: #ffd93d;
	text-shadow: 0 0 10px rgba(255, 217, 61, 0.8);
	margin: 10px 0;
}

.fps-gameover .stats {
	font-size: 14pt;
	color: #fff;
	margin: 20px 0;
	opacity: 0.9;
}

.fps-gameover button {
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	border: none;
	border-radius: 10px;
	padding: 15px 30px;
	color: #fff;
	font-size: 14pt;
	font-weight: bold;
	cursor: pointer;
	margin: 10px;
	transition: all 0.3s ease;
	box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4);
}

.fps-gameover button:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(102, 126, 234, 0.6);
}

/* God Mode Easter Egg */
body.god-mode {
	animation: god-aura-pulse 3s ease-in-out infinite;
}

@keyframes god-aura-pulse {

	0%,
	100% {
		filter: brightness(1) saturate(1);
	}

	50% {
		filter: brightness(1.2) saturate(1.3);
	}
}

/* Aura dourada no logo */
.god-aura {
	animation: god-logo-glow 2s ease-in-out infinite !important;
	filter: drop-shadow(0 0 30px #FFD700) drop-shadow(0 0 60px #FFA500) !important;
}

@keyframes god-logo-glow {

	0%,
	100% {
		transform: scale(1) rotate(0deg);
		filter: drop-shadow(0 0 30px #FFD700) drop-shadow(0 0 60px #FFA500);
	}

	50% {
		transform: scale(1.05) rotate(2deg);
		filter: drop-shadow(0 0 50px #FFD700) drop-shadow(0 0 100px #FFA500) drop-shadow(0 0 150px #FF8C00);
	}
}

/* Partículas de energia divina */
.god-particle {
	position: fixed;
	font-size: 30px;
	pointer-events: none;
	z-index: 9999;
	animation: god-particle-rise 4s ease-out forwards;
}

@keyframes god-particle-rise {
	0% {
		transform: translateY(100vh) scale(0) rotate(0deg);
		opacity: 0;
	}

	20% {
		opacity: 1;
	}

	80% {
		opacity: 1;
	}

	100% {
		transform: translateY(-100vh) scale(2) rotate(720deg);
		opacity: 0;
	}
}

/* Efeito de levitação nos cards */
.god-float:not(.slide) {
	animation: god-card-float 4s ease-in-out infinite !important;
	transition: all 0.3s ease !important;
}

@keyframes god-card-float {

	0%,
	100% {
		transform: translateY(0) rotate(0deg) scale(1);
	}

	25% {
		transform: translateY(-5px) rotate(1deg) scale(1.01);
	}

	50% {
		transform: translateY(-8px) rotate(0deg) scale(1.02);
	}

	75% {
		transform: translateY(-5px) rotate(-1deg) scale(1.01);
	}
}

/* Fantasma guia dos Easter Eggs */

/* Explosão inicial de luz divina */
.god-explosion {
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 100px;
	height: 100px;
	background: radial-gradient(circle, rgba(255, 215, 0, 1) 0%, rgba(255, 165, 0, 0.8) 30%, rgba(255, 140, 0, 0) 70%);
	border-radius: 50%;
	z-index: 9997;
	pointer-events: none;
	animation: god-explosion-burst 2s ease-out forwards;
	box-shadow:
		0 0 100px 50px rgba(255, 215, 0, 0.8),
		0 0 200px 100px rgba(255, 165, 0, 0.6),
		0 0 300px 150px rgba(255, 140, 0, 0.4);
}

@keyframes god-explosion-burst {
	0% {
		transform: translate(-50%, -50%) scale(0);
		opacity: 1;
	}

	50% {
		opacity: 1;
	}

	100% {
		transform: translate(-50%, -50%) scale(50);
		opacity: 0;
	}
}

/* Estrelas brilhantes */
.god-star {
	position: fixed;
	font-size: 24px;
	pointer-events: none;
	z-index: 9998;
	animation: god-star-twinkle 2s ease-in-out infinite;
}

@keyframes god-star-twinkle {

	0%,
	100% {
		opacity: 0.3;
		transform: scale(0.8);
	}

	50% {
		opacity: 1;
		transform: scale(1.2);
	}
}

/* Melhorar aura do logo */
.god-aura {
	animation: god-logo-glow 2s ease-in-out infinite !important;
	filter: drop-shadow(0 0 30px #FFD700) !important;
	position: relative !important;
}

@keyframes god-logo-glow {

	0%,
	100% {
		transform: scale(1);
		filter: drop-shadow(0 0 30px #FFD700);
	}

	50% {
		transform: scale(1.05);
		filter: drop-shadow(0 0 50px #FFD700);
	}
}

/* Melhorar body god mode */
body.god-mode {
	animation: god-body-pulse 5s ease-in-out infinite;
}

@keyframes god-body-pulse {

	0%,
	100% {
		filter: brightness(1);
	}

	50% {
		filter: brightness(1.15);
	}
}

/* Matrix Circle Mode */
.matrix-circle-mode {
	animation: matrix-circle-pulse 2s ease-in-out infinite !important;
}

@keyframes matrix-circle-pulse {

	0%,
	100% {
		transform: scale(1);
	}

	50% {
		transform: scale(1.05);
	}
}

.matrix-logo-spin {
	animation: matrix-logo-rotate 3s linear infinite !important;
	filter: brightness(1.5) drop-shadow(0 0 20px #00ff00) !important;
}

@keyframes matrix-logo-rotate {
	from {
		transform: rotate(0deg);
	}

	to {
		transform: rotate(360deg);
	}
}

.logo-matrix-char {
	position: absolute;
	font-size: 16px;
	color: #00ff00;
	font-weight: bold;
	font-family: 'Courier New', monospace;
	pointer-events: none;
	text-shadow: 0 0 10px #00ff00;
	animation: logo-char-fall 2s linear forwards;
	z-index: 10;
}

@keyframes logo-char-fall {
	0% {
		top: 0;
		opacity: 0;
	}

	10% {
		opacity: 1;
	}

	90% {
		opacity: 1;
	}

	100% {
		top: 100%;
		opacity: 0;
	}
}

.circle-matrix-particle {
	position: absolute;
	font-size: 20px;
	color: #00ff00;
	font-weight: bold;
	pointer-events: none;
	animation: circle-particle-fly 2s ease-out forwards;
	text-shadow: 0 0 10px #00ff00;
	left: 50%;
	top: 50%;
}

@keyframes circle-particle-fly {
	0% {
		transform: translate(-50%, -50%) rotate(var(--angle)) translateX(0) scale(0);
		opacity: 0;
	}

	20% {
		opacity: 1;
	}

	80% {
		opacity: 1;
	}

	100% {
		transform: translate(-50%, -50%) rotate(var(--angle)) translateX(150px) scale(1.5);
		opacity: 0;
	}
}

/* Fantasma guia dos Easter Eggs */
@media screen and (max-width: 768px) {
	.ghost-guide {
		left: 15px;
	}
}

@media screen and (min-width: 768px) {
	.ghost-guide {
		left: 30px;
	}

	.ghost-message {
		min-width: 300px;
		max-width: 350px;
	}
}

.ghost-guide {
	position: fixed;
	bottom: -150px;
	z-index: 10000;
	transition: bottom 0.5s ease-out;
	animation: ghostFloat 3s ease-in-out infinite;
	cursor: pointer;
}

.ghost-guide.show {
	bottom: 30px;
}

.ghost-emoji {
	font-size: 60pt;
	filter: drop-shadow(0 5px 15px rgba(255, 255, 255, 0.3));
	display: block;
	animation: ghostWiggle 1s ease-in-out infinite;
	opacity: 0.7;
}

.ghost-message {
	position: absolute;
	left: 110px;
	bottom: 17px;
	background: rgba(255, 255, 255, 0.15);
	backdrop-filter: blur(20px);
	border: 2px solid rgba(255, 255, 255, 0.3);
	border-radius: 15px;
	padding: 15px 20px;
	color: #fff;
	font-size: 12pt;
	min-width: 250px;
	max-width: 300px;
	box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37);
	opacity: 0;
	transform: scale(0.8);
	transition: all 0.3s ease;
	pointer-events: none;
}

.ghost-guide.show .ghost-message {
	opacity: 1;
	transform: scale(1);
}

.ghost-message::before {
	content: '';
	position: absolute;
	left: -10px;
	bottom: 30px;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 10px 10px 10px 0;
	border-color: transparent rgba(255, 255, 255, 0.3) transparent transparent;
}

.ghost-close {
	position: absolute;
	top: 5px;
	right: 10px;
	color: #fff;
	font-size: 18pt;
	cursor: pointer;
	opacity: 0.7;
	transition: opacity 0.2s;
	pointer-events: all;
}

.ghost-close:hover {
	opacity: 1;
}

@keyframes ghostFloat {

	0%,
	100% {
		transform: translateY(0);
	}

	50% {
		transform: translateY(-15px);
	}
}

@keyframes ghostWiggle {

	0%,
	100% {
		transform: rotate(-5deg);
	}

	50% {
		transform: rotate(5deg);
	}
}

/* Easter Egg: Disco Mode */
.disco-mode {
	animation: disco-flash 0.3s infinite;
}

@keyframes disco-flash {
	0% {
		background: radial-gradient(circle at 20% 50%, #ff006e, transparent);
	}

	25% {
		background: radial-gradient(circle at 80% 50%, #8338ec, transparent);
	}

	50% {
		background: radial-gradient(circle at 50% 20%, #3a86ff, transparent);
	}

	75% {
		background: radial-gradient(circle at 50% 80%, #fb5607, transparent);
	}

	100% {
		background: radial-gradient(circle at 20% 50%, #ffbe0b, transparent);
	}
}

.disco-ball {
	position: fixed;
	width: 100px;
	height: 100px;
	border-radius: 50%;
	background: linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%),
		linear-gradient(45deg, #fff 25%, #ccc 25%, #ccc 75%, #fff 75%);
	background-size: 20px 20px;
	background-position: 0 0, 10px 10px;
	z-index: 9999;
	pointer-events: none;
	box-shadow: 0 0 50px rgba(255, 255, 255, 0.8);
	animation: disco-spin 3s linear infinite;
}

@keyframes disco-spin {
	from {
		transform: rotate(0deg);
	}

	to {
		transform: rotate(360deg);
	}
}

/* Easter Egg: Explosion */
.explosion {
	position: fixed;
	width: 200px;
	height: 200px;
	border-radius: 50%;
	pointer-events: none;
	z-index: 9999;
	animation: explode 1s ease-out forwards;
}

@keyframes explode {
	0% {
		transform: scale(0);
		opacity: 1;
		box-shadow: 0 0 0 0 rgba(255, 100, 0, 0.7),
			0 0 0 0 rgba(255, 200, 0, 0.5),
			0 0 0 0 rgba(255, 255, 255, 0.3);
	}

	50% {
		opacity: 1;
	}

	100% {
		transform: scale(3);
		opacity: 0;
		box-shadow: 0 0 100px 50px rgba(255, 100, 0, 0),
			0 0 150px 75px rgba(255, 200, 0, 0),
			0 0 200px 100px rgba(255, 255, 255, 0);
	}
}

/* Easter Egg: Retro 8-bit Mode */
.retro-mode {
	image-rendering: pixelated;
	image-rendering: -moz-crisp-edges;
	image-rendering: crisp-edges;
}

.retro-mode * {
	font-family: 'Courier New', monospace !important;
	text-shadow: 2px 2px 0 #000 !important;
}

.retro-scanlines {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 9999;
	background: repeating-linear-gradient(0deg,
			rgba(0, 0, 0, 0.15) 0px,
			transparent 2px,
			transparent 4px,
			rgba(0, 0, 0, 0.15) 4px);
	animation: scanline-move 8s linear infinite;
}

@keyframes scanline-move {
	0% {
		transform: translateY(0);
	}

	100% {
		transform: translateY(10px);
	}
}