/* CG RevoFlow — frontend runtime styles */
.cgrf {
	position: relative;
	width: 100%;
	--cgrf-nav: #fff;
	--cgrf-bg: #111;
	--cgrf-gw: 1240;
	--cgrf-gh: 600;
	line-height: normal;
	-webkit-tap-highlight-color: transparent;
}
.cgrf *, .cgrf *::before, .cgrf *::after { box-sizing: border-box; }

.cgrf--fullwidth,
.cgrf--fullscreen {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.cgrf-stage {
	position: relative;
	width: 100%;
	overflow: hidden;
	background: var(--cgrf-bg);
	/* Pre-JS height: avoids layout shift before the runtime measures. */
	aspect-ratio: var(--cgrf-gw) / var(--cgrf-gh);
	max-height: calc(var(--cgrf-gh) * 1px);
	touch-action: pan-y;
	user-select: none;
	-webkit-user-select: none;
}
.cgrf--fullscreen .cgrf-stage {
	aspect-ratio: auto;
	max-height: none;
	height: 100vh;
	height: 100svh;
}
.cgrf.is-measured .cgrf-stage { aspect-ratio: auto; max-height: none; }

.cgrf-slides, .cgrf-slide, .cgrf-bg, .cgrf-bg-media, .cgrf-overlay, .cgrf-slide-link {
	position: absolute;
	inset: 0;
}
.cgrf-slides { perspective: 2200px; }
.cgrf-slide {
	visibility: hidden;
	z-index: 1;
	overflow: hidden;
	will-change: transform, opacity, clip-path;
}
.cgrf-slide.is-active { visibility: visible; z-index: 2; }
.cgrf-slide.is-leaving { visibility: visible; z-index: 2; }
.cgrf-slide.is-entering { visibility: visible; z-index: 3; }

.cgrf-bg { overflow: hidden; }
.cgrf-bg-media {
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
	transform-origin: center center;
}
.cgrf-slide-link { z-index: 1; }

.cgrf-grid {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 1240px;
	height: 600px;
	transform: translate(-50%, -50%) scale(var(--cgrf-scale, 1));
	transform-origin: center center;
	z-index: 2;
	pointer-events: none;
}
.cgrf .cgrf-layer {
	position: absolute;
	opacity: 0;
	pointer-events: auto;
	will-change: transform, opacity;
}
.cgrf.is-static .cgrf-layer { opacity: 1; }
.cgrf-loop { width: 100%; height: 100%; }

.cgrf-li {
	display: block;
	margin: 0;
	padding: 0;
	font-size: inherit;
	border: 0;
	background: none;
	color: inherit;
	text-decoration: none;
	max-width: none;
	transition: color .25s ease, background .25s ease, box-shadow .25s ease;
}
h1.cgrf-li, h2.cgrf-li, h3.cgrf-li, h4.cgrf-li, h5.cgrf-li, h6.cgrf-li, p.cgrf-li { font-size: inherit; letter-spacing: inherit; }
.cgrf-li a { color: inherit; text-decoration: none; }
.cgrf-layer--shape .cgrf-li,
.cgrf-layer--image .cgrf-li { width: 100%; height: 100%; }
.cgrf-layer--button .cgrf-li { display: inline-block; cursor: pointer; }
.cgrf-layer--button[style*="width"] .cgrf-li { width: 100%; }
.cgrf-img { display: block; width: 100%; height: 100%; object-fit: cover; max-width: none; }
.cgrf-layer--image { line-height: 0; }

/* Split text */
.cgrf-w { display: inline-block; white-space: nowrap; }
.cgrf-ch { display: inline-block; will-change: transform, opacity; }

/* Loop animations */
.cgrf-slide.is-active .cgrf-loop--pulse { animation: cgrf-pulse var(--cgrf-loop, 3s) ease-in-out infinite; }
.cgrf-slide.is-active .cgrf-loop--float { animation: cgrf-float var(--cgrf-loop, 3s) ease-in-out infinite; }
.cgrf-slide.is-active .cgrf-loop--rotate { animation: cgrf-rotate var(--cgrf-loop, 3s) linear infinite; }
.cgrf-slide.is-active .cgrf-loop--wiggle { animation: cgrf-wiggle var(--cgrf-loop, 3s) ease-in-out infinite; }
.cgrf-slide.is-active .cgrf-loop--blink { animation: cgrf-blink var(--cgrf-loop, 3s) ease-in-out infinite; }
@keyframes cgrf-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.08); } }
@keyframes cgrf-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-18px); } }
@keyframes cgrf-rotate { to { transform: rotate(360deg); } }
@keyframes cgrf-wiggle { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(-4deg); } 75% { transform: rotate(4deg); } }
@keyframes cgrf-blink { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }

