/* ============================================
   CANDIDATE LANDING PAGE — Clean, focused
   ============================================ */

@keyframes float {
    0%, 100% { transform: translate(0, 0) scale(1); }
    33% { transform: translate(50px, -60px) scale(1.1); }
    66% { transform: translate(-40px, 40px) scale(0.9); }
}

@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(30px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes pulse-dot {
    0%, 100% { opacity: 1; box-shadow: 0 0 0 0 oklch(70% 0.22 145 / 0.6); }
    50% { opacity: 0.8; box-shadow: 0 0 0 6px oklch(70% 0.22 145 / 0); }
}

@keyframes shimmer {
    0% { inset-inline-start: -100%; }
    100% { inset-inline-start: 200%; }
}

@layer components {

    .hero {
        position: relative;
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
        min-block-size: calc(100cqb - 60px);
        padding: var(--space-3xl) clamp(1rem, 5vw, 4rem);

        .hero-bg {
            position: fixed;
            inset: 0;
            z-index: -1;
            overflow: hidden;
        }

        .gradient-orb {
            position: absolute;
            border-radius: 50%;
            filter: blur(90px);
            animation: float 18s ease-in-out infinite;
        }

        .gradient-orb--1 {
            width: 700px; height: 700px;
            top: -25%; left: -10%;
        }

        .gradient-orb--2 {
            width: 600px; height: 600px;
            bottom: -20%; right: -5%;
            animation-delay: -6s;
        }

        .noise-overlay {
            position: absolute;
            inset: 0;
            pointer-events: none;
        }

        .hero-content {
            position: relative;
            z-index: 1;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: var(--space-lg);
            text-align: center;
            max-inline-size: 700px;
            animation: fadeInUp 0.7s ease-out both;
        }

        .hero-badge {
            display: inline-flex;
            align-items: center;
            gap: var(--space-xs);
            padding: 6px 16px;
            border-radius: 100px;
            font-family: var(--font-heading);
            font-size: 0.75rem;
            font-weight: 600;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            inline-size: fit-content;
        }

        .badge-dot {
            inline-size: 8px; block-size: 8px;
            border-radius: 50%;
            animation: pulse-dot 2s ease-in-out infinite;
        }

        h1 {
            font-family: var(--font-heading);
            font-size: clamp(2.5rem, 5.5vw, 4.2rem);
            font-weight: 800;
            line-height: 1.1;
            letter-spacing: -0.02em;
        }

        .hero-line { display: block; }

        .tagline {
            font-size: clamp(1rem, 1.5vw, 1.15rem);
            line-height: 1.7;
            max-inline-size: 55ch;
        }

        .cta-group {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: var(--space-md);
            padding-block-start: var(--space-sm);
        }

        .cta-button {
            display: inline-flex;
            align-items: center;
            gap: var(--space-xs);
            padding: 14px 32px;
            border-radius: 100px;
            font-family: var(--font-heading);
            font-size: 0.95rem;
            font-weight: var(--fw-semibold);
            cursor: pointer;
            transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1);
            position: relative;
            overflow: hidden;

            svg { transition: transform 0.3s ease-out; }
            &:hover svg { transform: translateX(4px); }
        }

        .btn-shimmer {
            position: absolute;
            inset-block-start: 0; inset-inline-start: -100%;
            inline-size: 60%; block-size: 100%;
            animation: shimmer 3s ease-in-out infinite;
            pointer-events: none;
        }

        .help-text {
            font-size: var(--fs-small);
            opacity: 0.5;
        }
    }
}

/* ==============================
   THEME LAYER
   ============================== */
@layer theme {

    .hero {
        .gradient-orb--1 { background: light-dark(oklch(55% 0.25 270 / 0.08), oklch(55% 0.25 270 / 0.2)); }
        .gradient-orb--2 { background: light-dark(oklch(65% 0.22 25 / 0.04), oklch(65% 0.22 25 / 0.08)); }
        .noise-overlay { background: light-dark(oklch(100% 0 0 / 0.03), oklch(100% 0 0 / 0.015)); }

        .hero-badge {
            background: light-dark(oklch(55% 0.18 145 / 0.1), oklch(70% 0.22 145 / 0.12));
            border: 1px solid light-dark(oklch(55% 0.18 145 / 0.25), oklch(70% 0.22 145 / 0.25));
            color: light-dark(oklch(40% 0.15 145), oklch(75% 0.2 145));
        }

        .badge-dot {
            background: light-dark(oklch(55% 0.22 145), oklch(70% 0.22 145));
        }

        h1 {
            color: var(--text-primary);
        }

        .hero-line--accent {
            background: linear-gradient(135deg, var(--accent-primary), var(--accent-warm));
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }

        .tagline {
            color: var(--text-secondary);
        }

        .btn-shimmer {
            background: linear-gradient(90deg, transparent, oklch(100% 0 0 / 0.08), transparent);
        }

        .help-text {
            color: var(--text-secondary);
        }
    }
}
