/* R&D FX — motion & visual layer */
:root {
	--rdfx-ink: #0B131D;
	--rdfx-ink-2: #121E2B;
	--rdfx-blue: #1E8FE8;
	--rdfx-cyan: #3EE0FF;
	--rdfx-violet: #7B5CFF;
	--rdfx-pink: #FF4FD8;
	--rdfx-ease: cubic-bezier(.2, .9, .2, 1);
	--rdfx-grad: linear-gradient(100deg, #3EE0FF 0%, #1E8FE8 30%, #7B5CFF 60%, #FF4FD8 85%, #3EE0FF 100%);
}

@property --rdfx-a {
	syntax: '<angle>';
	initial-value: 0deg;
	inherits: false;
}

html { scroll-behavior: smooth; }
::selection { background: var(--rdfx-blue); color: #fff; }

/* ---------- Failsafe: hide hero headline until it is split ---------- */
.rdfx-js .elementor-top-section h1.elementor-heading-title:not(.rdfx-split) {
	opacity: 0;
	animation: rdfx-show 0s 2.5s forwards;
}
@keyframes rdfx-show { to { opacity: 1; } }

/* ---------- Preloader ---------- */
.rdfx-loader { display: none; }
html.rdfx-preload .rdfx-loader {
	display: flex;
	position: fixed;
	inset: 0;
	z-index: 100000;
	background: #070D14;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 28px;
	clip-path: inset(0 0 0 0);
	transition: clip-path 1s cubic-bezier(.8, 0, .2, 1);
	animation: rdfx-loader-failsafe .01s 5s forwards;
}
html.rdfx-preload .rdfx-loader.rdfx-done { clip-path: inset(0 0 100% 0); }
@keyframes rdfx-loader-failsafe { to { visibility: hidden; } }
.rdfx-loader-inner { display: flex; align-items: baseline; gap: 22px; font-family: Montserrat, sans-serif; color: #F3F6F9; }
.rdfx-loader-mark { font-size: clamp(56px, 10vw, 120px); font-weight: 800; letter-spacing: -.04em; line-height: 1; }
.rdfx-loader-mark em {
	font-style: normal;
	background: var(--rdfx-grad);
	background-size: 300% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	animation: rdfx-grad 2s linear infinite;
}
.rdfx-loader-count { font: 600 14px/1 Inter, sans-serif; letter-spacing: 3px; color: #56616E; min-width: 3ch; }
.rdfx-loader-bar { width: min(320px, 70vw); height: 2px; background: rgba(255, 255, 255, .08); overflow: hidden; }
.rdfx-loader-bar i { display: block; height: 100%; width: 100%; background: var(--rdfx-grad); transform-origin: left; transform: scaleX(0); }

/* ---------- Scroll progress ---------- */
.rdfx-progress {
	position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 9999;
	background: var(--rdfx-grad); background-size: 200% 100%;
	transform-origin: left; transform: scaleX(0);
	box-shadow: 0 0 12px rgba(62, 224, 255, .7);
	pointer-events: none;
	animation: rdfx-grad 4s linear infinite;
}

/* ---------- Custom cursor ---------- */
/*.rdfx-fine, .rdfx-fine body, .rdfx-fine a, .rdfx-fine button, .rdfx-fine .elementor-button { cursor: none !important; }*/
/*.rdfx-fine input, .rdfx-fine textarea, .rdfx-fine select { cursor: text !important; }*/
/*.rdfx-dot, .rdfx-ring {*/
/*	position: fixed; top: 0; left: 0; z-index: 10001; pointer-events: none; border-radius: 50%;*/
/*	mix-blend-mode: difference;*/
/*}*/
/*.rdfx-dot { width: 8px; height: 8px; margin: -4px 0 0 -4px; background: #fff; }*/
/*.rdfx-ring {*/
/*	width: 44px; height: 44px; margin: -22px 0 0 -22px; border: 1.5px solid #fff;*/
/*	transition: width .35s var(--rdfx-ease), height .35s var(--rdfx-ease), margin .35s var(--rdfx-ease), background-color .35s, border-color .35s;*/
/*}*/
/*.rdfx-ring.rdfx-hover { width: 84px; height: 84px; margin: -42px 0 0 -42px; background: #fff; }*/
/*.rdfx-ring.rdfx-down { width: 30px; height: 30px; margin: -15px 0 0 -15px; }*/
/*.rdfx-hidden-cursor .rdfx-dot, .rdfx-hidden-cursor .rdfx-ring { opacity: 0; }*/
/*.rdfx-spark {*/
/*	position: fixed; z-index: 10000; width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: 50%;*/
/*	pointer-events: none; will-change: transform, opacity;*/
/*}*/

/* ---------- Sticky glass header ---------- */
.rdfx-header { transition: padding .4s var(--rdfx-ease), background-color .4s, transform .5s var(--rdfx-ease), box-shadow .4s; z-index: 9990; }
.rdfx-header.rdfx-stuck {
	position: fixed !important; top: 0; left: 0; right: 0; width: 100%;
	background-color: rgba(11, 19, 29, .62) !important;
	-webkit-backdrop-filter: blur(18px) saturate(160%);
	backdrop-filter: blur(18px) saturate(160%);
	padding-top: 12px !important; padding-bottom: 12px !important;
	box-shadow: 0 1px 0 rgba(255, 255, 255, .06), 0 20px 40px -20px rgba(0, 0, 0, .6);
	animation: rdfx-drop .6s var(--rdfx-ease);
}
.rdfx-header.rdfx-stuck.rdfx-away { transform: translateY(-110%); }
@keyframes rdfx-drop { from { transform: translateY(-100%); } to { transform: none; } }
.rd-nav a:not(.rd-cta) { position: relative; }
.rd-nav a:not(.rd-cta)::after {
	content: ''; position: absolute; left: 0; right: 0; bottom: -8px; height: 2px;
	background: var(--rdfx-grad); background-size: 200% 100%;
	transform: scaleX(0); transform-origin: right; transition: transform .45s var(--rdfx-ease);
}
.rd-nav a:not(.rd-cta):hover::after, .rd-nav a.is-current::after { transform: scaleX(1); transform-origin: left; animation: rdfx-grad 3s linear infinite; }
.rd-nav a.rd-cta { position: relative; overflow: hidden; transition: color .3s, background-color .3s, box-shadow .3s !important; }
.rd-nav a.rd-cta:hover { box-shadow: 0 0 0 1px rgba(62, 224, 255, .5), 0 10px 30px -6px rgba(30, 143, 232, .8); }

/* ---------- Hero ---------- */
.rdfx-hero { position: relative; overflow: hidden; isolation: isolate; }
.rdfx-hero > .elementor-container { position: relative; z-index: 3; }
.rdfx-hero-canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
.rdfx-aurora { position: absolute; inset: -20%; z-index: 0; pointer-events: none; filter: blur(80px); opacity: .55; }
.rdfx-aurora i { position: absolute; border-radius: 50%; mix-blend-mode: screen; will-change: transform; }
.rdfx-aurora i:nth-child(1) { width: 46vw; height: 46vw; left: 50%; top: 5%; background: radial-gradient(circle, #1E8FE8, transparent 65%); animation: rdfx-float1 18s ease-in-out infinite alternate; }
.rdfx-aurora i:nth-child(2) { width: 38vw; height: 38vw; left: 65%; top: 40%; background: radial-gradient(circle, #7B5CFF, transparent 65%); animation: rdfx-float2 22s ease-in-out infinite alternate; }
.rdfx-aurora i:nth-child(3) { width: 30vw; height: 30vw; left: 30%; top: 55%; background: radial-gradient(circle, #FF4FD8, transparent 65%); opacity: .55; animation: rdfx-float3 16s ease-in-out infinite alternate; }
.rdfx-aurora i:nth-child(4) { width: 28vw; height: 28vw; left: 80%; top: 0%; background: radial-gradient(circle, #3EE0FF, transparent 65%); opacity: .7; animation: rdfx-float1 20s ease-in-out infinite alternate-reverse; }
@keyframes rdfx-float1 { to { transform: translate(-18vw, 12vh) scale(1.25); } }
@keyframes rdfx-float2 { to { transform: translate(-30vw, -18vh) scale(.85); } }
@keyframes rdfx-float3 { to { transform: translate(25vw, -25vh) scale(1.3); } }
@keyframes rdfx-cue { to { top: 110%; } }
.rdfx-hero .rdfx-parallax { will-change: transform; transition: transform .25s linear; }

/* Word split */
.rdfx-w { display: inline-block; overflow: hidden; vertical-align: top; padding: 0 .02em .12em; margin-bottom: -.12em; }
.rdfx-w > span { display: inline-block; transform: translateY(115%) rotate(8deg); transform-origin: left bottom; transition: transform 1.1s var(--rdfx-ease); transition-delay: var(--d, 0s); }
.rdfx-in .rdfx-w > span { transform: none; }
.rdfx-grad-text {
	background: var(--rdfx-grad); background-size: 300% 100%;
	-webkit-background-clip: text; background-clip: text; color: transparent !important;
	animation: rdfx-grad 6s linear infinite;
}
@keyframes rdfx-grad { to { background-position: 300% 0; } }
.rdfx-eyebrow .elementor-heading-title { display: inline-flex; align-items: center; gap: 14px; }
.rdfx-eyebrow .elementor-heading-title::before {
	content: ''; width: 0; height: 2px; background: var(--rdfx-grad); background-size: 200% 100%;
	transition: width 1s var(--rdfx-ease) .2s; animation: rdfx-grad 3s linear infinite;
}
.rdfx-eyebrow.rdfx-in .elementor-heading-title::before { width: 42px; }

/* ---------- Buttons ---------- */
.elementor-button { position: relative; overflow: hidden; isolation: isolate; will-change: transform; transition: transform .3s var(--rdfx-ease), box-shadow .4s, color .3s, background-color .3s, border-color .3s !important; }
.elementor-button::before {
	content: ''; position: absolute; inset: 0; z-index: -1;
	background: var(--rdfx-grad); background-size: 300% 100%;
	clip-path: circle(0% at var(--bx, 50%) var(--by, 50%));
	transition: clip-path .6s var(--rdfx-ease);
	animation: rdfx-grad 4s linear infinite;
}
.elementor-button::after {
	content: ''; position: absolute; top: 0; left: -60%; width: 40%; height: 100%; z-index: 1;
	background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .55), transparent);
	transform: skewX(-20deg); pointer-events: none; opacity: 0;
}
.elementor-button:hover::before { clip-path: circle(150% at var(--bx, 50%) var(--by, 50%)); }
.elementor-button:hover::after { opacity: 1; animation: rdfx-shine .9s var(--rdfx-ease); }
.elementor-button:hover { color: #fff !important; border-color: transparent !important; box-shadow: 0 18px 40px -12px rgba(30, 143, 232, .75), 0 0 0 1px rgba(255, 255, 255, .08); }
.elementor-button:hover .elementor-button-text { color: #fff !important; }
@keyframes rdfx-shine { from { left: -60%; } to { left: 130%; } }

/* ---------- Section ambience ---------- */
.rdfx-amb { position: relative; overflow: hidden; isolation: isolate; }
.rdfx-amb > .elementor-container { position: relative; z-index: 2; }
/* ---------- Scroll reveal ---------- */
.rdfx-rv { opacity: 0; transform: translateY(46px) scale(.98); filter: blur(10px); transition: opacity 1s var(--rdfx-ease), transform 1.1s var(--rdfx-ease), filter 1s var(--rdfx-ease); transition-delay: var(--d, 0s); }
.rdfx-rv.rdfx-in { opacity: 1; transform: none; filter: none; }

/* ---------- Cards ---------- */
.rdfx-card {
	position: relative; transform-style: preserve-3d; will-change: transform;
	border-radius: 18px !important;
	margin: 8px !important;
	transition: transform .6s var(--rdfx-ease), box-shadow .5s, border-color .4s, background-color .4s !important;
}
.rdfx-card > .elementor-widget { position: relative; z-index: 2; }
.rdfx-card::before {
	content: ''; position: absolute; inset: 0; border-radius: inherit; z-index: 1; pointer-events: none;
	background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), rgba(30, 143, 232, .16), transparent 45%);
	opacity: 0; transition: opacity .4s;
}
.rdfx-card::after {
	content: ''; position: absolute; inset: -1px; border-radius: inherit; z-index: 1; pointer-events: none; padding: 1.5px;
	background: radial-gradient(260px circle at var(--mx, 50%) var(--my, 50%), #3EE0FF, #7B5CFF 40%, transparent 70%);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor; mask-composite: exclude;
	opacity: 0; transition: opacity .4s;
}
.rdfx-card:hover::before, .rdfx-card:hover::after { opacity: 1; }
.rdfx-card:hover { box-shadow: 0 40px 80px -30px rgba(30, 143, 232, .45), 0 0 0 1px rgba(30, 143, 232, .12); }
.rdfx-card--plain { background: #fff !important; border: 1px solid #DCE3EB !important; padding: 44px 34px !important; }
.rdfx-dark .rdfx-card--plain { background: rgba(255, 255, 255, .03) !important; border-color: rgba(255, 255, 255, .08) !important; }
.rdfx-card .rdfx-lift { transform: translateZ(40px); }
.rdfx-num .elementor-heading-title {
	font-size: clamp(48px, 5vw, 72px) !important; font-weight: 800 !important; line-height: 1 !important; letter-spacing: -.04em;
	background: var(--rdfx-grad); background-size: 300% 100%;
	-webkit-background-clip: text; background-clip: text; color: transparent !important;
	animation: rdfx-grad 8s linear infinite; display: inline-block;
}

/* Featured pricing card */
.rdfx-featured { z-index: 3; box-shadow: 0 50px 100px -40px rgba(30, 143, 232, .7) !important; }
@media (min-width: 1025px) { .rdfx-featured { margin-top: -10px !important; margin-bottom: -10px !important; padding-top: 58px !important; padding-bottom: 58px !important; } }
.rdfx-featured .rdfx-ring-border {
	position: absolute; inset: -2px; border-radius: inherit; z-index: 0; pointer-events: none; padding: 2px;
	background: conic-gradient(from var(--rdfx-a), #3EE0FF, #1E8FE8, #7B5CFF, #FF4FD8, #3EE0FF);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor; mask-composite: exclude;
	animation: rdfx-rotate 4s linear infinite;
}
.rdfx-featured .rdfx-ring-border::after {
	content: ''; position: absolute; inset: -20px; border-radius: inherit; z-index: -1;
	background: inherit; filter: blur(30px); opacity: .5;
}
@keyframes rdfx-rotate { to { --rdfx-a: 360deg; } }
.rdfx-badge {
	position: absolute; top: -15px; left: 50%; transform: translateX(-50%); z-index: 4;
	padding: 8px 16px; border-radius: 99px; white-space: nowrap;
	font: 700 11px/1 Inter, sans-serif; letter-spacing: 2px; color: #fff; text-transform: uppercase;
	background: var(--rdfx-grad); background-size: 300% 100%; animation: rdfx-grad 4s linear infinite;
	box-shadow: 0 10px 30px -6px rgba(123, 92, 255, .8);
}
.rdfx-price .elementor-heading-title { font-variant-numeric: tabular-nums; }

/* ---------- Timeline ---------- */
.rdfx-tl > .elementor-container { position: relative; }
.rdfx-tl-line { position: absolute; height: 2px; transform-origin: 0 50%; background: rgba(255, 255, 255, .1); z-index: 0; pointer-events: none; }
.rdfx-tl-line i { position: absolute; inset: 0; background: var(--rdfx-grad); background-size: 200% 100%; transform-origin: left; transform: scaleX(0); box-shadow: 0 0 16px rgba(62, 224, 255, .8); animation: rdfx-grad 4s linear infinite; }
.rdfx-tl-line i::after { content: ''; position: absolute; right: -5px; top: -4px; width: 10px; height: 10px; border-radius: 50%; background: #fff; box-shadow: 0 0 16px 4px #3EE0FF; }
.rdfx-tl .elementor-column { position: relative; z-index: 1; }
.rdfx-step .elementor-heading-title {
	display: inline-flex !important; align-items: center; justify-content: center;
	width: 68px; height: 68px; border-radius: 50%;
	background: var(--rdfx-ink-2); border: 1px solid rgba(255, 255, 255, .14);
	font-size: 18px !important; line-height: 1 !important;
	transition: background .6s, box-shadow .6s, transform .6s var(--rdfx-ease), color .6s, border-color .6s;
}
.rdfx-step.rdfx-lit .elementor-heading-title {
	background: linear-gradient(135deg, #1E8FE8, #7B5CFF); color: #fff !important; border-color: transparent;
	box-shadow: 0 0 0 8px rgba(30, 143, 232, .15), 0 0 40px rgba(62, 224, 255, .6);
	transform: scale(1.12);
}
.rdfx-tl .elementor-column > .elementor-widget-wrap { border-radius: 16px; transition: background-color .4s, transform .5s var(--rdfx-ease); }
.rdfx-tl .elementor-column:hover > .elementor-widget-wrap { background-color: rgba(255, 255, 255, .04); transform: translateY(-6px); }

/* ---------- CTA ---------- */
.rdfx-cta { position: relative; overflow: hidden; isolation: isolate; }
.rdfx-cta > .elementor-container { position: relative; z-index: 3; }
.rdfx-cta-bg { position: absolute; inset: -40%; z-index: 0; pointer-events: none; opacity: .5; filter: blur(90px);
	background: conic-gradient(from var(--rdfx-a) at 50% 50%, #0B131D, #1E8FE8, #0B131D 30%, #7B5CFF, #0B131D 60%, #FF4FD8, #0B131D 85%);
	animation: rdfx-rotate 14s linear infinite;
}
.rdfx-cta-ring { position: absolute; right: 6%; top: 50%; width: 190px; height: 190px; margin-top: -95px; z-index: 2; pointer-events: none; animation: rdfx-spin 18s linear infinite; }
.rdfx-cta-ring text { font: 700 13.5px Inter, sans-serif; letter-spacing: 4.2px; fill: rgba(243, 246, 249, .55); text-transform: uppercase; }
.rdfx-cta-ring-core { position: absolute; right: calc(6% + 70px); top: 50%; width: 50px; height: 50px; margin-top: -25px; z-index: 2; border-radius: 50%; background: var(--rdfx-grad); background-size: 300% 100%; animation: rdfx-grad 4s linear infinite, rdfx-pulse 2.4s ease-out infinite; pointer-events: none; }
@keyframes rdfx-pulse { 0% { box-shadow: 0 0 0 0 rgba(62, 224, 255, .6); } 100% { box-shadow: 0 0 0 30px rgba(62, 224, 255, 0); } }
.rdfx-cta .elementor-button { animation: rdfx-pulse 2.4s ease-out infinite; }
@media (max-width: 1024px) { .rdfx-cta-ring, .rdfx-cta-ring-core { display: none; } }

/* ---------- Reduced motion & touch ---------- */
@media (prefers-reduced-motion: reduce) {
	.rdfx-aurora i, .rdfx-floor, .rdfx-mq-track, .rdfx-cta-bg, .rdfx-cta-ring, .rdfx-orbs i, .rdfx-featured .rdfx-ring-border { animation: none !important; }
	.rdfx-rv, .rdfx-w > span { transition: none !important; opacity: 1 !important; transform: none !important; filter: none !important; }
}
@media (max-width: 767px) {
	.rdfx-aurora { filter: blur(50px); }
	.rdfx-cta-bg { filter: blur(60px); }
	.rdfx-floor { height: 40%; }
	.rdfx-marquee-wrap { padding: 44px 0; }
	.rdfx-scrollcue { display: none; }
	.rdfx-card--plain { padding: 34px 26px !important; }
}

/* ---------- Portfolio screenshot frames ---------- */
.rdfx-shot .elementor-widget-container {
	position: relative; overflow: hidden; border-radius: 12px; padding-top: 30px;
	background: #1B2633; border: 1px solid rgba(255, 255, 255, .08);
	box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .55), 0 0 0 1px rgba(0, 0, 0, .04);
	transition: transform .7s var(--rdfx-ease), box-shadow .7s;
}
.rdfx-shot .elementor-widget-container::before {
	content: ''; position: absolute; top: 11px; left: 14px; width: 9px; height: 9px; border-radius: 50%;
	background: #FF5F57; box-shadow: 15px 0 0 #FEBC2E, 30px 0 0 #28C840;
}
.rdfx-shot .elementor-widget-container::after {
	content: ''; position: absolute; top: 8px; left: 50%; transform: translateX(-50%);
	width: min(320px, 40%); height: 15px; border-radius: 5px; background: rgba(255, 255, 255, .08);
}
.rdfx-shot img { display: block; width: 100%; height: auto; border-radius: 0 !important; transition: transform 1.2s var(--rdfx-ease); }
.rdfx-shot:hover .elementor-widget-container { transform: translateY(-6px); box-shadow: 0 50px 100px -30px rgba(30, 143, 232, .45), 0 0 0 1px rgba(62, 224, 255, .25); }
.rdfx-shot:hover img { transform: scale(1.025); }
.rdfx-phone .elementor-widget-container { max-width: 300px; margin: 0 auto; }
.rdfx-phone img {
	display: block; width: 100%; border-radius: 36px !important; border: 10px solid #0B131D;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, .12), 0 50px 90px -30px rgba(11, 19, 29, .6);
	transition: transform .8s var(--rdfx-ease);
}
.rdfx-phone:hover img { transform: translateY(-8px) rotate(-1.5deg); }
.rdfx-card .rdfx-shot .elementor-widget-container { padding-top: 22px; border-radius: 10px; box-shadow: 0 20px 40px -20px rgba(11, 19, 29, .35); }
.rdfx-card .rdfx-shot .elementor-widget-container::before { top: 7px; left: 10px; width: 7px; height: 7px; box-shadow: 11px 0 0 #FEBC2E, 22px 0 0 #28C840; }
.rdfx-card .rdfx-shot .elementor-widget-container::after { top: 5px; height: 11px; }
.rdfx-card:hover .rdfx-shot img { transform: scale(1.04); }

/* ==========================================================================
   V4 (atomic) markup — same effects for pages built with e-con / e-*-base
   elements. In V4 the widget and its title are one element, and containers
   (.e-con) take the place of .elementor-container / columns / widget-wraps.
   ========================================================================== */

/* Failsafe: hide hero headline until it is split */
.rdfx-js .elementor > .e-con h1.e-heading-base:not(.rdfx-split) {
	opacity: 0;
	animation: rdfx-show 0s 2.5s forwards;
}

/* Hero / ambience / CTA: keep content above the injected layers */
.rdfx-hero > .e-con, .rdfx-cta > .e-con { position: relative; z-index: 3; }
.rdfx-amb > .e-con { position: relative; z-index: 2; }

/* Eyebrow line */
.rdfx-eyebrow.e-heading-base, .rdfx-eyebrow.e-paragraph-base { display: inline-flex; align-items: center; gap: 14px; }
.rdfx-eyebrow.e-heading-base::before, .rdfx-eyebrow.e-paragraph-base::before {
	content: ''; width: 0; height: 2px; background: var(--rdfx-grad); background-size: 200% 100%;
	transition: width 1s var(--rdfx-ease) .2s; animation: rdfx-grad 3s linear infinite;
}
.rdfx-eyebrow.rdfx-in.e-heading-base::before, .rdfx-eyebrow.rdfx-in.e-paragraph-base::before { width: 42px; }

/* Buttons */
.e-button-base, .e-form-submit-button-base { position: relative; overflow: hidden; isolation: isolate; will-change: transform; transition: transform .3s var(--rdfx-ease), box-shadow .4s, color .3s, background-color .3s, border-color .3s !important; }
.e-button-base::before, .e-form-submit-button-base::before {
	content: ''; position: absolute; inset: 0; z-index: -1;
	background: var(--rdfx-grad); background-size: 300% 100%;
	clip-path: circle(0% at var(--bx, 50%) var(--by, 50%));
	transition: clip-path .6s var(--rdfx-ease);
	animation: rdfx-grad 4s linear infinite;
}
.e-button-base::after, .e-form-submit-button-base::after {
	content: ''; position: absolute; top: 0; left: -60%; width: 40%; height: 100%; z-index: 1;
	background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .55), transparent);
	transform: skewX(-20deg); pointer-events: none; opacity: 0;
}
.e-button-base:hover::before, .e-form-submit-button-base:hover::before { clip-path: circle(150% at var(--bx, 50%) var(--by, 50%)); }
.e-button-base:hover::after, .e-form-submit-button-base:hover::after { opacity: 1; animation: rdfx-shine .9s var(--rdfx-ease); }
.e-button-base:hover, .e-form-submit-button-base:hover { color: #fff !important; border-color: transparent !important; box-shadow: 0 18px 40px -12px rgba(30, 143, 232, .75), 0 0 0 1px rgba(255, 255, 255, .08); }
.rdfx-cta .e-button-base { animation: rdfx-pulse 2.4s ease-out infinite; }

/* Cards */
.rdfx-card > *:not(.rdfx-ring-border):not(.rdfx-badge) { position: relative; z-index: 2; }
.rdfx-num.e-heading-base, .rdfx-num.e-paragraph-base {
	font-size: clamp(48px, 5vw, 72px) !important; font-weight: 800 !important; line-height: 1 !important; letter-spacing: -.04em;
	background: var(--rdfx-grad); background-size: 300% 100%;
	-webkit-background-clip: text; background-clip: text; color: transparent !important;
	animation: rdfx-grad 8s linear infinite; align-self: flex-start;
}
.rdfx-price.e-heading-base, .rdfx-price.e-paragraph-base { font-variant-numeric: tabular-nums; }

/* Timeline */
.rdfx-tl.e-con { position: relative; }
.rdfx-tl > .e-con { position: relative; z-index: 1; border-radius: 16px; transition: background-color .4s, transform .5s var(--rdfx-ease), opacity 1s var(--rdfx-ease), filter 1s var(--rdfx-ease); }
.rdfx-tl > .e-con:hover { background-color: rgba(255, 255, 255, .04); transform: translateY(-6px); }
.rdfx-step.e-heading-base, .rdfx-step.e-paragraph-base {
	display: inline-flex !important; align-items: center; justify-content: center; align-self: flex-start;
	width: 68px; height: 68px; border-radius: 50%;
	background: var(--rdfx-ink-2); border: 1px solid rgba(255, 255, 255, .14);
	font-size: 18px !important; line-height: 1 !important;
	transition: background .6s, box-shadow .6s, transform .6s var(--rdfx-ease), color .6s, border-color .6s;
}
.rdfx-step.rdfx-lit.e-heading-base, .rdfx-step.rdfx-lit.e-paragraph-base {
	background: linear-gradient(135deg, #1E8FE8, #7B5CFF); color: #fff !important; border-color: transparent;
	box-shadow: 0 0 0 8px rgba(30, 143, 232, .15), 0 0 40px rgba(62, 224, 255, .6);
	transform: scale(1.12);
}
