/**
 * GamesVTV Brand Layer — noise, vignette, cinematic overlays
 * @package GamesVTV
 */

body::before {
	content: '';
	position: fixed;
	inset: 0;
	z-index: 9998;
	pointer-events: none;
	opacity: var(--gv-noise-opacity, 0.02);
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	background-repeat: repeat;
	background-size: 180px 180px;
	mix-blend-mode: overlay;
}

.gv-cinematic-vignette::after {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	box-shadow: inset 0 0 300px rgba(0, 0, 0, 0.8);
	z-index: 3;
}

.gv-cinematic-grain::before {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	opacity: 0.02;
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
	background-size: 200px 200px;
	z-index: 4;
}

.gv-btn-glow {
	transition:
		background var(--gv-duration) var(--gv-ease),
		box-shadow var(--gv-duration) var(--gv-ease),
		transform var(--gv-duration) var(--gv-ease);
}

.gv-btn-glow:hover {
	box-shadow: 0 0 24px var(--gv-accent-glow);
}

@media (prefers-reduced-motion: reduce) {
	body::before {
		display: none;
	}
}
