:root {
    --flez-color-primary: #2563eb;
    --flez-color-secondary: #06b6d4;
    --flez-color-tertiary: #6366f1;
    --flez-color-dark: #0f172a;
    --flez-color-light: #f8fafc;
    --flez-border-glass: rgba(148, 163, 184, 0.35);
    --flez-border-muted: rgba(148, 163, 184, 0.2);
    --flez-border-card: rgba(148, 163, 184, 0.25);
    --flez-gradient-brand-text: linear-gradient(120deg, #38bdf8 0%, #60a5fa 30%, #818cf8 55%, #a855f7 85%);
    --flez-gradient-brand-sheen: linear-gradient(135deg, rgba(56, 189, 248, 0.12), rgba(129, 140, 248, 0.1));
    --flez-gradient-highlight: linear-gradient(135deg, rgba(7, 12, 28, 0.97), rgba(18, 35, 82, 0.92));
    --flez-gradient-highlight-alt: linear-gradient(135deg, rgba(2, 6, 23, 0.96), rgba(9, 30, 68, 0.9));
    --flez-gradient-tech-bg: linear-gradient(140deg, #020617 0%, #051028 35%, #0f1d3a 65%, #1f2f4f 100%);
    --flez-gradient-tech-conic: conic-gradient(from 90deg at 50% 50%, #38bdf8 0%, #6366f1 35%, #1e40af 60%, #0ea5e9 100%);
    --flez-shadow-card: 0 24px 40px -20px rgba(15, 23, 42, 0.35);
    --flez-shadow-card-hover: 0 32px 60px -30px rgba(15, 23, 42, 0.45);
    --flez-shadow-glow: 0 20px 40px rgba(14, 165, 233, 0.25);
    --flez-shadow-highlight: 0 40px 70px -35px rgba(8, 12, 28, 0.7);
    --flez-duration-float: 12s;
    --flez-duration-float-fast: 3s;
    --flez-duration-float-slow: 20s;
    --flez-duration-fade: 1s;
    --flez-duration-slide: 0.8s;
    --flez-duration-bounce: 0.6s;
    --flez-float-distance: 20px;
}

.gradient-text,
.tech-gradient-text,
.flez-gradient-text {
    background: var(--flez-gradient-brand-text);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
}

.tech-logo {
    background: var(--flez-gradient-tech-conic);
    box-shadow: var(--flez-shadow-glow);
}

.brand-card {
    box-shadow: var(--flez-shadow-card);
    border: 1px solid var(--flez-border-muted);
}

.brand-card::before {
    background: var(--flez-gradient-brand-sheen);
}

.brand-card:hover {
    box-shadow: var(--flez-shadow-card-hover);
}

.highlight-section {
    background: var(--flez-gradient-highlight);
    box-shadow: var(--flez-shadow-highlight);
    border: 1px solid var(--flez-border-glass);
}

.dark .highlight-section {
    background: var(--flez-gradient-highlight-alt);
}

.highlight-card {
    border: 1px solid var(--flez-border-card);
}

.floating,
.float-animation {
    animation: flez-float var(--flez-duration-float, 12s) ease-in-out infinite;
    will-change: transform;
}

.float-animation {
    --flez-duration-float: var(--flez-duration-float-fast, 3s);
}

.tech-gradient-bg {
    background: var(--flez-gradient-tech-bg);
}

.tech-gradient-bg::after {
    --flez-duration-float: var(--flez-duration-float-slow, 20s);
    --flez-float-distance: 12px;
    animation: flez-float var(--flez-duration-float, 20s) ease-in-out infinite;
}

@keyframes flez-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(calc(-1 * var(--flez-float-distance, 20px))); }
}

.slide-in-left,
.slide-in-right,
.slide-in-up,
.fade-in,
.bounce-in {
    opacity: 0;
    animation-delay: var(--delay, 0s);
}

.slide-in-left {
    transform: translateX(-100px);
    animation: flez-slide-in-left var(--flez-duration-slide) ease-out forwards;
}

.slide-in-right {
    transform: translateX(100px);
    animation: flez-slide-in-right var(--flez-duration-slide) ease-out forwards;
}

.slide-in-up {
    transform: translateY(50px);
    animation: flez-slide-in-up var(--flez-duration-slide) ease-out forwards;
}

.fade-in {
    animation: flez-fade-in var(--flez-duration-fade) ease-out forwards;
}

.bounce-in {
    transform: scale(0.3);
    animation: flez-bounce-in var(--flez-duration-bounce) cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards;
}

@keyframes flez-slide-in-left {
    to { opacity: 1; transform: translateX(0); }
}

@keyframes flez-slide-in-right {
    to { opacity: 1; transform: translateX(0); }
}

@keyframes flez-slide-in-up {
    to { opacity: 1; transform: translateY(0); }
}

@keyframes flez-fade-in {
    to { opacity: 1; }
}

@keyframes flez-bounce-in {
    0% { opacity: 0; transform: scale(0.3); }
    60% { opacity: 1; transform: scale(1.05); }
    100% { transform: scale(1); }
}

.pulse-ring {
    animation: flez-pulse-ring 2s cubic-bezier(0.455, 0.03, 0.515, 0.955) infinite;
}

@keyframes flez-pulse-ring {
    0% { transform: scale(1); opacity: 1; }
    80%,
    100% { transform: scale(1.8); opacity: 0; }
}

.glow-pulse::after {
    background: linear-gradient(135deg, rgba(56, 189, 248, 0.6), rgba(129, 140, 248, 0.35));
}

.flez-shadow-glow {
    box-shadow: var(--flez-shadow-glow);
}

.flez-border-glass {
    border: 1px solid var(--flez-border-glass);
}
