.hero {
    color: white;
    padding: 8rem 2rem;
    text-align: center;
    min-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background:
        radial-gradient(120% 120% at 10% 8%, rgba(255, 255, 255, 0.28) 0%, rgba(255, 255, 255, 0) 52%),
        radial-gradient(95% 130% at 90% 5%, rgba(255, 228, 168, 0.22) 0%, rgba(255, 228, 168, 0) 50%),
        linear-gradient(122deg, #f29a12 0%, #df7f1f 48%, #cb6b1c 100%);
    background-size: 130% 130%, 130% 130%, 120% 120%;

    &::after {
        content: "";
        position: absolute;
        inset: 0;
        pointer-events: none;
        z-index: -1;
    }

    &::after {
        inset: -40% -10%;
        background: linear-gradient(105deg, rgba(255, 255, 255, 0) 35%, rgba(255, 255, 255, 0.24) 50%, rgba(255, 255, 255, 0) 65%);
        transform: translateX(-68%) rotate(8deg);
        animation: heroLightSweep 7.5s cubic-bezier(0.19, 1, 0.22, 1) infinite;
        opacity: 0.56;
    }

    .hero-content {
        position: relative;
        max-width: 58rem;
        padding: 2.25rem 2.3rem;
        border-radius: 1.4rem;
        background: linear-gradient(180deg, rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0.08) 100%);
        border: 1px solid rgba(255, 255, 255, 0.26);
        box-shadow: 0 18px 50px rgba(89, 44, 0, 0.22);
        backdrop-filter: blur(6px);
    }

    h1 {
        font-size: 3.5rem;
        margin-bottom: 1rem;
        font-weight: 800;
        letter-spacing: -0.02em;
        text-wrap: balance;
        line-height: 1.04;
        overflow-wrap: anywhere;
        animation: heroHeadingIn 1.05s cubic-bezier(0.22, 1, 0.36, 1) both;
    }
}

.tagline {
    font-size: 1.3rem;
    opacity: 0.95;
    max-width: 600px;
    margin: 0 auto;
    position: relative;
    display: block;
    overflow-wrap: anywhere;
    animation: heroTaglineIn 1.15s cubic-bezier(0.16, 1, 0.3, 1) 120ms both;

    &::after {
        content: "";
        position: absolute;
        left: 6%;
        right: 6%;
        bottom: -0.5rem;
        height: 2px;
        background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.95) 50%, rgba(255, 255, 255, 0) 100%);
        transform-origin: center;
        opacity: 0.84;
    }
}

.about {
    max-width: 1200px;
    margin: 4rem auto;
    padding: 3rem 2rem;
    text-align: center;
}

.about-content {
    h2 {
        font-size: 2.5rem;
        margin-bottom: 1.5rem;
        color: var(--dark-text);
    }

    p {
        font-size: 1.1rem;
        color: var(--light-text);
        max-width: 700px;
        margin: 0 auto;
        line-height: 1.8;
    }
}

@keyframes heroLightSweep {
    0% {
        transform: translateX(-68%) rotate(8deg);
        opacity: 0;
    }

    16% {
        opacity: 0.56;
    }

    54% {
        transform: translateX(68%) rotate(8deg);
        opacity: 0.32;
    }

    100% {
        transform: translateX(68%) rotate(8deg);
        opacity: 0;
    }
}

@keyframes heroHeadingIn {
    from {
        opacity: 0;
        transform: translateY(14px);
        clip-path: inset(0 0 35% 0);
    }

    to {
        opacity: 1;
        transform: translateY(0);
        clip-path: inset(0 0 0 0);
    }
}

@keyframes heroTaglineIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero {
        &::after,
        h1 {
            animation: none !important;
            transform: none !important;
        }
    }

    .tagline,
    .tagline::after {
        animation: none !important;
        transform: none !important;
    }
}

@media (max-width: 768px) {
    .hero {
        padding: 6.5rem 1rem;
        overflow: visible;
        background-size: 160% 160%, 160% 160%, 140% 140%;

        &::after {
            inset: -65% -45%;
            opacity: 0.42;
        }

        .hero-content {
            width: min(100%, 42rem);
            max-width: 100%;
            padding: 1.35rem 1.1rem;
            border-radius: 1.1rem;
            backdrop-filter: none;
            -webkit-backdrop-filter: none;
            background: rgba(255, 255, 255, 0.18);
        }

        h1 {
            font-size: clamp(1.9rem, 8vw, 2.5rem);
            line-height: 1.12;
            letter-spacing: -0.01em;
        }
    }

    .tagline {
        font-size: 1.1rem;
        max-width: 100%;

        &::after {
            left: 2%;
            right: 2%;
        }
    }
}