/**
 * Global styles for smooth page transitions
 * Optimized for performance and preventing layout shifts
 */

/* Optimize rendering for all elements during transitions */
* {
	/* Prevent text from shifting during transitions */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

/* Body optimization for transitions */
body {
	/* Ensure smooth transitions without layout shifts */
	overflow-x: hidden;
	/* NOTE: Avoid applying transforms on body.
	   Transforms create a new containing block that breaks `position: fixed`
	   (e.g., CookieConsent modal). If you need GPU acceleration, apply
	   transforms to specific elements instead of the body. */
}

/* Optimize all images for loading */
img {
	/* Prevent layout shifts when images load */
	display: block;
	max-width: 100%;
	height: auto;
	/* Use contain for better performance during transitions */
	contain: layout;
}

/* Prevent layout shifts for media elements */
video,
picture,
media-controller {
	/* Optimize rendering during transitions */
	contain: layout style;
	transform: translate3d(0, 0, 0);
	-webkit-transform: translate3d(0, 0, 0);
}

/* Smooth transitions for links */
a {
	/* Ensure links transition smoothly */
	transition: opacity 0.2s ease-in-out;
}

/* Optimize main content container */
.container {
	/* Prevent layout shifts */
	min-height: 100vh;
	min-height: 100svh;
	/* GPU acceleration */
	transform: translate3d(0, 0, 0);
	-webkit-transform: translate3d(0, 0, 0);
	will-change: auto;
}

/* Directors page optimization */
.directors-layout {
	/* Ensure smooth transitions on directors pages */
	contain: layout style;
	transform: translate3d(0, 0, 0);
	-webkit-transform: translate3d(0, 0, 0);
}

/* Prevent FOUC (Flash of Unstyled Content) */
.container > main {
	/* Ensure main content is optimized */
	min-height: 100vh;
	min-height: 100svh;
	contain: layout style;
}

/* Optimize carousel for transitions */
.post_carousel,
.swiper-wrapper,
.swiper-slide {
	/* GPU acceleration for smooth carousel transitions */
	transform: translate3d(0, 0, 0);
	-webkit-transform: translate3d(0, 0, 0);
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

/* Ensure padding borders don't cause layout shifts */
.padding__borders {
	/* Optimize border rendering */
	contain: strict;
	pointer-events: none;
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Optimize for high refresh rate displays */
@media (prefers-reduced-motion: no-preference) {
	* {
		/* Use optimized animation timing for smooth 60fps+ */
		animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
		transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
	}
}