/* Arrows */
.cgrf-arrow {
	position: absolute;
	top: 50%;
	z-index: 10;
	width: 48px;
	height: 48px;
	margin-top: -24px;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0;
	cursor: pointer;
	color: var(--cgrf-nav);
	background: rgba(0, 0, 0, .28);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	opacity: .85;
	transition: opacity .25s, background .25s, transform .25s;
}
.cgrf-arrow:hover, .cgrf-arrow:focus-visible { opacity: 1; background: rgba(0, 0, 0, .5); }
.cgrf-arrow:focus-visible, .cgrf-bullet:focus-visible { outline: 2px solid var(--cgrf-nav); outline-offset: 2px; }
.cgrf-arrow svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.cgrf-arrow--prev { left: 20px; }
.cgrf-arrow--next { right: 20px; }
.cgrf--arrows-round .cgrf-arrow { border-radius: 50%; }
.cgrf--arrows-square .cgrf-arrow { border-radius: 4px; }
.cgrf--arrows-minimal .cgrf-arrow { background: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
.cgrf--arrows-minimal .cgrf-arrow svg { width: 34px; height: 34px; stroke-width: 1.6; filter: drop-shadow(0 1px 3px rgba(0,0,0,.4)); }
.cgrf--arrows-minimal .cgrf-arrow:hover { background: none; }

/* Bullets */
.cgrf-bullets {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 22px;
	z-index: 10;
	display: flex;
	justify-content: center;
	gap: 10px;
	pointer-events: none;
}
.cgrf-bullet {
	pointer-events: auto;
	padding: 0;
	border: 0;
	cursor: pointer;
	background: var(--cgrf-nav);
	opacity: .45;
	transition: opacity .3s, width .3s, transform .3s;
}
.cgrf-bullet span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.cgrf-bullet:hover { opacity: .8; }
.cgrf-bullet.is-active { opacity: 1; }
.cgrf--bullets-dots .cgrf-bullet { width: 10px; height: 10px; border-radius: 50%; }
.cgrf--bullets-dots .cgrf-bullet.is-active { transform: scale(1.3); }
.cgrf--bullets-lines .cgrf-bullet { width: 28px; height: 3px; border-radius: 2px; }
.cgrf--bullets-lines .cgrf-bullet.is-active { width: 46px; }
.cgrf--bullets-numbers .cgrf-bullet { width: 30px; height: 30px; border-radius: 50%; background: rgba(0,0,0,.3); color: var(--cgrf-nav); font: 600 13px/30px system-ui, sans-serif; border: 1px solid var(--cgrf-nav); }
.cgrf--bullets-numbers .cgrf-bullet span { position: static; width: auto; height: auto; clip: auto; }
.cgrf--bullets-numbers .cgrf-bullet.is-active { background: var(--cgrf-nav); color: #111; }

/* Progress */
.cgrf-progress { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; z-index: 10; background: rgba(255,255,255,.15); pointer-events: none; }
.cgrf-progress[hidden] { display: block; visibility: hidden; }
.cgrf-progress span { display: block; height: 100%; width: 100%; background: var(--cgrf-nav); transform-origin: left center; transform: scaleX(0); }

@media (hover: hover) {
	.cgrf .cgrf-arrow { opacity: 0; }
	.cgrf:hover .cgrf-arrow, .cgrf:focus-within .cgrf-arrow { opacity: .85; }
	.cgrf .cgrf-arrow:hover, .cgrf .cgrf-arrow:focus-visible { opacity: 1; }
}
@media (max-width: 600px) {
	.cgrf--swipe .cgrf-arrow { display: none; }
}
@media (max-width: 767px) {
	.cgrf-arrow { width: 38px; height: 38px; margin-top: -19px; }
	.cgrf-arrow--prev { left: 10px; }
	.cgrf-arrow--next { right: 10px; }
	.cgrf-bullets { bottom: 14px; }
}

.cgrf-empty { padding: 12px 16px; border-left: 4px solid #d63638; background: #fff3f3; font: 14px/1.4 system-ui, sans-serif; }

/* Typewriter caret */
.cgrf-caret { display: inline-block; width: .08em; min-width: 2px; height: 1em; margin: 0 .04em; vertical-align: -0.12em; background: currentColor; animation: cgrf-caret 1s steps(1) infinite; }
.cgrf-caret.is-done { animation-delay: .4s; }
@keyframes cgrf-caret { 50% { opacity: 0; } }

/* Rotating words */
.cgrf-rot { display: inline-block; position: relative; white-space: nowrap; }
.cgrf-rot-w { display: inline-block; }

/* Counter */
.cgrf-counter { font-variant-numeric: tabular-nums; white-space: nowrap; }

/* Countdown */
.cgrf-cd { display: flex; gap: .35em; flex-wrap: nowrap; }
.cgrf-cd-u { display: flex; flex-direction: column; align-items: center; min-width: 2.4em; padding: .35em .3em .3em; border-radius: .25em; background: var(--cgrf-cd-bg, rgba(255,255,255,.12)); line-height: 1; }
.cgrf-cd-u b { font-weight: inherit; font-size: 1em; font-variant-numeric: tabular-nums; }
.cgrf-cd-u small { font-size: .32em; margin-top: .45em; text-transform: uppercase; letter-spacing: .12em; opacity: .75; }
.cgrf-cd-exp { align-self: center; font-size: .6em; }
.cgrf-cd.is-expired .cgrf-cd-u, .cgrf-layer.is-expired .cgrf-cd-u { display: none; }

/* Video backgrounds */
.cgrf-video { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.cgrf-video video { width: 100%; height: 100%; object-fit: cover; display: block; }
.cgrf-video iframe { position: absolute; left: 50%; top: 50%; width: 100%; height: 100%; transform: translate(-50%, -50%); border: 0; }

/* Parallax: oversize the background so it can move without showing edges */
.cgrf--parallax .cgrf-bg-media { inset: calc(var(--cgrf-px-pad, 40px) * -1); }
.cgrf--parallax .cgrf-layer, .cgrf--parallax .cgrf-bg-media { transition: translate .25s ease-out; }
